diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..d4a7f35 Binary files /dev/null and b/.DS_Store differ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..087ea6d --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.3.0 + hooks: + - id: ruff # linting + + - repo: https://github.com/psf/black + rev: stable + hooks: + - id: black # formatting diff --git a/PPE2/.venv/bin/Activate.ps1 b/PPE2/.venv/bin/Activate.ps1 index b49d77b..354eb42 100644 --- a/PPE2/.venv/bin/Activate.ps1 +++ b/PPE2/.venv/bin/Activate.ps1 @@ -44,7 +44,7 @@ command: PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -For more information on Execution Policies: +For more information on Execution Policies: https://go.microsoft.com/fwlink/?LinkID=135170 #> diff --git a/PPE2/.venv/bin/black b/PPE2/.venv/bin/black index bda3745..11a4818 100755 --- a/PPE2/.venv/bin/black +++ b/PPE2/.venv/bin/black @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from black import patched_main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(patched_main()) diff --git a/PPE2/.venv/bin/blackd b/PPE2/.venv/bin/blackd index e832b4e..ab4a5a5 100755 --- a/PPE2/.venv/bin/blackd +++ b/PPE2/.venv/bin/blackd @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from blackd import patched_main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(patched_main()) diff --git a/PPE2/.venv/bin/identify-cli b/PPE2/.venv/bin/identify-cli index da04cf2..3070673 100755 --- a/PPE2/.venv/bin/identify-cli +++ b/PPE2/.venv/bin/identify-cli @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from identify.cli import main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(main()) diff --git a/PPE2/.venv/bin/nodeenv b/PPE2/.venv/bin/nodeenv index 2b61e78..d14265d 100755 --- a/PPE2/.venv/bin/nodeenv +++ b/PPE2/.venv/bin/nodeenv @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from nodeenv import main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(main()) diff --git a/PPE2/.venv/bin/pip b/PPE2/.venv/bin/pip index cc4cc16..2dcfb48 100755 --- a/PPE2/.venv/bin/pip +++ b/PPE2/.venv/bin/pip @@ -3,6 +3,7 @@ import re import sys from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + +if __name__ == "__main__": + sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0]) sys.exit(main()) diff --git a/PPE2/.venv/bin/pip3 b/PPE2/.venv/bin/pip3 index cc4cc16..2dcfb48 100755 --- a/PPE2/.venv/bin/pip3 +++ b/PPE2/.venv/bin/pip3 @@ -3,6 +3,7 @@ import re import sys from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + +if __name__ == "__main__": + sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0]) sys.exit(main()) diff --git a/PPE2/.venv/bin/pip3.12 b/PPE2/.venv/bin/pip3.12 index cc4cc16..2dcfb48 100755 --- a/PPE2/.venv/bin/pip3.12 +++ b/PPE2/.venv/bin/pip3.12 @@ -3,6 +3,7 @@ import re import sys from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + +if __name__ == "__main__": + sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0]) sys.exit(main()) diff --git a/PPE2/.venv/bin/pre-commit b/PPE2/.venv/bin/pre-commit index 2e84efa..2cc4a4a 100755 --- a/PPE2/.venv/bin/pre-commit +++ b/PPE2/.venv/bin/pre-commit @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from pre_commit.main import main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(main()) diff --git a/PPE2/.venv/bin/py.test b/PPE2/.venv/bin/py.test index c95ea3c..a7078fe 100755 --- a/PPE2/.venv/bin/py.test +++ b/PPE2/.venv/bin/py.test @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from pytest import console_main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(console_main()) diff --git a/PPE2/.venv/bin/pygmentize b/PPE2/.venv/bin/pygmentize index 41355a4..588ed6a 100755 --- a/PPE2/.venv/bin/pygmentize +++ b/PPE2/.venv/bin/pygmentize @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from pygments.cmdline import main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(main()) diff --git a/PPE2/.venv/bin/pytest b/PPE2/.venv/bin/pytest index c95ea3c..a7078fe 100755 --- a/PPE2/.venv/bin/pytest +++ b/PPE2/.venv/bin/pytest @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from pytest import console_main -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(console_main()) diff --git a/PPE2/.venv/bin/virtualenv b/PPE2/.venv/bin/virtualenv index dd63570..ffd0657 100755 --- a/PPE2/.venv/bin/virtualenv +++ b/PPE2/.venv/bin/virtualenv @@ -1,6 +1,7 @@ #!/Users/emoniefaychetwin/PPE2/PPE2/.venv/bin/python import sys from virtualenv.__main__ import run_with_catch -if __name__ == '__main__': - sys.argv[0] = sys.argv[0].removesuffix('.exe') + +if __name__ == "__main__": + sys.argv[0] = sys.argv[0].removesuffix(".exe") sys.exit(run_with_catch()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/__init__.py index 8eb8ec9..1ec1e57 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/__init__.py @@ -1,6 +1,5 @@ from __future__ import annotations - __all__ = ["__version__", "version_tuple"] try: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/__init__.py index 7f67a2e..2322747 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/__init__.py @@ -12,7 +12,6 @@ from .code import TracebackEntry from .source import getrawcode from .source import Source - __all__ = [ "Code", "ExceptionInfo", diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/code.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/code.py index add2a49..84fe2be 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/code.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_code/code.py @@ -48,7 +48,6 @@ from _pytest.deprecated import check_ispytest from _pytest.pathlib import absolutepath from _pytest.pathlib import bestrelpath - if sys.version_info < (3, 11): from exceptiongroup import BaseExceptionGroup @@ -230,6 +229,7 @@ class TracebackEntry: @property def end_colno(self) -> int | None: return None + else: @property @@ -595,33 +595,33 @@ class ExceptionInfo(Generic[E]): @property def type(self) -> type[E]: """The exception class.""" - assert self._excinfo is not None, ( - ".type can only be used after the context manager exits" - ) + assert ( + self._excinfo is not None + ), ".type can only be used after the context manager exits" return self._excinfo[0] @property def value(self) -> E: """The exception value.""" - assert self._excinfo is not None, ( - ".value can only be used after the context manager exits" - ) + assert ( + self._excinfo is not None + ), ".value can only be used after the context manager exits" return self._excinfo[1] @property def tb(self) -> TracebackType: """The exception raw traceback.""" - assert self._excinfo is not None, ( - ".tb can only be used after the context manager exits" - ) + assert ( + self._excinfo is not None + ), ".tb can only be used after the context manager exits" return self._excinfo[2] @property def typename(self) -> str: """The type name of the exception.""" - assert self._excinfo is not None, ( - ".typename can only be used after the context manager exits" - ) + assert ( + self._excinfo is not None + ), ".typename can only be used after the context manager exits" return self.type.__name__ @property diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/__init__.py index b0155b1..4754fcb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/__init__.py @@ -3,7 +3,6 @@ from __future__ import annotations from .terminalwriter import get_terminal_width from .terminalwriter import TerminalWriter - __all__ = [ "TerminalWriter", "get_terminal_width", diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/pprint.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/pprint.py index 28f0690..1eeaefe 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/pprint.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/pprint.py @@ -113,7 +113,7 @@ class PrettyPrinter: elif ( _dataclasses.is_dataclass(object) and not isinstance(object, type) - and object.__dataclass_params__.repr # type:ignore[attr-defined] + and object.__dataclass_params__.repr # type: ignore[attr-defined] and # Check dataclass has generated repr method. hasattr(object.__repr__, "__wrapped__") diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/terminalwriter.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/terminalwriter.py index 9191b4e..f8f115b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/terminalwriter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_io/terminalwriter.py @@ -19,7 +19,6 @@ from pygments.lexers.python import PythonLexer from ..compat import assert_never from .wcwidth import wcswidth - # This code was initially copied from py 1.8.1, file _io/terminalwriter.py. diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/error.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/error.py index dace237..af4f4e7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/error.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/error.py @@ -9,7 +9,6 @@ import sys from typing import TYPE_CHECKING from typing import TypeVar - if TYPE_CHECKING: from typing_extensions import ParamSpec @@ -94,7 +93,7 @@ class ErrorMaker: try: # error: Invalid index type "Optional[int]" for "dict[int, int]"; expected type "int" [index] # OK to ignore because we catch the KeyError below. - cls = self._geterrnoclass(_winerrnomap[value.errno]) # type:ignore[index] + cls = self._geterrnoclass(_winerrnomap[value.errno]) # type: ignore[index] except KeyError: raise value else: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/path.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/path.py index b7131b0..0371b1d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/path.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_py/path.py @@ -33,7 +33,6 @@ import warnings from . import error - # Moved from local.py. iswin32 = sys.platform == "win32" or (getattr(os, "_name", False) == "nt") @@ -222,7 +221,7 @@ class Stat: raise NotImplementedError("XXX win32") import pwd - entry = error.checked_call(pwd.getpwuid, self.uid) # type:ignore[attr-defined,unused-ignore] + entry = error.checked_call(pwd.getpwuid, self.uid) # type: ignore[attr-defined,unused-ignore] return entry[0] @property @@ -232,7 +231,7 @@ class Stat: raise NotImplementedError("XXX win32") import grp - entry = error.checked_call(grp.getgrgid, self.gid) # type:ignore[attr-defined,unused-ignore] + entry = error.checked_call(grp.getgrgid, self.gid) # type: ignore[attr-defined,unused-ignore] return entry[0] def isdir(self): @@ -250,7 +249,7 @@ def getuserid(user): import pwd if not isinstance(user, int): - user = pwd.getpwnam(user)[2] # type:ignore[attr-defined,unused-ignore] + user = pwd.getpwnam(user)[2] # type: ignore[attr-defined,unused-ignore] return user @@ -258,7 +257,7 @@ def getgroupid(group): import grp if not isinstance(group, int): - group = grp.getgrnam(group)[2] # type:ignore[attr-defined,unused-ignore] + group = grp.getgrnam(group)[2] # type: ignore[attr-defined,unused-ignore] return group diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_version.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_version.py index e5c1257..b5db665 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/_version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/_version.py @@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '9.0.2' +__version__ = version = "9.0.2" __version_tuple__ = version_tuple = (9, 0, 2) __commit_id__ = commit_id = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/__init__.py index 22f3ca8..a7d8bbb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/__init__.py @@ -18,7 +18,6 @@ from _pytest.config import hookimpl from _pytest.config.argparsing import Parser from _pytest.nodes import Item - if TYPE_CHECKING: from _pytest.main import Session diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py index 566549d..38f5d89 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py @@ -26,7 +26,6 @@ import types from typing import IO from typing import TYPE_CHECKING - if sys.version_info >= (3, 12): from importlib.resources.abc import TraversableResources else: @@ -704,9 +703,9 @@ class AssertionRewriter(ast.NodeVisitor): pos = 0 for item in mod.body: match item: - case ast.Expr(value=ast.Constant(value=str() as doc)) if ( - expect_docstring - ): + case ast.Expr( + value=ast.Constant(value=str() as doc) + ) if expect_docstring: if self.is_rewrite_disabled(doc): return expect_docstring = False @@ -1018,9 +1017,9 @@ class AssertionRewriter(ast.NodeVisitor): e.id for e in boolop.values[:i] if hasattr(e, "id") ]: pytest_temp = self.variable() - self.variables_overwrite[self.scope][target_id] = v.left # type:ignore[assignment] + self.variables_overwrite[self.scope][target_id] = v.left # type: ignore[assignment] # mypy's false positive, we're checking that the 'target' attribute exists. - v.left.target.id = pytest_temp # type:ignore[attr-defined] + v.left.target.id = pytest_temp # type: ignore[attr-defined] self.push_format_context() res, expl = self.visit(v) body.append(ast.Assign([ast.Name(res_var, ast.Store())], res)) @@ -1065,7 +1064,7 @@ class AssertionRewriter(ast.NodeVisitor): if isinstance(arg, ast.Name) and arg.id in self.variables_overwrite.get( self.scope, {} ): - arg = self.variables_overwrite[self.scope][arg.id] # type:ignore[assignment] + arg = self.variables_overwrite[self.scope][arg.id] # type: ignore[assignment] res, expl = self.visit(arg) arg_expls.append(expl) new_args.append(res) @@ -1074,7 +1073,7 @@ class AssertionRewriter(ast.NodeVisitor): case ast.Name(id=id) if id in self.variables_overwrite.get( self.scope, {} ): - keyword.value = self.variables_overwrite[self.scope][id] # type:ignore[assignment] + keyword.value = self.variables_overwrite[self.scope][id] # type: ignore[assignment] res, expl = self.visit(keyword.value) new_kwargs.append(ast.keyword(keyword.arg, res)) if keyword.arg: @@ -1132,7 +1131,9 @@ class AssertionRewriter(ast.NodeVisitor): case ( ast.NamedExpr(target=ast.Name(id=target_id)), ast.Name(id=name_id), - ) if target_id == name_id: + ) if ( + target_id == name_id + ): next_operand.target.id = self.variable() self.variables_overwrite[self.scope][name_id] = next_operand # type: ignore[assignment] diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/truncate.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/truncate.py index 5820e6e..758de32 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/truncate.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/truncate.py @@ -10,7 +10,6 @@ from _pytest.compat import running_on_ci from _pytest.config import Config from _pytest.nodes import Item - DEFAULT_MAX_LINES = 8 DEFAULT_MAX_CHARS = DEFAULT_MAX_LINES * 80 USAGE_MSG = "use '-vv' to show" diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/util.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/util.py index f35d83a..3eba283 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/assertion/util.py @@ -23,7 +23,6 @@ from _pytest._io.saferepr import saferepr_unlimited from _pytest.compat import running_on_ci from _pytest.config import Config - # The _reprcompare attribute on the util module is used by the new assertion # interpretation code and assertion rewriter to detect this plugin was # loaded and in turn call the hooks defined here as part of the diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/cacheprovider.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/cacheprovider.py index 4383f10..2a1d871 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/cacheprovider.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/cacheprovider.py @@ -32,7 +32,6 @@ from _pytest.nodes import Directory from _pytest.nodes import File from _pytest.reports import TestReport - README_CONTENT = """\ # pytest cache directory # diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/capture.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/capture.py index 6d98676..ba08efe 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/capture.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/capture.py @@ -27,7 +27,6 @@ from typing import NamedTuple from typing import TextIO from typing import TYPE_CHECKING - if TYPE_CHECKING: from typing_extensions import Self @@ -42,7 +41,6 @@ from _pytest.nodes import File from _pytest.nodes import Item from _pytest.reports import CollectReport - _CaptureMethod = Literal["fd", "sys", "no", "tee-sys"] @@ -393,10 +391,10 @@ class SysCaptureBase(CaptureBase[AnyStr]): ) def _assert_state(self, op: str, states: tuple[str, ...]) -> None: - assert self._state in states, ( - "cannot {} in state {!r}: expected one of {}".format( - op, self._state, ", ".join(states) - ) + assert ( + self._state in states + ), "cannot {} in state {!r}: expected one of {}".format( + op, self._state, ", ".join(states) ) def start(self) -> None: @@ -510,10 +508,10 @@ class FDCaptureBase(CaptureBase[AnyStr]): ) def _assert_state(self, op: str, states: tuple[str, ...]) -> None: - assert self._state in states, ( - "cannot {} in state {!r}: expected one of {}".format( - op, self._state, ", ".join(states) - ) + assert ( + self._state in states + ), "cannot {} in state {!r}: expected one of {}".format( + op, self._state, ", ".join(states) ) def start(self) -> None: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/compat.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/compat.py index 72c3d09..c26981b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/compat.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/compat.py @@ -18,7 +18,6 @@ from typing import NoReturn import py - if sys.version_info >= (3, 14): from annotationlib import Format diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py index 6b02e16..fb244ae 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py @@ -74,7 +74,6 @@ from _pytest.stash import Stash from _pytest.warning_types import PytestConfigWarning from _pytest.warning_types import warn_explicit_for - if TYPE_CHECKING: from _pytest.assertion.rewrite import AssertionRewritingHook from _pytest.cacheprovider import Cache @@ -344,7 +343,7 @@ def _prepareconfig( if isinstance(args, os.PathLike): args = [os.fspath(args)] elif not isinstance(args, list): - msg = ( # type:ignore[unreachable] + msg = ( # type: ignore[unreachable] "`args` parameter expected to be a list of strings, got: {!r} (type: {})" ) raise TypeError(msg.format(args, type(args))) @@ -861,9 +860,9 @@ class PytestPluginManager(PluginManager): # "terminal" or "capture". Those plugins are registered under their # basename for historic purposes but must be imported with the # _pytest prefix. - assert isinstance(modname, str), ( - f"module name as text required, got {modname!r}" - ) + assert isinstance( + modname, str + ), f"module name as text required, got {modname!r}" if self.is_blocked(modname) or self.get_plugin(modname) is not None: return @@ -1475,9 +1474,9 @@ class Config: def parse(self, args: list[str], addopts: bool = True) -> None: # Parse given cmdline arguments into this config object. - assert self.args == [], ( - "can only parse cmdline args at most once per Config object" - ) + assert ( + self.args == [] + ), "can only parse cmdline args at most once per Config object" self.hook.pytest_addhooks.call_historic( kwargs=dict(pluginmanager=self.pluginmanager) @@ -2082,8 +2081,7 @@ def parse_warning_filter( * Raises UsageError so we get nice error messages on failure. """ __tracebackhide__ = True - error_template = dedent( - f"""\ + error_template = dedent(f"""\ while parsing the following warning configuration: {arg} @@ -2091,23 +2089,20 @@ def parse_warning_filter( This error occurred: {{error}} - """ - ) + """) parts = arg.split(":") if len(parts) > 5: doc_url = ( "https://docs.python.org/3/library/warnings.html#describing-warning-filters" ) - error = dedent( - f"""\ + error = dedent(f"""\ Too many fields ({len(parts)}), expected at most 5 separated by colons: action:message:category:module:line For more information please consult: {doc_url} - """ - ) + """) raise UsageError(error_template.format(error=error)) while len(parts) < 5: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/argparsing.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/argparsing.py index 8216ad8..9ff5943 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/argparsing.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/argparsing.py @@ -16,7 +16,6 @@ from .exceptions import UsageError import _pytest._io from _pytest.deprecated import check_ispytest - FILE_OR_DIR = "file_or_dir" @@ -186,10 +185,19 @@ class Parser: self, name: str, help: str, - type: Literal[ - "string", "paths", "pathlist", "args", "linelist", "bool", "int", "float" - ] - | None = None, + type: ( + Literal[ + "string", + "paths", + "pathlist", + "args", + "linelist", + "bool", + "int", + "float", + ] + | None + ) = None, default: Any = NOT_SET, *, aliases: Sequence[str] = (), diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/compat.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/compat.py index 21eab4c..9988a17 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/compat.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/config/compat.py @@ -12,7 +12,6 @@ from ..compat import LEGACY_PATH from ..compat import legacy_path from ..deprecated import HOOK_LEGACY_PATH_ARG - # hookname: (Path, LEGACY_PATH) imply_paths_hooks: Mapping[str, tuple[str, str]] = { "pytest_ignore_collect": ("collection_path", "path"), diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/deprecated.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/deprecated.py index cb5d2e9..b5a0505 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/deprecated.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/deprecated.py @@ -18,7 +18,6 @@ from _pytest.warning_types import PytestRemovedIn9Warning from _pytest.warning_types import PytestRemovedIn10Warning from _pytest.warning_types import UnformattedWarning - # set of plugins which have been integrated into the core; we use this list to ignore # them during registration to avoid conflicts DEPRECATED_EXTERNAL_PLUGINS = { diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/doctest.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/doctest.py index cd255f5..0b56a72 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/doctest.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/doctest.py @@ -41,7 +41,6 @@ from _pytest.python import Module from _pytest.python_api import approx from _pytest.warning_types import PytestWarning - if TYPE_CHECKING: import doctest @@ -525,7 +524,7 @@ class DoctestModule(Module): obj = inspect.unwrap(obj) # Type ignored because this is a private function. - return super()._find_lineno( # type:ignore[misc] + return super()._find_lineno( # type: ignore[misc] obj, source_lines, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/faulthandler.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/faulthandler.py index 080cf58..e4797c8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/faulthandler.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/faulthandler.py @@ -10,7 +10,6 @@ from _pytest.nodes import Item from _pytest.stash import StashKey import pytest - fault_handler_original_stderr_fd_key = StashKey[int]() fault_handler_stderr_fd_key = StashKey[int]() diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/fixtures.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/fixtures.py index 27846db..f26d13e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/fixtures.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/fixtures.py @@ -70,7 +70,6 @@ from _pytest.scope import Scope from _pytest.warning_types import PytestRemovedIn9Warning from _pytest.warning_types import PytestWarning - if sys.version_info < (3, 11): from exceptiongroup import BaseExceptionGroup @@ -759,9 +758,9 @@ class SubRequest(FixtureRequest): if node is None and scope is Scope.Class: # Fallback to function item itself. node = self._pyfuncitem - assert node, ( - f'Could not obtain a node for scope "{scope}" for function {self._pyfuncitem!r}' - ) + assert ( + node + ), f'Could not obtain a node for scope "{scope}" for function {self._pyfuncitem!r}' return node def _check_scope( @@ -821,9 +820,9 @@ class FixtureLookupError(LookupError): # new cases it might break. # Add the assert to make it clearer to developer that this will fail, otherwise # it crashes because `fspath` does not get set due to `stack` being empty. - assert self.msg is None or self.fixturestack, ( - "formatrepr assumptions broken, rewrite it to handle it" - ) + assert ( + self.msg is None or self.fixturestack + ), "formatrepr assumptions broken, rewrite it to handle it" if msg is not None: # The last fixture raise an error, let's present # it at the requesting side. @@ -1950,9 +1949,11 @@ def _show_fixtures_per_test(config: Config, session: Session) -> None: if fixture_doc: write_docstring( tw, - fixture_doc.split("\n\n", maxsplit=1)[0] - if verbose <= 0 - else fixture_doc, + ( + fixture_doc.split("\n\n", maxsplit=1)[0] + if verbose <= 0 + else fixture_doc + ), ) else: tw.line(" no docstring available", red=True) diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/hookspec.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/hookspec.py index c5bcc36..0b2be2f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/hookspec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/hookspec.py @@ -15,7 +15,6 @@ from pluggy import HookspecMarker from .deprecated import HOOK_LEGACY_PATH_ARG - if TYPE_CHECKING: import pdb from typing import Literal @@ -1043,7 +1042,7 @@ def pytest_assertion_pass(item: Item, lineno: int, orig: str, expl: str) -> None ), }, ) -def pytest_report_header( # type:ignore[empty-body] +def pytest_report_header( # type: ignore[empty-body] config: Config, start_path: Path, startdir: LEGACY_PATH ) -> str | list[str]: """Return a string or list of strings to be displayed as header info for terminal reporting. @@ -1079,7 +1078,7 @@ def pytest_report_header( # type:ignore[empty-body] ), }, ) -def pytest_report_collectionfinish( # type:ignore[empty-body] +def pytest_report_collectionfinish( # type: ignore[empty-body] config: Config, start_path: Path, startdir: LEGACY_PATH, @@ -1118,7 +1117,7 @@ def pytest_report_collectionfinish( # type:ignore[empty-body] @hookspec(firstresult=True) -def pytest_report_teststatus( # type:ignore[empty-body] +def pytest_report_teststatus( # type: ignore[empty-body] report: CollectReport | TestReport, config: Config ) -> TestShortLogReport | tuple[str, str, str | tuple[str, Mapping[str, bool]]]: """Return result-category, shortletter and verbose word for status @@ -1216,7 +1215,7 @@ def pytest_warning_recorded( # ------------------------------------------------------------------------- -def pytest_markeval_namespace( # type:ignore[empty-body] +def pytest_markeval_namespace( # type: ignore[empty-body] config: Config, ) -> dict[str, Any]: """Called when constructing the globals dictionary used for diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/junitxml.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/junitxml.py index ae8d2b9..871f2e0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/junitxml.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/junitxml.py @@ -30,7 +30,6 @@ from _pytest.stash import StashKey from _pytest.terminal import TerminalReporter import pytest - xml_key = StashKey["LogXML"]() diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/legacypath.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/legacypath.py index 59e8ef6..9d9170f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/legacypath.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/legacypath.py @@ -33,7 +33,6 @@ from _pytest.pytester import RunResult from _pytest.terminal import TerminalReporter from _pytest.tmpdir import TempPathFactory - if TYPE_CHECKING: import pexpect diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/logging.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/logging.py index e4fed57..428440e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/logging.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/logging.py @@ -41,7 +41,6 @@ from _pytest.main import Session from _pytest.stash import StashKey from _pytest.terminal import TerminalReporter - if TYPE_CHECKING: logging_StreamHandler = logging.StreamHandler[StringIO] else: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/main.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/main.py index 9bc930d..346c8f9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/main.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/main.py @@ -48,7 +48,6 @@ from _pytest.runner import collect_one_node from _pytest.runner import SetupState from _pytest.warning_types import PytestWarning - if TYPE_CHECKING: from typing_extensions import Self diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/__init__.py index 841d781..a060f53 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/__init__.py @@ -27,7 +27,6 @@ from _pytest.config.argparsing import NOT_SET from _pytest.config.argparsing import Parser from _pytest.stash import StashKey - if TYPE_CHECKING: from _pytest.nodes import Item diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/expression.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/expression.py index 3bdbd03..550a575 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/expression.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/expression.py @@ -38,7 +38,6 @@ from typing import NoReturn from typing import overload from typing import Protocol - __all__ = [ "Expression", "ExpressionMatcher", diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/structures.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/structures.py index 16bb6d8..8957b5b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/structures.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/mark/structures.py @@ -31,7 +31,6 @@ from _pytest.raises import AbstractRaises from _pytest.scope import _ScopeName from _pytest.warning_types import PytestUnknownMarkWarning - if TYPE_CHECKING: from ..nodes import Node @@ -500,10 +499,12 @@ if TYPE_CHECKING: *conditions: str | bool, reason: str = ..., run: bool = ..., - raises: None - | type[BaseException] - | tuple[type[BaseException], ...] - | AbstractRaises[BaseException] = ..., + raises: ( + None + | type[BaseException] + | tuple[type[BaseException], ...] + | AbstractRaises[BaseException] + ) = ..., strict: bool = ..., ) -> MarkDecorator: ... @@ -514,9 +515,11 @@ if TYPE_CHECKING: argvalues: Iterable[ParameterSet | Sequence[object] | object], *, indirect: bool | Sequence[str] = ..., - ids: Iterable[None | str | float | int | bool] - | Callable[[Any], object | None] - | None = ..., + ids: ( + Iterable[None | str | float | int | bool] + | Callable[[Any], object | None] + | None + ) = ..., scope: _ScopeName | None = ..., ) -> MarkDecorator: ... diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/monkeypatch.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/monkeypatch.py index 07cc3fc..199a5af 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/monkeypatch.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/monkeypatch.py @@ -21,7 +21,6 @@ from _pytest.deprecated import MONKEYPATCH_LEGACY_NAMESPACE_PACKAGES from _pytest.fixtures import fixture from _pytest.warning_types import PytestWarning - RE_IMPORT_ERROR_NAME = re.compile(r"^No module named (.*)$") diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/nodes.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/nodes.py index 6690f6a..ddf3003 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/nodes.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/nodes.py @@ -41,7 +41,6 @@ from _pytest.pathlib import absolutepath from _pytest.stash import Stash from _pytest.warning_types import PytestWarning - if TYPE_CHECKING: from typing_extensions import Self diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pastebin.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pastebin.py index c7b39d9..a0939e3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pastebin.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pastebin.py @@ -14,7 +14,6 @@ from _pytest.stash import StashKey from _pytest.terminal import TerminalReporter import pytest - pastebinfile_key = StashKey[IO[bytes]]() diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pathlib.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pathlib.py index cd15434..0993dd1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pathlib.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pathlib.py @@ -37,7 +37,6 @@ from _pytest.compat import assert_never from _pytest.outcomes import skip from _pytest.warning_types import PytestWarning - if sys.version_info < (3, 11): from importlib._bootstrap_external import _NamespaceLoader as NamespaceLoader else: @@ -73,8 +72,10 @@ def get_lock_path(path: _AnyPurePath) -> _AnyPurePath: def on_rm_rf_error( func: Callable[..., Any] | None, path: str, - excinfo: BaseException - | tuple[type[BaseException], BaseException, types.TracebackType | None], + excinfo: ( + BaseException + | tuple[type[BaseException], BaseException, types.TracebackType | None] + ), *, start_path: Path, ) -> bool: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pytester.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pytester.py index 1cd5f05..f30986b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/pytester.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/pytester.py @@ -67,7 +67,6 @@ from _pytest.reports import TestReport from _pytest.tmpdir import TempPathFactory from _pytest.warning_types import PytestFDWarning - if TYPE_CHECKING: import pexpect diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/python.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/python.py index e637518..bdf7698 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/python.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/python.py @@ -77,7 +77,6 @@ from _pytest.stash import StashKey from _pytest.warning_types import PytestCollectionWarning from _pytest.warning_types import PytestReturnNotNoneWarning - if TYPE_CHECKING: from typing_extensions import Self @@ -959,9 +958,9 @@ class IdMaker: new_id = f"{id}{suffix}{id_suffixes[id]}" resolved_ids[index] = new_id id_suffixes[id] += 1 - assert len(resolved_ids) == len(set(resolved_ids)), ( - f"Internal error: {resolved_ids=}" - ) + assert len(resolved_ids) == len( + set(resolved_ids) + ), f"Internal error: {resolved_ids=}" return resolved_ids def _strict_parametrization_ids_enabled(self) -> bool: diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/python_api.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/python_api.py index 1e389eb..33e8eb7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/python_api.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/python_api.py @@ -13,7 +13,6 @@ import sys from typing import Any from typing import TYPE_CHECKING - if TYPE_CHECKING: from numpy import ndarray diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/raises.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/raises.py index 7c246fd..5eaeea5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/raises.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/raises.py @@ -22,7 +22,6 @@ from _pytest._code.code import stringify_exception from _pytest.outcomes import fail from _pytest.warning_types import PytestWarning - if TYPE_CHECKING: from collections.abc import Callable from collections.abc import Sequence @@ -709,9 +708,9 @@ class RaisesExc(AbstractRaises[BaseExcT_co_default]): fail(f"DID NOT RAISE {self.expected_exceptions[0]!r}") - assert self.excinfo is not None, ( - "Internal error - should have been constructed in __enter__" - ) + assert ( + self.excinfo is not None + ), "Internal error - should have been constructed in __enter__" if not self.matches(exc_val): if self._just_propagate: @@ -928,9 +927,9 @@ class RaisesGroup(AbstractRaises[BaseExceptionGroup[BaseExcT_co]]): @overload def __init__( self: RaisesGroup[BaseExcT_1 | BaseExceptionGroup[BaseExcT_2]], - expected_exception: type[BaseExcT_1] - | RaisesExc[BaseExcT_1] - | RaisesGroup[BaseExcT_2], + expected_exception: ( + type[BaseExcT_1] | RaisesExc[BaseExcT_1] | RaisesGroup[BaseExcT_2] + ), /, *other_exceptions: type[BaseExcT_1] | RaisesExc[BaseExcT_1] @@ -947,9 +946,9 @@ class RaisesGroup(AbstractRaises[BaseExceptionGroup[BaseExcT_co]]): def __init__( self: RaisesGroup[ExcT_1 | BaseExcT_1 | BaseExceptionGroup[BaseExcT_2]], - expected_exception: type[BaseExcT_1] - | RaisesExc[BaseExcT_1] - | RaisesGroup[BaseExcT_2], + expected_exception: ( + type[BaseExcT_1] | RaisesExc[BaseExcT_1] | RaisesGroup[BaseExcT_2] + ), /, *other_exceptions: type[BaseExcT_1] | RaisesExc[BaseExcT_1] @@ -1416,9 +1415,9 @@ class RaisesGroup(AbstractRaises[BaseExceptionGroup[BaseExcT_co]]): if exc_type is None: fail(f"DID NOT RAISE any exception, expected `{self.expected_type()}`") - assert self.excinfo is not None, ( - "Internal error - should have been constructed in __enter__" - ) + assert ( + self.excinfo is not None + ), "Internal error - should have been constructed in __enter__" # group_str is the only thing that differs between RaisesExc and RaisesGroup... # I might just scrap it? Or make it part of fail_reason diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/recwarn.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/recwarn.py index e3db717..74c2e68 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/recwarn.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/recwarn.py @@ -15,7 +15,6 @@ from typing import overload from typing import TYPE_CHECKING from typing import TypeVar - if TYPE_CHECKING: from typing_extensions import Self @@ -26,7 +25,6 @@ from _pytest.fixtures import fixture from _pytest.outcomes import Exit from _pytest.outcomes import fail - T = TypeVar("T") diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/reports.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/reports.py index 011a69d..136c02b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/reports.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/reports.py @@ -35,7 +35,6 @@ from _pytest.nodes import Item from _pytest.outcomes import fail from _pytest.outcomes import skip - if sys.version_info < (3, 11): from exceptiongroup import BaseExceptionGroup @@ -274,9 +273,9 @@ def _format_exception_group_all_skipped_longrepr( excinfo: ExceptionInfo[BaseExceptionGroup[BaseException | BaseExceptionGroup]], ) -> tuple[str, int, str]: r = excinfo._getreprcrash() - assert r is not None, ( - "There should always be a traceback entry for skipping a test." - ) + assert ( + r is not None + ), "There should always be a traceback entry for skipping a test." if all( getattr(skip, "_use_item_location", False) for skip in excinfo.value.exceptions ): @@ -321,11 +320,13 @@ class TestReport(BaseReport): location: tuple[str, int | None, str], keywords: Mapping[str, Any], outcome: Literal["passed", "failed", "skipped"], - longrepr: None - | ExceptionInfo[BaseException] - | tuple[str, int, str] - | str - | TerminalRepr, + longrepr: ( + None + | ExceptionInfo[BaseException] + | tuple[str, int, str] + | str + | TerminalRepr + ), when: Literal["setup", "call", "teardown"], sections: Iterable[tuple[str, str]] = (), duration: float = 0, @@ -412,9 +413,9 @@ class TestReport(BaseReport): elif isinstance(excinfo.value, skip.Exception): outcome = "skipped" r = excinfo._getreprcrash() - assert r is not None, ( - "There should always be a traceback entry for skipping a test." - ) + assert ( + r is not None + ), "There should always be a traceback entry for skipping a test." if excinfo.value._use_item_location: path, line = item.reportinfo()[:2] assert line is not None @@ -466,11 +467,13 @@ class CollectReport(BaseReport): self, nodeid: str, outcome: Literal["passed", "failed", "skipped"], - longrepr: None - | ExceptionInfo[BaseException] - | tuple[str, int, str] - | str - | TerminalRepr, + longrepr: ( + None + | ExceptionInfo[BaseException] + | tuple[str, int, str] + | str + | TerminalRepr + ), result: list[Item | Collector] | None, sections: Iterable[tuple[str, str]] = (), **extra, @@ -496,7 +499,7 @@ class CollectReport(BaseReport): self.__dict__.update(extra) @property - def location( # type:ignore[override] + def location( # type: ignore[override] self, ) -> tuple[str, int | None, str] | None: return (self.fspath, None, self.fspath) diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/runner.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/runner.py index 9c20ff9..ccafe21 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/runner.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/runner.py @@ -36,7 +36,6 @@ from _pytest.outcomes import OutcomeException from _pytest.outcomes import Skipped from _pytest.outcomes import TEST_OUTCOME - if sys.version_info < (3, 11): from exceptiongroup import BaseExceptionGroup @@ -172,7 +171,7 @@ def pytest_runtest_call(item: Item) -> None: del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): - del sys.last_exc # type:ignore[attr-defined] + del sys.last_exc # type: ignore[attr-defined] except AttributeError: pass try: @@ -182,7 +181,7 @@ def pytest_runtest_call(item: Item) -> None: sys.last_type = type(e) sys.last_value = e if sys.version_info >= (3, 12, 0): - sys.last_exc = e # type:ignore[attr-defined] + sys.last_exc = e # type: ignore[attr-defined] assert e.__traceback__ is not None # Skip *this* frame sys.last_traceback = e.__traceback__.tb_next diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/scope.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/scope.py index 2b007e8..7318c26 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/scope.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/scope.py @@ -14,7 +14,6 @@ from enum import Enum from functools import total_ordering from typing import Literal - _ScopeName = Literal["session", "package", "module", "class", "function"] diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/stash.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/stash.py index 6a9ff88..9e2656a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/stash.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/stash.py @@ -5,7 +5,6 @@ from typing import cast from typing import Generic from typing import TypeVar - __all__ = ["Stash", "StashKey"] diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/stepwise.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/stepwise.py index 8901540..23f274c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/stepwise.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/stepwise.py @@ -13,7 +13,6 @@ from _pytest.config.argparsing import Parser from _pytest.main import Session from _pytest.reports import TestReport - if TYPE_CHECKING: from typing_extensions import Self diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/subtests.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/subtests.py index e0ceb27..674c7b5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/subtests.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/subtests.py @@ -38,7 +38,6 @@ from _pytest.runner import check_interactive_exception from _pytest.runner import get_reraise_exceptions from _pytest.stash import StashKey - if TYPE_CHECKING: from typing_extensions import Self diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/terminal.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/terminal.py index e66e4f4..39f40a2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/terminal.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/terminal.py @@ -53,7 +53,6 @@ from _pytest.reports import BaseReport from _pytest.reports import CollectReport from _pytest.reports import TestReport - if TYPE_CHECKING: from _pytest.main import Session @@ -1231,7 +1230,7 @@ class TerminalReporter: return session_duration = self._session_start.elapsed() - (parts, main_color) = self.build_summary_stats_line() + parts, main_color = self.build_summary_stats_line() line_parts = [] display_sep = self.verbosity >= 0 @@ -1460,7 +1459,9 @@ class TerminalReporter: elif deselected == 0: main_color = "green" - collected_output = "%d %s collected" % pluralize(self._numcollected, "test") # noqa: UP031 + collected_output = "%d %s collected" % pluralize( + self._numcollected, "test" + ) # noqa: UP031 parts = [(collected_output, {main_color: True})] else: all_tests_were_deselected = self._numcollected == deselected @@ -1476,7 +1477,9 @@ class TerminalReporter: if errors: main_color = _color_for_type["error"] - parts += [("%d %s" % pluralize(errors, "error"), {main_color: True})] # noqa: UP031 + parts += [ + ("%d %s" % pluralize(errors, "error"), {main_color: True}) + ] # noqa: UP031 return parts, main_color diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/threadexception.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/threadexception.py index eb57783..293309a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/threadexception.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/threadexception.py @@ -16,7 +16,6 @@ from _pytest.stash import StashKey from _pytest.tracemalloc import tracemalloc_message import pytest - if TYPE_CHECKING: pass diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/timing.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/timing.py index 51c3db2..e9a37bb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/timing.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/timing.py @@ -16,7 +16,6 @@ from time import sleep from time import time from typing import TYPE_CHECKING - if TYPE_CHECKING: from pytest import MonkeyPatch @@ -73,7 +72,8 @@ class MockTiming: uses `_pytest.timing` functions. Time is static, and only advances through `sleep` calls, thus tests might sleep over large - numbers and obtain accurate time() calls at the end, making tests reliable and instant.""" + numbers and obtain accurate time() calls at the end, making tests reliable and instant. + """ _current_time: float = datetime(2020, 5, 22, 14, 20, 50).timestamp() diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/tmpdir.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/tmpdir.py index 855ad27..4866e87 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/tmpdir.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/tmpdir.py @@ -32,7 +32,6 @@ from _pytest.nodes import Item from _pytest.reports import TestReport from _pytest.stash import StashKey - tmppath_result_key = StashKey[dict[str, bool]]() RetentionType = Literal["all", "failed", "none"] diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/unittest.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/unittest.py index 23b9272..90fcccf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/unittest.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/unittest.py @@ -38,7 +38,6 @@ from _pytest.runner import check_interactive_exception from _pytest.subtests import SubtestContext from _pytest.subtests import SubtestReport - if sys.version_info[:2] < (3, 11): from exceptiongroup import ExceptionGroup @@ -405,9 +404,11 @@ class TestCaseFunction(Function): self, test_case: Any, test: TestCase, - exc_info: ExceptionInfo[BaseException] - | tuple[type[BaseException], BaseException, TracebackType] - | None, + exc_info: ( + ExceptionInfo[BaseException] + | tuple[type[BaseException], BaseException, TracebackType] + | None + ), ) -> None: exception_info: ExceptionInfo[BaseException] | None match exc_info: @@ -459,9 +460,10 @@ class TestCaseFunction(Function): """Compute or obtain the cached values for subtest errors and non-subtest skips.""" from unittest.case import _SubTest # type: ignore[attr-defined] - assert sys.version_info < (3, 11), ( - "This workaround only should be used in Python 3.10" - ) + assert sys.version_info < ( + 3, + 11, + ), "This workaround only should be used in Python 3.10" if self._cached_errors_and_skips is not None: return self._cached_errors_and_skips @@ -600,7 +602,7 @@ def _handle_twisted_exc_info( # Unfortunately, because we cannot import `twisted.python.failure` at the top of the file # and use it in the signature, we need to use `type:ignore` here because we cannot narrow # the type properly in the `if` statement above. - return rawexcinfo # type:ignore[return-value] + return rawexcinfo # type: ignore[return-value] elif twisted_version is TwistedVersion.Version24: # Twisted calls addError() passing its own classes (like `twisted.python.Failure`), which violates # the `addError()` signature, so we extract the original `sys.exc_info()` tuple which is stored @@ -609,8 +611,8 @@ def _handle_twisted_exc_info( saved_exc_info = getattr(rawexcinfo, TWISTED_RAW_EXCINFO_ATTR) # Delete the attribute from the original object to avoid leaks. delattr(rawexcinfo, TWISTED_RAW_EXCINFO_ATTR) - return saved_exc_info # type:ignore[no-any-return] - return rawexcinfo # type:ignore[return-value] + return saved_exc_info # type: ignore[no-any-return] + return rawexcinfo # type: ignore[return-value] elif twisted_version is TwistedVersion.Version25: if isinstance(rawexcinfo, BaseException): import twisted.python.failure @@ -621,7 +623,7 @@ def _handle_twisted_exc_info( tb = sys.exc_info()[2] return type(rawexcinfo.value), rawexcinfo.value, tb - return rawexcinfo # type:ignore[return-value] + return rawexcinfo # type: ignore[return-value] else: # Ideally we would use assert_never() here, but it is not available in all Python versions # we support, plus we do not require `type_extensions` currently. diff --git a/PPE2/.venv/lib/python3.12/site-packages/_pytest/unraisableexception.py b/PPE2/.venv/lib/python3.12/site-packages/_pytest/unraisableexception.py index 0faca36..67eee94 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_pytest/unraisableexception.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_pytest/unraisableexception.py @@ -16,7 +16,6 @@ from _pytest.stash import StashKey from _pytest.tracemalloc import tracemalloc_message import pytest - if TYPE_CHECKING: pass diff --git a/PPE2/.venv/lib/python3.12/site-packages/_yaml/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/_yaml/__init__.py index 7baa8c4..2e51a6c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/_yaml/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/_yaml/__init__.py @@ -7,7 +7,7 @@ import yaml # in some circumstances, the yaml module we imoprted may be from a different version, so we need # to tread carefully when poking at it here (it may not have the attributes we expect) -if not getattr(yaml, '__with_libyaml__', False): +if not getattr(yaml, "__with_libyaml__", False): from sys import version_info exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError @@ -15,19 +15,20 @@ if not getattr(yaml, '__with_libyaml__', False): else: from yaml._yaml import * import warnings + warnings.warn( - 'The _yaml extension module is now located at yaml._yaml' - ' and its location is subject to change. To use the' - ' LibYAML-based parser and emitter, import from `yaml`:' - ' `from yaml import CLoader as Loader, CDumper as Dumper`.', - DeprecationWarning + "The _yaml extension module is now located at yaml._yaml" + " and its location is subject to change. To use the" + " LibYAML-based parser and emitter, import from `yaml`:" + " `from yaml import CLoader as Loader, CDumper as Dumper`.", + DeprecationWarning, ) del warnings # Don't `del yaml` here because yaml is actually an existing # namespace member of _yaml. -__name__ = '_yaml' +__name__ = "_yaml" # If the module is top-level (i.e. not a part of any specific package) # then the attribute should be set to ''. # https://docs.python.org/3.8/library/types.html -__package__ = '' +__package__ = "" diff --git a/PPE2/.venv/lib/python3.12/site-packages/black-26.1.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/black-26.1.0.dist-info/WHEEL index e747794..0dd39c1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/black-26.1.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/black-26.1.0.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: hatchling 1.28.0 Root-Is-Purelib: false Tag: cp312-cp312-macosx_11_0_arm64 Generator: delocate 0.13.0 - diff --git a/PPE2/.venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py b/PPE2/.venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py index c84fe62..a460cd7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py +++ b/PPE2/.venv/lib/python3.12/site-packages/black/handle_ipynb_magics.py @@ -13,30 +13,36 @@ from black.mode import Mode from black.output import out from black.report import NothingChanged -TRANSFORMED_MAGICS = frozenset(( - "get_ipython().run_cell_magic", - "get_ipython().system", - "get_ipython().getoutput", - "get_ipython().run_line_magic", -)) -TOKENS_TO_IGNORE = frozenset(( - "ENDMARKER", - "NL", - "NEWLINE", - "COMMENT", - "DEDENT", - "UNIMPORTANT_WS", - "ESCAPED_NL", -)) -PYTHON_CELL_MAGICS = frozenset(( - "capture", - "prun", - "pypy", - "python", - "python3", - "time", - "timeit", -)) +TRANSFORMED_MAGICS = frozenset( + ( + "get_ipython().run_cell_magic", + "get_ipython().system", + "get_ipython().getoutput", + "get_ipython().run_line_magic", + ) +) +TOKENS_TO_IGNORE = frozenset( + ( + "ENDMARKER", + "NL", + "NEWLINE", + "COMMENT", + "DEDENT", + "UNIMPORTANT_WS", + "ESCAPED_NL", + ) +) +PYTHON_CELL_MAGICS = frozenset( + ( + "capture", + "prun", + "pypy", + "python", + "python3", + "time", + "timeit", + ) +) @dataclasses.dataclass(frozen=True) diff --git a/PPE2/.venv/lib/python3.12/site-packages/black/mode.py b/PPE2/.venv/lib/python3.12/site-packages/black/mode.py index c2d98d9..860f7e2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/black/mode.py +++ b/PPE2/.venv/lib/python3.12/site-packages/black/mode.py @@ -309,16 +309,18 @@ class Mode: return ".".join(parts) def __hash__(self) -> int: - return hash(( - frozenset(self.target_versions), - self.line_length, - self.string_normalization, - self.is_pyi, - self.is_ipynb, - self.skip_source_first_line, - self.magic_trailing_comma, - frozenset(self.python_cell_magics), - self.preview, - self.unstable, - frozenset(self.enabled_features), - )) + return hash( + ( + frozenset(self.target_versions), + self.line_length, + self.string_normalization, + self.is_pyi, + self.is_ipynb, + self.skip_source_first_line, + self.magic_trailing_comma, + frozenset(self.python_cell_magics), + self.preview, + self.unstable, + frozenset(self.enabled_features), + ) + ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/cfgv-3.5.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/cfgv-3.5.0.dist-info/WHEEL index d02d2a2..a1c809e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/cfgv-3.5.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/cfgv-3.5.0.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: setuptools (75.5.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/cfgv.py b/PPE2/.venv/lib/python3.12/site-packages/cfgv.py index 6ef6349..41fc3e4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/cfgv.py +++ b/PPE2/.venv/lib/python3.12/site-packages/cfgv.py @@ -14,17 +14,17 @@ class ValidationError(ValueError): self.ctx = ctx def __str__(self): - out = '\n' + out = "\n" err = self while err.ctx is not None: - out += f'==> {err.ctx}\n' + out += f"==> {err.ctx}\n" err = err.error_msg - out += f'=====> {err.error_msg}' + out += f"=====> {err.error_msg}" return out -MISSING = collections.namedtuple('Missing', ())() -type(MISSING).__repr__ = lambda self: 'MISSING' +MISSING = collections.namedtuple("Missing", ())() +type(MISSING).__repr__ = lambda self: "MISSING" @contextlib.contextmanager @@ -52,7 +52,7 @@ def _dct_noop(self, dct): def _check_optional(self, dct): if self.key not in dct: return - with validate_context(f'At key: {self.key}'): + with validate_context(f"At key: {self.key}"): self.check_fn(dct[self.key]) @@ -67,7 +67,7 @@ def _remove_default_optional(self, dct): def _require_key(self, dct): if self.key not in dct: - raise ValidationError(f'Missing required key: {self.key}') + raise ValidationError(f"Missing required key: {self.key}") def _check_required(self, dct): @@ -79,6 +79,7 @@ def _check_required(self, dct): def _check_fn_recurse(self): def check_fn(val): validate(val, self.schema) + return check_fn @@ -106,18 +107,16 @@ def _get_check_conditional(inner): def _check_conditional(self, dct): if dct.get(self.condition_key, MISSING) == self.condition_value: inner(self, dct) - elif ( - self.condition_key in dct and - self.ensure_absent and self.key in dct - ): - if hasattr(self.condition_value, 'describe_opposite'): + elif self.condition_key in dct and self.ensure_absent and self.key in dct: + if hasattr(self.condition_value, "describe_opposite"): explanation = self.condition_value.describe_opposite() else: - explanation = f'is not {self.condition_value!r}' + explanation = f"is not {self.condition_value!r}" raise ValidationError( - f'Expected {self.key} to be absent when {self.condition_key} ' - f'{explanation}, found {self.key}: {dct[self.key]!r}', + f"Expected {self.key} to be absent when {self.condition_key} " + f"{explanation}, found {self.key}: {dct[self.key]!r}", ) + return _check_conditional @@ -144,11 +143,11 @@ def _remove_default_conditional_recurse(self, dct): def _no_additional_keys_check(self, dct): extra = sorted(set(dct) - set(self.keys)) if extra: - extra_s = ', '.join(str(x) for x in extra) - keys_s = ', '.join(str(x) for x in self.keys) + extra_s = ", ".join(str(x) for x in extra) + keys_s = ", ".join(str(x) for x in self.keys) raise ValidationError( - f'Additional keys found: {extra_s}. ' - f'Only these keys are allowed: {keys_s}', + f"Additional keys found: {extra_s}. " + f"Only these keys are allowed: {keys_s}", ) @@ -158,45 +157,51 @@ def _warn_additional_keys_check(self, dct): self.callback(extra, self.keys, dct) -Required = collections.namedtuple('Required', ('key', 'check_fn')) +Required = collections.namedtuple("Required", ("key", "check_fn")) Required.check = _check_required Required.apply_default = _dct_noop Required.remove_default = _dct_noop -RequiredRecurse = collections.namedtuple('RequiredRecurse', ('key', 'schema')) +RequiredRecurse = collections.namedtuple("RequiredRecurse", ("key", "schema")) RequiredRecurse.check = _check_required RequiredRecurse.check_fn = _check_fn_recurse RequiredRecurse.apply_default = _apply_default_required_recurse RequiredRecurse.remove_default = _remove_default_required_recurse -Optional = collections.namedtuple('Optional', ('key', 'check_fn', 'default')) +Optional = collections.namedtuple("Optional", ("key", "check_fn", "default")) Optional.check = _check_optional Optional.apply_default = _apply_default_optional Optional.remove_default = _remove_default_optional OptionalRecurse = collections.namedtuple( - 'OptionalRecurse', ('key', 'schema', 'default'), + "OptionalRecurse", + ("key", "schema", "default"), ) OptionalRecurse.check = _check_optional OptionalRecurse.check_fn = _check_fn_recurse OptionalRecurse.apply_default = _apply_default_optional_recurse OptionalRecurse.remove_default = _remove_default_optional_recurse OptionalNoDefault = collections.namedtuple( - 'OptionalNoDefault', ('key', 'check_fn'), + "OptionalNoDefault", + ("key", "check_fn"), ) OptionalNoDefault.check = _check_optional OptionalNoDefault.apply_default = _dct_noop OptionalNoDefault.remove_default = _dct_noop Conditional = collections.namedtuple( - 'Conditional', - ('key', 'check_fn', 'condition_key', 'condition_value', 'ensure_absent'), + "Conditional", + ("key", "check_fn", "condition_key", "condition_value", "ensure_absent"), ) Conditional.__new__.__defaults__ = (False,) Conditional.check = _get_check_conditional(_check_required) Conditional.apply_default = _dct_noop Conditional.remove_default = _dct_noop ConditionalOptional = collections.namedtuple( - 'ConditionalOptional', + "ConditionalOptional", ( - 'key', 'check_fn', 'default', 'condition_key', 'condition_value', - 'ensure_absent', + "key", + "check_fn", + "default", + "condition_key", + "condition_value", + "ensure_absent", ), ) ConditionalOptional.__new__.__defaults__ = (False,) @@ -204,27 +209,28 @@ ConditionalOptional.check = _get_check_conditional(_check_optional) ConditionalOptional.apply_default = _apply_default_conditional_optional ConditionalOptional.remove_default = _remove_default_conditional_optional ConditionalRecurse = collections.namedtuple( - 'ConditionalRecurse', - ('key', 'schema', 'condition_key', 'condition_value', 'ensure_absent'), + "ConditionalRecurse", + ("key", "schema", "condition_key", "condition_value", "ensure_absent"), ) ConditionalRecurse.__new__.__defaults__ = (False,) ConditionalRecurse.check = _get_check_conditional(_check_required) ConditionalRecurse.check_fn = _check_fn_recurse ConditionalRecurse.apply_default = _apply_default_conditional_recurse ConditionalRecurse.remove_default = _remove_default_conditional_recurse -NoAdditionalKeys = collections.namedtuple('NoAdditionalKeys', ('keys',)) +NoAdditionalKeys = collections.namedtuple("NoAdditionalKeys", ("keys",)) NoAdditionalKeys.check = _no_additional_keys_check NoAdditionalKeys.apply_default = _dct_noop NoAdditionalKeys.remove_default = _dct_noop WarnAdditionalKeys = collections.namedtuple( - 'WarnAdditionalKeys', ('keys', 'callback'), + "WarnAdditionalKeys", + ("keys", "callback"), ) WarnAdditionalKeys.check = _warn_additional_keys_check WarnAdditionalKeys.apply_default = _dct_noop WarnAdditionalKeys.remove_default = _dct_noop -class Map(collections.namedtuple('Map', ('object_name', 'id_key', 'items'))): +class Map(collections.namedtuple("Map", ("object_name", "id_key", "items"))): __slots__ = () def __new__(cls, object_name, id_key, *items): @@ -233,14 +239,13 @@ class Map(collections.namedtuple('Map', ('object_name', 'id_key', 'items'))): def check(self, v): if not isinstance(v, dict): raise ValidationError( - f'Expected a {self.object_name} map but got a ' - f'{type(v).__name__}', + f"Expected a {self.object_name} map but got a " f"{type(v).__name__}", ) if self.id_key is None: - context = f'At {self.object_name}()' + context = f"At {self.object_name}()" else: key_v_s = v.get(self.id_key, MISSING) - context = f'At {self.object_name}({self.id_key}={key_v_s!r})' + context = f"At {self.object_name}({self.id_key}={key_v_s!r})" with validate_context(context): for item in self.items: item.check(v) @@ -259,40 +264,33 @@ class Map(collections.namedtuple('Map', ('object_name', 'id_key', 'items'))): class KeyValueMap( - collections.namedtuple( - 'KeyValueMap', - ('object_name', 'check_key_fn', 'value_schema'), - ), + collections.namedtuple( + "KeyValueMap", + ("object_name", "check_key_fn", "value_schema"), + ), ): __slots__ = () def check(self, v): if not isinstance(v, dict): raise ValidationError( - f'Expected a {self.object_name} map but got a ' - f'{type(v).__name__}', + f"Expected a {self.object_name} map but got a " f"{type(v).__name__}", ) - with validate_context(f'At {self.object_name}()'): + with validate_context(f"At {self.object_name}()"): for k, val in v.items(): - with validate_context(f'For key: {k}'): + with validate_context(f"For key: {k}"): self.check_key_fn(k) - with validate_context(f'At key: {k}'): + with validate_context(f"At key: {k}"): validate(val, self.value_schema) def apply_defaults(self, v): - return { - k: apply_defaults(val, self.value_schema) - for k, val in v.items() - } + return {k: apply_defaults(val, self.value_schema) for k, val in v.items()} def remove_defaults(self, v): - return { - k: remove_defaults(val, self.value_schema) - for k, val in v.items() - } + return {k: remove_defaults(val, self.value_schema) for k, val in v.items()} -class Array(collections.namedtuple('Array', ('of', 'allow_empty'))): +class Array(collections.namedtuple("Array", ("of", "allow_empty"))): __slots__ = () def __new__(cls, of, allow_empty=True): @@ -314,37 +312,37 @@ class Array(collections.namedtuple('Array', ('of', 'allow_empty'))): return [remove_defaults(val, self.of) for val in v] -class Not(collections.namedtuple('Not', ('val',))): +class Not(collections.namedtuple("Not", ("val",))): __slots__ = () def describe_opposite(self): - return f'is {self.val!r}' + return f"is {self.val!r}" def __eq__(self, other): return other is not MISSING and other != self.val -class NotIn(collections.namedtuple('NotIn', ('values',))): +class NotIn(collections.namedtuple("NotIn", ("values",))): __slots__ = () def __new__(cls, *values): return super().__new__(cls, values=values) def describe_opposite(self): - return f'is any of {self.values!r}' + return f"is any of {self.values!r}" def __eq__(self, other): return other is not MISSING and other not in self.values -class In(collections.namedtuple('In', ('values',))): +class In(collections.namedtuple("In", ("values",))): __slots__ = () def __new__(cls, *values): return super().__new__(cls, values=values) def describe_opposite(self): - return f'is not any of {self.values!r}' + return f"is not any of {self.values!r}" def __eq__(self, other): return other is not MISSING and other in self.values @@ -359,25 +357,27 @@ def check_type(tp, typename=None): if not isinstance(v, tp): typename_s = typename or tp.__name__ raise ValidationError( - f'Expected {typename_s} got {type(v).__name__}', + f"Expected {typename_s} got {type(v).__name__}", ) + return check_type_fn check_bool = check_type(bool) check_bytes = check_type(bytes) check_int = check_type(int) -check_string = check_type(str, typename='string') -check_text = check_type(str, typename='text') +check_string = check_type(str, typename="string") +check_text = check_type(str, typename="text") def check_one_of(possible): def check_one_of_fn(v): if v not in possible: - possible_s = ', '.join(str(x) for x in sorted(possible)) + possible_s = ", ".join(str(x) for x in sorted(possible)) raise ValidationError( - f'Expected one of {possible_s} but got: {v!r}', + f"Expected one of {possible_s} but got: {v!r}", ) + return check_one_of_fn @@ -385,19 +385,20 @@ def check_regex(v): try: re.compile(v) except re.error: - raise ValidationError(f'{v!r} is not a valid python regex') + raise ValidationError(f"{v!r} is not a valid python regex") def check_array(inner_check): def check_array_fn(v): if not isinstance(v, (list, tuple)): raise ValidationError( - f'Expected array but got {type(v).__name__!r}', + f"Expected array but got {type(v).__name__!r}", ) for i, val in enumerate(v): - with validate_context(f'At index {i}'): + with validate_context(f"At index {i}"): inner_check(val) + return check_array_fn @@ -405,6 +406,7 @@ def check_and(*fns): def check(v): for fn in fns: fn(v) + return check @@ -422,21 +424,21 @@ def remove_defaults(v, schema): def load_from_filename( - filename, - schema, - load_strategy, - exc_tp=ValidationError, - *, - display_filename=None, + filename, + schema, + load_strategy, + exc_tp=ValidationError, + *, + display_filename=None, ): display_filename = display_filename or filename with reraise_as(exc_tp): if not os.path.isfile(filename): - raise ValidationError(f'{display_filename} is not a file') + raise ValidationError(f"{display_filename} is not a file") - with validate_context(f'File {display_filename}'): + with validate_context(f"File {display_filename}"): try: - with open(filename, encoding='utf-8') as f: + with open(filename, encoding="utf-8") as f: contents = f.read() except UnicodeDecodeError as e: raise ValidationError(str(e)) diff --git a/PPE2/.venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA index 3f433af..d0140ce 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA @@ -81,4 +81,3 @@ contribute, including reporting issues, requesting features, asking or answering questions, and making PRs. [contrib]: https://palletsprojects.com/contributing/ - diff --git a/PPE2/.venv/lib/python3.12/site-packages/click/core.py b/PPE2/.venv/lib/python3.12/site-packages/click/core.py index 57f549c..dfc01bd 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/click/core.py +++ b/PPE2/.venv/lib/python3.12/site-packages/click/core.py @@ -1556,9 +1556,9 @@ class Group(Command): def __init__( self, name: str | None = None, - commands: cabc.MutableMapping[str, Command] - | cabc.Sequence[Command] - | None = None, + commands: ( + cabc.MutableMapping[str, Command] | cabc.Sequence[Command] | None + ) = None, invoke_without_command: bool = False, no_args_is_help: bool | None = None, subcommand_metavar: str | None = None, @@ -1659,9 +1659,9 @@ class Group(Command): func: t.Callable[..., t.Any] | None = None if args and callable(args[0]): - assert len(args) == 1 and not kwargs, ( - "Use 'command(**kwargs)(callable)' to provide arguments." - ) + assert ( + len(args) == 1 and not kwargs + ), "Use 'command(**kwargs)(callable)' to provide arguments." (func,) = args args = () @@ -1708,9 +1708,9 @@ class Group(Command): func: t.Callable[..., t.Any] | None = None if args and callable(args[0]): - assert len(args) == 1 and not kwargs, ( - "Use 'group(**kwargs)(callable)' to provide arguments." - ) + assert ( + len(args) == 1 and not kwargs + ), "Use 'group(**kwargs)(callable)' to provide arguments." (func,) = args args = () @@ -2140,10 +2140,10 @@ class Parameter: expose_value: bool = True, is_eager: bool = False, envvar: str | cabc.Sequence[str] | None = None, - shell_complete: t.Callable[ - [Context, Parameter, str], list[CompletionItem] | list[str] - ] - | None = None, + shell_complete: ( + t.Callable[[Context, Parameter, str], list[CompletionItem] | list[str]] + | None + ) = None, deprecated: bool | str = False, ) -> None: self.name: str | None @@ -2594,9 +2594,9 @@ class Parameter: ): # Click is logically enforcing that the name is None if the parameter is # not to be exposed. We still assert it here to please the type checker. - assert self.name is not None, ( - f"{self!r} parameter's name should not be None when exposing value." - ) + assert ( + self.name is not None + ), f"{self!r} parameter's name should not be None when exposing value." ctx.params[self.name] = value return value, args diff --git a/PPE2/.venv/lib/python3.12/site-packages/click/testing.py b/PPE2/.venv/lib/python3.12/site-packages/click/testing.py index f6f60b8..16acc21 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/click/testing.py +++ b/PPE2/.venv/lib/python3.12/site-packages/click/testing.py @@ -179,8 +179,9 @@ class Result: return_value: t.Any, exit_code: int, exception: BaseException | None, - exc_info: tuple[type[BaseException], BaseException, TracebackType] - | None = None, + exc_info: ( + tuple[type[BaseException], BaseException, TracebackType] | None + ) = None, ): self.runner = runner self.stdout_bytes = stdout_bytes diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/METADATA index 5735826..d5af575 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/METADATA @@ -114,5 +114,3 @@ Everyone interacting in the distlib project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the `PyPA Code of Conduct`_. .. _PyPA Code of Conduct: https://www.pypa.io/en/latest/code-of-conduct/ - - diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/WHEEL index 0b18a28..488b6b9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib-0.4.0.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: bdist_wheel (0.37.1) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/__init__.py index 4e82943..e223c65 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/__init__.py @@ -6,7 +6,7 @@ # import logging -__version__ = '0.4.0' +__version__ = "0.4.0" class DistlibException(Exception): diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/compat.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/compat.py index ca561dd..1ffcbd7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/compat.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/compat.py @@ -18,24 +18,41 @@ except ImportError: # pragma: no cover if sys.version_info[0] < 3: # pragma: no cover from StringIO import StringIO - string_types = basestring, + + string_types = (basestring,) text_type = unicode from types import FileType as file_type import __builtin__ as builtins import ConfigParser as configparser from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit - from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, - pathname2url, ContentTooShortError, splittype) + from urllib import ( + urlretrieve, + quote as _quote, + unquote, + url2pathname, + pathname2url, + ContentTooShortError, + splittype, + ) def quote(s): if isinstance(s, unicode): - s = s.encode('utf-8') + s = s.encode("utf-8") return _quote(s) import urllib2 - from urllib2 import (Request, urlopen, URLError, HTTPError, - HTTPBasicAuthHandler, HTTPPasswordMgr, HTTPHandler, - HTTPRedirectHandler, build_opener) + from urllib2 import ( + Request, + urlopen, + URLError, + HTTPError, + HTTPBasicAuthHandler, + HTTPPasswordMgr, + HTTPHandler, + HTTPRedirectHandler, + build_opener, + ) + if ssl: from urllib2 import HTTPSHandler import httplib @@ -43,6 +60,7 @@ if sys.version_info[0] < 3: # pragma: no cover import Queue as queue from HTMLParser import HTMLParser import htmlentitydefs + raw_input = raw_input from itertools import ifilter as filter from itertools import ifilterfalse as filterfalse @@ -62,17 +80,35 @@ if sys.version_info[0] < 3: # pragma: no cover else: # pragma: no cover from io import StringIO - string_types = str, + + string_types = (str,) text_type = str from io import TextIOWrapper as file_type import builtins import configparser - from urllib.parse import (urlparse, urlunparse, urljoin, quote, unquote, - urlsplit, urlunsplit, splittype) - from urllib.request import (urlopen, urlretrieve, Request, url2pathname, - pathname2url, HTTPBasicAuthHandler, - HTTPPasswordMgr, HTTPHandler, - HTTPRedirectHandler, build_opener) + from urllib.parse import ( + urlparse, + urlunparse, + urljoin, + quote, + unquote, + urlsplit, + urlunsplit, + splittype, + ) + from urllib.request import ( + urlopen, + urlretrieve, + Request, + url2pathname, + pathname2url, + HTTPBasicAuthHandler, + HTTPPasswordMgr, + HTTPHandler, + HTTPRedirectHandler, + build_opener, + ) + if ssl: from urllib.request import HTTPSHandler from urllib.error import HTTPError, URLError, ContentTooShortError @@ -82,8 +118,10 @@ else: # pragma: no cover import queue from html.parser import HTMLParser import html.entities as htmlentitydefs + raw_input = input from itertools import filterfalse + filter = filter try: @@ -102,17 +140,18 @@ except ImportError: # pragma: no cover if not dn: return False - parts = dn.split('.') + parts = dn.split(".") leftmost, remainder = parts[0], parts[1:] - wildcards = leftmost.count('*') + wildcards = leftmost.count("*") if wildcards > max_wildcards: # Issue #17980: avoid denials of service by refusing more # than one wildcard per fragment. A survey of established # policy among SSL implementations showed it to be a # reasonable choice. raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) + "too many wildcards in certificate DNS name: " + repr(dn) + ) # speed up common case w/o wildcards if not wildcards: @@ -121,11 +160,11 @@ except ImportError: # pragma: no cover # RFC 6125, section 6.4.3, subitem 1. # The client SHOULD NOT attempt to match a presented identifier in which # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': + if leftmost == "*": # When '*' is a fragment by itself, it matches a non-empty dotless # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): + pats.append("[^.]+") + elif leftmost.startswith("xn--") or hostname.startswith("xn--"): # RFC 6125, section 6.4.3, subitem 3. # The client SHOULD NOT attempt to match a presented identifier # where the wildcard character is embedded within an A-label or @@ -133,13 +172,13 @@ except ImportError: # pragma: no cover pats.append(re.escape(leftmost)) else: # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) + pats.append(re.escape(leftmost).replace(r"\*", "[^.]*")) # add the remaining fragments, ignore any wildcards for frag in remainder: pats.append(re.escape(frag)) - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) + pat = re.compile(r"\A" + r"\.".join(pats) + r"\Z", re.IGNORECASE) return pat.match(hostname) def match_hostname(cert, hostname): @@ -151,38 +190,43 @@ except ImportError: # pragma: no cover returns nothing. """ if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") + raise ValueError( + "empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED" + ) dnsnames = [] - san = cert.get('subjectAltName', ()) + san = cert.get("subjectAltName", ()) for key, value in san: - if key == 'DNS': + if key == "DNS": if _dnsname_match(value, hostname): return dnsnames.append(value) if not dnsnames: # The subject is only checked when there is no dNSName entry # in subjectAltName - for sub in cert.get('subject', ()): + for sub in cert.get("subject", ()): for key, value in sub: # XXX according to RFC 2818, the most specific Common Name # must be used. - if key == 'commonName': + if key == "commonName": if _dnsname_match(value, hostname): return dnsnames.append(value) if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" % - (hostname, ', '.join(map(repr, dnsnames)))) + raise CertificateError( + "hostname %r " + "doesn't match either of %s" + % (hostname, ", ".join(map(repr, dnsnames))) + ) elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" % - (hostname, dnsnames[0])) + raise CertificateError( + "hostname %r " "doesn't match %r" % (hostname, dnsnames[0]) + ) else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") + raise CertificateError( + "no appropriate commonName or " "subjectAltName fields were found" + ) try: @@ -217,7 +261,7 @@ except ImportError: # pragma: no cover # Additionally check that `file` is not a directory, as on Windows # directories pass the os.access check. def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn)) + return os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn) # If we're given a path with a directory part, look it up directly rather # than referring to PATH directories. This includes checking relative to the @@ -269,7 +313,7 @@ except ImportError: # pragma: no cover from zipfile import ZipFile as BaseZipFile -if hasattr(BaseZipFile, '__enter__'): # pragma: no cover +if hasattr(BaseZipFile, "__enter__"): # pragma: no cover ZipFile = BaseZipFile else: # pragma: no cover from zipfile import ZipExtFile as BaseZipExtFile @@ -306,13 +350,13 @@ except ImportError: # pragma: no cover def python_implementation(): """Return a string identifying the Python implementation.""" - if 'PyPy' in sys.version: - return 'PyPy' - if os.name == 'java': - return 'Jython' - if sys.version.startswith('IronPython'): - return 'IronPython' - return 'CPython' + if "PyPy" in sys.version: + return "PyPy" + if os.name == "java": + return "Jython" + if sys.version.startswith("IronPython"): + return "IronPython" + return "CPython" import sysconfig @@ -336,11 +380,11 @@ except AttributeError: # pragma: no cover # sys.getfilesystemencoding(): the return value is "the user’s preference # according to the result of nl_langinfo(CODESET), or None if the # nl_langinfo(CODESET) failed." - _fsencoding = sys.getfilesystemencoding() or 'utf-8' - if _fsencoding == 'mbcs': - _fserrors = 'strict' + _fsencoding = sys.getfilesystemencoding() or "utf-8" + if _fsencoding == "mbcs": + _fserrors = "strict" else: - _fserrors = 'surrogateescape' + _fserrors = "surrogateescape" def fsencode(filename): if isinstance(filename, bytes): @@ -348,8 +392,7 @@ except AttributeError: # pragma: no cover elif isinstance(filename, text_type): return filename.encode(_fsencoding, _fserrors) else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) + raise TypeError("expect bytes or str, not %s" % type(filename).__name__) def fsdecode(filename): if isinstance(filename, text_type): @@ -357,8 +400,7 @@ except AttributeError: # pragma: no cover elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) + raise TypeError("expect bytes or str, not %s" % type(filename).__name__) try: @@ -374,8 +416,9 @@ except ImportError: # pragma: no cover enc = orig_enc[:12].lower().replace("_", "-") if enc == "utf-8" or enc.startswith("utf-8-"): return "utf-8" - if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ - enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or enc.startswith( + ("latin-1-", "iso-8859-1-", "iso-latin-1-") + ): return "iso-8859-1" return orig_enc @@ -402,24 +445,24 @@ except ImportError: # pragma: no cover filename = None bom_found = False encoding = None - default = 'utf-8' + default = "utf-8" def read_or_stop(): try: return readline() except StopIteration: - return b'' + return b"" def find_cookie(line): try: # Decode as UTF-8. Either the line is an encoding declaration, # in which case it should be pure ASCII, or it must be UTF-8 # per default encoding. - line_string = line.decode('utf-8') + line_string = line.decode("utf-8") except UnicodeDecodeError: msg = "invalid or missing encoding declaration" if filename is not None: - msg = '{} for {!r}'.format(msg, filename) + msg = "{} for {!r}".format(msg, filename) raise SyntaxError(msg) matches = cookie_re.findall(line_string) @@ -433,27 +476,25 @@ except ImportError: # pragma: no cover if filename is None: msg = "unknown encoding: " + encoding else: - msg = "unknown encoding for {!r}: {}".format( - filename, encoding) + msg = "unknown encoding for {!r}: {}".format(filename, encoding) raise SyntaxError(msg) if bom_found: - if codec.name != 'utf-8': + if codec.name != "utf-8": # This behaviour mimics the Python interpreter if filename is None: - msg = 'encoding problem: utf-8' + msg = "encoding problem: utf-8" else: - msg = 'encoding problem for {!r}: utf-8'.format( - filename) + msg = "encoding problem for {!r}: utf-8".format(filename) raise SyntaxError(msg) - encoding += '-sig' + encoding += "-sig" return encoding first = read_or_stop() if first.startswith(BOM_UTF8): bom_found = True first = first[3:] - default = 'utf-8-sig' + default = "utf-8-sig" if not first: return default, [] @@ -491,11 +532,11 @@ except ImportError: # pragma: no cover from reprlib import recursive_repr as _recursive_repr except ImportError: - def _recursive_repr(fillvalue='...'): - ''' + def _recursive_repr(fillvalue="..."): + """ Decorator to make a repr function return fillvalue for a recursive call - ''' + """ def decorating_function(user_function): repr_running = set() @@ -512,17 +553,16 @@ except ImportError: # pragma: no cover return result # Can't use functools.wraps() here because of bootstrap issues - wrapper.__module__ = getattr(user_function, '__module__') - wrapper.__doc__ = getattr(user_function, '__doc__') - wrapper.__name__ = getattr(user_function, '__name__') - wrapper.__annotations__ = getattr(user_function, - '__annotations__', {}) + wrapper.__module__ = getattr(user_function, "__module__") + wrapper.__doc__ = getattr(user_function, "__doc__") + wrapper.__name__ = getattr(user_function, "__name__") + wrapper.__annotations__ = getattr(user_function, "__annotations__", {}) return wrapper return decorating_function class ChainMap(MutableMapping): - ''' + """ A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. @@ -532,13 +572,13 @@ except ImportError: # pragma: no cover Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. - ''' + """ def __init__(self, *maps): - '''Initialize a ChainMap by setting *maps* to the given mappings. + """Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. - ''' + """ self.maps = list(maps) or [{}] # always at least one map def __missing__(self, key): @@ -547,19 +587,16 @@ except ImportError: # pragma: no cover def __getitem__(self, key): for mapping in self.maps: try: - return mapping[ - key] # can't use 'key in mapping' with defaultdict + return mapping[key] # can't use 'key in mapping' with defaultdict except KeyError: pass - return self.__missing__( - key) # support subclasses that define __missing__ + return self.__missing__(key) # support subclasses that define __missing__ def get(self, key, default=None): return self[key] if key in self else default def __len__(self): - return len(set().union( - *self.maps)) # reuses stored hash values if possible + return len(set().union(*self.maps)) # reuses stored hash values if possible def __iter__(self): return iter(set().union(*self.maps)) @@ -572,27 +609,28 @@ except ImportError: # pragma: no cover @_recursive_repr() def __repr__(self): - return '{0.__class__.__name__}({1})'.format( - self, ', '.join(map(repr, self.maps))) + return "{0.__class__.__name__}({1})".format( + self, ", ".join(map(repr, self.maps)) + ) @classmethod def fromkeys(cls, iterable, *args): - 'Create a ChainMap with a single dict created from the iterable.' + "Create a ChainMap with a single dict created from the iterable." return cls(dict.fromkeys(iterable, *args)) def copy(self): - 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' + "New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]" return self.__class__(self.maps[0].copy(), *self.maps[1:]) __copy__ = copy def new_child(self): # like Django's Context.push() - 'New ChainMap with a new dict followed by all previous maps.' + "New ChainMap with a new dict followed by all previous maps." return self.__class__({}, *self.maps) @property def parents(self): # like Django's Context.pop() - 'New ChainMap from maps[1:].' + "New ChainMap from maps[1:]." return self.__class__(*self.maps[1:]) def __setitem__(self, key, value): @@ -602,26 +640,24 @@ except ImportError: # pragma: no cover try: del self.maps[0][key] except KeyError: - raise KeyError( - 'Key not found in the first mapping: {!r}'.format(key)) + raise KeyError("Key not found in the first mapping: {!r}".format(key)) def popitem(self): - 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' + "Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty." try: return self.maps[0].popitem() except KeyError: - raise KeyError('No keys found in the first mapping.') + raise KeyError("No keys found in the first mapping.") def pop(self, key, *args): - 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' + "Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0]." try: return self.maps[0].pop(key, *args) except KeyError: - raise KeyError( - 'Key not found in the first mapping: {!r}'.format(key)) + raise KeyError("Key not found in the first mapping: {!r}".format(key)) def clear(self): - 'Clear maps[0], leaving maps[1:] intact.' + "Clear maps[0], leaving maps[1:] intact." self.maps[0].clear() @@ -630,13 +666,13 @@ try: except ImportError: # pragma: no cover def cache_from_source(path, debug_override=None): - assert path.endswith('.py') + assert path.endswith(".py") if debug_override is None: debug_override = __debug__ if debug_override: - suffix = 'c' + suffix = "c" else: - suffix = 'o' + suffix = "o" return path + suffix @@ -657,7 +693,7 @@ except ImportError: # pragma: no cover pass class OrderedDict(dict): - 'Dictionary that remembers insertion order' + "Dictionary that remembers insertion order" # An inherited dict maps keys to values. # The inherited dict provides __getitem__, __len__, __contains__, and get. @@ -670,14 +706,13 @@ except ImportError: # pragma: no cover # Each link is stored as a list of length three: [PREV, NEXT, KEY]. def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for + """Initialize an ordered dictionary. Signature is the same as for regular dictionaries, but keyword arguments are not recommended because their insertion order is arbitrary. - ''' + """ if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % - len(args)) + raise TypeError("expected at most 1 arguments, got %d" % len(args)) try: self.__root except AttributeError: @@ -687,7 +722,7 @@ except ImportError: # pragma: no cover self.__update(*args, **kwds) def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' + "od.__setitem__(i, y) <==> od[i]=y" # Setting a new item creates a new link which goes at the end of the linked # list, and the inherited dictionary is updated with the new key/value pair. if key not in self: @@ -697,7 +732,7 @@ except ImportError: # pragma: no cover dict_setitem(self, key, value) def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' + "od.__delitem__(y) <==> del od[y]" # Deleting an existing item uses self.__map to find the link which is # then removed by updating the links in the predecessor and successor nodes. dict_delitem(self, key) @@ -706,7 +741,7 @@ except ImportError: # pragma: no cover link_next[0] = link_prev def __iter__(self): - 'od.__iter__() <==> iter(od)' + "od.__iter__() <==> iter(od)" root = self.__root curr = root[1] while curr is not root: @@ -714,7 +749,7 @@ except ImportError: # pragma: no cover curr = curr[1] def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' + "od.__reversed__() <==> reversed(od)" root = self.__root curr = root[0] while curr is not root: @@ -722,7 +757,7 @@ except ImportError: # pragma: no cover curr = curr[0] def clear(self): - 'od.clear() -> None. Remove all items from od.' + "od.clear() -> None. Remove all items from od." try: for node in self.__map.itervalues(): del node[:] @@ -734,12 +769,12 @@ except ImportError: # pragma: no cover dict.clear(self) def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. + """od.popitem() -> (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. - ''' + """ if not self: - raise KeyError('dictionary is empty') + raise KeyError("dictionary is empty") root = self.__root if last: link = root[0] @@ -759,45 +794,47 @@ except ImportError: # pragma: no cover # -- the following methods do not depend on the internal structure -- def keys(self): - 'od.keys() -> list of keys in od' + "od.keys() -> list of keys in od" return list(self) def values(self): - 'od.values() -> list of values in od' + "od.values() -> list of values in od" return [self[key] for key in self] def items(self): - 'od.items() -> list of (key, value) pairs in od' + "od.items() -> list of (key, value) pairs in od" return [(key, self[key]) for key in self] def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' + "od.iterkeys() -> an iterator over the keys in od" return iter(self) def itervalues(self): - 'od.itervalues -> an iterator over the values in od' + "od.itervalues -> an iterator over the values in od" for k in self: yield self[k] def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' + "od.iteritems -> an iterator over the (key, value) items in od" for k in self: yield (k, self[k]) def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + """od.update(E, **F) -> None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v - ''' + """ if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args), )) + raise TypeError( + "update() takes at most 2 positional " + "arguments (%d given)" % (len(args),) + ) elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') + raise TypeError("update() takes at least 1 argument (0 given)") self = args[0] # Make progressively weaker assumptions about "other" other = () @@ -806,7 +843,7 @@ except ImportError: # pragma: no cover if isinstance(other, dict): for key in other: self[key] = other[key] - elif hasattr(other, 'keys'): + elif hasattr(other, "keys"): for key in other.keys(): self[key] = other[key] else: @@ -820,10 +857,10 @@ except ImportError: # pragma: no cover __marker = object() def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + """od.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. - ''' + """ if key in self: result = self[key] del self[key] @@ -833,60 +870,59 @@ except ImportError: # pragma: no cover return default def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + "od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od" if key in self: return self[key] self[key] = default return default def __repr__(self, _repr_running=None): - 'od.__repr__() <==> repr(od)' + "od.__repr__() <==> repr(od)" if not _repr_running: _repr_running = {} call_key = id(self), _get_ident() if call_key in _repr_running: - return '...' + return "..." _repr_running[call_key] = 1 try: if not self: - return '%s()' % (self.__class__.__name__, ) - return '%s(%r)' % (self.__class__.__name__, self.items()) + return "%s()" % (self.__class__.__name__,) + return "%s(%r)" % (self.__class__.__name__, self.items()) finally: del _repr_running[call_key] def __reduce__(self): - 'Return state information for pickling' + "Return state information for pickling" items = [[k, self[k]] for k in self] inst_dict = vars(self).copy() for k in vars(OrderedDict()): inst_dict.pop(k, None) if inst_dict: - return (self.__class__, (items, ), inst_dict) - return self.__class__, (items, ) + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) def copy(self): - 'od.copy() -> a shallow copy of od' + "od.copy() -> a shallow copy of od" return self.__class__(self) @classmethod def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + """OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S and values equal to v (which defaults to None). - ''' + """ d = cls() for key in iterable: d[key] = value return d def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + """od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. - ''' + """ if isinstance(other, OrderedDict): - return len(self) == len( - other) and self.items() == other.items() + return len(self) == len(other) and self.items() == other.items() return dict.__eq__(self, other) def __ne__(self, other): @@ -910,12 +946,12 @@ except ImportError: # pragma: no cover try: from logging.config import BaseConfigurator, valid_ident except ImportError: # pragma: no cover - IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) + IDENTIFIER = re.compile("^[a-z_][a-z0-9_]*$", re.I) def valid_ident(s): m = IDENTIFIER.match(s) if not m: - raise ValueError('Not a valid Python identifier: %r' % s) + raise ValueError("Not a valid Python identifier: %r" % s) return True # The ConvertingXXX classes are wrappers around standard Python containers, @@ -936,8 +972,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -948,8 +983,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -958,8 +992,7 @@ except ImportError: # pragma: no cover value = dict.pop(self, key, default) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -973,8 +1006,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -983,8 +1015,7 @@ except ImportError: # pragma: no cover value = list.pop(self, idx) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self return result @@ -995,8 +1026,7 @@ except ImportError: # pragma: no cover value = tuple.__getitem__(self, key) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -1006,16 +1036,16 @@ except ImportError: # pragma: no cover The configurator base class which defines some useful defaults. """ - CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') + CONVERT_PATTERN = re.compile(r"^(?P[a-z]+)://(?P.*)$") - WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') - DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') - INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') - DIGIT_PATTERN = re.compile(r'^\d+$') + WORD_PATTERN = re.compile(r"^\s*(\w+)\s*") + DOT_PATTERN = re.compile(r"^\.\s*(\w+)\s*") + INDEX_PATTERN = re.compile(r"^\[\s*(\w+)\s*\]\s*") + DIGIT_PATTERN = re.compile(r"^\d+$") value_converters = { - 'ext': 'ext_convert', - 'cfg': 'cfg_convert', + "ext": "ext_convert", + "cfg": "cfg_convert", } # We might want to use a different one, e.g. importlib @@ -1030,12 +1060,12 @@ except ImportError: # pragma: no cover Resolve strings to objects using standard import and attribute syntax. """ - name = s.split('.') + name = s.split(".") used = name.pop(0) try: found = self.importer(used) for frag in name: - used += '.' + frag + used += "." + frag try: found = getattr(found, frag) except AttributeError: @@ -1044,7 +1074,7 @@ except ImportError: # pragma: no cover return found except ImportError: e, tb = sys.exc_info()[1:] - v = ValueError('Cannot resolve %r: %s' % (s, e)) + v = ValueError("Cannot resolve %r: %s" % (s, e)) v.__cause__, v.__traceback__ = e, tb raise v @@ -1059,7 +1089,7 @@ except ImportError: # pragma: no cover if m is None: raise ValueError("Unable to convert %r" % value) else: - rest = rest[m.end():] + rest = rest[m.end() :] d = self.config[m.groups()[0]] while rest: m = self.DOT_PATTERN.match(rest) @@ -1073,17 +1103,16 @@ except ImportError: # pragma: no cover d = d[idx] else: try: - n = int( - idx - ) # try as number first (most likely) + n = int(idx) # try as number first (most likely) d = d[n] except TypeError: d = d[idx] if m: - rest = rest[m.end():] + rest = rest[m.end() :] else: - raise ValueError('Unable to convert ' - '%r at %r' % (value, rest)) + raise ValueError( + "Unable to convert " "%r at %r" % (value, rest) + ) # rest should be empty return d @@ -1093,12 +1122,10 @@ except ImportError: # pragma: no cover replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. """ - if not isinstance(value, ConvertingDict) and isinstance( - value, dict): + if not isinstance(value, ConvertingDict) and isinstance(value, dict): value = ConvertingDict(value) value.configurator = self - elif not isinstance(value, ConvertingList) and isinstance( - value, list): + elif not isinstance(value, ConvertingList) and isinstance(value, list): value = ConvertingList(value) value.configurator = self elif not isinstance(value, ConvertingTuple) and isinstance(value, tuple): @@ -1108,20 +1135,20 @@ except ImportError: # pragma: no cover m = self.CONVERT_PATTERN.match(value) if m: d = m.groupdict() - prefix = d['prefix'] + prefix = d["prefix"] converter = self.value_converters.get(prefix, None) if converter: - suffix = d['suffix'] + suffix = d["suffix"] converter = getattr(self, converter) value = converter(suffix) return value def configure_custom(self, config): """Configure an object with a user-supplied factory.""" - c = config.pop('()') + c = config.pop("()") if not callable(c): c = self.resolve(c) - props = config.pop('.', None) + props = config.pop(".", None) # Check for valid identifiers kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) result = c(**kwargs) diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/database.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/database.py index c0f896a..8e6f443 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/database.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/database.py @@ -20,22 +20,46 @@ import zipimport from . import DistlibException, resources from .compat import StringIO from .version import get_scheme, UnsupportedVersionError -from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME) -from .util import (parse_requirement, cached_property, parse_name_and_version, read_exports, write_exports, CSVReader, - CSVWriter) +from .metadata import ( + Metadata, + METADATA_FILENAME, + WHEEL_METADATA_FILENAME, + LEGACY_METADATA_FILENAME, +) +from .util import ( + parse_requirement, + cached_property, + parse_name_and_version, + read_exports, + write_exports, + CSVReader, + CSVWriter, +) __all__ = [ - 'Distribution', 'BaseInstalledDistribution', 'InstalledDistribution', 'EggInfoDistribution', 'DistributionPath' + "Distribution", + "BaseInstalledDistribution", + "InstalledDistribution", + "EggInfoDistribution", + "DistributionPath", ] logger = logging.getLogger(__name__) -EXPORTS_FILENAME = 'pydist-exports.json' -COMMANDS_FILENAME = 'pydist-commands.json' +EXPORTS_FILENAME = "pydist-exports.json" +COMMANDS_FILENAME = "pydist-commands.json" -DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', 'RESOURCES', EXPORTS_FILENAME, 'SHARED') +DIST_FILES = ( + "INSTALLER", + METADATA_FILENAME, + "RECORD", + "REQUESTED", + "RESOURCES", + EXPORTS_FILENAME, + "SHARED", +) -DISTINFO_EXT = '.dist-info' +DISTINFO_EXT = ".dist-info" class _Cache(object): @@ -92,7 +116,7 @@ class DistributionPath(object): self._cache = _Cache() self._cache_egg = _Cache() self._cache_enabled = True - self._scheme = get_scheme('default') + self._scheme = get_scheme("default") def _get_cache_enabled(self): return self._cache_enabled @@ -121,7 +145,7 @@ class DistributionPath(object): finder = resources.finder_for_path(path) if finder is None: continue - r = finder.find('') + r = finder.find("") if not r or not r.is_container: continue rset = sorted(r.resources) @@ -131,7 +155,11 @@ class DistributionPath(object): continue try: if self._include_dist and entry.endswith(DISTINFO_EXT): - possible_filenames = [METADATA_FILENAME, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME] + possible_filenames = [ + METADATA_FILENAME, + WHEEL_METADATA_FILENAME, + LEGACY_METADATA_FILENAME, + ] for metadata_filename in possible_filenames: metadata_path = posixpath.join(entry, metadata_filename) pydist = finder.find(metadata_path) @@ -141,18 +169,19 @@ class DistributionPath(object): continue with contextlib.closing(pydist.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - logger.debug('Found %s', r.path) + metadata = Metadata(fileobj=stream, scheme="legacy") + logger.debug("Found %s", r.path) seen.add(r.path) yield new_dist_class(r.path, metadata=metadata, env=self) - elif self._include_egg and entry.endswith(('.egg-info', '.egg')): - logger.debug('Found %s', r.path) + elif self._include_egg and entry.endswith((".egg-info", ".egg")): + logger.debug("Found %s", r.path) seen.add(r.path) yield old_dist_class(r.path, self) except Exception as e: - msg = 'Unable to read distribution at %s, perhaps due to bad metadata: %s' + msg = "Unable to read distribution at %s, perhaps due to bad metadata: %s" logger.warning(msg, r.path, e) import warnings + warnings.warn(msg % (r.path, e), stacklevel=2) def _generate_cache(self): @@ -193,8 +222,8 @@ class DistributionPath(object): :type version: string :returns: directory name :rtype: string""" - name = name.replace('-', '_') - return '-'.join([name, version]) + DISTINFO_EXT + name = name.replace("-", "_") + return "-".join([name, version]) + DISTINFO_EXT def get_distributions(self): """ @@ -261,14 +290,16 @@ class DistributionPath(object): matcher = None if version is not None: try: - matcher = self._scheme.matcher('%s (%s)' % (name, version)) + matcher = self._scheme.matcher("%s (%s)" % (name, version)) except ValueError: - raise DistlibException('invalid name or version: %r, %r' % (name, version)) + raise DistlibException( + "invalid name or version: %r, %r" % (name, version) + ) for dist in self.get_distributions(): # We hit a problem on Travis where enum34 was installed and doesn't # have a provides attribute ... - if not hasattr(dist, 'provides'): + if not hasattr(dist, "provides"): logger.debug('No "provides": %s', dist) else: provided = dist.provides @@ -290,7 +321,7 @@ class DistributionPath(object): """ dist = self.get_distribution(name) if dist is None: - raise LookupError('no distribution named %r found' % name) + raise LookupError("no distribution named %r found" % name) return dist.get_resource_path(relative_path) def get_exported_entries(self, category, name=None): @@ -361,7 +392,7 @@ class Distribution(object): """ A utility property which displays the name and version in parentheses. """ - return '%s (%s)' % (self.name, self.version) + return "%s (%s)" % (self.name, self.version) @property def provides(self): @@ -370,7 +401,7 @@ class Distribution(object): :return: A set of "name (version)" strings. """ plist = self.metadata.provides - s = '%s (%s)' % (self.name, self.version) + s = "%s (%s)" % (self.name, self.version) if s not in plist: plist.append(s) return plist @@ -378,28 +409,30 @@ class Distribution(object): def _get_requirements(self, req_attr): md = self.metadata reqts = getattr(md, req_attr) - logger.debug('%s: got requirements %r from metadata: %r', self.name, req_attr, reqts) + logger.debug( + "%s: got requirements %r from metadata: %r", self.name, req_attr, reqts + ) return set(md.get_requirements(reqts, extras=self.extras, env=self.context)) @property def run_requires(self): - return self._get_requirements('run_requires') + return self._get_requirements("run_requires") @property def meta_requires(self): - return self._get_requirements('meta_requires') + return self._get_requirements("meta_requires") @property def build_requires(self): - return self._get_requirements('build_requires') + return self._get_requirements("build_requires") @property def test_requires(self): - return self._get_requirements('test_requires') + return self._get_requirements("test_requires") @property def dev_requires(self): - return self._get_requirements('dev_requires') + return self._get_requirements("dev_requires") def matches_requirement(self, req): """ @@ -416,7 +449,7 @@ class Distribution(object): matcher = scheme.matcher(r.requirement) except UnsupportedVersionError: # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', req) + logger.warning("could not read version %r - using name only", req) name = req.split()[0] matcher = scheme.matcher(name) @@ -439,10 +472,10 @@ class Distribution(object): Return a textual representation of this instance, """ if self.source_url: - suffix = ' [%s]' % self.source_url + suffix = " [%s]" % self.source_url else: - suffix = '' - return '' % (self.name, self.version, suffix) + suffix = "" + return "" % (self.name, self.version, suffix) def __eq__(self, other): """ @@ -455,7 +488,11 @@ class Distribution(object): if type(other) is not type(self): result = False else: - result = (self.name == other.name and self.version == other.version and self.source_url == other.source_url) + result = ( + self.name == other.name + and self.version == other.version + and self.source_url == other.source_url + ) return result def __hash__(self): @@ -511,13 +548,13 @@ class BaseInstalledDistribution(Distribution): hasher = self.hasher if hasher is None: hasher = hashlib.md5 - prefix = '' + prefix = "" else: hasher = getattr(hashlib, hasher) - prefix = '%s=' % self.hasher + prefix = "%s=" % self.hasher digest = hasher(data).digest() - digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') - return '%s%s' % (prefix, digest) + digest = base64.urlsafe_b64encode(digest).rstrip(b"=").decode("ascii") + return "%s%s" % (prefix, digest) class InstalledDistribution(BaseInstalledDistribution): @@ -528,13 +565,13 @@ class InstalledDistribution(BaseInstalledDistribution): dry-run mode is being used). """ - hasher = 'sha256' + hasher = "sha256" def __init__(self, path, metadata=None, env=None): self.modules = [] self.finder = finder = resources.finder_for_path(path) if finder is None: - raise ValueError('finder unavailable for %s' % path) + raise ValueError("finder unavailable for %s" % path) if env and env._cache_enabled and path in env._cache.path: metadata = env._cache.path[path].metadata elif metadata is None: @@ -546,25 +583,29 @@ class InstalledDistribution(BaseInstalledDistribution): if r is None: r = finder.find(LEGACY_METADATA_FILENAME) if r is None: - raise ValueError('no %s found in %s' % (METADATA_FILENAME, path)) + raise ValueError("no %s found in %s" % (METADATA_FILENAME, path)) with contextlib.closing(r.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') + metadata = Metadata(fileobj=stream, scheme="legacy") super(InstalledDistribution, self).__init__(metadata, path, env) if env and env._cache_enabled: env._cache.add(self) - r = finder.find('REQUESTED') + r = finder.find("REQUESTED") self.requested = r is not None - p = os.path.join(path, 'top_level.txt') + p = os.path.join(path, "top_level.txt") if os.path.exists(p): - with open(p, 'rb') as f: - data = f.read().decode('utf-8') + with open(p, "rb") as f: + data = f.read().decode("utf-8") self.modules = data.splitlines() def __repr__(self): - return '' % (self.name, self.version, self.path) + return "" % ( + self.name, + self.version, + self.path, + ) def __str__(self): return "%s %s" % (self.name, self.version) @@ -577,7 +618,7 @@ class InstalledDistribution(BaseInstalledDistribution): as stored in the file (which is as in PEP 376). """ results = [] - r = self.get_distinfo_resource('RECORD') + r = self.get_distinfo_resource("RECORD") with contextlib.closing(r.as_stream()) as stream: with CSVReader(stream=stream) as record_reader: # Base location is parent dir of .dist-info dir @@ -629,7 +670,7 @@ class InstalledDistribution(BaseInstalledDistribution): individual export entries. """ rf = self.get_distinfo_file(EXPORTS_FILENAME) - with open(rf, 'w') as f: + with open(rf, "w") as f: write_exports(exports, f) def get_resource_path(self, relative_path): @@ -643,14 +684,15 @@ class InstalledDistribution(BaseInstalledDistribution): of interest. :return: The absolute path where the resource is to be found. """ - r = self.get_distinfo_resource('RESOURCES') + r = self.get_distinfo_resource("RESOURCES") with contextlib.closing(r.as_stream()) as stream: with CSVReader(stream=stream) as resources_reader: for relative, destination in resources_reader: if relative == relative_path: return destination - raise KeyError('no resource file with relative path %r ' - 'is installed' % relative_path) + raise KeyError( + "no resource file with relative path %r " "is installed" % relative_path + ) def list_installed_files(self): """ @@ -669,31 +711,33 @@ class InstalledDistribution(BaseInstalledDistribution): prefix is used to determine when to write absolute paths. """ - prefix = os.path.join(prefix, '') + prefix = os.path.join(prefix, "") base = os.path.dirname(self.path) base_under_prefix = base.startswith(prefix) - base = os.path.join(base, '') - record_path = self.get_distinfo_file('RECORD') - logger.info('creating %s', record_path) + base = os.path.join(base, "") + record_path = self.get_distinfo_file("RECORD") + logger.info("creating %s", record_path) if dry_run: return None with CSVWriter(record_path) as writer: for path in paths: - if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): + if os.path.isdir(path) or path.endswith((".pyc", ".pyo")): # do not put size and hash, as in PEP-376 - hash_value = size = '' + hash_value = size = "" else: - size = '%d' % os.path.getsize(path) - with open(path, 'rb') as fp: + size = "%d" % os.path.getsize(path) + with open(path, "rb") as fp: hash_value = self.get_hash(fp.read()) - if path.startswith(base) or (base_under_prefix and path.startswith(prefix)): + if path.startswith(base) or ( + base_under_prefix and path.startswith(prefix) + ): path = os.path.relpath(path, base) writer.writerow((path, hash_value, size)) # add the RECORD file itself if record_path.startswith(base): record_path = os.path.relpath(record_path, base) - writer.writerow((record_path, '', '')) + writer.writerow((record_path, "", "")) return record_path def check_installed_files(self): @@ -707,28 +751,28 @@ class InstalledDistribution(BaseInstalledDistribution): """ mismatches = [] base = os.path.dirname(self.path) - record_path = self.get_distinfo_file('RECORD') + record_path = self.get_distinfo_file("RECORD") for path, hash_value, size in self.list_installed_files(): if not os.path.isabs(path): path = os.path.join(base, path) if path == record_path: continue if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) + mismatches.append((path, "exists", True, False)) elif os.path.isfile(path): actual_size = str(os.path.getsize(path)) if size and actual_size != size: - mismatches.append((path, 'size', size, actual_size)) + mismatches.append((path, "size", size, actual_size)) elif hash_value: - if '=' in hash_value: - hasher = hash_value.split('=', 1)[0] + if "=" in hash_value: + hasher = hash_value.split("=", 1)[0] else: hasher = None - with open(path, 'rb') as f: + with open(path, "rb") as f: actual_hash = self.get_hash(f.read(), hasher) if actual_hash != hash_value: - mismatches.append((path, 'hash', hash_value, actual_hash)) + mismatches.append((path, "hash", hash_value, actual_hash)) return mismatches @cached_property @@ -746,13 +790,13 @@ class InstalledDistribution(BaseInstalledDistribution): read from the SHARED file in the .dist-info directory. """ result = {} - shared_path = os.path.join(self.path, 'SHARED') + shared_path = os.path.join(self.path, "SHARED") if os.path.isfile(shared_path): - with codecs.open(shared_path, 'r', encoding='utf-8') as f: + with codecs.open(shared_path, "r", encoding="utf-8") as f: lines = f.read().splitlines() for line in lines: - key, value = line.split('=', 1) - if key == 'namespace': + key, value = line.split("=", 1) + if key == "namespace": result.setdefault(key, []).append(value) else: result[key] = value @@ -767,29 +811,30 @@ class InstalledDistribution(BaseInstalledDistribution): written. :return: The path of the file written to. """ - shared_path = os.path.join(self.path, 'SHARED') - logger.info('creating %s', shared_path) + shared_path = os.path.join(self.path, "SHARED") + logger.info("creating %s", shared_path) if dry_run: return None lines = [] - for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): + for key in ("prefix", "lib", "headers", "scripts", "data"): path = paths[key] if os.path.isdir(paths[key]): - lines.append('%s=%s' % (key, path)) - for ns in paths.get('namespace', ()): - lines.append('namespace=%s' % ns) + lines.append("%s=%s" % (key, path)) + for ns in paths.get("namespace", ()): + lines.append("namespace=%s" % ns) - with codecs.open(shared_path, 'w', encoding='utf-8') as f: - f.write('\n'.join(lines)) + with codecs.open(shared_path, "w", encoding="utf-8") as f: + f.write("\n".join(lines)) return shared_path def get_distinfo_resource(self, path): if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) + raise DistlibException( + "invalid path for a dist-info file: " "%r at %r" % (path, self.path) + ) finder = resources.finder_for_path(self.path) if finder is None: - raise DistlibException('Unable to get a finder for %s' % self.path) + raise DistlibException("Unable to get a finder for %s" % self.path) return finder.find(path) def get_distinfo_file(self, path): @@ -810,13 +855,16 @@ class InstalledDistribution(BaseInstalledDistribution): # it's an absolute path? distinfo_dirname, path = path.split(os.sep)[-2:] if distinfo_dirname != self.path.split(os.sep)[-1]: - raise DistlibException('dist-info file %r does not belong to the %r %s ' - 'distribution' % (path, self.name, self.version)) + raise DistlibException( + "dist-info file %r does not belong to the %r %s " + "distribution" % (path, self.name, self.version) + ) # The file must be relative if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) + raise DistlibException( + "invalid path for a dist-info file: " "%r at %r" % (path, self.path) + ) return os.path.join(self.path, path) @@ -837,7 +885,7 @@ class InstalledDistribution(BaseInstalledDistribution): yield path def __eq__(self, other): - return (isinstance(other, InstalledDistribution) and self.path == other.path) + return isinstance(other, InstalledDistribution) and self.path == other.path # See http://docs.python.org/reference/datamodel#object.__hash__ __hash__ = object.__hash__ @@ -889,21 +937,24 @@ class EggInfoDistribution(BaseInstalledDistribution): # sectioned files have bare newlines (separating sections) if not line: # pragma: no cover continue - if line.startswith('['): # pragma: no cover - logger.warning('Unexpected line: quitting requirement scan: %r', line) + if line.startswith("["): # pragma: no cover + logger.warning( + "Unexpected line: quitting requirement scan: %r", line + ) break r = parse_requirement(line) if not r: # pragma: no cover - logger.warning('Not recognised as a requirement: %r', line) + logger.warning("Not recognised as a requirement: %r", line) continue if r.extras: # pragma: no cover - logger.warning('extra requirements in requires.txt are ' - 'not supported') + logger.warning( + "extra requirements in requires.txt are " "not supported" + ) if not r.constraints: reqs.append(r.name) else: - cons = ', '.join('%s%s' % c for c in r.constraints) - reqs.append('%s (%s)' % (r.name, cons)) + cons = ", ".join("%s%s" % c for c in r.constraints) + reqs.append("%s (%s)" % (r.name, cons)) return reqs def parse_requires_path(req_path): @@ -914,50 +965,51 @@ class EggInfoDistribution(BaseInstalledDistribution): reqs = [] try: - with codecs.open(req_path, 'r', 'utf-8') as fp: + with codecs.open(req_path, "r", "utf-8") as fp: reqs = parse_requires_data(fp.read()) except IOError: pass return reqs tl_path = tl_data = None - if path.endswith('.egg'): + if path.endswith(".egg"): if os.path.isdir(path): - p = os.path.join(path, 'EGG-INFO') - meta_path = os.path.join(p, 'PKG-INFO') - metadata = Metadata(path=meta_path, scheme='legacy') - req_path = os.path.join(p, 'requires.txt') - tl_path = os.path.join(p, 'top_level.txt') + p = os.path.join(path, "EGG-INFO") + meta_path = os.path.join(p, "PKG-INFO") + metadata = Metadata(path=meta_path, scheme="legacy") + req_path = os.path.join(p, "requires.txt") + tl_path = os.path.join(p, "top_level.txt") requires = parse_requires_path(req_path) else: # FIXME handle the case where zipfile is not available zipf = zipimport.zipimporter(path) - fileobj = StringIO(zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) - metadata = Metadata(fileobj=fileobj, scheme='legacy') + fileobj = StringIO(zipf.get_data("EGG-INFO/PKG-INFO").decode("utf8")) + metadata = Metadata(fileobj=fileobj, scheme="legacy") try: - data = zipf.get_data('EGG-INFO/requires.txt') - tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') - requires = parse_requires_data(data.decode('utf-8')) + data = zipf.get_data("EGG-INFO/requires.txt") + tl_data = zipf.get_data("EGG-INFO/top_level.txt").decode("utf-8") + requires = parse_requires_data(data.decode("utf-8")) except IOError: requires = None - elif path.endswith('.egg-info'): + elif path.endswith(".egg-info"): if os.path.isdir(path): - req_path = os.path.join(path, 'requires.txt') + req_path = os.path.join(path, "requires.txt") requires = parse_requires_path(req_path) - path = os.path.join(path, 'PKG-INFO') - tl_path = os.path.join(path, 'top_level.txt') - metadata = Metadata(path=path, scheme='legacy') + path = os.path.join(path, "PKG-INFO") + tl_path = os.path.join(path, "top_level.txt") + metadata = Metadata(path=path, scheme="legacy") else: - raise DistlibException('path must end with .egg-info or .egg, ' - 'got %r' % path) + raise DistlibException( + "path must end with .egg-info or .egg, " "got %r" % path + ) if requires: metadata.add_requirements(requires) # look for top-level modules in top_level.txt, if present if tl_data is None: if tl_path is not None and os.path.exists(tl_path): - with open(tl_path, 'rb') as f: - tl_data = f.read().decode('utf-8') + with open(tl_path, "rb") as f: + tl_data = f.read().decode("utf-8") if not tl_data: tl_data = [] else: @@ -966,7 +1018,11 @@ class EggInfoDistribution(BaseInstalledDistribution): return metadata def __repr__(self): - return '' % (self.name, self.version, self.path) + return "" % ( + self.name, + self.version, + self.path, + ) def __str__(self): return "%s %s" % (self.name, self.version) @@ -981,13 +1037,13 @@ class EggInfoDistribution(BaseInstalledDistribution): value and the actual value. """ mismatches = [] - record_path = os.path.join(self.path, 'installed-files.txt') + record_path = os.path.join(self.path, "installed-files.txt") if os.path.exists(record_path): for path, _, _ in self.list_installed_files(): if path == record_path: continue if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) + mismatches.append((path, "exists", True, False)) return mismatches def list_installed_files(self): @@ -999,7 +1055,7 @@ class EggInfoDistribution(BaseInstalledDistribution): """ def _md5(path): - f = open(path, 'rb') + f = open(path, "rb") try: content = f.read() finally: @@ -1009,18 +1065,18 @@ class EggInfoDistribution(BaseInstalledDistribution): def _size(path): return os.stat(path).st_size - record_path = os.path.join(self.path, 'installed-files.txt') + record_path = os.path.join(self.path, "installed-files.txt") result = [] if os.path.exists(record_path): - with codecs.open(record_path, 'r', encoding='utf-8') as f: + with codecs.open(record_path, "r", encoding="utf-8") as f: for line in f: line = line.strip() p = os.path.normpath(os.path.join(self.path, line)) # "./" is present as a marker between installed files # and installation metadata files if not os.path.exists(p): - logger.warning('Non-existent file: %s', p) - if p.endswith(('.pyc', '.pyo')): + logger.warning("Non-existent file: %s", p) + if p.endswith((".pyc", ".pyo")): continue # otherwise fall through and fail if not os.path.isdir(p): @@ -1040,13 +1096,13 @@ class EggInfoDistribution(BaseInstalledDistribution): :type absolute: boolean :returns: iterator of paths """ - record_path = os.path.join(self.path, 'installed-files.txt') + record_path = os.path.join(self.path, "installed-files.txt") if os.path.exists(record_path): skip = True - with codecs.open(record_path, 'r', encoding='utf-8') as f: + with codecs.open(record_path, "r", encoding="utf-8") as f: for line in f: line = line.strip() - if line == './': + if line == "./": skip = False continue if not skip: @@ -1058,7 +1114,7 @@ class EggInfoDistribution(BaseInstalledDistribution): yield line def __eq__(self, other): - return (isinstance(other, EggInfoDistribution) and self.path == other.path) + return isinstance(other, EggInfoDistribution) and self.path == other.path # See http://docs.python.org/reference/datamodel#object.__hash__ __hash__ = object.__hash__ @@ -1122,11 +1178,11 @@ class DependencyGraph(object): or :class:`distutils2.database.EggInfoDistribution` :type requirement: ``str`` """ - logger.debug('%s missing %r', distribution, requirement) + logger.debug("%s missing %r", distribution, requirement) self.missing.setdefault(distribution, []).append(requirement) def _repr_dist(self, dist): - return '%s %s' % (dist.name, dist.version) + return "%s %s" % (dist.name, dist.version) def repr_node(self, dist, level=1): """Prints only a subgraph""" @@ -1134,12 +1190,12 @@ class DependencyGraph(object): for other, label in self.adjacency_list[dist]: dist = self._repr_dist(other) if label is not None: - dist = '%s [%s]' % (dist, label) - output.append(' ' * level + str(dist)) + dist = "%s [%s]" % (dist, label) + output.append(" " * level + str(dist)) suboutput = self.repr_node(other, level + 1) - subs = suboutput.split('\n') + subs = suboutput.split("\n") output.extend(subs[1:]) - return '\n'.join(output) + return "\n".join(output) def to_dot(self, f, skip_disconnected=True): """Writes a DOT output for the graph to the provided file *f*. @@ -1158,19 +1214,21 @@ class DependencyGraph(object): disconnected.append(dist) for other, label in adjs: if label is not None: - f.write('"%s" -> "%s" [label="%s"]\n' % (dist.name, other.name, label)) + f.write( + '"%s" -> "%s" [label="%s"]\n' % (dist.name, other.name, label) + ) else: f.write('"%s" -> "%s"\n' % (dist.name, other.name)) if not skip_disconnected and len(disconnected) > 0: - f.write('subgraph disconnected {\n') + f.write("subgraph disconnected {\n") f.write('label = "Disconnected"\n') - f.write('bgcolor = red\n') + f.write("bgcolor = red\n") for dist in disconnected: f.write('"%s"' % dist.name) - f.write('\n') - f.write('}\n') - f.write('}\n') + f.write("\n") + f.write("}\n") + f.write("}\n") def topological_sort(self): """ @@ -1198,7 +1256,10 @@ class DependencyGraph(object): # Remove from the adjacency list of others for k, v in alist.items(): alist[k] = [(d, r) for d, r in v if d not in to_remove] - logger.debug('Moving to result: %s', ['%s (%s)' % (d.name, d.version) for d in to_remove]) + logger.debug( + "Moving to result: %s", + ["%s (%s)" % (d.name, d.version) for d in to_remove], + ) result.extend(to_remove) return result, list(alist.keys()) @@ -1207,10 +1268,10 @@ class DependencyGraph(object): output = [] for dist, adjs in self.adjacency_list.items(): output.append(self.repr_node(dist)) - return '\n'.join(output) + return "\n".join(output) -def make_graph(dists, scheme='default'): +def make_graph(dists, scheme="default"): """Makes a dependency graph from the given distributions. :parameter dists: a list of distributions @@ -1228,18 +1289,23 @@ def make_graph(dists, scheme='default'): for p in dist.provides: name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) + logger.debug("Add to provided: %s, %s, %s", name, version, dist) provided.setdefault(name, []).append((version, dist)) # now make the edges for dist in dists: - requires = (dist.run_requires | dist.meta_requires | dist.build_requires | dist.dev_requires) + requires = ( + dist.run_requires + | dist.meta_requires + | dist.build_requires + | dist.dev_requires + ) for req in requires: try: matcher = scheme.matcher(req) except UnsupportedVersionError: # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', req) + logger.warning("could not read version %r - using name only", req) name = req.split()[0] matcher = scheme.matcher(name) @@ -1270,8 +1336,9 @@ def get_dependent_dists(dists, dist): :param dist: a distribution, member of *dists* for which we are interested """ if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) + raise DistlibException( + "given distribution %r is not a member " "of the list" % dist.name + ) graph = make_graph(dists) dep = [dist] # dependent distributions @@ -1297,8 +1364,9 @@ def get_required_dists(dists, dist): in finding the dependencies. """ if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) + raise DistlibException( + "given distribution %r is not a member " "of the list" % dist.name + ) graph = make_graph(dists) req = set() # required distributions @@ -1321,9 +1389,9 @@ def make_dist(name, version, **kwargs): """ A convenience method for making a dist given just a name and version. """ - summary = kwargs.pop('summary', 'Placeholder for summary') + summary = kwargs.pop("summary", "Placeholder for summary") md = Metadata(**kwargs) md.name = name md.version = version - md.summary = summary or 'Placeholder for summary' + md.summary = summary or "Placeholder for summary" return Distribution(md) diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/index.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/index.py index 56cd286..4601211 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/index.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/index.py @@ -10,20 +10,27 @@ import os import shutil import subprocess import tempfile + try: from threading import Thread except ImportError: # pragma: no cover from dummy_threading import Thread from . import DistlibException -from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, - urlparse, build_opener, string_types) +from .compat import ( + HTTPBasicAuthHandler, + Request, + HTTPPasswordMgr, + urlparse, + build_opener, + string_types, +) from .util import zip_dir, ServerProxy logger = logging.getLogger(__name__) -DEFAULT_INDEX = 'https://pypi.org/pypi' -DEFAULT_REALM = 'pypi' +DEFAULT_INDEX = "https://pypi.org/pypi" +DEFAULT_REALM = "pypi" class PackageIndex(object): @@ -32,7 +39,7 @@ class PackageIndex(object): Package Index. """ - boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' + boundary = b"----------ThIs_Is_tHe_distlib_index_bouNdaRY_$" def __init__(self, url=None): """ @@ -44,19 +51,20 @@ class PackageIndex(object): self.url = url or DEFAULT_INDEX self.read_configuration() scheme, netloc, path, params, query, frag = urlparse(self.url) - if params or query or frag or scheme not in ('http', 'https'): - raise DistlibException('invalid repository: %s' % self.url) + if params or query or frag or scheme not in ("http", "https"): + raise DistlibException("invalid repository: %s" % self.url) self.password_handler = None self.ssl_verifier = None self.gpg = None self.gpg_home = None - with open(os.devnull, 'w') as sink: + with open(os.devnull, "w") as sink: # Use gpg by default rather than gpg2, as gpg2 insists on # prompting for passwords - for s in ('gpg', 'gpg2'): + for s in ("gpg", "gpg2"): try: - rc = subprocess.check_call([s, '--version'], stdout=sink, - stderr=sink) + rc = subprocess.check_call( + [s, "--version"], stdout=sink, stderr=sink + ) if rc == 0: self.gpg = s break @@ -69,6 +77,7 @@ class PackageIndex(object): :return: the command. """ from .util import _get_pypirc_command as cmd + return cmd() def read_configuration(self): @@ -78,11 +87,12 @@ class PackageIndex(object): configuration. """ from .util import _load_pypirc + cfg = _load_pypirc(self) - self.username = cfg.get('username') - self.password = cfg.get('password') - self.realm = cfg.get('realm', 'pypi') - self.url = cfg.get('repository', self.url) + self.username = cfg.get("username") + self.password = cfg.get("password") + self.realm = cfg.get("realm", "pypi") + self.url = cfg.get("repository", self.url) def save_configuration(self): """ @@ -91,6 +101,7 @@ class PackageIndex(object): """ self.check_credentials() from .util import _store_pypirc + _store_pypirc(self) def check_credentials(self): @@ -99,7 +110,7 @@ class PackageIndex(object): exception if not. """ if self.username is None or self.password is None: - raise DistlibException('username and password must be set') + raise DistlibException("username and password must be set") pm = HTTPPasswordMgr() _, netloc, _, _, _, _ = urlparse(self.url) pm.add_password(self.realm, netloc, self.username, self.password) @@ -118,10 +129,10 @@ class PackageIndex(object): self.check_credentials() metadata.validate() d = metadata.todict() - d[':action'] = 'verify' + d[":action"] = "verify" request = self.encode_request(d.items(), []) self.send_request(request) - d[':action'] = 'submit' + d[":action"] = "submit" request = self.encode_request(d.items(), []) return self.send_request(request) @@ -138,12 +149,14 @@ class PackageIndex(object): s = stream.readline() if not s: break - s = s.decode('utf-8').rstrip() + s = s.decode("utf-8").rstrip() outbuf.append(s) - logger.debug('%s: %s' % (name, s)) + logger.debug("%s: %s" % (name, s)) stream.close() - def get_sign_command(self, filename, signer, sign_password, keystore=None): # pragma: no cover + def get_sign_command( + self, filename, signer, sign_password, keystore=None + ): # pragma: no cover """ Return a suitable command for signing a file. @@ -157,18 +170,27 @@ class PackageIndex(object): :return: The signing command as a list suitable to be passed to :class:`subprocess.Popen`. """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + cmd = [self.gpg, "--status-fd", "2", "--no-tty"] if keystore is None: keystore = self.gpg_home if keystore: - cmd.extend(['--homedir', keystore]) + cmd.extend(["--homedir", keystore]) if sign_password is not None: - cmd.extend(['--batch', '--passphrase-fd', '0']) + cmd.extend(["--batch", "--passphrase-fd", "0"]) td = tempfile.mkdtemp() - sf = os.path.join(td, os.path.basename(filename) + '.asc') - cmd.extend(['--detach-sign', '--armor', '--local-user', - signer, '--output', sf, filename]) - logger.debug('invoking: %s', ' '.join(cmd)) + sf = os.path.join(td, os.path.basename(filename) + ".asc") + cmd.extend( + [ + "--detach-sign", + "--armor", + "--local-user", + signer, + "--output", + sf, + filename, + ] + ) + logger.debug("invoking: %s", " ".join(cmd)) return cmd, sf def run_command(self, cmd, input_data=None): @@ -183,19 +205,19 @@ class PackageIndex(object): lines read from the subprocess' ``stderr``. """ kwargs = { - 'stdout': subprocess.PIPE, - 'stderr': subprocess.PIPE, + "stdout": subprocess.PIPE, + "stderr": subprocess.PIPE, } if input_data is not None: - kwargs['stdin'] = subprocess.PIPE + kwargs["stdin"] = subprocess.PIPE stdout = [] stderr = [] p = subprocess.Popen(cmd, **kwargs) # We don't use communicate() here because we may need to # get clever with interacting with the command - t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) + t1 = Thread(target=self._reader, args=("stdout", p.stdout, stdout)) t1.start() - t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) + t2 = Thread(target=self._reader, args=("stderr", p.stderr, stderr)) t2.start() if input_data is not None: p.stdin.write(input_data) @@ -206,7 +228,9 @@ class PackageIndex(object): t2.join() return p.returncode, stdout, stderr - def sign_file(self, filename, signer, sign_password, keystore=None): # pragma: no cover + def sign_file( + self, filename, signer, sign_password, keystore=None + ): # pragma: no cover """ Sign a file. @@ -220,17 +244,22 @@ class PackageIndex(object): :return: The absolute pathname of the file where the signature is stored. """ - cmd, sig_file = self.get_sign_command(filename, signer, sign_password, - keystore) - rc, stdout, stderr = self.run_command(cmd, - sign_password.encode('utf-8')) + cmd, sig_file = self.get_sign_command(filename, signer, sign_password, keystore) + rc, stdout, stderr = self.run_command(cmd, sign_password.encode("utf-8")) if rc != 0: - raise DistlibException('sign command failed with error ' - 'code %s' % rc) + raise DistlibException("sign command failed with error " "code %s" % rc) return sig_file - def upload_file(self, metadata, filename, signer=None, sign_password=None, - filetype='sdist', pyversion='source', keystore=None): + def upload_file( + self, + metadata, + filename, + signer=None, + sign_password=None, + filetype="sdist", + pyversion="source", + keystore=None, + ): """ Upload a release file to the index. @@ -254,34 +283,34 @@ class PackageIndex(object): """ self.check_credentials() if not os.path.exists(filename): - raise DistlibException('not found: %s' % filename) + raise DistlibException("not found: %s" % filename) metadata.validate() d = metadata.todict() sig_file = None if signer: if not self.gpg: - logger.warning('no signing program available - not signed') + logger.warning("no signing program available - not signed") else: - sig_file = self.sign_file(filename, signer, sign_password, - keystore) - with open(filename, 'rb') as f: + sig_file = self.sign_file(filename, signer, sign_password, keystore) + with open(filename, "rb") as f: file_data = f.read() md5_digest = hashlib.md5(file_data).hexdigest() sha256_digest = hashlib.sha256(file_data).hexdigest() - d.update({ - ':action': 'file_upload', - 'protocol_version': '1', - 'filetype': filetype, - 'pyversion': pyversion, - 'md5_digest': md5_digest, - 'sha256_digest': sha256_digest, - }) - files = [('content', os.path.basename(filename), file_data)] + d.update( + { + ":action": "file_upload", + "protocol_version": "1", + "filetype": filetype, + "pyversion": pyversion, + "md5_digest": md5_digest, + "sha256_digest": sha256_digest, + } + ) + files = [("content", os.path.basename(filename), file_data)] if sig_file: - with open(sig_file, 'rb') as f: + with open(sig_file, "rb") as f: sig_data = f.read() - files.append(('gpg_signature', os.path.basename(sig_file), - sig_data)) + files.append(("gpg_signature", os.path.basename(sig_file), sig_data)) shutil.rmtree(os.path.dirname(sig_file)) request = self.encode_request(d.items(), files) return self.send_request(request) @@ -301,21 +330,19 @@ class PackageIndex(object): """ self.check_credentials() if not os.path.isdir(doc_dir): - raise DistlibException('not a directory: %r' % doc_dir) - fn = os.path.join(doc_dir, 'index.html') + raise DistlibException("not a directory: %r" % doc_dir) + fn = os.path.join(doc_dir, "index.html") if not os.path.exists(fn): - raise DistlibException('not found: %r' % fn) + raise DistlibException("not found: %r" % fn) metadata.validate() name, version = metadata.name, metadata.version zip_data = zip_dir(doc_dir).getvalue() - fields = [(':action', 'doc_upload'), - ('name', name), ('version', version)] - files = [('content', name, zip_data)] + fields = [(":action", "doc_upload"), ("name", name), ("version", version)] + files = [("content", name, zip_data)] request = self.encode_request(fields, files) return self.send_request(request) - def get_verify_command(self, signature_filename, data_filename, - keystore=None): + def get_verify_command(self, signature_filename, data_filename, keystore=None): """ Return a suitable command for verifying a file. @@ -329,17 +356,16 @@ class PackageIndex(object): :return: The verifying command as a list suitable to be passed to :class:`subprocess.Popen`. """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + cmd = [self.gpg, "--status-fd", "2", "--no-tty"] if keystore is None: keystore = self.gpg_home if keystore: - cmd.extend(['--homedir', keystore]) - cmd.extend(['--verify', signature_filename, data_filename]) - logger.debug('invoking: %s', ' '.join(cmd)) + cmd.extend(["--homedir", keystore]) + cmd.extend(["--verify", signature_filename, data_filename]) + logger.debug("invoking: %s", " ".join(cmd)) return cmd - def verify_signature(self, signature_filename, data_filename, - keystore=None): + def verify_signature(self, signature_filename, data_filename, keystore=None): """ Verify a signature for a file. @@ -353,13 +379,13 @@ class PackageIndex(object): :return: True if the signature was verified, else False. """ if not self.gpg: - raise DistlibException('verification unavailable because gpg ' - 'unavailable') - cmd = self.get_verify_command(signature_filename, data_filename, - keystore) + raise DistlibException( + "verification unavailable because gpg " "unavailable" + ) + cmd = self.get_verify_command(signature_filename, data_filename, keystore) rc, stdout, stderr = self.run_command(cmd) if rc not in (0, 1): - raise DistlibException('verify command failed with error code %s' % rc) + raise DistlibException("verify command failed with error code %s" % rc) return rc == 0 def download_file(self, url, destfile, digest=None, reporthook=None): @@ -386,18 +412,18 @@ class PackageIndex(object): """ if digest is None: digester = None - logger.debug('No digest specified') + logger.debug("No digest specified") else: if isinstance(digest, (list, tuple)): hasher, digest = digest else: - hasher = 'md5' + hasher = "md5" digester = getattr(hashlib, hasher)() - logger.debug('Digest specified: %s' % digest) + logger.debug("Digest specified: %s" % digest) # The following code is equivalent to urlretrieve. # We need to do it this way so that we can compute the # digest of the file as we go. - with open(destfile, 'wb') as dfp: + with open(destfile, "wb") as dfp: # addinfourl is not a context manager on 2.x # so we have to use try/finally sfp = self.send_request(Request(url)) @@ -428,16 +454,17 @@ class PackageIndex(object): # check that we got the whole file, if we can if size >= 0 and read < size: raise DistlibException( - 'retrieval incomplete: got only %d out of %d bytes' - % (read, size)) + "retrieval incomplete: got only %d out of %d bytes" % (read, size) + ) # if we have a digest, it must match. if digester: actual = digester.hexdigest() if digest != actual: - raise DistlibException('%s digest mismatch for %s: expected ' - '%s, got %s' % (hasher, destfile, - digest, actual)) - logger.debug('Digest verified: %s', digest) + raise DistlibException( + "%s digest mismatch for %s: expected " + "%s, got %s" % (hasher, destfile, digest, actual) + ) + logger.debug("Digest verified: %s", digest) def send_request(self, req): """ @@ -474,35 +501,41 @@ class PackageIndex(object): values = [values] for v in values: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"' % - k).encode('utf-8'), - b'', - v.encode('utf-8'))) + parts.extend( + ( + b"--" + boundary, + ('Content-Disposition: form-data; name="%s"' % k).encode( + "utf-8" + ), + b"", + v.encode("utf-8"), + ) + ) for key, filename, value in files: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"; filename="%s"' % - (key, filename)).encode('utf-8'), - b'', - value)) + parts.extend( + ( + b"--" + boundary, + ( + 'Content-Disposition: form-data; name="%s"; filename="%s"' + % (key, filename) + ).encode("utf-8"), + b"", + value, + ) + ) - parts.extend((b'--' + boundary + b'--', b'')) + parts.extend((b"--" + boundary + b"--", b"")) - body = b'\r\n'.join(parts) - ct = b'multipart/form-data; boundary=' + boundary - headers = { - 'Content-type': ct, - 'Content-length': str(len(body)) - } + body = b"\r\n".join(parts) + ct = b"multipart/form-data; boundary=" + boundary + headers = {"Content-type": ct, "Content-length": str(len(body))} return Request(self.url, body, headers) def search(self, terms, operator=None): # pragma: no cover if isinstance(terms, string_types): - terms = {'name': terms} + terms = {"name": terms} rpc_proxy = ServerProxy(self.url, timeout=3.0) try: - return rpc_proxy.search(terms, operator or 'and') + return rpc_proxy.search(terms, operator or "and") finally: - rpc_proxy('close')() + rpc_proxy("close")() diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/locators.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/locators.py index 222c1bf..c584fdb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/locators.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/locators.py @@ -12,6 +12,7 @@ import logging import os import posixpath import re + try: import threading except ImportError: # pragma: no cover @@ -19,21 +20,43 @@ except ImportError: # pragma: no cover import zlib from . import DistlibException -from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, queue, quote, unescape, build_opener, - HTTPRedirectHandler as BaseRedirectHandler, text_type, Request, HTTPError, URLError) +from .compat import ( + urljoin, + urlparse, + urlunparse, + url2pathname, + pathname2url, + queue, + quote, + unescape, + build_opener, + HTTPRedirectHandler as BaseRedirectHandler, + text_type, + Request, + HTTPError, + URLError, +) from .database import Distribution, DistributionPath, make_dist from .metadata import Metadata, MetadataInvalidError -from .util import (cached_property, ensure_slash, split_filename, get_project_data, parse_requirement, - parse_name_and_version, ServerProxy, normalize_name) +from .util import ( + cached_property, + ensure_slash, + split_filename, + get_project_data, + parse_requirement, + parse_name_and_version, + ServerProxy, + normalize_name, +) from .version import get_scheme, UnsupportedVersionError from .wheel import Wheel, is_compatible logger = logging.getLogger(__name__) -HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') -CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) -HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') -DEFAULT_INDEX = 'https://pypi.org/pypi' +HASHER_HASH = re.compile(r"^(\w+)=([a-f0-9]+)") +CHARSET = re.compile(r";\s*charset\s*=\s*(.*)\s*$", re.I) +HTML_CONTENT_TYPE = re.compile("text/html|application/x(ht)?ml") +DEFAULT_INDEX = "https://pypi.org/pypi" def get_all_distribution_names(url=None): @@ -48,7 +71,7 @@ def get_all_distribution_names(url=None): try: return client.list_packages() finally: - client('close')() + client("close")() class RedirectHandler(BaseRedirectHandler): @@ -65,16 +88,16 @@ class RedirectHandler(BaseRedirectHandler): # Some servers (incorrectly) return multiple Location headers # (so probably same goes for URI). Use first header. newurl = None - for key in ('location', 'uri'): + for key in ("location", "uri"): if key in headers: newurl = headers[key] break if newurl is None: # pragma: no cover return urlparts = urlparse(newurl) - if urlparts.scheme == '': + if urlparts.scheme == "": newurl = urljoin(req.get_full_url(), newurl) - if hasattr(headers, 'replace_header'): + if hasattr(headers, "replace_header"): headers.replace_header(key, newurl) else: headers[key] = newurl @@ -87,9 +110,10 @@ class Locator(object): """ A base class for locators - things that locate distributions. """ - source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') - binary_extensions = ('.egg', '.exe', '.whl') - excluded_extensions = ('.pdf', ) + + source_extensions = (".tar.gz", ".tar.bz2", ".tar", ".zip", ".tgz", ".tbz") + binary_extensions = (".egg", ".exe", ".whl") + excluded_extensions = (".pdf",) # A list of tags indicating which wheels you want to match. The default # value of None matches against the tags compatible with the running @@ -97,9 +121,9 @@ class Locator(object): # instance to a list of tuples (pyver, abi, arch) which you want to match. wheel_tags = None - downloadable_extensions = source_extensions + ('.whl', ) + downloadable_extensions = source_extensions + (".whl",) - def __init__(self, scheme='default'): + def __init__(self, scheme="default"): """ Initialise an instance. :param scheme: Because locators look for most recent versions, they @@ -160,13 +184,13 @@ class Locator(object): If called from a locate() request, self.matcher will be set to a matcher for the requirement to satisfy, otherwise it will be None. """ - raise NotImplementedError('Please implement in the subclass') + raise NotImplementedError("Please implement in the subclass") def get_distribution_names(self): """ Return all the distribution names known to this locator. """ - raise NotImplementedError('Please implement in the subclass') + raise NotImplementedError("Please implement in the subclass") def get_project(self, name): """ @@ -193,11 +217,18 @@ class Locator(object): t = urlparse(url) basename = posixpath.basename(t.path) compatible = True - is_wheel = basename.endswith('.whl') + is_wheel = basename.endswith(".whl") is_downloadable = basename.endswith(self.downloadable_extensions) if is_wheel: compatible = is_compatible(Wheel(basename), self.wheel_tags) - return (t.scheme == 'https', 'pypi.org' in t.netloc, is_downloadable, is_wheel, compatible, basename) + return ( + t.scheme == "https", + "pypi.org" in t.netloc, + is_downloadable, + is_wheel, + compatible, + basename, + ) def prefer_url(self, url1, url2): """ @@ -216,9 +247,9 @@ class Locator(object): if s1 > s2: result = url1 if result != url2: - logger.debug('Not replacing %r with %r', url1, url2) + logger.debug("Not replacing %r with %r", url1, url2) else: - logger.debug('Replacing %r with %r', url1, url2) + logger.debug("Replacing %r with %r", url1, url2) return result def split_filename(self, filename, project_name): @@ -241,21 +272,21 @@ class Locator(object): result = None scheme, netloc, path, params, query, frag = urlparse(url) - if frag.lower().startswith('egg='): # pragma: no cover - logger.debug('%s: version hint in fragment: %r', project_name, frag) + if frag.lower().startswith("egg="): # pragma: no cover + logger.debug("%s: version hint in fragment: %r", project_name, frag) m = HASHER_HASH.match(frag) if m: algo, digest = m.groups() else: algo, digest = None, None origpath = path - if path and path[-1] == '/': # pragma: no cover + if path and path[-1] == "/": # pragma: no cover path = path[:-1] - if path.endswith('.whl'): + if path.endswith(".whl"): try: wheel = Wheel(path) if not is_compatible(wheel, self.wheel_tags): - logger.debug('Wheel not compatible: %s', path) + logger.debug("Wheel not compatible: %s", path) else: if project_name is None: include = True @@ -263,38 +294,44 @@ class Locator(object): include = same_project(wheel.name, project_name) if include: result = { - 'name': wheel.name, - 'version': wheel.version, - 'filename': wheel.filename, - 'url': urlunparse((scheme, netloc, origpath, params, query, '')), - 'python-version': ', '.join(['.'.join(list(v[2:])) for v in wheel.pyver]), + "name": wheel.name, + "version": wheel.version, + "filename": wheel.filename, + "url": urlunparse( + (scheme, netloc, origpath, params, query, "") + ), + "python-version": ", ".join( + [".".join(list(v[2:])) for v in wheel.pyver] + ), } except Exception: # pragma: no cover - logger.warning('invalid path for wheel: %s', path) + logger.warning("invalid path for wheel: %s", path) elif not path.endswith(self.downloadable_extensions): # pragma: no cover - logger.debug('Not downloadable: %s', path) + logger.debug("Not downloadable: %s", path) else: # downloadable extension path = filename = posixpath.basename(path) for ext in self.downloadable_extensions: if path.endswith(ext): - path = path[:-len(ext)] + path = path[: -len(ext)] t = self.split_filename(path, project_name) if not t: # pragma: no cover - logger.debug('No match for project/version: %s', path) + logger.debug("No match for project/version: %s", path) else: name, version, pyver = t if not project_name or same_project(project_name, name): result = { - 'name': name, - 'version': version, - 'filename': filename, - 'url': urlunparse((scheme, netloc, origpath, params, query, '')), + "name": name, + "version": version, + "filename": filename, + "url": urlunparse( + (scheme, netloc, origpath, params, query, "") + ), } if pyver: # pragma: no cover - result['python-version'] = pyver + result["python-version"] = pyver break if result and algo: - result['%s_digest' % algo] = digest + result["%s_digest" % algo] = digest return result def _get_digest(self, info): @@ -306,15 +343,15 @@ class Locator(object): looks only for SHA256, then MD5. """ result = None - if 'digests' in info: - digests = info['digests'] - for algo in ('sha256', 'md5'): + if "digests" in info: + digests = info["digests"] + for algo in ("sha256", "md5"): if algo in digests: result = (algo, digests[algo]) break if not result: - for algo in ('sha256', 'md5'): - key = '%s_digest' % algo + for algo in ("sha256", "md5"): + key = "%s_digest" % algo if key in info: result = (algo, info[key]) break @@ -326,8 +363,8 @@ class Locator(object): dictionary for a specific version, which typically holds information gleaned from a filename or URL for an archive for the distribution. """ - name = info.pop('name') - version = info.pop('version') + name = info.pop("name") + version = info.pop("version") if version in result: dist = result[version] md = dist.metadata @@ -335,11 +372,11 @@ class Locator(object): dist = make_dist(name, version, scheme=self.scheme) md = dist.metadata dist.digest = digest = self._get_digest(info) - url = info['url'] - result['digests'][url] = digest - if md.source_url != info['url']: + url = info["url"] + result["digests"][url] = digest + if md.source_url != info["url"]: md.source_url = self.prefer_url(md.source_url, url) - result['urls'].setdefault(version, set()).add(url) + result["urls"].setdefault(version, set()).add(url) dist.locator = self result[version] = dist @@ -359,17 +396,17 @@ class Locator(object): result = None r = parse_requirement(requirement) if r is None: # pragma: no cover - raise DistlibException('Not a valid requirement: %r' % requirement) + raise DistlibException("Not a valid requirement: %r" % requirement) scheme = get_scheme(self.scheme) self.matcher = matcher = scheme.matcher(r.requirement) - logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) + logger.debug("matcher: %s (%s)", matcher, type(matcher).__name__) versions = self.get_project(r.name) if len(versions) > 2: # urls and digests keys are present # sometimes, versions are invalid slist = [] vcls = matcher.version_class for k in versions: - if k in ('urls', 'digests'): + if k in ("urls", "digests"): continue try: if not matcher.match(k): @@ -378,20 +415,20 @@ class Locator(object): if prereleases or not vcls(k).is_prerelease: slist.append(k) except Exception: # pragma: no cover - logger.warning('error matching %s with %r', matcher, k) + logger.warning("error matching %s with %r", matcher, k) pass # slist.append(k) if len(slist) > 1: slist = sorted(slist, key=scheme.key) if slist: - logger.debug('sorted list: %s', slist) + logger.debug("sorted list: %s", slist) version = slist[-1] result = versions[version] if result: if r.extras: result.extras = r.extras - result.download_urls = versions.get('urls', {}).get(version, set()) + result.download_urls = versions.get("urls", {}).get(version, set()) d = {} - sd = versions.get('digests', {}) + sd = versions.get("digests", {}) for url in result.download_urls: if url in sd: # pragma: no cover d[url] = sd[url] @@ -424,29 +461,29 @@ class PyPIRPCLocator(Locator): return set(self.client.list_packages()) def _get_project(self, name): - result = {'urls': {}, 'digests': {}} + result = {"urls": {}, "digests": {}} versions = self.client.package_releases(name, True) for v in versions: urls = self.client.release_urls(name, v) data = self.client.release_data(name, v) metadata = Metadata(scheme=self.scheme) - metadata.name = data['name'] - metadata.version = data['version'] - metadata.license = data.get('license') - metadata.keywords = data.get('keywords', []) - metadata.summary = data.get('summary') + metadata.name = data["name"] + metadata.version = data["version"] + metadata.license = data.get("license") + metadata.keywords = data.get("keywords", []) + metadata.summary = data.get("summary") dist = Distribution(metadata) if urls: info = urls[0] - metadata.source_url = info['url'] + metadata.source_url = info["url"] dist.digest = self._get_digest(info) dist.locator = self result[v] = dist for info in urls: - url = info['url'] + url = info["url"] digest = self._get_digest(info) - result['urls'].setdefault(v, set()).add(url) - result['digests'][url] = digest + result["urls"].setdefault(v, set()).add(url) + result["digests"][url] = digest return result @@ -464,34 +501,34 @@ class PyPIJSONLocator(Locator): """ Return all the distribution names known to this locator. """ - raise NotImplementedError('Not available from this locator') + raise NotImplementedError("Not available from this locator") def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - url = urljoin(self.base_url, '%s/json' % quote(name)) + result = {"urls": {}, "digests": {}} + url = urljoin(self.base_url, "%s/json" % quote(name)) try: resp = self.opener.open(url) data = resp.read().decode() # for now d = json.loads(data) md = Metadata(scheme=self.scheme) - data = d['info'] - md.name = data['name'] - md.version = data['version'] - md.license = data.get('license') - md.keywords = data.get('keywords', []) - md.summary = data.get('summary') + data = d["info"] + md.name = data["name"] + md.version = data["version"] + md.license = data.get("license") + md.keywords = data.get("keywords", []) + md.summary = data.get("summary") dist = Distribution(md) dist.locator = self # urls = d['urls'] result[md.version] = dist - for info in d['urls']: - url = info['url'] + for info in d["urls"]: + url = info["url"] dist.download_urls.add(url) dist.digests[url] = self._get_digest(info) - result['urls'].setdefault(md.version, set()).add(url) - result['digests'][url] = self._get_digest(info) + result["urls"].setdefault(md.version, set()).add(url) + result["digests"][url] = self._get_digest(info) # Now get other releases - for version, infos in d['releases'].items(): + for version, infos in d["releases"].items(): if version == md.version: continue # already done omd = Metadata(scheme=self.scheme) @@ -501,24 +538,23 @@ class PyPIJSONLocator(Locator): odist.locator = self result[version] = odist for info in infos: - url = info['url'] + url = info["url"] odist.download_urls.add(url) odist.digests[url] = self._get_digest(info) - result['urls'].setdefault(version, set()).add(url) - result['digests'][url] = self._get_digest(info) + result["urls"].setdefault(version, set()).add(url) + result["digests"][url] = self._get_digest(info) - -# for info in urls: -# md.source_url = info['url'] -# dist.digest = self._get_digest(info) -# dist.locator = self -# for info in urls: -# url = info['url'] -# result['urls'].setdefault(md.version, set()).add(url) -# result['digests'][url] = self._get_digest(info) + # for info in urls: + # md.source_url = info['url'] + # dist.digest = self._get_digest(info) + # dist.locator = self + # for info in urls: + # url = info['url'] + # result['urls'].setdefault(md.version, set()).add(url) + # result['digests'][url] = self._get_digest(info) except Exception as e: self.errors.put(text_type(e)) - logger.exception('JSON fetch failed: %s', e) + logger.exception("JSON fetch failed: %s", e) return result @@ -526,6 +562,7 @@ class Page(object): """ This class represents a scraped HTML page. """ + # The following slightly hairy-looking regex just looks for the contents of # an anchor link, which has an attribute "href" either immediately preceded # or immediately followed by a "rel" attribute. The attribute values can be @@ -536,7 +573,9 @@ class Page(object): (rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*))\\s+)? href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) (\\s+rel\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)))? -""", re.I | re.S | re.X) +""", + re.I | re.S | re.X, + ) _base = re.compile(r"""]+)""", re.I | re.S) def __init__(self, data, url): @@ -550,7 +589,7 @@ href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) if m: self.base_url = m.group(1) - _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) + _clean_re = re.compile(r"[^a-z0-9$&+,/:;=?@.#%_\\|-]", re.I) @cached_property def links(self): @@ -567,12 +606,19 @@ href\\s*=\\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\\s\n]*)) result = set() for match in self._href.finditer(self.data): - d = match.groupdict('') - rel = (d['rel1'] or d['rel2'] or d['rel3'] or d['rel4'] or d['rel5'] or d['rel6']) - url = d['url1'] or d['url2'] or d['url3'] + d = match.groupdict("") + rel = ( + d["rel1"] + or d["rel2"] + or d["rel3"] + or d["rel4"] + or d["rel5"] + or d["rel6"] + ) + url = d["url1"] or d["url2"] or d["url3"] url = urljoin(self.base_url, url) url = unescape(url) - url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) + url = self._clean_re.sub(lambda m: "%%%2x" % ord(m.group(0)), url) result.add((url, rel)) # We sort the result, hoping to bring the most recent versions # to the front @@ -589,9 +635,9 @@ class SimpleScrapingLocator(Locator): # These are used to deal with various Content-Encoding schemes. decoders = { - 'deflate': zlib.decompress, - 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(), - 'none': lambda b: b, + "deflate": zlib.decompress, + "gzip": lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(), + "none": lambda b: b, } def __init__(self, url, timeout=None, num_workers=10, **kwargs): @@ -648,16 +694,16 @@ class SimpleScrapingLocator(Locator): self._threads = [] def _get_project(self, name): - result = {'urls': {}, 'digests': {}} + result = {"urls": {}, "digests": {}} with self._gplock: self.result = result self.project_name = name - url = urljoin(self.base_url, '%s/' % quote(name)) + url = urljoin(self.base_url, "%s/" % quote(name)) self._seen.clear() self._page_cache.clear() self._prepare_threads() try: - logger.debug('Queueing %s', url) + logger.debug("Queueing %s", url) self._to_fetch.put(url) self._to_fetch.join() finally: @@ -665,8 +711,9 @@ class SimpleScrapingLocator(Locator): del self.result return result - platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|' - r'win(32|_amd64)|macosx_?\d+)\b', re.I) + platform_dependent = re.compile( + r"\b(linux_(i\d86|x86_64|arm\w+)|" r"win(32|_amd64)|macosx_?\d+)\b", re.I + ) def _is_platform_dependent(self, url): """ @@ -688,7 +735,7 @@ class SimpleScrapingLocator(Locator): info = None else: info = self.convert_url_to_download_info(url, self.project_name) - logger.debug('process_download: %s -> %s', url, info) + logger.debug("process_download: %s -> %s", url, info) if info: with self._lock: # needed because self.result is shared self._update_version_data(self.result, info) @@ -700,25 +747,27 @@ class SimpleScrapingLocator(Locator): particular "rel" attribute should be queued for scraping. """ scheme, netloc, path, _, _, _ = urlparse(link) - if path.endswith(self.source_extensions + self.binary_extensions + self.excluded_extensions): + if path.endswith( + self.source_extensions + self.binary_extensions + self.excluded_extensions + ): result = False elif self.skip_externals and not link.startswith(self.base_url): result = False elif not referrer.startswith(self.base_url): result = False - elif rel not in ('homepage', 'download'): + elif rel not in ("homepage", "download"): result = False - elif scheme not in ('http', 'https', 'ftp'): + elif scheme not in ("http", "https", "ftp"): result = False elif self._is_platform_dependent(link): result = False else: - host = netloc.split(':', 1)[0] - if host.lower() == 'localhost': + host = netloc.split(":", 1)[0] + if host.lower() == "localhost": result = False else: result = True - logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, referrer, result) + logger.debug("should_queue: %s (%s) from %s -> %s", link, rel, referrer, result) return result def _fetch(self): @@ -739,8 +788,10 @@ class SimpleScrapingLocator(Locator): if link not in self._seen: try: self._seen.add(link) - if (not self._process_download(link) and self._should_queue(link, url, rel)): - logger.debug('Queueing %s from %s', link, url) + if not self._process_download( + link + ) and self._should_queue(link, url, rel): + logger.debug("Queueing %s from %s", link, url) self._to_fetch.put(link) except MetadataInvalidError: # e.g. invalid versions pass @@ -763,56 +814,56 @@ class SimpleScrapingLocator(Locator): """ # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api scheme, netloc, path, _, _, _ = urlparse(url) - if scheme == 'file' and os.path.isdir(url2pathname(path)): - url = urljoin(ensure_slash(url), 'index.html') + if scheme == "file" and os.path.isdir(url2pathname(path)): + url = urljoin(ensure_slash(url), "index.html") if url in self._page_cache: result = self._page_cache[url] - logger.debug('Returning %s from cache: %s', url, result) + logger.debug("Returning %s from cache: %s", url, result) else: - host = netloc.split(':', 1)[0] + host = netloc.split(":", 1)[0] result = None if host in self._bad_hosts: - logger.debug('Skipping %s due to bad host %s', url, host) + logger.debug("Skipping %s due to bad host %s", url, host) else: - req = Request(url, headers={'Accept-encoding': 'identity'}) + req = Request(url, headers={"Accept-encoding": "identity"}) try: - logger.debug('Fetching %s', url) + logger.debug("Fetching %s", url) resp = self.opener.open(req, timeout=self.timeout) - logger.debug('Fetched %s', url) + logger.debug("Fetched %s", url) headers = resp.info() - content_type = headers.get('Content-Type', '') + content_type = headers.get("Content-Type", "") if HTML_CONTENT_TYPE.match(content_type): final_url = resp.geturl() data = resp.read() - encoding = headers.get('Content-Encoding') + encoding = headers.get("Content-Encoding") if encoding: decoder = self.decoders[encoding] # fail if not found data = decoder(data) - encoding = 'utf-8' + encoding = "utf-8" m = CHARSET.search(content_type) if m: encoding = m.group(1) try: data = data.decode(encoding) except UnicodeError: # pragma: no cover - data = data.decode('latin-1') # fallback + data = data.decode("latin-1") # fallback result = Page(data, final_url) self._page_cache[final_url] = result except HTTPError as e: if e.code != 404: - logger.exception('Fetch failed: %s: %s', url, e) + logger.exception("Fetch failed: %s: %s", url, e) except URLError as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) + logger.exception("Fetch failed: %s: %s", url, e) with self._lock: self._bad_hosts.add(host) except Exception as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) + logger.exception("Fetch failed: %s: %s", url, e) finally: self._page_cache[url] = result # even if None (failure) return result - _distname_re = re.compile(']*>([^<]+)<') + _distname_re = re.compile("]*>([^<]+)<") def get_distribution_names(self): """ @@ -821,7 +872,7 @@ class SimpleScrapingLocator(Locator): result = set() page = self.get_page(self.base_url) if not page: - raise DistlibException('Unable to get %s' % self.base_url) + raise DistlibException("Unable to get %s" % self.base_url) for match in self._distname_re.finditer(page.data): result.add(match.group(1)) return result @@ -842,11 +893,11 @@ class DirectoryLocator(Locator): recursed into. If False, only the top-level directory is searched, """ - self.recursive = kwargs.pop('recursive', True) + self.recursive = kwargs.pop("recursive", True) super(DirectoryLocator, self).__init__(**kwargs) path = os.path.abspath(path) if not os.path.isdir(path): # pragma: no cover - raise DistlibException('Not a directory: %r' % path) + raise DistlibException("Not a directory: %r" % path) self.base_dir = path def should_include(self, filename, parent): @@ -858,12 +909,14 @@ class DirectoryLocator(Locator): return filename.endswith(self.downloadable_extensions) def _get_project(self, name): - result = {'urls': {}, 'digests': {}} + result = {"urls": {}, "digests": {}} for root, dirs, files in os.walk(self.base_dir): for fn in files: if self.should_include(fn, root): fn = os.path.join(root, fn) - url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', '')) + url = urlunparse( + ("file", "", pathname2url(os.path.abspath(fn)), "", "", "") + ) info = self.convert_url_to_download_info(url, name) if info: self._update_version_data(result, info) @@ -880,10 +933,12 @@ class DirectoryLocator(Locator): for fn in files: if self.should_include(fn, root): fn = os.path.join(root, fn) - url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', '')) + url = urlunparse( + ("file", "", pathname2url(os.path.abspath(fn)), "", "", "") + ) info = self.convert_url_to_download_info(url, None) if info: - result.add(info['name']) + result.add(info["name"]) if not self.recursive: break return result @@ -901,31 +956,33 @@ class JSONLocator(Locator): """ Return all the distribution names known to this locator. """ - raise NotImplementedError('Not available from this locator') + raise NotImplementedError("Not available from this locator") def _get_project(self, name): - result = {'urls': {}, 'digests': {}} + result = {"urls": {}, "digests": {}} data = get_project_data(name) if data: - for info in data.get('files', []): - if info['ptype'] != 'sdist' or info['pyversion'] != 'source': + for info in data.get("files", []): + if info["ptype"] != "sdist" or info["pyversion"] != "source": continue # We don't store summary in project metadata as it makes # the data bigger for no benefit during dependency # resolution - dist = make_dist(data['name'], - info['version'], - summary=data.get('summary', 'Placeholder for summary'), - scheme=self.scheme) + dist = make_dist( + data["name"], + info["version"], + summary=data.get("summary", "Placeholder for summary"), + scheme=self.scheme, + ) md = dist.metadata - md.source_url = info['url'] + md.source_url = info["url"] # TODO SHA256 digest - if 'digest' in info and info['digest']: - dist.digest = ('md5', info['digest']) - md.dependencies = info.get('requirements', {}) - dist.exports = info.get('exports', {}) + if "digest" in info and info["digest"]: + dist.digest = ("md5", info["digest"]) + md.dependencies = info.get("requirements", {}) + dist.exports = info.get("exports", {}) result[dist.version] = dist - result['urls'].setdefault(dist.version, set()).add(info['url']) + result["urls"].setdefault(dist.version, set()).add(info["url"]) return result @@ -948,16 +1005,12 @@ class DistPathLocator(Locator): def _get_project(self, name): dist = self.distpath.get_distribution(name) if dist is None: - result = {'urls': {}, 'digests': {}} + result = {"urls": {}, "digests": {}} else: result = { dist.version: dist, - 'urls': { - dist.version: set([dist.source_url]) - }, - 'digests': { - dist.version: set([None]) - } + "urls": {dist.version: set([dist.source_url])}, + "digests": {dist.version: set([None])}, } return result @@ -979,7 +1032,7 @@ class AggregatingLocator(Locator): the results from all locators are merged (this can be slow). """ - self.merge = kwargs.pop('merge', False) + self.merge = kwargs.pop("merge", False) self.locators = locators super(AggregatingLocator, self).__init__(**kwargs) @@ -1001,18 +1054,18 @@ class AggregatingLocator(Locator): d = locator.get_project(name) if d: if self.merge: - files = result.get('urls', {}) - digests = result.get('digests', {}) + files = result.get("urls", {}) + digests = result.get("digests", {}) # next line could overwrite result['urls'], result['digests'] result.update(d) - df = result.get('urls') + df = result.get("urls") if files and df: for k, v in files.items(): if k in df: df[k] |= v else: df[k] = v - dd = result.get('digests') + dd = result.get("digests") if digests and dd: dd.update(digests) else: @@ -1056,8 +1109,9 @@ class AggregatingLocator(Locator): # versions which don't conform to PEP 440. default_locator = AggregatingLocator( # JSONLocator(), # don't use as PEP 426 is withdrawn - SimpleScrapingLocator('https://pypi.org/simple/', timeout=3.0), - scheme='legacy') + SimpleScrapingLocator("https://pypi.org/simple/", timeout=3.0), + scheme="legacy", +) locate = default_locator.locate @@ -1081,13 +1135,13 @@ class DependencyFinder(object): about who provides what. :param dist: The distribution to add. """ - logger.debug('adding distribution %s', dist) + logger.debug("adding distribution %s", dist) name = dist.key self.dists_by_name[name] = dist self.dists[(name, dist.version)] = dist for p in dist.provides: name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) + logger.debug("Add to provided: %s, %s, %s", name, version, dist) self.provided.setdefault(name, set()).add((version, dist)) def remove_distribution(self, dist): @@ -1096,13 +1150,13 @@ class DependencyFinder(object): information about who provides what. :param dist: The distribution to remove. """ - logger.debug('removing distribution %s', dist) + logger.debug("removing distribution %s", dist) name = dist.key del self.dists_by_name[name] del self.dists[(name, dist.version)] for p in dist.provides: name, version = parse_name_and_version(p) - logger.debug('Remove from provided: %s, %s, %s', name, version, dist) + logger.debug("Remove from provided: %s, %s, %s", name, version, dist) s = self.provided[name] s.remove((version, dist)) if not s: @@ -1175,7 +1229,7 @@ class DependencyFinder(object): unmatched.add(s) if unmatched: # can't replace other with provider - problems.add(('cantreplace', provider, other, frozenset(unmatched))) + problems.add(("cantreplace", provider, other, frozenset(unmatched))) result = False else: # can replace other with provider @@ -1219,19 +1273,19 @@ class DependencyFinder(object): self.reqts = {} meta_extras = set(meta_extras or []) - if ':*:' in meta_extras: - meta_extras.remove(':*:') + if ":*:" in meta_extras: + meta_extras.remove(":*:") # :meta: and :run: are implicitly included - meta_extras |= set([':test:', ':build:', ':dev:']) + meta_extras |= set([":test:", ":build:", ":dev:"]) if isinstance(requirement, Distribution): dist = odist = requirement - logger.debug('passed %s as requirement', odist) + logger.debug("passed %s as requirement", odist) else: dist = odist = self.locator.locate(requirement, prereleases=prereleases) if dist is None: - raise DistlibException('Unable to locate %r' % requirement) - logger.debug('located %s', odist) + raise DistlibException("Unable to locate %r" % requirement) + logger.debug("located %s", odist) dist.requested = True problems = set() todo = set([dist]) @@ -1251,23 +1305,23 @@ class DependencyFinder(object): sreqts = dist.build_requires ereqts = set() if meta_extras and dist in install_dists: - for key in ('test', 'build', 'dev'): - e = ':%s:' % key + for key in ("test", "build", "dev"): + e = ":%s:" % key if e in meta_extras: - ereqts |= getattr(dist, '%s_requires' % key) + ereqts |= getattr(dist, "%s_requires" % key) all_reqts = ireqts | sreqts | ereqts for r in all_reqts: providers = self.find_providers(r) if not providers: - logger.debug('No providers found for %r', r) + logger.debug("No providers found for %r", r) provider = self.locator.locate(r, prereleases=prereleases) # If no provider is found and we didn't consider # prereleases, consider them now. if provider is None and not prereleases: provider = self.locator.locate(r, prereleases=True) if provider is None: - logger.debug('Cannot satisfy %r', r) - problems.add(('unsatisfied', r)) + logger.debug("Cannot satisfy %r", r) + problems.add(("unsatisfied", r)) else: n, v = provider.key, provider.version if (n, v) not in self.dists: @@ -1275,7 +1329,9 @@ class DependencyFinder(object): providers.add(provider) if r in ireqts and dist in install_dists: install_dists.add(provider) - logger.debug('Adding %s to install_dists', provider.name_and_version) + logger.debug( + "Adding %s to install_dists", provider.name_and_version + ) for p in providers: name = p.key if name not in self.dists_by_name: @@ -1290,6 +1346,8 @@ class DependencyFinder(object): for dist in dists: dist.build_time_dependency = dist not in install_dists if dist.build_time_dependency: - logger.debug('%s is a build-time dependency only.', dist.name_and_version) - logger.debug('find done for %s', odist) + logger.debug( + "%s is a build-time dependency only.", dist.name_and_version + ) + logger.debug("find done for %s", odist) return dists, problems diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/manifest.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/manifest.py index 420dcf1..536fc27 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/manifest.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/manifest.py @@ -8,6 +8,7 @@ Class representing the list of files in a distribution. Equivalent to distutils.filelist, but fixes some problems. """ + import fnmatch import logging import os @@ -18,14 +19,13 @@ from . import DistlibException from .compat import fsdecode from .util import convert_path - -__all__ = ['Manifest'] +__all__ = ["Manifest"] logger = logging.getLogger(__name__) # a \ followed by some spaces + EOL -_COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) -_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) +_COLLAPSE_PATTERN = re.compile("\\\\w*\n", re.M) +_COMMENTED_LINE = re.compile("#.*?(?=\n)|\n(?=$)", re.M | re.S) # # Due to the different results returned by fnmatch.translate, we need @@ -109,20 +109,22 @@ class Manifest(object): def add_dir(dirs, d): dirs.add(d) - logger.debug('add_dir added %s', d) + logger.debug("add_dir added %s", d) if d != self.base: parent, _ = os.path.split(d) - assert parent not in ('', '/') + assert parent not in ("", "/") add_dir(dirs, parent) - result = set(self.files) # make a copy! + result = set(self.files) # make a copy! if wantdirs: dirs = set() for f in result: add_dir(dirs, os.path.dirname(f)) result |= dirs - return [os.path.join(*path_tuple) for path_tuple in - sorted(os.path.split(path) for path in result)] + return [ + os.path.join(*path_tuple) + for path_tuple in sorted(os.path.split(path) for path in result) + ] def clear(self): """Clear all collected files.""" @@ -149,49 +151,54 @@ class Manifest(object): # OK, now we know that the action is valid and we have the # right number of words on the line for that action -- so we # can proceed with minimal error-checking. - if action == 'include': + if action == "include": for pattern in patterns: if not self._include_pattern(pattern, anchor=True): - logger.warning('no files found matching %r', pattern) + logger.warning("no files found matching %r", pattern) - elif action == 'exclude': + elif action == "exclude": for pattern in patterns: self._exclude_pattern(pattern, anchor=True) - elif action == 'global-include': + elif action == "global-include": for pattern in patterns: if not self._include_pattern(pattern, anchor=False): - logger.warning('no files found matching %r ' - 'anywhere in distribution', pattern) + logger.warning( + "no files found matching %r " "anywhere in distribution", + pattern, + ) - elif action == 'global-exclude': + elif action == "global-exclude": for pattern in patterns: self._exclude_pattern(pattern, anchor=False) - elif action == 'recursive-include': + elif action == "recursive-include": for pattern in patterns: if not self._include_pattern(pattern, prefix=thedir): - logger.warning('no files found matching %r ' - 'under directory %r', pattern, thedir) + logger.warning( + "no files found matching %r " "under directory %r", + pattern, + thedir, + ) - elif action == 'recursive-exclude': + elif action == "recursive-exclude": for pattern in patterns: self._exclude_pattern(pattern, prefix=thedir) - elif action == 'graft': + elif action == "graft": if not self._include_pattern(None, prefix=dirpattern): - logger.warning('no directories found matching %r', - dirpattern) + logger.warning("no directories found matching %r", dirpattern) - elif action == 'prune': + elif action == "prune": if not self._exclude_pattern(None, prefix=dirpattern): - logger.warning('no previously-included directories found ' - 'matching %r', dirpattern) - else: # pragma: no cover + logger.warning( + "no previously-included directories found " "matching %r", + dirpattern, + ) + else: # pragma: no cover # This should never happen, as it should be caught in # _parse_template_line - raise DistlibException( - 'invalid action %r' % action) + raise DistlibException("invalid action %r" % action) # # Private API @@ -204,48 +211,49 @@ class Manifest(object): :return: A tuple of action, patterns, thedir, dir_patterns """ words = directive.split() - if len(words) == 1 and words[0] not in ('include', 'exclude', - 'global-include', - 'global-exclude', - 'recursive-include', - 'recursive-exclude', - 'graft', 'prune'): + if len(words) == 1 and words[0] not in ( + "include", + "exclude", + "global-include", + "global-exclude", + "recursive-include", + "recursive-exclude", + "graft", + "prune", + ): # no action given, let's use the default 'include' - words.insert(0, 'include') + words.insert(0, "include") action = words[0] patterns = thedir = dir_pattern = None - if action in ('include', 'exclude', - 'global-include', 'global-exclude'): + if action in ("include", "exclude", "global-include", "global-exclude"): if len(words) < 2: - raise DistlibException( - '%r expects ...' % action) + raise DistlibException("%r expects ..." % action) patterns = [convert_path(word) for word in words[1:]] - elif action in ('recursive-include', 'recursive-exclude'): + elif action in ("recursive-include", "recursive-exclude"): if len(words) < 3: raise DistlibException( - '%r expects ...' % action) + "%r expects ..." % action + ) thedir = convert_path(words[1]) patterns = [convert_path(word) for word in words[2:]] - elif action in ('graft', 'prune'): + elif action in ("graft", "prune"): if len(words) != 2: - raise DistlibException( - '%r expects a single ' % action) + raise DistlibException("%r expects a single " % action) dir_pattern = convert_path(words[1]) else: - raise DistlibException('unknown action %r' % action) + raise DistlibException("unknown action %r" % action) return action, patterns, thedir, dir_pattern - def _include_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): + def _include_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Select strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. @@ -285,8 +293,7 @@ class Manifest(object): found = True return found - def _exclude_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): + def _exclude_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Remove strings (presumably filenames) from 'files' that match 'pattern'. @@ -305,8 +312,7 @@ class Manifest(object): found = True return found - def _translate_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): + def _translate_pattern(self, pattern, anchor=True, prefix=None, is_regex=False): """Translate a shell-like wildcard pattern to a compiled regular expression. @@ -322,41 +328,46 @@ class Manifest(object): if _PYTHON_VERSION > (3, 2): # ditch start and end characters - start, _, end = self._glob_to_re('_').partition('_') + start, _, end = self._glob_to_re("_").partition("_") if pattern: pattern_re = self._glob_to_re(pattern) if _PYTHON_VERSION > (3, 2): assert pattern_re.startswith(start) and pattern_re.endswith(end) else: - pattern_re = '' + pattern_re = "" - base = re.escape(os.path.join(self.base, '')) + base = re.escape(os.path.join(self.base, "")) if prefix is not None: # ditch end of pattern character if _PYTHON_VERSION <= (3, 2): - empty_pattern = self._glob_to_re('') - prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] + empty_pattern = self._glob_to_re("") + prefix_re = self._glob_to_re(prefix)[: -len(empty_pattern)] else: prefix_re = self._glob_to_re(prefix) assert prefix_re.startswith(start) and prefix_re.endswith(end) - prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] + prefix_re = prefix_re[len(start) : len(prefix_re) - len(end)] sep = os.sep - if os.sep == '\\': - sep = r'\\' + if os.sep == "\\": + sep = r"\\" if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + sep.join((prefix_re, - '.*' + pattern_re)) + pattern_re = "^" + base + sep.join((prefix_re, ".*" + pattern_re)) else: - pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] - pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, - pattern_re, end) + pattern_re = pattern_re[len(start) : len(pattern_re) - len(end)] + pattern_re = r"%s%s%s%s.*%s%s" % ( + start, + base, + prefix_re, + sep, + pattern_re, + end, + ) else: # no prefix -- respect anchor flag if anchor: if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + pattern_re + pattern_re = "^" + base + pattern_re else: - pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) + pattern_re = r"%s%s%s" % (start, base, pattern_re[len(start) :]) return re.compile(pattern_re) @@ -375,10 +386,10 @@ class Manifest(object): # any OS. So change all non-escaped dots in the RE to match any # character except the special characters (currently: just os.sep). sep = os.sep - if os.sep == '\\': + if os.sep == "\\": # we're using a regex to manipulate a regex, so we need # to escape the backslash twice - sep = r'\\\\' - escaped = r'\1[^%s]' % sep - pattern_re = re.sub(r'((? y, - '!=': lambda x, y: x != y, - '<': lambda x, y: x < y, - '<=': lambda x, y: x == y or x < y, - '>': lambda x, y: x > y, - '>=': lambda x, y: x == y or x > y, - 'and': lambda x, y: x and y, - 'or': lambda x, y: x or y, - 'in': lambda x, y: x in y, - 'not in': lambda x, y: x not in y, + "==": lambda x, y: x == y, + "===": lambda x, y: x == y, + "~=": lambda x, y: x == y or x > y, + "!=": lambda x, y: x != y, + "<": lambda x, y: x < y, + "<=": lambda x, y: x == y or x < y, + ">": lambda x, y: x > y, + ">=": lambda x, y: x == y or x > y, + "and": lambda x, y: x and y, + "or": lambda x, y: x or y, + "in": lambda x, y: x in y, + "not in": lambda x, y: x not in y, } def evaluate(self, expr, context): @@ -67,70 +69,78 @@ class Evaluator(object): function in the specified context. """ if isinstance(expr, string_types): - if expr[0] in '\'"': + if expr[0] in "'\"": result = expr[1:-1] else: if expr not in context: - raise SyntaxError('unknown variable: %s' % expr) + raise SyntaxError("unknown variable: %s" % expr) result = context[expr] else: assert isinstance(expr, dict) - op = expr['op'] + op = expr["op"] if op not in self.operations: - raise NotImplementedError('op not implemented: %s' % op) - elhs = expr['lhs'] - erhs = expr['rhs'] - if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): - raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) + raise NotImplementedError("op not implemented: %s" % op) + elhs = expr["lhs"] + erhs = expr["rhs"] + if _is_literal(expr["lhs"]) and _is_literal(expr["rhs"]): + raise SyntaxError("invalid comparison: %s %s %s" % (elhs, op, erhs)) lhs = self.evaluate(elhs, context) rhs = self.evaluate(erhs, context) - if ((_is_version_marker(elhs) or _is_version_marker(erhs)) and - op in ('<', '<=', '>', '>=', '===', '==', '!=', '~=')): + if (_is_version_marker(elhs) or _is_version_marker(erhs)) and op in ( + "<", + "<=", + ">", + ">=", + "===", + "==", + "!=", + "~=", + ): lhs = LV(lhs) rhs = LV(rhs) - elif _is_version_marker(elhs) and op in ('in', 'not in'): + elif _is_version_marker(elhs) and op in ("in", "not in"): lhs = LV(lhs) rhs = _get_versions(rhs) result = self.operations[op](lhs, rhs) return result -_DIGITS = re.compile(r'\d+\.\d+') +_DIGITS = re.compile(r"\d+\.\d+") def default_context(): def format_full_version(info): - version = '%s.%s.%s' % (info.major, info.minor, info.micro) + version = "%s.%s.%s" % (info.major, info.minor, info.micro) kind = info.releaselevel - if kind != 'final': + if kind != "final": version += kind[0] + str(info.serial) return version - if hasattr(sys, 'implementation'): + if hasattr(sys, "implementation"): implementation_version = format_full_version(sys.implementation.version) implementation_name = sys.implementation.name else: - implementation_version = '0' - implementation_name = '' + implementation_version = "0" + implementation_name = "" ppv = platform.python_version() m = _DIGITS.match(ppv) pv = m.group(0) result = { - 'implementation_name': implementation_name, - 'implementation_version': implementation_version, - 'os_name': os.name, - 'platform_machine': platform.machine(), - 'platform_python_implementation': platform.python_implementation(), - 'platform_release': platform.release(), - 'platform_system': platform.system(), - 'platform_version': platform.version(), - 'platform_in_venv': str(in_venv()), - 'python_full_version': ppv, - 'python_version': pv, - 'sys_platform': sys.platform, + "implementation_name": implementation_name, + "implementation_version": implementation_version, + "os_name": os.name, + "platform_machine": platform.machine(), + "platform_python_implementation": platform.python_implementation(), + "platform_release": platform.release(), + "platform_system": platform.system(), + "platform_version": platform.version(), + "platform_in_venv": str(in_venv()), + "python_full_version": ppv, + "python_version": pv, + "sys_platform": sys.platform, } return result @@ -140,12 +150,14 @@ del default_context evaluator = Evaluator() + def interpret_parsed(expr, execution_context=None): context = dict(DEFAULT_CONTEXT) if execution_context: context.update(execution_context) return evaluator.evaluate(expr, context) + def interpret(marker, execution_context=None): """ Interpret a marker and return a result depending on environment. @@ -158,7 +170,7 @@ def interpret(marker, execution_context=None): try: expr, rest = parse_marker(marker) except Exception as e: - raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) - if rest and rest[0] != '#': - raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) + raise SyntaxError("Unable to interpret marker syntax: %s: %s" % (marker, e)) + if rest and rest[0] != "#": + raise SyntaxError("unexpected trailing data in marker: %s: %s" % (marker, rest)) return interpret_parsed(expr, execution_context) diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/metadata.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/metadata.py index ce9a34b..8388b2a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/metadata.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/metadata.py @@ -7,6 +7,7 @@ Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and 2.2). """ + from __future__ import unicode_literals import codecs @@ -41,51 +42,141 @@ class MetadataInvalidError(DistlibException): # public API of this module -__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] +__all__ = ["Metadata", "PKG_INFO_ENCODING", "PKG_INFO_PREFERRED_VERSION"] # Encoding used for the PKG-INFO files -PKG_INFO_ENCODING = 'utf-8' +PKG_INFO_ENCODING = "utf-8" # preferred version. Hopefully will be changed # to 1.2 once PEP 345 is supported everywhere -PKG_INFO_PREFERRED_VERSION = '1.1' +PKG_INFO_PREFERRED_VERSION = "1.1" -_LINE_PREFIX_1_2 = re.compile('\n \\|') -_LINE_PREFIX_PRE_1_2 = re.compile('\n ') -_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Summary', 'Description', 'Keywords', 'Home-page', - 'Author', 'Author-email', 'License') +_LINE_PREFIX_1_2 = re.compile("\n \\|") +_LINE_PREFIX_PRE_1_2 = re.compile("\n ") +_241_FIELDS = ( + "Metadata-Version", + "Name", + "Version", + "Platform", + "Summary", + "Description", + "Keywords", + "Home-page", + "Author", + "Author-email", + "License", +) -_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', 'License', 'Classifier', 'Download-URL', 'Obsoletes', - 'Provides', 'Requires') +_314_FIELDS = ( + "Metadata-Version", + "Name", + "Version", + "Platform", + "Supported-Platform", + "Summary", + "Description", + "Keywords", + "Home-page", + "Author", + "Author-email", + "License", + "Classifier", + "Download-URL", + "Obsoletes", + "Provides", + "Requires", +) -_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', 'Download-URL') +_314_MARKERS = ("Obsoletes", "Provides", "Requires", "Classifier", "Download-URL") -_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External') +_345_FIELDS = ( + "Metadata-Version", + "Name", + "Version", + "Platform", + "Supported-Platform", + "Summary", + "Description", + "Keywords", + "Home-page", + "Author", + "Author-email", + "Maintainer", + "Maintainer-email", + "License", + "Classifier", + "Download-URL", + "Obsoletes-Dist", + "Project-URL", + "Provides-Dist", + "Requires-Dist", + "Requires-Python", + "Requires-External", +) -_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', 'Obsoletes-Dist', 'Requires-External', - 'Maintainer', 'Maintainer-email', 'Project-URL') +_345_MARKERS = ( + "Provides-Dist", + "Requires-Dist", + "Requires-Python", + "Obsoletes-Dist", + "Requires-External", + "Maintainer", + "Maintainer-email", + "Project-URL", +) -_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External', 'Private-Version', 'Obsoleted-By', 'Setup-Requires-Dist', - 'Extension', 'Provides-Extra') +_426_FIELDS = ( + "Metadata-Version", + "Name", + "Version", + "Platform", + "Supported-Platform", + "Summary", + "Description", + "Keywords", + "Home-page", + "Author", + "Author-email", + "Maintainer", + "Maintainer-email", + "License", + "Classifier", + "Download-URL", + "Obsoletes-Dist", + "Project-URL", + "Provides-Dist", + "Requires-Dist", + "Requires-Python", + "Requires-External", + "Private-Version", + "Obsoleted-By", + "Setup-Requires-Dist", + "Extension", + "Provides-Extra", +) -_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension') +_426_MARKERS = ( + "Private-Version", + "Provides-Extra", + "Obsoleted-By", + "Setup-Requires-Dist", + "Extension", +) # See issue #106: Sometimes 'Requires' and 'Provides' occur wrongly in # the metadata. Include them in the tuple literal below to allow them # (for now). # Ditto for Obsoletes - see issue #140. -_566_FIELDS = _426_FIELDS + ('Description-Content-Type', 'Requires', 'Provides', 'Obsoletes') +_566_FIELDS = _426_FIELDS + ( + "Description-Content-Type", + "Requires", + "Provides", + "Obsoletes", +) -_566_MARKERS = ('Description-Content-Type', ) +_566_MARKERS = ("Description-Content-Type",) -_643_MARKERS = ('Dynamic', 'License-File') +_643_MARKERS = ("Dynamic", "License-File") _643_FIELDS = _566_FIELDS + _643_MARKERS @@ -97,23 +188,23 @@ _ALL_FIELDS.update(_426_FIELDS) _ALL_FIELDS.update(_566_FIELDS) _ALL_FIELDS.update(_643_FIELDS) -EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') +EXTRA_RE = re.compile(r"""extra\s*==\s*("([^"]+)"|'([^']+)')""") def _version2fieldlist(version): - if version == '1.0': + if version == "1.0": return _241_FIELDS - elif version == '1.1': + elif version == "1.1": return _314_FIELDS - elif version == '1.2': + elif version == "1.2": return _345_FIELDS - elif version in ('1.3', '2.1'): + elif version in ("1.3", "2.1"): # avoid adding field names if already there return _345_FIELDS + tuple(f for f in _566_FIELDS if f not in _345_FIELDS) - elif version == '2.0': - raise ValueError('Metadata 2.0 is withdrawn and not supported') + elif version == "2.0": + raise ValueError("Metadata 2.0 is withdrawn and not supported") # return _426_FIELDS - elif version == '2.2': + elif version == "2.2": return _643_FIELDS raise MetadataUnrecognizedVersionError(version) @@ -124,30 +215,30 @@ def _best_version(fields): def _has_marker(keys, markers): return any(marker in keys for marker in markers) - keys = [key for key, value in fields.items() if value not in ([], 'UNKNOWN', None)] - possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.1', '2.2'] # 2.0 removed + keys = [key for key, value in fields.items() if value not in ([], "UNKNOWN", None)] + possible_versions = ["1.0", "1.1", "1.2", "1.3", "2.1", "2.2"] # 2.0 removed # first let's try to see if a field is not part of one of the version for key in keys: - if key not in _241_FIELDS and '1.0' in possible_versions: - possible_versions.remove('1.0') - logger.debug('Removed 1.0 due to %s', key) - if key not in _314_FIELDS and '1.1' in possible_versions: - possible_versions.remove('1.1') - logger.debug('Removed 1.1 due to %s', key) - if key not in _345_FIELDS and '1.2' in possible_versions: - possible_versions.remove('1.2') - logger.debug('Removed 1.2 due to %s', key) - if key not in _566_FIELDS and '1.3' in possible_versions: - possible_versions.remove('1.3') - logger.debug('Removed 1.3 due to %s', key) - if key not in _566_FIELDS and '2.1' in possible_versions: - if key != 'Description': # In 2.1, description allowed after headers - possible_versions.remove('2.1') - logger.debug('Removed 2.1 due to %s', key) - if key not in _643_FIELDS and '2.2' in possible_versions: - possible_versions.remove('2.2') - logger.debug('Removed 2.2 due to %s', key) + if key not in _241_FIELDS and "1.0" in possible_versions: + possible_versions.remove("1.0") + logger.debug("Removed 1.0 due to %s", key) + if key not in _314_FIELDS and "1.1" in possible_versions: + possible_versions.remove("1.1") + logger.debug("Removed 1.1 due to %s", key) + if key not in _345_FIELDS and "1.2" in possible_versions: + possible_versions.remove("1.2") + logger.debug("Removed 1.2 due to %s", key) + if key not in _566_FIELDS and "1.3" in possible_versions: + possible_versions.remove("1.3") + logger.debug("Removed 1.3 due to %s", key) + if key not in _566_FIELDS and "2.1" in possible_versions: + if key != "Description": # In 2.1, description allowed after headers + possible_versions.remove("2.1") + logger.debug("Removed 2.1 due to %s", key) + if key not in _643_FIELDS and "2.2" in possible_versions: + possible_versions.remove("2.2") + logger.debug("Removed 2.2 due to %s", key) # if key not in _426_FIELDS and '2.0' in possible_versions: # possible_versions.remove('2.0') # logger.debug('Removed 2.0 due to %s', key) @@ -156,17 +247,17 @@ def _best_version(fields): if len(possible_versions) == 1: return possible_versions[0] # found ! elif len(possible_versions) == 0: - logger.debug('Out of options - unknown metadata set: %s', fields) - raise MetadataConflictError('Unknown metadata set') + logger.debug("Out of options - unknown metadata set: %s", fields) + raise MetadataConflictError("Unknown metadata set") # let's see if one unique marker is found - is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) - is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) - is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) + is_1_1 = "1.1" in possible_versions and _has_marker(keys, _314_MARKERS) + is_1_2 = "1.2" in possible_versions and _has_marker(keys, _345_MARKERS) + is_2_1 = "2.1" in possible_versions and _has_marker(keys, _566_MARKERS) # is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) - is_2_2 = '2.2' in possible_versions and _has_marker(keys, _643_MARKERS) + is_2_2 = "2.2" in possible_versions and _has_marker(keys, _643_MARKERS) if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_2) > 1: - raise MetadataConflictError('You used incompatible 1.1/1.2/2.1/2.2 fields') + raise MetadataConflictError("You used incompatible 1.1/1.2/2.1/2.2 fields") # we have the choice, 1.0, or 1.2, 2.1 or 2.2 # - 1.0 has a broken Summary field but works with all tools @@ -179,15 +270,15 @@ def _best_version(fields): if PKG_INFO_PREFERRED_VERSION in possible_versions: return PKG_INFO_PREFERRED_VERSION if is_1_1: - return '1.1' + return "1.1" if is_1_2: - return '1.2' + return "1.2" if is_2_1: - return '2.1' + return "2.1" # if is_2_2: # return '2.2' - return '2.2' + return "2.2" # This follows the rules about transforming keys as described in @@ -195,21 +286,35 @@ def _best_version(fields): _ATTR2FIELD = {name.lower().replace("-", "_"): name for name in _ALL_FIELDS} _FIELD2ATTR = {field: attr for attr, field in _ATTR2FIELD.items()} -_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') -_VERSIONS_FIELDS = ('Requires-Python', ) -_VERSION_FIELDS = ('Version', ) -_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', 'Requires', 'Provides', 'Obsoletes-Dist', 'Provides-Dist', - 'Requires-Dist', 'Requires-External', 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', - 'Provides-Extra', 'Extension', 'License-File') -_LISTTUPLEFIELDS = ('Project-URL', ) +_PREDICATE_FIELDS = ("Requires-Dist", "Obsoletes-Dist", "Provides-Dist") +_VERSIONS_FIELDS = ("Requires-Python",) +_VERSION_FIELDS = ("Version",) +_LISTFIELDS = ( + "Platform", + "Classifier", + "Obsoletes", + "Requires", + "Provides", + "Obsoletes-Dist", + "Provides-Dist", + "Requires-Dist", + "Requires-External", + "Project-URL", + "Supported-Platform", + "Setup-Requires-Dist", + "Provides-Extra", + "Extension", + "License-File", +) +_LISTTUPLEFIELDS = ("Project-URL",) -_ELEMENTSFIELD = ('Keywords', ) +_ELEMENTSFIELD = ("Keywords",) -_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') +_UNICODEFIELDS = ("Author", "Maintainer", "Summary", "Description") _MISSING = object() -_FILESAFE = re.compile('[^A-Za-z0-9.]+') +_FILESAFE = re.compile("[^A-Za-z0-9.]+") def _get_name_and_version(name, version, for_filename=False): @@ -220,9 +325,9 @@ def _get_name_and_version(name, version, for_filename=False): # For both name and version any runs of non-alphanumeric or '.' # characters are replaced with a single '-'. Additionally any # spaces in the version string become '.' - name = _FILESAFE.sub('-', name) - version = _FILESAFE.sub('-', version.replace(' ', '.')) - return '%s-%s' % (name, version) + name = _FILESAFE.sub("-", name) + version = _FILESAFE.sub("-", version.replace(" ", ".")) + return "%s-%s" % (name, version) class LegacyMetadata(object): @@ -238,9 +343,9 @@ class LegacyMetadata(object): # TODO document the mapping API and UNKNOWN default key - def __init__(self, path=None, fileobj=None, mapping=None, scheme='default'): + def __init__(self, path=None, fileobj=None, mapping=None, scheme="default"): if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') + raise TypeError("path, fileobj and mapping are exclusive") self._fields = {} self.requires_files = [] self._dependencies = None @@ -254,10 +359,10 @@ class LegacyMetadata(object): self.set_metadata_version() def set_metadata_version(self): - self._fields['Metadata-Version'] = _best_version(self._fields) + self._fields["Metadata-Version"] = _best_version(self._fields) def _write_field(self, fileobj, name, value): - fileobj.write('%s: %s\n' % (name, value)) + fileobj.write("%s: %s\n" % (name, value)) def __getitem__(self, name): return self.get(name) @@ -273,24 +378,24 @@ class LegacyMetadata(object): raise KeyError(name) def __contains__(self, name): - return (name in self._fields or self._convert_name(name) in self._fields) + return name in self._fields or self._convert_name(name) in self._fields def _convert_name(self, name): if name in _ALL_FIELDS: return name - name = name.replace('-', '_').lower() + name = name.replace("-", "_").lower() return _ATTR2FIELD.get(name, name) def _default_value(self, name): if name in _LISTFIELDS or name in _ELEMENTSFIELD: return [] - return 'UNKNOWN' + return "UNKNOWN" def _remove_line_prefix(self, value): - if self.metadata_version in ('1.0', '1.1'): - return _LINE_PREFIX_PRE_1_2.sub('\n', value) + if self.metadata_version in ("1.0", "1.1"): + return _LINE_PREFIX_PRE_1_2.sub("\n", value) else: - return _LINE_PREFIX_1_2.sub('\n', value) + return _LINE_PREFIX_1_2.sub("\n", value) def __getattr__(self, name): if name in _ATTR2FIELD: @@ -307,7 +412,7 @@ class LegacyMetadata(object): If filesafe is true, return a filename-escaped form. """ - return _get_name_and_version(self['Name'], self['Version'], filesafe) + return _get_name_and_version(self["Name"], self["Version"], filesafe) def is_field(self, name): """return True if name is a valid metadata key""" @@ -320,7 +425,7 @@ class LegacyMetadata(object): def read(self, filepath): """Read the metadata values from a file path.""" - fp = codecs.open(filepath, 'r', encoding='utf-8') + fp = codecs.open(filepath, "r", encoding="utf-8") try: self.read_file(fp) finally: @@ -329,7 +434,7 @@ class LegacyMetadata(object): def read_file(self, fileob): """Read the metadata values from a file object.""" msg = message_from_file(fileob) - self._fields['Metadata-Version'] = msg['metadata-version'] + self._fields["Metadata-Version"] = msg["metadata-version"] # When reading, get all the fields we can for field in _ALL_FIELDS: @@ -339,12 +444,12 @@ class LegacyMetadata(object): # we can have multiple lines values = msg.get_all(field) if field in _LISTTUPLEFIELDS and values is not None: - values = [tuple(value.split(',')) for value in values] + values = [tuple(value.split(",")) for value in values] self.set(field, values) else: # single line value = msg[field] - if value is not None and value != 'UNKNOWN': + if value is not None and value != "UNKNOWN": self.set(field, value) # PEP 566 specifies that the body be used for the description, if @@ -356,7 +461,7 @@ class LegacyMetadata(object): def write(self, filepath, skip_unknown=False): """Write the metadata fields to filepath.""" - fp = codecs.open(filepath, 'w', encoding='utf-8') + fp = codecs.open(filepath, "w", encoding="utf-8") try: self.write_file(fp, skip_unknown) finally: @@ -366,23 +471,23 @@ class LegacyMetadata(object): """Write the PKG-INFO format data to a file object.""" self.set_metadata_version() - for field in _version2fieldlist(self['Metadata-Version']): + for field in _version2fieldlist(self["Metadata-Version"]): values = self.get(field) - if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): + if skip_unknown and values in ("UNKNOWN", [], ["UNKNOWN"]): continue if field in _ELEMENTSFIELD: - self._write_field(fileobject, field, ','.join(values)) + self._write_field(fileobject, field, ",".join(values)) continue if field not in _LISTFIELDS: - if field == 'Description': - if self.metadata_version in ('1.0', '1.1'): - values = values.replace('\n', '\n ') + if field == "Description": + if self.metadata_version in ("1.0", "1.1"): + values = values.replace("\n", "\n ") else: - values = values.replace('\n', '\n |') + values = values.replace("\n", "\n |") values = [values] if field in _LISTTUPLEFIELDS: - values = [','.join(value) for value in values] + values = [",".join(value) for value in values] for value in values: self._write_field(fileobject, field, value) @@ -405,7 +510,7 @@ class LegacyMetadata(object): if not other: # other is None or empty container pass - elif hasattr(other, 'keys'): + elif hasattr(other, "keys"): for k in other.keys(): _set(k, other[k]) else: @@ -420,36 +525,53 @@ class LegacyMetadata(object): """Control then set a metadata field.""" name = self._convert_name(name) - if ((name in _ELEMENTSFIELD or name == 'Platform') and not isinstance(value, (list, tuple))): + if (name in _ELEMENTSFIELD or name == "Platform") and not isinstance( + value, (list, tuple) + ): if isinstance(value, string_types): - value = [v.strip() for v in value.split(',')] + value = [v.strip() for v in value.split(",")] else: value = [] - elif (name in _LISTFIELDS and not isinstance(value, (list, tuple))): + elif name in _LISTFIELDS and not isinstance(value, (list, tuple)): if isinstance(value, string_types): value = [value] else: value = [] if logger.isEnabledFor(logging.WARNING): - project_name = self['Name'] + project_name = self["Name"] scheme = get_scheme(self.scheme) if name in _PREDICATE_FIELDS and value is not None: for v in value: # check that the values are valid - if not scheme.is_valid_matcher(v.split(';')[0]): - logger.warning("'%s': '%s' is not valid (field '%s')", project_name, v, name) + if not scheme.is_valid_matcher(v.split(";")[0]): + logger.warning( + "'%s': '%s' is not valid (field '%s')", + project_name, + v, + name, + ) # FIXME this rejects UNKNOWN, is that right? elif name in _VERSIONS_FIELDS and value is not None: if not scheme.is_valid_constraint_list(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", project_name, value, name) + logger.warning( + "'%s': '%s' is not a valid version (field '%s')", + project_name, + value, + name, + ) elif name in _VERSION_FIELDS and value is not None: if not scheme.is_valid_version(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", project_name, value, name) + logger.warning( + "'%s': '%s' is not a valid version (field '%s')", + project_name, + value, + name, + ) if name in _UNICODEFIELDS: - if name == 'Description': + if name == "Description": value = self._remove_line_prefix(value) self._fields[name] = value @@ -480,7 +602,7 @@ class LegacyMetadata(object): elif name in _ELEMENTSFIELD: value = self._fields[name] if isinstance(value, string_types): - return value.split(',') + return value.split(",") return self._fields[name] def check(self, strict=False): @@ -491,33 +613,35 @@ class LegacyMetadata(object): # XXX should check the versions (if the file was loaded) missing, warnings = [], [] - for attr in ('Name', 'Version'): # required by PEP 345 + for attr in ("Name", "Version"): # required by PEP 345 if attr not in self: missing.append(attr) if strict and missing != []: - msg = 'missing required metadata: %s' % ', '.join(missing) + msg = "missing required metadata: %s" % ", ".join(missing) raise MetadataMissingError(msg) - for attr in ('Home-page', 'Author'): + for attr in ("Home-page", "Author"): if attr not in self: missing.append(attr) # checking metadata 1.2 (XXX needs to check 1.1, 1.0) - if self['Metadata-Version'] != '1.2': + if self["Metadata-Version"] != "1.2": return missing, warnings scheme = get_scheme(self.scheme) def are_valid_constraints(value): for v in value: - if not scheme.is_valid_matcher(v.split(';')[0]): + if not scheme.is_valid_matcher(v.split(";")[0]): return False return True - for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), - (_VERSIONS_FIELDS, scheme.is_valid_constraint_list), (_VERSION_FIELDS, - scheme.is_valid_version)): + for fields, controller in ( + (_PREDICATE_FIELDS, are_valid_constraints), + (_VERSIONS_FIELDS, scheme.is_valid_constraint_list), + (_VERSION_FIELDS, scheme.is_valid_version), + ): for field in fields: value = self.get(field, None) if value is not None and not controller(value): @@ -534,33 +658,33 @@ class LegacyMetadata(object): """ self.set_metadata_version() - fields = _version2fieldlist(self['Metadata-Version']) + fields = _version2fieldlist(self["Metadata-Version"]) data = {} for field_name in fields: if not skip_missing or field_name in self._fields: key = _FIELD2ATTR[field_name] - if key != 'project_url': + if key != "project_url": data[key] = self[field_name] else: - data[key] = [','.join(u) for u in self[field_name]] + data[key] = [",".join(u) for u in self[field_name]] return data def add_requirements(self, requirements): - if self['Metadata-Version'] == '1.1': + if self["Metadata-Version"] == "1.1": # we can't have 1.1 metadata *and* Setuptools requires - for field in ('Obsoletes', 'Requires', 'Provides'): + for field in ("Obsoletes", "Requires", "Provides"): if field in self: del self[field] - self['Requires-Dist'] += requirements + self["Requires-Dist"] += requirements # Mapping API # TODO could add iter* variants def keys(self): - return list(_version2fieldlist(self['Metadata-Version'])) + return list(_version2fieldlist(self["Metadata-Version"])) def __iter__(self): for key in self.keys(): @@ -573,12 +697,12 @@ class LegacyMetadata(object): return [(key, self[key]) for key in self.keys()] def __repr__(self): - return '<%s %s %s>' % (self.__class__.__name__, self.name, self.version) + return "<%s %s %s>" % (self.__class__.__name__, self.name, self.version) -METADATA_FILENAME = 'pydist.json' -WHEEL_METADATA_FILENAME = 'metadata.json' -LEGACY_METADATA_FILENAME = 'METADATA' +METADATA_FILENAME = "pydist.json" +WHEEL_METADATA_FILENAME = "metadata.json" +LEGACY_METADATA_FILENAME = "METADATA" class Metadata(object): @@ -588,47 +712,51 @@ class Metadata(object): instance which handles the key-value metadata format. """ - METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') + METADATA_VERSION_MATCHER = re.compile(r"^\d+(\.\d+)*$") - NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) + NAME_MATCHER = re.compile("^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$", re.I) - FIELDNAME_MATCHER = re.compile('^[A-Z]([0-9A-Z-]*[0-9A-Z])?$', re.I) + FIELDNAME_MATCHER = re.compile("^[A-Z]([0-9A-Z-]*[0-9A-Z])?$", re.I) VERSION_MATCHER = PEP440_VERSION_RE - SUMMARY_MATCHER = re.compile('.{1,2047}') + SUMMARY_MATCHER = re.compile(".{1,2047}") - METADATA_VERSION = '2.0' + METADATA_VERSION = "2.0" - GENERATOR = 'distlib (%s)' % __version__ + GENERATOR = "distlib (%s)" % __version__ MANDATORY_KEYS = { - 'name': (), - 'version': (), - 'summary': ('legacy', ), + "name": (), + "version": (), + "summary": ("legacy",), } - INDEX_KEYS = ('name version license summary description author ' - 'author_email keywords platform home_page classifiers ' - 'download_url') + INDEX_KEYS = ( + "name version license summary description author " + "author_email keywords platform home_page classifiers " + "download_url" + ) - DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' - 'dev_requires provides meta_requires obsoleted_by ' - 'supports_environments') + DEPENDENCY_KEYS = ( + "extras run_requires test_requires build_requires " + "dev_requires provides meta_requires obsoleted_by " + "supports_environments" + ) SYNTAX_VALIDATORS = { - 'metadata_version': (METADATA_VERSION_MATCHER, ()), - 'name': (NAME_MATCHER, ('legacy', )), - 'version': (VERSION_MATCHER, ('legacy', )), - 'summary': (SUMMARY_MATCHER, ('legacy', )), - 'dynamic': (FIELDNAME_MATCHER, ('legacy', )), + "metadata_version": (METADATA_VERSION_MATCHER, ()), + "name": (NAME_MATCHER, ("legacy",)), + "version": (VERSION_MATCHER, ("legacy",)), + "summary": (SUMMARY_MATCHER, ("legacy",)), + "dynamic": (FIELDNAME_MATCHER, ("legacy",)), } - __slots__ = ('_legacy', '_data', 'scheme') + __slots__ = ("_legacy", "_data", "scheme") - def __init__(self, path=None, fileobj=None, mapping=None, scheme='default'): + def __init__(self, path=None, fileobj=None, mapping=None, scheme="default"): if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') + raise TypeError("path, fileobj and mapping are exclusive") self._legacy = None self._data = None self.scheme = scheme @@ -643,19 +771,19 @@ class Metadata(object): else: data = None if path: - with open(path, 'rb') as f: + with open(path, "rb") as f: data = f.read() elif fileobj: data = fileobj.read() if data is None: # Initialised with no args - to be added self._data = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, + "metadata_version": self.METADATA_VERSION, + "generator": self.GENERATOR, } else: if not isinstance(data, text_type): - data = data.decode('utf-8') + data = data.decode("utf-8") try: self._data = json.loads(data) self._validate_mapping(self._data, scheme) @@ -669,32 +797,32 @@ class Metadata(object): self._legacy = LegacyMetadata(fileobj=StringIO(data), scheme=scheme) self.validate() - common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) + common_keys = set(("name", "version", "license", "keywords", "summary")) none_list = (None, list) none_dict = (None, dict) mapped_keys = { - 'run_requires': ('Requires-Dist', list), - 'build_requires': ('Setup-Requires-Dist', list), - 'dev_requires': none_list, - 'test_requires': none_list, - 'meta_requires': none_list, - 'extras': ('Provides-Extra', list), - 'modules': none_list, - 'namespaces': none_list, - 'exports': none_dict, - 'commands': none_dict, - 'classifiers': ('Classifier', list), - 'source_url': ('Download-URL', None), - 'metadata_version': ('Metadata-Version', None), + "run_requires": ("Requires-Dist", list), + "build_requires": ("Setup-Requires-Dist", list), + "dev_requires": none_list, + "test_requires": none_list, + "meta_requires": none_list, + "extras": ("Provides-Extra", list), + "modules": none_list, + "namespaces": none_list, + "exports": none_dict, + "commands": none_dict, + "classifiers": ("Classifier", list), + "source_url": ("Download-URL", None), + "metadata_version": ("Metadata-Version", None), } del none_list, none_dict def __getattribute__(self, key): - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') + common = object.__getattribute__(self, "common_keys") + mapped = object.__getattribute__(self, "mapped_keys") if key in mapped: lk, maker = mapped[key] if self._legacy: @@ -704,24 +832,30 @@ class Metadata(object): result = self._legacy.get(lk) else: value = None if maker is None else maker() - if key not in ('commands', 'exports', 'modules', 'namespaces', 'classifiers'): + if key not in ( + "commands", + "exports", + "modules", + "namespaces", + "classifiers", + ): result = self._data.get(key, value) else: # special cases for PEP 459 sentinel = object() result = sentinel - d = self._data.get('extensions') + d = self._data.get("extensions") if d: - if key == 'commands': - result = d.get('python.commands', value) - elif key == 'classifiers': - d = d.get('python.details') + if key == "commands": + result = d.get("python.commands", value) + elif key == "classifiers": + d = d.get("python.details") if d: result = d.get(key, value) else: - d = d.get('python.exports') + d = d.get("python.exports") if not d: - d = self._data.get('python.exports') + d = self._data.get("python.exports") if d: result = d.get(key, value) if result is sentinel: @@ -740,36 +874,44 @@ class Metadata(object): if (scheme or self.scheme) not in exclusions: m = pattern.match(value) if not m: - raise MetadataInvalidError("'%s' is an invalid value for " - "the '%s' property" % (value, key)) + raise MetadataInvalidError( + "'%s' is an invalid value for " + "the '%s' property" % (value, key) + ) def __setattr__(self, key, value): self._validate_value(key, value) - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') + common = object.__getattribute__(self, "common_keys") + mapped = object.__getattribute__(self, "mapped_keys") if key in mapped: lk, _ = mapped[key] if self._legacy: if lk is None: raise NotImplementedError self._legacy[lk] = value - elif key not in ('commands', 'exports', 'modules', 'namespaces', 'classifiers'): + elif key not in ( + "commands", + "exports", + "modules", + "namespaces", + "classifiers", + ): self._data[key] = value else: # special cases for PEP 459 - d = self._data.setdefault('extensions', {}) - if key == 'commands': - d['python.commands'] = value - elif key == 'classifiers': - d = d.setdefault('python.details', {}) + d = self._data.setdefault("extensions", {}) + if key == "commands": + d["python.commands"] = value + elif key == "classifiers": + d = d.setdefault("python.details", {}) d[key] = value else: - d = d.setdefault('python.exports', {}) + d = d.setdefault("python.exports", {}) d[key] = value elif key not in common: object.__setattr__(self, key, value) else: - if key == 'keywords': + if key == "keywords": if isinstance(value, string_types): value = value.strip() if value: @@ -788,10 +930,10 @@ class Metadata(object): @property def provides(self): if self._legacy: - result = self._legacy['Provides-Dist'] + result = self._legacy["Provides-Dist"] else: - result = self._data.setdefault('provides', []) - s = '%s (%s)' % (self.name, self.version) + result = self._data.setdefault("provides", []) + s = "%s (%s)" % (self.name, self.version) if s not in result: result.append(s) return result @@ -799,9 +941,9 @@ class Metadata(object): @provides.setter def provides(self, value): if self._legacy: - self._legacy['Provides-Dist'] = value + self._legacy["Provides-Dist"] = value else: - self._data['provides'] = value + self._data["provides"] = value def get_requirements(self, reqts, extras=None, env=None): """ @@ -818,29 +960,29 @@ class Metadata(object): result = [] extras = get_extras(extras or [], self.extras) for d in reqts: - if 'extra' not in d and 'environment' not in d: + if "extra" not in d and "environment" not in d: # unconditional include = True else: - if 'extra' not in d: + if "extra" not in d: # Not extra-dependent - only environment-dependent include = True else: - include = d.get('extra') in extras + include = d.get("extra") in extras if include: # Not excluded because of extras, check environment - marker = d.get('environment') + marker = d.get("environment") if marker: include = interpret(marker, env) if include: - result.extend(d['requires']) - for key in ('build', 'dev', 'test'): - e = ':%s:' % key + result.extend(d["requires"]) + for key in ("build", "dev", "test"): + e = ":%s:" % key if e in extras: extras.remove(e) # A recursive call, but it should terminate since 'test' # has been removed from the extras - reqts = self._data.get('%s_requires' % key, []) + reqts = self._data.get("%s_requires" % key, []) result.extend(self.get_requirements(reqts, extras=extras, env=env)) return result @@ -865,7 +1007,7 @@ class Metadata(object): self._data.update(value) def _validate_mapping(self, mapping, scheme): - if mapping.get('metadata_version') != self.METADATA_VERSION: + if mapping.get("metadata_version") != self.METADATA_VERSION: raise MetadataUnrecognizedVersionError() missing = [] for key, exclusions in self.MANDATORY_KEYS.items(): @@ -873,7 +1015,7 @@ class Metadata(object): if scheme not in exclusions: missing.append(key) if missing: - msg = 'Missing metadata items: %s' % ', '.join(missing) + msg = "Missing metadata items: %s" % ", ".join(missing) raise MetadataMissingError(msg) for k, v in mapping.items(): self._validate_value(k, v, scheme) @@ -882,7 +1024,7 @@ class Metadata(object): if self._legacy: missing, warnings = self._legacy.check(True) if missing or warnings: - logger.warning('Metadata: missing: %s, warnings: %s', missing, warnings) + logger.warning("Metadata: missing: %s, warnings: %s", missing, warnings) else: self._validate_mapping(self._data, self.scheme) @@ -896,41 +1038,44 @@ class Metadata(object): def _from_legacy(self): assert self._legacy and not self._data result = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, + "metadata_version": self.METADATA_VERSION, + "generator": self.GENERATOR, } lmd = self._legacy.todict(True) # skip missing ones - for k in ('name', 'version', 'license', 'summary', 'description', 'classifier'): + for k in ("name", "version", "license", "summary", "description", "classifier"): if k in lmd: - if k == 'classifier': - nk = 'classifiers' + if k == "classifier": + nk = "classifiers" else: nk = k result[nk] = lmd[k] - kw = lmd.get('Keywords', []) - if kw == ['']: + kw = lmd.get("Keywords", []) + if kw == [""]: kw = [] - result['keywords'] = kw - keys = (('requires_dist', 'run_requires'), ('setup_requires_dist', 'build_requires')) + result["keywords"] = kw + keys = ( + ("requires_dist", "run_requires"), + ("setup_requires_dist", "build_requires"), + ) for ok, nk in keys: if ok in lmd and lmd[ok]: - result[nk] = [{'requires': lmd[ok]}] - result['provides'] = self.provides + result[nk] = [{"requires": lmd[ok]}] + result["provides"] = self.provides # author = {} # maintainer = {} return result LEGACY_MAPPING = { - 'name': 'Name', - 'version': 'Version', - ('extensions', 'python.details', 'license'): 'License', - 'summary': 'Summary', - 'description': 'Description', - ('extensions', 'python.project', 'project_urls', 'Home'): 'Home-page', - ('extensions', 'python.project', 'contacts', 0, 'name'): 'Author', - ('extensions', 'python.project', 'contacts', 0, 'email'): 'Author-email', - 'source_url': 'Download-URL', - ('extensions', 'python.details', 'classifiers'): 'Classifier', + "name": "Name", + "version": "Version", + ("extensions", "python.details", "license"): "License", + "summary": "Summary", + "description": "Description", + ("extensions", "python.project", "project_urls", "Home"): "Home-page", + ("extensions", "python.project", "contacts", 0, "name"): "Author", + ("extensions", "python.project", "contacts", 0, "email"): "Author-email", + "source_url": "Download-URL", + ("extensions", "python.details", "classifiers"): "Classifier", } def _to_legacy(self): @@ -938,22 +1083,22 @@ class Metadata(object): def process_entries(entries): reqts = set() for e in entries: - extra = e.get('extra') - env = e.get('environment') - rlist = e['requires'] + extra = e.get("extra") + env = e.get("environment") + rlist = e["requires"] for r in rlist: if not env and not extra: reqts.add(r) else: - marker = '' + marker = "" if extra: marker = 'extra == "%s"' % extra if env: if marker: - marker = '(%s) and %s' % (env, marker) + marker = "(%s) and %s" % (env, marker) else: marker = env - reqts.add(';'.join((r, marker))) + reqts.add(";".join((r, marker))) return reqts assert self._data and not self._legacy @@ -978,15 +1123,15 @@ class Metadata(object): r1 = process_entries(self.run_requires + self.meta_requires) r2 = process_entries(self.build_requires + self.dev_requires) if self.extras: - result['Provides-Extra'] = sorted(self.extras) - result['Requires-Dist'] = sorted(r1) - result['Setup-Requires-Dist'] = sorted(r2) + result["Provides-Extra"] = sorted(self.extras) + result["Requires-Dist"] = sorted(r1) + result["Setup-Requires-Dist"] = sorted(r2) # TODO: any other fields wanted return result def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): if [path, fileobj].count(None) != 1: - raise ValueError('Exactly one of path and fileobj is needed') + raise ValueError("Exactly one of path and fileobj is needed") self.validate() if legacy: if self._legacy: @@ -1005,27 +1150,32 @@ class Metadata(object): if fileobj: json.dump(d, fileobj, ensure_ascii=True, indent=2, sort_keys=True) else: - with codecs.open(path, 'w', 'utf-8') as f: + with codecs.open(path, "w", "utf-8") as f: json.dump(d, f, ensure_ascii=True, indent=2, sort_keys=True) def add_requirements(self, requirements): if self._legacy: self._legacy.add_requirements(requirements) else: - run_requires = self._data.setdefault('run_requires', []) + run_requires = self._data.setdefault("run_requires", []) always = None for entry in run_requires: - if 'environment' not in entry and 'extra' not in entry: + if "environment" not in entry and "extra" not in entry: always = entry break if always is None: - always = {'requires': requirements} + always = {"requires": requirements} run_requires.insert(0, always) else: - rset = set(always['requires']) | set(requirements) - always['requires'] = sorted(rset) + rset = set(always["requires"]) | set(requirements) + always["requires"] = sorted(rset) def __repr__(self): - name = self.name or '(no name)' - version = self.version or 'no version' - return '<%s %s %s (%s)>' % (self.__class__.__name__, self.metadata_version, name, version) + name = self.name or "(no name)" + version = self.version or "no version" + return "<%s %s %s (%s)>" % ( + self.__class__.__name__, + self.metadata_version, + name, + version, + ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/resources.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/resources.py index fef52aa..bb608c9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/resources.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/resources.py @@ -21,14 +21,14 @@ from .util import cached_property, get_cache_base, Cache logger = logging.getLogger(__name__) -cache = None # created when needed +cache = None # created when needed class ResourceCache(Cache): def __init__(self, base=None): if base is None: # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('resource-cache')) + base = os.path.join(get_cache_base(), str("resource-cache")) super(ResourceCache, self).__init__(base) def is_stale(self, resource, path): @@ -63,7 +63,7 @@ class ResourceCache(Cache): stale = self.is_stale(resource, path) if stale: # write the bytes of the resource to the cache location - with open(result, 'wb') as f: + with open(result, "wb") as f: f.write(resource.bytes) return result @@ -80,7 +80,8 @@ class Resource(ResourceBase): not normally instantiated by user code, but rather by a :class:`ResourceFinder` which manages the resource. """ - is_container = False # Backwards compatibility + + is_container = False # Backwards compatibility def as_stream(self): """ @@ -108,7 +109,7 @@ class Resource(ResourceBase): class ResourceContainer(ResourceBase): - is_container = True # Backwards compatibility + is_container = True # Backwards compatibility @cached_property def resources(self): @@ -120,15 +121,15 @@ class ResourceFinder(object): Resource finder for file system resources. """ - if sys.platform.startswith('java'): - skipped_extensions = ('.pyc', '.pyo', '.class') + if sys.platform.startswith("java"): + skipped_extensions = (".pyc", ".pyo", ".class") else: - skipped_extensions = ('.pyc', '.pyo') + skipped_extensions = (".pyc", ".pyo") def __init__(self, module): self.module = module - self.loader = getattr(module, '__loader__', None) - self.base = os.path.dirname(getattr(module, '__file__', '')) + self.loader = getattr(module, "__loader__", None) + self.base = os.path.dirname(getattr(module, "__file__", "")) def _adjust_path(self, path): return os.path.realpath(path) @@ -136,10 +137,10 @@ class ResourceFinder(object): def _make_path(self, resource_name): # Issue #50: need to preserve type of path on Python 2.x # like os.path._get_sep - if isinstance(resource_name, bytes): # should only happen on 2.x - sep = b'/' + if isinstance(resource_name, bytes): # should only happen on 2.x + sep = b"/" else: - sep = '/' + sep = "/" parts = resource_name.split(sep) parts.insert(0, self.base) result = os.path.join(*parts) @@ -164,10 +165,10 @@ class ResourceFinder(object): return result def get_stream(self, resource): - return open(resource.path, 'rb') + return open(resource.path, "rb") def get_bytes(self, resource): - with open(resource.path, 'rb') as f: + with open(resource.path, "rb") as f: return f.read() def get_size(self, resource): @@ -175,8 +176,8 @@ class ResourceFinder(object): def get_resources(self, resource): def allowed(f): - return (f != '__pycache__' and not - f.endswith(self.skipped_extensions)) + return f != "__pycache__" and not f.endswith(self.skipped_extensions) + return set([f for f in os.listdir(resource.path) if allowed(f)]) def is_container(self, resource): @@ -197,7 +198,7 @@ class ResourceFinder(object): if not rname: new_name = name else: - new_name = '/'.join([rname, name]) + new_name = "/".join([rname, name]) child = self.find(new_name) if child.is_container: todo.append(child) @@ -209,12 +210,13 @@ class ZipResourceFinder(ResourceFinder): """ Resource finder for resources in .zip files. """ + def __init__(self, module): super(ZipResourceFinder, self).__init__(module) archive = self.loader.archive self.prefix_len = 1 + len(archive) # PyPy doesn't have a _files attr on zipimporter, and you can't set one - if hasattr(self.loader, '_files'): + if hasattr(self.loader, "_files"): self._files = self.loader._files else: self._files = zipimport._zip_directory_cache[archive] @@ -224,7 +226,7 @@ class ZipResourceFinder(ResourceFinder): return path def _find(self, path): - path = path[self.prefix_len:] + path = path[self.prefix_len :] if path in self._files: result = True else: @@ -236,14 +238,14 @@ class ZipResourceFinder(ResourceFinder): except IndexError: result = False if not result: - logger.debug('_find failed: %r %r', path, self.loader.prefix) + logger.debug("_find failed: %r %r", path, self.loader.prefix) else: - logger.debug('_find worked: %r %r', path, self.loader.prefix) + logger.debug("_find worked: %r %r", path, self.loader.prefix) return result def get_cache_info(self, resource): prefix = self.loader.archive - path = resource.path[1 + len(prefix):] + path = resource.path[1 + len(prefix) :] return prefix, path def get_bytes(self, resource): @@ -253,11 +255,11 @@ class ZipResourceFinder(ResourceFinder): return io.BytesIO(self.get_bytes(resource)) def get_size(self, resource): - path = resource.path[self.prefix_len:] + path = resource.path[self.prefix_len :] return self._files[path][3] def get_resources(self, resource): - path = resource.path[self.prefix_len:] + path = resource.path[self.prefix_len :] if path and path[-1] != os.sep: path += os.sep plen = len(path) @@ -267,12 +269,12 @@ class ZipResourceFinder(ResourceFinder): if not self.index[i].startswith(path): break s = self.index[i][plen:] - result.add(s.split(os.sep, 1)[0]) # only immediate children + result.add(s.split(os.sep, 1)[0]) # only immediate children i += 1 return result def _is_directory(self, path): - path = path[self.prefix_len:] + path = path[self.prefix_len :] if path and path[-1] != os.sep: path += os.sep i = bisect.bisect(self.index, path) @@ -285,7 +287,7 @@ class ZipResourceFinder(ResourceFinder): _finder_registry = { type(None): ResourceFinder, - zipimport.zipimporter: ZipResourceFinder + zipimport.zipimporter: ZipResourceFinder, } try: @@ -322,20 +324,21 @@ def finder(package): if package not in sys.modules: __import__(package) module = sys.modules[package] - path = getattr(module, '__path__', None) + path = getattr(module, "__path__", None) if path is None: - raise DistlibException('You cannot get a finder for a module, ' - 'only for a package') - loader = getattr(module, '__loader__', None) + raise DistlibException( + "You cannot get a finder for a module, " "only for a package" + ) + loader = getattr(module, "__loader__", None) finder_maker = _finder_registry.get(type(loader)) if finder_maker is None: - raise DistlibException('Unable to locate finder for %r' % package) + raise DistlibException("Unable to locate finder for %r" % package) result = finder_maker(module) _finder_cache[package] = result return result -_dummy_module = types.ModuleType(str('__dummy__')) +_dummy_module = types.ModuleType(str("__dummy__")) def finder_for_path(path): @@ -352,7 +355,7 @@ def finder_for_path(path): finder = _finder_registry.get(type(loader)) if finder: module = _dummy_module - module.__file__ = os.path.join(path, '') + module.__file__ = os.path.join(path, "") module.__loader__ = loader result = finder(module) return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/scripts.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/scripts.py index 195dc3f..41fed8f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/scripts.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/scripts.py @@ -15,11 +15,18 @@ from zipfile import ZipInfo from .compat import sysconfig, detect_encoding, ZipFile from .resources import finder -from .util import (FileOperator, get_export_entry, convert_path, get_executable, get_platform, in_venv) +from .util import ( + FileOperator, + get_export_entry, + convert_path, + get_executable, + get_platform, + in_venv, +) logger = logging.getLogger(__name__) -_DEFAULT_MANIFEST = ''' +_DEFAULT_MANIFEST = """ -'''.strip() +""".strip() # check if Python is called on the first line with this expression -FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') -SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- +FIRST_LINE_RE = re.compile(b"^#!.*pythonw?[0-9.]*([ \t].*)?$") +SCRIPT_TEMPLATE = r"""# -*- coding: utf-8 -*- import re import sys if __name__ == '__main__': from %(module)s import %(import_name)s sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(%(func)s()) -''' +""" # Pre-fetch the contents of all executable wrapper stubs. # This is to address https://github.com/pypa/pip/issues/12666. @@ -56,10 +63,10 @@ if __name__ == '__main__': # location where it was imported from. So we load everything into memory in # advance. -if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): +if os.name == "nt" or (os.name == "java" and os._name == "nt"): # Issue 31: don't hardcode an absolute package name, but # determine it relative to the current package - DISTLIB_PACKAGE = __name__.rsplit('.', 1)[0] + DISTLIB_PACKAGE = __name__.rsplit(".", 1)[0] WRAPPERS = { r.name: r.bytes @@ -69,14 +76,14 @@ if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): def enquote_executable(executable): - if ' ' in executable: + if " " in executable: # make sure we quote only the executable in case of env # for example /usr/bin/env "/dir with spaces/bin/jython" # instead of "/usr/bin/env /dir with spaces/bin/jython" # otherwise whole - if executable.startswith('/usr/bin/env '): - env, _executable = executable.split(' ', 1) - if ' ' in _executable and not _executable.startswith('"'): + if executable.startswith("/usr/bin/env "): + env, _executable = executable.split(" ", 1) + if " " in _executable and not _executable.startswith('"'): executable = '%s "%s"' % (env, _executable) else: if not executable.startswith('"'): @@ -93,32 +100,37 @@ class ScriptMaker(object): A class to copy or create scripts from source scripts or callable specifications. """ + script_template = SCRIPT_TEMPLATE executable = None # for shebangs - def __init__(self, source_dir, target_dir, add_launchers=True, dry_run=False, fileop=None): + def __init__( + self, source_dir, target_dir, add_launchers=True, dry_run=False, fileop=None + ): self.source_dir = source_dir self.target_dir = target_dir self.add_launchers = add_launchers self.force = False self.clobber = False # It only makes sense to set mode bits on POSIX. - self.set_mode = (os.name == 'posix') or (os.name == 'java' and os._name == 'posix') - self.variants = set(('', 'X.Y')) + self.set_mode = (os.name == "posix") or ( + os.name == "java" and os._name == "posix" + ) + self.variants = set(("", "X.Y")) self._fileop = fileop or FileOperator(dry_run) - self._is_nt = os.name == 'nt' or (os.name == 'java' and os._name == 'nt') + self._is_nt = os.name == "nt" or (os.name == "java" and os._name == "nt") self.version_info = sys.version_info def _get_alternate_executable(self, executable, options): - if options.get('gui', False) and self._is_nt: # pragma: no cover + if options.get("gui", False) and self._is_nt: # pragma: no cover dn, fn = os.path.split(executable) - fn = fn.replace('python', 'pythonw') + fn = fn.replace("python", "pythonw") executable = os.path.join(dn, fn) return executable - if sys.platform.startswith('java'): # pragma: no cover + if sys.platform.startswith("java"): # pragma: no cover def _is_shell(self, executable): """ @@ -127,9 +139,9 @@ class ScriptMaker(object): """ try: with open(executable) as fp: - return fp.read(2) == '#!' + return fp.read(2) == "#!" except (OSError, IOError): - logger.warning('Failed to open %s', executable) + logger.warning("Failed to open %s", executable) return False def _fix_jython_executable(self, executable): @@ -137,12 +149,12 @@ class ScriptMaker(object): # Workaround for Jython is not needed on Linux systems. import java - if java.lang.System.getProperty('os.name') == 'Linux': + if java.lang.System.getProperty("os.name") == "Linux": return executable - elif executable.lower().endswith('jython.exe'): + elif executable.lower().endswith("jython.exe"): # Use wrapper exe for Jython on Windows return executable - return '/usr/bin/env %s' % executable + return "/usr/bin/env %s" % executable def _build_shebang(self, executable, post_interp): """ @@ -155,7 +167,7 @@ class ScriptMaker(object): See also: http://www.in-ulm.de/~mascheck/various/shebang/#length https://hg.mozilla.org/mozilla-central/file/tip/mach """ - if os.name != 'posix': + if os.name != "posix": simple_shebang = True elif getattr(sys, "cross_compiling", False): # In a cross-compiling environment, the shebang will likely be a @@ -166,21 +178,23 @@ class ScriptMaker(object): else: # Add 3 for '#!' prefix and newline suffix. shebang_length = len(executable) + len(post_interp) + 3 - if sys.platform == 'darwin': + if sys.platform == "darwin": max_shebang_length = 512 else: max_shebang_length = 127 - simple_shebang = ((b' ' not in executable) and (shebang_length <= max_shebang_length)) + simple_shebang = (b" " not in executable) and ( + shebang_length <= max_shebang_length + ) if simple_shebang: - result = b'#!' + executable + post_interp + b'\n' + result = b"#!" + executable + post_interp + b"\n" else: - result = b'#!/bin/sh\n' + result = b"#!/bin/sh\n" result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' result += b"' '''\n" return result - def _get_shebang(self, encoding, post_interp=b'', options=None): + def _get_shebang(self, encoding, post_interp=b"", options=None): enquote = True if self.executable: executable = self.executable @@ -188,21 +202,31 @@ class ScriptMaker(object): elif not sysconfig.is_python_build(): executable = get_executable() elif in_venv(): # pragma: no cover - executable = os.path.join(sysconfig.get_path('scripts'), 'python%s' % sysconfig.get_config_var('EXE')) + executable = os.path.join( + sysconfig.get_path("scripts"), + "python%s" % sysconfig.get_config_var("EXE"), + ) else: # pragma: no cover - if os.name == 'nt': + if os.name == "nt": # for Python builds from source on Windows, no Python executables with # a version suffix are created, so we use python.exe - executable = os.path.join(sysconfig.get_config_var('BINDIR'), - 'python%s' % (sysconfig.get_config_var('EXE'))) + executable = os.path.join( + sysconfig.get_config_var("BINDIR"), + "python%s" % (sysconfig.get_config_var("EXE")), + ) else: executable = os.path.join( - sysconfig.get_config_var('BINDIR'), - 'python%s%s' % (sysconfig.get_config_var('VERSION'), sysconfig.get_config_var('EXE'))) + sysconfig.get_config_var("BINDIR"), + "python%s%s" + % ( + sysconfig.get_config_var("VERSION"), + sysconfig.get_config_var("EXE"), + ), + ) if options: executable = self._get_alternate_executable(executable, options) - if sys.platform.startswith('java'): # pragma: no cover + if sys.platform.startswith("java"): # pragma: no cover executable = self._fix_jython_executable(executable) # Normalise case for Windows - COMMENTED OUT @@ -220,11 +244,14 @@ class ScriptMaker(object): executable = enquote_executable(executable) # Issue #51: don't use fsencode, since we later try to # check that the shebang is decodable using utf-8. - executable = executable.encode('utf-8') + executable = executable.encode("utf-8") # in case of IronPython, play safe and enable frames support - if (sys.platform == 'cli' and '-X:Frames' not in post_interp and - '-X:FullFrames' not in post_interp): # pragma: no cover - post_interp += b' -X:Frames' + if ( + sys.platform == "cli" + and "-X:Frames" not in post_interp + and "-X:FullFrames" not in post_interp + ): # pragma: no cover + post_interp += b" -X:Frames" shebang = self._build_shebang(executable, post_interp) # Python parser starts to read a script using UTF-8 until # it gets a #coding:xxx cookie. The shebang has to be the @@ -232,23 +259,28 @@ class ScriptMaker(object): # written before. So the shebang has to be decodable from # UTF-8. try: - shebang.decode('utf-8') + shebang.decode("utf-8") except UnicodeDecodeError: # pragma: no cover - raise ValueError('The shebang (%r) is not decodable from utf-8' % shebang) + raise ValueError("The shebang (%r) is not decodable from utf-8" % shebang) # If the script is encoded to a custom encoding (use a # #coding:xxx cookie), the shebang has to be decodable from # the script encoding too. - if encoding != 'utf-8': + if encoding != "utf-8": try: shebang.decode(encoding) except UnicodeDecodeError: # pragma: no cover - raise ValueError('The shebang (%r) is not decodable ' - 'from the script encoding (%r)' % (shebang, encoding)) + raise ValueError( + "The shebang (%r) is not decodable " + "from the script encoding (%r)" % (shebang, encoding) + ) return shebang def _get_script_text(self, entry): return self.script_template % dict( - module=entry.prefix, import_name=entry.suffix.split('.')[0], func=entry.suffix) + module=entry.prefix, + import_name=entry.suffix.split(".")[0], + func=entry.suffix, + ) manifest = _DEFAULT_MANIFEST @@ -261,82 +293,90 @@ class ScriptMaker(object): if not use_launcher: script_bytes = shebang + script_bytes else: # pragma: no cover - if ext == 'py': - launcher = self._get_launcher('t') + if ext == "py": + launcher = self._get_launcher("t") else: - launcher = self._get_launcher('w') + launcher = self._get_launcher("w") stream = BytesIO() - with ZipFile(stream, 'w') as zf: - source_date_epoch = os.environ.get('SOURCE_DATE_EPOCH') + with ZipFile(stream, "w") as zf: + source_date_epoch = os.environ.get("SOURCE_DATE_EPOCH") if source_date_epoch: date_time = time.gmtime(int(source_date_epoch))[:6] - zinfo = ZipInfo(filename='__main__.py', date_time=date_time) + zinfo = ZipInfo(filename="__main__.py", date_time=date_time) zf.writestr(zinfo, script_bytes) else: - zf.writestr('__main__.py', script_bytes) + zf.writestr("__main__.py", script_bytes) zip_data = stream.getvalue() script_bytes = launcher + shebang + zip_data for name in names: outname = os.path.join(self.target_dir, name) if use_launcher: # pragma: no cover n, e = os.path.splitext(outname) - if e.startswith('.py'): + if e.startswith(".py"): outname = n - outname = '%s.exe' % outname + outname = "%s.exe" % outname try: self._fileop.write_binary_file(outname, script_bytes) except Exception: # Failed writing an executable - it might be in use. - logger.warning('Failed to write executable - trying to ' - 'use .deleteme logic') - dfname = '%s.deleteme' % outname + logger.warning( + "Failed to write executable - trying to " "use .deleteme logic" + ) + dfname = "%s.deleteme" % outname if os.path.exists(dfname): os.remove(dfname) # Not allowed to fail here os.rename(outname, dfname) # nor here self._fileop.write_binary_file(outname, script_bytes) - logger.debug('Able to replace executable using ' - '.deleteme logic') + logger.debug("Able to replace executable using " ".deleteme logic") try: os.remove(dfname) except Exception: pass # still in use - ignore error else: - if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover - outname = '%s.%s' % (outname, ext) + if self._is_nt and not outname.endswith("." + ext): # pragma: no cover + outname = "%s.%s" % (outname, ext) if os.path.exists(outname) and not self.clobber: - logger.warning('Skipping existing file %s', outname) + logger.warning("Skipping existing file %s", outname) continue self._fileop.write_binary_file(outname, script_bytes) if self.set_mode: self._fileop.set_executable_mode([outname]) filenames.append(outname) - variant_separator = '-' + variant_separator = "-" def get_script_filenames(self, name): result = set() - if '' in self.variants: + if "" in self.variants: result.add(name) - if 'X' in self.variants: - result.add('%s%s' % (name, self.version_info[0])) - if 'X.Y' in self.variants: - result.add('%s%s%s.%s' % (name, self.variant_separator, self.version_info[0], self.version_info[1])) + if "X" in self.variants: + result.add("%s%s" % (name, self.version_info[0])) + if "X.Y" in self.variants: + result.add( + "%s%s%s.%s" + % ( + name, + self.variant_separator, + self.version_info[0], + self.version_info[1], + ) + ) return result def _make_script(self, entry, filenames, options=None): - post_interp = b'' + post_interp = b"" if options: - args = options.get('interpreter_args', []) + args = options.get("interpreter_args", []) if args: - args = ' %s' % ' '.join(args) - post_interp = args.encode('utf-8') - shebang = self._get_shebang('utf-8', post_interp, options=options) - script = self._get_script_text(entry).encode('utf-8') + args = " %s" % " ".join(args) + post_interp = args.encode("utf-8") + shebang = self._get_shebang("utf-8", post_interp, options=options) + script = self._get_script_text(entry).encode("utf-8") scriptnames = self.get_script_filenames(entry.name) - if options and options.get('gui', False): - ext = 'pyw' + if options and options.get("gui", False): + ext = "pyw" else: - ext = 'py' + ext = "py" self._write_script(scriptnames, shebang, script, filenames, ext) def _copy_script(self, script, filenames): @@ -344,14 +384,14 @@ class ScriptMaker(object): script = os.path.join(self.source_dir, convert_path(script)) outname = os.path.join(self.target_dir, os.path.basename(script)) if not self.force and not self._fileop.newer(script, outname): - logger.debug('not copying %s (up-to-date)', script) + logger.debug("not copying %s (up-to-date)", script) return # Always open the file, but ignore failures in dry-run mode -- # that way, we'll get accurate feedback if we can read the # script. try: - f = open(script, 'rb') + f = open(script, "rb") except IOError: # pragma: no cover if not self.dry_run: raise @@ -359,13 +399,13 @@ class ScriptMaker(object): else: first_line = f.readline() if not first_line: # pragma: no cover - logger.warning('%s is an empty file (skipping)', script) + logger.warning("%s is an empty file (skipping)", script) return - match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) + match = FIRST_LINE_RE.match(first_line.replace(b"\r\n", b"\n")) if match: adjust = True - post_interp = match.group(1) or b'' + post_interp = match.group(1) or b"" if not adjust: if f: @@ -375,15 +415,15 @@ class ScriptMaker(object): self._fileop.set_executable_mode([outname]) filenames.append(outname) else: - logger.info('copying and adjusting %s -> %s', script, self.target_dir) + logger.info("copying and adjusting %s -> %s", script, self.target_dir) if not self._fileop.dry_run: encoding, lines = detect_encoding(f.readline) f.seek(0) shebang = self._get_shebang(encoding, post_interp) - if b'pythonw' in first_line: # pragma: no cover - ext = 'pyw' + if b"pythonw" in first_line: # pragma: no cover + ext = "pyw" else: - ext = 'py' + ext = "py" n = os.path.basename(outname) self._write_script([n], shebang, f.read(), filenames, ext) if f: @@ -397,20 +437,22 @@ class ScriptMaker(object): def dry_run(self, value): self._fileop.dry_run = value - if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover + if os.name == "nt" or (os.name == "java" and os._name == "nt"): # pragma: no cover # Executable launcher support. # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ def _get_launcher(self, kind): - if struct.calcsize('P') == 8: # 64-bit - bits = '64' + if struct.calcsize("P") == 8: # 64-bit + bits = "64" else: - bits = '32' - platform_suffix = '-arm' if get_platform() == 'win-arm64' else '' - name = '%s%s%s.exe' % (kind, bits, platform_suffix) + bits = "32" + platform_suffix = "-arm" if get_platform() == "win-arm64" else "" + name = "%s%s%s.exe" % (kind, bits, platform_suffix) if name not in WRAPPERS: - msg = ('Unable to find resource %s in package %s' % - (name, DISTLIB_PACKAGE)) + msg = "Unable to find resource %s in package %s" % ( + name, + DISTLIB_PACKAGE, + ) raise ValueError(msg) return WRAPPERS[name] diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/util.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/util.py index 0d5bd7a..a53bcf9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/util.py @@ -14,6 +14,7 @@ import os import py_compile import re import socket + try: import ssl except ImportError: # pragma: no cover @@ -31,9 +32,28 @@ except ImportError: # pragma: no cover import time from . import DistlibException -from .compat import (string_types, text_type, shutil, raw_input, StringIO, cache_from_source, urlopen, urljoin, httplib, - xmlrpclib, HTTPHandler, BaseConfigurator, valid_ident, Container, configparser, URLError, ZipFile, - fsdecode, unquote, urlparse) +from .compat import ( + string_types, + text_type, + shutil, + raw_input, + StringIO, + cache_from_source, + urlopen, + urljoin, + httplib, + xmlrpclib, + HTTPHandler, + BaseConfigurator, + valid_ident, + Container, + configparser, + URLError, + ZipFile, + fsdecode, + unquote, + urlparse, +) logger = logging.getLogger(__name__) @@ -41,14 +61,14 @@ logger = logging.getLogger(__name__) # Requirement parsing code as per PEP 508 # -IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') -VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') -COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') -MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') -OR = re.compile(r'^or\b\s*') -AND = re.compile(r'^and\b\s*') -NON_SPACE = re.compile(r'(\S+)\s*') -STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') +IDENTIFIER = re.compile(r"^([\w\.-]+)\s*") +VERSION_IDENTIFIER = re.compile(r"^([\w\.*+-]+)\s*") +COMPARE_OP = re.compile(r"^(<=?|>=?|={2,3}|[~!]=)\s*") +MARKER_OP = re.compile(r"^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*") +OR = re.compile(r"^or\b\s*") +AND = re.compile(r"^and\b\s*") +NON_SPACE = re.compile(r"(\S+)\s*") +STRING_CHUNK = re.compile(r"([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)") def parse_marker(marker_string): @@ -66,14 +86,14 @@ def parse_marker(marker_string): m = IDENTIFIER.match(remaining) if m: result = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] elif not remaining: - raise SyntaxError('unexpected end of input') + raise SyntaxError("unexpected end of input") else: q = remaining[0] - if q not in '\'"': - raise SyntaxError('invalid expression: %s' % remaining) - oq = '\'"'.replace(q, '') + if q not in "'\"": + raise SyntaxError("invalid expression: %s" % remaining) + oq = "'\"".replace(q, "") remaining = remaining[1:] parts = [q] while remaining: @@ -86,22 +106,22 @@ def parse_marker(marker_string): else: m = STRING_CHUNK.match(remaining) if not m: - raise SyntaxError('error in string literal: %s' % remaining) + raise SyntaxError("error in string literal: %s" % remaining) parts.append(m.groups()[0]) - remaining = remaining[m.end():] + remaining = remaining[m.end() :] else: - s = ''.join(parts) - raise SyntaxError('unterminated string: %s' % s) + s = "".join(parts) + raise SyntaxError("unterminated string: %s" % s) parts.append(q) - result = ''.join(parts) + result = "".join(parts) remaining = remaining[1:].lstrip() # skip past closing quote return result, remaining def marker_expr(remaining): - if remaining and remaining[0] == '(': + if remaining and remaining[0] == "(": result, remaining = marker(remaining[1:].lstrip()) - if remaining[0] != ')': - raise SyntaxError('unterminated parenthesis: %s' % remaining) + if remaining[0] != ")": + raise SyntaxError("unterminated parenthesis: %s" % remaining) remaining = remaining[1:].lstrip() else: lhs, remaining = marker_var(remaining) @@ -110,9 +130,9 @@ def parse_marker(marker_string): if not m: break op = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_var(remaining) - lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} + lhs = {"op": op, "lhs": lhs, "rhs": rhs} result = lhs return result, remaining @@ -122,9 +142,9 @@ def parse_marker(marker_string): m = AND.match(remaining) if not m: break - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_expr(remaining) - lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} + lhs = {"op": "and", "lhs": lhs, "rhs": rhs} return lhs, remaining def marker(remaining): @@ -133,9 +153,9 @@ def parse_marker(marker_string): m = OR.match(remaining) if not m: break - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_and(remaining) - lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} + lhs = {"op": "or", "lhs": lhs, "rhs": rhs} return lhs, remaining return marker(marker_string) @@ -147,41 +167,41 @@ def parse_requirement(req): whose attributes contain the various parts of the requirement. """ remaining = req.strip() - if not remaining or remaining.startswith('#'): + if not remaining or remaining.startswith("#"): return None m = IDENTIFIER.match(remaining) if not m: - raise SyntaxError('name expected: %s' % remaining) + raise SyntaxError("name expected: %s" % remaining) distname = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] extras = mark_expr = versions = uri = None - if remaining and remaining[0] == '[': - i = remaining.find(']', 1) + if remaining and remaining[0] == "[": + i = remaining.find("]", 1) if i < 0: - raise SyntaxError('unterminated extra: %s' % remaining) + raise SyntaxError("unterminated extra: %s" % remaining) s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() + remaining = remaining[i + 1 :].lstrip() extras = [] while s: m = IDENTIFIER.match(s) if not m: - raise SyntaxError('malformed extra: %s' % s) + raise SyntaxError("malformed extra: %s" % s) extras.append(m.groups()[0]) - s = s[m.end():] + s = s[m.end() :] if not s: break - if s[0] != ',': - raise SyntaxError('comma expected in extras: %s' % s) + if s[0] != ",": + raise SyntaxError("comma expected in extras: %s" % s) s = s[1:].lstrip() if not extras: extras = None if remaining: - if remaining[0] == '@': + if remaining[0] == "@": # it's a URI remaining = remaining[1:].lstrip() m = NON_SPACE.match(remaining) if not m: - raise SyntaxError('invalid URI: %s' % remaining) + raise SyntaxError("invalid URI: %s" % remaining) uri = m.groups()[0] t = urlparse(uri) # there are issues with Python and URL parsing, so this test @@ -189,8 +209,8 @@ def parse_requirement(req): # always parse invalid URLs correctly - it should raise # exceptions for malformed URLs if not (t.scheme and t.netloc): - raise SyntaxError('Invalid URL: %s' % uri) - remaining = remaining[m.end():].lstrip() + raise SyntaxError("Invalid URL: %s" % uri) + remaining = remaining[m.end() :].lstrip() else: def get_versions(ver_remaining): @@ -204,14 +224,14 @@ def parse_requirement(req): versions = [] while True: op = m.groups()[0] - ver_remaining = ver_remaining[m.end():] + ver_remaining = ver_remaining[m.end() :] m = VERSION_IDENTIFIER.match(ver_remaining) if not m: - raise SyntaxError('invalid version: %s' % ver_remaining) + raise SyntaxError("invalid version: %s" % ver_remaining) v = m.groups()[0] versions.append((op, v)) - ver_remaining = ver_remaining[m.end():] - if not ver_remaining or ver_remaining[0] != ',': + ver_remaining = ver_remaining[m.end() :] + if not ver_remaining or ver_remaining[0] != ",": break ver_remaining = ver_remaining[1:].lstrip() # Some packages have a trailing comma which would break things @@ -220,19 +240,19 @@ def parse_requirement(req): break m = COMPARE_OP.match(ver_remaining) if not m: - raise SyntaxError('invalid constraint: %s' % ver_remaining) + raise SyntaxError("invalid constraint: %s" % ver_remaining) if not versions: versions = None return versions, ver_remaining - if remaining[0] != '(': + if remaining[0] != "(": versions, remaining = get_versions(remaining) else: - i = remaining.find(')', 1) + i = remaining.find(")", 1) if i < 0: - raise SyntaxError('unterminated parenthesis: %s' % remaining) + raise SyntaxError("unterminated parenthesis: %s" % remaining) s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() + remaining = remaining[i + 1 :].lstrip() # As a special diversion from PEP 508, allow a version number # a.b.c in parentheses as a synonym for ~= a.b.c (because this # is allowed in earlier PEPs) @@ -241,28 +261,35 @@ def parse_requirement(req): else: m = VERSION_IDENTIFIER.match(s) if not m: - raise SyntaxError('invalid constraint: %s' % s) + raise SyntaxError("invalid constraint: %s" % s) v = m.groups()[0] - s = s[m.end():].lstrip() + s = s[m.end() :].lstrip() if s: - raise SyntaxError('invalid constraint: %s' % s) - versions = [('~=', v)] + raise SyntaxError("invalid constraint: %s" % s) + versions = [("~=", v)] if remaining: - if remaining[0] != ';': - raise SyntaxError('invalid requirement: %s' % remaining) + if remaining[0] != ";": + raise SyntaxError("invalid requirement: %s" % remaining) remaining = remaining[1:].lstrip() mark_expr, remaining = parse_marker(remaining) - if remaining and remaining[0] != '#': - raise SyntaxError('unexpected trailing data: %s' % remaining) + if remaining and remaining[0] != "#": + raise SyntaxError("unexpected trailing data: %s" % remaining) if not versions: rs = distname else: - rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) - return Container(name=distname, extras=extras, constraints=versions, marker=mark_expr, url=uri, requirement=rs) + rs = "%s %s" % (distname, ", ".join(["%s %s" % con for con in versions])) + return Container( + name=distname, + extras=extras, + constraints=versions, + marker=mark_expr, + url=uri, + requirement=rs, + ) def get_resources_dests(resources_root, rules): @@ -270,10 +297,10 @@ def get_resources_dests(resources_root, rules): def get_rel_path(root, path): # normalizes and returns a lstripped-/-separated path - root = root.replace(os.path.sep, '/') - path = path.replace(os.path.sep, '/') + root = root.replace(os.path.sep, "/") + path = path.replace(os.path.sep, "/") assert path.startswith(root) - return path[len(root):].lstrip('/') + return path[len(root) :].lstrip("/") destinations = {} for base, suffix, dest in rules: @@ -286,18 +313,18 @@ def get_resources_dests(resources_root, rules): destinations.pop(resource_file, None) else: rel_path = get_rel_path(abs_base, abs_path) - rel_dest = dest.replace(os.path.sep, '/').rstrip('/') - destinations[resource_file] = rel_dest + '/' + rel_path + rel_dest = dest.replace(os.path.sep, "/").rstrip("/") + destinations[resource_file] = rel_dest + "/" + rel_path return destinations def in_venv(): - if hasattr(sys, 'real_prefix'): + if hasattr(sys, "real_prefix"): # virtualenv venvs result = True else: # PEP 405 venvs - result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) + result = sys.prefix != getattr(sys, "base_prefix", sys.prefix) return result @@ -331,7 +358,7 @@ def proceed(prompt, allowed_chars, error_prompt=None, default=None): if c in allowed_chars: break if error_prompt: - p = '%c: %s\n%s' % (c, error_prompt, prompt) + p = "%c: %s\n%s" % (c, error_prompt, prompt) return c @@ -348,16 +375,16 @@ def extract_by_key(d, keys): def read_exports(stream): if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) + stream = codecs.getreader("utf-8")(stream) # Try to load as JSON, falling back on legacy format data = stream.read() stream = StringIO(data) try: jdata = json.load(stream) - result = jdata['extensions']['python.exports']['exports'] + result = jdata["extensions"]["python.exports"]["exports"] for group, entries in result.items(): for k, v in entries.items(): - s = '%s = %s' % (k, v) + s = "%s = %s" % (k, v) entry = get_export_entry(s) assert entry is not None entries[k] = entry @@ -366,7 +393,7 @@ def read_exports(stream): stream.seek(0, 0) def read_stream(cp, stream): - if hasattr(cp, 'read_file'): + if hasattr(cp, "read_file"): cp.read_file(stream) else: cp.readfp(stream) @@ -384,7 +411,7 @@ def read_exports(stream): for key in cp.sections(): result[key] = entries = {} for name, value in cp.items(key): - s = '%s = %s' % (name, value) + s = "%s = %s" % (name, value) entry = get_export_entry(s) assert entry is not None # entry.dist = self @@ -395,7 +422,7 @@ def read_exports(stream): def write_exports(exports, stream): if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getwriter('utf-8')(stream) + stream = codecs.getwriter("utf-8")(stream) cp = configparser.ConfigParser() for k, v in exports.items(): # TODO check k, v for valid values @@ -404,9 +431,9 @@ def write_exports(exports, stream): if entry.suffix is None: s = entry.prefix else: - s = '%s:%s' % (entry.prefix, entry.suffix) + s = "%s:%s" % (entry.prefix, entry.suffix) if entry.flags: - s = '%s [%s]' % (s, ', '.join(entry.flags)) + s = "%s [%s]" % (s, ", ".join(entry.flags)) cp.set(k, entry.name, s) cp.write(stream) @@ -466,16 +493,16 @@ def convert_path(pathname): ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. """ - if os.sep == '/': + if os.sep == "/": return pathname if not pathname: return pathname - if pathname[0] == '/': + if pathname[0] == "/": raise ValueError("path '%s' cannot be absolute" % pathname) - if pathname[-1] == '/': + if pathname[-1] == "/": raise ValueError("path '%s' cannot end with '/'" % pathname) - paths = pathname.split('/') + paths = pathname.split("/") while os.curdir in paths: paths.remove(os.curdir) if not paths: @@ -519,31 +546,30 @@ class FileOperator(object): return os.stat(source).st_mtime > os.stat(target).st_mtime def copy_file(self, infile, outfile, check=True): - """Copy a file respecting dry-run and force flags. - """ + """Copy a file respecting dry-run and force flags.""" self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying %s to %s', infile, outfile) + logger.info("Copying %s to %s", infile, outfile) if not self.dry_run: msg = None if check: if os.path.islink(outfile): - msg = '%s is a symlink' % outfile + msg = "%s is a symlink" % outfile elif os.path.exists(outfile) and not os.path.isfile(outfile): - msg = '%s is a non-regular file' % outfile + msg = "%s is a non-regular file" % outfile if msg: - raise ValueError(msg + ' which would be overwritten') + raise ValueError(msg + " which would be overwritten") shutil.copyfile(infile, outfile) self.record_as_written(outfile) def copy_stream(self, instream, outfile, encoding=None): assert not os.path.isdir(outfile) self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying stream %s to %s', instream, outfile) + logger.info("Copying stream %s to %s", instream, outfile) if not self.dry_run: if encoding is None: - outstream = open(outfile, 'wb') + outstream = open(outfile, "wb") else: - outstream = codecs.open(outfile, 'w', encoding=encoding) + outstream = codecs.open(outfile, "w", encoding=encoding) try: shutil.copyfileobj(instream, outstream) finally: @@ -555,7 +581,7 @@ class FileOperator(object): if not self.dry_run: if os.path.exists(path): os.remove(path) - with open(path, 'wb') as f: + with open(path, "wb") as f: f.write(data) self.record_as_written(path) @@ -563,7 +589,7 @@ class FileOperator(object): self.write_binary_file(path, data.encode(encoding)) def set_mode(self, bits, mask, files): - if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): + if os.name == "posix" or (os.name == "java" and os._name == "posix"): # Set the executable bits (owner, group, and world) on # all the files specified. for f in files: @@ -582,35 +608,39 @@ class FileOperator(object): self.ensured.add(path) d, f = os.path.split(path) self.ensure_dir(d) - logger.info('Creating %s' % path) + logger.info("Creating %s" % path) if not self.dry_run: os.mkdir(path) if self.record: self.dirs_created.add(path) - def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): + def byte_compile( + self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False + ): dpath = cache_from_source(path, not optimize) - logger.info('Byte-compiling %s to %s', path, dpath) + logger.info("Byte-compiling %s to %s", path, dpath) if not self.dry_run: if force or self.newer(path, dpath): if not prefix: diagpath = None else: assert path.startswith(prefix) - diagpath = path[len(prefix):] + diagpath = path[len(prefix) :] compile_kwargs = {} - if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): + if hashed_invalidation and hasattr(py_compile, "PycInvalidationMode"): if not isinstance(hashed_invalidation, py_compile.PycInvalidationMode): hashed_invalidation = py_compile.PycInvalidationMode.CHECKED_HASH - compile_kwargs['invalidation_mode'] = hashed_invalidation - py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error + compile_kwargs["invalidation_mode"] = hashed_invalidation + py_compile.compile( + path, dpath, diagpath, True, **compile_kwargs + ) # raise error self.record_as_written(dpath) return dpath def ensure_removed(self, path): if os.path.exists(path): if os.path.isdir(path) and not os.path.islink(path): - logger.debug('Removing directory tree at %s', path) + logger.debug("Removing directory tree at %s", path) if not self.dry_run: shutil.rmtree(path) if self.record: @@ -618,10 +648,10 @@ class FileOperator(object): self.dirs_created.remove(path) else: if os.path.islink(path): - s = 'link' + s = "link" else: - s = 'file' - logger.debug('Removing %s %s', s, path) + s = "file" + logger.debug("Removing %s %s", s, path) if not self.dry_run: os.remove(path) if self.record: @@ -662,7 +692,7 @@ class FileOperator(object): for d in dirs: flist = os.listdir(d) if flist: - assert flist == ['__pycache__'] + assert flist == ["__pycache__"] sd = os.path.join(d, flist[0]) os.rmdir(sd) os.rmdir(d) # should fail if non-empty @@ -677,7 +707,7 @@ def resolve(module_name, dotted_path): if dotted_path is None: result = mod else: - parts = dotted_path.split('.') + parts = dotted_path.split(".") result = getattr(mod, parts.pop(0)) for p in parts: result = getattr(result, p) @@ -697,53 +727,61 @@ class ExportEntry(object): return resolve(self.prefix, self.suffix) def __repr__(self): # pragma: no cover - return '' % (self.name, self.prefix, self.suffix, self.flags) + return "" % ( + self.name, + self.prefix, + self.suffix, + self.flags, + ) def __eq__(self, other): if not isinstance(other, ExportEntry): result = False else: - result = (self.name == other.name and self.prefix == other.prefix and self.suffix == other.suffix and - self.flags == other.flags) + result = ( + self.name == other.name + and self.prefix == other.prefix + and self.suffix == other.suffix + and self.flags == other.flags + ) return result __hash__ = object.__hash__ ENTRY_RE = re.compile( - r'''(?P([^\[]\S*)) + r"""(?P([^\[]\S*)) \s*=\s*(?P(\w+)([:\.]\w+)*) \s*(\[\s*(?P[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? - ''', re.VERBOSE) + """, + re.VERBOSE, +) def get_export_entry(specification): m = ENTRY_RE.search(specification) if not m: result = None - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) + if "[" in specification or "]" in specification: + raise DistlibException("Invalid specification " "'%s'" % specification) else: d = m.groupdict() - name = d['name'] - path = d['callable'] - colons = path.count(':') + name = d["name"] + path = d["callable"] + colons = path.count(":") if colons == 0: prefix, suffix = path, None else: if colons != 1: - raise DistlibException("Invalid specification " - "'%s'" % specification) - prefix, suffix = path.split(':') - flags = d['flags'] + raise DistlibException("Invalid specification " "'%s'" % specification) + prefix, suffix = path.split(":") + flags = d["flags"] if flags is None: - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) + if "[" in specification or "]" in specification: + raise DistlibException("Invalid specification " "'%s'" % specification) flags = [] else: - flags = [f.strip() for f in flags.split(',')] + flags = [f.strip() for f in flags.split(",")] result = ExportEntry(name, prefix, suffix, flags) return result @@ -764,28 +802,28 @@ def get_cache_base(suffix=None): determined above, or with the name specified with ``suffix``. """ if suffix is None: - suffix = '.distlib' - if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: - result = os.path.expandvars('$localappdata') + suffix = ".distlib" + if os.name == "nt" and "LOCALAPPDATA" in os.environ: + result = os.path.expandvars("$localappdata") else: # Assume posix, or old Windows - result = os.path.expanduser('~') + result = os.path.expanduser("~") # we use 'isdir' instead of 'exists', because we want to # fail if there's a file with that name if os.path.isdir(result): usable = os.access(result, os.W_OK) if not usable: - logger.warning('Directory exists but is not writable: %s', result) + logger.warning("Directory exists but is not writable: %s", result) else: try: os.makedirs(result) usable = True except OSError: - logger.warning('Unable to create %s', result, exc_info=True) + logger.warning("Unable to create %s", result, exc_info=True) usable = False if not usable: result = tempfile.mkdtemp() - logger.warning('Default location unusable, using %s', result) + logger.warning("Default location unusable, using %s", result) return os.path.join(result, suffix) @@ -801,25 +839,25 @@ def path_to_cache_dir(path, use_abspath=True): """ d, p = os.path.splitdrive(os.path.abspath(path) if use_abspath else path) if d: - d = d.replace(':', '---') - p = p.replace(os.sep, '--') - return d + p + '.cache' + d = d.replace(":", "---") + p = p.replace(os.sep, "--") + return d + p + ".cache" def ensure_slash(s): - if not s.endswith('/'): - return s + '/' + if not s.endswith("/"): + return s + "/" return s def parse_credentials(netloc): username = password = None - if '@' in netloc: - prefix, netloc = netloc.rsplit('@', 1) - if ':' not in prefix: + if "@" in netloc: + prefix, netloc = netloc.rsplit("@", 1) + if ":" not in prefix: username = prefix else: - username, password = prefix.split(':', 1) + username, password = prefix.split(":", 1) if username: username = unquote(username) if password: @@ -844,9 +882,10 @@ def is_string_sequence(seq): return result -PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' - '([a-z0-9_.+-]+)', re.I) -PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') +PROJECT_NAME_AND_VERSION = re.compile( + "([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-" "([a-z0-9_.+-]+)", re.I +) +PYTHON_VERSION = re.compile(r"-py(\d\.?\d?)") def split_filename(filename, project_name=None): @@ -857,16 +896,16 @@ def split_filename(filename, project_name=None): """ result = None pyver = None - filename = unquote(filename).replace(' ', '-') + filename = unquote(filename).replace(" ", "-") m = PYTHON_VERSION.search(filename) if m: pyver = m.group(1) - filename = filename[:m.start()] + filename = filename[: m.start()] if project_name and len(filename) > len(project_name) + 1: - m = re.match(re.escape(project_name) + r'\b', filename) + m = re.match(re.escape(project_name) + r"\b", filename) if m: n = m.end() - result = filename[:n], filename[n + 1:], pyver + result = filename[:n], filename[n + 1 :], pyver if result is None: m = PROJECT_NAME_AND_VERSION.match(filename) if m: @@ -875,8 +914,7 @@ def split_filename(filename, project_name=None): # Allow spaces in name because of legacy dists like "Twisted Core" -NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' - r'\(\s*(?P[^\s)]+)\)$') +NAME_VERSION_RE = re.compile(r"(?P[\w .-]+)\s*" r"\(\s*(?P[^\s)]+)\)$") def parse_name_and_version(p): @@ -890,30 +928,30 @@ def parse_name_and_version(p): """ m = NAME_VERSION_RE.match(p) if not m: - raise DistlibException('Ill-formed name/version string: \'%s\'' % p) + raise DistlibException("Ill-formed name/version string: '%s'" % p) d = m.groupdict() - return d['name'].strip().lower(), d['ver'] + return d["name"].strip().lower(), d["ver"] def get_extras(requested, available): result = set() requested = set(requested or []) available = set(available or []) - if '*' in requested: - requested.remove('*') + if "*" in requested: + requested.remove("*") result |= available for r in requested: - if r == '-': + if r == "-": result.add(r) - elif r.startswith('-'): + elif r.startswith("-"): unwanted = r[1:] if unwanted not in available: - logger.warning('undeclared extra: %s' % unwanted) + logger.warning("undeclared extra: %s" % unwanted) if unwanted in result: result.remove(unwanted) else: if r not in available: - logger.warning('undeclared extra: %s' % r) + logger.warning("undeclared extra: %s" % r) result.add(r) return result @@ -931,31 +969,31 @@ def _get_external_data(url): # using a custom redirect handler. resp = urlopen(url) headers = resp.info() - ct = headers.get('Content-Type') - if not ct.startswith('application/json'): - logger.debug('Unexpected response for JSON request: %s', ct) + ct = headers.get("Content-Type") + if not ct.startswith("application/json"): + logger.debug("Unexpected response for JSON request: %s", ct) else: - reader = codecs.getreader('utf-8')(resp) + reader = codecs.getreader("utf-8")(resp) # data = reader.read().decode('utf-8') # result = json.loads(data) result = json.load(reader) except Exception as e: - logger.exception('Failed to get external data for %s: %s', url, e) + logger.exception("Failed to get external data for %s: %s", url, e) return result -_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' +_external_data_base_url = "https://www.red-dove.com/pypi/projects/" def get_project_data(name): - url = '%s/%s/project.json' % (name[0].upper(), name) + url = "%s/%s/project.json" % (name[0].upper(), name) url = urljoin(_external_data_base_url, url) result = _get_external_data(url) return result def get_package_data(name, version): - url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) + url = "%s/%s/package-%s.json" % (name[0].upper(), name, version) url = urljoin(_external_data_base_url, url) return _get_external_data(url) @@ -978,7 +1016,7 @@ class Cache(object): if not os.path.isdir(base): # pragma: no cover os.makedirs(base) if (os.stat(base).st_mode & 0o77) != 0: - logger.warning('Directory \'%s\' is not private', base) + logger.warning("Directory '%s' is not private", base) self.base = os.path.abspath(os.path.normpath(base)) def prefix_to_dir(self, prefix, use_abspath=True): @@ -1041,7 +1079,7 @@ class EventMixin(object): """ subs = self._subscribers if event not in subs: - raise ValueError('No subscribers: %r' % event) + raise ValueError("No subscribers: %r" % event) subs[event].remove(subscriber) def get_subscribers(self, event): @@ -1067,10 +1105,16 @@ class EventMixin(object): try: value = subscriber(event, *args, **kwargs) except Exception: - logger.exception('Exception during event publication') + logger.exception("Exception during event publication") value = None result.append(value) - logger.debug('publish %s: args = %s, kwargs = %s, result = %s', event, args, kwargs, result) + logger.debug( + "publish %s: args = %s, kwargs = %s, result = %s", + event, + args, + kwargs, + result, + ) return result @@ -1114,19 +1158,19 @@ class Sequencer(object): preds = self._preds[succ] succs = self._succs[pred] except KeyError: # pragma: no cover - raise ValueError('%r not a successor of anything' % succ) + raise ValueError("%r not a successor of anything" % succ) try: preds.remove(pred) succs.remove(succ) except KeyError: # pragma: no cover - raise ValueError('%r not a successor of %r' % (succ, pred)) + raise ValueError("%r not a successor of %r" % (succ, pred)) def is_step(self, step): - return (step in self._preds or step in self._succs or step in self._nodes) + return step in self._preds or step in self._succs or step in self._nodes def get_steps(self, final): if not self.is_step(final): - raise ValueError('Unknown: %r' % final) + raise ValueError("Unknown: %r" % final) result = [] todo = [] seen = set() @@ -1203,53 +1247,53 @@ class Sequencer(object): @property def dot(self): - result = ['digraph G {'] + result = ["digraph G {"] for succ in self._preds: preds = self._preds[succ] for pred in preds: - result.append(' %s -> %s;' % (pred, succ)) + result.append(" %s -> %s;" % (pred, succ)) for node in self._nodes: - result.append(' %s;' % node) - result.append('}') - return '\n'.join(result) + result.append(" %s;" % node) + result.append("}") + return "\n".join(result) # # Unarchiving functionality for zip, tar, tgz, tbz, whl # -ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz', '.whl') +ARCHIVE_EXTENSIONS = (".tar.gz", ".tar.bz2", ".tar", ".zip", ".tgz", ".tbz", ".whl") def unarchive(archive_filename, dest_dir, format=None, check=True): def check_path(path): if not isinstance(path, text_type): - path = path.decode('utf-8') + path = path.decode("utf-8") p = os.path.abspath(os.path.join(dest_dir, path)) if not p.startswith(dest_dir) or p[plen] != os.sep: - raise ValueError('path outside destination: %r' % p) + raise ValueError("path outside destination: %r" % p) dest_dir = os.path.abspath(dest_dir) plen = len(dest_dir) archive = None if format is None: - if archive_filename.endswith(('.zip', '.whl')): - format = 'zip' - elif archive_filename.endswith(('.tar.gz', '.tgz')): - format = 'tgz' - mode = 'r:gz' - elif archive_filename.endswith(('.tar.bz2', '.tbz')): - format = 'tbz' - mode = 'r:bz2' - elif archive_filename.endswith('.tar'): - format = 'tar' - mode = 'r' + if archive_filename.endswith((".zip", ".whl")): + format = "zip" + elif archive_filename.endswith((".tar.gz", ".tgz")): + format = "tgz" + mode = "r:gz" + elif archive_filename.endswith((".tar.bz2", ".tbz")): + format = "tbz" + mode = "r:bz2" + elif archive_filename.endswith(".tar"): + format = "tar" + mode = "r" else: # pragma: no cover - raise ValueError('Unknown format for %r' % archive_filename) + raise ValueError("Unknown format for %r" % archive_filename) try: - if format == 'zip': - archive = ZipFile(archive_filename, 'r') + if format == "zip": + archive = ZipFile(archive_filename, "r") if check: names = archive.namelist() for name in names: @@ -1260,14 +1304,14 @@ def unarchive(archive_filename, dest_dir, format=None, check=True): names = archive.getnames() for name in names: check_path(name) - if format != 'zip' and sys.version_info[0] < 3: + if format != "zip" and sys.version_info[0] < 3: # See Python issue 17153. If the dest path contains Unicode, # tarfile extraction fails on Python 2.x if a member path name # contains non-ASCII characters - it leads to an implicit # bytes -> unicode conversion using ASCII to decode. for tarinfo in archive.getmembers(): if not isinstance(tarinfo.name, text_type): - tarinfo.name = tarinfo.name.decode('utf-8') + tarinfo.name = tarinfo.name.decode("utf-8") # Limit extraction of dangerous items, if this Python # allows it easily. If not, just trust the input. @@ -1307,11 +1351,11 @@ def zip_dir(directory): # Simple progress bar # -UNITS = ('', 'K', 'M', 'G', 'T', 'P') +UNITS = ("", "K", "M", "G", "T", "P") class Progress(object): - unknown = 'UNKNOWN' + unknown = "UNKNOWN" def __init__(self, minval=0, maxval=100): assert maxval is None or maxval >= minval @@ -1351,31 +1395,31 @@ class Progress(object): @property def percentage(self): if self.done: - result = '100 %' + result = "100 %" elif self.max is None: - result = ' ?? %' + result = " ?? %" else: v = 100.0 * (self.cur - self.min) / (self.max - self.min) - result = '%3d %%' % v + result = "%3d %%" % v return result def format_duration(self, duration): if (duration <= 0) and self.max is None or self.cur == self.min: - result = '??:??:??' + result = "??:??:??" # elif duration < 1: # result = '--:--:--' else: - result = time.strftime('%H:%M:%S', time.gmtime(duration)) + result = time.strftime("%H:%M:%S", time.gmtime(duration)) return result @property def ETA(self): if self.done: - prefix = 'Done' + prefix = "Done" t = self.elapsed # import pdb; pdb.set_trace() else: - prefix = 'ETA ' + prefix = "ETA " if self.max is None: t = -1 elif self.elapsed == 0 or (self.cur == self.min): @@ -1385,7 +1429,7 @@ class Progress(object): t = float(self.max - self.min) t /= self.cur - self.min t = (t - 1) * self.elapsed - return '%s: %s' % (prefix, self.format_duration(t)) + return "%s: %s" % (prefix, self.format_duration(t)) @property def speed(self): @@ -1397,16 +1441,16 @@ class Progress(object): if result < 1000: break result /= 1000.0 - return '%d %sB/s' % (result, unit) + return "%d %sB/s" % (result, unit) # # Glob functionality # -RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') -_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') +RICH_GLOB = re.compile(r"\{([^}]*)\}") +_CHECK_RECURSIVE_GLOB = re.compile(r"[^/\\,{]\*\*|\*\*[^/\\,}]") +_CHECK_MISMATCH_SET = re.compile(r"^[^{]*\}|\{[^}]*$") def iglob(path_glob): @@ -1425,23 +1469,23 @@ def _iglob(path_glob): if len(rich_path_glob) > 1: assert len(rich_path_glob) == 3, rich_path_glob prefix, set, suffix = rich_path_glob - for item in set.split(','): - for path in _iglob(''.join((prefix, item, suffix))): + for item in set.split(","): + for path in _iglob("".join((prefix, item, suffix))): yield path else: - if '**' not in path_glob: + if "**" not in path_glob: for item in std_iglob(path_glob): yield item else: - prefix, radical = path_glob.split('**', 1) - if prefix == '': - prefix = '.' - if radical == '': - radical = '*' + prefix, radical = path_glob.split("**", 1) + if prefix == "": + prefix = "." + if radical == "": + radical = "*" else: # we support both - radical = radical.lstrip('/') - radical = radical.lstrip('\\') + radical = radical.lstrip("/") + radical = radical.lstrip("\\") for path, dir, files in os.walk(prefix): path = os.path.normpath(path) for fn in _iglob(os.path.join(path, radical)): @@ -1449,7 +1493,11 @@ def _iglob(path_glob): if ssl: - from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, CertificateError) + from .compat import ( + HTTPSHandler as BaseHTTPSHandler, + match_hostname, + CertificateError, + ) # # HTTPSConnection which verifies certificates/matches domains @@ -1462,27 +1510,27 @@ if ssl: # noinspection PyPropertyAccess def connect(self): sock = socket.create_connection((self.host, self.port), self.timeout) - if getattr(self, '_tunnel_host', False): + if getattr(self, "_tunnel_host", False): self.sock = sock self._tunnel() context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - if hasattr(ssl, 'OP_NO_SSLv2'): + if hasattr(ssl, "OP_NO_SSLv2"): context.options |= ssl.OP_NO_SSLv2 - if getattr(self, 'cert_file', None): + if getattr(self, "cert_file", None): context.load_cert_chain(self.cert_file, self.key_file) kwargs = {} if self.ca_certs: context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(cafile=self.ca_certs) - if getattr(ssl, 'HAS_SNI', False): - kwargs['server_hostname'] = self.host + if getattr(ssl, "HAS_SNI", False): + kwargs["server_hostname"] = self.host self.sock = context.wrap_socket(sock, **kwargs) if self.ca_certs and self.check_domain: try: match_hostname(self.sock.getpeercert(), self.host) - logger.debug('Host verified: %s', self.host) + logger.debug("Host verified: %s", self.host) except CertificateError: # pragma: no cover self.sock.shutdown(socket.SHUT_RDWR) self.sock.close() @@ -1515,9 +1563,10 @@ if ssl: try: return self.do_open(self._conn_maker, req) except URLError as e: - if 'certificate verify failed' in str(e.reason): - raise CertificateError('Unable to verify server certificate ' - 'for %s' % req.host) + if "certificate verify failed" in str(e.reason): + raise CertificateError( + "Unable to verify server certificate " "for %s" % req.host + ) else: raise @@ -1533,8 +1582,10 @@ if ssl: class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): def http_open(self, req): - raise URLError('Unexpected HTTP request on what should be a secure ' - 'connection: %s' % req) + raise URLError( + "Unexpected HTTP request on what should be a secure " + "connection: %s" % req + ) # @@ -1566,7 +1617,7 @@ if ssl: h, eh, kwargs = self.get_host_info(host) if not kwargs: kwargs = {} - kwargs['timeout'] = self.timeout + kwargs["timeout"] = self.timeout if not self._connection or host != self._connection[0]: self._extra_headers = eh self._connection = host, httplib.HTTPSConnection(h, None, **kwargs) @@ -1576,18 +1627,18 @@ if ssl: class ServerProxy(xmlrpclib.ServerProxy): def __init__(self, uri, **kwargs): - self.timeout = timeout = kwargs.pop('timeout', None) + self.timeout = timeout = kwargs.pop("timeout", None) # The above classes only come into play if a timeout # is specified if timeout is not None: # scheme = splittype(uri) # deprecated as of Python 3.8 scheme = urlparse(uri)[0] - use_datetime = kwargs.get('use_datetime', 0) - if scheme == 'https': + use_datetime = kwargs.get("use_datetime", 0) + if scheme == "https": tcls = SafeTransport else: tcls = Transport - kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) + kwargs["transport"] = t = tcls(timeout, use_datetime=use_datetime) self.transport = t xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) @@ -1600,20 +1651,20 @@ class ServerProxy(xmlrpclib.ServerProxy): def _csv_open(fn, mode, **kwargs): if sys.version_info[0] < 3: - mode += 'b' + mode += "b" else: - kwargs['newline'] = '' + kwargs["newline"] = "" # Python 3 determines encoding from locale. Force 'utf-8' # file encoding to match other forced utf-8 encoding - kwargs['encoding'] = 'utf-8' + kwargs["encoding"] = "utf-8" return open(fn, mode, **kwargs) class CSVBase(object): defaults = { - 'delimiter': str(','), # The strs are used because we need native - 'quotechar': str('"'), # str in the csv API (2.x won't take - 'lineterminator': str('\n') # Unicode) + "delimiter": str(","), # The strs are used because we need native + "quotechar": str('"'), # str in the csv API (2.x won't take + "lineterminator": str("\n"), # Unicode) } def __enter__(self): @@ -1626,14 +1677,14 @@ class CSVBase(object): class CSVReader(CSVBase): def __init__(self, **kwargs): - if 'stream' in kwargs: - stream = kwargs['stream'] + if "stream" in kwargs: + stream = kwargs["stream"] if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) + stream = codecs.getreader("utf-8")(stream) self.stream = stream else: - self.stream = _csv_open(kwargs['path'], 'r') + self.stream = _csv_open(kwargs["path"], "r") self.reader = csv.reader(self.stream, **self.defaults) def __iter__(self): @@ -1644,7 +1695,7 @@ class CSVReader(CSVBase): if sys.version_info[0] < 3: for i, item in enumerate(result): if not isinstance(item, text_type): - result[i] = item.decode('utf-8') + result[i] = item.decode("utf-8") return result __next__ = next @@ -1653,7 +1704,7 @@ class CSVReader(CSVBase): class CSVWriter(CSVBase): def __init__(self, fn, **kwargs): - self.stream = _csv_open(fn, 'w') + self.stream = _csv_open(fn, "w") self.writer = csv.writer(self.stream, **self.defaults) def writerow(self, row): @@ -1661,7 +1712,7 @@ class CSVWriter(CSVBase): r = [] for item in row: if isinstance(item, text_type): - item = item.encode('utf-8') + item = item.encode("utf-8") r.append(item) row = r self.writer.writerow(row) @@ -1675,7 +1726,7 @@ class CSVWriter(CSVBase): class Configurator(BaseConfigurator): value_converters = dict(BaseConfigurator.value_converters) - value_converters['inc'] = 'inc_convert' + value_converters["inc"] = "inc_convert" def __init__(self, config, base=None): super(Configurator, self).__init__(config) @@ -1687,7 +1738,7 @@ class Configurator(BaseConfigurator): if isinstance(o, (list, tuple)): result = type(o)([convert(i) for i in o]) elif isinstance(o, dict): - if '()' in o: + if "()" in o: result = self.configure_custom(o) else: result = {} @@ -1697,12 +1748,12 @@ class Configurator(BaseConfigurator): result = self.convert(o) return result - c = config.pop('()') + c = config.pop("()") if not callable(c): c = self.resolve(c) - props = config.pop('.', None) + props = config.pop(".", None) # Check for valid identifiers - args = config.pop('[]', ()) + args = config.pop("[]", ()) if args: args = tuple([convert(o) for o in args]) items = [(k, convert(config[k])) for k in config if valid_ident(k)] @@ -1715,7 +1766,7 @@ class Configurator(BaseConfigurator): def __getitem__(self, key): result = self.config[key] - if isinstance(result, dict) and '()' in result: + if isinstance(result, dict) and "()" in result: self.config[key] = result = self.configure_custom(result) return result @@ -1723,7 +1774,7 @@ class Configurator(BaseConfigurator): """Default converter for the inc:// protocol.""" if not os.path.isabs(value): value = os.path.join(self.base, value) - with codecs.open(value, 'r', encoding='utf-8') as f: + with codecs.open(value, "r", encoding="utf-8") as f: result = json.load(f) return result @@ -1752,32 +1803,34 @@ class SubprocessMixin(object): progress(s, context) else: if not verbose: - sys.stderr.write('.') + sys.stderr.write(".") else: - sys.stderr.write(s.decode('utf-8')) + sys.stderr.write(s.decode("utf-8")) sys.stderr.flush() stream.close() def run_command(self, cmd, **kwargs): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs) - t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) + p = subprocess.Popen( + cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs + ) + t1 = threading.Thread(target=self.reader, args=(p.stdout, "stdout")) t1.start() - t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) + t2 = threading.Thread(target=self.reader, args=(p.stderr, "stderr")) t2.start() p.wait() t1.join() t2.join() if self.progress is not None: - self.progress('done.', 'main') + self.progress("done.", "main") elif self.verbose: - sys.stderr.write('done.\n') + sys.stderr.write("done.\n") return p def normalize_name(name): """Normalize a python package name a la PEP 503""" # https://www.python.org/dev/peps/pep-0503/#normalized-names - return re.sub('[-_.]+', '-', name).lower() + return re.sub("[-_.]+", "-", name).lower() # def _get_pypirc_command(): @@ -1793,12 +1846,12 @@ def normalize_name(name): class PyPIRCFile(object): - DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' - DEFAULT_REALM = 'pypi' + DEFAULT_REPOSITORY = "https://upload.pypi.org/legacy/" + DEFAULT_REALM = "pypi" def __init__(self, fn=None, url=None): if fn is None: - fn = os.path.join(os.path.expanduser('~'), '.pypirc') + fn = os.path.join(os.path.expanduser("~"), ".pypirc") self.filename = fn self.url = url @@ -1811,22 +1864,29 @@ class PyPIRCFile(object): config = configparser.RawConfigParser() config.read(self.filename) sections = config.sections() - if 'distutils' in sections: + if "distutils" in sections: # let's get the list of servers - index_servers = config.get('distutils', 'index-servers') - _servers = [server.strip() for server in index_servers.split('\n') if server.strip() != ''] + index_servers = config.get("distutils", "index-servers") + _servers = [ + server.strip() + for server in index_servers.split("\n") + if server.strip() != "" + ] if _servers == []: # nothing set, let's try to get the default pypi - if 'pypi' in sections: - _servers = ['pypi'] + if "pypi" in sections: + _servers = ["pypi"] else: for server in _servers: - result = {'server': server} - result['username'] = config.get(server, 'username') + result = {"server": server} + result["username"] = config.get(server, "username") # optional params - for key, default in (('repository', self.DEFAULT_REPOSITORY), ('realm', self.DEFAULT_REALM), - ('password', None)): + for key, default in ( + ("repository", self.DEFAULT_REPOSITORY), + ("realm", self.DEFAULT_REALM), + ("password", None), + ): if config.has_option(server, key): result[key] = config.get(server, key) else: @@ -1835,23 +1895,29 @@ class PyPIRCFile(object): # work around people having "repository" for the "pypi" # section of their config set to the HTTP (rather than # HTTPS) URL - if (server == 'pypi' and repository in (self.DEFAULT_REPOSITORY, 'pypi')): - result['repository'] = self.DEFAULT_REPOSITORY - elif (result['server'] != repository and result['repository'] != repository): + if server == "pypi" and repository in ( + self.DEFAULT_REPOSITORY, + "pypi", + ): + result["repository"] = self.DEFAULT_REPOSITORY + elif ( + result["server"] != repository + and result["repository"] != repository + ): result = {} - elif 'server-login' in sections: + elif "server-login" in sections: # old format - server = 'server-login' - if config.has_option(server, 'repository'): - repository = config.get(server, 'repository') + server = "server-login" + if config.has_option(server, "repository"): + repository = config.get(server, "repository") else: repository = self.DEFAULT_REPOSITORY result = { - 'username': config.get(server, 'username'), - 'password': config.get(server, 'password'), - 'repository': repository, - 'server': server, - 'realm': self.DEFAULT_REALM + "username": config.get(server, "username"), + "password": config.get(server, "password"), + "repository": repository, + "server": server, + "realm": self.DEFAULT_REALM, } return result @@ -1860,11 +1926,11 @@ class PyPIRCFile(object): config = configparser.RawConfigParser() fn = self.filename config.read(fn) - if not config.has_section('pypi'): - config.add_section('pypi') - config.set('pypi', 'username', username) - config.set('pypi', 'password', password) - with open(fn, 'w') as f: + if not config.has_section("pypi"): + config.add_section("pypi") + config.set("pypi", "username", username) + config.set("pypi", "password", password) + with open(fn, "w") as f: config.write(f) @@ -1905,80 +1971,84 @@ def get_host_platform(): For other non-POSIX platforms, currently just returns 'sys.platform'. """ - if os.name == 'nt': - if 'amd64' in sys.version.lower(): - return 'win-amd64' - if '(arm)' in sys.version.lower(): - return 'win-arm32' - if '(arm64)' in sys.version.lower(): - return 'win-arm64' + if os.name == "nt": + if "amd64" in sys.version.lower(): + return "win-amd64" + if "(arm)" in sys.version.lower(): + return "win-arm32" + if "(arm64)" in sys.version.lower(): + return "win-arm64" return sys.platform # Set for cross builds explicitly if "_PYTHON_HOST_PLATFORM" in os.environ: return os.environ["_PYTHON_HOST_PLATFORM"] - if os.name != 'posix' or not hasattr(os, 'uname'): + if os.name != "posix" or not hasattr(os, "uname"): # XXX what about the architecture? NT is Intel or Alpha, # Mac OS is M68k or PPC, etc. return sys.platform # Try to distinguish various flavours of Unix - (osname, host, release, version, machine) = os.uname() + osname, host, release, version, machine = os.uname() # Convert the OS name to lowercase, remove '/' characters, and translate # spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_').replace('/', '-') + osname = osname.lower().replace("/", "") + machine = machine.replace(" ", "_").replace("/", "-") - if osname[:5] == 'linux': + if osname[:5] == "linux": # At least on Linux/Intel, 'machine' is the processor -- # i386, etc. # XXX what about Alpha, SPARC, etc? return "%s-%s" % (osname, machine) - elif osname[:5] == 'sunos': - if release[0] >= '5': # SunOS 5 == Solaris 2 - osname = 'solaris' - release = '%d.%s' % (int(release[0]) - 3, release[2:]) + elif osname[:5] == "sunos": + if release[0] >= "5": # SunOS 5 == Solaris 2 + osname = "solaris" + release = "%d.%s" % (int(release[0]) - 3, release[2:]) # We can't use 'platform.architecture()[0]' because a # bootstrap problem. We use a dict to get an error # if some suspicious happens. - bitness = {2147483647: '32bit', 9223372036854775807: '64bit'} - machine += '.%s' % bitness[sys.maxsize] + bitness = {2147483647: "32bit", 9223372036854775807: "64bit"} + machine += ".%s" % bitness[sys.maxsize] # fall through to standard osname-release-machine representation - elif osname[:3] == 'aix': + elif osname[:3] == "aix": from _aix_support import aix_platform + return aix_platform() - elif osname[:6] == 'cygwin': - osname = 'cygwin' - rel_re = re.compile(r'[\d.]+', re.ASCII) + elif osname[:6] == "cygwin": + osname = "cygwin" + rel_re = re.compile(r"[\d.]+", re.ASCII) m = rel_re.match(release) if m: release = m.group() - elif osname[:6] == 'darwin': + elif osname[:6] == "darwin": import _osx_support + try: from distutils import sysconfig except ImportError: import sysconfig - osname, release, machine = _osx_support.get_platform_osx(sysconfig.get_config_vars(), osname, release, machine) + osname, release, machine = _osx_support.get_platform_osx( + sysconfig.get_config_vars(), osname, release, machine + ) - return '%s-%s-%s' % (osname, release, machine) + return "%s-%s-%s" % (osname, release, machine) _TARGET_TO_PLAT = { - 'x86': 'win32', - 'x64': 'win-amd64', - 'arm': 'win-arm32', + "x86": "win32", + "x64": "win-amd64", + "arm": "win-arm32", } def get_platform(): - if os.name != 'nt': + if os.name != "nt": return get_host_platform() - cross_compilation_target = os.environ.get('VSCMD_ARG_TGT_ARCH') + cross_compilation_target = os.environ.get("VSCMD_ARG_TGT_ARCH") if cross_compilation_target not in _TARGET_TO_PLAT: return get_host_platform() return _TARGET_TO_PLAT[cross_compilation_target] diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/version.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/version.py index d70a96e..16cd4a3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/version.py @@ -14,16 +14,23 @@ import re from .compat import string_types from .util import parse_requirement -__all__ = ['NormalizedVersion', 'NormalizedMatcher', - 'LegacyVersion', 'LegacyMatcher', - 'SemanticVersion', 'SemanticMatcher', - 'UnsupportedVersionError', 'get_scheme'] +__all__ = [ + "NormalizedVersion", + "NormalizedMatcher", + "LegacyVersion", + "LegacyMatcher", + "SemanticVersion", + "SemanticMatcher", + "UnsupportedVersionError", + "get_scheme", +] logger = logging.getLogger(__name__) class UnsupportedVersionError(ValueError): """This is an unsupported version.""" + pass @@ -35,11 +42,11 @@ class Version(object): assert len(parts) > 0 def parse(self, s): - raise NotImplementedError('please implement in a subclass') + raise NotImplementedError("please implement in a subclass") def _check_compatible(self, other): if type(self) != type(other): - raise TypeError('cannot compare %r and %r' % (self, other)) + raise TypeError("cannot compare %r and %r" % (self, other)) def __eq__(self, other): self._check_compatible(other) @@ -73,7 +80,7 @@ class Version(object): @property def is_prerelease(self): - raise NotImplementedError('Please implement in subclasses.') + raise NotImplementedError("Please implement in subclasses.") class Matcher(object): @@ -81,15 +88,15 @@ class Matcher(object): # value is either a callable or the name of a method _operators = { - '<': lambda v, c, p: v < c, - '>': lambda v, c, p: v > c, - '<=': lambda v, c, p: v == c or v < c, - '>=': lambda v, c, p: v == c or v > c, - '==': lambda v, c, p: v == c, - '===': lambda v, c, p: v == c, + "<": lambda v, c, p: v < c, + ">": lambda v, c, p: v > c, + "<=": lambda v, c, p: v == c or v < c, + ">=": lambda v, c, p: v == c or v > c, + "==": lambda v, c, p: v == c, + "===": lambda v, c, p: v == c, # by default, compatible => >=. - '~=': lambda v, c, p: v == c or v > c, - '!=': lambda v, c, p: v != c, + "~=": lambda v, c, p: v == c or v > c, + "!=": lambda v, c, p: v != c, } # this is a method only to support alternative implementations @@ -99,21 +106,20 @@ class Matcher(object): def __init__(self, s): if self.version_class is None: - raise ValueError('Please specify a version class') + raise ValueError("Please specify a version class") self._string = s = s.strip() r = self.parse_requirement(s) if not r: - raise ValueError('Not valid: %r' % s) + raise ValueError("Not valid: %r" % s) self.name = r.name - self.key = self.name.lower() # for case-insensitive comparisons + self.key = self.name.lower() # for case-insensitive comparisons clist = [] if r.constraints: # import pdb; pdb.set_trace() for op, s in r.constraints: - if s.endswith('.*'): - if op not in ('==', '!='): - raise ValueError('\'.*\' not allowed for ' - '%r constraints' % op) + if s.endswith(".*"): + if op not in ("==", "!="): + raise ValueError("'.*' not allowed for " "%r constraints" % op) # Could be a partial version (e.g. for '2.*') which # won't parse as a version, so keep it as a string vn, prefix = s[:-2], True @@ -140,8 +146,10 @@ class Matcher(object): if isinstance(f, string_types): f = getattr(self, f) if not f: - msg = ('%r not implemented ' - 'for %s' % (operator, self.__class__.__name__)) + msg = "%r not implemented " "for %s" % ( + operator, + self.__class__.__name__, + ) raise NotImplementedError(msg) if not f(version, constraint, prefix): return False @@ -150,13 +158,13 @@ class Matcher(object): @property def exact_version(self): result = None - if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): + if len(self._parts) == 1 and self._parts[0][0] in ("==", "==="): result = self._parts[0][1] return result def _check_compatible(self, other): if type(self) != type(other) or self.name != other.name: - raise TypeError('cannot compare %s and %s' % (self, other)) + raise TypeError("cannot compare %s and %s" % (self, other)) def __eq__(self, other): self._check_compatible(other) @@ -176,18 +184,21 @@ class Matcher(object): return self._string -PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|alpha|b|beta|c|rc|pre|preview)(\d+)?)?' - r'(\.(post|r|rev)(\d+)?)?([._-]?(dev)(\d+)?)?' - r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$', re.I) +PEP440_VERSION_RE = re.compile( + r"^v?(\d+!)?(\d+(\.\d+)*)((a|alpha|b|beta|c|rc|pre|preview)(\d+)?)?" + r"(\.(post|r|rev)(\d+)?)?([._-]?(dev)(\d+)?)?" + r"(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$", + re.I, +) def _pep_440_key(s): s = s.strip() m = PEP440_VERSION_RE.match(s) if not m: - raise UnsupportedVersionError('Not a valid version: %s' % s) + raise UnsupportedVersionError("Not a valid version: %s" % s) groups = m.groups() - nums = tuple(int(v) for v in groups[1].split('.')) + nums = tuple(int(v) for v in groups[1].split(".")) while len(nums) > 1 and nums[-1] == 0: nums = nums[:-1] @@ -224,7 +235,7 @@ def _pep_440_key(s): local = () else: parts = [] - for part in local.split('.'): + for part in local.split("."): # to ensure that numeric compares as > lexicographic, avoid # comparing them directly, but encode a tuple which ensures # correct sorting @@ -238,14 +249,14 @@ def _pep_440_key(s): # either before pre-release, or final release and after if not post and dev: # before pre-release - pre = ('a', -1) # to sort before a0 + pre = ("a", -1) # to sort before a0 else: - pre = ('z',) # to sort after all pre-releases + pre = ("z",) # to sort after all pre-releases # now look at the state of post and dev. if not post: - post = ('_',) # sort before 'a' + post = ("_",) # sort before 'a' if not dev: - dev = ('final',) + dev = ("final",) return epoch, nums, pre, post, dev, local @@ -271,18 +282,19 @@ class NormalizedVersion(Version): 1.2a # release level must have a release serial 1.2.3b """ + def parse(self, s): result = _normalized_key(s) # _normalized_key loses trailing zeroes in the release # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 # However, PEP 440 prefix matching needs it: for example, # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). - m = PEP440_VERSION_RE.match(s) # must succeed + m = PEP440_VERSION_RE.match(s) # must succeed groups = m.groups() - self._release_clause = tuple(int(v) for v in groups[1].split('.')) + self._release_clause = tuple(int(v) for v in groups[1].split(".")) return result - PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) + PREREL_TAGS = set(["a", "b", "c", "rc", "dev"]) @property def is_prerelease(self): @@ -297,7 +309,7 @@ def _match_prefix(x, y): if not x.startswith(y): return False n = len(y) - return x[n] == '.' + return x[n] == "." class NormalizedMatcher(Matcher): @@ -305,19 +317,19 @@ class NormalizedMatcher(Matcher): # value is either a callable or the name of a method _operators = { - '~=': '_match_compatible', - '<': '_match_lt', - '>': '_match_gt', - '<=': '_match_le', - '>=': '_match_ge', - '==': '_match_eq', - '===': '_match_arbitrary', - '!=': '_match_ne', + "~=": "_match_compatible", + "<": "_match_lt", + ">": "_match_gt", + "<=": "_match_le", + ">=": "_match_ge", + "==": "_match_eq", + "===": "_match_arbitrary", + "!=": "_match_ne", } def _adjust_local(self, version, constraint, prefix): if prefix: - strip_local = '+' not in constraint and version._parts[-1] + strip_local = "+" not in constraint and version._parts[-1] else: # both constraint and version are # NormalizedVersion instances. @@ -325,7 +337,7 @@ class NormalizedMatcher(Matcher): # ensure the version doesn't, either. strip_local = not constraint._parts[-1] and version._parts[-1] if strip_local: - s = version._string.split('+', 1)[0] + s = version._string.split("+", 1)[0] version = self.version_class(s) return version, constraint @@ -334,7 +346,7 @@ class NormalizedMatcher(Matcher): if version >= constraint: return False release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) + pfx = ".".join([str(i) for i in release_clause]) return not _match_prefix(version, pfx) def _match_gt(self, version, constraint, prefix): @@ -342,7 +354,7 @@ class NormalizedMatcher(Matcher): if version <= constraint: return False release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) + pfx = ".".join([str(i) for i in release_clause]) return not _match_prefix(version, pfx) def _match_le(self, version, constraint, prefix): @@ -356,7 +368,7 @@ class NormalizedMatcher(Matcher): def _match_eq(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if not prefix: - result = (version == constraint) + result = version == constraint else: result = _match_prefix(version, constraint) return result @@ -367,7 +379,7 @@ class NormalizedMatcher(Matcher): def _match_ne(self, version, constraint, prefix): version, constraint = self._adjust_local(version, constraint, prefix) if not prefix: - result = (version != constraint) + result = version != constraint else: result = not _match_prefix(version, constraint) return result @@ -378,38 +390,37 @@ class NormalizedMatcher(Matcher): return True if version < constraint: return False -# if not prefix: -# return True + # if not prefix: + # return True release_clause = constraint._release_clause if len(release_clause) > 1: release_clause = release_clause[:-1] - pfx = '.'.join([str(i) for i in release_clause]) + pfx = ".".join([str(i) for i in release_clause]) return _match_prefix(version, pfx) _REPLACEMENTS = ( - (re.compile('[.+-]$'), ''), # remove trailing puncts - (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start - (re.compile('^[.-]'), ''), # remove leading puncts - (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses - (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha - (re.compile(r'\b(pre-alpha|prealpha)\b'), - 'pre.alpha'), # standardise - (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses + (re.compile("[.+-]$"), ""), # remove trailing puncts + (re.compile(r"^[.](\d)"), r"0.\1"), # .N -> 0.N at start + (re.compile("^[.-]"), ""), # remove leading puncts + (re.compile(r"^\((.*)\)$"), r"\1"), # remove parentheses + (re.compile(r"^v(ersion)?\s*(\d+)"), r"\2"), # remove leading v(ersion) + (re.compile(r"^r(ev)?\s*(\d+)"), r"\2"), # remove leading v(ersion) + (re.compile("[.]{2,}"), "."), # multiple runs of '.' + (re.compile(r"\b(alfa|apha)\b"), "alpha"), # misspelt alpha + (re.compile(r"\b(pre-alpha|prealpha)\b"), "pre.alpha"), # standardise + (re.compile(r"\(beta\)$"), "beta"), # remove parentheses ) _SUFFIX_REPLACEMENTS = ( - (re.compile('^[:~._+-]+'), ''), # remove leading puncts - (re.compile('[,*")([\\]]'), ''), # remove unwanted chars - (re.compile('[~:+_ -]'), '.'), # replace illegal chars - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\.$'), ''), # trailing '.' + (re.compile("^[:~._+-]+"), ""), # remove leading puncts + (re.compile('[,*")([\\]]'), ""), # remove unwanted chars + (re.compile("[~:+_ -]"), "."), # replace illegal chars + (re.compile("[.]{2,}"), "."), # multiple runs of '.' + (re.compile(r"\.$"), ""), # trailing '.' ) -_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') +_NUMERIC_PREFIX = re.compile(r"(\d+(\.\d+)*)") def _suggest_semantic_version(s): @@ -421,26 +432,26 @@ def _suggest_semantic_version(s): for pat, repl in _REPLACEMENTS: result = pat.sub(repl, result) if not result: - result = '0.0.0' + result = "0.0.0" # Now look for numeric prefix, and separate it out from # the rest. # import pdb; pdb.set_trace() m = _NUMERIC_PREFIX.match(result) if not m: - prefix = '0.0.0' + prefix = "0.0.0" suffix = result else: - prefix = m.groups()[0].split('.') + prefix = m.groups()[0].split(".") prefix = [int(i) for i in prefix] while len(prefix) < 3: prefix.append(0) if len(prefix) == 3: - suffix = result[m.end():] + suffix = result[m.end() :] else: - suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] + suffix = ".".join([str(i) for i in prefix[3:]]) + result[m.end() :] prefix = prefix[:3] - prefix = '.'.join([str(i) for i in prefix]) + prefix = ".".join([str(i) for i in prefix]) suffix = suffix.strip() if suffix: # import pdb; pdb.set_trace() @@ -451,7 +462,7 @@ def _suggest_semantic_version(s): if not suffix: result = prefix else: - sep = '-' if 'dev' in suffix else '+' + sep = "-" if "dev" in suffix else "+" result = prefix + sep + suffix if not is_semver(result): result = None @@ -477,19 +488,30 @@ def _suggest_normalized_version(s): """ try: _normalized_key(s) - return s # already rational + return s # already rational except UnsupportedVersionError: pass rs = s.lower() # part of this could use maketrans - for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), - ('beta', 'b'), ('rc', 'c'), ('-final', ''), - ('-pre', 'c'), - ('-release', ''), ('.release', ''), ('-stable', ''), - ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), - ('final', '')): + for orig, repl in ( + ("-alpha", "a"), + ("-beta", "b"), + ("alpha", "a"), + ("beta", "b"), + ("rc", "c"), + ("-final", ""), + ("-pre", "c"), + ("-release", ""), + (".release", ""), + ("-stable", ""), + ("+", "."), + ("_", "."), + (" ", ""), + (".final", ""), + ("final", ""), + ): rs = rs.replace(orig, repl) # if something ends with dev or pre, we add a 0 @@ -509,7 +531,7 @@ def _suggest_normalized_version(s): rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) # Clean: v0.3, v1.0 - if rs.startswith('v'): + if rs.startswith("v"): rs = rs[1:] # Clean leading '0's on numbers. @@ -568,20 +590,21 @@ def _suggest_normalized_version(s): rs = None return rs + # # Legacy version processing (distribute-compatible) # -_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) +_VERSION_PART = re.compile(r"([a-z]+|\d+|[\.-])", re.I) _VERSION_REPLACE = { - 'pre': 'c', - 'preview': 'c', - '-': 'final-', - 'rc': 'c', - 'dev': '@', - '': None, - '.': None, + "pre": "c", + "preview": "c", + "-": "final-", + "rc": "c", + "dev": "@", + "": None, + ".": None, } @@ -591,21 +614,21 @@ def _legacy_key(s): for p in _VERSION_PART.split(s.lower()): p = _VERSION_REPLACE.get(p, p) if p: - if '0' <= p[:1] <= '9': + if "0" <= p[:1] <= "9": p = p.zfill(8) else: - p = '*' + p + p = "*" + p result.append(p) - result.append('*final') + result.append("*final") return result result = [] for p in get_parts(s): - if p.startswith('*'): - if p < '*final': - while result and result[-1] == '*final-': + if p.startswith("*"): + if p < "*final": + while result and result[-1] == "*final-": result.pop() - while result and result[-1] == '00000000': + while result and result[-1] == "00000000": result.pop() result.append(p) return tuple(result) @@ -619,7 +642,7 @@ class LegacyVersion(Version): def is_prerelease(self): result = False for x in self._parts: - if (isinstance(x, string_types) and x.startswith('*') and x < '*final'): + if isinstance(x, string_types) and x.startswith("*") and x < "*final": result = True break return result @@ -629,31 +652,38 @@ class LegacyMatcher(Matcher): version_class = LegacyVersion _operators = dict(Matcher._operators) - _operators['~='] = '_match_compatible' + _operators["~="] = "_match_compatible" - numeric_re = re.compile(r'^(\d+(\.\d+)*)') + numeric_re = re.compile(r"^(\d+(\.\d+)*)") def _match_compatible(self, version, constraint, prefix): if version < constraint: return False m = self.numeric_re.match(str(constraint)) if not m: - logger.warning('Cannot compute compatible match for version %s ' - ' and constraint %s', version, constraint) + logger.warning( + "Cannot compute compatible match for version %s " " and constraint %s", + version, + constraint, + ) return True s = m.groups()[0] - if '.' in s: - s = s.rsplit('.', 1)[0] + if "." in s: + s = s.rsplit(".", 1)[0] return _match_prefix(version, s) + # # Semantic versioning # -_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' - r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' - r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) +_SEMVER_RE = re.compile( + r"^(\d+)\.(\d+)\.(\d+)" + r"(-[a-z0-9]+(\.[a-z0-9-]+)*)?" + r"(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$", + re.I, +) def is_semver(s): @@ -665,7 +695,7 @@ def _semantic_key(s): if s is None: result = (absent,) else: - parts = s[1:].split('.') + parts = s[1:].split(".") # We can't compare ints and strings on Python 3, so fudge it # by zero-filling numeric values so simulate a numeric comparison result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) @@ -677,7 +707,7 @@ def _semantic_key(s): groups = m.groups() major, minor, patch = [int(i) for i in groups[:3]] # choose the '|' and '*' so that versions sort correctly - pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') + pre, build = make_tuple(groups[3], "|"), make_tuple(groups[5], "*") return (major, minor, patch), pre, build @@ -687,7 +717,7 @@ class SemanticVersion(Version): @property def is_prerelease(self): - return self._parts[1][0] != '|' + return self._parts[1][0] != "|" class SemanticMatcher(Matcher): @@ -721,9 +751,9 @@ class VersionScheme(object): Used for processing some metadata fields """ # See issue #140. Be tolerant of a single trailing comma. - if s.endswith(','): + if s.endswith(","): s = s[:-1] - return self.is_valid_matcher('dummy_name (%s)' % s) + return self.is_valid_matcher("dummy_name (%s)" % s) def suggest(self, s): if self.suggester is None: @@ -734,17 +764,19 @@ class VersionScheme(object): _SCHEMES = { - 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, - _suggest_normalized_version), - 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), - 'semantic': VersionScheme(_semantic_key, SemanticMatcher, - _suggest_semantic_version), + "normalized": VersionScheme( + _normalized_key, NormalizedMatcher, _suggest_normalized_version + ), + "legacy": VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), + "semantic": VersionScheme( + _semantic_key, SemanticMatcher, _suggest_semantic_version + ), } -_SCHEMES['default'] = _SCHEMES['normalized'] +_SCHEMES["default"] = _SCHEMES["normalized"] def get_scheme(name): if name not in _SCHEMES: - raise ValueError('unknown scheme name: %r' % name) + raise ValueError("unknown scheme name: %r" % name) return _SCHEMES[name] diff --git a/PPE2/.venv/lib/python3.12/site-packages/distlib/wheel.py b/PPE2/.venv/lib/python3.12/site-packages/distlib/wheel.py index 1041b9a..bed974f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/distlib/wheel.py +++ b/PPE2/.venv/lib/python3.12/site-packages/distlib/wheel.py @@ -25,61 +25,71 @@ from . import __version__, DistlibException from .compat import sysconfig, ZipFile, fsdecode, text_type, filter from .database import InstalledDistribution from .metadata import Metadata, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME -from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, cached_property, get_cache_base, - read_exports, tempdir, get_platform) +from .util import ( + FileOperator, + convert_path, + CSVReader, + CSVWriter, + Cache, + cached_property, + get_cache_base, + read_exports, + tempdir, + get_platform, +) from .version import NormalizedVersion, UnsupportedVersionError logger = logging.getLogger(__name__) cache = None # created when needed -if hasattr(sys, 'pypy_version_info'): # pragma: no cover - IMP_PREFIX = 'pp' -elif sys.platform.startswith('java'): # pragma: no cover - IMP_PREFIX = 'jy' -elif sys.platform == 'cli': # pragma: no cover - IMP_PREFIX = 'ip' +if hasattr(sys, "pypy_version_info"): # pragma: no cover + IMP_PREFIX = "pp" +elif sys.platform.startswith("java"): # pragma: no cover + IMP_PREFIX = "jy" +elif sys.platform == "cli": # pragma: no cover + IMP_PREFIX = "ip" else: - IMP_PREFIX = 'cp' + IMP_PREFIX = "cp" -VER_SUFFIX = sysconfig.get_config_var('py_version_nodot') +VER_SUFFIX = sysconfig.get_config_var("py_version_nodot") if not VER_SUFFIX: # pragma: no cover - VER_SUFFIX = '%s%s' % sys.version_info[:2] -PYVER = 'py' + VER_SUFFIX + VER_SUFFIX = "%s%s" % sys.version_info[:2] +PYVER = "py" + VER_SUFFIX IMPVER = IMP_PREFIX + VER_SUFFIX -ARCH = get_platform().replace('-', '_').replace('.', '_') +ARCH = get_platform().replace("-", "_").replace(".", "_") -ABI = sysconfig.get_config_var('SOABI') -if ABI and ABI.startswith('cpython-'): - ABI = ABI.replace('cpython-', 'cp').split('-')[0] +ABI = sysconfig.get_config_var("SOABI") +if ABI and ABI.startswith("cpython-"): + ABI = ABI.replace("cpython-", "cp").split("-")[0] else: def _derive_abi(): - parts = ['cp', VER_SUFFIX] - if sysconfig.get_config_var('Py_DEBUG'): - parts.append('d') - if IMP_PREFIX == 'cp': + parts = ["cp", VER_SUFFIX] + if sysconfig.get_config_var("Py_DEBUG"): + parts.append("d") + if IMP_PREFIX == "cp": vi = sys.version_info[:2] if vi < (3, 8): - wpm = sysconfig.get_config_var('WITH_PYMALLOC') + wpm = sysconfig.get_config_var("WITH_PYMALLOC") if wpm is None: wpm = True if wpm: - parts.append('m') + parts.append("m") if vi < (3, 3): - us = sysconfig.get_config_var('Py_UNICODE_SIZE') + us = sysconfig.get_config_var("Py_UNICODE_SIZE") if us == 4 or (us is None and sys.maxunicode == 0x10FFFF): - parts.append('u') + parts.append("u") if bool(sysconfig.get_config_var("Py_GIL_DISABLED")): - parts.append('t') - return ''.join(parts) + parts.append("t") + return "".join(parts) ABI = _derive_abi() del _derive_abi FILENAME_RE = re.compile( - r''' + r""" (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))? @@ -87,23 +97,28 @@ FILENAME_RE = re.compile( -(?P\w+) -(?P\w+(\.\w+)*) \.whl$ -''', re.IGNORECASE | re.VERBOSE) +""", + re.IGNORECASE | re.VERBOSE, +) -NAME_VERSION_RE = re.compile(r''' +NAME_VERSION_RE = re.compile( + r""" (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))?$ -''', re.IGNORECASE | re.VERBOSE) +""", + re.IGNORECASE | re.VERBOSE, +) -SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') -SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') -SHEBANG_PYTHON = b'#!python' -SHEBANG_PYTHONW = b'#!pythonw' +SHEBANG_RE = re.compile(rb"\s*#![^\r\n]*") +SHEBANG_DETAIL_RE = re.compile(rb'^(\s*#!("[^"]+"|\S+))\s+(.*)$') +SHEBANG_PYTHON = b"#!python" +SHEBANG_PYTHONW = b"#!pythonw" -if os.sep == '/': +if os.sep == "/": to_posix = lambda o: o else: - to_posix = lambda o: o.replace(os.sep, '/') + to_posix = lambda o: o.replace(os.sep, "/") if sys.version_info[0] < 3: import imp @@ -160,10 +175,10 @@ class Mounter(object): result = sys.modules[fullname] else: if fullname not in self.libs: - raise ImportError('unable to find extension for %s' % fullname) + raise ImportError("unable to find extension for %s" % fullname) result = _load_dynamic(fullname, self.libs[fullname]) result.__loader__ = self - parts = fullname.rsplit('.', 1) + parts = fullname.rsplit(".", 1) if len(parts) > 1: result.__package__ = parts[0] return result @@ -178,7 +193,7 @@ class Wheel(object): """ wheel_version = (1, 1) - hash_kind = 'sha256' + hash_kind = "sha256" def __init__(self, filename=None, sign=False, verify=False): """ @@ -186,40 +201,39 @@ class Wheel(object): """ self.sign = sign self.should_verify = verify - self.buildver = '' + self.buildver = "" self.pyver = [PYVER] - self.abi = ['none'] - self.arch = ['any'] + self.abi = ["none"] + self.arch = ["any"] self.dirname = os.getcwd() if filename is None: - self.name = 'dummy' - self.version = '0.1' + self.name = "dummy" + self.version = "0.1" self._filename = self.filename else: m = NAME_VERSION_RE.match(filename) if m: - info = m.groupdict('') - self.name = info['nm'] + info = m.groupdict("") + self.name = info["nm"] # Reinstate the local version separator - self.version = info['vn'].replace('_', '-') - self.buildver = info['bn'] + self.version = info["vn"].replace("_", "-") + self.buildver = info["bn"] self._filename = self.filename else: dirname, filename = os.path.split(filename) m = FILENAME_RE.match(filename) if not m: - raise DistlibException('Invalid name or ' - 'filename: %r' % filename) + raise DistlibException("Invalid name or " "filename: %r" % filename) if dirname: self.dirname = os.path.abspath(dirname) self._filename = filename - info = m.groupdict('') - self.name = info['nm'] - self.version = info['vn'] - self.buildver = info['bn'] - self.pyver = info['py'].split('.') - self.abi = info['bi'].split('.') - self.arch = info['ar'].split('.') + info = m.groupdict("") + self.name = info["nm"] + self.version = info["vn"] + self.buildver = info["bn"] + self.pyver = info["py"].split(".") + self.abi = info["bi"].split(".") + self.arch = info["ar"].split(".") @property def filename(self): @@ -227,15 +241,15 @@ class Wheel(object): Build and return a filename from the various components. """ if self.buildver: - buildver = '-' + self.buildver + buildver = "-" + self.buildver else: - buildver = '' - pyver = '.'.join(self.pyver) - abi = '.'.join(self.abi) - arch = '.'.join(self.arch) + buildver = "" + pyver = ".".join(self.pyver) + abi = ".".join(self.abi) + arch = ".".join(self.arch) # replace - with _ as a local version separator - version = self.version.replace('-', '_') - return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, pyver, abi, arch) + version = self.version.replace("-", "_") + return "%s-%s%s-%s-%s-%s.whl" % (self.name, version, buildver, pyver, abi, arch) @property def exists(self): @@ -252,10 +266,10 @@ class Wheel(object): @cached_property def metadata(self): pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - wrapper = codecs.getreader('utf-8') - with ZipFile(pathname, 'r') as zf: + name_ver = "%s-%s" % (self.name, self.version) + info_dir = "%s.dist-info" % name_ver + wrapper = codecs.getreader("utf-8") + with ZipFile(pathname, "r") as zf: self.get_wheel_metadata(zf) # wv = wheel_metadata['Wheel-Version'].split('.', 1) # file_version = tuple([int(i) for i in wv]) @@ -277,23 +291,25 @@ class Wheel(object): except KeyError: pass if not result: - raise ValueError('Invalid wheel, because metadata is ' - 'missing: looked in %s' % ', '.join(fns)) + raise ValueError( + "Invalid wheel, because metadata is " + "missing: looked in %s" % ", ".join(fns) + ) return result def get_wheel_metadata(self, zf): - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - metadata_filename = posixpath.join(info_dir, 'WHEEL') + name_ver = "%s-%s" % (self.name, self.version) + info_dir = "%s.dist-info" % name_ver + metadata_filename = posixpath.join(info_dir, "WHEEL") with zf.open(metadata_filename) as bf: - wf = codecs.getreader('utf-8')(bf) + wf = codecs.getreader("utf-8")(bf) message = message_from_file(wf) return dict(message) @cached_property def info(self): pathname = os.path.join(self.dirname, self.filename) - with ZipFile(pathname, 'r') as zf: + with ZipFile(pathname, "r") as zf: result = self.get_wheel_metadata(zf) return result @@ -303,27 +319,27 @@ class Wheel(object): end = m.end() shebang, data_after_shebang = data[:end], data[end:] # Preserve any arguments after the interpreter - if b'pythonw' in shebang.lower(): + if b"pythonw" in shebang.lower(): shebang_python = SHEBANG_PYTHONW else: shebang_python = SHEBANG_PYTHON m = SHEBANG_DETAIL_RE.match(shebang) if m: - args = b' ' + m.groups()[-1] + args = b" " + m.groups()[-1] else: - args = b'' + args = b"" shebang = shebang_python + args data = shebang + data_after_shebang else: - cr = data.find(b'\r') - lf = data.find(b'\n') + cr = data.find(b"\r") + lf = data.find(b"\n") if cr < 0 or cr > lf: - term = b'\n' + term = b"\n" else: - if data[cr:cr + 2] == b'\r\n': - term = b'\r\n' + if data[cr : cr + 2] == b"\r\n": + term = b"\r\n" else: - term = b'\r' + term = b"\r" data = SHEBANG_PYTHON + term + data return data @@ -333,14 +349,14 @@ class Wheel(object): try: hasher = getattr(hashlib, hash_kind) except AttributeError: - raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) + raise DistlibException("Unsupported hash algorithm: %r" % hash_kind) result = hasher(data).digest() - result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') + result = base64.urlsafe_b64encode(result).rstrip(b"=").decode("ascii") return hash_kind, result def write_record(self, records, record_path, archive_record_path): records = list(records) # make a copy, as mutated - records.append((archive_record_path, '', '')) + records.append((archive_record_path, "", "")) with CSVWriter(record_path) as writer: for row in records: writer.writerow(row) @@ -350,21 +366,21 @@ class Wheel(object): distinfo, info_dir = info # hasher = getattr(hashlib, self.hash_kind) for ap, p in archive_paths: - with open(p, 'rb') as f: + with open(p, "rb") as f: data = f.read() - digest = '%s=%s' % self.get_hash(data) + digest = "%s=%s" % self.get_hash(data) size = os.path.getsize(p) records.append((ap, digest, size)) - p = os.path.join(distinfo, 'RECORD') - ap = to_posix(os.path.join(info_dir, 'RECORD')) + p = os.path.join(distinfo, "RECORD") + ap = to_posix(os.path.join(info_dir, "RECORD")) self.write_record(records, p, ap) archive_paths.append((ap, p)) def build_zip(self, pathname, archive_paths): - with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: + with ZipFile(pathname, "w", zipfile.ZIP_DEFLATED) as zf: for ap, p in archive_paths: - logger.debug('Wrote %s to %s in wheel', p, ap) + logger.debug("Wrote %s to %s in wheel", p, ap) zf.write(p, ap) def build(self, paths, tags=None, wheel_version=None): @@ -375,32 +391,32 @@ class Wheel(object): if tags is None: tags = {} - libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] - if libkey == 'platlib': - is_pure = 'false' + libkey = list(filter(lambda o: o in paths, ("purelib", "platlib")))[0] + if libkey == "platlib": + is_pure = "false" default_pyver = [IMPVER] default_abi = [ABI] default_arch = [ARCH] else: - is_pure = 'true' + is_pure = "true" default_pyver = [PYVER] - default_abi = ['none'] - default_arch = ['any'] + default_abi = ["none"] + default_arch = ["any"] - self.pyver = tags.get('pyver', default_pyver) - self.abi = tags.get('abi', default_abi) - self.arch = tags.get('arch', default_arch) + self.pyver = tags.get("pyver", default_pyver) + self.abi = tags.get("abi", default_abi) + self.arch = tags.get("arch", default_arch) libdir = paths[libkey] - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver + name_ver = "%s-%s" % (self.name, self.version) + data_dir = "%s.data" % name_ver + info_dir = "%s.dist-info" % name_ver archive_paths = [] # First, stuff which is not in site-packages - for key in ('data', 'headers', 'scripts'): + for key in ("data", "headers", "scripts"): if key not in paths: continue path = paths[key] @@ -411,11 +427,11 @@ class Wheel(object): rp = os.path.relpath(p, path) ap = to_posix(os.path.join(data_dir, key, rp)) archive_paths.append((ap, p)) - if key == 'scripts' and not p.endswith('.exe'): - with open(p, 'rb') as f: + if key == "scripts" and not p.endswith(".exe"): + with open(p, "rb") as f: data = f.read() data = self.process_shebang(data) - with open(p, 'wb') as f: + with open(p, "wb") as f: f.write(data) # Now, stuff which is in site-packages, other than the @@ -428,15 +444,15 @@ class Wheel(object): # and skip it for now for i, dn in enumerate(dirs): dn = fsdecode(dn) - if dn.endswith('.dist-info'): + if dn.endswith(".dist-info"): distinfo = os.path.join(root, dn) del dirs[i] break - assert distinfo, '.dist-info directory expected, not found' + assert distinfo, ".dist-info directory expected, not found" for fn in files: # comment out next suite to leave .pyc files in - if fsdecode(fn).endswith(('.pyc', '.pyo')): + if fsdecode(fn).endswith((".pyc", ".pyo")): continue p = os.path.join(root, fn) rp = to_posix(os.path.relpath(p, path)) @@ -445,25 +461,25 @@ class Wheel(object): # Now distinfo. It may contain subdirectories (e.g. PEP 639) for root, _, files in os.walk(distinfo): for fn in files: - if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): + if fn not in ("RECORD", "INSTALLER", "SHARED", "WHEEL"): p = fsdecode(os.path.join(root, fn)) r = os.path.relpath(root, distinfo) ap = to_posix(os.path.normpath(os.path.join(info_dir, r, fn))) archive_paths.append((ap, p)) wheel_metadata = [ - 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), - 'Generator: distlib %s' % __version__, - 'Root-Is-Purelib: %s' % is_pure, + "Wheel-Version: %d.%d" % (wheel_version or self.wheel_version), + "Generator: distlib %s" % __version__, + "Root-Is-Purelib: %s" % is_pure, ] if self.buildver: - wheel_metadata.append('Build: %s' % self.buildver) + wheel_metadata.append("Build: %s" % self.buildver) for pyver, abi, arch in self.tags: - wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) - p = os.path.join(distinfo, 'WHEEL') - with open(p, 'w') as f: - f.write('\n'.join(wheel_metadata)) - ap = to_posix(os.path.join(info_dir, 'WHEEL')) + wheel_metadata.append("Tag: %s-%s-%s" % (pyver, abi, arch)) + p = os.path.join(distinfo, "WHEEL") + with open(p, "w") as f: + f.write("\n".join(wheel_metadata)) + ap = to_posix(os.path.join(info_dir, "WHEEL")) archive_paths.append((ap, p)) # sort the entries by archive path. Not needed by any spec, but it @@ -472,8 +488,8 @@ class Wheel(object): # and keep the dist-info stuff at the end. def sorter(t): ap = t[0] - n = ap.count('/') - if '.dist-info' in ap: + n = ap.count("/") + if ".dist-info" in ap: n += 10000 return (n, ap) @@ -501,7 +517,7 @@ class Wheel(object): # https://github.com/pypa/wheel/issues/287 # https://github.com/pypa/wheel/pull/289 # - return arcname.endswith(('/', '/RECORD.jws')) + return arcname.endswith(("/", "/RECORD.jws")) def install(self, paths, maker, **kwargs): """ @@ -521,34 +537,34 @@ class Wheel(object): """ dry_run = maker.dry_run - warner = kwargs.get('warner') - lib_only = kwargs.get('lib_only', False) - bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False) + warner = kwargs.get("warner") + lib_only = kwargs.get("lib_only", False) + bc_hashed_invalidation = kwargs.get("bytecode_hashed_invalidation", False) pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver + name_ver = "%s-%s" % (self.name, self.version) + data_dir = "%s.data" % name_ver + info_dir = "%s.dist-info" % name_ver metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') + wheel_metadata_name = posixpath.join(info_dir, "WHEEL") + record_name = posixpath.join(info_dir, "RECORD") - wrapper = codecs.getreader('utf-8') + wrapper = codecs.getreader("utf-8") - with ZipFile(pathname, 'r') as zf: + with ZipFile(pathname, "r") as zf: with zf.open(wheel_metadata_name) as bwf: wf = wrapper(bwf) message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) + wv = message["Wheel-Version"].split(".", 1) file_version = tuple([int(i) for i in wv]) if (file_version != self.wheel_version) and warner: warner(self.wheel_version, file_version) - if message['Root-Is-Purelib'] == 'true': - libdir = paths['purelib'] + if message["Root-Is-Purelib"] == "true": + libdir = paths["purelib"] else: - libdir = paths['platlib'] + libdir = paths["platlib"] records = {} with zf.open(record_name) as bf: @@ -557,9 +573,9 @@ class Wheel(object): p = row[0] records[p] = row - data_pfx = posixpath.join(data_dir, '') - info_pfx = posixpath.join(info_dir, '') - script_pfx = posixpath.join(data_dir, 'scripts', '') + data_pfx = posixpath.join(data_dir, "") + info_pfx = posixpath.join(info_dir, "") + script_pfx = posixpath.join(data_dir, "scripts", "") # make a new instance rather than a copy of maker's, # as we mutate it @@ -583,29 +599,31 @@ class Wheel(object): if isinstance(arcname, text_type): u_arcname = arcname else: - u_arcname = arcname.decode('utf-8') + u_arcname = arcname.decode("utf-8") if self.skip_entry(u_arcname): continue row = records[u_arcname] if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) + raise DistlibException("size mismatch for " "%s" % u_arcname) if row[1]: - kind, value = row[1].split('=', 1) + kind, value = row[1].split("=", 1) with zf.open(arcname) as bf: data = bf.read() _, digest = self.get_hash(data, kind) if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) + raise DistlibException( + "digest mismatch for " "%s" % arcname + ) if lib_only and u_arcname.startswith((info_pfx, data_pfx)): - logger.debug('lib_only: skipping %s', u_arcname) + logger.debug("lib_only: skipping %s", u_arcname) continue - is_script = (u_arcname.startswith(script_pfx) and not u_arcname.endswith('.exe')) + is_script = u_arcname.startswith( + script_pfx + ) and not u_arcname.endswith(".exe") if u_arcname.startswith(data_pfx): - _, where, rp = u_arcname.split('/', 2) + _, where, rp = u_arcname.split("/", 2) outfile = os.path.join(paths[where], convert_path(rp)) else: # meant for site-packages. @@ -619,27 +637,31 @@ class Wheel(object): # zf.extract(zinfo, libdir) should have worked, but didn't, # see https://www.thetopsites.net/article/53834422.shtml # So ... manually preserve permission bits as given in zinfo - if os.name == 'posix': + if os.name == "posix": # just set the normal permission bits os.chmod(outfile, (zinfo.external_attr >> 16) & 0x1FF) outfiles.append(outfile) # Double check the digest of the written file if not dry_run and row[1]: - with open(outfile, 'rb') as bf: + with open(outfile, "rb") as bf: data = bf.read() _, newdigest = self.get_hash(data, kind) if newdigest != digest: - raise DistlibException('digest mismatch ' - 'on write for ' - '%s' % outfile) - if bc and outfile.endswith('.py'): + raise DistlibException( + "digest mismatch " + "on write for " + "%s" % outfile + ) + if bc and outfile.endswith(".py"): try: - pyc = fileop.byte_compile(outfile, hashed_invalidation=bc_hashed_invalidation) + pyc = fileop.byte_compile( + outfile, hashed_invalidation=bc_hashed_invalidation + ) outfiles.append(pyc) except Exception: # Don't give up if byte-compilation fails, # but log it and perhaps warn the user - logger.warning('Byte-compilation failed', exc_info=True) + logger.warning("Byte-compilation failed", exc_info=True) else: fn = os.path.basename(convert_path(arcname)) workname = os.path.join(workdir, fn) @@ -653,7 +675,7 @@ class Wheel(object): outfiles.extend(filenames) if lib_only: - logger.debug('lib_only: returning None') + logger.debug("lib_only: returning None") dist = None else: # Generate scripts @@ -662,55 +684,58 @@ class Wheel(object): # any commands to generate. If this fails (e.g. because # of a legacy wheel), log a warning but don't give up. commands = None - file_version = self.info['Wheel-Version'] - if file_version == '1.0': + file_version = self.info["Wheel-Version"] + if file_version == "1.0": # Use legacy info - ep = posixpath.join(info_dir, 'entry_points.txt') + ep = posixpath.join(info_dir, "entry_points.txt") try: with zf.open(ep) as bwf: epdata = read_exports(bwf) commands = {} - for key in ('console', 'gui'): - k = '%s_scripts' % key + for key in ("console", "gui"): + k = "%s_scripts" % key if k in epdata: - commands['wrap_%s' % key] = d = {} + commands["wrap_%s" % key] = d = {} for v in epdata[k].values(): - s = '%s:%s' % (v.prefix, v.suffix) + s = "%s:%s" % (v.prefix, v.suffix) if v.flags: - s += ' [%s]' % ','.join(v.flags) + s += " [%s]" % ",".join(v.flags) d[v.name] = s except Exception: - logger.warning('Unable to read legacy script ' - 'metadata, so cannot generate ' - 'scripts') + logger.warning( + "Unable to read legacy script " + "metadata, so cannot generate " + "scripts" + ) else: try: with zf.open(metadata_name) as bwf: wf = wrapper(bwf) - commands = json.load(wf).get('extensions') + commands = json.load(wf).get("extensions") if commands: - commands = commands.get('python.commands') + commands = commands.get("python.commands") except Exception: - logger.warning('Unable to read JSON metadata, so ' - 'cannot generate scripts') + logger.warning( + "Unable to read JSON metadata, so " + "cannot generate scripts" + ) if commands: - console_scripts = commands.get('wrap_console', {}) - gui_scripts = commands.get('wrap_gui', {}) + console_scripts = commands.get("wrap_console", {}) + gui_scripts = commands.get("wrap_gui", {}) if console_scripts or gui_scripts: - script_dir = paths.get('scripts', '') + script_dir = paths.get("scripts", "") if not os.path.isdir(script_dir): - raise ValueError('Valid script path not ' - 'specified') + raise ValueError("Valid script path not " "specified") maker.target_dir = script_dir for k, v in console_scripts.items(): - script = '%s = %s' % (k, v) + script = "%s = %s" % (k, v) filenames = maker.make(script) fileop.set_executable_mode(filenames) if gui_scripts: - options = {'gui': True} + options = {"gui": True} for k, v in gui_scripts.items(): - script = '%s = %s' % (k, v) + script = "%s = %s" % (k, v) filenames = maker.make(script, options) fileop.set_executable_mode(filenames) @@ -719,18 +744,18 @@ class Wheel(object): # Write SHARED paths = dict(paths) # don't change passed in dict - del paths['purelib'] - del paths['platlib'] - paths['lib'] = libdir + del paths["purelib"] + del paths["platlib"] + paths["lib"] = libdir p = dist.write_shared_locations(paths, dry_run) if p: outfiles.append(p) # Write RECORD - dist.write_installed_files(outfiles, paths['prefix'], dry_run) + dist.write_installed_files(outfiles, paths["prefix"], dry_run) return dist except Exception: # pragma: no cover - logger.exception('installation failed.') + logger.exception("installation failed.") fileop.rollback() raise finally: @@ -740,18 +765,20 @@ class Wheel(object): global cache if cache is None: # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('dylib-cache'), '%s.%s' % sys.version_info[:2]) + base = os.path.join( + get_cache_base(), str("dylib-cache"), "%s.%s" % sys.version_info[:2] + ) cache = Cache(base) return cache def _get_extensions(self): pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - arcname = posixpath.join(info_dir, 'EXTENSIONS') - wrapper = codecs.getreader('utf-8') + name_ver = "%s-%s" % (self.name, self.version) + info_dir = "%s.dist-info" % name_ver + arcname = posixpath.join(info_dir, "EXTENSIONS") + wrapper = codecs.getreader("utf-8") result = [] - with ZipFile(pathname, 'r') as zf: + with ZipFile(pathname, "r") as zf: try: with zf.open(arcname) as bf: wf = wrapper(bf) @@ -793,13 +820,13 @@ class Wheel(object): def mount(self, append=False): pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) if not self.is_compatible(): - msg = 'Wheel %s not compatible with this Python.' % pathname + msg = "Wheel %s not compatible with this Python." % pathname raise DistlibException(msg) if not self.is_mountable(): - msg = 'Wheel %s is marked as not mountable.' % pathname + msg = "Wheel %s is marked as not mountable." % pathname raise DistlibException(msg) if pathname in sys.path: - logger.debug('%s already in path', pathname) + logger.debug("%s already in path", pathname) else: if append: sys.path.append(pathname) @@ -814,7 +841,7 @@ class Wheel(object): def unmount(self): pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) if pathname not in sys.path: - logger.debug('%s not in path', pathname) + logger.debug("%s not in path", pathname) else: sys.path.remove(pathname) if pathname in _hook.impure_wheels: @@ -825,17 +852,17 @@ class Wheel(object): def verify(self): pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) + name_ver = "%s-%s" % (self.name, self.version) # data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver + info_dir = "%s.dist-info" % name_ver # metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') + wheel_metadata_name = posixpath.join(info_dir, "WHEEL") + record_name = posixpath.join(info_dir, "RECORD") - wrapper = codecs.getreader('utf-8') + wrapper = codecs.getreader("utf-8") - with ZipFile(pathname, 'r') as zf: + with ZipFile(pathname, "r") as zf: with zf.open(wheel_metadata_name) as bwf: wf = wrapper(bwf) message_from_file(wf) @@ -855,29 +882,26 @@ class Wheel(object): if isinstance(arcname, text_type): u_arcname = arcname else: - u_arcname = arcname.decode('utf-8') + u_arcname = arcname.decode("utf-8") # See issue #115: some wheels have .. in their entries, but # in the filename ... e.g. __main__..py ! So the check is # updated to look for .. in the directory portions - p = u_arcname.split('/') - if '..' in p: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) + p = u_arcname.split("/") + if ".." in p: + raise DistlibException("invalid entry in " "wheel: %r" % u_arcname) if self.skip_entry(u_arcname): continue row = records[u_arcname] if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) + raise DistlibException("size mismatch for " "%s" % u_arcname) if row[1]: - kind, value = row[1].split('=', 1) + kind, value = row[1].split("=", 1) with zf.open(arcname) as bf: data = bf.read() _, digest = self.get_hash(data, kind) if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) + raise DistlibException("digest mismatch for " "%s" % arcname) def update(self, modifier, dest_dir=None, **kwargs): """ @@ -898,9 +922,9 @@ class Wheel(object): def get_version(path_map, info_dir): version = path = None - key = '%s/%s' % (info_dir, LEGACY_METADATA_FILENAME) + key = "%s/%s" % (info_dir, LEGACY_METADATA_FILENAME) if key not in path_map: - key = '%s/PKG-INFO' % info_dir + key = "%s/PKG-INFO" % info_dir if key in path_map: path = path_map[key] version = Metadata(path=path).version @@ -910,41 +934,43 @@ class Wheel(object): updated = None try: NormalizedVersion(version) - i = version.find('-') + i = version.find("-") if i < 0: - updated = '%s+1' % version + updated = "%s+1" % version else: - parts = [int(s) for s in version[i + 1:].split('.')] + parts = [int(s) for s in version[i + 1 :].split(".")] parts[-1] += 1 - updated = '%s+%s' % (version[:i], '.'.join(str(i) for i in parts)) + updated = "%s+%s" % (version[:i], ".".join(str(i) for i in parts)) except UnsupportedVersionError: - logger.debug('Cannot update non-compliant (PEP-440) ' - 'version %r', version) + logger.debug( + "Cannot update non-compliant (PEP-440) " "version %r", version + ) if updated: md = Metadata(path=path) md.version = updated legacy = path.endswith(LEGACY_METADATA_FILENAME) md.write(path=path, legacy=legacy) - logger.debug('Version updated from %r to %r', version, updated) + logger.debug("Version updated from %r to %r", version, updated) pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - record_name = posixpath.join(info_dir, 'RECORD') + name_ver = "%s-%s" % (self.name, self.version) + info_dir = "%s.dist-info" % name_ver + record_name = posixpath.join(info_dir, "RECORD") with tempdir() as workdir: - with ZipFile(pathname, 'r') as zf: + with ZipFile(pathname, "r") as zf: path_map = {} for zinfo in zf.infolist(): arcname = zinfo.filename if isinstance(arcname, text_type): u_arcname = arcname else: - u_arcname = arcname.decode('utf-8') + u_arcname = arcname.decode("utf-8") if u_arcname == record_name: continue - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) + if ".." in u_arcname: + raise DistlibException( + "invalid entry in " "wheel: %r" % u_arcname + ) zf.extract(zinfo, workdir) path = os.path.join(workdir, convert_path(u_arcname)) path_map[u_arcname] = path @@ -961,11 +987,13 @@ class Wheel(object): update_version(current_version, path) # Decide where the new wheel goes. if dest_dir is None: - fd, newpath = tempfile.mkstemp(suffix='.whl', prefix='wheel-update-', dir=workdir) + fd, newpath = tempfile.mkstemp( + suffix=".whl", prefix="wheel-update-", dir=workdir + ) os.close(fd) else: if not os.path.isdir(dest_dir): - raise DistlibException('Not a directory: %r' % dest_dir) + raise DistlibException("Not a directory: %r" % dest_dir) newpath = os.path.join(dest_dir, self.filename) archive_paths = list(path_map.items()) distinfo = os.path.join(workdir, info_dir) @@ -979,10 +1007,11 @@ class Wheel(object): def _get_glibc_version(): import platform + ver = platform.libc_ver() result = [] - if ver[0] == 'glibc': - for s in ver[1].split('.'): + if ver[0] == "glibc": + for s in ver[1].split("."): result.append(int(s) if s.isdigit() else 0) result = tuple(result) return result @@ -992,50 +1021,50 @@ def compatible_tags(): """ Return (pyver, abi, arch) tuples compatible with this Python. """ + class _Version: def __init__(self, major, minor): self.major = major self.major_minor = (major, minor) - self.string = ''.join((str(major), str(minor))) + self.string = "".join((str(major), str(minor))) def __str__(self): return self.string - versions = [ _Version(sys.version_info.major, minor_version) for minor_version in range(sys.version_info.minor, -1, -1) ] abis = [] for suffix in _get_suffixes(): - if suffix.startswith('.abi'): - abis.append(suffix.split('.', 2)[1]) + if suffix.startswith(".abi"): + abis.append(suffix.split(".", 2)[1]) abis.sort() - if ABI != 'none': + if ABI != "none": abis.insert(0, ABI) - abis.append('none') + abis.append("none") result = [] arches = [ARCH] - if sys.platform == 'darwin': - m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) + if sys.platform == "darwin": + m = re.match(r"(\w+)_(\d+)_(\d+)_(\w+)$", ARCH) if m: name, major, minor, arch = m.groups() minor = int(minor) matches = [arch] - if arch in ('i386', 'ppc'): - matches.append('fat') - if arch in ('i386', 'ppc', 'x86_64'): - matches.append('fat3') - if arch in ('ppc64', 'x86_64'): - matches.append('fat64') - if arch in ('i386', 'x86_64'): - matches.append('intel') - if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): - matches.append('universal') + if arch in ("i386", "ppc"): + matches.append("fat") + if arch in ("i386", "ppc", "x86_64"): + matches.append("fat3") + if arch in ("ppc64", "x86_64"): + matches.append("fat64") + if arch in ("i386", "x86_64"): + matches.append("intel") + if arch in ("i386", "x86_64", "intel", "ppc", "ppc64"): + matches.append("universal") while minor >= 0: for match in matches: - s = '%s_%s_%s_%s' % (name, major, minor, match) + s = "%s_%s_%s_%s" % (name, major, minor, match) if s != ARCH: # already there arches.append(s) minor -= 1 @@ -1048,41 +1077,64 @@ def compatible_tags(): if i == 0: add_abis = abis - if IMP_PREFIX == 'cp' and version_object.major_minor >= (3, 2): - limited_api_abi = 'abi' + str(version_object.major) + if IMP_PREFIX == "cp" and version_object.major_minor >= (3, 2): + limited_api_abi = "abi" + str(version_object.major) if limited_api_abi not in add_abis: add_abis.append(limited_api_abi) for abi in add_abis: for arch in arches: - result.append((''.join((IMP_PREFIX, version)), abi, arch)) + result.append(("".join((IMP_PREFIX, version)), abi, arch)) # manylinux - if abi != 'none' and sys.platform.startswith('linux'): - arch = arch.replace('linux_', '') + if abi != "none" and sys.platform.startswith("linux"): + arch = arch.replace("linux_", "") parts = _get_glibc_version() if len(parts) == 2: if parts >= (2, 5): - result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux1_%s' % arch)) + result.append( + ( + "".join((IMP_PREFIX, version)), + abi, + "manylinux1_%s" % arch, + ) + ) if parts >= (2, 12): - result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux2010_%s' % arch)) + result.append( + ( + "".join((IMP_PREFIX, version)), + abi, + "manylinux2010_%s" % arch, + ) + ) if parts >= (2, 17): - result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux2014_%s' % arch)) - result.append((''.join( - (IMP_PREFIX, version)), abi, 'manylinux_%s_%s_%s' % (parts[0], parts[1], arch))) + result.append( + ( + "".join((IMP_PREFIX, version)), + abi, + "manylinux2014_%s" % arch, + ) + ) + result.append( + ( + "".join((IMP_PREFIX, version)), + abi, + "manylinux_%s_%s_%s" % (parts[0], parts[1], arch), + ) + ) # where no ABI / arch dependency, but IMP_PREFIX dependency for i, version_object in enumerate(versions): version = str(version_object) - result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) + result.append(("".join((IMP_PREFIX, version)), "none", "any")) if i == 0: - result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) + result.append(("".join((IMP_PREFIX, version[0])), "none", "any")) # no IMP_PREFIX, ABI or arch dependency for i, version_object in enumerate(versions): version = str(version_object) - result.append((''.join(('py', version)), 'none', 'any')) + result.append(("".join(("py", version)), "none", "any")) if i == 0: - result.append((''.join(('py', version[0])), 'none', 'any')) + result.append(("".join(("py", version[0])), "none", "any")) return set(result) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/__init__.py index ce3c8e8..30e2318 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/__init__.py @@ -17,7 +17,9 @@ from ._error import Timeout try: from ._read_write import ReadWriteLock -except ImportError: # sqlite3 may be unavailable if Python was built without it or the C library is missing +except ( + ImportError +): # sqlite3 may be unavailable if Python was built without it or the C library is missing ReadWriteLock = None # type: ignore[assignment, misc] from ._soft import SoftFileLock diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_api.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_api.py index 3bcc94c..418a45b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_api.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_api.py @@ -99,7 +99,9 @@ class FileLockContext: lock_file_fd: int | None = None #: The lock counter is used for implementing the nested locking mechanism. - lock_counter: int = 0 # When the lock is acquired is increased and the lock is only released, when this value is 0 + lock_counter: int = ( + 0 # When the lock is acquired is increased and the lock is only released, when this value is 0 + ) class ThreadLocalFileContext(FileLockContext, local): @@ -145,7 +147,10 @@ class FileLockMeta(ABCMeta): # parameters do not match; raise error msg = "Singleton lock instances cannot be initialized with differing arguments" msg += "\nNon-matching arguments: " - for param_name, (passed_param, set_param) in non_matching_params.items(): + for param_name, ( + passed_param, + set_param, + ) in non_matching_params.items(): msg += f"\n\t{param_name} (existing lock has {set_param} but {passed_param} was passed)" raise ValueError(msg) @@ -165,7 +170,9 @@ class FileLockMeta(ABCMeta): } present_params = inspect.signature(cls.__init__).parameters - init_params = {key: value for key, value in all_params.items() if key in present_params} + init_params = { + key: value for key, value in all_params.items() if key in present_params + } instance = super().__call__(lock_file, **init_params) @@ -239,7 +246,9 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): "poll_interval": poll_interval, "lifetime": lifetime, } - self._context: FileLockContext = (ThreadLocalFileContext if thread_local else FileLockContext)(**kwargs) + self._context: FileLockContext = ( + ThreadLocalFileContext if thread_local else FileLockContext + )(**kwargs) def is_thread_local(self) -> bool: """:returns: a flag indicating if this lock is thread local or not""" @@ -403,10 +412,14 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): start_time: float, ) -> bool: if blocking is False: - _LOGGER.debug("Failed to immediately acquire lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Failed to immediately acquire lock %s on %s", lock_id, lock_filename + ) return True if cancel_check is not None and cancel_check(): - _LOGGER.debug("Cancellation requested for lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Cancellation requested for lock %s on %s", lock_id, lock_filename + ) return True if 0 <= timeout < time.perf_counter() - start_time: _LOGGER.debug("Timeout on acquiring lock %s on %s", lock_id, lock_filename) @@ -470,7 +483,9 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): warnings.warn(msg, DeprecationWarning, stacklevel=2) poll_interval = poll_intervall - poll_interval = poll_interval if poll_interval is not None else self._context.poll_interval + poll_interval = ( + poll_interval if poll_interval is not None else self._context.poll_interval + ) # Increment the number right at the beginning. We can still undo it, if something fails. self._context.lock_counter += 1 @@ -479,8 +494,17 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): lock_filename = self.lock_file canonical = _canonical(lock_filename) - would_block = self._context.lock_counter == 1 and not self.is_locked and timeout < 0 and blocking - if would_block and (existing := _registry.held.get(canonical)) is not None and existing != lock_id: + would_block = ( + self._context.lock_counter == 1 + and not self.is_locked + and timeout < 0 + and blocking + ) + if ( + would_block + and (existing := _registry.held.get(canonical)) is not None + and existing != lock_id + ): self._context.lock_counter -= 1 msg = ( f"Deadlock: lock '{lock_filename}' is already held by a different " @@ -494,7 +518,9 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): while True: if not self.is_locked: self._try_break_expired_lock() - _LOGGER.debug("Attempting to acquire lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Attempting to acquire lock %s on %s", lock_id, lock_filename + ) self._acquire() if self.is_locked: _LOGGER.debug("Lock %s acquired on %s", lock_id, lock_filename) @@ -534,7 +560,9 @@ class BaseFileLock(contextlib.ContextDecorator, metaclass=FileLockMeta): if self._context.lock_counter == 0 or force: lock_id, lock_filename = id(self), self.lock_file - _LOGGER.debug("Attempting to release lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Attempting to release lock %s on %s", lock_id, lock_filename + ) self._release() self._context.lock_counter = 0 _registry.held.pop(_canonical(lock_filename), None) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_read_write.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_read_write.py index bf99433..ded97c0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_read_write.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_read_write.py @@ -51,7 +51,11 @@ def timeout_for_sqlite(timeout: float, *, blocking: bool, already_waited: float) remaining = max(timeout - already_waited, 0) if timeout > 0 else timeout timeout_ms = int(remaining * 1000) if timeout_ms > _MAX_SQLITE_TIMEOUT_MS or timeout_ms < 0: - _LOGGER.warning("timeout %s is too large for SQLite, using %s ms instead", timeout, _MAX_SQLITE_TIMEOUT_MS) + _LOGGER.warning( + "timeout %s is too large for SQLite, using %s ms instead", + timeout, + _MAX_SQLITE_TIMEOUT_MS, + ) return _MAX_SQLITE_TIMEOUT_MS return timeout_ms @@ -77,12 +81,16 @@ class _ReadWriteLockMeta(type): is_singleton: bool = True, ) -> ReadWriteLock: if not is_singleton: - return super().__call__(lock_file, timeout, blocking=blocking, is_singleton=is_singleton) + return super().__call__( + lock_file, timeout, blocking=blocking, is_singleton=is_singleton + ) normalized = pathlib.Path(lock_file).resolve() with cls._instances_lock: if normalized not in cls._instances: - instance = super().__call__(lock_file, timeout, blocking=blocking, is_singleton=is_singleton) + instance = super().__call__( + lock_file, timeout, blocking=blocking, is_singleton=is_singleton + ) cls._instances[normalized] = instance else: instance = cls._instances[normalized] @@ -122,7 +130,11 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): @classmethod def get_lock( - cls, lock_file: str | os.PathLike[str], timeout: float = -1, *, blocking: bool = True + cls, + lock_file: str | os.PathLike[str], + timeout: float = -1, + *, + blocking: bool = True, ) -> ReadWriteLock: """ Return the singleton :class:`ReadWriteLock` for *lock_file*. @@ -149,8 +161,12 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): self.lock_file = os.fspath(lock_file) self.timeout = timeout self.blocking = blocking - self._transaction_lock = threading.Lock() # serializes the (possibly blocking) SQLite transaction work - self._internal_lock = threading.Lock() # protects _lock_level / _current_mode updates and rollback + self._transaction_lock = ( + threading.Lock() + ) # serializes the (possibly blocking) SQLite transaction work + self._internal_lock = ( + threading.Lock() + ) # protects _lock_level / _current_mode updates and rollback self._lock_level = 0 self._current_mode: Literal["read", "write"] | None = None self._write_thread_id: int | None = None @@ -167,7 +183,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): if not acquired: raise Timeout(self.lock_file) from None - def _validate_reentrant(self, mode: Literal["read", "write"], opposite: str, direction: str) -> AcquireReturnProxy: + def _validate_reentrant( + self, mode: Literal["read", "write"], opposite: str, direction: str + ) -> AcquireReturnProxy: if self._current_mode != mode: msg = ( f"Cannot acquire {mode} lock on {self.lock_file} (lock id: {id(self)}): " @@ -184,10 +202,17 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): return AcquireReturnProxy(lock=self) def _configure_and_begin( - self, mode: Literal["read", "write"], timeout: float, *, blocking: bool, start_time: float + self, + mode: Literal["read", "write"], + timeout: float, + *, + blocking: bool, + start_time: float, ) -> None: waited = time.perf_counter() - start_time - timeout_ms = timeout_for_sqlite(timeout, blocking=blocking, already_waited=waited) + timeout_ms = timeout_for_sqlite( + timeout, blocking=blocking, already_waited=waited + ) self._con.execute(f"PRAGMA busy_timeout={timeout_ms};").close() # Use legacy journal mode (not WAL) because WAL does not block readers when a concurrent EXCLUSIVE # write transaction is active, making read-write locking impossible without modifying table data. @@ -199,16 +224,24 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): self._con.execute("PRAGMA journal_mode=MEMORY;").close() # Recompute remaining timeout after the potentially blocking journal_mode pragma. waited = time.perf_counter() - start_time - if (recomputed := timeout_for_sqlite(timeout, blocking=blocking, already_waited=waited)) != timeout_ms: + if ( + recomputed := timeout_for_sqlite( + timeout, blocking=blocking, already_waited=waited + ) + ) != timeout_ms: self._con.execute(f"PRAGMA busy_timeout={recomputed};").close() - stmt = "BEGIN EXCLUSIVE TRANSACTION;" if mode == "write" else "BEGIN TRANSACTION;" + stmt = ( + "BEGIN EXCLUSIVE TRANSACTION;" if mode == "write" else "BEGIN TRANSACTION;" + ) self._con.execute(stmt).close() if mode == "read": # A SELECT is needed to force SQLite to actually acquire the SHARED lock on the database. # https://www.sqlite.org/lockingv3.html#transaction_control self._con.execute("SELECT name FROM sqlite_schema LIMIT 1;").close() - def _acquire(self, mode: Literal["read", "write"], timeout: float, *, blocking: bool) -> AcquireReturnProxy: + def _acquire( + self, mode: Literal["read", "write"], timeout: float, *, blocking: bool + ) -> AcquireReturnProxy: opposite = "write" if mode == "read" else "read" direction = "downgrade" if mode == "read" else "upgrade" @@ -224,7 +257,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): if self._lock_level > 0: return self._validate_reentrant(mode, opposite, direction) - self._configure_and_begin(mode, timeout, blocking=blocking, start_time=start_time) + self._configure_and_begin( + mode, timeout, blocking=blocking, start_time=start_time + ) with self._internal_lock: self._current_mode = mode @@ -241,7 +276,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): finally: self._transaction_lock.release() - def acquire_read(self, timeout: float = -1, *, blocking: bool = True) -> AcquireReturnProxy: + def acquire_read( + self, timeout: float = -1, *, blocking: bool = True + ) -> AcquireReturnProxy: """ Acquire a shared read lock. @@ -259,7 +296,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): """ return self._acquire("read", timeout, blocking=blocking) - def acquire_write(self, timeout: float = -1, *, blocking: bool = True) -> AcquireReturnProxy: + def acquire_write( + self, timeout: float = -1, *, blocking: bool = True + ) -> AcquireReturnProxy: """ Acquire an exclusive write lock. @@ -309,7 +348,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): self._con.rollback() @contextmanager - def read_lock(self, timeout: float | None = None, *, blocking: bool | None = None) -> Generator[None]: + def read_lock( + self, timeout: float | None = None, *, blocking: bool | None = None + ) -> Generator[None]: """ Context manager that acquires and releases a shared read lock. @@ -330,7 +371,9 @@ class ReadWriteLock(metaclass=_ReadWriteLockMeta): self.release() @contextmanager - def write_lock(self, timeout: float | None = None, *, blocking: bool | None = None) -> Generator[None]: + def write_lock( + self, timeout: float | None = None, *, blocking: bool | None = None + ) -> Generator[None]: """ Context manager that acquires and releases an exclusive write lock. diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_soft.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_soft.py index 3bec57a..de49715 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_soft.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_soft.py @@ -44,10 +44,13 @@ class SoftFileLock(BaseFileLock): file_handler = os.open(self.lock_file, flags, self._open_mode()) except OSError as exception: if not ( - exception.errno == EEXIST or (exception.errno == EACCES and sys.platform == "win32") + exception.errno == EEXIST + or (exception.errno == EACCES and sys.platform == "win32") ): # pragma: win32 no cover raise - if exception.errno == EEXIST and sys.platform != "win32": # pragma: win32 no cover + if ( + exception.errno == EEXIST and sys.platform != "win32" + ): # pragma: win32 no cover self._try_break_stale_lock() else: self._write_lock_info(file_handler) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_unix.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_unix.py index 7f8e8b0..55df406 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_unix.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_unix.py @@ -89,10 +89,17 @@ else: # pragma: win32 no cover def _fallback_to_soft_lock(self) -> None: from ._soft import SoftFileLock # noqa: PLC0415 - warnings.warn("flock not supported on this filesystem, falling back to SoftFileLock", stacklevel=2) + warnings.warn( + "flock not supported on this filesystem, falling back to SoftFileLock", + stacklevel=2, + ) from .asyncio import AsyncSoftFileLock, BaseAsyncFileLock # noqa: PLC0415 - self.__class__ = AsyncSoftFileLock if isinstance(self, BaseAsyncFileLock) else SoftFileLock + self.__class__ = ( + AsyncSoftFileLock + if isinstance(self, BaseAsyncFileLock) + else SoftFileLock + ) def _release(self) -> None: fd = cast("int", self._context.lock_file_fd) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_util.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_util.py index 6701523..c5f8aca 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_util.py @@ -24,7 +24,9 @@ def raise_on_not_writable_file(filename: str) -> None: except OSError: return # swallow does not exist or other errors - if file_stat.st_mtime != 0: # if os.stat returns but modification is zero that's an invalid os.stat - ignore it + if ( + file_stat.st_mtime != 0 + ): # if os.stat returns but modification is zero that's an invalid os.stat - ignore it if not (file_stat.st_mode & stat.S_IWUSR): raise PermissionError(EACCES, "Permission denied", filename) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/_windows.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/_windows.py index 23bff36..0dd53f2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/_windows.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/_windows.py @@ -55,7 +55,9 @@ if sys.platform == "win32": # pragma: win32 cover # Security check: Refuse to open reparse points (symlinks, junctions) # This prevents TOCTOU symlink attacks (CVE-TBD) if _is_reparse_point(self.lock_file): - msg = f"Lock file is a reparse point (symlink/junction): {self.lock_file}" + msg = ( + f"Lock file is a reparse point (symlink/junction): {self.lock_file}" + ) raise OSError(msg) flags = ( diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/asyncio.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/asyncio.py index 81743ad..0642759 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/asyncio.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/asyncio.py @@ -168,9 +168,9 @@ class BaseAsyncFileLock(BaseFileLock, metaclass=AsyncFileLockMeta): "run_in_executor": run_in_executor, "executor": executor, } - self._context: AsyncFileLockContext = (AsyncThreadLocalFileContext if thread_local else AsyncFileLockContext)( - **kwargs - ) + self._context: AsyncFileLockContext = ( + AsyncThreadLocalFileContext if thread_local else AsyncFileLockContext + )(**kwargs) @property def run_in_executor(self) -> bool: @@ -256,7 +256,9 @@ class BaseAsyncFileLock(BaseFileLock, metaclass=AsyncFileLockMeta): while True: if not self.is_locked: self._try_break_expired_lock() - _LOGGER.debug("Attempting to acquire lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Attempting to acquire lock %s on %s", lock_id, lock_filename + ) await self._run_internal_method(self._acquire) if self.is_locked: _LOGGER.debug("Lock %s acquired on %s", lock_id, lock_filename) @@ -278,7 +280,9 @@ class BaseAsyncFileLock(BaseFileLock, metaclass=AsyncFileLockMeta): raise return AsyncAcquireReturnProxy(lock=self) - async def release(self, force: bool = False) -> None: # ty: ignore[invalid-method-override] # noqa: FBT001, FBT002 + async def release( + self, force: bool = False + ) -> None: # ty: ignore[invalid-method-override] # noqa: FBT001, FBT002 """ Release the file lock. The lock is only completely released when the lock counter reaches 0. The lock file itself is not automatically deleted. @@ -292,7 +296,9 @@ class BaseAsyncFileLock(BaseFileLock, metaclass=AsyncFileLockMeta): if self._context.lock_counter == 0 or force: lock_id, lock_filename = id(self), self.lock_file - _LOGGER.debug("Attempting to release lock %s on %s", lock_id, lock_filename) + _LOGGER.debug( + "Attempting to release lock %s on %s", lock_id, lock_filename + ) await self._run_internal_method(self._release) self._context.lock_counter = 0 _LOGGER.debug("Lock %s released on %s", lock_id, lock_filename) diff --git a/PPE2/.venv/lib/python3.12/site-packages/filelock/version.py b/PPE2/.venv/lib/python3.12/site-packages/filelock/version.py index 9702f54..0d33126 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/filelock/version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/filelock/version.py @@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '3.24.3' +__version__ = version = "3.24.3" __version_tuple__ = version_tuple = (3, 24, 3) __commit_id__ = commit_id = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify-2.6.16.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/identify-2.6.16.dist-info/WHEEL index d02d2a2..a1c809e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify-2.6.16.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/identify-2.6.16.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: setuptools (75.5.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify/cli.py b/PPE2/.venv/lib/python3.12/site-packages/identify/cli.py index 98c77bd..b8ded5f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify/cli.py +++ b/PPE2/.venv/lib/python3.12/site-packages/identify/cli.py @@ -9,8 +9,8 @@ from identify import identify def main(argv: Sequence[str] | None = None) -> int: parser = argparse.ArgumentParser() - parser.add_argument('--filename-only', action='store_true') - parser.add_argument('path') + parser.add_argument("--filename-only", action="store_true") + parser.add_argument("path") args = parser.parse_args(argv) if args.filename_only: @@ -31,5 +31,5 @@ def main(argv: Sequence[str] | None = None) -> int: return 0 -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify/extensions.py b/PPE2/.venv/lib/python3.12/site-packages/identify/extensions.py index 3a50915..1611c6d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify/extensions.py +++ b/PPE2/.venv/lib/python3.12/site-packages/identify/extensions.py @@ -1,420 +1,421 @@ from __future__ import annotations + EXTENSIONS = { - 'adoc': {'text', 'asciidoc'}, - 'ai': {'binary', 'adobe-illustrator'}, - 'aj': {'text', 'aspectj'}, - 'asciidoc': {'text', 'asciidoc'}, - 'apinotes': {'text', 'apinotes'}, - 'asar': {'binary', 'asar'}, - 'asm': {'text', 'asm'}, - 'astro': {'text', 'astro'}, - 'avif': {'binary', 'image', 'avif'}, - 'avsc': {'text', 'avro-schema'}, - 'bash': {'text', 'shell', 'bash'}, - 'bat': {'text', 'batch'}, - 'bats': {'text', 'shell', 'bash', 'bats'}, - 'bazel': {'text', 'bazel'}, - 'bb': {'text', 'bitbake'}, - 'bbappend': {'text', 'bitbake'}, - 'bbclass': {'text', 'bitbake'}, - 'beancount': {'text', 'beancount'}, - 'bib': {'text', 'bib'}, - 'bmp': {'binary', 'image', 'bitmap'}, - 'bz2': {'binary', 'bzip2'}, - 'bz3': {'binary', 'bzip3'}, - 'bzl': {'text', 'bazel'}, - 'c': {'text', 'c'}, - 'c++': {'text', 'c++'}, - 'c++m': {'text', 'c++'}, - 'cc': {'text', 'c++'}, - 'ccm': {'text', 'c++'}, - 'cfg': {'text'}, - 'chs': {'text', 'c2hs'}, - 'cjs': {'text', 'javascript'}, - 'clj': {'text', 'clojure'}, - 'cljc': {'text', 'clojure'}, - 'cljs': {'text', 'clojure', 'clojurescript'}, - 'cmake': {'text', 'cmake'}, - 'cnf': {'text'}, - 'coffee': {'text', 'coffee'}, - 'conf': {'text'}, - 'cpp': {'text', 'c++'}, - 'cppm': {'text', 'c++'}, - 'cr': {'text', 'crystal'}, - 'crt': {'text', 'pem'}, - 'cs': {'text', 'c#'}, - 'csproj': {'text', 'xml', 'csproj', 'msbuild'}, - 'csh': {'text', 'shell', 'csh'}, - 'cson': {'text', 'cson'}, - 'css': {'text', 'css'}, - 'csv': {'text', 'csv'}, - 'csx': {'text', 'c#', 'c#script'}, - 'cu': {'text', 'cuda'}, - 'cue': {'text', 'cue'}, - 'cuh': {'text', 'cuda'}, - 'cxx': {'text', 'c++'}, - 'cxxm': {'text', 'c++'}, - 'cylc': {'text', 'cylc'}, - 'dart': {'text', 'dart'}, - 'dbc': {'text', 'dbc'}, - 'def': {'text', 'def'}, - 'dll': {'binary'}, - 'dtd': {'text', 'dtd'}, - 'ear': {'binary', 'zip', 'jar'}, - 'edn': {'text', 'clojure', 'edn'}, - 'ejs': {'text', 'ejs'}, - 'ejson': {'text', 'json', 'ejson'}, - 'elm': {'text', 'elm'}, - 'env': {'text', 'dotenv'}, - 'eot': {'binary', 'eot'}, - 'eps': {'binary', 'eps'}, - 'erb': {'text', 'erb'}, - 'erl': {'text', 'erlang'}, - 'ex': {'text', 'elixir'}, - 'exe': {'binary'}, - 'exs': {'text', 'elixir'}, - 'eyaml': {'text', 'yaml'}, - 'f03': {'text', 'fortran'}, - 'f08': {'text', 'fortran'}, - 'f90': {'text', 'fortran'}, - 'f95': {'text', 'fortran'}, - 'feature': {'text', 'gherkin'}, - 'fish': {'text', 'fish'}, - 'fits': {'binary', 'fits'}, - 'fs': {'text', 'f#'}, - 'fsproj': {'text', 'xml', 'fsproj', 'msbuild'}, - 'fsx': {'text', 'f#', 'f#script'}, - 'gd': {'text', 'gdscript'}, - 'gemspec': {'text', 'ruby'}, - 'geojson': {'text', 'geojson', 'json'}, - 'ggb': {'binary', 'zip', 'ggb'}, - 'gif': {'binary', 'image', 'gif'}, - 'gleam': {'text', 'gleam'}, - 'go': {'text', 'go'}, - 'gotmpl': {'text', 'gotmpl'}, - 'gpx': {'text', 'gpx', 'xml'}, - 'graphql': {'text', 'graphql'}, - 'gradle': {'text', 'groovy'}, - 'groovy': {'text', 'groovy'}, - 'gyb': {'text', 'gyb'}, - 'gyp': {'text', 'gyp', 'python'}, - 'gypi': {'text', 'gyp', 'python'}, - 'gz': {'binary', 'gzip'}, - 'h': {'text', 'header', 'c', 'c++'}, - 'hbs': {'text', 'handlebars'}, - 'hcl': {'text', 'hcl'}, - 'hh': {'text', 'header', 'c++'}, - 'hpp': {'text', 'header', 'c++'}, - 'hrl': {'text', 'erlang'}, - 'hs': {'text', 'haskell'}, - 'htm': {'text', 'html'}, - 'html': {'text', 'html'}, - 'hxx': {'text', 'header', 'c++'}, - 'icns': {'binary', 'icns'}, - 'ico': {'binary', 'icon'}, - 'ics': {'text', 'icalendar'}, - 'idl': {'text', 'idl'}, - 'idr': {'text', 'idris'}, - 'inc': {'text', 'inc'}, - 'ini': {'text', 'ini'}, - 'inl': {'text', 'inl', 'c++'}, - 'ino': {'text', 'ino', 'c++'}, - 'inx': {'text', 'xml', 'inx'}, - 'ipynb': {'text', 'jupyter', 'json'}, - 'ipp': {'text', 'c++'}, - 'ipxe': {'text', 'ipxe'}, - 'ixx': {'text', 'c++'}, - 'j2': {'text', 'jinja'}, - 'jade': {'text', 'jade'}, - 'jar': {'binary', 'zip', 'jar'}, - 'java': {'text', 'java'}, - 'jenkins': {'text', 'groovy', 'jenkins'}, - 'jenkinsfile': {'text', 'groovy', 'jenkins'}, - 'jinja': {'text', 'jinja'}, - 'jinja2': {'text', 'jinja'}, - 'jl': {'text', 'julia'}, - 'jpeg': {'binary', 'image', 'jpeg'}, - 'jpg': {'binary', 'image', 'jpeg'}, - 'js': {'text', 'javascript'}, - 'json': {'text', 'json'}, - 'jsonld': {'text', 'json', 'jsonld'}, - 'jsonnet': {'text', 'jsonnet'}, - 'json5': {'text', 'json5'}, - 'jsx': {'text', 'jsx'}, - 'key': {'text', 'pem'}, - 'kml': {'text', 'kml', 'xml'}, - 'kt': {'text', 'kotlin'}, - 'kts': {'text', 'kotlin'}, - 'lean': {'text', 'lean'}, - 'lektorproject': {'text', 'ini', 'lektorproject'}, - 'less': {'text', 'less'}, - 'lfm': {'text', 'lazarus', 'lazarus-form'}, - 'lhs': {'text', 'literate-haskell'}, - 'libsonnet': {'text', 'jsonnet'}, - 'lidr': {'text', 'idris'}, - 'liquid': {'text', 'liquid'}, - 'lpi': {'text', 'lazarus', 'xml'}, - 'lpr': {'text', 'lazarus', 'pascal'}, - 'lr': {'text', 'lektor'}, - 'lua': {'text', 'lua'}, - 'm': {'text', 'objective-c'}, - 'm4': {'text', 'm4'}, - 'magik': {'text', 'magik'}, - 'make': {'text', 'makefile'}, - 'manifest': {'text', 'manifest'}, - 'map': {'text', 'map'}, - 'markdown': {'text', 'markdown'}, - 'md': {'text', 'markdown'}, - 'mdx': {'text', 'mdx'}, - 'meson': {'text', 'meson'}, - 'metal': {'text', 'metal'}, - 'mib': {'text', 'mib'}, - 'mjs': {'text', 'javascript'}, - 'mk': {'text', 'makefile'}, - 'ml': {'text', 'ocaml'}, - 'mli': {'text', 'ocaml'}, - 'mm': {'text', 'c++', 'objective-c++'}, - 'modulemap': {'text', 'modulemap'}, - 'mscx': {'text', 'xml', 'musescore'}, - 'mscz': {'binary', 'zip', 'musescore'}, - 'mustache': {'text', 'mustache'}, - 'myst': {'text', 'myst'}, - 'ngdoc': {'text', 'ngdoc'}, - 'nim': {'text', 'nim'}, - 'nims': {'text', 'nim'}, - 'nimble': {'text', 'nimble'}, - 'nix': {'text', 'nix'}, - 'njk': {'text', 'nunjucks'}, - 'otf': {'binary', 'otf'}, - 'p12': {'binary', 'p12'}, - 'pas': {'text', 'pascal'}, - 'patch': {'text', 'diff'}, - 'pdf': {'binary', 'pdf'}, - 'pem': {'text', 'pem'}, - 'php': {'text', 'php'}, - 'php4': {'text', 'php'}, - 'php5': {'text', 'php'}, - 'phtml': {'text', 'php'}, - 'piskel': {'text', 'piskel', 'json'}, - 'pl': {'text', 'perl'}, - 'plantuml': {'text', 'plantuml'}, - 'pm': {'text', 'perl'}, - 'png': {'binary', 'image', 'png'}, - 'po': {'text', 'pofile'}, - 'pom': {'pom', 'text', 'xml'}, - 'pp': {'text', 'puppet'}, - 'prisma': {'text', 'prisma'}, - 'properties': {'text', 'java-properties'}, - 'props': {'text', 'xml', 'msbuild'}, - 'proto': {'text', 'proto'}, - 'ps1': {'text', 'powershell'}, - 'psd1': {'text', 'powershell'}, - 'psm1': {'text', 'powershell'}, - 'pug': {'text', 'pug'}, - 'puml': {'text', 'plantuml'}, - 'purs': {'text', 'purescript'}, - 'pxd': {'text', 'cython'}, - 'pxi': {'text', 'cython'}, - 'py': {'text', 'python'}, - 'pyi': {'text', 'pyi'}, - 'pyproj': {'text', 'xml', 'pyproj', 'msbuild'}, - 'pyt': {'text', 'python'}, - 'pyx': {'text', 'cython'}, - 'pyz': {'binary', 'pyz'}, - 'pyzw': {'binary', 'pyz'}, - 'qml': {'text', 'qml'}, - 'r': {'text', 'r'}, - 'rake': {'text', 'ruby'}, - 'rb': {'text', 'ruby'}, - 'resx': {'text', 'resx', 'xml'}, - 'rng': {'text', 'xml', 'relax-ng'}, - 'robot': {'text', 'robot'}, - 'rs': {'text', 'rust'}, - 'rst': {'text', 'rst'}, - 's': {'text', 'asm'}, - 'sas': {'text', 'sas'}, - 'sass': {'text', 'sass'}, - 'sbt': {'text', 'sbt', 'scala'}, - 'sc': {'text', 'scala'}, - 'scala': {'text', 'scala'}, - 'scm': {'text', 'scheme'}, - 'scss': {'text', 'scss'}, - 'sh': {'text', 'shell'}, - 'sln': {'text', 'sln'}, - 'sls': {'text', 'salt'}, - 'so': {'binary'}, - 'sol': {'text', 'solidity'}, - 'spec': {'text', 'spec'}, - 'sql': {'text', 'sql'}, - 'ss': {'text', 'scheme'}, - 'sty': {'text', 'tex'}, - 'styl': {'text', 'stylus'}, - 'sv': {'text', 'system-verilog'}, - 'svelte': {'text', 'svelte'}, - 'svg': {'text', 'image', 'svg', 'xml'}, - 'svh': {'text', 'system-verilog'}, - 'swf': {'binary', 'swf'}, - 'swift': {'text', 'swift'}, - 'swiftdeps': {'text', 'swiftdeps'}, - 'tac': {'text', 'twisted', 'python'}, - 'tar': {'binary', 'tar'}, - 'targets': {'text', 'xml', 'msbuild'}, - 'templ': {'text', 'templ'}, - 'tex': {'text', 'tex'}, - 'textproto': {'text', 'textproto'}, - 'tf': {'text', 'terraform'}, - 'tfvars': {'text', 'terraform'}, - 'tgz': {'binary', 'gzip'}, - 'thrift': {'text', 'thrift'}, - 'tiff': {'binary', 'image', 'tiff'}, - 'toml': {'text', 'toml'}, - 'tpp': {'text', 'c++'}, - 'ts': {'text', 'ts'}, - 'tsv': {'text', 'tsv'}, - 'tsx': {'text', 'tsx'}, - 'ttf': {'binary', 'ttf'}, - 'twig': {'text', 'twig'}, - 'txsprofile': {'text', 'ini', 'txsprofile'}, - 'txt': {'text', 'plain-text'}, - 'txtpb': {'text', 'textproto'}, - 'urdf': {'text', 'xml', 'urdf'}, - 'v': {'text', 'verilog'}, - 'vb': {'text', 'vb'}, - 'vbproj': {'text', 'xml', 'vbproj', 'msbuild'}, - 'vcxproj': {'text', 'xml', 'vcxproj', 'msbuild'}, - 'vdx': {'text', 'vdx'}, - 'vh': {'text', 'verilog'}, - 'vhd': {'text', 'vhdl'}, - 'vim': {'text', 'vim'}, - 'vtl': {'text', 'vtl'}, - 'vue': {'text', 'vue'}, - 'war': {'binary', 'zip', 'jar'}, - 'wav': {'binary', 'audio', 'wav'}, - 'webp': {'binary', 'image', 'webp'}, - 'whl': {'binary', 'wheel', 'zip'}, - 'wkt': {'text', 'wkt'}, - 'woff': {'binary', 'woff'}, - 'woff2': {'binary', 'woff2'}, - 'wsdl': {'text', 'xml', 'wsdl'}, - 'wsgi': {'text', 'wsgi', 'python'}, - 'xhtml': {'text', 'xml', 'html', 'xhtml'}, - 'xacro': {'text', 'xml', 'urdf', 'xacro'}, - 'xctestplan': {'text', 'json'}, - 'xlf': {'text', 'xml', 'xliff'}, - 'xliff': {'text', 'xml', 'xliff'}, - 'xml': {'text', 'xml'}, - 'xq': {'text', 'xquery'}, - 'xql': {'text', 'xquery'}, - 'xqm': {'text', 'xquery'}, - 'xqu': {'text', 'xquery'}, - 'xquery': {'text', 'xquery'}, - 'xqy': {'text', 'xquery'}, - 'xsd': {'text', 'xml', 'xsd'}, - 'xsl': {'text', 'xml', 'xsl'}, - 'xslt': {'text', 'xml', 'xsl'}, - 'yaml': {'text', 'yaml'}, - 'yamlld': {'text', 'yaml', 'yamlld'}, - 'yang': {'text', 'yang'}, - 'yin': {'text', 'xml', 'yin'}, - 'yml': {'text', 'yaml'}, - 'zcml': {'text', 'xml', 'zcml'}, - 'zig': {'text', 'zig'}, - 'zip': {'binary', 'zip'}, - 'zpt': {'text', 'zpt'}, - 'zsh': {'text', 'shell', 'zsh'}, + "adoc": {"text", "asciidoc"}, + "ai": {"binary", "adobe-illustrator"}, + "aj": {"text", "aspectj"}, + "asciidoc": {"text", "asciidoc"}, + "apinotes": {"text", "apinotes"}, + "asar": {"binary", "asar"}, + "asm": {"text", "asm"}, + "astro": {"text", "astro"}, + "avif": {"binary", "image", "avif"}, + "avsc": {"text", "avro-schema"}, + "bash": {"text", "shell", "bash"}, + "bat": {"text", "batch"}, + "bats": {"text", "shell", "bash", "bats"}, + "bazel": {"text", "bazel"}, + "bb": {"text", "bitbake"}, + "bbappend": {"text", "bitbake"}, + "bbclass": {"text", "bitbake"}, + "beancount": {"text", "beancount"}, + "bib": {"text", "bib"}, + "bmp": {"binary", "image", "bitmap"}, + "bz2": {"binary", "bzip2"}, + "bz3": {"binary", "bzip3"}, + "bzl": {"text", "bazel"}, + "c": {"text", "c"}, + "c++": {"text", "c++"}, + "c++m": {"text", "c++"}, + "cc": {"text", "c++"}, + "ccm": {"text", "c++"}, + "cfg": {"text"}, + "chs": {"text", "c2hs"}, + "cjs": {"text", "javascript"}, + "clj": {"text", "clojure"}, + "cljc": {"text", "clojure"}, + "cljs": {"text", "clojure", "clojurescript"}, + "cmake": {"text", "cmake"}, + "cnf": {"text"}, + "coffee": {"text", "coffee"}, + "conf": {"text"}, + "cpp": {"text", "c++"}, + "cppm": {"text", "c++"}, + "cr": {"text", "crystal"}, + "crt": {"text", "pem"}, + "cs": {"text", "c#"}, + "csproj": {"text", "xml", "csproj", "msbuild"}, + "csh": {"text", "shell", "csh"}, + "cson": {"text", "cson"}, + "css": {"text", "css"}, + "csv": {"text", "csv"}, + "csx": {"text", "c#", "c#script"}, + "cu": {"text", "cuda"}, + "cue": {"text", "cue"}, + "cuh": {"text", "cuda"}, + "cxx": {"text", "c++"}, + "cxxm": {"text", "c++"}, + "cylc": {"text", "cylc"}, + "dart": {"text", "dart"}, + "dbc": {"text", "dbc"}, + "def": {"text", "def"}, + "dll": {"binary"}, + "dtd": {"text", "dtd"}, + "ear": {"binary", "zip", "jar"}, + "edn": {"text", "clojure", "edn"}, + "ejs": {"text", "ejs"}, + "ejson": {"text", "json", "ejson"}, + "elm": {"text", "elm"}, + "env": {"text", "dotenv"}, + "eot": {"binary", "eot"}, + "eps": {"binary", "eps"}, + "erb": {"text", "erb"}, + "erl": {"text", "erlang"}, + "ex": {"text", "elixir"}, + "exe": {"binary"}, + "exs": {"text", "elixir"}, + "eyaml": {"text", "yaml"}, + "f03": {"text", "fortran"}, + "f08": {"text", "fortran"}, + "f90": {"text", "fortran"}, + "f95": {"text", "fortran"}, + "feature": {"text", "gherkin"}, + "fish": {"text", "fish"}, + "fits": {"binary", "fits"}, + "fs": {"text", "f#"}, + "fsproj": {"text", "xml", "fsproj", "msbuild"}, + "fsx": {"text", "f#", "f#script"}, + "gd": {"text", "gdscript"}, + "gemspec": {"text", "ruby"}, + "geojson": {"text", "geojson", "json"}, + "ggb": {"binary", "zip", "ggb"}, + "gif": {"binary", "image", "gif"}, + "gleam": {"text", "gleam"}, + "go": {"text", "go"}, + "gotmpl": {"text", "gotmpl"}, + "gpx": {"text", "gpx", "xml"}, + "graphql": {"text", "graphql"}, + "gradle": {"text", "groovy"}, + "groovy": {"text", "groovy"}, + "gyb": {"text", "gyb"}, + "gyp": {"text", "gyp", "python"}, + "gypi": {"text", "gyp", "python"}, + "gz": {"binary", "gzip"}, + "h": {"text", "header", "c", "c++"}, + "hbs": {"text", "handlebars"}, + "hcl": {"text", "hcl"}, + "hh": {"text", "header", "c++"}, + "hpp": {"text", "header", "c++"}, + "hrl": {"text", "erlang"}, + "hs": {"text", "haskell"}, + "htm": {"text", "html"}, + "html": {"text", "html"}, + "hxx": {"text", "header", "c++"}, + "icns": {"binary", "icns"}, + "ico": {"binary", "icon"}, + "ics": {"text", "icalendar"}, + "idl": {"text", "idl"}, + "idr": {"text", "idris"}, + "inc": {"text", "inc"}, + "ini": {"text", "ini"}, + "inl": {"text", "inl", "c++"}, + "ino": {"text", "ino", "c++"}, + "inx": {"text", "xml", "inx"}, + "ipynb": {"text", "jupyter", "json"}, + "ipp": {"text", "c++"}, + "ipxe": {"text", "ipxe"}, + "ixx": {"text", "c++"}, + "j2": {"text", "jinja"}, + "jade": {"text", "jade"}, + "jar": {"binary", "zip", "jar"}, + "java": {"text", "java"}, + "jenkins": {"text", "groovy", "jenkins"}, + "jenkinsfile": {"text", "groovy", "jenkins"}, + "jinja": {"text", "jinja"}, + "jinja2": {"text", "jinja"}, + "jl": {"text", "julia"}, + "jpeg": {"binary", "image", "jpeg"}, + "jpg": {"binary", "image", "jpeg"}, + "js": {"text", "javascript"}, + "json": {"text", "json"}, + "jsonld": {"text", "json", "jsonld"}, + "jsonnet": {"text", "jsonnet"}, + "json5": {"text", "json5"}, + "jsx": {"text", "jsx"}, + "key": {"text", "pem"}, + "kml": {"text", "kml", "xml"}, + "kt": {"text", "kotlin"}, + "kts": {"text", "kotlin"}, + "lean": {"text", "lean"}, + "lektorproject": {"text", "ini", "lektorproject"}, + "less": {"text", "less"}, + "lfm": {"text", "lazarus", "lazarus-form"}, + "lhs": {"text", "literate-haskell"}, + "libsonnet": {"text", "jsonnet"}, + "lidr": {"text", "idris"}, + "liquid": {"text", "liquid"}, + "lpi": {"text", "lazarus", "xml"}, + "lpr": {"text", "lazarus", "pascal"}, + "lr": {"text", "lektor"}, + "lua": {"text", "lua"}, + "m": {"text", "objective-c"}, + "m4": {"text", "m4"}, + "magik": {"text", "magik"}, + "make": {"text", "makefile"}, + "manifest": {"text", "manifest"}, + "map": {"text", "map"}, + "markdown": {"text", "markdown"}, + "md": {"text", "markdown"}, + "mdx": {"text", "mdx"}, + "meson": {"text", "meson"}, + "metal": {"text", "metal"}, + "mib": {"text", "mib"}, + "mjs": {"text", "javascript"}, + "mk": {"text", "makefile"}, + "ml": {"text", "ocaml"}, + "mli": {"text", "ocaml"}, + "mm": {"text", "c++", "objective-c++"}, + "modulemap": {"text", "modulemap"}, + "mscx": {"text", "xml", "musescore"}, + "mscz": {"binary", "zip", "musescore"}, + "mustache": {"text", "mustache"}, + "myst": {"text", "myst"}, + "ngdoc": {"text", "ngdoc"}, + "nim": {"text", "nim"}, + "nims": {"text", "nim"}, + "nimble": {"text", "nimble"}, + "nix": {"text", "nix"}, + "njk": {"text", "nunjucks"}, + "otf": {"binary", "otf"}, + "p12": {"binary", "p12"}, + "pas": {"text", "pascal"}, + "patch": {"text", "diff"}, + "pdf": {"binary", "pdf"}, + "pem": {"text", "pem"}, + "php": {"text", "php"}, + "php4": {"text", "php"}, + "php5": {"text", "php"}, + "phtml": {"text", "php"}, + "piskel": {"text", "piskel", "json"}, + "pl": {"text", "perl"}, + "plantuml": {"text", "plantuml"}, + "pm": {"text", "perl"}, + "png": {"binary", "image", "png"}, + "po": {"text", "pofile"}, + "pom": {"pom", "text", "xml"}, + "pp": {"text", "puppet"}, + "prisma": {"text", "prisma"}, + "properties": {"text", "java-properties"}, + "props": {"text", "xml", "msbuild"}, + "proto": {"text", "proto"}, + "ps1": {"text", "powershell"}, + "psd1": {"text", "powershell"}, + "psm1": {"text", "powershell"}, + "pug": {"text", "pug"}, + "puml": {"text", "plantuml"}, + "purs": {"text", "purescript"}, + "pxd": {"text", "cython"}, + "pxi": {"text", "cython"}, + "py": {"text", "python"}, + "pyi": {"text", "pyi"}, + "pyproj": {"text", "xml", "pyproj", "msbuild"}, + "pyt": {"text", "python"}, + "pyx": {"text", "cython"}, + "pyz": {"binary", "pyz"}, + "pyzw": {"binary", "pyz"}, + "qml": {"text", "qml"}, + "r": {"text", "r"}, + "rake": {"text", "ruby"}, + "rb": {"text", "ruby"}, + "resx": {"text", "resx", "xml"}, + "rng": {"text", "xml", "relax-ng"}, + "robot": {"text", "robot"}, + "rs": {"text", "rust"}, + "rst": {"text", "rst"}, + "s": {"text", "asm"}, + "sas": {"text", "sas"}, + "sass": {"text", "sass"}, + "sbt": {"text", "sbt", "scala"}, + "sc": {"text", "scala"}, + "scala": {"text", "scala"}, + "scm": {"text", "scheme"}, + "scss": {"text", "scss"}, + "sh": {"text", "shell"}, + "sln": {"text", "sln"}, + "sls": {"text", "salt"}, + "so": {"binary"}, + "sol": {"text", "solidity"}, + "spec": {"text", "spec"}, + "sql": {"text", "sql"}, + "ss": {"text", "scheme"}, + "sty": {"text", "tex"}, + "styl": {"text", "stylus"}, + "sv": {"text", "system-verilog"}, + "svelte": {"text", "svelte"}, + "svg": {"text", "image", "svg", "xml"}, + "svh": {"text", "system-verilog"}, + "swf": {"binary", "swf"}, + "swift": {"text", "swift"}, + "swiftdeps": {"text", "swiftdeps"}, + "tac": {"text", "twisted", "python"}, + "tar": {"binary", "tar"}, + "targets": {"text", "xml", "msbuild"}, + "templ": {"text", "templ"}, + "tex": {"text", "tex"}, + "textproto": {"text", "textproto"}, + "tf": {"text", "terraform"}, + "tfvars": {"text", "terraform"}, + "tgz": {"binary", "gzip"}, + "thrift": {"text", "thrift"}, + "tiff": {"binary", "image", "tiff"}, + "toml": {"text", "toml"}, + "tpp": {"text", "c++"}, + "ts": {"text", "ts"}, + "tsv": {"text", "tsv"}, + "tsx": {"text", "tsx"}, + "ttf": {"binary", "ttf"}, + "twig": {"text", "twig"}, + "txsprofile": {"text", "ini", "txsprofile"}, + "txt": {"text", "plain-text"}, + "txtpb": {"text", "textproto"}, + "urdf": {"text", "xml", "urdf"}, + "v": {"text", "verilog"}, + "vb": {"text", "vb"}, + "vbproj": {"text", "xml", "vbproj", "msbuild"}, + "vcxproj": {"text", "xml", "vcxproj", "msbuild"}, + "vdx": {"text", "vdx"}, + "vh": {"text", "verilog"}, + "vhd": {"text", "vhdl"}, + "vim": {"text", "vim"}, + "vtl": {"text", "vtl"}, + "vue": {"text", "vue"}, + "war": {"binary", "zip", "jar"}, + "wav": {"binary", "audio", "wav"}, + "webp": {"binary", "image", "webp"}, + "whl": {"binary", "wheel", "zip"}, + "wkt": {"text", "wkt"}, + "woff": {"binary", "woff"}, + "woff2": {"binary", "woff2"}, + "wsdl": {"text", "xml", "wsdl"}, + "wsgi": {"text", "wsgi", "python"}, + "xhtml": {"text", "xml", "html", "xhtml"}, + "xacro": {"text", "xml", "urdf", "xacro"}, + "xctestplan": {"text", "json"}, + "xlf": {"text", "xml", "xliff"}, + "xliff": {"text", "xml", "xliff"}, + "xml": {"text", "xml"}, + "xq": {"text", "xquery"}, + "xql": {"text", "xquery"}, + "xqm": {"text", "xquery"}, + "xqu": {"text", "xquery"}, + "xquery": {"text", "xquery"}, + "xqy": {"text", "xquery"}, + "xsd": {"text", "xml", "xsd"}, + "xsl": {"text", "xml", "xsl"}, + "xslt": {"text", "xml", "xsl"}, + "yaml": {"text", "yaml"}, + "yamlld": {"text", "yaml", "yamlld"}, + "yang": {"text", "yang"}, + "yin": {"text", "xml", "yin"}, + "yml": {"text", "yaml"}, + "zcml": {"text", "xml", "zcml"}, + "zig": {"text", "zig"}, + "zip": {"binary", "zip"}, + "zpt": {"text", "zpt"}, + "zsh": {"text", "shell", "zsh"}, } EXTENSIONS_NEED_BINARY_CHECK = { - 'plist': {'plist'}, - 'ppm': {'image', 'ppm'}, + "plist": {"plist"}, + "ppm": {"image", "ppm"}, } NAMES = { - '.ansible-lint': EXTENSIONS['yaml'], - '.babelrc': EXTENSIONS['json'] | {'babelrc'}, - '.bash_aliases': EXTENSIONS['bash'], - '.bash_profile': EXTENSIONS['bash'], - '.bashrc': EXTENSIONS['bash'], - '.bazelrc': {'text', 'bazelrc'}, - '.bowerrc': EXTENSIONS['json'] | {'bowerrc'}, - '.browserslistrc': {'text', 'browserslistrc'}, - '.clang-format': EXTENSIONS['yaml'], - '.clang-tidy': EXTENSIONS['yaml'], - '.codespellrc': EXTENSIONS['ini'] | {'codespellrc'}, - '.coveragerc': EXTENSIONS['ini'] | {'coveragerc'}, - '.cshrc': EXTENSIONS['csh'], - '.csslintrc': EXTENSIONS['json'] | {'csslintrc'}, - '.dockerignore': {'text', 'dockerignore'}, - '.editorconfig': {'text', 'editorconfig'}, - '.envrc': EXTENSIONS['bash'], - '.flake8': EXTENSIONS['ini'] | {'flake8'}, - '.gitattributes': {'text', 'gitattributes'}, - '.gitconfig': EXTENSIONS['ini'] | {'gitconfig'}, - '.gitignore': {'text', 'gitignore'}, - '.gitlint': EXTENSIONS['ini'] | {'gitlint'}, - '.gitmodules': {'text', 'gitmodules'}, - '.hgrc': EXTENSIONS['ini'] | {'hgrc'}, - '.isort.cfg': EXTENSIONS['ini'] | {'isort'}, - '.jshintrc': EXTENSIONS['json'] | {'jshintrc'}, - '.mailmap': {'text', 'mailmap'}, - '.mention-bot': EXTENSIONS['json'] | {'mention-bot'}, - '.npmignore': {'text', 'npmignore'}, - '.pdbrc': EXTENSIONS['py'] | {'pdbrc'}, - '.prettierignore': {'text', 'gitignore', 'prettierignore'}, - '.pypirc': EXTENSIONS['ini'] | {'pypirc'}, - '.rstcheck.cfg': EXTENSIONS['ini'], - '.salt-lint': EXTENSIONS['yaml'] | {'salt-lint'}, - '.sqlfluff': EXTENSIONS['ini'], - '.yamllint': EXTENSIONS['yaml'] | {'yamllint'}, - '.zlogin': EXTENSIONS['zsh'], - '.zlogout': EXTENSIONS['zsh'], - '.zprofile': EXTENSIONS['zsh'], - '.zshrc': EXTENSIONS['zsh'], - '.zshenv': EXTENSIONS['zsh'], - 'AUTHORS': EXTENSIONS['txt'], - 'bblayers.conf': EXTENSIONS['bb'], - 'bitbake.conf': EXTENSIONS['bb'], - 'BUILD': EXTENSIONS['bzl'], - 'Cargo.toml': EXTENSIONS['toml'] | {'cargo'}, - 'Cargo.lock': EXTENSIONS['toml'] | {'cargo-lock'}, - 'CMakeLists.txt': EXTENSIONS['cmake'], - 'CHANGELOG': EXTENSIONS['txt'], - 'config.ru': EXTENSIONS['rb'], - 'Containerfile': {'text', 'dockerfile'}, - 'CONTRIBUTING': EXTENSIONS['txt'], - 'copy.bara.sky': EXTENSIONS['bzl'], - 'COPYING': EXTENSIONS['txt'], - 'Dockerfile': {'text', 'dockerfile'}, - 'direnvrc': EXTENSIONS['bash'], - 'Gemfile': EXTENSIONS['rb'], - 'Gemfile.lock': {'text'}, - 'GNUmakefile': EXTENSIONS['mk'], - 'go.mod': {'text', 'go-mod'}, - 'go.sum': {'text', 'go-sum'}, - 'Jenkinsfile': EXTENSIONS['jenkins'], - 'LICENSE': EXTENSIONS['txt'], - 'MAINTAINERS': EXTENSIONS['txt'], - 'Makefile': EXTENSIONS['mk'], - 'meson.build': EXTENSIONS['meson'], - 'meson.options': EXTENSIONS['meson'] | {'meson-options'}, - 'meson_options.txt': EXTENSIONS['meson'] | {'meson-options'}, - 'makefile': EXTENSIONS['mk'], - 'NEWS': EXTENSIONS['txt'], - 'NOTICE': EXTENSIONS['txt'], - 'PATENTS': EXTENSIONS['txt'], - 'Pipfile': EXTENSIONS['toml'], - 'Pipfile.lock': EXTENSIONS['json'], - 'PKGBUILD': EXTENSIONS['bash'] | {'pkgbuild', 'alpm'}, - 'poetry.lock': EXTENSIONS['toml'], - 'pom.xml': EXTENSIONS['pom'], - 'pylintrc': EXTENSIONS['ini'] | {'pylintrc'}, - 'README': EXTENSIONS['txt'], - 'Rakefile': EXTENSIONS['rb'], - 'rebar.config': EXTENSIONS['erl'], - 'setup.cfg': EXTENSIONS['ini'], - 'sys.config': EXTENSIONS['erl'], - 'sys.config.src': EXTENSIONS['erl'], - 'Tiltfile': {'text', 'tiltfile'}, - 'Vagrantfile': EXTENSIONS['rb'], - 'WORKSPACE': EXTENSIONS['bzl'], - 'wscript': EXTENSIONS['py'], + ".ansible-lint": EXTENSIONS["yaml"], + ".babelrc": EXTENSIONS["json"] | {"babelrc"}, + ".bash_aliases": EXTENSIONS["bash"], + ".bash_profile": EXTENSIONS["bash"], + ".bashrc": EXTENSIONS["bash"], + ".bazelrc": {"text", "bazelrc"}, + ".bowerrc": EXTENSIONS["json"] | {"bowerrc"}, + ".browserslistrc": {"text", "browserslistrc"}, + ".clang-format": EXTENSIONS["yaml"], + ".clang-tidy": EXTENSIONS["yaml"], + ".codespellrc": EXTENSIONS["ini"] | {"codespellrc"}, + ".coveragerc": EXTENSIONS["ini"] | {"coveragerc"}, + ".cshrc": EXTENSIONS["csh"], + ".csslintrc": EXTENSIONS["json"] | {"csslintrc"}, + ".dockerignore": {"text", "dockerignore"}, + ".editorconfig": {"text", "editorconfig"}, + ".envrc": EXTENSIONS["bash"], + ".flake8": EXTENSIONS["ini"] | {"flake8"}, + ".gitattributes": {"text", "gitattributes"}, + ".gitconfig": EXTENSIONS["ini"] | {"gitconfig"}, + ".gitignore": {"text", "gitignore"}, + ".gitlint": EXTENSIONS["ini"] | {"gitlint"}, + ".gitmodules": {"text", "gitmodules"}, + ".hgrc": EXTENSIONS["ini"] | {"hgrc"}, + ".isort.cfg": EXTENSIONS["ini"] | {"isort"}, + ".jshintrc": EXTENSIONS["json"] | {"jshintrc"}, + ".mailmap": {"text", "mailmap"}, + ".mention-bot": EXTENSIONS["json"] | {"mention-bot"}, + ".npmignore": {"text", "npmignore"}, + ".pdbrc": EXTENSIONS["py"] | {"pdbrc"}, + ".prettierignore": {"text", "gitignore", "prettierignore"}, + ".pypirc": EXTENSIONS["ini"] | {"pypirc"}, + ".rstcheck.cfg": EXTENSIONS["ini"], + ".salt-lint": EXTENSIONS["yaml"] | {"salt-lint"}, + ".sqlfluff": EXTENSIONS["ini"], + ".yamllint": EXTENSIONS["yaml"] | {"yamllint"}, + ".zlogin": EXTENSIONS["zsh"], + ".zlogout": EXTENSIONS["zsh"], + ".zprofile": EXTENSIONS["zsh"], + ".zshrc": EXTENSIONS["zsh"], + ".zshenv": EXTENSIONS["zsh"], + "AUTHORS": EXTENSIONS["txt"], + "bblayers.conf": EXTENSIONS["bb"], + "bitbake.conf": EXTENSIONS["bb"], + "BUILD": EXTENSIONS["bzl"], + "Cargo.toml": EXTENSIONS["toml"] | {"cargo"}, + "Cargo.lock": EXTENSIONS["toml"] | {"cargo-lock"}, + "CMakeLists.txt": EXTENSIONS["cmake"], + "CHANGELOG": EXTENSIONS["txt"], + "config.ru": EXTENSIONS["rb"], + "Containerfile": {"text", "dockerfile"}, + "CONTRIBUTING": EXTENSIONS["txt"], + "copy.bara.sky": EXTENSIONS["bzl"], + "COPYING": EXTENSIONS["txt"], + "Dockerfile": {"text", "dockerfile"}, + "direnvrc": EXTENSIONS["bash"], + "Gemfile": EXTENSIONS["rb"], + "Gemfile.lock": {"text"}, + "GNUmakefile": EXTENSIONS["mk"], + "go.mod": {"text", "go-mod"}, + "go.sum": {"text", "go-sum"}, + "Jenkinsfile": EXTENSIONS["jenkins"], + "LICENSE": EXTENSIONS["txt"], + "MAINTAINERS": EXTENSIONS["txt"], + "Makefile": EXTENSIONS["mk"], + "meson.build": EXTENSIONS["meson"], + "meson.options": EXTENSIONS["meson"] | {"meson-options"}, + "meson_options.txt": EXTENSIONS["meson"] | {"meson-options"}, + "makefile": EXTENSIONS["mk"], + "NEWS": EXTENSIONS["txt"], + "NOTICE": EXTENSIONS["txt"], + "PATENTS": EXTENSIONS["txt"], + "Pipfile": EXTENSIONS["toml"], + "Pipfile.lock": EXTENSIONS["json"], + "PKGBUILD": EXTENSIONS["bash"] | {"pkgbuild", "alpm"}, + "poetry.lock": EXTENSIONS["toml"], + "pom.xml": EXTENSIONS["pom"], + "pylintrc": EXTENSIONS["ini"] | {"pylintrc"}, + "README": EXTENSIONS["txt"], + "Rakefile": EXTENSIONS["rb"], + "rebar.config": EXTENSIONS["erl"], + "setup.cfg": EXTENSIONS["ini"], + "sys.config": EXTENSIONS["erl"], + "sys.config.src": EXTENSIONS["erl"], + "Tiltfile": {"text", "tiltfile"}, + "Vagrantfile": EXTENSIONS["rb"], + "WORKSPACE": EXTENSIONS["bzl"], + "wscript": EXTENSIONS["py"], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify/identify.py b/PPE2/.venv/lib/python3.12/site-packages/identify/identify.py index 0279ba8..af11ade 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify/identify.py +++ b/PPE2/.venv/lib/python3.12/site-packages/identify/identify.py @@ -14,17 +14,16 @@ from identify import extensions from identify import interpreters from identify.vendor import licenses - printable = frozenset(string.printable) -DIRECTORY = 'directory' -SYMLINK = 'symlink' -SOCKET = 'socket' -FILE = 'file' -EXECUTABLE = 'executable' -NON_EXECUTABLE = 'non-executable' -TEXT = 'text' -BINARY = 'binary' +DIRECTORY = "directory" +SYMLINK = "symlink" +SOCKET = "socket" +FILE = "file" +EXECUTABLE = "executable" +NON_EXECUTABLE = "non-executable" +TEXT = "text" +BINARY = "binary" TYPE_TAGS = frozenset((DIRECTORY, FILE, SYMLINK, SOCKET)) MODE_TAGS = frozenset((EXECUTABLE, NON_EXECUTABLE)) @@ -41,7 +40,7 @@ def tags_from_path(path: str) -> set[str]: try: sr = os.lstat(path) except (OSError, ValueError): # same error-handling as `os.lexists()` - raise ValueError(f'{path} does not exist.') + raise ValueError(f"{path} does not exist.") mode = sr.st_mode if stat.S_ISDIR(mode): @@ -90,7 +89,7 @@ def tags_from_filename(path: str) -> set[str]: ret = set() # Allow e.g. "Dockerfile.xenial" to match "Dockerfile" - for part in [filename] + filename.split('.'): + for part in [filename] + filename.split("."): if part in extensions.NAMES: ret.update(extensions.NAMES[part]) break @@ -106,14 +105,14 @@ def tags_from_filename(path: str) -> set[str]: def tags_from_interpreter(interpreter: str) -> set[str]: - _, _, interpreter = interpreter.rpartition('/') + _, _, interpreter = interpreter.rpartition("/") # Try "python3.5.2" => "python3.5" => "python3" until one matches. while interpreter: if interpreter in interpreters.INTERPRETERS: return interpreters.INTERPRETERS[interpreter] else: - interpreter, _, _ = interpreter.rpartition('.') + interpreter, _, _ = interpreter.rpartition(".") return set() @@ -125,17 +124,17 @@ def is_text(bytesio: IO[bytes]) -> bool: https://github.com/file/file/blob/df74b09b9027676088c797528edcaae5a9ce9ad0/src/encoding.c#L203-L228 """ text_chars = ( - bytearray([7, 8, 9, 10, 11, 12, 13, 27]) + - bytearray(range(0x20, 0x7F)) + - bytearray(range(0x80, 0X100)) + bytearray([7, 8, 9, 10, 11, 12, 13, 27]) + + bytearray(range(0x20, 0x7F)) + + bytearray(range(0x80, 0x100)) ) return not bool(bytesio.read(1024).translate(None, text_chars)) def file_is_text(path: str) -> bool: if not os.path.lexists(path): - raise ValueError(f'{path} does not exist.') - with open(path, 'rb') as f: + raise ValueError(f"{path} does not exist.") + with open(path, "rb") as f: return is_text(f) @@ -152,13 +151,13 @@ def _shebang_split(line: str) -> list[str]: def _parse_nix_shebang( - bytesio: IO[bytes], - cmd: tuple[str, ...], + bytesio: IO[bytes], + cmd: tuple[str, ...], ) -> tuple[str, ...]: - while bytesio.read(2) == b'#!': + while bytesio.read(2) == b"#!": next_line_b = bytesio.readline() try: - next_line = next_line_b.decode('UTF-8') + next_line = next_line_b.decode("UTF-8") except UnicodeDecodeError: return cmd @@ -168,7 +167,7 @@ def _parse_nix_shebang( line_tokens = tuple(_shebang_split(next_line.strip())) for i, token in enumerate(line_tokens[:-1]): - if token != '-i': + if token != "-i": continue # the argument to -i flag cmd = (line_tokens[i + 1],) @@ -177,11 +176,11 @@ def _parse_nix_shebang( def parse_shebang(bytesio: IO[bytes]) -> tuple[str, ...]: """Parse the shebang from a file opened for reading binary.""" - if bytesio.read(2) != b'#!': + if bytesio.read(2) != b"#!": return () first_line_b = bytesio.readline() try: - first_line = first_line_b.decode('UTF-8') + first_line = first_line_b.decode("UTF-8") except UnicodeDecodeError: return () @@ -191,12 +190,12 @@ def parse_shebang(bytesio: IO[bytes]) -> tuple[str, ...]: return () cmd = tuple(_shebang_split(first_line.strip())) - if cmd[:2] == ('/usr/bin/env', '-S'): + if cmd[:2] == ("/usr/bin/env", "-S"): cmd = cmd[2:] - elif cmd[:1] == ('/usr/bin/env',): + elif cmd[:1] == ("/usr/bin/env",): cmd = cmd[1:] - if cmd == ('nix-shell',): + if cmd == ("nix-shell",): return _parse_nix_shebang(bytesio, cmd) return cmd @@ -205,12 +204,12 @@ def parse_shebang(bytesio: IO[bytes]) -> tuple[str, ...]: def parse_shebang_from_file(path: str) -> tuple[str, ...]: """Parse the shebang given a file path.""" if not os.path.lexists(path): - raise ValueError(f'{path} does not exist.') + raise ValueError(f"{path} does not exist.") if not os.access(path, os.X_OK): return () try: - with open(path, 'rb') as f: + with open(path, "rb") as f: return parse_shebang(f) except OSError as e: if e.errno == errno.EINVAL: @@ -219,13 +218,13 @@ def parse_shebang_from_file(path: str) -> tuple[str, ...]: raise -COPYRIGHT_RE = re.compile(r'^\s*(Copyright|\(C\)) .*$', re.I | re.MULTILINE) -WS_RE = re.compile(r'\s+') +COPYRIGHT_RE = re.compile(r"^\s*(Copyright|\(C\)) .*$", re.I | re.MULTILINE) +WS_RE = re.compile(r"\s+") def _norm_license(s: str) -> str: - s = COPYRIGHT_RE.sub('', s) - s = WS_RE.sub(' ', s) + s = COPYRIGHT_RE.sub("", s) + s = WS_RE.sub(" ", s) return s.strip() @@ -245,15 +244,15 @@ def license_id(filename: str) -> str | None: """ import ukkonen # `pip install identify[license]` - with open(filename, encoding='UTF-8') as f: + with open(filename, encoding="UTF-8") as f: contents = f.read() norm = _norm_license(contents) min_edit_dist = sys.maxsize - min_edit_dist_spdx = '' + min_edit_dist_spdx = "" - cutoff = math.ceil(.05 * len(norm)) + cutoff = math.ceil(0.05 * len(norm)) # try exact matches for spdx, text in licenses.LICENSES: @@ -262,7 +261,7 @@ def license_id(filename: str) -> str | None: return spdx # skip the slow calculation if the lengths are very different - if norm and abs(len(norm) - len(norm_license)) / len(norm) > .05: + if norm and abs(len(norm) - len(norm_license)) / len(norm) > 0.05: continue edit_dist = ukkonen.distance(norm, norm_license, cutoff) diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify/interpreters.py b/PPE2/.venv/lib/python3.12/site-packages/identify/interpreters.py index 3022e00..658874e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify/interpreters.py +++ b/PPE2/.venv/lib/python3.12/site-packages/identify/interpreters.py @@ -1,25 +1,26 @@ from __future__ import annotations + INTERPRETERS = { - 'ash': {'shell', 'ash'}, - 'awk': {'awk'}, - 'bash': {'shell', 'bash'}, - 'bats': {'shell', 'bash', 'bats'}, - 'cbsd': {'shell', 'cbsd'}, - 'csh': {'shell', 'csh'}, - 'dash': {'shell', 'dash'}, - 'expect': {'expect'}, - 'ksh': {'shell', 'ksh'}, - 'node': {'javascript'}, - 'nodejs': {'javascript'}, - 'perl': {'perl'}, - 'php': {'php'}, - 'php7': {'php', 'php7'}, - 'php8': {'php', 'php8'}, - 'python': {'python'}, - 'python2': {'python', 'python2'}, - 'python3': {'python', 'python3'}, - 'ruby': {'ruby'}, - 'sh': {'shell', 'sh'}, - 'tcsh': {'shell', 'tcsh'}, - 'zsh': {'shell', 'zsh'}, + "ash": {"shell", "ash"}, + "awk": {"awk"}, + "bash": {"shell", "bash"}, + "bats": {"shell", "bash", "bats"}, + "cbsd": {"shell", "cbsd"}, + "csh": {"shell", "csh"}, + "dash": {"shell", "dash"}, + "expect": {"expect"}, + "ksh": {"shell", "ksh"}, + "node": {"javascript"}, + "nodejs": {"javascript"}, + "perl": {"perl"}, + "php": {"php"}, + "php7": {"php", "php7"}, + "php8": {"php", "php8"}, + "python": {"python"}, + "python2": {"python", "python2"}, + "python3": {"python", "python3"}, + "ruby": {"ruby"}, + "sh": {"shell", "sh"}, + "tcsh": {"shell", "tcsh"}, + "zsh": {"shell", "zsh"}, } diff --git a/PPE2/.venv/lib/python3.12/site-packages/identify/vendor/licenses.py b/PPE2/.venv/lib/python3.12/site-packages/identify/vendor/licenses.py index 14ebfb3..75cb489 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/identify/vendor/licenses.py +++ b/PPE2/.venv/lib/python3.12/site-packages/identify/vendor/licenses.py @@ -1,8 +1,9 @@ from __future__ import annotations + LICENSES = ( ( - '0BSD', - '''\ + "0BSD", + """\ Copyright (c) [year] [fullname] Permission to use, copy, modify, and/or distribute this software for any @@ -15,11 +16,11 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -''', +""", ), ( - 'AFL-3.0', - '''\ + "AFL-3.0", + """\ Academic Free License (“AFL”) v. 3.0 This Academic Free License (the "License") applies to any original work of @@ -190,11 +191,11 @@ that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. -''', +""", ), ( - 'AGPL-3.0', - '''\ + "AGPL-3.0", + """\ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 @@ -856,11 +857,11 @@ specific requirements. if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . -''', +""", ), ( - 'Apache-2.0', - '''\ + "Apache-2.0", + """\ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -1062,11 +1063,11 @@ Apache License WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -''', +""", ), ( - 'Artistic-2.0', - '''\ + "Artistic-2.0", + """\ The Artistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. @@ -1268,11 +1269,11 @@ LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -''', +""", ), ( - 'BSD-2-Clause', - '''\ + "BSD-2-Clause", + """\ BSD 2-Clause License Copyright (c) [year], [fullname] @@ -1298,11 +1299,11 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 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. -''', +""", ), ( - 'BSD-3-Clause', - '''\ + "BSD-3-Clause", + """\ BSD 3-Clause License Copyright (c) [year], [fullname] @@ -1332,11 +1333,11 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 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. -''', +""", ), ( - 'BSD-3-Clause-Clear', - '''\ + "BSD-3-Clause-Clear", + """\ The Clear BSD License Copyright (c) [year] [fullname] @@ -1369,11 +1370,11 @@ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 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. -''', +""", ), ( - 'BSL-1.0', - '''\ + "BSL-1.0", + """\ Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization @@ -1397,11 +1398,11 @@ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -''', +""", ), ( - 'CC-BY-4.0', - '''\ + "CC-BY-4.0", + """\ Attribution 4.0 International ======================================================================= @@ -1797,11 +1798,11 @@ the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. -''', +""", ), ( - 'CC-BY-SA-4.0', - '''\ + "CC-BY-SA-4.0", + """\ Attribution-ShareAlike 4.0 International ======================================================================= @@ -2229,11 +2230,11 @@ the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. -''', +""", ), ( - 'CC0-1.0', - '''\ + "CC0-1.0", + """\ CC0 1.0 Universal Statement of Purpose @@ -2350,11 +2351,11 @@ Affirmer's express Statement of Purpose. For more information, please see -''', +""", ), ( - 'ECL-2.0', - '''\ + "ECL-2.0", + """\ Educational Community License Version 2.0, April 2007 @@ -2558,11 +2559,11 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -''', +""", ), ( - 'EPL-1.0', - '''\ + "EPL-1.0", + """\ Eclipse Public License - v 1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC @@ -2767,11 +2768,11 @@ intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. -''', +""", ), ( - 'EPL-2.0', - '''\ + "EPL-2.0", + """\ Eclipse Public License - v 2.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE @@ -3047,11 +3048,11 @@ version(s), and exceptions or additional permissions here}." look for such a notice. You may add additional accurate notices of copyright ownership. -''', +""", ), ( - 'EUPL-1.1', - '''\ + "EUPL-1.1", + """\ European Union Public Licence V. 1.1 @@ -3363,11 +3364,11 @@ Appendix - Common Public License v. 1.0 - Eclipse Public License v. 1.0 - Cecill v. 2.0 -''', +""", ), ( - 'EUPL-1.2', - '''\ + "EUPL-1.2", + """\ European Union Public Licence V. 1.2 @@ -3642,11 +3643,11 @@ Appendix covered Source Code from exclusive appropriation. — All other changes or additions to this Appendix require the production of a new EUPL version. -''', +""", ), ( - 'GPL-2.0', - '''\ + "GPL-2.0", + """\ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -3986,11 +3987,11 @@ proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. -''', +""", ), ( - 'GPL-3.0', - '''\ + "GPL-3.0", + """\ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -4665,11 +4666,11 @@ may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . -''', +""", ), ( - 'ISC', - '''\ + "ISC", + """\ ISC License Copyright (c) [year], [fullname] @@ -4685,11 +4686,11 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -''', +""", ), ( - 'LGPL-2.1', - '''\ + "LGPL-2.1", + """\ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 @@ -5194,11 +5195,11 @@ necessary. Here is a sample; alter the names: Ty Coon, President of Vice That's all there is to it! -''', +""", ), ( - 'LGPL-3.0', - '''\ + "LGPL-3.0", + """\ GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -5364,11 +5365,11 @@ whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. -''', +""", ), ( - 'LPPL-1.3c', - '''\ + "LPPL-1.3c", + """\ The LaTeX Project Public License =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @@ -5784,11 +5785,11 @@ Important Recommendations to comprise the Work and, in such a case, the licensee would be entitled to make reasonable conjectures as to which files comprise the Work. -''', +""", ), ( - 'MIT', - '''\ + "MIT", + """\ MIT License Copyright (c) [year] [fullname] @@ -5810,11 +5811,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -''', +""", ), ( - 'MPL-2.0', - '''\ + "MPL-2.0", + """\ Mozilla Public License Version 2.0 ================================== @@ -6188,11 +6189,11 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. -''', +""", ), ( - 'MS-PL', - '''\ + "MS-PL", + """\ Microsoft Public License (Ms-PL) This license governs use of the accompanying software. If you use the @@ -6245,11 +6246,11 @@ directly on its contribution. license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. -''', +""", ), ( - 'MS-RL', - '''\ + "MS-RL", + """\ Microsoft Reciprocal License (Ms-RL) This license governs use of the accompanying software. If you use the @@ -6314,11 +6315,11 @@ contribution. license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. -''', +""", ), ( - 'NCSA', - '''\ + "NCSA", + """\ University of Illinois/NCSA Open Source License Copyright (c) [year] [fullname]. All rights reserved. Developed by: [project] [fullname] [projecturl] @@ -6333,11 +6334,11 @@ publish, distribute, sublicense, and/or sell copies of the Software,and to permi this Software without specific prior written permission. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THECONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. -''', +""", ), ( - 'OFL-1.1', - '''\ + "OFL-1.1", + """\ Copyright (c) [year] [fullname] ([email]) This Font Software is licensed under the SIL Open Font License, Version 1.1. @@ -6430,11 +6431,11 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. -''', +""", ), ( - 'OSL-3.0', - '''\ + "OSL-3.0", + """\ Open Software License ("OSL") v 3.0 This Open Software License (the "License") applies to any original work of @@ -6607,11 +6608,11 @@ that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. -''', +""", ), ( - 'PostgreSQL', - '''\ + "PostgreSQL", + """\ PostgreSQL License Copyright (c) [year], [fullname] @@ -6631,11 +6632,11 @@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND [fullname] HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -''', +""", ), ( - 'UPL-1.0', - '''\ + "UPL-1.0", + """\ Copyright (c) [year] [fullname] The Universal Permissive License (UPL), Version 1.0 @@ -6671,11 +6672,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -''', +""", ), ( - 'Unlicense', - '''\ + "Unlicense", + """\ This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or @@ -6700,11 +6701,11 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to -''', +""", ), ( - 'WTFPL', - '''\ + "WTFPL", + """\ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 @@ -6718,11 +6719,11 @@ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO. -''', +""", ), ( - 'Zlib', - '''\ + "Zlib", + """\ zlib License (C) [year] [fullname] @@ -6742,6 +6743,6 @@ freely, subject to the following restrictions: 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -''', +""", ), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/iniconfig-2.3.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/iniconfig-2.3.0.dist-info/WHEEL index e7fa31b..badc604 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/iniconfig-2.3.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/iniconfig-2.3.0.dist-info/WHEEL @@ -2,4 +2,3 @@ Wheel-Version: 1.0 Generator: setuptools (80.9.0) Root-Is-Purelib: true Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/iniconfig/_version.py b/PPE2/.venv/lib/python3.12/site-packages/iniconfig/_version.py index b982b02..6be1e37 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/iniconfig/_version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/iniconfig/_version.py @@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '2.3.0' +__version__ = version = "2.3.0" __version_tuple__ = version_tuple = (2, 3, 0) __commit_id__ = commit_id = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions-1.1.0.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions-1.1.0.dist-info/METADATA index abe8c62..9b57db7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions-1.1.0.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions-1.1.0.dist-info/METADATA @@ -26,4 +26,3 @@ Mypy Extensions The `mypy_extensions` module defines extensions to the Python standard library `typing` module that are supported by the mypy type checker and the mypyc compiler. - diff --git a/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions.py b/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions.py index 1910000..27a8d8b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions.py +++ b/PPE2/.venv/lib/python3.12/site-packages/mypy_extensions.py @@ -8,6 +8,7 @@ Example usage: from typing import Any, Dict import sys + # _type_check is NOT a part of public typing API, it is used here only to mimic # the (convenient) behavior of types provided by typing module. from typing import _type_check # type: ignore @@ -15,9 +16,9 @@ from typing import _type_check # type: ignore def _check_fails(cls, other): try: - if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools', 'typing']: + if sys._getframe(1).f_globals["__name__"] not in ["abc", "functools", "typing"]: # Typed dicts are only for static structural subtyping. - raise TypeError('TypedDict does not support instance and class checks') + raise TypeError("TypedDict does not support instance and class checks") except (AttributeError, ValueError): pass return False @@ -28,17 +29,18 @@ def _dict_new(cls, *args, **kwargs): def _typeddict_new(cls, _typename, _fields=None, **kwargs): - total = kwargs.pop('total', True) + total = kwargs.pop("total", True) if _fields is None: _fields = kwargs elif kwargs: - raise TypeError("TypedDict takes either a dict or keyword arguments," - " but not both") + raise TypeError( + "TypedDict takes either a dict or keyword arguments," " but not both" + ) - ns = {'__annotations__': dict(_fields), '__total__': total} + ns = {"__annotations__": dict(_fields), "__total__": total} try: # Setting correct module is necessary to make typed dict classes pickleable. - ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__') + ns["__module__"] = sys._getframe(1).f_globals.get("__name__", "__main__") except (AttributeError, ValueError): pass @@ -56,8 +58,9 @@ class _TypedDictMeta(type): # We need the `if TypedDict in globals()` check, # or we emit a DeprecationWarning when creating mypy_extensions.TypedDict itself - if 'TypedDict' in globals(): + if "TypedDict" in globals(): import warnings + warnings.warn( ( "mypy_extensions.TypedDict is deprecated, " @@ -65,29 +68,28 @@ class _TypedDictMeta(type): "Use typing.TypedDict or typing_extensions.TypedDict instead." ), DeprecationWarning, - stacklevel=(3 if _from_functional_call else 2) + stacklevel=(3 if _from_functional_call else 2), ) - ns['__new__'] = _typeddict_new if name == 'TypedDict' else _dict_new + ns["__new__"] = _typeddict_new if name == "TypedDict" else _dict_new tp_dict = super(_TypedDictMeta, cls).__new__(cls, name, (dict,), ns) - anns = ns.get('__annotations__', {}) + anns = ns.get("__annotations__", {}) msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" anns = {n: _type_check(tp, msg) for n, tp in anns.items()} for base in bases: - anns.update(base.__dict__.get('__annotations__', {})) + anns.update(base.__dict__.get("__annotations__", {})) tp_dict.__annotations__ = anns - if not hasattr(tp_dict, '__total__'): + if not hasattr(tp_dict, "__total__"): tp_dict.__total__ = total return tp_dict __instancecheck__ = __subclasscheck__ = _check_fails -TypedDict = _TypedDictMeta('TypedDict', (dict,), {}) +TypedDict = _TypedDictMeta("TypedDict", (dict,), {}) TypedDict.__module__ = __name__ -TypedDict.__doc__ = \ - """A simple typed name space. At runtime it is equivalent to a plain dict. +TypedDict.__doc__ = """A simple typed name space. At runtime it is equivalent to a plain dict. TypedDict creates a dictionary type that expects all of its instances to have a certain set of keys, with each key @@ -151,7 +153,8 @@ def KwArg(type=Any): # Return type that indicates a function does not return # Deprecated, use typing or typing_extensions variants instead -class _DEPRECATED_NoReturn: pass +class _DEPRECATED_NoReturn: + pass def trait(cls): @@ -217,8 +220,7 @@ class u8(metaclass=_NativeIntMeta): for _int_type in i64, i32, i16, u8: - _int_type.__doc__ = \ - """A native fixed-width integer type when used with mypyc. + _int_type.__doc__ = """A native fixed-width integer type when used with mypyc. In code not compiled with mypyc, behaves like the 'int' type in these runtime contexts: @@ -243,6 +245,7 @@ def _warn_deprecation(name: str, module_globals: Dict[str, Any]) -> Any: else: assert False, f"Add deprecation message for 'mypy_extensions.{name}'" import warnings + warnings.warn(msg, DeprecationWarning, stacklevel=3) return val diff --git a/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/METADATA index 8e361ee..adb32bc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/METADATA @@ -500,7 +500,7 @@ Version 0.13.3 -------------- - Fixed env creation with non-ASCII chars in path. See `# 49`_ - Fixed logging with unicode chars. See `# 96`_ -- Skip new lines at the end of requirements.txt. See `# 122`_ +- Skip new lines at the end of requirements.txt. See `# 122`_ - Fixed UnicodeDecodeError at build on non UTF-8 environment. See `# 124`_ .. _# 49: https://github.com/ekalinin/nodeenv/issues/49 diff --git a/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/WHEEL index 5f133db..b77b036 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/nodeenv-1.10.0.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: setuptools (80.9.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/nodeenv.py b/PPE2/.venv/lib/python3.12/site-packages/nodeenv.py index 02bc318..b8bca0e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/nodeenv.py +++ b/PPE2/.venv/lib/python3.12/site-packages/nodeenv.py @@ -2,12 +2,12 @@ # -*- coding: utf-8 -*- """ - nodeenv - ~~~~~~~ - Node.js virtual environment +nodeenv +~~~~~~~ +Node.js virtual environment - :copyright: (c) 2014 by Eugene Kalinin - :license: BSD, see LICENSE for more details. +:copyright: (c) 2014 by Eugene Kalinin +:license: BSD, see LICENSE for more details. """ import contextlib @@ -23,6 +23,7 @@ import operator import argparse import subprocess import tarfile + if sys.version_info < (3, 3): from pipes import quote as _quote else: @@ -34,29 +35,37 @@ import sysconfig import glob try: # pragma: no cover (py2 only) - from ConfigParser import SafeConfigParser as ConfigParser # pyright: ignore[reportMissingImports] + from ConfigParser import ( + SafeConfigParser as ConfigParser, + ) # pyright: ignore[reportMissingImports] + # noinspection PyCompatibility import urllib2 # pyright: ignore[reportMissingImports] - iteritems = operator.methodcaller('iteritems') + + iteritems = operator.methodcaller("iteritems") import httplib # pyright: ignore[reportMissingImports] + IncompleteRead = httplib.IncompleteRead except ImportError: # pragma: no cover (py3 only) from configparser import ConfigParser + # noinspection PyUnresolvedReferences import urllib.request as urllib2 - iteritems = operator.methodcaller('items') + + iteritems = operator.methodcaller("items") import http + IncompleteRead = http.client.IncompleteRead -nodeenv_version = '1.10.0' +nodeenv_version = "1.10.0" join = os.path.join abspath = os.path.abspath src_base_url = None is_PY3 = sys.version_info[0] >= 3 -is_WIN = platform.system() == 'Windows' -is_CYGWIN = platform.system().startswith(('CYGWIN', 'MSYS')) +is_WIN = platform.system() == "Windows" +is_CYGWIN = platform.system().startswith(("CYGWIN", "MSYS")) ignore_ssl_certs = False @@ -70,19 +79,19 @@ def to_utf8(text): if not text or is_PY3: return text - try: # unicode or pure ascii + try: # unicode or pure ascii return text.encode("utf8") except UnicodeDecodeError: - try: # successful UTF-8 decode means it's pretty sure UTF-8 + try: # successful UTF-8 decode means it's pretty sure UTF-8 text.decode("utf8") return text except UnicodeDecodeError: - try: # get desperate; and yes, this has a western hemisphere bias + try: # get desperate; and yes, this has a western hemisphere bias return text.decode("cp1252").encode("utf8") except UnicodeDecodeError: pass - return text # return unchanged, hope for the best + return text # return unchanged, hope for the best class Config(object): @@ -91,14 +100,14 @@ class Config(object): """ # Defaults - node = 'latest' - npm = 'latest' + node = "latest" + npm = "latest" with_npm = False - jobs = '2' + jobs = "2" without_ssl = False debug = False profile = False - make = 'make' + make = "make" prebuilt = True ignore_ssl_certs = False mirror = None @@ -122,8 +131,7 @@ class Config(object): continue for attr, val in iteritems(vars(cls)): - if attr.startswith('_') or not \ - ini_file.has_option(section, attr): + if attr.startswith("_") or not ini_file.has_option(section, attr): continue if isinstance(val, bool): @@ -132,8 +140,11 @@ class Config(object): val = ini_file.get(section, attr) if verbose: - print('CONFIG {0}: {1} = {2}'.format( - os.path.basename(configfile), attr, val)) + print( + "CONFIG {0}: {1} = {2}".format( + os.path.basename(configfile), attr, val + ) + ) setattr(cls, attr, val) if os.path.exists(".node-version"): @@ -146,14 +157,18 @@ class Config(object): Print defaults for the README. """ print(" [nodeenv]") - print(" " + "\n ".join( - "%s = %s" % (k, v) for k, v in sorted(iteritems(vars(cls))) - if not k.startswith('_'))) + print( + " " + + "\n ".join( + "%s = %s" % (k, v) + for k, v in sorted(iteritems(vars(cls))) + if not k.startswith("_") + ) + ) Config._default = dict( - (attr, val) for attr, val in iteritems(vars(Config)) - if not attr.startswith('_') + (attr, val) for attr, val in iteritems(vars(Config)) if not attr.startswith("_") ) @@ -161,24 +176,24 @@ def clear_output(out): """ Remove new-lines and """ - return out.decode('utf-8').replace('\n', '') + return out.decode("utf-8").replace("\n", "") def remove_env_bin_from_path(env, env_bin_dir): """ Remove bin directory of the current environment from PATH """ - return env.replace(env_bin_dir + ':', '') + return env.replace(env_bin_dir + ":", "") def parse_version(version_str): """ Parse version string to a tuple of integer parts """ - v = version_str.replace('v', '').split('.')[:3] + v = version_str.replace("v", "").split(".")[:3] # remove all after '+' in the PATCH part of the version if len(v) >= 3: - v[2] = v[2].split('+')[0] + v[2] = v[2].split("+")[0] return tuple(map(int, v)) @@ -186,9 +201,10 @@ def node_version_from_args(args): """ Parse the node version from the argparse args """ - if args.node == 'system': + if args.node == "system": out, err = subprocess.Popen( - ["node", "--version"], stdout=subprocess.PIPE).communicate() + ["node", "--version"], stdout=subprocess.PIPE + ).communicate() return parse_version(clear_output(out)) return parse_version(args.node) @@ -208,6 +224,7 @@ def create_logger(): fs = "%s" if getattr(record, "continued", False) else "%s\n" self.stream.write(fs % to_utf8(msg)) self.flush() + logging.StreamHandler.emit = emit # create console handler and set level to debug @@ -232,145 +249,223 @@ def make_parser(): """ Make a command line argument parser. """ - parser = argparse.ArgumentParser( - usage="%(prog)s [OPTIONS] DEST_DIR") + parser = argparse.ArgumentParser(usage="%(prog)s [OPTIONS] DEST_DIR") + + parser.add_argument("--version", action="version", version=nodeenv_version) parser.add_argument( - '--version', action='version', version=nodeenv_version) + "-n", + "--node", + dest="node", + metavar="NODE_VER", + default=Config.node, + help="The node.js version to use, e.g., " + "--node=0.4.3 will use the node-v0.4.3 " + "to create the new environment. " + "The default is last stable version (`latest`). " + "Use `lts` to use the latest LTS release. " + "Use `system` to use system-wide node.", + ) parser.add_argument( - '-n', '--node', dest='node', metavar='NODE_VER', default=Config.node, - help='The node.js version to use, e.g., ' - '--node=0.4.3 will use the node-v0.4.3 ' - 'to create the new environment. ' - 'The default is last stable version (`latest`). ' - 'Use `lts` to use the latest LTS release. ' - 'Use `system` to use system-wide node.') - - parser.add_argument( - '--mirror', - action="store", dest='mirror', default=Config.mirror, - help='Set mirror server of nodejs.org to download from.') + "--mirror", + action="store", + dest="mirror", + default=Config.mirror, + help="Set mirror server of nodejs.org to download from.", + ) if not is_WIN: parser.add_argument( - '-j', '--jobs', dest='jobs', default=Config.jobs, - help='Sets number of parallel commands at node.js compilation. ' - 'The default is 2 jobs.') + "-j", + "--jobs", + dest="jobs", + default=Config.jobs, + help="Sets number of parallel commands at node.js compilation. " + "The default is 2 jobs.", + ) parser.add_argument( - '--load-average', dest='load_average', - help='Sets maximum load average for executing parallel commands ' - 'at node.js compilation.') + "--load-average", + dest="load_average", + help="Sets maximum load average for executing parallel commands " + "at node.js compilation.", + ) parser.add_argument( - '--without-ssl', dest='without_ssl', - action='store_true', default=Config.without_ssl, - help='Build node.js without SSL support') + "--without-ssl", + dest="without_ssl", + action="store_true", + default=Config.without_ssl, + help="Build node.js without SSL support", + ) parser.add_argument( - '--debug', dest='debug', - action='store_true', default=Config.debug, - help='Build debug variant of the node.js') + "--debug", + dest="debug", + action="store_true", + default=Config.debug, + help="Build debug variant of the node.js", + ) parser.add_argument( - '--profile', dest='profile', - action='store_true', default=Config.profile, - help='Enable profiling for node.js') + "--profile", + dest="profile", + action="store_true", + default=Config.profile, + help="Enable profiling for node.js", + ) parser.add_argument( - '--make', '-m', dest='make_path', - metavar='MAKE_PATH', - help='Path to make command', - default=Config.make) + "--make", + "-m", + dest="make_path", + metavar="MAKE_PATH", + help="Path to make command", + default=Config.make, + ) parser.add_argument( - '--source', dest='prebuilt', - action='store_false', default=Config.prebuilt, - help='Install node.js from the source') + "--source", + dest="prebuilt", + action="store_false", + default=Config.prebuilt, + help="Install node.js from the source", + ) parser.add_argument( - '-v', '--verbose', - action='store_true', dest='verbose', default=False, - help="Verbose mode") + "-v", + "--verbose", + action="store_true", + dest="verbose", + default=False, + help="Verbose mode", + ) parser.add_argument( - '-q', '--quiet', - action='store_true', dest='quiet', default=False, - help="Quiet mode") + "-q", + "--quiet", + action="store_true", + dest="quiet", + default=False, + help="Quiet mode", + ) parser.add_argument( - '-C', '--config-file', dest='config_file', default=None, + "-C", + "--config-file", + dest="config_file", + default=None, help="Load a different file than '~/.nodeenvrc'. " - "Pass an empty string for no config (use built-in defaults).") + "Pass an empty string for no config (use built-in defaults).", + ) parser.add_argument( - '-r', '--requirements', - dest='requirements', default='', metavar='FILENAME', - help='Install all the packages listed in the given requirements file.') + "-r", + "--requirements", + dest="requirements", + default="", + metavar="FILENAME", + help="Install all the packages listed in the given requirements file.", + ) parser.add_argument( - '--prompt', dest='prompt', - help='Provides an alternative prompt prefix for this environment') + "--prompt", + dest="prompt", + help="Provides an alternative prompt prefix for this environment", + ) parser.add_argument( - '-l', '--list', dest='list', - action='store_true', default=False, - help='Lists available node.js versions') + "-l", + "--list", + dest="list", + action="store_true", + default=False, + help="Lists available node.js versions", + ) parser.add_argument( - '--update', dest='update', - action='store_true', default=False, - help='Install npm packages from file without node') + "--update", + dest="update", + action="store_true", + default=False, + help="Install npm packages from file without node", + ) parser.add_argument( - '--with-npm', dest='with_npm', - action='store_true', default=Config.with_npm, - help='Build without installing npm into the new virtual environment. ' - 'Required for node.js < 0.6.3. By default, the npm included with ' - 'node.js is used. Under Windows, this defaults to true.') + "--with-npm", + dest="with_npm", + action="store_true", + default=Config.with_npm, + help="Build without installing npm into the new virtual environment. " + "Required for node.js < 0.6.3. By default, the npm included with " + "node.js is used. Under Windows, this defaults to true.", + ) parser.add_argument( - '--npm', dest='npm', - metavar='NPM_VER', default=Config.npm, - help='The npm version to use, e.g., ' - '--npm=0.3.18 will use the npm-0.3.18.tgz ' - 'tarball to install. ' - 'The default is last available version (`latest`).') + "--npm", + dest="npm", + metavar="NPM_VER", + default=Config.npm, + help="The npm version to use, e.g., " + "--npm=0.3.18 will use the npm-0.3.18.tgz " + "tarball to install. " + "The default is last available version (`latest`).", + ) parser.add_argument( - '--no-npm-clean', dest='no_npm_clean', - action='store_true', default=False, - help='Skip the npm 0.x cleanup. Cleanup is enabled by default.') + "--no-npm-clean", + dest="no_npm_clean", + action="store_true", + default=False, + help="Skip the npm 0.x cleanup. Cleanup is enabled by default.", + ) parser.add_argument( - '--python-virtualenv', '-p', dest='python_virtualenv', - action='store_true', default=False, - help='Use current python virtualenv') + "--python-virtualenv", + "-p", + dest="python_virtualenv", + action="store_true", + default=False, + help="Use current python virtualenv", + ) parser.add_argument( - '--clean-src', '-c', dest='clean_src', - action='store_true', default=False, - help='Remove "src" directory after installation') + "--clean-src", + "-c", + dest="clean_src", + action="store_true", + default=False, + help='Remove "src" directory after installation', + ) parser.add_argument( - '--force', dest='force', - action='store_true', default=False, - help='Force installation in a pre-existing directory') + "--force", + dest="force", + action="store_true", + default=False, + help="Force installation in a pre-existing directory", + ) parser.add_argument( - '--prebuilt', dest='prebuilt', - action='store_true', default=Config.prebuilt, - help='Install node.js from prebuilt package (default)') + "--prebuilt", + dest="prebuilt", + action="store_true", + default=Config.prebuilt, + help="Install node.js from prebuilt package (default)", + ) parser.add_argument( - '--ignore_ssl_certs', dest='ignore_ssl_certs', - action='store_true', default=Config.ignore_ssl_certs, - help='Ignore certificates for package downloads. - UNSAFE -') + "--ignore_ssl_certs", + dest="ignore_ssl_certs", + action="store_true", + default=Config.ignore_ssl_certs, + help="Ignore certificates for package downloads. - UNSAFE -", + ) parser.add_argument( - metavar='DEST_DIR', dest='env_dir', nargs='?', - help='Destination directory') + metavar="DEST_DIR", dest="env_dir", nargs="?", help="Destination directory" + ) return parser @@ -391,8 +486,7 @@ def parse_args(check=True): else: # Make sure that explicitly provided files exist if not os.path.exists(args.config_file): - parser.error("Config file '{0}' doesn't exist!".format( - args.config_file)) + parser.error("Config file '{0}' doesn't exist!".format(args.config_file)) args.config_file = [args.config_file] if not check: @@ -400,8 +494,9 @@ def parse_args(check=True): if not args.list: if not args.python_virtualenv and not args.env_dir: - parser.error('You must provide a DEST_DIR or ' - 'use current python virtualenv') + parser.error( + "You must provide a DEST_DIR or " "use current python virtualenv" + ) return args @@ -411,16 +506,15 @@ def mkdir(path): Create directory """ if not os.path.exists(path): - logger.debug(' * Creating: %s ... ', path, extra=dict(continued=True)) + logger.debug(" * Creating: %s ... ", path, extra=dict(continued=True)) os.makedirs(path) - logger.debug('done.') + logger.debug("done.") else: - logger.debug(' * Directory %s already exists', path) + logger.debug(" * Directory %s already exists", path) def make_executable(filename): - mode_0755 = (stat.S_IRWXU | stat.S_IXGRP | - stat.S_IRGRP | stat.S_IROTH | stat.S_IXOTH) + mode_0755 = stat.S_IRWXU | stat.S_IXGRP | stat.S_IRGRP | stat.S_IROTH | stat.S_IXOTH os.chmod(filename, mode_0755) @@ -431,39 +525,39 @@ def writefile(dest, content, overwrite=True, append=False): """ content = to_utf8(content) if is_PY3 and not isinstance(content, bytes): - content = bytes(content, 'utf-8') + content = bytes(content, "utf-8") if not os.path.exists(dest): - logger.debug(' * Writing %s ... ', dest, extra=dict(continued=True)) - with open(dest, 'wb') as f: + logger.debug(" * Writing %s ... ", dest, extra=dict(continued=True)) + with open(dest, "wb") as f: f.write(content) make_executable(dest) - logger.debug('done.') + logger.debug("done.") return else: - with open(dest, 'rb') as f: + with open(dest, "rb") as f: c = f.read() if content in c: - logger.debug(' * Content %s already in place', dest) + logger.debug(" * Content %s already in place", dest) return if not overwrite: - logger.info(' * File %s exists with different content; ' - ' not overwriting', dest) + logger.info( + " * File %s exists with different content; " " not overwriting", dest + ) return if append: - logger.info(' * Appending data to %s', dest) - with open(dest, 'ab') as f: + logger.info(" * Appending data to %s", dest) + with open(dest, "ab") as f: f.write(content) return - logger.info(' * Overwriting %s with new content', dest) - with open(dest, 'wb') as f: + logger.info(" * Overwriting %s with new content", dest) + with open(dest, "wb") as f: f.write(content) -def callit(cmd, show_stdout=True, in_shell=False, - cwd=None, extra_env=None): +def callit(cmd, show_stdout=True, in_shell=False, cwd=None, extra_env=None): """ Execute cmd line in sub-shell """ @@ -473,14 +567,14 @@ def callit(cmd, show_stdout=True, in_shell=False, for part in cmd: if len(part) > 45: part = part[:20] + "..." + part[-20:] - if ' ' in part or '\n' in part or '"' in part or "'" in part: + if " " in part or "\n" in part or '"' in part or "'" in part: part = '"%s"' % part.replace('"', '\\"') cmd_parts.append(part) - cmd_desc = ' '.join(cmd_parts) + cmd_desc = " ".join(cmd_parts) logger.debug(" ** Running command %s" % cmd_desc) if in_shell: - cmd = ' '.join(cmd) + cmd = " ".join(cmd) # output stdout = subprocess.PIPE @@ -496,8 +590,14 @@ def callit(cmd, show_stdout=True, in_shell=False, # execute try: proc = subprocess.Popen( - cmd, stderr=subprocess.STDOUT, stdin=None, stdout=stdout, - cwd=cwd, env=env, shell=in_shell) + cmd, + stderr=subprocess.STDOUT, + stdin=None, + stdout=stdout, + cwd=cwd, + env=env, + shell=in_shell, + ) except Exception: e = sys.exc_info()[1] logger.error("Error %s while executing command %s" % (e, cmd_desc)) @@ -510,11 +610,11 @@ def callit(cmd, show_stdout=True, in_shell=False, break try: if is_WIN: - line = line.decode('mbcs').rstrip() + line = line.decode("mbcs").rstrip() else: - line = line.decode('utf8').rstrip() + line = line.decode("utf8").rstrip() except UnicodeDecodeError: - line = line.decode('cp866').rstrip() + line = line.decode("cp866").rstrip() all_output.append(line) if show_stdout: logger.info(line) @@ -525,62 +625,63 @@ def callit(cmd, show_stdout=True, in_shell=False, if show_stdout: for s in all_output: logger.critical(s) - raise OSError("Command %s failed with error code %s" - % (cmd_desc, proc.returncode)) + raise OSError( + "Command %s failed with error code %s" % (cmd_desc, proc.returncode) + ) return proc.returncode, all_output def get_root_url(version_str): if parse_version(version_str) > (0, 5): - return '%s/v%s/' % (src_base_url, version_str) + return "%s/v%s/" % (src_base_url, version_str) else: return src_base_url def is_x86_64_musl(): - return sysconfig.get_config_var('HOST_GNU_TYPE') == 'x86_64-pc-linux-musl' + return sysconfig.get_config_var("HOST_GNU_TYPE") == "x86_64-pc-linux-musl" def is_riscv64(): - return platform.machine() == 'riscv64' + return platform.machine() == "riscv64" def get_node_bin_url(version): archmap = { - 'x86': 'x86', # Windows Vista 32 - 'i686': 'x86', - 'x86_64': 'x64', # Linux Ubuntu 64 - 'amd64': 'x64', # FreeBSD 64bits - 'amd64': 'x64', # Windows Server 2012 R2 (x64) - 'armv6l': 'armv6l', # arm - 'armv7l': 'armv7l', - 'armv8l': 'armv7l', - 'aarch64': 'arm64', - 'arm64': 'arm64', - 'arm64/v8': 'arm64', - 'armv8': 'arm64', - 'armv8.4': 'arm64', - 'ppc64le': 'ppc64le', # Power PC - 's390x': 's390x', # IBM S390x - 'riscv64': 'riscv64', # RISCV 64 + "x86": "x86", # Windows Vista 32 + "i686": "x86", + "x86_64": "x64", # Linux Ubuntu 64 + "amd64": "x64", # FreeBSD 64bits + "amd64": "x64", # Windows Server 2012 R2 (x64) + "armv6l": "armv6l", # arm + "armv7l": "armv7l", + "armv8l": "armv7l", + "aarch64": "arm64", + "arm64": "arm64", + "arm64/v8": "arm64", + "armv8": "arm64", + "armv8.4": "arm64", + "ppc64le": "ppc64le", # Power PC + "s390x": "s390x", # IBM S390x + "riscv64": "riscv64", # RISCV 64 } sysinfo = { - 'system': platform.system().lower(), - 'arch': archmap[platform.machine().lower()], + "system": platform.system().lower(), + "arch": archmap[platform.machine().lower()], } if is_WIN or is_CYGWIN: - postfix = '-win-%(arch)s.zip' % sysinfo + postfix = "-win-%(arch)s.zip" % sysinfo elif is_x86_64_musl(): - postfix = '-linux-x64-musl.tar.gz' + postfix = "-linux-x64-musl.tar.gz" else: - postfix = '-%(system)s-%(arch)s.tar.gz' % sysinfo - filename = 'node-v%s%s' % (version, postfix) + postfix = "-%(system)s-%(arch)s.tar.gz" % sysinfo + filename = "node-v%s%s" % (version, postfix) return get_root_url(version) + filename def get_node_src_url(version): - tar_name = 'node-v%s.tar.gz' % version + tar_name = "node-v%s.tar.gz" % version return get_root_url(version) + tar_name @@ -602,8 +703,7 @@ def _download_node_file(node_url, n_attempt=3): return io.BytesIO(urlopen(node_url).read()) except IncompleteRead as e: logger.warning( - 'Incomplete read while reading ' - 'from {} - {}'.format(node_url, e) + "Incomplete read while reading " "from {} - {}".format(node_url, e) ) n_attempt -= 1 if n_attempt == 0: @@ -614,23 +714,22 @@ def download_node_src(node_url, src_dir, args): """ Download source code """ - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) dl_contents = _download_node_file(node_url) - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) if is_WIN or is_CYGWIN: ctx = zipfile.ZipFile(dl_contents) - members = operator.methodcaller('namelist') + members = operator.methodcaller("namelist") member_name = lambda s: s # noqa: E731 else: ctx = tarfile_open(fileobj=dl_contents) - members = operator.methodcaller('getmembers') - member_name = operator.attrgetter('name') + members = operator.methodcaller("getmembers") + member_name = operator.attrgetter("name") with ctx as archive: node_ver = re.escape(args.node) - rexp_string = r"node-v%s[^/]*/(README\.md|CHANGELOG\.md|LICENSE)"\ - % node_ver + rexp_string = r"node-v%s[^/]*/(README\.md|CHANGELOG\.md|LICENSE)" % node_ver extract_list = [ member for member in members(archive) @@ -641,7 +740,7 @@ def download_node_src(node_url, src_dir, args): def urlopen(url): home_url = "https://github.com/ekalinin/nodeenv/" - headers = {'User-Agent': 'nodeenv/%s (%s)' % (nodeenv_version, home_url)} + headers = {"User-Agent": "nodeenv/%s (%s)" % (nodeenv_version, home_url)} req = urllib2.Request(url, None, headers) if ignore_ssl_certs: # py27: protocol required, py3: optional @@ -651,6 +750,7 @@ def urlopen(url): return urllib2.urlopen(req, context=context) return urllib2.urlopen(req) + # --------------------------------------------------------- # Virtual environment functions @@ -677,81 +777,76 @@ def copy_node_from_prebuilt(env_dir, src_dir, node_version): """ Copy prebuilt binaries into environment """ - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) if is_WIN: - dest = join(env_dir, 'Scripts') + dest = join(env_dir, "Scripts") mkdir(dest) elif is_CYGWIN: - dest = join(env_dir, 'bin') + dest = join(env_dir, "bin") mkdir(dest) # write here to avoid https://bugs.python.org/issue35650 - writefile(join(env_dir, 'bin', 'node'), CYGWIN_NODE) + writefile(join(env_dir, "bin", "node"), CYGWIN_NODE) else: dest = env_dir - src_folder_tpl = src_dir + to_utf8('/node-v%s*' % node_version) - src_folder, = glob.glob(src_folder_tpl) + src_folder_tpl = src_dir + to_utf8("/node-v%s*" % node_version) + (src_folder,) = glob.glob(src_folder_tpl) copytree(src_folder, dest, True) if is_CYGWIN: - for filename in ('npm', 'npx', 'node.exe'): - filename = join(env_dir, 'bin', filename) + for filename in ("npm", "npx", "node.exe"): + filename = join(env_dir, "bin", filename) if os.path.exists(filename): make_executable(filename) - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) def build_node_from_src(env_dir, src_dir, node_src_dir, args): env = {} - make_param_names = ['load-average', 'jobs'] + make_param_names = ["load-average", "jobs"] make_param_values = map( - lambda x: getattr(args, x.replace('-', '_')), - make_param_names) + lambda x: getattr(args, x.replace("-", "_")), make_param_names + ) make_opts = [ - '--{0}={1}'.format(name, value) - if len(value) > 0 else '--{0}'.format(name) + "--{0}={1}".format(name, value) if len(value) > 0 else "--{0}".format(name) for name, value in zip(make_param_names, make_param_values) if value is not None ] - if getattr(sys.version_info, 'major', sys.version_info[0]) > 2: + if getattr(sys.version_info, "major", sys.version_info[0]) > 2: # Currently, the node.js build scripts are using python2.*, # therefore we need to temporarily point python exec to the # python 2.* version in this case. - python2_path = shutil.which('python2') + python2_path = shutil.which("python2") if not python2_path: raise OSError( - 'Python >=3.0 virtualenv detected, but no python2 ' - 'command (required for building node.js) was found' + "Python >=3.0 virtualenv detected, but no python2 " + "command (required for building node.js) was found" ) - logger.debug(' * Temporarily pointing python to %s', python2_path) - node_tmpbin_dir = join(src_dir, 'tmpbin') - node_tmpbin_link = join(node_tmpbin_dir, 'python') + logger.debug(" * Temporarily pointing python to %s", python2_path) + node_tmpbin_dir = join(src_dir, "tmpbin") + node_tmpbin_link = join(node_tmpbin_dir, "python") mkdir(node_tmpbin_dir) if not os.path.exists(node_tmpbin_link): - callit(['ln', '-s', python2_path, node_tmpbin_link]) - env['PATH'] = '{}:{}'.format(node_tmpbin_dir, - os.environ.get('PATH', '')) + callit(["ln", "-s", python2_path, node_tmpbin_link]) + env["PATH"] = "{}:{}".format(node_tmpbin_dir, os.environ.get("PATH", "")) - conf_cmd = [ - './configure', - '--prefix=%s' % _quote(env_dir) - ] + conf_cmd = ["./configure", "--prefix=%s" % _quote(env_dir)] if args.without_ssl: - conf_cmd.append('--without-ssl') + conf_cmd.append("--without-ssl") if args.debug: - conf_cmd.append('--debug') + conf_cmd.append("--debug") if args.profile: - conf_cmd.append('--profile') + conf_cmd.append("--profile") make_cmd = args.make_path callit(conf_cmd, args.verbose, True, node_src_dir, env) - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) callit([make_cmd] + make_opts, args.verbose, True, node_src_dir, env) - logger.info('.', extra=dict(continued=True)) - callit([make_cmd + ' install'], args.verbose, True, node_src_dir, env) + logger.info(".", extra=dict(continued=True)) + callit([make_cmd + " install"], args.verbose, True, node_src_dir, env) def install_node(env_dir, src_dir, args): @@ -763,17 +858,18 @@ def install_node(env_dir, src_dir, args): install_node_wrapped(env_dir, src_dir, args) except BaseException: # this restores the newline suppressed by continued=True - logger.info('') + logger.info("") raise def install_node_wrapped(env_dir, src_dir, args): env_dir = abspath(env_dir) - node_src_dir = join(src_dir, to_utf8('node-v%s' % args.node)) + node_src_dir = join(src_dir, to_utf8("node-v%s" % args.node)) src_type = "prebuilt" if args.prebuilt else "source" - logger.info(' * Install %s node (%s) ' % (src_type, args.node), - extra=dict(continued=True)) + logger.info( + " * Install %s node (%s) " % (src_type, args.node), extra=dict(continued=True) + ) if args.prebuilt: node_url = get_node_bin_url(args.node) @@ -787,19 +883,18 @@ def install_node_wrapped(env_dir, src_dir, args): except urllib2.HTTPError: if "arm64" in node_url: # if arm64 not found, try x64 - download_node_src(node_url.replace('arm64', 'x64'), - src_dir, args) + download_node_src(node_url.replace("arm64", "x64"), src_dir, args) else: - logger.warning('Failed to download from %s' % node_url) + logger.warning("Failed to download from %s" % node_url) - logger.info('.', extra=dict(continued=True)) + logger.info(".", extra=dict(continued=True)) if args.prebuilt: copy_node_from_prebuilt(env_dir, src_dir, args.node) else: build_node_from_src(env_dir, src_dir, node_src_dir, args) - logger.info(' done.') + logger.info(" done.") def install_npm(env_dir, _src_dir, args): @@ -807,20 +902,20 @@ def install_npm(env_dir, _src_dir, args): Download source code for npm, unpack it and install it in virtual environment. """ - logger.info(' * Install npm.js (%s) ... ' % args.npm, - extra=dict(continued=True)) + logger.info(" * Install npm.js (%s) ... " % args.npm, extra=dict(continued=True)) env = dict( os.environ, - clean='no' if args.no_npm_clean else 'yes', + clean="no" if args.no_npm_clean else "yes", npm_install=args.npm, ) proc = subprocess.Popen( ( - 'sh', '-c', - '. {0} && npm install -g npm@{1}'.format( - _quote(join(env_dir, 'bin', 'activate')), + "sh", + "-c", + ". {0} && npm install -g npm@{1}".format( + _quote(join(env_dir, "bin", "activate")), args.npm, - ) + ), ), env=env, stdin=subprocess.PIPE, @@ -830,7 +925,7 @@ def install_npm(env_dir, _src_dir, args): out, _ = proc.communicate() if args.verbose: logger.info(out) - logger.info('done.') + logger.info("done.") def install_npm_win(env_dir, src_dir, args): @@ -838,68 +933,66 @@ def install_npm_win(env_dir, src_dir, args): Download source code for npm, unpack it and install it in virtual environment. """ - logger.info(' * Install npm.js (%s) ... ' % args.npm, - extra=dict(continued=True)) - npm_url = 'https://github.com/npm/cli/archive/v%s.zip' % args.npm + logger.info(" * Install npm.js (%s) ... " % args.npm, extra=dict(continued=True)) + npm_url = "https://github.com/npm/cli/archive/v%s.zip" % args.npm npm_contents = io.BytesIO(urlopen(npm_url).read()) - bin_path = join(env_dir, 'Scripts') - node_modules_path = join(bin_path, 'node_modules', 'npm') + bin_path = join(env_dir, "Scripts") + node_modules_path = join(bin_path, "node_modules", "npm") if os.path.exists(node_modules_path): shutil.rmtree(node_modules_path) - if os.path.exists(join(bin_path, 'npm.cmd')): - os.remove(join(bin_path, 'npm.cmd')) + if os.path.exists(join(bin_path, "npm.cmd")): + os.remove(join(bin_path, "npm.cmd")) - if os.path.exists(join(bin_path, 'npm-cli.js')): - os.remove(join(bin_path, 'npm-cli.js')) + if os.path.exists(join(bin_path, "npm-cli.js")): + os.remove(join(bin_path, "npm-cli.js")) - with zipfile.ZipFile(npm_contents, 'r') as zipf: + with zipfile.ZipFile(npm_contents, "r") as zipf: zipf.extractall(src_dir) - npm_ver = 'cli-%s' % args.npm + npm_ver = "cli-%s" % args.npm shutil.copytree(join(src_dir, npm_ver), node_modules_path) - shutil.copy(join(src_dir, npm_ver, 'bin', 'npm.cmd'), - join(bin_path, 'npm.cmd')) - shutil.copy(join(src_dir, npm_ver, 'bin', 'npm-cli.js'), - join(bin_path, 'npm-cli.js')) + shutil.copy(join(src_dir, npm_ver, "bin", "npm.cmd"), join(bin_path, "npm.cmd")) + shutil.copy( + join(src_dir, npm_ver, "bin", "npm-cli.js"), join(bin_path, "npm-cli.js") + ) if is_CYGWIN: - shutil.copy(join(bin_path, 'npm-cli.js'), - join(env_dir, 'bin', 'npm-cli.js')) - shutil.copytree(join(bin_path, 'node_modules'), - join(env_dir, 'bin', 'node_modules')) - npm_gh_url = 'https://raw.githubusercontent.com/npm/cli' - npm_bin_url = '{}/{}/bin/npm'.format(npm_gh_url, args.npm) - writefile(join(env_dir, 'bin', 'npm'), urlopen(npm_bin_url).read()) + shutil.copy(join(bin_path, "npm-cli.js"), join(env_dir, "bin", "npm-cli.js")) + shutil.copytree( + join(bin_path, "node_modules"), join(env_dir, "bin", "node_modules") + ) + npm_gh_url = "https://raw.githubusercontent.com/npm/cli" + npm_bin_url = "{}/{}/bin/npm".format(npm_gh_url, args.npm) + writefile(join(env_dir, "bin", "npm"), urlopen(npm_bin_url).read()) def install_packages(env_dir, args): """ Install node.js packages via npm """ - logger.info(' * Install node.js packages ... ', - extra=dict(continued=True)) - packages = [package.strip() for package in - open(args.requirements).readlines()] - activate_path = join(env_dir, 'bin', 'activate') + logger.info(" * Install node.js packages ... ", extra=dict(continued=True)) + packages = [package.strip() for package in open(args.requirements).readlines()] + activate_path = join(env_dir, "bin", "activate") real_npm_ver = args.npm if args.npm.count(".") == 2 else args.npm + ".0" if args.npm == "latest" or real_npm_ver >= "1.0.0": - cmd = '. ' + _quote(activate_path) + \ - ' && npm install -g %(pack)s' + cmd = ". " + _quote(activate_path) + " && npm install -g %(pack)s" else: - cmd = '. ' + _quote(activate_path) + \ - ' && npm install %(pack)s' + \ - ' && npm activate %(pack)s' + cmd = ( + ". " + + _quote(activate_path) + + " && npm install %(pack)s" + + " && npm activate %(pack)s" + ) for package in packages: if not package: continue - callit(cmd=[ - cmd % {"pack": package}], show_stdout=args.verbose, in_shell=True) + callit(cmd=[cmd % {"pack": package}], show_stdout=args.verbose, in_shell=True) - logger.info('done.') + logger.info("done.") def install_activate(env_dir, args): @@ -908,20 +1001,16 @@ def install_activate(env_dir, args): """ if is_WIN: files = { - 'activate.bat': ACTIVATE_BAT, + "activate.bat": ACTIVATE_BAT, "deactivate.bat": DEACTIVATE_BAT, - "Activate.ps1": ACTIVATE_PS1 + "Activate.ps1": ACTIVATE_PS1, } - bin_dir = join(env_dir, 'Scripts') + bin_dir = join(env_dir, "Scripts") shim_node = join(bin_dir, "node.exe") shim_nodejs = join(bin_dir, "nodejs.exe") else: - files = { - 'activate': ACTIVATE_SH, - 'activate.fish': ACTIVATE_FISH, - 'shim': SHIM - } - bin_dir = join(env_dir, 'bin') + files = {"activate": ACTIVATE_SH, "activate.fish": ACTIVATE_FISH, "shim": SHIM} + bin_dir = join(env_dir, "bin") shim_node = join(bin_dir, "node") shim_nodejs = join(bin_dir, "nodejs") if is_CYGWIN: @@ -930,11 +1019,11 @@ def install_activate(env_dir, args): if args.node == "system": files["node"] = SHIM - mod_dir = join('lib', 'node_modules') - prompt = args.prompt or '(%s)' % os.path.basename(os.path.abspath(env_dir)) + mod_dir = join("lib", "node_modules") + prompt = args.prompt or "(%s)" % os.path.basename(os.path.abspath(env_dir)) if args.node == "system": - path_var = remove_env_bin_from_path(os.environ['PATH'], bin_dir) + path_var = remove_env_bin_from_path(os.environ["PATH"], bin_dir) for candidate in ("nodejs", "node"): shim_node = shutil.which(candidate, path=path_var) if shim_node is not None: @@ -943,20 +1032,20 @@ def install_activate(env_dir, args): for name, content in files.items(): file_path = join(bin_dir, name) - content = content.replace('__NODE_VIRTUAL_PROMPT__', prompt) - content = content.replace('__NODE_VIRTUAL_ENV__', - os.path.abspath(env_dir)) - content = content.replace('__SHIM_NODE__', shim_node) - content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) - content = content.replace('__MOD_NAME__', mod_dir) + content = content.replace("__NODE_VIRTUAL_PROMPT__", prompt) + content = content.replace("__NODE_VIRTUAL_ENV__", os.path.abspath(env_dir)) + content = content.replace("__SHIM_NODE__", shim_node) + content = content.replace("__BIN_NAME__", os.path.basename(bin_dir)) + content = content.replace("__MOD_NAME__", mod_dir) if is_CYGWIN: _, cyg_bin_dir = callit( - ['cygpath', '-w', os.path.abspath(bin_dir)], - show_stdout=False, in_shell=False) - content = content.replace('__NPM_CONFIG_PREFIX__', cyg_bin_dir[0]) + ["cygpath", "-w", os.path.abspath(bin_dir)], + show_stdout=False, + in_shell=False, + ) + content = content.replace("__NPM_CONFIG_PREFIX__", cyg_bin_dir[0]) else: - content = content.replace('__NPM_CONFIG_PREFIX__', - '$NODE_VIRTUAL_ENV') + content = content.replace("__NPM_CONFIG_PREFIX__", "$NODE_VIRTUAL_ENV") # if we call in the same environment: # $ nodeenv -p --prebuilt # $ nodeenv -p --node=system @@ -965,8 +1054,8 @@ def install_activate(env_dir, args): # existing python's virtual environment need_append = False if args.python_virtualenv: - disable_prompt = DISABLE_PROMPT.get(name, '') - enable_prompt = ENABLE_PROMPT.get(name, '') + disable_prompt = DISABLE_PROMPT.get(name, "") + enable_prompt = ENABLE_PROMPT.get(name, "") content = disable_prompt + content + enable_prompt need_append = bool(disable_prompt) writefile(file_path, content, append=need_append) @@ -974,16 +1063,16 @@ def install_activate(env_dir, args): if not os.path.exists(shim_nodejs): if is_WIN: try: - callit(['mklink', shim_nodejs, 'node.exe'], True, True) + callit(["mklink", shim_nodejs, "node.exe"], True, True) except OSError: - logger.error('Error: Failed to create nodejs.exe link') + logger.error("Error: Failed to create nodejs.exe link") else: os.symlink("node", shim_nodejs) def set_predeactivate_hook(env_dir): if not is_WIN: - with open(join(env_dir, 'bin', 'predeactivate'), 'a') as hook: + with open(join(env_dir, "bin", "predeactivate"), "a") as hook: hook.write(PREDEACTIVATE_SH) @@ -992,18 +1081,18 @@ def create_environment(env_dir, args): Creates a new environment in ``env_dir``. """ if os.path.exists(env_dir) and not args.python_virtualenv: - logger.info(' * Environment already exists: %s', env_dir) + logger.info(" * Environment already exists: %s", env_dir) if not args.force: sys.exit(2) - src_dir = to_utf8(abspath(join(env_dir, 'src'))) + src_dir = to_utf8(abspath(join(env_dir, "src"))) mkdir(src_dir) if args.node != "system": install_node(env_dir, src_dir, args) else: - mkdir(join(env_dir, 'bin')) - mkdir(join(env_dir, 'lib')) - mkdir(join(env_dir, 'lib', 'node_modules')) + mkdir(join(env_dir, "bin")) + mkdir(join(env_dir, "lib")) + mkdir(join(env_dir, "lib", "node_modules")) # activate script install must be # before npm install, npm use activate # for install @@ -1021,12 +1110,12 @@ def create_environment(env_dir, args): def _get_versions_json(): - response = urlopen('%s/index.json' % src_base_url) - return json.loads(response.read().decode('UTF-8')) + response = urlopen("%s/index.json" % src_base_url) + return json.loads(response.read().decode("UTF-8")) def get_node_versions(): - return [dct['version'].lstrip('v') for dct in _get_versions_json()][::-1] + return [dct["version"].lstrip("v") for dct in _get_versions_json()][::-1] def print_node_versions(): @@ -1034,11 +1123,9 @@ def print_node_versions(): Prints into stdout all available node.js versions """ versions = get_node_versions() - chunks_of_8 = [ - versions[pos:pos + 8] for pos in range(0, len(versions), 8) - ] + chunks_of_8 = [versions[pos : pos + 8] for pos in range(0, len(versions), 8)] for chunk in chunks_of_8: - logger.info('\t'.join(chunk)) + logger.info("\t".join(chunk)) def _get_last_node_version(lts=False): @@ -1048,18 +1135,20 @@ def _get_last_node_version(lts=False): print({"x86": is_x86_64_musl(), "risc": is_riscv64(), "lts": lts}) def version_filter(v): - if lts and not v['lts']: + if lts and not v["lts"]: return False - if is_x86_64_musl() and "linux-x64-musl" not in v['files']: + if is_x86_64_musl() and "linux-x64-musl" not in v["files"]: return False - elif is_riscv64() and "linux-riscv64" not in v['files']: + elif is_riscv64() and "linux-riscv64" not in v["files"]: return False return True - return next((v['version'].lstrip('v') - for v in _get_versions_json() if version_filter(v)), None) + return next( + (v["version"].lstrip("v") for v in _get_versions_json() if version_filter(v)), + None, + ) def get_last_stable_node_version(): @@ -1078,16 +1167,16 @@ def get_last_lts_node_version(): def get_env_dir(args): if args.python_virtualenv: - if hasattr(sys, 'real_prefix'): + if hasattr(sys, "real_prefix"): res = sys.prefix - elif hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix: + elif hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix: res = sys.prefix - elif 'CONDA_PREFIX' in os.environ: + elif "CONDA_PREFIX" in os.environ: res = sys.prefix - elif 'VIRTUAL_ENV' in os.environ: - res = os.environ['VIRTUAL_ENV'] + elif "VIRTUAL_ENV" in os.environ: + res = os.environ["VIRTUAL_ENV"] else: - logger.error('No python virtualenv is available') + logger.error("No python virtualenv is available") sys.exit(2) else: res = args.env_dir @@ -1110,8 +1199,8 @@ def main(): args = parse_args() - if args.node.lower() == 'system' and is_WIN: - logger.error('Installing system node.js on win32 is not supported!') + if args.node.lower() == "system" and is_WIN: + logger.error("Installing system node.js on win32 is not supported!") exit(1) global src_base_url @@ -1121,21 +1210,21 @@ def main(): src_domain = None if args.mirror: - if '://' in args.mirror: + if "://" in args.mirror: src_base_url = args.mirror else: src_domain = args.mirror # use unofficial builds only if musl and no explicitly chosen mirror elif is_x86_64_musl() or is_riscv64(): - src_domain = 'unofficial-builds.nodejs.org' + src_domain = "unofficial-builds.nodejs.org" else: - src_domain = 'nodejs.org' + src_domain = "nodejs.org" if src_base_url is None: - src_base_url = 'https://%s/download/release' % src_domain + src_base_url = "https://%s/download/release" % src_domain - if not args.node or args.node.lower() == 'latest': + if not args.node or args.node.lower() == "latest": args.node = get_last_stable_node_version() - elif args.node.lower() == 'lts': + elif args.node.lower() == "lts": args.node = get_last_lts_node_version() if args.list: @@ -1152,13 +1241,13 @@ def main(): # Shell scripts content DISABLE_PROMPT = { - 'activate': """ + "activate": """ # disable nodeenv's prompt # (prompt already changed by original virtualenv's script) # https://github.com/ekalinin/nodeenv/issues/26 NODE_VIRTUAL_ENV_DISABLE_PROMPT=1 """, - 'activate.fish': """ + "activate.fish": """ # disable nodeenv's prompt # (prompt already changed by original virtualenv's script) # https://github.com/ekalinin/nodeenv/issues/26 @@ -1167,10 +1256,10 @@ set NODE_VIRTUAL_ENV_DISABLE_PROMPT 1 } ENABLE_PROMPT = { - 'activate': """ + "activate": """ unset NODE_VIRTUAL_ENV_DISABLE_PROMPT """, - 'activate.fish': """ + "activate.fish": """ set -e NODE_VIRTUAL_ENV_DISABLE_PROMPT """, } @@ -1562,5 +1651,5 @@ fi exec $(dirname "$0")/node.exe "$@" """ -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/PPE2/.venv/lib/python3.12/site-packages/packaging-26.0.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/packaging-26.0.dist-info/METADATA index 3200e60..1c45423 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/packaging-26.0.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/packaging-26.0.dist-info/METADATA @@ -104,4 +104,3 @@ Please review the ``CHANGELOG.rst`` file or the `Changelog documentation`_ for recent changes and project history. .. _`Changelog documentation`: https://packaging.pypa.io/en/latest/changelog/ - diff --git a/PPE2/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py b/PPE2/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py index e6d20dd..bf80904 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py +++ b/PPE2/.venv/lib/python3.12/site-packages/packaging/_tokenizer.py @@ -118,9 +118,9 @@ class Tokenizer: another check. If `peek` is set to `True`, the token is not loaded and would need to be checked again. """ - assert self.next_token is None, ( - f"Cannot check for {name!r}, already have {self.next_token!r}" - ) + assert ( + self.next_token is None + ), f"Cannot check for {name!r}, already have {self.next_token!r}" assert name in self.rules, f"Unknown token name: {name!r}" expression = self.rules[name] diff --git a/PPE2/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py b/PPE2/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py index a277af2..7fabf12 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py +++ b/PPE2/.venv/lib/python3.12/site-packages/packaging/licenses/_spdx.py @@ -1,799 +1,992 @@ - from __future__ import annotations from typing import TypedDict + class SPDXLicense(TypedDict): id: str deprecated: bool + class SPDXException(TypedDict): id: str deprecated: bool -VERSION = '3.27.0' +VERSION = "3.27.0" LICENSES: dict[str, SPDXLicense] = { - '0bsd': {'id': '0BSD', 'deprecated': False}, - '3d-slicer-1.0': {'id': '3D-Slicer-1.0', 'deprecated': False}, - 'aal': {'id': 'AAL', 'deprecated': False}, - 'abstyles': {'id': 'Abstyles', 'deprecated': False}, - 'adacore-doc': {'id': 'AdaCore-doc', 'deprecated': False}, - 'adobe-2006': {'id': 'Adobe-2006', 'deprecated': False}, - 'adobe-display-postscript': {'id': 'Adobe-Display-PostScript', 'deprecated': False}, - 'adobe-glyph': {'id': 'Adobe-Glyph', 'deprecated': False}, - 'adobe-utopia': {'id': 'Adobe-Utopia', 'deprecated': False}, - 'adsl': {'id': 'ADSL', 'deprecated': False}, - 'afl-1.1': {'id': 'AFL-1.1', 'deprecated': False}, - 'afl-1.2': {'id': 'AFL-1.2', 'deprecated': False}, - 'afl-2.0': {'id': 'AFL-2.0', 'deprecated': False}, - 'afl-2.1': {'id': 'AFL-2.1', 'deprecated': False}, - 'afl-3.0': {'id': 'AFL-3.0', 'deprecated': False}, - 'afmparse': {'id': 'Afmparse', 'deprecated': False}, - 'agpl-1.0': {'id': 'AGPL-1.0', 'deprecated': True}, - 'agpl-1.0-only': {'id': 'AGPL-1.0-only', 'deprecated': False}, - 'agpl-1.0-or-later': {'id': 'AGPL-1.0-or-later', 'deprecated': False}, - 'agpl-3.0': {'id': 'AGPL-3.0', 'deprecated': True}, - 'agpl-3.0-only': {'id': 'AGPL-3.0-only', 'deprecated': False}, - 'agpl-3.0-or-later': {'id': 'AGPL-3.0-or-later', 'deprecated': False}, - 'aladdin': {'id': 'Aladdin', 'deprecated': False}, - 'amd-newlib': {'id': 'AMD-newlib', 'deprecated': False}, - 'amdplpa': {'id': 'AMDPLPA', 'deprecated': False}, - 'aml': {'id': 'AML', 'deprecated': False}, - 'aml-glslang': {'id': 'AML-glslang', 'deprecated': False}, - 'ampas': {'id': 'AMPAS', 'deprecated': False}, - 'antlr-pd': {'id': 'ANTLR-PD', 'deprecated': False}, - 'antlr-pd-fallback': {'id': 'ANTLR-PD-fallback', 'deprecated': False}, - 'any-osi': {'id': 'any-OSI', 'deprecated': False}, - 'any-osi-perl-modules': {'id': 'any-OSI-perl-modules', 'deprecated': False}, - 'apache-1.0': {'id': 'Apache-1.0', 'deprecated': False}, - 'apache-1.1': {'id': 'Apache-1.1', 'deprecated': False}, - 'apache-2.0': {'id': 'Apache-2.0', 'deprecated': False}, - 'apafml': {'id': 'APAFML', 'deprecated': False}, - 'apl-1.0': {'id': 'APL-1.0', 'deprecated': False}, - 'app-s2p': {'id': 'App-s2p', 'deprecated': False}, - 'apsl-1.0': {'id': 'APSL-1.0', 'deprecated': False}, - 'apsl-1.1': {'id': 'APSL-1.1', 'deprecated': False}, - 'apsl-1.2': {'id': 'APSL-1.2', 'deprecated': False}, - 'apsl-2.0': {'id': 'APSL-2.0', 'deprecated': False}, - 'arphic-1999': {'id': 'Arphic-1999', 'deprecated': False}, - 'artistic-1.0': {'id': 'Artistic-1.0', 'deprecated': False}, - 'artistic-1.0-cl8': {'id': 'Artistic-1.0-cl8', 'deprecated': False}, - 'artistic-1.0-perl': {'id': 'Artistic-1.0-Perl', 'deprecated': False}, - 'artistic-2.0': {'id': 'Artistic-2.0', 'deprecated': False}, - 'artistic-dist': {'id': 'Artistic-dist', 'deprecated': False}, - 'aspell-ru': {'id': 'Aspell-RU', 'deprecated': False}, - 'aswf-digital-assets-1.0': {'id': 'ASWF-Digital-Assets-1.0', 'deprecated': False}, - 'aswf-digital-assets-1.1': {'id': 'ASWF-Digital-Assets-1.1', 'deprecated': False}, - 'baekmuk': {'id': 'Baekmuk', 'deprecated': False}, - 'bahyph': {'id': 'Bahyph', 'deprecated': False}, - 'barr': {'id': 'Barr', 'deprecated': False}, - 'bcrypt-solar-designer': {'id': 'bcrypt-Solar-Designer', 'deprecated': False}, - 'beerware': {'id': 'Beerware', 'deprecated': False}, - 'bitstream-charter': {'id': 'Bitstream-Charter', 'deprecated': False}, - 'bitstream-vera': {'id': 'Bitstream-Vera', 'deprecated': False}, - 'bittorrent-1.0': {'id': 'BitTorrent-1.0', 'deprecated': False}, - 'bittorrent-1.1': {'id': 'BitTorrent-1.1', 'deprecated': False}, - 'blessing': {'id': 'blessing', 'deprecated': False}, - 'blueoak-1.0.0': {'id': 'BlueOak-1.0.0', 'deprecated': False}, - 'boehm-gc': {'id': 'Boehm-GC', 'deprecated': False}, - 'boehm-gc-without-fee': {'id': 'Boehm-GC-without-fee', 'deprecated': False}, - 'borceux': {'id': 'Borceux', 'deprecated': False}, - 'brian-gladman-2-clause': {'id': 'Brian-Gladman-2-Clause', 'deprecated': False}, - 'brian-gladman-3-clause': {'id': 'Brian-Gladman-3-Clause', 'deprecated': False}, - 'bsd-1-clause': {'id': 'BSD-1-Clause', 'deprecated': False}, - 'bsd-2-clause': {'id': 'BSD-2-Clause', 'deprecated': False}, - 'bsd-2-clause-darwin': {'id': 'BSD-2-Clause-Darwin', 'deprecated': False}, - 'bsd-2-clause-first-lines': {'id': 'BSD-2-Clause-first-lines', 'deprecated': False}, - 'bsd-2-clause-freebsd': {'id': 'BSD-2-Clause-FreeBSD', 'deprecated': True}, - 'bsd-2-clause-netbsd': {'id': 'BSD-2-Clause-NetBSD', 'deprecated': True}, - 'bsd-2-clause-patent': {'id': 'BSD-2-Clause-Patent', 'deprecated': False}, - 'bsd-2-clause-pkgconf-disclaimer': {'id': 'BSD-2-Clause-pkgconf-disclaimer', 'deprecated': False}, - 'bsd-2-clause-views': {'id': 'BSD-2-Clause-Views', 'deprecated': False}, - 'bsd-3-clause': {'id': 'BSD-3-Clause', 'deprecated': False}, - 'bsd-3-clause-acpica': {'id': 'BSD-3-Clause-acpica', 'deprecated': False}, - 'bsd-3-clause-attribution': {'id': 'BSD-3-Clause-Attribution', 'deprecated': False}, - 'bsd-3-clause-clear': {'id': 'BSD-3-Clause-Clear', 'deprecated': False}, - 'bsd-3-clause-flex': {'id': 'BSD-3-Clause-flex', 'deprecated': False}, - 'bsd-3-clause-hp': {'id': 'BSD-3-Clause-HP', 'deprecated': False}, - 'bsd-3-clause-lbnl': {'id': 'BSD-3-Clause-LBNL', 'deprecated': False}, - 'bsd-3-clause-modification': {'id': 'BSD-3-Clause-Modification', 'deprecated': False}, - 'bsd-3-clause-no-military-license': {'id': 'BSD-3-Clause-No-Military-License', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-license': {'id': 'BSD-3-Clause-No-Nuclear-License', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-license-2014': {'id': 'BSD-3-Clause-No-Nuclear-License-2014', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-warranty': {'id': 'BSD-3-Clause-No-Nuclear-Warranty', 'deprecated': False}, - 'bsd-3-clause-open-mpi': {'id': 'BSD-3-Clause-Open-MPI', 'deprecated': False}, - 'bsd-3-clause-sun': {'id': 'BSD-3-Clause-Sun', 'deprecated': False}, - 'bsd-4-clause': {'id': 'BSD-4-Clause', 'deprecated': False}, - 'bsd-4-clause-shortened': {'id': 'BSD-4-Clause-Shortened', 'deprecated': False}, - 'bsd-4-clause-uc': {'id': 'BSD-4-Clause-UC', 'deprecated': False}, - 'bsd-4.3reno': {'id': 'BSD-4.3RENO', 'deprecated': False}, - 'bsd-4.3tahoe': {'id': 'BSD-4.3TAHOE', 'deprecated': False}, - 'bsd-advertising-acknowledgement': {'id': 'BSD-Advertising-Acknowledgement', 'deprecated': False}, - 'bsd-attribution-hpnd-disclaimer': {'id': 'BSD-Attribution-HPND-disclaimer', 'deprecated': False}, - 'bsd-inferno-nettverk': {'id': 'BSD-Inferno-Nettverk', 'deprecated': False}, - 'bsd-protection': {'id': 'BSD-Protection', 'deprecated': False}, - 'bsd-source-beginning-file': {'id': 'BSD-Source-beginning-file', 'deprecated': False}, - 'bsd-source-code': {'id': 'BSD-Source-Code', 'deprecated': False}, - 'bsd-systemics': {'id': 'BSD-Systemics', 'deprecated': False}, - 'bsd-systemics-w3works': {'id': 'BSD-Systemics-W3Works', 'deprecated': False}, - 'bsl-1.0': {'id': 'BSL-1.0', 'deprecated': False}, - 'busl-1.1': {'id': 'BUSL-1.1', 'deprecated': False}, - 'bzip2-1.0.5': {'id': 'bzip2-1.0.5', 'deprecated': True}, - 'bzip2-1.0.6': {'id': 'bzip2-1.0.6', 'deprecated': False}, - 'c-uda-1.0': {'id': 'C-UDA-1.0', 'deprecated': False}, - 'cal-1.0': {'id': 'CAL-1.0', 'deprecated': False}, - 'cal-1.0-combined-work-exception': {'id': 'CAL-1.0-Combined-Work-Exception', 'deprecated': False}, - 'caldera': {'id': 'Caldera', 'deprecated': False}, - 'caldera-no-preamble': {'id': 'Caldera-no-preamble', 'deprecated': False}, - 'catharon': {'id': 'Catharon', 'deprecated': False}, - 'catosl-1.1': {'id': 'CATOSL-1.1', 'deprecated': False}, - 'cc-by-1.0': {'id': 'CC-BY-1.0', 'deprecated': False}, - 'cc-by-2.0': {'id': 'CC-BY-2.0', 'deprecated': False}, - 'cc-by-2.5': {'id': 'CC-BY-2.5', 'deprecated': False}, - 'cc-by-2.5-au': {'id': 'CC-BY-2.5-AU', 'deprecated': False}, - 'cc-by-3.0': {'id': 'CC-BY-3.0', 'deprecated': False}, - 'cc-by-3.0-at': {'id': 'CC-BY-3.0-AT', 'deprecated': False}, - 'cc-by-3.0-au': {'id': 'CC-BY-3.0-AU', 'deprecated': False}, - 'cc-by-3.0-de': {'id': 'CC-BY-3.0-DE', 'deprecated': False}, - 'cc-by-3.0-igo': {'id': 'CC-BY-3.0-IGO', 'deprecated': False}, - 'cc-by-3.0-nl': {'id': 'CC-BY-3.0-NL', 'deprecated': False}, - 'cc-by-3.0-us': {'id': 'CC-BY-3.0-US', 'deprecated': False}, - 'cc-by-4.0': {'id': 'CC-BY-4.0', 'deprecated': False}, - 'cc-by-nc-1.0': {'id': 'CC-BY-NC-1.0', 'deprecated': False}, - 'cc-by-nc-2.0': {'id': 'CC-BY-NC-2.0', 'deprecated': False}, - 'cc-by-nc-2.5': {'id': 'CC-BY-NC-2.5', 'deprecated': False}, - 'cc-by-nc-3.0': {'id': 'CC-BY-NC-3.0', 'deprecated': False}, - 'cc-by-nc-3.0-de': {'id': 'CC-BY-NC-3.0-DE', 'deprecated': False}, - 'cc-by-nc-4.0': {'id': 'CC-BY-NC-4.0', 'deprecated': False}, - 'cc-by-nc-nd-1.0': {'id': 'CC-BY-NC-ND-1.0', 'deprecated': False}, - 'cc-by-nc-nd-2.0': {'id': 'CC-BY-NC-ND-2.0', 'deprecated': False}, - 'cc-by-nc-nd-2.5': {'id': 'CC-BY-NC-ND-2.5', 'deprecated': False}, - 'cc-by-nc-nd-3.0': {'id': 'CC-BY-NC-ND-3.0', 'deprecated': False}, - 'cc-by-nc-nd-3.0-de': {'id': 'CC-BY-NC-ND-3.0-DE', 'deprecated': False}, - 'cc-by-nc-nd-3.0-igo': {'id': 'CC-BY-NC-ND-3.0-IGO', 'deprecated': False}, - 'cc-by-nc-nd-4.0': {'id': 'CC-BY-NC-ND-4.0', 'deprecated': False}, - 'cc-by-nc-sa-1.0': {'id': 'CC-BY-NC-SA-1.0', 'deprecated': False}, - 'cc-by-nc-sa-2.0': {'id': 'CC-BY-NC-SA-2.0', 'deprecated': False}, - 'cc-by-nc-sa-2.0-de': {'id': 'CC-BY-NC-SA-2.0-DE', 'deprecated': False}, - 'cc-by-nc-sa-2.0-fr': {'id': 'CC-BY-NC-SA-2.0-FR', 'deprecated': False}, - 'cc-by-nc-sa-2.0-uk': {'id': 'CC-BY-NC-SA-2.0-UK', 'deprecated': False}, - 'cc-by-nc-sa-2.5': {'id': 'CC-BY-NC-SA-2.5', 'deprecated': False}, - 'cc-by-nc-sa-3.0': {'id': 'CC-BY-NC-SA-3.0', 'deprecated': False}, - 'cc-by-nc-sa-3.0-de': {'id': 'CC-BY-NC-SA-3.0-DE', 'deprecated': False}, - 'cc-by-nc-sa-3.0-igo': {'id': 'CC-BY-NC-SA-3.0-IGO', 'deprecated': False}, - 'cc-by-nc-sa-4.0': {'id': 'CC-BY-NC-SA-4.0', 'deprecated': False}, - 'cc-by-nd-1.0': {'id': 'CC-BY-ND-1.0', 'deprecated': False}, - 'cc-by-nd-2.0': {'id': 'CC-BY-ND-2.0', 'deprecated': False}, - 'cc-by-nd-2.5': {'id': 'CC-BY-ND-2.5', 'deprecated': False}, - 'cc-by-nd-3.0': {'id': 'CC-BY-ND-3.0', 'deprecated': False}, - 'cc-by-nd-3.0-de': {'id': 'CC-BY-ND-3.0-DE', 'deprecated': False}, - 'cc-by-nd-4.0': {'id': 'CC-BY-ND-4.0', 'deprecated': False}, - 'cc-by-sa-1.0': {'id': 'CC-BY-SA-1.0', 'deprecated': False}, - 'cc-by-sa-2.0': {'id': 'CC-BY-SA-2.0', 'deprecated': False}, - 'cc-by-sa-2.0-uk': {'id': 'CC-BY-SA-2.0-UK', 'deprecated': False}, - 'cc-by-sa-2.1-jp': {'id': 'CC-BY-SA-2.1-JP', 'deprecated': False}, - 'cc-by-sa-2.5': {'id': 'CC-BY-SA-2.5', 'deprecated': False}, - 'cc-by-sa-3.0': {'id': 'CC-BY-SA-3.0', 'deprecated': False}, - 'cc-by-sa-3.0-at': {'id': 'CC-BY-SA-3.0-AT', 'deprecated': False}, - 'cc-by-sa-3.0-de': {'id': 'CC-BY-SA-3.0-DE', 'deprecated': False}, - 'cc-by-sa-3.0-igo': {'id': 'CC-BY-SA-3.0-IGO', 'deprecated': False}, - 'cc-by-sa-4.0': {'id': 'CC-BY-SA-4.0', 'deprecated': False}, - 'cc-pddc': {'id': 'CC-PDDC', 'deprecated': False}, - 'cc-pdm-1.0': {'id': 'CC-PDM-1.0', 'deprecated': False}, - 'cc-sa-1.0': {'id': 'CC-SA-1.0', 'deprecated': False}, - 'cc0-1.0': {'id': 'CC0-1.0', 'deprecated': False}, - 'cddl-1.0': {'id': 'CDDL-1.0', 'deprecated': False}, - 'cddl-1.1': {'id': 'CDDL-1.1', 'deprecated': False}, - 'cdl-1.0': {'id': 'CDL-1.0', 'deprecated': False}, - 'cdla-permissive-1.0': {'id': 'CDLA-Permissive-1.0', 'deprecated': False}, - 'cdla-permissive-2.0': {'id': 'CDLA-Permissive-2.0', 'deprecated': False}, - 'cdla-sharing-1.0': {'id': 'CDLA-Sharing-1.0', 'deprecated': False}, - 'cecill-1.0': {'id': 'CECILL-1.0', 'deprecated': False}, - 'cecill-1.1': {'id': 'CECILL-1.1', 'deprecated': False}, - 'cecill-2.0': {'id': 'CECILL-2.0', 'deprecated': False}, - 'cecill-2.1': {'id': 'CECILL-2.1', 'deprecated': False}, - 'cecill-b': {'id': 'CECILL-B', 'deprecated': False}, - 'cecill-c': {'id': 'CECILL-C', 'deprecated': False}, - 'cern-ohl-1.1': {'id': 'CERN-OHL-1.1', 'deprecated': False}, - 'cern-ohl-1.2': {'id': 'CERN-OHL-1.2', 'deprecated': False}, - 'cern-ohl-p-2.0': {'id': 'CERN-OHL-P-2.0', 'deprecated': False}, - 'cern-ohl-s-2.0': {'id': 'CERN-OHL-S-2.0', 'deprecated': False}, - 'cern-ohl-w-2.0': {'id': 'CERN-OHL-W-2.0', 'deprecated': False}, - 'cfitsio': {'id': 'CFITSIO', 'deprecated': False}, - 'check-cvs': {'id': 'check-cvs', 'deprecated': False}, - 'checkmk': {'id': 'checkmk', 'deprecated': False}, - 'clartistic': {'id': 'ClArtistic', 'deprecated': False}, - 'clips': {'id': 'Clips', 'deprecated': False}, - 'cmu-mach': {'id': 'CMU-Mach', 'deprecated': False}, - 'cmu-mach-nodoc': {'id': 'CMU-Mach-nodoc', 'deprecated': False}, - 'cnri-jython': {'id': 'CNRI-Jython', 'deprecated': False}, - 'cnri-python': {'id': 'CNRI-Python', 'deprecated': False}, - 'cnri-python-gpl-compatible': {'id': 'CNRI-Python-GPL-Compatible', 'deprecated': False}, - 'coil-1.0': {'id': 'COIL-1.0', 'deprecated': False}, - 'community-spec-1.0': {'id': 'Community-Spec-1.0', 'deprecated': False}, - 'condor-1.1': {'id': 'Condor-1.1', 'deprecated': False}, - 'copyleft-next-0.3.0': {'id': 'copyleft-next-0.3.0', 'deprecated': False}, - 'copyleft-next-0.3.1': {'id': 'copyleft-next-0.3.1', 'deprecated': False}, - 'cornell-lossless-jpeg': {'id': 'Cornell-Lossless-JPEG', 'deprecated': False}, - 'cpal-1.0': {'id': 'CPAL-1.0', 'deprecated': False}, - 'cpl-1.0': {'id': 'CPL-1.0', 'deprecated': False}, - 'cpol-1.02': {'id': 'CPOL-1.02', 'deprecated': False}, - 'cronyx': {'id': 'Cronyx', 'deprecated': False}, - 'crossword': {'id': 'Crossword', 'deprecated': False}, - 'cryptoswift': {'id': 'CryptoSwift', 'deprecated': False}, - 'crystalstacker': {'id': 'CrystalStacker', 'deprecated': False}, - 'cua-opl-1.0': {'id': 'CUA-OPL-1.0', 'deprecated': False}, - 'cube': {'id': 'Cube', 'deprecated': False}, - 'curl': {'id': 'curl', 'deprecated': False}, - 'cve-tou': {'id': 'cve-tou', 'deprecated': False}, - 'd-fsl-1.0': {'id': 'D-FSL-1.0', 'deprecated': False}, - 'dec-3-clause': {'id': 'DEC-3-Clause', 'deprecated': False}, - 'diffmark': {'id': 'diffmark', 'deprecated': False}, - 'dl-de-by-2.0': {'id': 'DL-DE-BY-2.0', 'deprecated': False}, - 'dl-de-zero-2.0': {'id': 'DL-DE-ZERO-2.0', 'deprecated': False}, - 'doc': {'id': 'DOC', 'deprecated': False}, - 'docbook-dtd': {'id': 'DocBook-DTD', 'deprecated': False}, - 'docbook-schema': {'id': 'DocBook-Schema', 'deprecated': False}, - 'docbook-stylesheet': {'id': 'DocBook-Stylesheet', 'deprecated': False}, - 'docbook-xml': {'id': 'DocBook-XML', 'deprecated': False}, - 'dotseqn': {'id': 'Dotseqn', 'deprecated': False}, - 'drl-1.0': {'id': 'DRL-1.0', 'deprecated': False}, - 'drl-1.1': {'id': 'DRL-1.1', 'deprecated': False}, - 'dsdp': {'id': 'DSDP', 'deprecated': False}, - 'dtoa': {'id': 'dtoa', 'deprecated': False}, - 'dvipdfm': {'id': 'dvipdfm', 'deprecated': False}, - 'ecl-1.0': {'id': 'ECL-1.0', 'deprecated': False}, - 'ecl-2.0': {'id': 'ECL-2.0', 'deprecated': False}, - 'ecos-2.0': {'id': 'eCos-2.0', 'deprecated': True}, - 'efl-1.0': {'id': 'EFL-1.0', 'deprecated': False}, - 'efl-2.0': {'id': 'EFL-2.0', 'deprecated': False}, - 'egenix': {'id': 'eGenix', 'deprecated': False}, - 'elastic-2.0': {'id': 'Elastic-2.0', 'deprecated': False}, - 'entessa': {'id': 'Entessa', 'deprecated': False}, - 'epics': {'id': 'EPICS', 'deprecated': False}, - 'epl-1.0': {'id': 'EPL-1.0', 'deprecated': False}, - 'epl-2.0': {'id': 'EPL-2.0', 'deprecated': False}, - 'erlpl-1.1': {'id': 'ErlPL-1.1', 'deprecated': False}, - 'etalab-2.0': {'id': 'etalab-2.0', 'deprecated': False}, - 'eudatagrid': {'id': 'EUDatagrid', 'deprecated': False}, - 'eupl-1.0': {'id': 'EUPL-1.0', 'deprecated': False}, - 'eupl-1.1': {'id': 'EUPL-1.1', 'deprecated': False}, - 'eupl-1.2': {'id': 'EUPL-1.2', 'deprecated': False}, - 'eurosym': {'id': 'Eurosym', 'deprecated': False}, - 'fair': {'id': 'Fair', 'deprecated': False}, - 'fbm': {'id': 'FBM', 'deprecated': False}, - 'fdk-aac': {'id': 'FDK-AAC', 'deprecated': False}, - 'ferguson-twofish': {'id': 'Ferguson-Twofish', 'deprecated': False}, - 'frameworx-1.0': {'id': 'Frameworx-1.0', 'deprecated': False}, - 'freebsd-doc': {'id': 'FreeBSD-DOC', 'deprecated': False}, - 'freeimage': {'id': 'FreeImage', 'deprecated': False}, - 'fsfap': {'id': 'FSFAP', 'deprecated': False}, - 'fsfap-no-warranty-disclaimer': {'id': 'FSFAP-no-warranty-disclaimer', 'deprecated': False}, - 'fsful': {'id': 'FSFUL', 'deprecated': False}, - 'fsfullr': {'id': 'FSFULLR', 'deprecated': False}, - 'fsfullrsd': {'id': 'FSFULLRSD', 'deprecated': False}, - 'fsfullrwd': {'id': 'FSFULLRWD', 'deprecated': False}, - 'fsl-1.1-alv2': {'id': 'FSL-1.1-ALv2', 'deprecated': False}, - 'fsl-1.1-mit': {'id': 'FSL-1.1-MIT', 'deprecated': False}, - 'ftl': {'id': 'FTL', 'deprecated': False}, - 'furuseth': {'id': 'Furuseth', 'deprecated': False}, - 'fwlw': {'id': 'fwlw', 'deprecated': False}, - 'game-programming-gems': {'id': 'Game-Programming-Gems', 'deprecated': False}, - 'gcr-docs': {'id': 'GCR-docs', 'deprecated': False}, - 'gd': {'id': 'GD', 'deprecated': False}, - 'generic-xts': {'id': 'generic-xts', 'deprecated': False}, - 'gfdl-1.1': {'id': 'GFDL-1.1', 'deprecated': True}, - 'gfdl-1.1-invariants-only': {'id': 'GFDL-1.1-invariants-only', 'deprecated': False}, - 'gfdl-1.1-invariants-or-later': {'id': 'GFDL-1.1-invariants-or-later', 'deprecated': False}, - 'gfdl-1.1-no-invariants-only': {'id': 'GFDL-1.1-no-invariants-only', 'deprecated': False}, - 'gfdl-1.1-no-invariants-or-later': {'id': 'GFDL-1.1-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.1-only': {'id': 'GFDL-1.1-only', 'deprecated': False}, - 'gfdl-1.1-or-later': {'id': 'GFDL-1.1-or-later', 'deprecated': False}, - 'gfdl-1.2': {'id': 'GFDL-1.2', 'deprecated': True}, - 'gfdl-1.2-invariants-only': {'id': 'GFDL-1.2-invariants-only', 'deprecated': False}, - 'gfdl-1.2-invariants-or-later': {'id': 'GFDL-1.2-invariants-or-later', 'deprecated': False}, - 'gfdl-1.2-no-invariants-only': {'id': 'GFDL-1.2-no-invariants-only', 'deprecated': False}, - 'gfdl-1.2-no-invariants-or-later': {'id': 'GFDL-1.2-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.2-only': {'id': 'GFDL-1.2-only', 'deprecated': False}, - 'gfdl-1.2-or-later': {'id': 'GFDL-1.2-or-later', 'deprecated': False}, - 'gfdl-1.3': {'id': 'GFDL-1.3', 'deprecated': True}, - 'gfdl-1.3-invariants-only': {'id': 'GFDL-1.3-invariants-only', 'deprecated': False}, - 'gfdl-1.3-invariants-or-later': {'id': 'GFDL-1.3-invariants-or-later', 'deprecated': False}, - 'gfdl-1.3-no-invariants-only': {'id': 'GFDL-1.3-no-invariants-only', 'deprecated': False}, - 'gfdl-1.3-no-invariants-or-later': {'id': 'GFDL-1.3-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.3-only': {'id': 'GFDL-1.3-only', 'deprecated': False}, - 'gfdl-1.3-or-later': {'id': 'GFDL-1.3-or-later', 'deprecated': False}, - 'giftware': {'id': 'Giftware', 'deprecated': False}, - 'gl2ps': {'id': 'GL2PS', 'deprecated': False}, - 'glide': {'id': 'Glide', 'deprecated': False}, - 'glulxe': {'id': 'Glulxe', 'deprecated': False}, - 'glwtpl': {'id': 'GLWTPL', 'deprecated': False}, - 'gnuplot': {'id': 'gnuplot', 'deprecated': False}, - 'gpl-1.0': {'id': 'GPL-1.0', 'deprecated': True}, - 'gpl-1.0+': {'id': 'GPL-1.0+', 'deprecated': True}, - 'gpl-1.0-only': {'id': 'GPL-1.0-only', 'deprecated': False}, - 'gpl-1.0-or-later': {'id': 'GPL-1.0-or-later', 'deprecated': False}, - 'gpl-2.0': {'id': 'GPL-2.0', 'deprecated': True}, - 'gpl-2.0+': {'id': 'GPL-2.0+', 'deprecated': True}, - 'gpl-2.0-only': {'id': 'GPL-2.0-only', 'deprecated': False}, - 'gpl-2.0-or-later': {'id': 'GPL-2.0-or-later', 'deprecated': False}, - 'gpl-2.0-with-autoconf-exception': {'id': 'GPL-2.0-with-autoconf-exception', 'deprecated': True}, - 'gpl-2.0-with-bison-exception': {'id': 'GPL-2.0-with-bison-exception', 'deprecated': True}, - 'gpl-2.0-with-classpath-exception': {'id': 'GPL-2.0-with-classpath-exception', 'deprecated': True}, - 'gpl-2.0-with-font-exception': {'id': 'GPL-2.0-with-font-exception', 'deprecated': True}, - 'gpl-2.0-with-gcc-exception': {'id': 'GPL-2.0-with-GCC-exception', 'deprecated': True}, - 'gpl-3.0': {'id': 'GPL-3.0', 'deprecated': True}, - 'gpl-3.0+': {'id': 'GPL-3.0+', 'deprecated': True}, - 'gpl-3.0-only': {'id': 'GPL-3.0-only', 'deprecated': False}, - 'gpl-3.0-or-later': {'id': 'GPL-3.0-or-later', 'deprecated': False}, - 'gpl-3.0-with-autoconf-exception': {'id': 'GPL-3.0-with-autoconf-exception', 'deprecated': True}, - 'gpl-3.0-with-gcc-exception': {'id': 'GPL-3.0-with-GCC-exception', 'deprecated': True}, - 'graphics-gems': {'id': 'Graphics-Gems', 'deprecated': False}, - 'gsoap-1.3b': {'id': 'gSOAP-1.3b', 'deprecated': False}, - 'gtkbook': {'id': 'gtkbook', 'deprecated': False}, - 'gutmann': {'id': 'Gutmann', 'deprecated': False}, - 'haskellreport': {'id': 'HaskellReport', 'deprecated': False}, - 'hdf5': {'id': 'HDF5', 'deprecated': False}, - 'hdparm': {'id': 'hdparm', 'deprecated': False}, - 'hidapi': {'id': 'HIDAPI', 'deprecated': False}, - 'hippocratic-2.1': {'id': 'Hippocratic-2.1', 'deprecated': False}, - 'hp-1986': {'id': 'HP-1986', 'deprecated': False}, - 'hp-1989': {'id': 'HP-1989', 'deprecated': False}, - 'hpnd': {'id': 'HPND', 'deprecated': False}, - 'hpnd-dec': {'id': 'HPND-DEC', 'deprecated': False}, - 'hpnd-doc': {'id': 'HPND-doc', 'deprecated': False}, - 'hpnd-doc-sell': {'id': 'HPND-doc-sell', 'deprecated': False}, - 'hpnd-export-us': {'id': 'HPND-export-US', 'deprecated': False}, - 'hpnd-export-us-acknowledgement': {'id': 'HPND-export-US-acknowledgement', 'deprecated': False}, - 'hpnd-export-us-modify': {'id': 'HPND-export-US-modify', 'deprecated': False}, - 'hpnd-export2-us': {'id': 'HPND-export2-US', 'deprecated': False}, - 'hpnd-fenneberg-livingston': {'id': 'HPND-Fenneberg-Livingston', 'deprecated': False}, - 'hpnd-inria-imag': {'id': 'HPND-INRIA-IMAG', 'deprecated': False}, - 'hpnd-intel': {'id': 'HPND-Intel', 'deprecated': False}, - 'hpnd-kevlin-henney': {'id': 'HPND-Kevlin-Henney', 'deprecated': False}, - 'hpnd-markus-kuhn': {'id': 'HPND-Markus-Kuhn', 'deprecated': False}, - 'hpnd-merchantability-variant': {'id': 'HPND-merchantability-variant', 'deprecated': False}, - 'hpnd-mit-disclaimer': {'id': 'HPND-MIT-disclaimer', 'deprecated': False}, - 'hpnd-netrek': {'id': 'HPND-Netrek', 'deprecated': False}, - 'hpnd-pbmplus': {'id': 'HPND-Pbmplus', 'deprecated': False}, - 'hpnd-sell-mit-disclaimer-xserver': {'id': 'HPND-sell-MIT-disclaimer-xserver', 'deprecated': False}, - 'hpnd-sell-regexpr': {'id': 'HPND-sell-regexpr', 'deprecated': False}, - 'hpnd-sell-variant': {'id': 'HPND-sell-variant', 'deprecated': False}, - 'hpnd-sell-variant-mit-disclaimer': {'id': 'HPND-sell-variant-MIT-disclaimer', 'deprecated': False}, - 'hpnd-sell-variant-mit-disclaimer-rev': {'id': 'HPND-sell-variant-MIT-disclaimer-rev', 'deprecated': False}, - 'hpnd-uc': {'id': 'HPND-UC', 'deprecated': False}, - 'hpnd-uc-export-us': {'id': 'HPND-UC-export-US', 'deprecated': False}, - 'htmltidy': {'id': 'HTMLTIDY', 'deprecated': False}, - 'ibm-pibs': {'id': 'IBM-pibs', 'deprecated': False}, - 'icu': {'id': 'ICU', 'deprecated': False}, - 'iec-code-components-eula': {'id': 'IEC-Code-Components-EULA', 'deprecated': False}, - 'ijg': {'id': 'IJG', 'deprecated': False}, - 'ijg-short': {'id': 'IJG-short', 'deprecated': False}, - 'imagemagick': {'id': 'ImageMagick', 'deprecated': False}, - 'imatix': {'id': 'iMatix', 'deprecated': False}, - 'imlib2': {'id': 'Imlib2', 'deprecated': False}, - 'info-zip': {'id': 'Info-ZIP', 'deprecated': False}, - 'inner-net-2.0': {'id': 'Inner-Net-2.0', 'deprecated': False}, - 'innosetup': {'id': 'InnoSetup', 'deprecated': False}, - 'intel': {'id': 'Intel', 'deprecated': False}, - 'intel-acpi': {'id': 'Intel-ACPI', 'deprecated': False}, - 'interbase-1.0': {'id': 'Interbase-1.0', 'deprecated': False}, - 'ipa': {'id': 'IPA', 'deprecated': False}, - 'ipl-1.0': {'id': 'IPL-1.0', 'deprecated': False}, - 'isc': {'id': 'ISC', 'deprecated': False}, - 'isc-veillard': {'id': 'ISC-Veillard', 'deprecated': False}, - 'jam': {'id': 'Jam', 'deprecated': False}, - 'jasper-2.0': {'id': 'JasPer-2.0', 'deprecated': False}, - 'jove': {'id': 'jove', 'deprecated': False}, - 'jpl-image': {'id': 'JPL-image', 'deprecated': False}, - 'jpnic': {'id': 'JPNIC', 'deprecated': False}, - 'json': {'id': 'JSON', 'deprecated': False}, - 'kastrup': {'id': 'Kastrup', 'deprecated': False}, - 'kazlib': {'id': 'Kazlib', 'deprecated': False}, - 'knuth-ctan': {'id': 'Knuth-CTAN', 'deprecated': False}, - 'lal-1.2': {'id': 'LAL-1.2', 'deprecated': False}, - 'lal-1.3': {'id': 'LAL-1.3', 'deprecated': False}, - 'latex2e': {'id': 'Latex2e', 'deprecated': False}, - 'latex2e-translated-notice': {'id': 'Latex2e-translated-notice', 'deprecated': False}, - 'leptonica': {'id': 'Leptonica', 'deprecated': False}, - 'lgpl-2.0': {'id': 'LGPL-2.0', 'deprecated': True}, - 'lgpl-2.0+': {'id': 'LGPL-2.0+', 'deprecated': True}, - 'lgpl-2.0-only': {'id': 'LGPL-2.0-only', 'deprecated': False}, - 'lgpl-2.0-or-later': {'id': 'LGPL-2.0-or-later', 'deprecated': False}, - 'lgpl-2.1': {'id': 'LGPL-2.1', 'deprecated': True}, - 'lgpl-2.1+': {'id': 'LGPL-2.1+', 'deprecated': True}, - 'lgpl-2.1-only': {'id': 'LGPL-2.1-only', 'deprecated': False}, - 'lgpl-2.1-or-later': {'id': 'LGPL-2.1-or-later', 'deprecated': False}, - 'lgpl-3.0': {'id': 'LGPL-3.0', 'deprecated': True}, - 'lgpl-3.0+': {'id': 'LGPL-3.0+', 'deprecated': True}, - 'lgpl-3.0-only': {'id': 'LGPL-3.0-only', 'deprecated': False}, - 'lgpl-3.0-or-later': {'id': 'LGPL-3.0-or-later', 'deprecated': False}, - 'lgpllr': {'id': 'LGPLLR', 'deprecated': False}, - 'libpng': {'id': 'Libpng', 'deprecated': False}, - 'libpng-1.6.35': {'id': 'libpng-1.6.35', 'deprecated': False}, - 'libpng-2.0': {'id': 'libpng-2.0', 'deprecated': False}, - 'libselinux-1.0': {'id': 'libselinux-1.0', 'deprecated': False}, - 'libtiff': {'id': 'libtiff', 'deprecated': False}, - 'libutil-david-nugent': {'id': 'libutil-David-Nugent', 'deprecated': False}, - 'liliq-p-1.1': {'id': 'LiLiQ-P-1.1', 'deprecated': False}, - 'liliq-r-1.1': {'id': 'LiLiQ-R-1.1', 'deprecated': False}, - 'liliq-rplus-1.1': {'id': 'LiLiQ-Rplus-1.1', 'deprecated': False}, - 'linux-man-pages-1-para': {'id': 'Linux-man-pages-1-para', 'deprecated': False}, - 'linux-man-pages-copyleft': {'id': 'Linux-man-pages-copyleft', 'deprecated': False}, - 'linux-man-pages-copyleft-2-para': {'id': 'Linux-man-pages-copyleft-2-para', 'deprecated': False}, - 'linux-man-pages-copyleft-var': {'id': 'Linux-man-pages-copyleft-var', 'deprecated': False}, - 'linux-openib': {'id': 'Linux-OpenIB', 'deprecated': False}, - 'loop': {'id': 'LOOP', 'deprecated': False}, - 'lpd-document': {'id': 'LPD-document', 'deprecated': False}, - 'lpl-1.0': {'id': 'LPL-1.0', 'deprecated': False}, - 'lpl-1.02': {'id': 'LPL-1.02', 'deprecated': False}, - 'lppl-1.0': {'id': 'LPPL-1.0', 'deprecated': False}, - 'lppl-1.1': {'id': 'LPPL-1.1', 'deprecated': False}, - 'lppl-1.2': {'id': 'LPPL-1.2', 'deprecated': False}, - 'lppl-1.3a': {'id': 'LPPL-1.3a', 'deprecated': False}, - 'lppl-1.3c': {'id': 'LPPL-1.3c', 'deprecated': False}, - 'lsof': {'id': 'lsof', 'deprecated': False}, - 'lucida-bitmap-fonts': {'id': 'Lucida-Bitmap-Fonts', 'deprecated': False}, - 'lzma-sdk-9.11-to-9.20': {'id': 'LZMA-SDK-9.11-to-9.20', 'deprecated': False}, - 'lzma-sdk-9.22': {'id': 'LZMA-SDK-9.22', 'deprecated': False}, - 'mackerras-3-clause': {'id': 'Mackerras-3-Clause', 'deprecated': False}, - 'mackerras-3-clause-acknowledgment': {'id': 'Mackerras-3-Clause-acknowledgment', 'deprecated': False}, - 'magaz': {'id': 'magaz', 'deprecated': False}, - 'mailprio': {'id': 'mailprio', 'deprecated': False}, - 'makeindex': {'id': 'MakeIndex', 'deprecated': False}, - 'man2html': {'id': 'man2html', 'deprecated': False}, - 'martin-birgmeier': {'id': 'Martin-Birgmeier', 'deprecated': False}, - 'mcphee-slideshow': {'id': 'McPhee-slideshow', 'deprecated': False}, - 'metamail': {'id': 'metamail', 'deprecated': False}, - 'minpack': {'id': 'Minpack', 'deprecated': False}, - 'mips': {'id': 'MIPS', 'deprecated': False}, - 'miros': {'id': 'MirOS', 'deprecated': False}, - 'mit': {'id': 'MIT', 'deprecated': False}, - 'mit-0': {'id': 'MIT-0', 'deprecated': False}, - 'mit-advertising': {'id': 'MIT-advertising', 'deprecated': False}, - 'mit-click': {'id': 'MIT-Click', 'deprecated': False}, - 'mit-cmu': {'id': 'MIT-CMU', 'deprecated': False}, - 'mit-enna': {'id': 'MIT-enna', 'deprecated': False}, - 'mit-feh': {'id': 'MIT-feh', 'deprecated': False}, - 'mit-festival': {'id': 'MIT-Festival', 'deprecated': False}, - 'mit-khronos-old': {'id': 'MIT-Khronos-old', 'deprecated': False}, - 'mit-modern-variant': {'id': 'MIT-Modern-Variant', 'deprecated': False}, - 'mit-open-group': {'id': 'MIT-open-group', 'deprecated': False}, - 'mit-testregex': {'id': 'MIT-testregex', 'deprecated': False}, - 'mit-wu': {'id': 'MIT-Wu', 'deprecated': False}, - 'mitnfa': {'id': 'MITNFA', 'deprecated': False}, - 'mmixware': {'id': 'MMIXware', 'deprecated': False}, - 'motosoto': {'id': 'Motosoto', 'deprecated': False}, - 'mpeg-ssg': {'id': 'MPEG-SSG', 'deprecated': False}, - 'mpi-permissive': {'id': 'mpi-permissive', 'deprecated': False}, - 'mpich2': {'id': 'mpich2', 'deprecated': False}, - 'mpl-1.0': {'id': 'MPL-1.0', 'deprecated': False}, - 'mpl-1.1': {'id': 'MPL-1.1', 'deprecated': False}, - 'mpl-2.0': {'id': 'MPL-2.0', 'deprecated': False}, - 'mpl-2.0-no-copyleft-exception': {'id': 'MPL-2.0-no-copyleft-exception', 'deprecated': False}, - 'mplus': {'id': 'mplus', 'deprecated': False}, - 'ms-lpl': {'id': 'MS-LPL', 'deprecated': False}, - 'ms-pl': {'id': 'MS-PL', 'deprecated': False}, - 'ms-rl': {'id': 'MS-RL', 'deprecated': False}, - 'mtll': {'id': 'MTLL', 'deprecated': False}, - 'mulanpsl-1.0': {'id': 'MulanPSL-1.0', 'deprecated': False}, - 'mulanpsl-2.0': {'id': 'MulanPSL-2.0', 'deprecated': False}, - 'multics': {'id': 'Multics', 'deprecated': False}, - 'mup': {'id': 'Mup', 'deprecated': False}, - 'naist-2003': {'id': 'NAIST-2003', 'deprecated': False}, - 'nasa-1.3': {'id': 'NASA-1.3', 'deprecated': False}, - 'naumen': {'id': 'Naumen', 'deprecated': False}, - 'nbpl-1.0': {'id': 'NBPL-1.0', 'deprecated': False}, - 'ncbi-pd': {'id': 'NCBI-PD', 'deprecated': False}, - 'ncgl-uk-2.0': {'id': 'NCGL-UK-2.0', 'deprecated': False}, - 'ncl': {'id': 'NCL', 'deprecated': False}, - 'ncsa': {'id': 'NCSA', 'deprecated': False}, - 'net-snmp': {'id': 'Net-SNMP', 'deprecated': True}, - 'netcdf': {'id': 'NetCDF', 'deprecated': False}, - 'newsletr': {'id': 'Newsletr', 'deprecated': False}, - 'ngpl': {'id': 'NGPL', 'deprecated': False}, - 'ngrep': {'id': 'ngrep', 'deprecated': False}, - 'nicta-1.0': {'id': 'NICTA-1.0', 'deprecated': False}, - 'nist-pd': {'id': 'NIST-PD', 'deprecated': False}, - 'nist-pd-fallback': {'id': 'NIST-PD-fallback', 'deprecated': False}, - 'nist-software': {'id': 'NIST-Software', 'deprecated': False}, - 'nlod-1.0': {'id': 'NLOD-1.0', 'deprecated': False}, - 'nlod-2.0': {'id': 'NLOD-2.0', 'deprecated': False}, - 'nlpl': {'id': 'NLPL', 'deprecated': False}, - 'nokia': {'id': 'Nokia', 'deprecated': False}, - 'nosl': {'id': 'NOSL', 'deprecated': False}, - 'noweb': {'id': 'Noweb', 'deprecated': False}, - 'npl-1.0': {'id': 'NPL-1.0', 'deprecated': False}, - 'npl-1.1': {'id': 'NPL-1.1', 'deprecated': False}, - 'nposl-3.0': {'id': 'NPOSL-3.0', 'deprecated': False}, - 'nrl': {'id': 'NRL', 'deprecated': False}, - 'ntia-pd': {'id': 'NTIA-PD', 'deprecated': False}, - 'ntp': {'id': 'NTP', 'deprecated': False}, - 'ntp-0': {'id': 'NTP-0', 'deprecated': False}, - 'nunit': {'id': 'Nunit', 'deprecated': True}, - 'o-uda-1.0': {'id': 'O-UDA-1.0', 'deprecated': False}, - 'oar': {'id': 'OAR', 'deprecated': False}, - 'occt-pl': {'id': 'OCCT-PL', 'deprecated': False}, - 'oclc-2.0': {'id': 'OCLC-2.0', 'deprecated': False}, - 'odbl-1.0': {'id': 'ODbL-1.0', 'deprecated': False}, - 'odc-by-1.0': {'id': 'ODC-By-1.0', 'deprecated': False}, - 'offis': {'id': 'OFFIS', 'deprecated': False}, - 'ofl-1.0': {'id': 'OFL-1.0', 'deprecated': False}, - 'ofl-1.0-no-rfn': {'id': 'OFL-1.0-no-RFN', 'deprecated': False}, - 'ofl-1.0-rfn': {'id': 'OFL-1.0-RFN', 'deprecated': False}, - 'ofl-1.1': {'id': 'OFL-1.1', 'deprecated': False}, - 'ofl-1.1-no-rfn': {'id': 'OFL-1.1-no-RFN', 'deprecated': False}, - 'ofl-1.1-rfn': {'id': 'OFL-1.1-RFN', 'deprecated': False}, - 'ogc-1.0': {'id': 'OGC-1.0', 'deprecated': False}, - 'ogdl-taiwan-1.0': {'id': 'OGDL-Taiwan-1.0', 'deprecated': False}, - 'ogl-canada-2.0': {'id': 'OGL-Canada-2.0', 'deprecated': False}, - 'ogl-uk-1.0': {'id': 'OGL-UK-1.0', 'deprecated': False}, - 'ogl-uk-2.0': {'id': 'OGL-UK-2.0', 'deprecated': False}, - 'ogl-uk-3.0': {'id': 'OGL-UK-3.0', 'deprecated': False}, - 'ogtsl': {'id': 'OGTSL', 'deprecated': False}, - 'oldap-1.1': {'id': 'OLDAP-1.1', 'deprecated': False}, - 'oldap-1.2': {'id': 'OLDAP-1.2', 'deprecated': False}, - 'oldap-1.3': {'id': 'OLDAP-1.3', 'deprecated': False}, - 'oldap-1.4': {'id': 'OLDAP-1.4', 'deprecated': False}, - 'oldap-2.0': {'id': 'OLDAP-2.0', 'deprecated': False}, - 'oldap-2.0.1': {'id': 'OLDAP-2.0.1', 'deprecated': False}, - 'oldap-2.1': {'id': 'OLDAP-2.1', 'deprecated': False}, - 'oldap-2.2': {'id': 'OLDAP-2.2', 'deprecated': False}, - 'oldap-2.2.1': {'id': 'OLDAP-2.2.1', 'deprecated': False}, - 'oldap-2.2.2': {'id': 'OLDAP-2.2.2', 'deprecated': False}, - 'oldap-2.3': {'id': 'OLDAP-2.3', 'deprecated': False}, - 'oldap-2.4': {'id': 'OLDAP-2.4', 'deprecated': False}, - 'oldap-2.5': {'id': 'OLDAP-2.5', 'deprecated': False}, - 'oldap-2.6': {'id': 'OLDAP-2.6', 'deprecated': False}, - 'oldap-2.7': {'id': 'OLDAP-2.7', 'deprecated': False}, - 'oldap-2.8': {'id': 'OLDAP-2.8', 'deprecated': False}, - 'olfl-1.3': {'id': 'OLFL-1.3', 'deprecated': False}, - 'oml': {'id': 'OML', 'deprecated': False}, - 'openpbs-2.3': {'id': 'OpenPBS-2.3', 'deprecated': False}, - 'openssl': {'id': 'OpenSSL', 'deprecated': False}, - 'openssl-standalone': {'id': 'OpenSSL-standalone', 'deprecated': False}, - 'openvision': {'id': 'OpenVision', 'deprecated': False}, - 'opl-1.0': {'id': 'OPL-1.0', 'deprecated': False}, - 'opl-uk-3.0': {'id': 'OPL-UK-3.0', 'deprecated': False}, - 'opubl-1.0': {'id': 'OPUBL-1.0', 'deprecated': False}, - 'oset-pl-2.1': {'id': 'OSET-PL-2.1', 'deprecated': False}, - 'osl-1.0': {'id': 'OSL-1.0', 'deprecated': False}, - 'osl-1.1': {'id': 'OSL-1.1', 'deprecated': False}, - 'osl-2.0': {'id': 'OSL-2.0', 'deprecated': False}, - 'osl-2.1': {'id': 'OSL-2.1', 'deprecated': False}, - 'osl-3.0': {'id': 'OSL-3.0', 'deprecated': False}, - 'padl': {'id': 'PADL', 'deprecated': False}, - 'parity-6.0.0': {'id': 'Parity-6.0.0', 'deprecated': False}, - 'parity-7.0.0': {'id': 'Parity-7.0.0', 'deprecated': False}, - 'pddl-1.0': {'id': 'PDDL-1.0', 'deprecated': False}, - 'php-3.0': {'id': 'PHP-3.0', 'deprecated': False}, - 'php-3.01': {'id': 'PHP-3.01', 'deprecated': False}, - 'pixar': {'id': 'Pixar', 'deprecated': False}, - 'pkgconf': {'id': 'pkgconf', 'deprecated': False}, - 'plexus': {'id': 'Plexus', 'deprecated': False}, - 'pnmstitch': {'id': 'pnmstitch', 'deprecated': False}, - 'polyform-noncommercial-1.0.0': {'id': 'PolyForm-Noncommercial-1.0.0', 'deprecated': False}, - 'polyform-small-business-1.0.0': {'id': 'PolyForm-Small-Business-1.0.0', 'deprecated': False}, - 'postgresql': {'id': 'PostgreSQL', 'deprecated': False}, - 'ppl': {'id': 'PPL', 'deprecated': False}, - 'psf-2.0': {'id': 'PSF-2.0', 'deprecated': False}, - 'psfrag': {'id': 'psfrag', 'deprecated': False}, - 'psutils': {'id': 'psutils', 'deprecated': False}, - 'python-2.0': {'id': 'Python-2.0', 'deprecated': False}, - 'python-2.0.1': {'id': 'Python-2.0.1', 'deprecated': False}, - 'python-ldap': {'id': 'python-ldap', 'deprecated': False}, - 'qhull': {'id': 'Qhull', 'deprecated': False}, - 'qpl-1.0': {'id': 'QPL-1.0', 'deprecated': False}, - 'qpl-1.0-inria-2004': {'id': 'QPL-1.0-INRIA-2004', 'deprecated': False}, - 'radvd': {'id': 'radvd', 'deprecated': False}, - 'rdisc': {'id': 'Rdisc', 'deprecated': False}, - 'rhecos-1.1': {'id': 'RHeCos-1.1', 'deprecated': False}, - 'rpl-1.1': {'id': 'RPL-1.1', 'deprecated': False}, - 'rpl-1.5': {'id': 'RPL-1.5', 'deprecated': False}, - 'rpsl-1.0': {'id': 'RPSL-1.0', 'deprecated': False}, - 'rsa-md': {'id': 'RSA-MD', 'deprecated': False}, - 'rscpl': {'id': 'RSCPL', 'deprecated': False}, - 'ruby': {'id': 'Ruby', 'deprecated': False}, - 'ruby-pty': {'id': 'Ruby-pty', 'deprecated': False}, - 'sax-pd': {'id': 'SAX-PD', 'deprecated': False}, - 'sax-pd-2.0': {'id': 'SAX-PD-2.0', 'deprecated': False}, - 'saxpath': {'id': 'Saxpath', 'deprecated': False}, - 'scea': {'id': 'SCEA', 'deprecated': False}, - 'schemereport': {'id': 'SchemeReport', 'deprecated': False}, - 'sendmail': {'id': 'Sendmail', 'deprecated': False}, - 'sendmail-8.23': {'id': 'Sendmail-8.23', 'deprecated': False}, - 'sendmail-open-source-1.1': {'id': 'Sendmail-Open-Source-1.1', 'deprecated': False}, - 'sgi-b-1.0': {'id': 'SGI-B-1.0', 'deprecated': False}, - 'sgi-b-1.1': {'id': 'SGI-B-1.1', 'deprecated': False}, - 'sgi-b-2.0': {'id': 'SGI-B-2.0', 'deprecated': False}, - 'sgi-opengl': {'id': 'SGI-OpenGL', 'deprecated': False}, - 'sgp4': {'id': 'SGP4', 'deprecated': False}, - 'shl-0.5': {'id': 'SHL-0.5', 'deprecated': False}, - 'shl-0.51': {'id': 'SHL-0.51', 'deprecated': False}, - 'simpl-2.0': {'id': 'SimPL-2.0', 'deprecated': False}, - 'sissl': {'id': 'SISSL', 'deprecated': False}, - 'sissl-1.2': {'id': 'SISSL-1.2', 'deprecated': False}, - 'sl': {'id': 'SL', 'deprecated': False}, - 'sleepycat': {'id': 'Sleepycat', 'deprecated': False}, - 'smail-gpl': {'id': 'SMAIL-GPL', 'deprecated': False}, - 'smlnj': {'id': 'SMLNJ', 'deprecated': False}, - 'smppl': {'id': 'SMPPL', 'deprecated': False}, - 'snia': {'id': 'SNIA', 'deprecated': False}, - 'snprintf': {'id': 'snprintf', 'deprecated': False}, - 'sofa': {'id': 'SOFA', 'deprecated': False}, - 'softsurfer': {'id': 'softSurfer', 'deprecated': False}, - 'soundex': {'id': 'Soundex', 'deprecated': False}, - 'spencer-86': {'id': 'Spencer-86', 'deprecated': False}, - 'spencer-94': {'id': 'Spencer-94', 'deprecated': False}, - 'spencer-99': {'id': 'Spencer-99', 'deprecated': False}, - 'spl-1.0': {'id': 'SPL-1.0', 'deprecated': False}, - 'ssh-keyscan': {'id': 'ssh-keyscan', 'deprecated': False}, - 'ssh-openssh': {'id': 'SSH-OpenSSH', 'deprecated': False}, - 'ssh-short': {'id': 'SSH-short', 'deprecated': False}, - 'ssleay-standalone': {'id': 'SSLeay-standalone', 'deprecated': False}, - 'sspl-1.0': {'id': 'SSPL-1.0', 'deprecated': False}, - 'standardml-nj': {'id': 'StandardML-NJ', 'deprecated': True}, - 'sugarcrm-1.1.3': {'id': 'SugarCRM-1.1.3', 'deprecated': False}, - 'sul-1.0': {'id': 'SUL-1.0', 'deprecated': False}, - 'sun-ppp': {'id': 'Sun-PPP', 'deprecated': False}, - 'sun-ppp-2000': {'id': 'Sun-PPP-2000', 'deprecated': False}, - 'sunpro': {'id': 'SunPro', 'deprecated': False}, - 'swl': {'id': 'SWL', 'deprecated': False}, - 'swrule': {'id': 'swrule', 'deprecated': False}, - 'symlinks': {'id': 'Symlinks', 'deprecated': False}, - 'tapr-ohl-1.0': {'id': 'TAPR-OHL-1.0', 'deprecated': False}, - 'tcl': {'id': 'TCL', 'deprecated': False}, - 'tcp-wrappers': {'id': 'TCP-wrappers', 'deprecated': False}, - 'termreadkey': {'id': 'TermReadKey', 'deprecated': False}, - 'tgppl-1.0': {'id': 'TGPPL-1.0', 'deprecated': False}, - 'thirdeye': {'id': 'ThirdEye', 'deprecated': False}, - 'threeparttable': {'id': 'threeparttable', 'deprecated': False}, - 'tmate': {'id': 'TMate', 'deprecated': False}, - 'torque-1.1': {'id': 'TORQUE-1.1', 'deprecated': False}, - 'tosl': {'id': 'TOSL', 'deprecated': False}, - 'tpdl': {'id': 'TPDL', 'deprecated': False}, - 'tpl-1.0': {'id': 'TPL-1.0', 'deprecated': False}, - 'trustedqsl': {'id': 'TrustedQSL', 'deprecated': False}, - 'ttwl': {'id': 'TTWL', 'deprecated': False}, - 'ttyp0': {'id': 'TTYP0', 'deprecated': False}, - 'tu-berlin-1.0': {'id': 'TU-Berlin-1.0', 'deprecated': False}, - 'tu-berlin-2.0': {'id': 'TU-Berlin-2.0', 'deprecated': False}, - 'ubuntu-font-1.0': {'id': 'Ubuntu-font-1.0', 'deprecated': False}, - 'ucar': {'id': 'UCAR', 'deprecated': False}, - 'ucl-1.0': {'id': 'UCL-1.0', 'deprecated': False}, - 'ulem': {'id': 'ulem', 'deprecated': False}, - 'umich-merit': {'id': 'UMich-Merit', 'deprecated': False}, - 'unicode-3.0': {'id': 'Unicode-3.0', 'deprecated': False}, - 'unicode-dfs-2015': {'id': 'Unicode-DFS-2015', 'deprecated': False}, - 'unicode-dfs-2016': {'id': 'Unicode-DFS-2016', 'deprecated': False}, - 'unicode-tou': {'id': 'Unicode-TOU', 'deprecated': False}, - 'unixcrypt': {'id': 'UnixCrypt', 'deprecated': False}, - 'unlicense': {'id': 'Unlicense', 'deprecated': False}, - 'unlicense-libtelnet': {'id': 'Unlicense-libtelnet', 'deprecated': False}, - 'unlicense-libwhirlpool': {'id': 'Unlicense-libwhirlpool', 'deprecated': False}, - 'upl-1.0': {'id': 'UPL-1.0', 'deprecated': False}, - 'urt-rle': {'id': 'URT-RLE', 'deprecated': False}, - 'vim': {'id': 'Vim', 'deprecated': False}, - 'vostrom': {'id': 'VOSTROM', 'deprecated': False}, - 'vsl-1.0': {'id': 'VSL-1.0', 'deprecated': False}, - 'w3c': {'id': 'W3C', 'deprecated': False}, - 'w3c-19980720': {'id': 'W3C-19980720', 'deprecated': False}, - 'w3c-20150513': {'id': 'W3C-20150513', 'deprecated': False}, - 'w3m': {'id': 'w3m', 'deprecated': False}, - 'watcom-1.0': {'id': 'Watcom-1.0', 'deprecated': False}, - 'widget-workshop': {'id': 'Widget-Workshop', 'deprecated': False}, - 'wsuipa': {'id': 'Wsuipa', 'deprecated': False}, - 'wtfpl': {'id': 'WTFPL', 'deprecated': False}, - 'wwl': {'id': 'wwl', 'deprecated': False}, - 'wxwindows': {'id': 'wxWindows', 'deprecated': True}, - 'x11': {'id': 'X11', 'deprecated': False}, - 'x11-distribute-modifications-variant': {'id': 'X11-distribute-modifications-variant', 'deprecated': False}, - 'x11-swapped': {'id': 'X11-swapped', 'deprecated': False}, - 'xdebug-1.03': {'id': 'Xdebug-1.03', 'deprecated': False}, - 'xerox': {'id': 'Xerox', 'deprecated': False}, - 'xfig': {'id': 'Xfig', 'deprecated': False}, - 'xfree86-1.1': {'id': 'XFree86-1.1', 'deprecated': False}, - 'xinetd': {'id': 'xinetd', 'deprecated': False}, - 'xkeyboard-config-zinoviev': {'id': 'xkeyboard-config-Zinoviev', 'deprecated': False}, - 'xlock': {'id': 'xlock', 'deprecated': False}, - 'xnet': {'id': 'Xnet', 'deprecated': False}, - 'xpp': {'id': 'xpp', 'deprecated': False}, - 'xskat': {'id': 'XSkat', 'deprecated': False}, - 'xzoom': {'id': 'xzoom', 'deprecated': False}, - 'ypl-1.0': {'id': 'YPL-1.0', 'deprecated': False}, - 'ypl-1.1': {'id': 'YPL-1.1', 'deprecated': False}, - 'zed': {'id': 'Zed', 'deprecated': False}, - 'zeeff': {'id': 'Zeeff', 'deprecated': False}, - 'zend-2.0': {'id': 'Zend-2.0', 'deprecated': False}, - 'zimbra-1.3': {'id': 'Zimbra-1.3', 'deprecated': False}, - 'zimbra-1.4': {'id': 'Zimbra-1.4', 'deprecated': False}, - 'zlib': {'id': 'Zlib', 'deprecated': False}, - 'zlib-acknowledgement': {'id': 'zlib-acknowledgement', 'deprecated': False}, - 'zpl-1.1': {'id': 'ZPL-1.1', 'deprecated': False}, - 'zpl-2.0': {'id': 'ZPL-2.0', 'deprecated': False}, - 'zpl-2.1': {'id': 'ZPL-2.1', 'deprecated': False}, + "0bsd": {"id": "0BSD", "deprecated": False}, + "3d-slicer-1.0": {"id": "3D-Slicer-1.0", "deprecated": False}, + "aal": {"id": "AAL", "deprecated": False}, + "abstyles": {"id": "Abstyles", "deprecated": False}, + "adacore-doc": {"id": "AdaCore-doc", "deprecated": False}, + "adobe-2006": {"id": "Adobe-2006", "deprecated": False}, + "adobe-display-postscript": {"id": "Adobe-Display-PostScript", "deprecated": False}, + "adobe-glyph": {"id": "Adobe-Glyph", "deprecated": False}, + "adobe-utopia": {"id": "Adobe-Utopia", "deprecated": False}, + "adsl": {"id": "ADSL", "deprecated": False}, + "afl-1.1": {"id": "AFL-1.1", "deprecated": False}, + "afl-1.2": {"id": "AFL-1.2", "deprecated": False}, + "afl-2.0": {"id": "AFL-2.0", "deprecated": False}, + "afl-2.1": {"id": "AFL-2.1", "deprecated": False}, + "afl-3.0": {"id": "AFL-3.0", "deprecated": False}, + "afmparse": {"id": "Afmparse", "deprecated": False}, + "agpl-1.0": {"id": "AGPL-1.0", "deprecated": True}, + "agpl-1.0-only": {"id": "AGPL-1.0-only", "deprecated": False}, + "agpl-1.0-or-later": {"id": "AGPL-1.0-or-later", "deprecated": False}, + "agpl-3.0": {"id": "AGPL-3.0", "deprecated": True}, + "agpl-3.0-only": {"id": "AGPL-3.0-only", "deprecated": False}, + "agpl-3.0-or-later": {"id": "AGPL-3.0-or-later", "deprecated": False}, + "aladdin": {"id": "Aladdin", "deprecated": False}, + "amd-newlib": {"id": "AMD-newlib", "deprecated": False}, + "amdplpa": {"id": "AMDPLPA", "deprecated": False}, + "aml": {"id": "AML", "deprecated": False}, + "aml-glslang": {"id": "AML-glslang", "deprecated": False}, + "ampas": {"id": "AMPAS", "deprecated": False}, + "antlr-pd": {"id": "ANTLR-PD", "deprecated": False}, + "antlr-pd-fallback": {"id": "ANTLR-PD-fallback", "deprecated": False}, + "any-osi": {"id": "any-OSI", "deprecated": False}, + "any-osi-perl-modules": {"id": "any-OSI-perl-modules", "deprecated": False}, + "apache-1.0": {"id": "Apache-1.0", "deprecated": False}, + "apache-1.1": {"id": "Apache-1.1", "deprecated": False}, + "apache-2.0": {"id": "Apache-2.0", "deprecated": False}, + "apafml": {"id": "APAFML", "deprecated": False}, + "apl-1.0": {"id": "APL-1.0", "deprecated": False}, + "app-s2p": {"id": "App-s2p", "deprecated": False}, + "apsl-1.0": {"id": "APSL-1.0", "deprecated": False}, + "apsl-1.1": {"id": "APSL-1.1", "deprecated": False}, + "apsl-1.2": {"id": "APSL-1.2", "deprecated": False}, + "apsl-2.0": {"id": "APSL-2.0", "deprecated": False}, + "arphic-1999": {"id": "Arphic-1999", "deprecated": False}, + "artistic-1.0": {"id": "Artistic-1.0", "deprecated": False}, + "artistic-1.0-cl8": {"id": "Artistic-1.0-cl8", "deprecated": False}, + "artistic-1.0-perl": {"id": "Artistic-1.0-Perl", "deprecated": False}, + "artistic-2.0": {"id": "Artistic-2.0", "deprecated": False}, + "artistic-dist": {"id": "Artistic-dist", "deprecated": False}, + "aspell-ru": {"id": "Aspell-RU", "deprecated": False}, + "aswf-digital-assets-1.0": {"id": "ASWF-Digital-Assets-1.0", "deprecated": False}, + "aswf-digital-assets-1.1": {"id": "ASWF-Digital-Assets-1.1", "deprecated": False}, + "baekmuk": {"id": "Baekmuk", "deprecated": False}, + "bahyph": {"id": "Bahyph", "deprecated": False}, + "barr": {"id": "Barr", "deprecated": False}, + "bcrypt-solar-designer": {"id": "bcrypt-Solar-Designer", "deprecated": False}, + "beerware": {"id": "Beerware", "deprecated": False}, + "bitstream-charter": {"id": "Bitstream-Charter", "deprecated": False}, + "bitstream-vera": {"id": "Bitstream-Vera", "deprecated": False}, + "bittorrent-1.0": {"id": "BitTorrent-1.0", "deprecated": False}, + "bittorrent-1.1": {"id": "BitTorrent-1.1", "deprecated": False}, + "blessing": {"id": "blessing", "deprecated": False}, + "blueoak-1.0.0": {"id": "BlueOak-1.0.0", "deprecated": False}, + "boehm-gc": {"id": "Boehm-GC", "deprecated": False}, + "boehm-gc-without-fee": {"id": "Boehm-GC-without-fee", "deprecated": False}, + "borceux": {"id": "Borceux", "deprecated": False}, + "brian-gladman-2-clause": {"id": "Brian-Gladman-2-Clause", "deprecated": False}, + "brian-gladman-3-clause": {"id": "Brian-Gladman-3-Clause", "deprecated": False}, + "bsd-1-clause": {"id": "BSD-1-Clause", "deprecated": False}, + "bsd-2-clause": {"id": "BSD-2-Clause", "deprecated": False}, + "bsd-2-clause-darwin": {"id": "BSD-2-Clause-Darwin", "deprecated": False}, + "bsd-2-clause-first-lines": {"id": "BSD-2-Clause-first-lines", "deprecated": False}, + "bsd-2-clause-freebsd": {"id": "BSD-2-Clause-FreeBSD", "deprecated": True}, + "bsd-2-clause-netbsd": {"id": "BSD-2-Clause-NetBSD", "deprecated": True}, + "bsd-2-clause-patent": {"id": "BSD-2-Clause-Patent", "deprecated": False}, + "bsd-2-clause-pkgconf-disclaimer": { + "id": "BSD-2-Clause-pkgconf-disclaimer", + "deprecated": False, + }, + "bsd-2-clause-views": {"id": "BSD-2-Clause-Views", "deprecated": False}, + "bsd-3-clause": {"id": "BSD-3-Clause", "deprecated": False}, + "bsd-3-clause-acpica": {"id": "BSD-3-Clause-acpica", "deprecated": False}, + "bsd-3-clause-attribution": {"id": "BSD-3-Clause-Attribution", "deprecated": False}, + "bsd-3-clause-clear": {"id": "BSD-3-Clause-Clear", "deprecated": False}, + "bsd-3-clause-flex": {"id": "BSD-3-Clause-flex", "deprecated": False}, + "bsd-3-clause-hp": {"id": "BSD-3-Clause-HP", "deprecated": False}, + "bsd-3-clause-lbnl": {"id": "BSD-3-Clause-LBNL", "deprecated": False}, + "bsd-3-clause-modification": { + "id": "BSD-3-Clause-Modification", + "deprecated": False, + }, + "bsd-3-clause-no-military-license": { + "id": "BSD-3-Clause-No-Military-License", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-license": { + "id": "BSD-3-Clause-No-Nuclear-License", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-license-2014": { + "id": "BSD-3-Clause-No-Nuclear-License-2014", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-warranty": { + "id": "BSD-3-Clause-No-Nuclear-Warranty", + "deprecated": False, + }, + "bsd-3-clause-open-mpi": {"id": "BSD-3-Clause-Open-MPI", "deprecated": False}, + "bsd-3-clause-sun": {"id": "BSD-3-Clause-Sun", "deprecated": False}, + "bsd-4-clause": {"id": "BSD-4-Clause", "deprecated": False}, + "bsd-4-clause-shortened": {"id": "BSD-4-Clause-Shortened", "deprecated": False}, + "bsd-4-clause-uc": {"id": "BSD-4-Clause-UC", "deprecated": False}, + "bsd-4.3reno": {"id": "BSD-4.3RENO", "deprecated": False}, + "bsd-4.3tahoe": {"id": "BSD-4.3TAHOE", "deprecated": False}, + "bsd-advertising-acknowledgement": { + "id": "BSD-Advertising-Acknowledgement", + "deprecated": False, + }, + "bsd-attribution-hpnd-disclaimer": { + "id": "BSD-Attribution-HPND-disclaimer", + "deprecated": False, + }, + "bsd-inferno-nettverk": {"id": "BSD-Inferno-Nettverk", "deprecated": False}, + "bsd-protection": {"id": "BSD-Protection", "deprecated": False}, + "bsd-source-beginning-file": { + "id": "BSD-Source-beginning-file", + "deprecated": False, + }, + "bsd-source-code": {"id": "BSD-Source-Code", "deprecated": False}, + "bsd-systemics": {"id": "BSD-Systemics", "deprecated": False}, + "bsd-systemics-w3works": {"id": "BSD-Systemics-W3Works", "deprecated": False}, + "bsl-1.0": {"id": "BSL-1.0", "deprecated": False}, + "busl-1.1": {"id": "BUSL-1.1", "deprecated": False}, + "bzip2-1.0.5": {"id": "bzip2-1.0.5", "deprecated": True}, + "bzip2-1.0.6": {"id": "bzip2-1.0.6", "deprecated": False}, + "c-uda-1.0": {"id": "C-UDA-1.0", "deprecated": False}, + "cal-1.0": {"id": "CAL-1.0", "deprecated": False}, + "cal-1.0-combined-work-exception": { + "id": "CAL-1.0-Combined-Work-Exception", + "deprecated": False, + }, + "caldera": {"id": "Caldera", "deprecated": False}, + "caldera-no-preamble": {"id": "Caldera-no-preamble", "deprecated": False}, + "catharon": {"id": "Catharon", "deprecated": False}, + "catosl-1.1": {"id": "CATOSL-1.1", "deprecated": False}, + "cc-by-1.0": {"id": "CC-BY-1.0", "deprecated": False}, + "cc-by-2.0": {"id": "CC-BY-2.0", "deprecated": False}, + "cc-by-2.5": {"id": "CC-BY-2.5", "deprecated": False}, + "cc-by-2.5-au": {"id": "CC-BY-2.5-AU", "deprecated": False}, + "cc-by-3.0": {"id": "CC-BY-3.0", "deprecated": False}, + "cc-by-3.0-at": {"id": "CC-BY-3.0-AT", "deprecated": False}, + "cc-by-3.0-au": {"id": "CC-BY-3.0-AU", "deprecated": False}, + "cc-by-3.0-de": {"id": "CC-BY-3.0-DE", "deprecated": False}, + "cc-by-3.0-igo": {"id": "CC-BY-3.0-IGO", "deprecated": False}, + "cc-by-3.0-nl": {"id": "CC-BY-3.0-NL", "deprecated": False}, + "cc-by-3.0-us": {"id": "CC-BY-3.0-US", "deprecated": False}, + "cc-by-4.0": {"id": "CC-BY-4.0", "deprecated": False}, + "cc-by-nc-1.0": {"id": "CC-BY-NC-1.0", "deprecated": False}, + "cc-by-nc-2.0": {"id": "CC-BY-NC-2.0", "deprecated": False}, + "cc-by-nc-2.5": {"id": "CC-BY-NC-2.5", "deprecated": False}, + "cc-by-nc-3.0": {"id": "CC-BY-NC-3.0", "deprecated": False}, + "cc-by-nc-3.0-de": {"id": "CC-BY-NC-3.0-DE", "deprecated": False}, + "cc-by-nc-4.0": {"id": "CC-BY-NC-4.0", "deprecated": False}, + "cc-by-nc-nd-1.0": {"id": "CC-BY-NC-ND-1.0", "deprecated": False}, + "cc-by-nc-nd-2.0": {"id": "CC-BY-NC-ND-2.0", "deprecated": False}, + "cc-by-nc-nd-2.5": {"id": "CC-BY-NC-ND-2.5", "deprecated": False}, + "cc-by-nc-nd-3.0": {"id": "CC-BY-NC-ND-3.0", "deprecated": False}, + "cc-by-nc-nd-3.0-de": {"id": "CC-BY-NC-ND-3.0-DE", "deprecated": False}, + "cc-by-nc-nd-3.0-igo": {"id": "CC-BY-NC-ND-3.0-IGO", "deprecated": False}, + "cc-by-nc-nd-4.0": {"id": "CC-BY-NC-ND-4.0", "deprecated": False}, + "cc-by-nc-sa-1.0": {"id": "CC-BY-NC-SA-1.0", "deprecated": False}, + "cc-by-nc-sa-2.0": {"id": "CC-BY-NC-SA-2.0", "deprecated": False}, + "cc-by-nc-sa-2.0-de": {"id": "CC-BY-NC-SA-2.0-DE", "deprecated": False}, + "cc-by-nc-sa-2.0-fr": {"id": "CC-BY-NC-SA-2.0-FR", "deprecated": False}, + "cc-by-nc-sa-2.0-uk": {"id": "CC-BY-NC-SA-2.0-UK", "deprecated": False}, + "cc-by-nc-sa-2.5": {"id": "CC-BY-NC-SA-2.5", "deprecated": False}, + "cc-by-nc-sa-3.0": {"id": "CC-BY-NC-SA-3.0", "deprecated": False}, + "cc-by-nc-sa-3.0-de": {"id": "CC-BY-NC-SA-3.0-DE", "deprecated": False}, + "cc-by-nc-sa-3.0-igo": {"id": "CC-BY-NC-SA-3.0-IGO", "deprecated": False}, + "cc-by-nc-sa-4.0": {"id": "CC-BY-NC-SA-4.0", "deprecated": False}, + "cc-by-nd-1.0": {"id": "CC-BY-ND-1.0", "deprecated": False}, + "cc-by-nd-2.0": {"id": "CC-BY-ND-2.0", "deprecated": False}, + "cc-by-nd-2.5": {"id": "CC-BY-ND-2.5", "deprecated": False}, + "cc-by-nd-3.0": {"id": "CC-BY-ND-3.0", "deprecated": False}, + "cc-by-nd-3.0-de": {"id": "CC-BY-ND-3.0-DE", "deprecated": False}, + "cc-by-nd-4.0": {"id": "CC-BY-ND-4.0", "deprecated": False}, + "cc-by-sa-1.0": {"id": "CC-BY-SA-1.0", "deprecated": False}, + "cc-by-sa-2.0": {"id": "CC-BY-SA-2.0", "deprecated": False}, + "cc-by-sa-2.0-uk": {"id": "CC-BY-SA-2.0-UK", "deprecated": False}, + "cc-by-sa-2.1-jp": {"id": "CC-BY-SA-2.1-JP", "deprecated": False}, + "cc-by-sa-2.5": {"id": "CC-BY-SA-2.5", "deprecated": False}, + "cc-by-sa-3.0": {"id": "CC-BY-SA-3.0", "deprecated": False}, + "cc-by-sa-3.0-at": {"id": "CC-BY-SA-3.0-AT", "deprecated": False}, + "cc-by-sa-3.0-de": {"id": "CC-BY-SA-3.0-DE", "deprecated": False}, + "cc-by-sa-3.0-igo": {"id": "CC-BY-SA-3.0-IGO", "deprecated": False}, + "cc-by-sa-4.0": {"id": "CC-BY-SA-4.0", "deprecated": False}, + "cc-pddc": {"id": "CC-PDDC", "deprecated": False}, + "cc-pdm-1.0": {"id": "CC-PDM-1.0", "deprecated": False}, + "cc-sa-1.0": {"id": "CC-SA-1.0", "deprecated": False}, + "cc0-1.0": {"id": "CC0-1.0", "deprecated": False}, + "cddl-1.0": {"id": "CDDL-1.0", "deprecated": False}, + "cddl-1.1": {"id": "CDDL-1.1", "deprecated": False}, + "cdl-1.0": {"id": "CDL-1.0", "deprecated": False}, + "cdla-permissive-1.0": {"id": "CDLA-Permissive-1.0", "deprecated": False}, + "cdla-permissive-2.0": {"id": "CDLA-Permissive-2.0", "deprecated": False}, + "cdla-sharing-1.0": {"id": "CDLA-Sharing-1.0", "deprecated": False}, + "cecill-1.0": {"id": "CECILL-1.0", "deprecated": False}, + "cecill-1.1": {"id": "CECILL-1.1", "deprecated": False}, + "cecill-2.0": {"id": "CECILL-2.0", "deprecated": False}, + "cecill-2.1": {"id": "CECILL-2.1", "deprecated": False}, + "cecill-b": {"id": "CECILL-B", "deprecated": False}, + "cecill-c": {"id": "CECILL-C", "deprecated": False}, + "cern-ohl-1.1": {"id": "CERN-OHL-1.1", "deprecated": False}, + "cern-ohl-1.2": {"id": "CERN-OHL-1.2", "deprecated": False}, + "cern-ohl-p-2.0": {"id": "CERN-OHL-P-2.0", "deprecated": False}, + "cern-ohl-s-2.0": {"id": "CERN-OHL-S-2.0", "deprecated": False}, + "cern-ohl-w-2.0": {"id": "CERN-OHL-W-2.0", "deprecated": False}, + "cfitsio": {"id": "CFITSIO", "deprecated": False}, + "check-cvs": {"id": "check-cvs", "deprecated": False}, + "checkmk": {"id": "checkmk", "deprecated": False}, + "clartistic": {"id": "ClArtistic", "deprecated": False}, + "clips": {"id": "Clips", "deprecated": False}, + "cmu-mach": {"id": "CMU-Mach", "deprecated": False}, + "cmu-mach-nodoc": {"id": "CMU-Mach-nodoc", "deprecated": False}, + "cnri-jython": {"id": "CNRI-Jython", "deprecated": False}, + "cnri-python": {"id": "CNRI-Python", "deprecated": False}, + "cnri-python-gpl-compatible": { + "id": "CNRI-Python-GPL-Compatible", + "deprecated": False, + }, + "coil-1.0": {"id": "COIL-1.0", "deprecated": False}, + "community-spec-1.0": {"id": "Community-Spec-1.0", "deprecated": False}, + "condor-1.1": {"id": "Condor-1.1", "deprecated": False}, + "copyleft-next-0.3.0": {"id": "copyleft-next-0.3.0", "deprecated": False}, + "copyleft-next-0.3.1": {"id": "copyleft-next-0.3.1", "deprecated": False}, + "cornell-lossless-jpeg": {"id": "Cornell-Lossless-JPEG", "deprecated": False}, + "cpal-1.0": {"id": "CPAL-1.0", "deprecated": False}, + "cpl-1.0": {"id": "CPL-1.0", "deprecated": False}, + "cpol-1.02": {"id": "CPOL-1.02", "deprecated": False}, + "cronyx": {"id": "Cronyx", "deprecated": False}, + "crossword": {"id": "Crossword", "deprecated": False}, + "cryptoswift": {"id": "CryptoSwift", "deprecated": False}, + "crystalstacker": {"id": "CrystalStacker", "deprecated": False}, + "cua-opl-1.0": {"id": "CUA-OPL-1.0", "deprecated": False}, + "cube": {"id": "Cube", "deprecated": False}, + "curl": {"id": "curl", "deprecated": False}, + "cve-tou": {"id": "cve-tou", "deprecated": False}, + "d-fsl-1.0": {"id": "D-FSL-1.0", "deprecated": False}, + "dec-3-clause": {"id": "DEC-3-Clause", "deprecated": False}, + "diffmark": {"id": "diffmark", "deprecated": False}, + "dl-de-by-2.0": {"id": "DL-DE-BY-2.0", "deprecated": False}, + "dl-de-zero-2.0": {"id": "DL-DE-ZERO-2.0", "deprecated": False}, + "doc": {"id": "DOC", "deprecated": False}, + "docbook-dtd": {"id": "DocBook-DTD", "deprecated": False}, + "docbook-schema": {"id": "DocBook-Schema", "deprecated": False}, + "docbook-stylesheet": {"id": "DocBook-Stylesheet", "deprecated": False}, + "docbook-xml": {"id": "DocBook-XML", "deprecated": False}, + "dotseqn": {"id": "Dotseqn", "deprecated": False}, + "drl-1.0": {"id": "DRL-1.0", "deprecated": False}, + "drl-1.1": {"id": "DRL-1.1", "deprecated": False}, + "dsdp": {"id": "DSDP", "deprecated": False}, + "dtoa": {"id": "dtoa", "deprecated": False}, + "dvipdfm": {"id": "dvipdfm", "deprecated": False}, + "ecl-1.0": {"id": "ECL-1.0", "deprecated": False}, + "ecl-2.0": {"id": "ECL-2.0", "deprecated": False}, + "ecos-2.0": {"id": "eCos-2.0", "deprecated": True}, + "efl-1.0": {"id": "EFL-1.0", "deprecated": False}, + "efl-2.0": {"id": "EFL-2.0", "deprecated": False}, + "egenix": {"id": "eGenix", "deprecated": False}, + "elastic-2.0": {"id": "Elastic-2.0", "deprecated": False}, + "entessa": {"id": "Entessa", "deprecated": False}, + "epics": {"id": "EPICS", "deprecated": False}, + "epl-1.0": {"id": "EPL-1.0", "deprecated": False}, + "epl-2.0": {"id": "EPL-2.0", "deprecated": False}, + "erlpl-1.1": {"id": "ErlPL-1.1", "deprecated": False}, + "etalab-2.0": {"id": "etalab-2.0", "deprecated": False}, + "eudatagrid": {"id": "EUDatagrid", "deprecated": False}, + "eupl-1.0": {"id": "EUPL-1.0", "deprecated": False}, + "eupl-1.1": {"id": "EUPL-1.1", "deprecated": False}, + "eupl-1.2": {"id": "EUPL-1.2", "deprecated": False}, + "eurosym": {"id": "Eurosym", "deprecated": False}, + "fair": {"id": "Fair", "deprecated": False}, + "fbm": {"id": "FBM", "deprecated": False}, + "fdk-aac": {"id": "FDK-AAC", "deprecated": False}, + "ferguson-twofish": {"id": "Ferguson-Twofish", "deprecated": False}, + "frameworx-1.0": {"id": "Frameworx-1.0", "deprecated": False}, + "freebsd-doc": {"id": "FreeBSD-DOC", "deprecated": False}, + "freeimage": {"id": "FreeImage", "deprecated": False}, + "fsfap": {"id": "FSFAP", "deprecated": False}, + "fsfap-no-warranty-disclaimer": { + "id": "FSFAP-no-warranty-disclaimer", + "deprecated": False, + }, + "fsful": {"id": "FSFUL", "deprecated": False}, + "fsfullr": {"id": "FSFULLR", "deprecated": False}, + "fsfullrsd": {"id": "FSFULLRSD", "deprecated": False}, + "fsfullrwd": {"id": "FSFULLRWD", "deprecated": False}, + "fsl-1.1-alv2": {"id": "FSL-1.1-ALv2", "deprecated": False}, + "fsl-1.1-mit": {"id": "FSL-1.1-MIT", "deprecated": False}, + "ftl": {"id": "FTL", "deprecated": False}, + "furuseth": {"id": "Furuseth", "deprecated": False}, + "fwlw": {"id": "fwlw", "deprecated": False}, + "game-programming-gems": {"id": "Game-Programming-Gems", "deprecated": False}, + "gcr-docs": {"id": "GCR-docs", "deprecated": False}, + "gd": {"id": "GD", "deprecated": False}, + "generic-xts": {"id": "generic-xts", "deprecated": False}, + "gfdl-1.1": {"id": "GFDL-1.1", "deprecated": True}, + "gfdl-1.1-invariants-only": {"id": "GFDL-1.1-invariants-only", "deprecated": False}, + "gfdl-1.1-invariants-or-later": { + "id": "GFDL-1.1-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.1-no-invariants-only": { + "id": "GFDL-1.1-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.1-no-invariants-or-later": { + "id": "GFDL-1.1-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.1-only": {"id": "GFDL-1.1-only", "deprecated": False}, + "gfdl-1.1-or-later": {"id": "GFDL-1.1-or-later", "deprecated": False}, + "gfdl-1.2": {"id": "GFDL-1.2", "deprecated": True}, + "gfdl-1.2-invariants-only": {"id": "GFDL-1.2-invariants-only", "deprecated": False}, + "gfdl-1.2-invariants-or-later": { + "id": "GFDL-1.2-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.2-no-invariants-only": { + "id": "GFDL-1.2-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.2-no-invariants-or-later": { + "id": "GFDL-1.2-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.2-only": {"id": "GFDL-1.2-only", "deprecated": False}, + "gfdl-1.2-or-later": {"id": "GFDL-1.2-or-later", "deprecated": False}, + "gfdl-1.3": {"id": "GFDL-1.3", "deprecated": True}, + "gfdl-1.3-invariants-only": {"id": "GFDL-1.3-invariants-only", "deprecated": False}, + "gfdl-1.3-invariants-or-later": { + "id": "GFDL-1.3-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.3-no-invariants-only": { + "id": "GFDL-1.3-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.3-no-invariants-or-later": { + "id": "GFDL-1.3-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.3-only": {"id": "GFDL-1.3-only", "deprecated": False}, + "gfdl-1.3-or-later": {"id": "GFDL-1.3-or-later", "deprecated": False}, + "giftware": {"id": "Giftware", "deprecated": False}, + "gl2ps": {"id": "GL2PS", "deprecated": False}, + "glide": {"id": "Glide", "deprecated": False}, + "glulxe": {"id": "Glulxe", "deprecated": False}, + "glwtpl": {"id": "GLWTPL", "deprecated": False}, + "gnuplot": {"id": "gnuplot", "deprecated": False}, + "gpl-1.0": {"id": "GPL-1.0", "deprecated": True}, + "gpl-1.0+": {"id": "GPL-1.0+", "deprecated": True}, + "gpl-1.0-only": {"id": "GPL-1.0-only", "deprecated": False}, + "gpl-1.0-or-later": {"id": "GPL-1.0-or-later", "deprecated": False}, + "gpl-2.0": {"id": "GPL-2.0", "deprecated": True}, + "gpl-2.0+": {"id": "GPL-2.0+", "deprecated": True}, + "gpl-2.0-only": {"id": "GPL-2.0-only", "deprecated": False}, + "gpl-2.0-or-later": {"id": "GPL-2.0-or-later", "deprecated": False}, + "gpl-2.0-with-autoconf-exception": { + "id": "GPL-2.0-with-autoconf-exception", + "deprecated": True, + }, + "gpl-2.0-with-bison-exception": { + "id": "GPL-2.0-with-bison-exception", + "deprecated": True, + }, + "gpl-2.0-with-classpath-exception": { + "id": "GPL-2.0-with-classpath-exception", + "deprecated": True, + }, + "gpl-2.0-with-font-exception": { + "id": "GPL-2.0-with-font-exception", + "deprecated": True, + }, + "gpl-2.0-with-gcc-exception": { + "id": "GPL-2.0-with-GCC-exception", + "deprecated": True, + }, + "gpl-3.0": {"id": "GPL-3.0", "deprecated": True}, + "gpl-3.0+": {"id": "GPL-3.0+", "deprecated": True}, + "gpl-3.0-only": {"id": "GPL-3.0-only", "deprecated": False}, + "gpl-3.0-or-later": {"id": "GPL-3.0-or-later", "deprecated": False}, + "gpl-3.0-with-autoconf-exception": { + "id": "GPL-3.0-with-autoconf-exception", + "deprecated": True, + }, + "gpl-3.0-with-gcc-exception": { + "id": "GPL-3.0-with-GCC-exception", + "deprecated": True, + }, + "graphics-gems": {"id": "Graphics-Gems", "deprecated": False}, + "gsoap-1.3b": {"id": "gSOAP-1.3b", "deprecated": False}, + "gtkbook": {"id": "gtkbook", "deprecated": False}, + "gutmann": {"id": "Gutmann", "deprecated": False}, + "haskellreport": {"id": "HaskellReport", "deprecated": False}, + "hdf5": {"id": "HDF5", "deprecated": False}, + "hdparm": {"id": "hdparm", "deprecated": False}, + "hidapi": {"id": "HIDAPI", "deprecated": False}, + "hippocratic-2.1": {"id": "Hippocratic-2.1", "deprecated": False}, + "hp-1986": {"id": "HP-1986", "deprecated": False}, + "hp-1989": {"id": "HP-1989", "deprecated": False}, + "hpnd": {"id": "HPND", "deprecated": False}, + "hpnd-dec": {"id": "HPND-DEC", "deprecated": False}, + "hpnd-doc": {"id": "HPND-doc", "deprecated": False}, + "hpnd-doc-sell": {"id": "HPND-doc-sell", "deprecated": False}, + "hpnd-export-us": {"id": "HPND-export-US", "deprecated": False}, + "hpnd-export-us-acknowledgement": { + "id": "HPND-export-US-acknowledgement", + "deprecated": False, + }, + "hpnd-export-us-modify": {"id": "HPND-export-US-modify", "deprecated": False}, + "hpnd-export2-us": {"id": "HPND-export2-US", "deprecated": False}, + "hpnd-fenneberg-livingston": { + "id": "HPND-Fenneberg-Livingston", + "deprecated": False, + }, + "hpnd-inria-imag": {"id": "HPND-INRIA-IMAG", "deprecated": False}, + "hpnd-intel": {"id": "HPND-Intel", "deprecated": False}, + "hpnd-kevlin-henney": {"id": "HPND-Kevlin-Henney", "deprecated": False}, + "hpnd-markus-kuhn": {"id": "HPND-Markus-Kuhn", "deprecated": False}, + "hpnd-merchantability-variant": { + "id": "HPND-merchantability-variant", + "deprecated": False, + }, + "hpnd-mit-disclaimer": {"id": "HPND-MIT-disclaimer", "deprecated": False}, + "hpnd-netrek": {"id": "HPND-Netrek", "deprecated": False}, + "hpnd-pbmplus": {"id": "HPND-Pbmplus", "deprecated": False}, + "hpnd-sell-mit-disclaimer-xserver": { + "id": "HPND-sell-MIT-disclaimer-xserver", + "deprecated": False, + }, + "hpnd-sell-regexpr": {"id": "HPND-sell-regexpr", "deprecated": False}, + "hpnd-sell-variant": {"id": "HPND-sell-variant", "deprecated": False}, + "hpnd-sell-variant-mit-disclaimer": { + "id": "HPND-sell-variant-MIT-disclaimer", + "deprecated": False, + }, + "hpnd-sell-variant-mit-disclaimer-rev": { + "id": "HPND-sell-variant-MIT-disclaimer-rev", + "deprecated": False, + }, + "hpnd-uc": {"id": "HPND-UC", "deprecated": False}, + "hpnd-uc-export-us": {"id": "HPND-UC-export-US", "deprecated": False}, + "htmltidy": {"id": "HTMLTIDY", "deprecated": False}, + "ibm-pibs": {"id": "IBM-pibs", "deprecated": False}, + "icu": {"id": "ICU", "deprecated": False}, + "iec-code-components-eula": {"id": "IEC-Code-Components-EULA", "deprecated": False}, + "ijg": {"id": "IJG", "deprecated": False}, + "ijg-short": {"id": "IJG-short", "deprecated": False}, + "imagemagick": {"id": "ImageMagick", "deprecated": False}, + "imatix": {"id": "iMatix", "deprecated": False}, + "imlib2": {"id": "Imlib2", "deprecated": False}, + "info-zip": {"id": "Info-ZIP", "deprecated": False}, + "inner-net-2.0": {"id": "Inner-Net-2.0", "deprecated": False}, + "innosetup": {"id": "InnoSetup", "deprecated": False}, + "intel": {"id": "Intel", "deprecated": False}, + "intel-acpi": {"id": "Intel-ACPI", "deprecated": False}, + "interbase-1.0": {"id": "Interbase-1.0", "deprecated": False}, + "ipa": {"id": "IPA", "deprecated": False}, + "ipl-1.0": {"id": "IPL-1.0", "deprecated": False}, + "isc": {"id": "ISC", "deprecated": False}, + "isc-veillard": {"id": "ISC-Veillard", "deprecated": False}, + "jam": {"id": "Jam", "deprecated": False}, + "jasper-2.0": {"id": "JasPer-2.0", "deprecated": False}, + "jove": {"id": "jove", "deprecated": False}, + "jpl-image": {"id": "JPL-image", "deprecated": False}, + "jpnic": {"id": "JPNIC", "deprecated": False}, + "json": {"id": "JSON", "deprecated": False}, + "kastrup": {"id": "Kastrup", "deprecated": False}, + "kazlib": {"id": "Kazlib", "deprecated": False}, + "knuth-ctan": {"id": "Knuth-CTAN", "deprecated": False}, + "lal-1.2": {"id": "LAL-1.2", "deprecated": False}, + "lal-1.3": {"id": "LAL-1.3", "deprecated": False}, + "latex2e": {"id": "Latex2e", "deprecated": False}, + "latex2e-translated-notice": { + "id": "Latex2e-translated-notice", + "deprecated": False, + }, + "leptonica": {"id": "Leptonica", "deprecated": False}, + "lgpl-2.0": {"id": "LGPL-2.0", "deprecated": True}, + "lgpl-2.0+": {"id": "LGPL-2.0+", "deprecated": True}, + "lgpl-2.0-only": {"id": "LGPL-2.0-only", "deprecated": False}, + "lgpl-2.0-or-later": {"id": "LGPL-2.0-or-later", "deprecated": False}, + "lgpl-2.1": {"id": "LGPL-2.1", "deprecated": True}, + "lgpl-2.1+": {"id": "LGPL-2.1+", "deprecated": True}, + "lgpl-2.1-only": {"id": "LGPL-2.1-only", "deprecated": False}, + "lgpl-2.1-or-later": {"id": "LGPL-2.1-or-later", "deprecated": False}, + "lgpl-3.0": {"id": "LGPL-3.0", "deprecated": True}, + "lgpl-3.0+": {"id": "LGPL-3.0+", "deprecated": True}, + "lgpl-3.0-only": {"id": "LGPL-3.0-only", "deprecated": False}, + "lgpl-3.0-or-later": {"id": "LGPL-3.0-or-later", "deprecated": False}, + "lgpllr": {"id": "LGPLLR", "deprecated": False}, + "libpng": {"id": "Libpng", "deprecated": False}, + "libpng-1.6.35": {"id": "libpng-1.6.35", "deprecated": False}, + "libpng-2.0": {"id": "libpng-2.0", "deprecated": False}, + "libselinux-1.0": {"id": "libselinux-1.0", "deprecated": False}, + "libtiff": {"id": "libtiff", "deprecated": False}, + "libutil-david-nugent": {"id": "libutil-David-Nugent", "deprecated": False}, + "liliq-p-1.1": {"id": "LiLiQ-P-1.1", "deprecated": False}, + "liliq-r-1.1": {"id": "LiLiQ-R-1.1", "deprecated": False}, + "liliq-rplus-1.1": {"id": "LiLiQ-Rplus-1.1", "deprecated": False}, + "linux-man-pages-1-para": {"id": "Linux-man-pages-1-para", "deprecated": False}, + "linux-man-pages-copyleft": {"id": "Linux-man-pages-copyleft", "deprecated": False}, + "linux-man-pages-copyleft-2-para": { + "id": "Linux-man-pages-copyleft-2-para", + "deprecated": False, + }, + "linux-man-pages-copyleft-var": { + "id": "Linux-man-pages-copyleft-var", + "deprecated": False, + }, + "linux-openib": {"id": "Linux-OpenIB", "deprecated": False}, + "loop": {"id": "LOOP", "deprecated": False}, + "lpd-document": {"id": "LPD-document", "deprecated": False}, + "lpl-1.0": {"id": "LPL-1.0", "deprecated": False}, + "lpl-1.02": {"id": "LPL-1.02", "deprecated": False}, + "lppl-1.0": {"id": "LPPL-1.0", "deprecated": False}, + "lppl-1.1": {"id": "LPPL-1.1", "deprecated": False}, + "lppl-1.2": {"id": "LPPL-1.2", "deprecated": False}, + "lppl-1.3a": {"id": "LPPL-1.3a", "deprecated": False}, + "lppl-1.3c": {"id": "LPPL-1.3c", "deprecated": False}, + "lsof": {"id": "lsof", "deprecated": False}, + "lucida-bitmap-fonts": {"id": "Lucida-Bitmap-Fonts", "deprecated": False}, + "lzma-sdk-9.11-to-9.20": {"id": "LZMA-SDK-9.11-to-9.20", "deprecated": False}, + "lzma-sdk-9.22": {"id": "LZMA-SDK-9.22", "deprecated": False}, + "mackerras-3-clause": {"id": "Mackerras-3-Clause", "deprecated": False}, + "mackerras-3-clause-acknowledgment": { + "id": "Mackerras-3-Clause-acknowledgment", + "deprecated": False, + }, + "magaz": {"id": "magaz", "deprecated": False}, + "mailprio": {"id": "mailprio", "deprecated": False}, + "makeindex": {"id": "MakeIndex", "deprecated": False}, + "man2html": {"id": "man2html", "deprecated": False}, + "martin-birgmeier": {"id": "Martin-Birgmeier", "deprecated": False}, + "mcphee-slideshow": {"id": "McPhee-slideshow", "deprecated": False}, + "metamail": {"id": "metamail", "deprecated": False}, + "minpack": {"id": "Minpack", "deprecated": False}, + "mips": {"id": "MIPS", "deprecated": False}, + "miros": {"id": "MirOS", "deprecated": False}, + "mit": {"id": "MIT", "deprecated": False}, + "mit-0": {"id": "MIT-0", "deprecated": False}, + "mit-advertising": {"id": "MIT-advertising", "deprecated": False}, + "mit-click": {"id": "MIT-Click", "deprecated": False}, + "mit-cmu": {"id": "MIT-CMU", "deprecated": False}, + "mit-enna": {"id": "MIT-enna", "deprecated": False}, + "mit-feh": {"id": "MIT-feh", "deprecated": False}, + "mit-festival": {"id": "MIT-Festival", "deprecated": False}, + "mit-khronos-old": {"id": "MIT-Khronos-old", "deprecated": False}, + "mit-modern-variant": {"id": "MIT-Modern-Variant", "deprecated": False}, + "mit-open-group": {"id": "MIT-open-group", "deprecated": False}, + "mit-testregex": {"id": "MIT-testregex", "deprecated": False}, + "mit-wu": {"id": "MIT-Wu", "deprecated": False}, + "mitnfa": {"id": "MITNFA", "deprecated": False}, + "mmixware": {"id": "MMIXware", "deprecated": False}, + "motosoto": {"id": "Motosoto", "deprecated": False}, + "mpeg-ssg": {"id": "MPEG-SSG", "deprecated": False}, + "mpi-permissive": {"id": "mpi-permissive", "deprecated": False}, + "mpich2": {"id": "mpich2", "deprecated": False}, + "mpl-1.0": {"id": "MPL-1.0", "deprecated": False}, + "mpl-1.1": {"id": "MPL-1.1", "deprecated": False}, + "mpl-2.0": {"id": "MPL-2.0", "deprecated": False}, + "mpl-2.0-no-copyleft-exception": { + "id": "MPL-2.0-no-copyleft-exception", + "deprecated": False, + }, + "mplus": {"id": "mplus", "deprecated": False}, + "ms-lpl": {"id": "MS-LPL", "deprecated": False}, + "ms-pl": {"id": "MS-PL", "deprecated": False}, + "ms-rl": {"id": "MS-RL", "deprecated": False}, + "mtll": {"id": "MTLL", "deprecated": False}, + "mulanpsl-1.0": {"id": "MulanPSL-1.0", "deprecated": False}, + "mulanpsl-2.0": {"id": "MulanPSL-2.0", "deprecated": False}, + "multics": {"id": "Multics", "deprecated": False}, + "mup": {"id": "Mup", "deprecated": False}, + "naist-2003": {"id": "NAIST-2003", "deprecated": False}, + "nasa-1.3": {"id": "NASA-1.3", "deprecated": False}, + "naumen": {"id": "Naumen", "deprecated": False}, + "nbpl-1.0": {"id": "NBPL-1.0", "deprecated": False}, + "ncbi-pd": {"id": "NCBI-PD", "deprecated": False}, + "ncgl-uk-2.0": {"id": "NCGL-UK-2.0", "deprecated": False}, + "ncl": {"id": "NCL", "deprecated": False}, + "ncsa": {"id": "NCSA", "deprecated": False}, + "net-snmp": {"id": "Net-SNMP", "deprecated": True}, + "netcdf": {"id": "NetCDF", "deprecated": False}, + "newsletr": {"id": "Newsletr", "deprecated": False}, + "ngpl": {"id": "NGPL", "deprecated": False}, + "ngrep": {"id": "ngrep", "deprecated": False}, + "nicta-1.0": {"id": "NICTA-1.0", "deprecated": False}, + "nist-pd": {"id": "NIST-PD", "deprecated": False}, + "nist-pd-fallback": {"id": "NIST-PD-fallback", "deprecated": False}, + "nist-software": {"id": "NIST-Software", "deprecated": False}, + "nlod-1.0": {"id": "NLOD-1.0", "deprecated": False}, + "nlod-2.0": {"id": "NLOD-2.0", "deprecated": False}, + "nlpl": {"id": "NLPL", "deprecated": False}, + "nokia": {"id": "Nokia", "deprecated": False}, + "nosl": {"id": "NOSL", "deprecated": False}, + "noweb": {"id": "Noweb", "deprecated": False}, + "npl-1.0": {"id": "NPL-1.0", "deprecated": False}, + "npl-1.1": {"id": "NPL-1.1", "deprecated": False}, + "nposl-3.0": {"id": "NPOSL-3.0", "deprecated": False}, + "nrl": {"id": "NRL", "deprecated": False}, + "ntia-pd": {"id": "NTIA-PD", "deprecated": False}, + "ntp": {"id": "NTP", "deprecated": False}, + "ntp-0": {"id": "NTP-0", "deprecated": False}, + "nunit": {"id": "Nunit", "deprecated": True}, + "o-uda-1.0": {"id": "O-UDA-1.0", "deprecated": False}, + "oar": {"id": "OAR", "deprecated": False}, + "occt-pl": {"id": "OCCT-PL", "deprecated": False}, + "oclc-2.0": {"id": "OCLC-2.0", "deprecated": False}, + "odbl-1.0": {"id": "ODbL-1.0", "deprecated": False}, + "odc-by-1.0": {"id": "ODC-By-1.0", "deprecated": False}, + "offis": {"id": "OFFIS", "deprecated": False}, + "ofl-1.0": {"id": "OFL-1.0", "deprecated": False}, + "ofl-1.0-no-rfn": {"id": "OFL-1.0-no-RFN", "deprecated": False}, + "ofl-1.0-rfn": {"id": "OFL-1.0-RFN", "deprecated": False}, + "ofl-1.1": {"id": "OFL-1.1", "deprecated": False}, + "ofl-1.1-no-rfn": {"id": "OFL-1.1-no-RFN", "deprecated": False}, + "ofl-1.1-rfn": {"id": "OFL-1.1-RFN", "deprecated": False}, + "ogc-1.0": {"id": "OGC-1.0", "deprecated": False}, + "ogdl-taiwan-1.0": {"id": "OGDL-Taiwan-1.0", "deprecated": False}, + "ogl-canada-2.0": {"id": "OGL-Canada-2.0", "deprecated": False}, + "ogl-uk-1.0": {"id": "OGL-UK-1.0", "deprecated": False}, + "ogl-uk-2.0": {"id": "OGL-UK-2.0", "deprecated": False}, + "ogl-uk-3.0": {"id": "OGL-UK-3.0", "deprecated": False}, + "ogtsl": {"id": "OGTSL", "deprecated": False}, + "oldap-1.1": {"id": "OLDAP-1.1", "deprecated": False}, + "oldap-1.2": {"id": "OLDAP-1.2", "deprecated": False}, + "oldap-1.3": {"id": "OLDAP-1.3", "deprecated": False}, + "oldap-1.4": {"id": "OLDAP-1.4", "deprecated": False}, + "oldap-2.0": {"id": "OLDAP-2.0", "deprecated": False}, + "oldap-2.0.1": {"id": "OLDAP-2.0.1", "deprecated": False}, + "oldap-2.1": {"id": "OLDAP-2.1", "deprecated": False}, + "oldap-2.2": {"id": "OLDAP-2.2", "deprecated": False}, + "oldap-2.2.1": {"id": "OLDAP-2.2.1", "deprecated": False}, + "oldap-2.2.2": {"id": "OLDAP-2.2.2", "deprecated": False}, + "oldap-2.3": {"id": "OLDAP-2.3", "deprecated": False}, + "oldap-2.4": {"id": "OLDAP-2.4", "deprecated": False}, + "oldap-2.5": {"id": "OLDAP-2.5", "deprecated": False}, + "oldap-2.6": {"id": "OLDAP-2.6", "deprecated": False}, + "oldap-2.7": {"id": "OLDAP-2.7", "deprecated": False}, + "oldap-2.8": {"id": "OLDAP-2.8", "deprecated": False}, + "olfl-1.3": {"id": "OLFL-1.3", "deprecated": False}, + "oml": {"id": "OML", "deprecated": False}, + "openpbs-2.3": {"id": "OpenPBS-2.3", "deprecated": False}, + "openssl": {"id": "OpenSSL", "deprecated": False}, + "openssl-standalone": {"id": "OpenSSL-standalone", "deprecated": False}, + "openvision": {"id": "OpenVision", "deprecated": False}, + "opl-1.0": {"id": "OPL-1.0", "deprecated": False}, + "opl-uk-3.0": {"id": "OPL-UK-3.0", "deprecated": False}, + "opubl-1.0": {"id": "OPUBL-1.0", "deprecated": False}, + "oset-pl-2.1": {"id": "OSET-PL-2.1", "deprecated": False}, + "osl-1.0": {"id": "OSL-1.0", "deprecated": False}, + "osl-1.1": {"id": "OSL-1.1", "deprecated": False}, + "osl-2.0": {"id": "OSL-2.0", "deprecated": False}, + "osl-2.1": {"id": "OSL-2.1", "deprecated": False}, + "osl-3.0": {"id": "OSL-3.0", "deprecated": False}, + "padl": {"id": "PADL", "deprecated": False}, + "parity-6.0.0": {"id": "Parity-6.0.0", "deprecated": False}, + "parity-7.0.0": {"id": "Parity-7.0.0", "deprecated": False}, + "pddl-1.0": {"id": "PDDL-1.0", "deprecated": False}, + "php-3.0": {"id": "PHP-3.0", "deprecated": False}, + "php-3.01": {"id": "PHP-3.01", "deprecated": False}, + "pixar": {"id": "Pixar", "deprecated": False}, + "pkgconf": {"id": "pkgconf", "deprecated": False}, + "plexus": {"id": "Plexus", "deprecated": False}, + "pnmstitch": {"id": "pnmstitch", "deprecated": False}, + "polyform-noncommercial-1.0.0": { + "id": "PolyForm-Noncommercial-1.0.0", + "deprecated": False, + }, + "polyform-small-business-1.0.0": { + "id": "PolyForm-Small-Business-1.0.0", + "deprecated": False, + }, + "postgresql": {"id": "PostgreSQL", "deprecated": False}, + "ppl": {"id": "PPL", "deprecated": False}, + "psf-2.0": {"id": "PSF-2.0", "deprecated": False}, + "psfrag": {"id": "psfrag", "deprecated": False}, + "psutils": {"id": "psutils", "deprecated": False}, + "python-2.0": {"id": "Python-2.0", "deprecated": False}, + "python-2.0.1": {"id": "Python-2.0.1", "deprecated": False}, + "python-ldap": {"id": "python-ldap", "deprecated": False}, + "qhull": {"id": "Qhull", "deprecated": False}, + "qpl-1.0": {"id": "QPL-1.0", "deprecated": False}, + "qpl-1.0-inria-2004": {"id": "QPL-1.0-INRIA-2004", "deprecated": False}, + "radvd": {"id": "radvd", "deprecated": False}, + "rdisc": {"id": "Rdisc", "deprecated": False}, + "rhecos-1.1": {"id": "RHeCos-1.1", "deprecated": False}, + "rpl-1.1": {"id": "RPL-1.1", "deprecated": False}, + "rpl-1.5": {"id": "RPL-1.5", "deprecated": False}, + "rpsl-1.0": {"id": "RPSL-1.0", "deprecated": False}, + "rsa-md": {"id": "RSA-MD", "deprecated": False}, + "rscpl": {"id": "RSCPL", "deprecated": False}, + "ruby": {"id": "Ruby", "deprecated": False}, + "ruby-pty": {"id": "Ruby-pty", "deprecated": False}, + "sax-pd": {"id": "SAX-PD", "deprecated": False}, + "sax-pd-2.0": {"id": "SAX-PD-2.0", "deprecated": False}, + "saxpath": {"id": "Saxpath", "deprecated": False}, + "scea": {"id": "SCEA", "deprecated": False}, + "schemereport": {"id": "SchemeReport", "deprecated": False}, + "sendmail": {"id": "Sendmail", "deprecated": False}, + "sendmail-8.23": {"id": "Sendmail-8.23", "deprecated": False}, + "sendmail-open-source-1.1": {"id": "Sendmail-Open-Source-1.1", "deprecated": False}, + "sgi-b-1.0": {"id": "SGI-B-1.0", "deprecated": False}, + "sgi-b-1.1": {"id": "SGI-B-1.1", "deprecated": False}, + "sgi-b-2.0": {"id": "SGI-B-2.0", "deprecated": False}, + "sgi-opengl": {"id": "SGI-OpenGL", "deprecated": False}, + "sgp4": {"id": "SGP4", "deprecated": False}, + "shl-0.5": {"id": "SHL-0.5", "deprecated": False}, + "shl-0.51": {"id": "SHL-0.51", "deprecated": False}, + "simpl-2.0": {"id": "SimPL-2.0", "deprecated": False}, + "sissl": {"id": "SISSL", "deprecated": False}, + "sissl-1.2": {"id": "SISSL-1.2", "deprecated": False}, + "sl": {"id": "SL", "deprecated": False}, + "sleepycat": {"id": "Sleepycat", "deprecated": False}, + "smail-gpl": {"id": "SMAIL-GPL", "deprecated": False}, + "smlnj": {"id": "SMLNJ", "deprecated": False}, + "smppl": {"id": "SMPPL", "deprecated": False}, + "snia": {"id": "SNIA", "deprecated": False}, + "snprintf": {"id": "snprintf", "deprecated": False}, + "sofa": {"id": "SOFA", "deprecated": False}, + "softsurfer": {"id": "softSurfer", "deprecated": False}, + "soundex": {"id": "Soundex", "deprecated": False}, + "spencer-86": {"id": "Spencer-86", "deprecated": False}, + "spencer-94": {"id": "Spencer-94", "deprecated": False}, + "spencer-99": {"id": "Spencer-99", "deprecated": False}, + "spl-1.0": {"id": "SPL-1.0", "deprecated": False}, + "ssh-keyscan": {"id": "ssh-keyscan", "deprecated": False}, + "ssh-openssh": {"id": "SSH-OpenSSH", "deprecated": False}, + "ssh-short": {"id": "SSH-short", "deprecated": False}, + "ssleay-standalone": {"id": "SSLeay-standalone", "deprecated": False}, + "sspl-1.0": {"id": "SSPL-1.0", "deprecated": False}, + "standardml-nj": {"id": "StandardML-NJ", "deprecated": True}, + "sugarcrm-1.1.3": {"id": "SugarCRM-1.1.3", "deprecated": False}, + "sul-1.0": {"id": "SUL-1.0", "deprecated": False}, + "sun-ppp": {"id": "Sun-PPP", "deprecated": False}, + "sun-ppp-2000": {"id": "Sun-PPP-2000", "deprecated": False}, + "sunpro": {"id": "SunPro", "deprecated": False}, + "swl": {"id": "SWL", "deprecated": False}, + "swrule": {"id": "swrule", "deprecated": False}, + "symlinks": {"id": "Symlinks", "deprecated": False}, + "tapr-ohl-1.0": {"id": "TAPR-OHL-1.0", "deprecated": False}, + "tcl": {"id": "TCL", "deprecated": False}, + "tcp-wrappers": {"id": "TCP-wrappers", "deprecated": False}, + "termreadkey": {"id": "TermReadKey", "deprecated": False}, + "tgppl-1.0": {"id": "TGPPL-1.0", "deprecated": False}, + "thirdeye": {"id": "ThirdEye", "deprecated": False}, + "threeparttable": {"id": "threeparttable", "deprecated": False}, + "tmate": {"id": "TMate", "deprecated": False}, + "torque-1.1": {"id": "TORQUE-1.1", "deprecated": False}, + "tosl": {"id": "TOSL", "deprecated": False}, + "tpdl": {"id": "TPDL", "deprecated": False}, + "tpl-1.0": {"id": "TPL-1.0", "deprecated": False}, + "trustedqsl": {"id": "TrustedQSL", "deprecated": False}, + "ttwl": {"id": "TTWL", "deprecated": False}, + "ttyp0": {"id": "TTYP0", "deprecated": False}, + "tu-berlin-1.0": {"id": "TU-Berlin-1.0", "deprecated": False}, + "tu-berlin-2.0": {"id": "TU-Berlin-2.0", "deprecated": False}, + "ubuntu-font-1.0": {"id": "Ubuntu-font-1.0", "deprecated": False}, + "ucar": {"id": "UCAR", "deprecated": False}, + "ucl-1.0": {"id": "UCL-1.0", "deprecated": False}, + "ulem": {"id": "ulem", "deprecated": False}, + "umich-merit": {"id": "UMich-Merit", "deprecated": False}, + "unicode-3.0": {"id": "Unicode-3.0", "deprecated": False}, + "unicode-dfs-2015": {"id": "Unicode-DFS-2015", "deprecated": False}, + "unicode-dfs-2016": {"id": "Unicode-DFS-2016", "deprecated": False}, + "unicode-tou": {"id": "Unicode-TOU", "deprecated": False}, + "unixcrypt": {"id": "UnixCrypt", "deprecated": False}, + "unlicense": {"id": "Unlicense", "deprecated": False}, + "unlicense-libtelnet": {"id": "Unlicense-libtelnet", "deprecated": False}, + "unlicense-libwhirlpool": {"id": "Unlicense-libwhirlpool", "deprecated": False}, + "upl-1.0": {"id": "UPL-1.0", "deprecated": False}, + "urt-rle": {"id": "URT-RLE", "deprecated": False}, + "vim": {"id": "Vim", "deprecated": False}, + "vostrom": {"id": "VOSTROM", "deprecated": False}, + "vsl-1.0": {"id": "VSL-1.0", "deprecated": False}, + "w3c": {"id": "W3C", "deprecated": False}, + "w3c-19980720": {"id": "W3C-19980720", "deprecated": False}, + "w3c-20150513": {"id": "W3C-20150513", "deprecated": False}, + "w3m": {"id": "w3m", "deprecated": False}, + "watcom-1.0": {"id": "Watcom-1.0", "deprecated": False}, + "widget-workshop": {"id": "Widget-Workshop", "deprecated": False}, + "wsuipa": {"id": "Wsuipa", "deprecated": False}, + "wtfpl": {"id": "WTFPL", "deprecated": False}, + "wwl": {"id": "wwl", "deprecated": False}, + "wxwindows": {"id": "wxWindows", "deprecated": True}, + "x11": {"id": "X11", "deprecated": False}, + "x11-distribute-modifications-variant": { + "id": "X11-distribute-modifications-variant", + "deprecated": False, + }, + "x11-swapped": {"id": "X11-swapped", "deprecated": False}, + "xdebug-1.03": {"id": "Xdebug-1.03", "deprecated": False}, + "xerox": {"id": "Xerox", "deprecated": False}, + "xfig": {"id": "Xfig", "deprecated": False}, + "xfree86-1.1": {"id": "XFree86-1.1", "deprecated": False}, + "xinetd": {"id": "xinetd", "deprecated": False}, + "xkeyboard-config-zinoviev": { + "id": "xkeyboard-config-Zinoviev", + "deprecated": False, + }, + "xlock": {"id": "xlock", "deprecated": False}, + "xnet": {"id": "Xnet", "deprecated": False}, + "xpp": {"id": "xpp", "deprecated": False}, + "xskat": {"id": "XSkat", "deprecated": False}, + "xzoom": {"id": "xzoom", "deprecated": False}, + "ypl-1.0": {"id": "YPL-1.0", "deprecated": False}, + "ypl-1.1": {"id": "YPL-1.1", "deprecated": False}, + "zed": {"id": "Zed", "deprecated": False}, + "zeeff": {"id": "Zeeff", "deprecated": False}, + "zend-2.0": {"id": "Zend-2.0", "deprecated": False}, + "zimbra-1.3": {"id": "Zimbra-1.3", "deprecated": False}, + "zimbra-1.4": {"id": "Zimbra-1.4", "deprecated": False}, + "zlib": {"id": "Zlib", "deprecated": False}, + "zlib-acknowledgement": {"id": "zlib-acknowledgement", "deprecated": False}, + "zpl-1.1": {"id": "ZPL-1.1", "deprecated": False}, + "zpl-2.0": {"id": "ZPL-2.0", "deprecated": False}, + "zpl-2.1": {"id": "ZPL-2.1", "deprecated": False}, } EXCEPTIONS: dict[str, SPDXException] = { - '389-exception': {'id': '389-exception', 'deprecated': False}, - 'asterisk-exception': {'id': 'Asterisk-exception', 'deprecated': False}, - 'asterisk-linking-protocols-exception': {'id': 'Asterisk-linking-protocols-exception', 'deprecated': False}, - 'autoconf-exception-2.0': {'id': 'Autoconf-exception-2.0', 'deprecated': False}, - 'autoconf-exception-3.0': {'id': 'Autoconf-exception-3.0', 'deprecated': False}, - 'autoconf-exception-generic': {'id': 'Autoconf-exception-generic', 'deprecated': False}, - 'autoconf-exception-generic-3.0': {'id': 'Autoconf-exception-generic-3.0', 'deprecated': False}, - 'autoconf-exception-macro': {'id': 'Autoconf-exception-macro', 'deprecated': False}, - 'bison-exception-1.24': {'id': 'Bison-exception-1.24', 'deprecated': False}, - 'bison-exception-2.2': {'id': 'Bison-exception-2.2', 'deprecated': False}, - 'bootloader-exception': {'id': 'Bootloader-exception', 'deprecated': False}, - 'cgal-linking-exception': {'id': 'CGAL-linking-exception', 'deprecated': False}, - 'classpath-exception-2.0': {'id': 'Classpath-exception-2.0', 'deprecated': False}, - 'clisp-exception-2.0': {'id': 'CLISP-exception-2.0', 'deprecated': False}, - 'cryptsetup-openssl-exception': {'id': 'cryptsetup-OpenSSL-exception', 'deprecated': False}, - 'digia-qt-lgpl-exception-1.1': {'id': 'Digia-Qt-LGPL-exception-1.1', 'deprecated': False}, - 'digirule-foss-exception': {'id': 'DigiRule-FOSS-exception', 'deprecated': False}, - 'ecos-exception-2.0': {'id': 'eCos-exception-2.0', 'deprecated': False}, - 'erlang-otp-linking-exception': {'id': 'erlang-otp-linking-exception', 'deprecated': False}, - 'fawkes-runtime-exception': {'id': 'Fawkes-Runtime-exception', 'deprecated': False}, - 'fltk-exception': {'id': 'FLTK-exception', 'deprecated': False}, - 'fmt-exception': {'id': 'fmt-exception', 'deprecated': False}, - 'font-exception-2.0': {'id': 'Font-exception-2.0', 'deprecated': False}, - 'freertos-exception-2.0': {'id': 'freertos-exception-2.0', 'deprecated': False}, - 'gcc-exception-2.0': {'id': 'GCC-exception-2.0', 'deprecated': False}, - 'gcc-exception-2.0-note': {'id': 'GCC-exception-2.0-note', 'deprecated': False}, - 'gcc-exception-3.1': {'id': 'GCC-exception-3.1', 'deprecated': False}, - 'gmsh-exception': {'id': 'Gmsh-exception', 'deprecated': False}, - 'gnat-exception': {'id': 'GNAT-exception', 'deprecated': False}, - 'gnome-examples-exception': {'id': 'GNOME-examples-exception', 'deprecated': False}, - 'gnu-compiler-exception': {'id': 'GNU-compiler-exception', 'deprecated': False}, - 'gnu-javamail-exception': {'id': 'gnu-javamail-exception', 'deprecated': False}, - 'gpl-3.0-389-ds-base-exception': {'id': 'GPL-3.0-389-ds-base-exception', 'deprecated': False}, - 'gpl-3.0-interface-exception': {'id': 'GPL-3.0-interface-exception', 'deprecated': False}, - 'gpl-3.0-linking-exception': {'id': 'GPL-3.0-linking-exception', 'deprecated': False}, - 'gpl-3.0-linking-source-exception': {'id': 'GPL-3.0-linking-source-exception', 'deprecated': False}, - 'gpl-cc-1.0': {'id': 'GPL-CC-1.0', 'deprecated': False}, - 'gstreamer-exception-2005': {'id': 'GStreamer-exception-2005', 'deprecated': False}, - 'gstreamer-exception-2008': {'id': 'GStreamer-exception-2008', 'deprecated': False}, - 'harbour-exception': {'id': 'harbour-exception', 'deprecated': False}, - 'i2p-gpl-java-exception': {'id': 'i2p-gpl-java-exception', 'deprecated': False}, - 'independent-modules-exception': {'id': 'Independent-modules-exception', 'deprecated': False}, - 'kicad-libraries-exception': {'id': 'KiCad-libraries-exception', 'deprecated': False}, - 'lgpl-3.0-linking-exception': {'id': 'LGPL-3.0-linking-exception', 'deprecated': False}, - 'libpri-openh323-exception': {'id': 'libpri-OpenH323-exception', 'deprecated': False}, - 'libtool-exception': {'id': 'Libtool-exception', 'deprecated': False}, - 'linux-syscall-note': {'id': 'Linux-syscall-note', 'deprecated': False}, - 'llgpl': {'id': 'LLGPL', 'deprecated': False}, - 'llvm-exception': {'id': 'LLVM-exception', 'deprecated': False}, - 'lzma-exception': {'id': 'LZMA-exception', 'deprecated': False}, - 'mif-exception': {'id': 'mif-exception', 'deprecated': False}, - 'mxml-exception': {'id': 'mxml-exception', 'deprecated': False}, - 'nokia-qt-exception-1.1': {'id': 'Nokia-Qt-exception-1.1', 'deprecated': True}, - 'ocaml-lgpl-linking-exception': {'id': 'OCaml-LGPL-linking-exception', 'deprecated': False}, - 'occt-exception-1.0': {'id': 'OCCT-exception-1.0', 'deprecated': False}, - 'openjdk-assembly-exception-1.0': {'id': 'OpenJDK-assembly-exception-1.0', 'deprecated': False}, - 'openvpn-openssl-exception': {'id': 'openvpn-openssl-exception', 'deprecated': False}, - 'pcre2-exception': {'id': 'PCRE2-exception', 'deprecated': False}, - 'polyparse-exception': {'id': 'polyparse-exception', 'deprecated': False}, - 'ps-or-pdf-font-exception-20170817': {'id': 'PS-or-PDF-font-exception-20170817', 'deprecated': False}, - 'qpl-1.0-inria-2004-exception': {'id': 'QPL-1.0-INRIA-2004-exception', 'deprecated': False}, - 'qt-gpl-exception-1.0': {'id': 'Qt-GPL-exception-1.0', 'deprecated': False}, - 'qt-lgpl-exception-1.1': {'id': 'Qt-LGPL-exception-1.1', 'deprecated': False}, - 'qwt-exception-1.0': {'id': 'Qwt-exception-1.0', 'deprecated': False}, - 'romic-exception': {'id': 'romic-exception', 'deprecated': False}, - 'rrdtool-floss-exception-2.0': {'id': 'RRDtool-FLOSS-exception-2.0', 'deprecated': False}, - 'sane-exception': {'id': 'SANE-exception', 'deprecated': False}, - 'shl-2.0': {'id': 'SHL-2.0', 'deprecated': False}, - 'shl-2.1': {'id': 'SHL-2.1', 'deprecated': False}, - 'stunnel-exception': {'id': 'stunnel-exception', 'deprecated': False}, - 'swi-exception': {'id': 'SWI-exception', 'deprecated': False}, - 'swift-exception': {'id': 'Swift-exception', 'deprecated': False}, - 'texinfo-exception': {'id': 'Texinfo-exception', 'deprecated': False}, - 'u-boot-exception-2.0': {'id': 'u-boot-exception-2.0', 'deprecated': False}, - 'ubdl-exception': {'id': 'UBDL-exception', 'deprecated': False}, - 'universal-foss-exception-1.0': {'id': 'Universal-FOSS-exception-1.0', 'deprecated': False}, - 'vsftpd-openssl-exception': {'id': 'vsftpd-openssl-exception', 'deprecated': False}, - 'wxwindows-exception-3.1': {'id': 'WxWindows-exception-3.1', 'deprecated': False}, - 'x11vnc-openssl-exception': {'id': 'x11vnc-openssl-exception', 'deprecated': False}, + "389-exception": {"id": "389-exception", "deprecated": False}, + "asterisk-exception": {"id": "Asterisk-exception", "deprecated": False}, + "asterisk-linking-protocols-exception": { + "id": "Asterisk-linking-protocols-exception", + "deprecated": False, + }, + "autoconf-exception-2.0": {"id": "Autoconf-exception-2.0", "deprecated": False}, + "autoconf-exception-3.0": {"id": "Autoconf-exception-3.0", "deprecated": False}, + "autoconf-exception-generic": { + "id": "Autoconf-exception-generic", + "deprecated": False, + }, + "autoconf-exception-generic-3.0": { + "id": "Autoconf-exception-generic-3.0", + "deprecated": False, + }, + "autoconf-exception-macro": {"id": "Autoconf-exception-macro", "deprecated": False}, + "bison-exception-1.24": {"id": "Bison-exception-1.24", "deprecated": False}, + "bison-exception-2.2": {"id": "Bison-exception-2.2", "deprecated": False}, + "bootloader-exception": {"id": "Bootloader-exception", "deprecated": False}, + "cgal-linking-exception": {"id": "CGAL-linking-exception", "deprecated": False}, + "classpath-exception-2.0": {"id": "Classpath-exception-2.0", "deprecated": False}, + "clisp-exception-2.0": {"id": "CLISP-exception-2.0", "deprecated": False}, + "cryptsetup-openssl-exception": { + "id": "cryptsetup-OpenSSL-exception", + "deprecated": False, + }, + "digia-qt-lgpl-exception-1.1": { + "id": "Digia-Qt-LGPL-exception-1.1", + "deprecated": False, + }, + "digirule-foss-exception": {"id": "DigiRule-FOSS-exception", "deprecated": False}, + "ecos-exception-2.0": {"id": "eCos-exception-2.0", "deprecated": False}, + "erlang-otp-linking-exception": { + "id": "erlang-otp-linking-exception", + "deprecated": False, + }, + "fawkes-runtime-exception": {"id": "Fawkes-Runtime-exception", "deprecated": False}, + "fltk-exception": {"id": "FLTK-exception", "deprecated": False}, + "fmt-exception": {"id": "fmt-exception", "deprecated": False}, + "font-exception-2.0": {"id": "Font-exception-2.0", "deprecated": False}, + "freertos-exception-2.0": {"id": "freertos-exception-2.0", "deprecated": False}, + "gcc-exception-2.0": {"id": "GCC-exception-2.0", "deprecated": False}, + "gcc-exception-2.0-note": {"id": "GCC-exception-2.0-note", "deprecated": False}, + "gcc-exception-3.1": {"id": "GCC-exception-3.1", "deprecated": False}, + "gmsh-exception": {"id": "Gmsh-exception", "deprecated": False}, + "gnat-exception": {"id": "GNAT-exception", "deprecated": False}, + "gnome-examples-exception": {"id": "GNOME-examples-exception", "deprecated": False}, + "gnu-compiler-exception": {"id": "GNU-compiler-exception", "deprecated": False}, + "gnu-javamail-exception": {"id": "gnu-javamail-exception", "deprecated": False}, + "gpl-3.0-389-ds-base-exception": { + "id": "GPL-3.0-389-ds-base-exception", + "deprecated": False, + }, + "gpl-3.0-interface-exception": { + "id": "GPL-3.0-interface-exception", + "deprecated": False, + }, + "gpl-3.0-linking-exception": { + "id": "GPL-3.0-linking-exception", + "deprecated": False, + }, + "gpl-3.0-linking-source-exception": { + "id": "GPL-3.0-linking-source-exception", + "deprecated": False, + }, + "gpl-cc-1.0": {"id": "GPL-CC-1.0", "deprecated": False}, + "gstreamer-exception-2005": {"id": "GStreamer-exception-2005", "deprecated": False}, + "gstreamer-exception-2008": {"id": "GStreamer-exception-2008", "deprecated": False}, + "harbour-exception": {"id": "harbour-exception", "deprecated": False}, + "i2p-gpl-java-exception": {"id": "i2p-gpl-java-exception", "deprecated": False}, + "independent-modules-exception": { + "id": "Independent-modules-exception", + "deprecated": False, + }, + "kicad-libraries-exception": { + "id": "KiCad-libraries-exception", + "deprecated": False, + }, + "lgpl-3.0-linking-exception": { + "id": "LGPL-3.0-linking-exception", + "deprecated": False, + }, + "libpri-openh323-exception": { + "id": "libpri-OpenH323-exception", + "deprecated": False, + }, + "libtool-exception": {"id": "Libtool-exception", "deprecated": False}, + "linux-syscall-note": {"id": "Linux-syscall-note", "deprecated": False}, + "llgpl": {"id": "LLGPL", "deprecated": False}, + "llvm-exception": {"id": "LLVM-exception", "deprecated": False}, + "lzma-exception": {"id": "LZMA-exception", "deprecated": False}, + "mif-exception": {"id": "mif-exception", "deprecated": False}, + "mxml-exception": {"id": "mxml-exception", "deprecated": False}, + "nokia-qt-exception-1.1": {"id": "Nokia-Qt-exception-1.1", "deprecated": True}, + "ocaml-lgpl-linking-exception": { + "id": "OCaml-LGPL-linking-exception", + "deprecated": False, + }, + "occt-exception-1.0": {"id": "OCCT-exception-1.0", "deprecated": False}, + "openjdk-assembly-exception-1.0": { + "id": "OpenJDK-assembly-exception-1.0", + "deprecated": False, + }, + "openvpn-openssl-exception": { + "id": "openvpn-openssl-exception", + "deprecated": False, + }, + "pcre2-exception": {"id": "PCRE2-exception", "deprecated": False}, + "polyparse-exception": {"id": "polyparse-exception", "deprecated": False}, + "ps-or-pdf-font-exception-20170817": { + "id": "PS-or-PDF-font-exception-20170817", + "deprecated": False, + }, + "qpl-1.0-inria-2004-exception": { + "id": "QPL-1.0-INRIA-2004-exception", + "deprecated": False, + }, + "qt-gpl-exception-1.0": {"id": "Qt-GPL-exception-1.0", "deprecated": False}, + "qt-lgpl-exception-1.1": {"id": "Qt-LGPL-exception-1.1", "deprecated": False}, + "qwt-exception-1.0": {"id": "Qwt-exception-1.0", "deprecated": False}, + "romic-exception": {"id": "romic-exception", "deprecated": False}, + "rrdtool-floss-exception-2.0": { + "id": "RRDtool-FLOSS-exception-2.0", + "deprecated": False, + }, + "sane-exception": {"id": "SANE-exception", "deprecated": False}, + "shl-2.0": {"id": "SHL-2.0", "deprecated": False}, + "shl-2.1": {"id": "SHL-2.1", "deprecated": False}, + "stunnel-exception": {"id": "stunnel-exception", "deprecated": False}, + "swi-exception": {"id": "SWI-exception", "deprecated": False}, + "swift-exception": {"id": "Swift-exception", "deprecated": False}, + "texinfo-exception": {"id": "Texinfo-exception", "deprecated": False}, + "u-boot-exception-2.0": {"id": "u-boot-exception-2.0", "deprecated": False}, + "ubdl-exception": {"id": "UBDL-exception", "deprecated": False}, + "universal-foss-exception-1.0": { + "id": "Universal-FOSS-exception-1.0", + "deprecated": False, + }, + "vsftpd-openssl-exception": {"id": "vsftpd-openssl-exception", "deprecated": False}, + "wxwindows-exception-3.1": {"id": "WxWindows-exception-3.1", "deprecated": False}, + "x11vnc-openssl-exception": {"id": "x11vnc-openssl-exception", "deprecated": False}, } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/METADATA index 348a68b..824596f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/METADATA @@ -353,4 +353,3 @@ Improvements: .. _`google-re2`: https://pypi.org/project/google-re2/ .. _`hyperscan`: https://pypi.org/project/hyperscan/ .. _`typing-extensions`: https://pypi.org/project/typing-extensions/ - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/licenses/LICENSE b/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/licenses/LICENSE index 14e2f77..a612ad9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/licenses/LICENSE +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec-1.0.4.dist-info/licenses/LICENSE @@ -35,7 +35,7 @@ Mozilla Public License Version 2.0 means any form of the work other than Source Code Form. 1.7. "Larger Work" - means a work that combines Covered Software with other material, in + means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/__init__.py index f41cfee..06e63f9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/__init__.py @@ -27,26 +27,18 @@ compatibility: - :func:`pathspec.util.match_files` """ -from .gitignore import ( - GitIgnoreSpec) -from .pathspec import ( - PathSpec) -from .pattern import ( - Pattern, - RegexPattern) +from .gitignore import GitIgnoreSpec +from .pathspec import PathSpec +from .pattern import Pattern, RegexPattern from .util import ( - RecursionError, - iter_tree, # Deprecated since 0.10.0. - lookup_pattern, - match_files) # Deprecated since 0.10.0. + RecursionError, + iter_tree, # Deprecated since 0.10.0. + lookup_pattern, + match_files, +) # Deprecated since 0.10.0. -from ._meta import ( - __author__, - __copyright__, - __credits__, - __license__) -from ._version import ( - __version__) +from ._meta import __author__, __copyright__, __credits__, __license__ +from ._version import __version__ # Load pattern implementations. from . import patterns @@ -54,15 +46,15 @@ from . import patterns # Declare private imports as part of the public interface. Deprecated imports # are deliberately excluded. __all__ = [ - 'GitIgnoreSpec', - 'PathSpec', - 'Pattern', - 'RecursionError', - 'RegexPattern', - '__author__', - '__copyright__', - '__credits__', - '__license__', - '__version__', - 'lookup_pattern', + "GitIgnoreSpec", + "PathSpec", + "Pattern", + "RecursionError", + "RegexPattern", + "__author__", + "__copyright__", + "__credits__", + "__license__", + "__version__", + "lookup_pattern", ] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/_utils.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/_utils.py index 77c7cd9..5531e96 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/_utils.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/_utils.py @@ -5,41 +5,38 @@ WARNING: The *pathspec._backends* package is not part of the public API. Its contents and structure are likely to change. """ -from collections.abc import ( - Iterable) -from typing import ( - TypeVar) +from collections.abc import Iterable +from typing import TypeVar -from pathspec.pattern import ( - Pattern) +from pathspec.pattern import Pattern TPattern = TypeVar("TPattern", bound=Pattern) def enumerate_patterns( - patterns: Iterable[TPattern], - filter: bool, - reverse: bool, + patterns: Iterable[TPattern], + filter: bool, + reverse: bool, ) -> list[tuple[int, TPattern]]: - """ - Enumerate the patterns. + """ + Enumerate the patterns. - *patterns* (:class:`Iterable` of :class:`.Pattern`) contains the patterns. + *patterns* (:class:`Iterable` of :class:`.Pattern`) contains the patterns. - *filter* (:class:`bool`) is whether to remove no-op patterns (:data:`True`), - or keep them (:data:`False`). + *filter* (:class:`bool`) is whether to remove no-op patterns (:data:`True`), + or keep them (:data:`False`). - *reverse* (:class:`bool`) is whether to reverse the pattern order - (:data:`True`), or keep the order (:data:`True`). + *reverse* (:class:`bool`) is whether to reverse the pattern order + (:data:`True`), or keep the order (:data:`True`). - Returns the enumerated patterns (:class:`list` of :class:`tuple`). - """ - out_patterns = [ - (__i, __pat) - for __i, __pat in enumerate(patterns) - if not filter or __pat.include is not None - ] - if reverse: - out_patterns.reverse() + Returns the enumerated patterns (:class:`list` of :class:`tuple`). + """ + out_patterns = [ + (__i, __pat) + for __i, __pat in enumerate(patterns) + if not filter or __pat.include is not None + ] + if reverse: + out_patterns.reverse() - return out_patterns + return out_patterns diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/agg.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/agg.py index c387146..141f393 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/agg.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/agg.py @@ -6,34 +6,20 @@ WARNING: The *pathspec._backends* package is not part of the public API. Its contents and structure are likely to change. """ -from collections.abc import ( - Sequence) -from typing import ( - cast) +from collections.abc import Sequence +from typing import cast -from pathspec.backend import ( - BackendNamesHint, - _Backend) -from pathspec.pattern import ( - Pattern, - RegexPattern) +from pathspec.backend import BackendNamesHint, _Backend +from pathspec.pattern import Pattern, RegexPattern -from .hyperscan.base import ( - hyperscan_error) -from .hyperscan.gitignore import ( - HyperscanGiBackend) -from .hyperscan.pathspec import ( - HyperscanPsBackend) -from .re2.base import ( - re2_error) -from .re2.gitignore import ( - Re2GiBackend) -from .re2.pathspec import ( - Re2PsBackend) -from .simple.gitignore import ( - SimpleGiBackend) -from .simple.pathspec import ( - SimplePsBackend) +from .hyperscan.base import hyperscan_error +from .hyperscan.gitignore import HyperscanGiBackend +from .hyperscan.pathspec import HyperscanPsBackend +from .re2.base import re2_error +from .re2.gitignore import Re2GiBackend +from .re2.pathspec import Re2PsBackend +from .simple.gitignore import SimpleGiBackend +from .simple.pathspec import SimplePsBackend _BEST_BACKEND: BackendNamesHint """ @@ -41,64 +27,64 @@ The best available backend. """ if re2_error is None: - _BEST_BACKEND = 're2' + _BEST_BACKEND = "re2" elif hyperscan_error is None: - _BEST_BACKEND = 'hyperscan' + _BEST_BACKEND = "hyperscan" else: - _BEST_BACKEND = 'simple' + _BEST_BACKEND = "simple" def make_gitignore_backend( - name: BackendNamesHint, - patterns: Sequence[Pattern], + name: BackendNamesHint, + patterns: Sequence[Pattern], ) -> _Backend: - """ - Create the specified backend with the supplied patterns for - :class:`~pathspec.gitignore.GitIgnoreSpec`. + """ + Create the specified backend with the supplied patterns for + :class:`~pathspec.gitignore.GitIgnoreSpec`. - *name* (:class:`str`) is the name of the backend. + *name* (:class:`str`) is the name of the backend. - *patterns* (:class:`.Iterable` of :class:`.Pattern`) contains the compiled - patterns. + *patterns* (:class:`.Iterable` of :class:`.Pattern`) contains the compiled + patterns. - Returns the backend (:class:`._Backend`). - """ - if name == 'best': - name = _BEST_BACKEND + Returns the backend (:class:`._Backend`). + """ + if name == "best": + name = _BEST_BACKEND - if name == 'hyperscan': - return HyperscanGiBackend(cast(Sequence[RegexPattern], patterns)) - elif name == 're2': - return Re2GiBackend(cast(Sequence[RegexPattern], patterns)) - elif name == 'simple': - return SimpleGiBackend(cast(Sequence[RegexPattern], patterns)) - else: - raise ValueError(f"Backend {name=!r} is invalid.") + if name == "hyperscan": + return HyperscanGiBackend(cast(Sequence[RegexPattern], patterns)) + elif name == "re2": + return Re2GiBackend(cast(Sequence[RegexPattern], patterns)) + elif name == "simple": + return SimpleGiBackend(cast(Sequence[RegexPattern], patterns)) + else: + raise ValueError(f"Backend {name=!r} is invalid.") def make_pathspec_backend( - name: BackendNamesHint, - patterns: Sequence[Pattern], + name: BackendNamesHint, + patterns: Sequence[Pattern], ) -> _Backend: - """ - Create the specified backend with the supplied patterns for - :class:`~pathspec.pathspec.PathSpec`. + """ + Create the specified backend with the supplied patterns for + :class:`~pathspec.pathspec.PathSpec`. - *name* (:class:`str`) is the name of the backend. + *name* (:class:`str`) is the name of the backend. - *patterns* (:class:`Iterable` of :class:`Pattern`) contains the compiled - patterns. + *patterns* (:class:`Iterable` of :class:`Pattern`) contains the compiled + patterns. - Returns the backend (:class:`._Backend`). - """ - if name == 'best': - name = _BEST_BACKEND + Returns the backend (:class:`._Backend`). + """ + if name == "best": + name = _BEST_BACKEND - if name == 'hyperscan': - return HyperscanPsBackend(cast(Sequence[RegexPattern], patterns)) - elif name == 're2': - return Re2PsBackend(cast(Sequence[RegexPattern], patterns)) - elif name == 'simple': - return SimplePsBackend(patterns) - else: - raise ValueError(f"Backend {name=!r} is invalid.") + if name == "hyperscan": + return HyperscanPsBackend(cast(Sequence[RegexPattern], patterns)) + elif name == "re2": + return Re2PsBackend(cast(Sequence[RegexPattern], patterns)) + elif name == "simple": + return SimplePsBackend(patterns) + else: + raise ValueError(f"Backend {name=!r} is invalid.") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/_base.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/_base.py index cb58f48..9ed7870 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/_base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/_base.py @@ -5,20 +5,19 @@ This module provides private data for the base implementation for the WARNING: The *pathspec._backends.hyperscan* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from dataclasses import ( - dataclass) -from typing import ( - Union) # Replaced by `X | Y` in 3.10. +from dataclasses import dataclass +from typing import Union # Replaced by `X | Y` in 3.10. try: - import hyperscan + import hyperscan except ModuleNotFoundError: - hyperscan = None - HS_FLAGS = 0 + hyperscan = None + HS_FLAGS = 0 else: - HS_FLAGS = hyperscan.HS_FLAG_SINGLEMATCH | hyperscan.HS_FLAG_UTF8 + HS_FLAGS = hyperscan.HS_FLAG_SINGLEMATCH | hyperscan.HS_FLAG_UTF8 HS_FLAGS: int """ @@ -32,31 +31,31 @@ The hyperscan flags to use: @dataclass(frozen=True) class HyperscanExprDat(object): - """ - The :class:`HyperscanExprDat` class is used to store data related to an - expression. - """ + """ + The :class:`HyperscanExprDat` class is used to store data related to an + expression. + """ - # The slots argument is not supported until Python 3.10. - __slots__ = [ - 'include', - 'index', - 'is_dir_pattern', - ] + # The slots argument is not supported until Python 3.10. + __slots__ = [ + "include", + "index", + "is_dir_pattern", + ] - include: bool - """ + include: bool + """ *include* (:class:`bool`) is whether is whether the matched files should be included (:data:`True`), or excluded (:data:`False`). """ - index: int - """ + index: int + """ *index* (:class:`int`) is the pattern index. """ - is_dir_pattern: bool - """ + is_dir_pattern: bool + """ *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory pattern for gitignore. """ @@ -64,15 +63,15 @@ class HyperscanExprDat(object): @dataclass(frozen=True) class HyperscanExprDebug(HyperscanExprDat): - """ - The :class:`HyperscanExprDebug` class stores additional debug information - related to an expression. - """ + """ + The :class:`HyperscanExprDebug` class stores additional debug information + related to an expression. + """ - # The slots argument is not supported until Python 3.10. - __slots__ = ['regex'] + # The slots argument is not supported until Python 3.10. + __slots__ = ["regex"] - regex: Union[str, bytes] - """ + regex: Union[str, bytes] + """ *regex* (:class:`str` or :class:`bytes`) is the regular expression. """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/base.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/base.py index ac219b4..90a5bb1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/base.py @@ -5,17 +5,18 @@ backend. WARNING: The *pathspec._backends.hyperscan* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from typing import ( - Optional) +from typing import Optional try: - import hyperscan - hyperscan_error = None + import hyperscan + + hyperscan_error = None except ModuleNotFoundError as e: - hyperscan = None - hyperscan_error = e + hyperscan = None + hyperscan_error = e hyperscan_error: Optional[ModuleNotFoundError] """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/gitignore.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/gitignore.py index 2428b59..14120e0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/gitignore.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/gitignore.py @@ -4,66 +4,62 @@ This module provides the :module:`hyperscan` backend for :class:`~pathspec.gitig WARNING: The *pathspec._backends.hyperscan* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from collections.abc import ( - Sequence) +from collections.abc import Sequence from typing import ( - Any, - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional, # Replaced by `X | None` in 3.10. - Union) # Replaced by `X | Y` in 3.10. + Any, + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, # Replaced by `X | None` in 3.10. + Union, +) # Replaced by `X | Y` in 3.10. try: - import hyperscan + import hyperscan except ModuleNotFoundError: - hyperscan = None + hyperscan = None -from pathspec.pattern import ( - RegexPattern) +from pathspec.pattern import RegexPattern from pathspec.patterns.gitignore.spec import ( - GitIgnoreSpecPattern, - _BYTES_ENCODING, - _DIR_MARK_CG, - _DIR_MARK_OPT) -from pathspec._typing import ( - override) # Added in 3.12. + GitIgnoreSpecPattern, + _BYTES_ENCODING, + _DIR_MARK_CG, + _DIR_MARK_OPT, +) +from pathspec._typing import override # Added in 3.12. -from ._base import ( - HS_FLAGS, - HyperscanExprDat, - HyperscanExprDebug) -from .pathspec import ( - HyperscanPsBackend) +from ._base import HS_FLAGS, HyperscanExprDat, HyperscanExprDebug +from .pathspec import HyperscanPsBackend class HyperscanGiBackend(HyperscanPsBackend): - """ - The :class:`HyperscanGiBackend` class is the :module:`hyperscan` - implementation used by :class:`~pathspec.gitignore.GitIgnoreSpec`. The - Hyperscan database uses block mode for matching files. - """ + """ + The :class:`HyperscanGiBackend` class is the :module:`hyperscan` + implementation used by :class:`~pathspec.gitignore.GitIgnoreSpec`. The + Hyperscan database uses block mode for matching files. + """ - # Change type hint. - _out: tuple[Optional[bool], int, int] + # Change type hint. + _out: tuple[Optional[bool], int, int] - def __init__( - self, - patterns: Sequence[RegexPattern], - *, - _debug_exprs: Optional[bool] = None, - _test_sort: Optional[Callable[[list], None]] = None, - ) -> None: - """ - Initialize the :class:`HyperscanMatcher` instance. + def __init__( + self, + patterns: Sequence[RegexPattern], + *, + _debug_exprs: Optional[bool] = None, + _test_sort: Optional[Callable[[list], None]] = None, + ) -> None: + """ + Initialize the :class:`HyperscanMatcher` instance. - *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the - compiled patterns. - """ - super().__init__(patterns, _debug_exprs=_debug_exprs, _test_sort=_test_sort) + *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the + compiled patterns. + """ + super().__init__(patterns, _debug_exprs=_debug_exprs, _test_sort=_test_sort) - self._out = (None, -1, 0) - """ + self._out = (None, -1, 0) + """ *_out* (:class:`tuple`) stores the current match: - *0* (:class:`bool` or :data:`None`) is the match include. @@ -73,173 +69,177 @@ class HyperscanGiBackend(HyperscanPsBackend): - *2* (:class:`int`) is the match priority. """ - @override - @staticmethod - def _init_db( - db: hyperscan.Database, - debug: bool, - patterns: list[tuple[int, RegexPattern]], - sort_ids: Optional[Callable[[list[int]], None]], - ) -> list[HyperscanExprDat]: - """ - Create the Hyperscan database from the given patterns. + @override + @staticmethod + def _init_db( + db: hyperscan.Database, + debug: bool, + patterns: list[tuple[int, RegexPattern]], + sort_ids: Optional[Callable[[list[int]], None]], + ) -> list[HyperscanExprDat]: + """ + Create the Hyperscan database from the given patterns. - *db* (:class:`hyperscan.Hyperscan`) is the Hyperscan database. + *db* (:class:`hyperscan.Hyperscan`) is the Hyperscan database. - *debug* (:class:`bool`) is whether to include additional debugging - information for the expressions. + *debug* (:class:`bool`) is whether to include additional debugging + information for the expressions. - *patterns* (:class:`~collections.abc.Sequence` of :class:`.RegexPattern`) - contains the patterns. + *patterns* (:class:`~collections.abc.Sequence` of :class:`.RegexPattern`) + contains the patterns. - *sort_ids* (:class:`callable` or :data:`None`) is a function used to sort - the compiled expression ids. This is used during testing to ensure the order - of expressions is not accidentally relied on. + *sort_ids* (:class:`callable` or :data:`None`) is a function used to sort + the compiled expression ids. This is used during testing to ensure the order + of expressions is not accidentally relied on. - Returns a :class:`list` indexed by expression id (:class:`int`) to its data - (:class:`HyperscanExprDat`). - """ - # WARNING: Hyperscan raises a `hyperscan.error` exception when compiled with - # zero elements. - assert patterns, patterns + Returns a :class:`list` indexed by expression id (:class:`int`) to its data + (:class:`HyperscanExprDat`). + """ + # WARNING: Hyperscan raises a `hyperscan.error` exception when compiled with + # zero elements. + assert patterns, patterns - # Prepare patterns. - expr_data: list[HyperscanExprDat] = [] - exprs: list[bytes] = [] - for pattern_index, pattern in patterns: - assert pattern.include is not None, (pattern_index, pattern) + # Prepare patterns. + expr_data: list[HyperscanExprDat] = [] + exprs: list[bytes] = [] + for pattern_index, pattern in patterns: + assert pattern.include is not None, (pattern_index, pattern) - # Encode regex. - assert isinstance(pattern, RegexPattern), pattern - regex = pattern.regex.pattern + # Encode regex. + assert isinstance(pattern, RegexPattern), pattern + regex = pattern.regex.pattern - use_regexes: list[tuple[Union[str, bytes], bool]] = [] - if isinstance(pattern, GitIgnoreSpecPattern): - # GitIgnoreSpecPattern uses capture groups for its directory marker but - # Hyperscan does not support capture groups. Handle this scenario. - regex_str: str - if isinstance(regex, str): - regex_str: str = regex - else: - assert isinstance(regex, bytes), regex - regex_str = regex.decode(_BYTES_ENCODING) + use_regexes: list[tuple[Union[str, bytes], bool]] = [] + if isinstance(pattern, GitIgnoreSpecPattern): + # GitIgnoreSpecPattern uses capture groups for its directory marker but + # Hyperscan does not support capture groups. Handle this scenario. + regex_str: str + if isinstance(regex, str): + regex_str: str = regex + else: + assert isinstance(regex, bytes), regex + regex_str = regex.decode(_BYTES_ENCODING) - if _DIR_MARK_CG in regex_str: - # Found directory marker. - if regex_str.endswith(_DIR_MARK_OPT): - # Regex has optional directory marker. Split regex into directory - # and file variants. - base_regex = regex_str[:-len(_DIR_MARK_OPT)] - use_regexes.append((f'{base_regex}/', True)) - use_regexes.append((f'{base_regex}$', False)) - else: - # Remove capture group. - base_regex = regex_str.replace(_DIR_MARK_CG, '/') - use_regexes.append((base_regex, True)) + if _DIR_MARK_CG in regex_str: + # Found directory marker. + if regex_str.endswith(_DIR_MARK_OPT): + # Regex has optional directory marker. Split regex into directory + # and file variants. + base_regex = regex_str[: -len(_DIR_MARK_OPT)] + use_regexes.append((f"{base_regex}/", True)) + use_regexes.append((f"{base_regex}$", False)) + else: + # Remove capture group. + base_regex = regex_str.replace(_DIR_MARK_CG, "/") + use_regexes.append((base_regex, True)) - if not use_regexes: - # No special case for regex. - use_regexes.append((regex, False)) + if not use_regexes: + # No special case for regex. + use_regexes.append((regex, False)) - for regex, is_dir_pattern in use_regexes: - if isinstance(regex, bytes): - regex_bytes = regex - else: - assert isinstance(regex, str), regex - regex_bytes = regex.encode('utf8') + for regex, is_dir_pattern in use_regexes: + if isinstance(regex, bytes): + regex_bytes = regex + else: + assert isinstance(regex, str), regex + regex_bytes = regex.encode("utf8") - if debug: - expr_data.append(HyperscanExprDebug( - include=pattern.include, - index=pattern_index, - is_dir_pattern=is_dir_pattern, - regex=regex, - )) - else: - expr_data.append(HyperscanExprDat( - include=pattern.include, - index=pattern_index, - is_dir_pattern=is_dir_pattern, - )) + if debug: + expr_data.append( + HyperscanExprDebug( + include=pattern.include, + index=pattern_index, + is_dir_pattern=is_dir_pattern, + regex=regex, + ) + ) + else: + expr_data.append( + HyperscanExprDat( + include=pattern.include, + index=pattern_index, + is_dir_pattern=is_dir_pattern, + ) + ) - exprs.append(regex_bytes) + exprs.append(regex_bytes) - # Sort expressions. - ids = list(range(len(exprs))) - if sort_ids is not None: - sort_ids(ids) - exprs = [exprs[__id] for __id in ids] + # Sort expressions. + ids = list(range(len(exprs))) + if sort_ids is not None: + sort_ids(ids) + exprs = [exprs[__id] for __id in ids] - # Compile patterns. - db.compile( - expressions=exprs, - ids=ids, - elements=len(exprs), - flags=HS_FLAGS, - ) - return expr_data + # Compile patterns. + db.compile( + expressions=exprs, + ids=ids, + elements=len(exprs), + flags=HS_FLAGS, + ) + return expr_data - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - # NOTICE: According to benchmarking, a method callback is 13% faster than - # using a closure here. - db = self._db - if self._db is None: - # Database was not initialized because there were no patterns. Return no - # match. - return (None, None) + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + # NOTICE: According to benchmarking, a method callback is 13% faster than + # using a closure here. + db = self._db + if self._db is None: + # Database was not initialized because there were no patterns. Return no + # match. + return (None, None) - self._out = (None, -1, 0) - db.scan(file.encode('utf8'), match_event_handler=self.__on_match) + self._out = (None, -1, 0) + db.scan(file.encode("utf8"), match_event_handler=self.__on_match) - out_include, out_index = self._out[:2] - if out_index == -1: - out_index = None + out_include, out_index = self._out[:2] + if out_index == -1: + out_index = None - return (out_include, out_index) + return (out_include, out_index) - @override - def __on_match( - self, - expr_id: int, - _from: int, - _to: int, - _flags: int, - _context: Any, - ) -> Optional[bool]: - """ - Called on each match. + @override + def __on_match( + self, + expr_id: int, + _from: int, + _to: int, + _flags: int, + _context: Any, + ) -> Optional[bool]: + """ + Called on each match. - *expr_id* (:class:`int`) is the expression id (index) of the matched - pattern. - """ - expr_dat = self._expr_data[expr_id] + *expr_id* (:class:`int`) is the expression id (index) of the matched + pattern. + """ + expr_dat = self._expr_data[expr_id] - is_dir_pattern = expr_dat.is_dir_pattern - if is_dir_pattern: - # Pattern matched by a directory pattern. - priority = 1 - else: - # Pattern matched by a file pattern. - priority = 2 + is_dir_pattern = expr_dat.is_dir_pattern + if is_dir_pattern: + # Pattern matched by a directory pattern. + priority = 1 + else: + # Pattern matched by a file pattern. + priority = 2 - # WARNING: Hyperscan does not guarantee matches will be produced in order! - include = expr_dat.include - index = expr_dat.index - prev_index = self._out[1] - prev_priority = self._out[2] - if ( - (include and is_dir_pattern and index > prev_index) - or (priority == prev_priority and index > prev_index) - or priority > prev_priority - ): - self._out = (include, expr_dat.index, priority) + # WARNING: Hyperscan does not guarantee matches will be produced in order! + include = expr_dat.include + index = expr_dat.index + prev_index = self._out[1] + prev_priority = self._out[2] + if ( + (include and is_dir_pattern and index > prev_index) + or (priority == prev_priority and index > prev_index) + or priority > prev_priority + ): + self._out = (include, expr_dat.index, priority) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/pathspec.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/pathspec.py index d55c314..b076ccf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/pathspec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/hyperscan/pathspec.py @@ -4,102 +4,97 @@ This module provides the :module:`hyperscan` backend for :class:`~pathspec.paths WARNING: The *pathspec._backends.hyperscan* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from collections.abc import ( - Sequence) +from collections.abc import Sequence from typing import ( - Any, - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional) # Replaced by `X | None` in 3.10. + Any, + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, +) # Replaced by `X | None` in 3.10. try: - import hyperscan + import hyperscan except ModuleNotFoundError: - hyperscan = None + hyperscan = None -from pathspec.backend import ( - _Backend) -from pathspec.pattern import ( - RegexPattern) -from pathspec._typing import ( - override) # Added in 3.12. +from pathspec.backend import _Backend +from pathspec.pattern import RegexPattern +from pathspec._typing import override # Added in 3.12. -from .._utils import ( - enumerate_patterns) +from .._utils import enumerate_patterns -from .base import ( - hyperscan_error) -from ._base import ( - HS_FLAGS, - HyperscanExprDat, - HyperscanExprDebug) +from .base import hyperscan_error +from ._base import HS_FLAGS, HyperscanExprDat, HyperscanExprDebug class HyperscanPsBackend(_Backend): - """ - The :class:`HyperscanPsBackend` class is the :module:`hyperscan` - implementation used by :class:`~pathspec.pathspec.PathSpec` for matching - files. The Hyperscan database uses block mode for matching files. - """ + """ + The :class:`HyperscanPsBackend` class is the :module:`hyperscan` + implementation used by :class:`~pathspec.pathspec.PathSpec` for matching + files. The Hyperscan database uses block mode for matching files. + """ - def __init__( - self, - patterns: Sequence[RegexPattern], - *, - _debug_exprs: Optional[bool] = None, - _test_sort: Optional[Callable[[list], None]] = None, - ) -> None: - """ - Initialize the :class:`HyperscanPsBackend` instance. + def __init__( + self, + patterns: Sequence[RegexPattern], + *, + _debug_exprs: Optional[bool] = None, + _test_sort: Optional[Callable[[list], None]] = None, + ) -> None: + """ + Initialize the :class:`HyperscanPsBackend` instance. - *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the - compiled patterns. - """ - if hyperscan is None: - raise hyperscan_error + *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the + compiled patterns. + """ + if hyperscan is None: + raise hyperscan_error - if patterns and not isinstance(patterns[0], RegexPattern): - raise TypeError(f"{patterns[0]=!r} must be a RegexPattern.") + if patterns and not isinstance(patterns[0], RegexPattern): + raise TypeError(f"{patterns[0]=!r} must be a RegexPattern.") - use_patterns = enumerate_patterns( - patterns, filter=True, reverse=False, - ) + use_patterns = enumerate_patterns( + patterns, + filter=True, + reverse=False, + ) - debug_exprs = bool(_debug_exprs) - if use_patterns: - db = self._make_db() - expr_data = self._init_db( - db=db, - debug=debug_exprs, - patterns=use_patterns, - sort_ids=_test_sort, - ) - else: - # WARNING: The hyperscan database cannot be initialized with zero - # patterns. - db = None - expr_data = [] + debug_exprs = bool(_debug_exprs) + if use_patterns: + db = self._make_db() + expr_data = self._init_db( + db=db, + debug=debug_exprs, + patterns=use_patterns, + sort_ids=_test_sort, + ) + else: + # WARNING: The hyperscan database cannot be initialized with zero + # patterns. + db = None + expr_data = [] - self._db: Optional[hyperscan.Database] = db - """ + self._db: Optional[hyperscan.Database] = db + """ *_db* (:class:`hyperscan.Database`) is the Hyperscan database. """ - self._debug_exprs = debug_exprs - """ + self._debug_exprs = debug_exprs + """ *_debug_exprs* (:class:`bool`) is whether to include additional debugging information for the expressions. """ - self._expr_data: list[HyperscanExprDat] = expr_data - """ + self._expr_data: list[HyperscanExprDat] = expr_data + """ *_expr_data* (:class:`list`) maps expression index (:class:`int`) to expression data (:class:`:class:`HyperscanExprDat`). """ - self._out: tuple[Optional[bool], int] = (None, -1) - """ + self._out: tuple[Optional[bool], int] = (None, -1) + """ *_out* (:class:`tuple`) stores the current match: - *0* (:class:`bool` or :data:`None`) is the match include. @@ -107,145 +102,149 @@ class HyperscanPsBackend(_Backend): - *1* (:class:`int`) is the match index. """ - self._patterns: dict[int, RegexPattern] = dict(use_patterns) - """ + self._patterns: dict[int, RegexPattern] = dict(use_patterns) + """ *_patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern (:class:`RegexPattern`). """ - @staticmethod - def _init_db( - db: hyperscan.Database, - debug: bool, - patterns: list[tuple[int, RegexPattern]], - sort_ids: Optional[Callable[[list[int]], None]], - ) -> list[HyperscanExprDat]: - """ - Initialize the Hyperscan database from the given patterns. + @staticmethod + def _init_db( + db: hyperscan.Database, + debug: bool, + patterns: list[tuple[int, RegexPattern]], + sort_ids: Optional[Callable[[list[int]], None]], + ) -> list[HyperscanExprDat]: + """ + Initialize the Hyperscan database from the given patterns. - *db* (:class:`hyperscan.Hyperscan`) is the Hyperscan database. + *db* (:class:`hyperscan.Hyperscan`) is the Hyperscan database. - *debug* (:class:`bool`) is whether to include additional debugging - information for the expressions. + *debug* (:class:`bool`) is whether to include additional debugging + information for the expressions. - *patterns* (:class:`~collections.abc.Sequence` of :class:`.RegexPattern`) - contains the patterns. + *patterns* (:class:`~collections.abc.Sequence` of :class:`.RegexPattern`) + contains the patterns. - *sort_ids* (:class:`callable` or :data:`None`) is a function used to sort - the compiled expression ids. This is used during testing to ensure the order - of expressions is not accidentally relied on. + *sort_ids* (:class:`callable` or :data:`None`) is a function used to sort + the compiled expression ids. This is used during testing to ensure the order + of expressions is not accidentally relied on. - Returns a :class:`list` indexed by expression id (:class:`int`) to its data - (:class:`HyperscanExprDat`). - """ - # WARNING: Hyperscan raises a `hyperscan.error` exception when compiled with - # zero elements. - assert patterns, patterns + Returns a :class:`list` indexed by expression id (:class:`int`) to its data + (:class:`HyperscanExprDat`). + """ + # WARNING: Hyperscan raises a `hyperscan.error` exception when compiled with + # zero elements. + assert patterns, patterns - # Prepare patterns. - expr_data: list[HyperscanExprDat] = [] - exprs: list[bytes] = [] - for pattern_index, pattern in patterns: - assert pattern.include is not None, (pattern_index, pattern) + # Prepare patterns. + expr_data: list[HyperscanExprDat] = [] + exprs: list[bytes] = [] + for pattern_index, pattern in patterns: + assert pattern.include is not None, (pattern_index, pattern) - # Encode regex. - assert isinstance(pattern, RegexPattern), pattern - regex = pattern.regex.pattern + # Encode regex. + assert isinstance(pattern, RegexPattern), pattern + regex = pattern.regex.pattern - if isinstance(regex, bytes): - regex_bytes = regex - else: - assert isinstance(regex, str), regex - regex_bytes = regex.encode('utf8') + if isinstance(regex, bytes): + regex_bytes = regex + else: + assert isinstance(regex, str), regex + regex_bytes = regex.encode("utf8") - if debug: - expr_data.append(HyperscanExprDebug( - include=pattern.include, - index=pattern_index, - is_dir_pattern=False, - regex=regex, - )) - else: - expr_data.append(HyperscanExprDat( - include=pattern.include, - index=pattern_index, - is_dir_pattern=False, - )) + if debug: + expr_data.append( + HyperscanExprDebug( + include=pattern.include, + index=pattern_index, + is_dir_pattern=False, + regex=regex, + ) + ) + else: + expr_data.append( + HyperscanExprDat( + include=pattern.include, + index=pattern_index, + is_dir_pattern=False, + ) + ) - exprs.append(regex_bytes) + exprs.append(regex_bytes) - # Sort expressions. - ids = list(range(len(exprs))) - if sort_ids is not None: - sort_ids(ids) - exprs = [exprs[__id] for __id in ids] + # Sort expressions. + ids = list(range(len(exprs))) + if sort_ids is not None: + sort_ids(ids) + exprs = [exprs[__id] for __id in ids] - # Compile patterns. - db.compile( - expressions=exprs, - ids=ids, - elements=len(exprs), - flags=HS_FLAGS, - ) + # Compile patterns. + db.compile( + expressions=exprs, + ids=ids, + elements=len(exprs), + flags=HS_FLAGS, + ) - return expr_data + return expr_data - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - # NOTICE: According to benchmarking, a method callback is 20% faster than - # using a closure here. - db = self._db - if self._db is None: - # Database was not initialized because there were no patterns. Return no - # match. - return (None, None) + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + # NOTICE: According to benchmarking, a method callback is 20% faster than + # using a closure here. + db = self._db + if self._db is None: + # Database was not initialized because there were no patterns. Return no + # match. + return (None, None) - self._out = (None, -1) - db.scan(file.encode('utf8'), match_event_handler=self.__on_match) + self._out = (None, -1) + db.scan(file.encode("utf8"), match_event_handler=self.__on_match) - out_include, out_index = self._out - if out_index == -1: - out_index = None + out_include, out_index = self._out + if out_index == -1: + out_index = None - return (out_include, out_index) + return (out_include, out_index) - @staticmethod - def _make_db() -> hyperscan.Database: - """ - Create the Hyperscan database. + @staticmethod + def _make_db() -> hyperscan.Database: + """ + Create the Hyperscan database. - Returns the database (:class:`hyperscan.Database`). - """ - return hyperscan.Database(mode=hyperscan.HS_MODE_BLOCK) + Returns the database (:class:`hyperscan.Database`). + """ + return hyperscan.Database(mode=hyperscan.HS_MODE_BLOCK) - def __on_match( - self, - expr_id: int, - _from: int, - _to: int, - _flags: int, - _context: Any, - ) -> Optional[bool]: - """ - Called on each match. + def __on_match( + self, + expr_id: int, + _from: int, + _to: int, + _flags: int, + _context: Any, + ) -> Optional[bool]: + """ + Called on each match. - *expr_id* (:class:`int`) is the expression id (index) of the matched - pattern. - """ - # Store match. - # - WARNING: Hyperscan does not guarantee matches will be produced in order! - # Later expressions have higher priority. - expr_dat = self._expr_data[expr_id] - index = expr_dat.index - prev_index = self._out[1] - if index > prev_index: - self._out = (expr_dat.include, index) + *expr_id* (:class:`int`) is the expression id (index) of the matched + pattern. + """ + # Store match. + # - WARNING: Hyperscan does not guarantee matches will be produced in order! + # Later expressions have higher priority. + expr_dat = self._expr_data[expr_id] + index = expr_dat.index + prev_index = self._out[1] + if index > prev_index: + self._out = (expr_dat.include, index) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/_base.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/_base.py index 4e6ae9f..f46171d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/_base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/_base.py @@ -5,31 +5,33 @@ This module provides private data for the base implementation for the WARNING: The *pathspec._backends.re2* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from dataclasses import ( - dataclass) +from dataclasses import dataclass from typing import ( - Optional, # Replaced by `X | None` in 3.10. - Union) # Replaced by `X | Y` in 3.10. + Optional, # Replaced by `X | None` in 3.10. + Union, +) # Replaced by `X | Y` in 3.10. try: - import re2 - re2_error = None + import re2 + + re2_error = None except ModuleNotFoundError as e: - re2 = None - re2_error = e - RE2_OPTIONS = None + re2 = None + re2_error = e + RE2_OPTIONS = None else: - # Both the `google-re2` and `pyre2` libraries use the `re2` namespace. - # `google-re2` is the only one currently supported. - try: - RE2_OPTIONS = re2.Options() - RE2_OPTIONS.log_errors = False - RE2_OPTIONS.never_capture = True - except Exception as e: - re2_error = e - RE2_OPTIONS = None + # Both the `google-re2` and `pyre2` libraries use the `re2` namespace. + # `google-re2` is the only one currently supported. + try: + RE2_OPTIONS = re2.Options() + RE2_OPTIONS.log_errors = False + RE2_OPTIONS.never_capture = True + except Exception as e: + re2_error = e + RE2_OPTIONS = None RE2_OPTIONS: re2.Options """ @@ -49,31 +51,31 @@ re2_error: Optional[Exception] @dataclass(frozen=True) class Re2RegexDat(object): - """ - The :class:`Re2RegexDat` class is used to store data related to a regular - expression. - """ + """ + The :class:`Re2RegexDat` class is used to store data related to a regular + expression. + """ - # The slots argument is not supported until Python 3.10. - __slots__ = [ - 'include', - 'index', - 'is_dir_pattern', - ] + # The slots argument is not supported until Python 3.10. + __slots__ = [ + "include", + "index", + "is_dir_pattern", + ] - include: bool - """ + include: bool + """ *include* (:class:`bool`) is whether is whether the matched files should be included (:data:`True`), or excluded (:data:`False`). """ - index: int - """ + index: int + """ *index* (:class:`int`) is the pattern index. """ - is_dir_pattern: bool - """ + is_dir_pattern: bool + """ *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory pattern for gitignore. """ @@ -81,15 +83,15 @@ class Re2RegexDat(object): @dataclass(frozen=True) class Re2RegexDebug(Re2RegexDat): - """ - The :class:`Re2RegexDebug` class stores additional debug information related - to a regular expression. - """ + """ + The :class:`Re2RegexDebug` class stores additional debug information related + to a regular expression. + """ - # The slots argument is not supported until Python 3.10. - __slots__ = ['regex'] + # The slots argument is not supported until Python 3.10. + __slots__ = ["regex"] - regex: Union[str, bytes] - """ + regex: Union[str, bytes] + """ *regex* (:class:`str` or :class:`bytes`) is the regular expression. """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/base.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/base.py index fa24f4d..432c676 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/base.py @@ -4,13 +4,12 @@ This module provides the base implementation for the :module:`re2` backend. WARNING: The *pathspec._backends.re2* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from typing import ( - Optional) # Replaced by `X | None` in 3.10. +from typing import Optional # Replaced by `X | None` in 3.10. -from ._base import ( - re2_error) +from ._base import re2_error re2_error: Optional[Exception] """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/gitignore.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/gitignore.py index cb2525f..2409996 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/gitignore.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/gitignore.py @@ -4,176 +4,178 @@ This module provides the :module:`re2` backend for :class:`~pathspec.gitignore.G WARNING: The *pathspec._backends.re2* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations from typing import ( - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional, # Replaced by `X | None` in 3.10. - Union) # Replaced by `X | Y` in 3.10. + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, # Replaced by `X | None` in 3.10. + Union, +) # Replaced by `X | Y` in 3.10. try: - import re2 + import re2 except ModuleNotFoundError: - re2 = None + re2 = None -from pathspec.pattern import ( - RegexPattern) +from pathspec.pattern import RegexPattern from pathspec.patterns.gitignore.spec import ( - GitIgnoreSpecPattern, - _BYTES_ENCODING, - _DIR_MARK_CG, - _DIR_MARK_OPT) -from pathspec._typing import ( - override) # Added in 3.12. + GitIgnoreSpecPattern, + _BYTES_ENCODING, + _DIR_MARK_CG, + _DIR_MARK_OPT, +) +from pathspec._typing import override # Added in 3.12. -from ._base import ( - Re2RegexDat, - Re2RegexDebug) -from .pathspec import ( - Re2PsBackend) +from ._base import Re2RegexDat, Re2RegexDebug +from .pathspec import Re2PsBackend class Re2GiBackend(Re2PsBackend): - """ - The :class:`Re2GiBackend` class is the :module:`re2` implementation used by - :class:`~pathspec.gitignore.GitIgnoreSpec` for matching files. - """ + """ + The :class:`Re2GiBackend` class is the :module:`re2` implementation used by + :class:`~pathspec.gitignore.GitIgnoreSpec` for matching files. + """ - @override - @staticmethod - def _init_set( - debug: bool, - patterns: dict[int, RegexPattern], - regex_set: re2.Set, - sort_indices: Optional[Callable[[list[int]], None]], - ) -> list[Re2RegexDat]: - """ - Create the re2 regex set. + @override + @staticmethod + def _init_set( + debug: bool, + patterns: dict[int, RegexPattern], + regex_set: re2.Set, + sort_indices: Optional[Callable[[list[int]], None]], + ) -> list[Re2RegexDat]: + """ + Create the re2 regex set. - *debug* (:class:`bool`) is whether to include additional debugging - information for the regular expressions. + *debug* (:class:`bool`) is whether to include additional debugging + information for the regular expressions. - *patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern - (:class:`.RegexPattern`). + *patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern + (:class:`.RegexPattern`). - *regex_set* (:class:`re2.Set`) is the regex set. + *regex_set* (:class:`re2.Set`) is the regex set. - *sort_indices* (:class:`callable` or :data:`None`) is a function used to - sort the patterns by index. This is used during testing to ensure the order - of patterns is not accidentally relied on. + *sort_indices* (:class:`callable` or :data:`None`) is a function used to + sort the patterns by index. This is used during testing to ensure the order + of patterns is not accidentally relied on. - Returns a :class:`list` indexed by regex id (:class:`int`) to its data - (:class:`Re2RegexDat`). - """ - # Sort patterns. - indices = list(patterns.keys()) - if sort_indices is not None: - sort_indices(indices) + Returns a :class:`list` indexed by regex id (:class:`int`) to its data + (:class:`Re2RegexDat`). + """ + # Sort patterns. + indices = list(patterns.keys()) + if sort_indices is not None: + sort_indices(indices) - # Prepare patterns. - regex_data: list[Re2RegexDat] = [] - for pattern_index in indices: - pattern = patterns[pattern_index] - if pattern.include is None: - continue + # Prepare patterns. + regex_data: list[Re2RegexDat] = [] + for pattern_index in indices: + pattern = patterns[pattern_index] + if pattern.include is None: + continue - assert isinstance(pattern, RegexPattern), pattern - regex = pattern.regex.pattern + assert isinstance(pattern, RegexPattern), pattern + regex = pattern.regex.pattern - use_regexes: list[tuple[Union[str, bytes], bool]] = [] - if isinstance(pattern, GitIgnoreSpecPattern): - # GitIgnoreSpecPattern uses capture groups for its directory marker. Re2 - # supports capture groups, but they cannot be utilized when using - # `re2.Set`. Handle this scenario. - regex_str: str - if isinstance(regex, str): - regex_str = regex - else: - assert isinstance(regex, bytes), regex - regex_str = regex.decode(_BYTES_ENCODING) + use_regexes: list[tuple[Union[str, bytes], bool]] = [] + if isinstance(pattern, GitIgnoreSpecPattern): + # GitIgnoreSpecPattern uses capture groups for its directory marker. Re2 + # supports capture groups, but they cannot be utilized when using + # `re2.Set`. Handle this scenario. + regex_str: str + if isinstance(regex, str): + regex_str = regex + else: + assert isinstance(regex, bytes), regex + regex_str = regex.decode(_BYTES_ENCODING) - if _DIR_MARK_CG in regex_str: - # Found directory marker. - if regex_str.endswith(_DIR_MARK_OPT): - # Regex has optional directory marker. Split regex into directory - # and file variants. - base_regex = regex_str[:-len(_DIR_MARK_OPT)] - use_regexes.append((f'{base_regex}/', True)) - use_regexes.append((f'{base_regex}$', False)) - else: - # Remove capture group. - base_regex = regex_str.replace(_DIR_MARK_CG, '/') - use_regexes.append((base_regex, True)) + if _DIR_MARK_CG in regex_str: + # Found directory marker. + if regex_str.endswith(_DIR_MARK_OPT): + # Regex has optional directory marker. Split regex into directory + # and file variants. + base_regex = regex_str[: -len(_DIR_MARK_OPT)] + use_regexes.append((f"{base_regex}/", True)) + use_regexes.append((f"{base_regex}$", False)) + else: + # Remove capture group. + base_regex = regex_str.replace(_DIR_MARK_CG, "/") + use_regexes.append((base_regex, True)) - if not use_regexes: - # No special case for regex. - use_regexes.append((regex, False)) + if not use_regexes: + # No special case for regex. + use_regexes.append((regex, False)) - for regex, is_dir_pattern in use_regexes: - if debug: - regex_data.append(Re2RegexDebug( - include=pattern.include, - index=pattern_index, - is_dir_pattern=is_dir_pattern, - regex=regex, - )) - else: - regex_data.append(Re2RegexDat( - include=pattern.include, - index=pattern_index, - is_dir_pattern=is_dir_pattern, - )) + for regex, is_dir_pattern in use_regexes: + if debug: + regex_data.append( + Re2RegexDebug( + include=pattern.include, + index=pattern_index, + is_dir_pattern=is_dir_pattern, + regex=regex, + ) + ) + else: + regex_data.append( + Re2RegexDat( + include=pattern.include, + index=pattern_index, + is_dir_pattern=is_dir_pattern, + ) + ) - regex_set.Add(regex) + regex_set.Add(regex) - # Compile patterns. - regex_set.Compile() - return regex_data + # Compile patterns. + regex_set.Compile() + return regex_data - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - # Find best match. - match_ids: Optional[list[int]] = self._set.Match(file) - if not match_ids: - return (None, None) + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + # Find best match. + match_ids: Optional[list[int]] = self._set.Match(file) + if not match_ids: + return (None, None) - out_include: Optional[bool] = None - out_index: int = -1 - out_priority = -1 + out_include: Optional[bool] = None + out_index: int = -1 + out_priority = -1 - regex_data = self._regex_data - for regex_id in match_ids: - regex_dat = regex_data[regex_id] + regex_data = self._regex_data + for regex_id in match_ids: + regex_dat = regex_data[regex_id] - is_dir_pattern = regex_dat.is_dir_pattern - if is_dir_pattern: - # Pattern matched by a directory pattern. - priority = 1 - else: - # Pattern matched by a file pattern. - priority = 2 + is_dir_pattern = regex_dat.is_dir_pattern + if is_dir_pattern: + # Pattern matched by a directory pattern. + priority = 1 + else: + # Pattern matched by a file pattern. + priority = 2 - # WARNING: According to the documentation on `RE2::Set::Match()`, there is - # no guarantee matches will be produced in order! - include = regex_dat.include - index = regex_dat.index - if ( - (include and is_dir_pattern and index > out_index) - or (priority == out_priority and index > out_index) - or priority > out_priority - ): - out_include = include - out_index = index - out_priority = priority + # WARNING: According to the documentation on `RE2::Set::Match()`, there is + # no guarantee matches will be produced in order! + include = regex_dat.include + index = regex_dat.index + if ( + (include and is_dir_pattern and index > out_index) + or (priority == out_priority and index > out_index) + or priority > out_priority + ): + out_include = include + out_index = index + out_priority = priority - assert out_index != -1, (out_index, out_include, out_priority) - return (out_include, out_index) + assert out_index != -1, (out_index, out_include, out_priority) + return (out_include, out_index) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/pathspec.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/pathspec.py index 2c58b45..e1755ff 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/pathspec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/re2/pathspec.py @@ -4,184 +4,185 @@ This module provides the :module:`re2` backend for :class:`~pathspec.pathspec.Pa WARNING: The *pathspec._backends.re2* package is not part of the public API. Its contents and structure are likely to change. """ + from __future__ import annotations -from collections.abc import ( - Sequence) +from collections.abc import Sequence from typing import ( - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional) # Replaced by `X | None` in 3.10. + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, +) # Replaced by `X | None` in 3.10. try: - import re2 + import re2 except ModuleNotFoundError: - re2 = None + re2 = None -from pathspec.backend import ( - _Backend) -from pathspec.pattern import ( - RegexPattern) -from pathspec._typing import ( - override) # Added in 3.12. +from pathspec.backend import _Backend +from pathspec.pattern import RegexPattern +from pathspec._typing import override # Added in 3.12. -from .._utils import ( - enumerate_patterns) +from .._utils import enumerate_patterns -from .base import ( - re2_error) -from ._base import ( - RE2_OPTIONS, - Re2RegexDat, - Re2RegexDebug) +from .base import re2_error +from ._base import RE2_OPTIONS, Re2RegexDat, Re2RegexDebug class Re2PsBackend(_Backend): - """ - The :class:`Re2PsBackend` class is the :module:`re2` implementation used by - :class:`~pathspec.pathspec.PathSpec` for matching files. - """ + """ + The :class:`Re2PsBackend` class is the :module:`re2` implementation used by + :class:`~pathspec.pathspec.PathSpec` for matching files. + """ - def __init__( - self, - patterns: Sequence[RegexPattern], - *, - _debug_regex: Optional[bool] = None, - _test_sort: Optional[Callable[[list], None]] = None, - ) -> None: - """ - Initialize the :class:`Re2PsBackend` instance. + def __init__( + self, + patterns: Sequence[RegexPattern], + *, + _debug_regex: Optional[bool] = None, + _test_sort: Optional[Callable[[list], None]] = None, + ) -> None: + """ + Initialize the :class:`Re2PsBackend` instance. - *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the - compiled patterns. - """ - if re2_error is not None: - raise re2_error + *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the + compiled patterns. + """ + if re2_error is not None: + raise re2_error - if patterns and not isinstance(patterns[0], RegexPattern): - raise TypeError(f"{patterns[0]=!r} must be a RegexPattern.") + if patterns and not isinstance(patterns[0], RegexPattern): + raise TypeError(f"{patterns[0]=!r} must be a RegexPattern.") - use_patterns = dict(enumerate_patterns( - patterns, filter=True, reverse=False, - )) - regex_set = self._make_set() + use_patterns = dict( + enumerate_patterns( + patterns, + filter=True, + reverse=False, + ) + ) + regex_set = self._make_set() - self._debug_regex = bool(_debug_regex) - """ + self._debug_regex = bool(_debug_regex) + """ *_debug_regex* (:class:`bool`) is whether to include additional debugging information for the regular expressions. """ - self._patterns: dict[int, RegexPattern] = use_patterns - """ + self._patterns: dict[int, RegexPattern] = use_patterns + """ *_patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern (:class:`RegexPattern`). """ - self._regex_data: list[Re2RegexDat] = self._init_set( - debug=self._debug_regex, - patterns=use_patterns, - regex_set=regex_set, - sort_indices=_test_sort, - ) - """ + self._regex_data: list[Re2RegexDat] = self._init_set( + debug=self._debug_regex, + patterns=use_patterns, + regex_set=regex_set, + sort_indices=_test_sort, + ) + """ *_regex_data* (:class:`list`) maps regex index (:class:`int`) to regex data (:class:`Re2RegexDat`). """ - self._set: re2.Set = regex_set - """ + self._set: re2.Set = regex_set + """ *_set* (:class:`re2.Set`) is the re2 regex set. """ - @staticmethod - def _init_set( - debug: bool, - patterns: dict[int, RegexPattern], - regex_set: re2.Set, - sort_indices: Optional[Callable[[list[int]], None]], - ) -> list[Re2RegexDat]: - """ - Create the re2 regex set. + @staticmethod + def _init_set( + debug: bool, + patterns: dict[int, RegexPattern], + regex_set: re2.Set, + sort_indices: Optional[Callable[[list[int]], None]], + ) -> list[Re2RegexDat]: + """ + Create the re2 regex set. - *debug* (:class:`bool`) is whether to include additional debugging - information for the regular expressions. + *debug* (:class:`bool`) is whether to include additional debugging + information for the regular expressions. - *patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern - (:class:`.RegexPattern`). + *patterns* (:class:`dict`) maps pattern index (:class:`int`) to pattern + (:class:`.RegexPattern`). - *regex_set* (:class:`re2.Set`) is the regex set. + *regex_set* (:class:`re2.Set`) is the regex set. - *sort_indices* (:class:`callable` or :data:`None`) is a function used to - sort the patterns by index. This is used during testing to ensure the order - of patterns is not accidentally relied on. + *sort_indices* (:class:`callable` or :data:`None`) is a function used to + sort the patterns by index. This is used during testing to ensure the order + of patterns is not accidentally relied on. - Returns a :class:`list` indexed by regex id (:class:`int`) to its data - (:class:`Re2RegexDat`). - """ - # Sort patterns. - indices = list(patterns.keys()) - if sort_indices is not None: - sort_indices(indices) + Returns a :class:`list` indexed by regex id (:class:`int`) to its data + (:class:`Re2RegexDat`). + """ + # Sort patterns. + indices = list(patterns.keys()) + if sort_indices is not None: + sort_indices(indices) - # Prepare patterns. - regex_data: list[Re2RegexDat] = [] - for pattern_index in indices: - pattern = patterns[pattern_index] - if pattern.include is None: - continue + # Prepare patterns. + regex_data: list[Re2RegexDat] = [] + for pattern_index in indices: + pattern = patterns[pattern_index] + if pattern.include is None: + continue - assert isinstance(pattern, RegexPattern), pattern - regex = pattern.regex.pattern + assert isinstance(pattern, RegexPattern), pattern + regex = pattern.regex.pattern - if debug: - regex_data.append(Re2RegexDebug( - include=pattern.include, - index=pattern_index, - is_dir_pattern=False, - regex=regex, - )) - else: - regex_data.append(Re2RegexDat( - include=pattern.include, - index=pattern_index, - is_dir_pattern=False, - )) + if debug: + regex_data.append( + Re2RegexDebug( + include=pattern.include, + index=pattern_index, + is_dir_pattern=False, + regex=regex, + ) + ) + else: + regex_data.append( + Re2RegexDat( + include=pattern.include, + index=pattern_index, + is_dir_pattern=False, + ) + ) - regex_set.Add(regex) + regex_set.Add(regex) - # Compile patterns. - regex_set.Compile() - return regex_data + # Compile patterns. + regex_set.Compile() + return regex_data - @staticmethod - def _make_set() -> re2.Set: - """ - Create the re2 regex set. + @staticmethod + def _make_set() -> re2.Set: + """ + Create the re2 regex set. - Returns the set (:class:`re2.Set`). - """ - return re2.Set.SearchSet(RE2_OPTIONS) + Returns the set (:class:`re2.Set`). + """ + return re2.Set.SearchSet(RE2_OPTIONS) - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - # Find best match. - # - WARNING: According to the documentation on `RE2::Set::Match()`, there is - # no guarantee matches will be produced in order! Later expressions have - # higher priority. - match_ids: Optional[list[int]] = self._set.Match(file) - if not match_ids: - return (None, None) + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + # Find best match. + # - WARNING: According to the documentation on `RE2::Set::Match()`, there is + # no guarantee matches will be produced in order! Later expressions have + # higher priority. + match_ids: Optional[list[int]] = self._set.Match(file) + if not match_ids: + return (None, None) - regex_data = self._regex_data - pattern_index = max(regex_data[__id].index for __id in match_ids) - pattern = self._patterns[pattern_index] - return (pattern.include, pattern_index) + regex_data = self._regex_data + pattern_index = max(regex_data[__id].index for __id in match_ids) + pattern = self._patterns[pattern_index] + return (pattern.include, pattern_index) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/gitignore.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/gitignore.py index bdacc7e..0359c62 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/gitignore.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/gitignore.py @@ -5,100 +5,93 @@ WARNING: The *pathspec._backends.simple* package is not part of the public API. Its contents and structure are likely to change. """ -from collections.abc import ( - Sequence) -from typing import ( - Optional) # Replaced by `X | None` in 3.10. +from collections.abc import Sequence +from typing import Optional # Replaced by `X | None` in 3.10. -from pathspec.pattern import ( - RegexPattern) -from pathspec.patterns.gitignore.spec import ( - _DIR_MARK) -from pathspec._typing import ( - override) # Added in 3.12. +from pathspec.pattern import RegexPattern +from pathspec.patterns.gitignore.spec import _DIR_MARK +from pathspec._typing import override # Added in 3.12. -from .pathspec import ( - SimplePsBackend) +from .pathspec import SimplePsBackend class SimpleGiBackend(SimplePsBackend): - """ - The :class:`SimpleGiBackend` class is the default (or simple) implementation - used by :class:`~pathspec.gitignore.GitIgnoreSpec` for matching files. - """ + """ + The :class:`SimpleGiBackend` class is the default (or simple) implementation + used by :class:`~pathspec.gitignore.GitIgnoreSpec` for matching files. + """ - # Change type hint. - _patterns: list[tuple[int, RegexPattern]] + # Change type hint. + _patterns: list[tuple[int, RegexPattern]] - def __init__( - self, - patterns: Sequence[RegexPattern], - *, - no_filter: Optional[bool] = None, - no_reverse: Optional[bool] = None, - ) -> None: - """ - Initialize the :class:`SimpleGiBackend` instance. + def __init__( + self, + patterns: Sequence[RegexPattern], + *, + no_filter: Optional[bool] = None, + no_reverse: Optional[bool] = None, + ) -> None: + """ + Initialize the :class:`SimpleGiBackend` instance. - *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the - compiled patterns. + *patterns* (:class:`Sequence` of :class:`.RegexPattern`) contains the + compiled patterns. - *no_filter* (:class:`bool`) is whether to keep no-op patterns (:data:`True`), - or remove them (:data:`False`). + *no_filter* (:class:`bool`) is whether to keep no-op patterns (:data:`True`), + or remove them (:data:`False`). - *no_reverse* (:class:`bool`) is whether to keep the pattern order - (:data:`True`), or reverse the order (:data:`True`). - """ - super().__init__(patterns, no_filter=no_filter, no_reverse=no_reverse) + *no_reverse* (:class:`bool`) is whether to keep the pattern order + (:data:`True`), or reverse the order (:data:`True`). + """ + super().__init__(patterns, no_filter=no_filter, no_reverse=no_reverse) - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - is_reversed = self._is_reversed + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + is_reversed = self._is_reversed - out_include: Optional[bool] = None - out_index: Optional[int] = None - out_priority = 0 - for index, pattern in self._patterns: - if ( - (include := pattern.include) is not None - and (match := pattern.match_file(file)) is not None - ): - # Pattern matched. + out_include: Optional[bool] = None + out_index: Optional[int] = None + out_priority = 0 + for index, pattern in self._patterns: + if (include := pattern.include) is not None and ( + match := pattern.match_file(file) + ) is not None: + # Pattern matched. - # Check for directory marker. - dir_mark = match.match.groupdict().get(_DIR_MARK) + # Check for directory marker. + dir_mark = match.match.groupdict().get(_DIR_MARK) - if dir_mark: - # Pattern matched by a directory pattern. - priority = 1 - else: - # Pattern matched by a file pattern. - priority = 2 + if dir_mark: + # Pattern matched by a directory pattern. + priority = 1 + else: + # Pattern matched by a file pattern. + priority = 2 - if is_reversed: - if priority > out_priority: - out_include = include - out_index = index - out_priority = priority - else: - # Forward. - if (include and dir_mark) or priority >= out_priority: - out_include = include - out_index = index - out_priority = priority + if is_reversed: + if priority > out_priority: + out_include = include + out_index = index + out_priority = priority + else: + # Forward. + if (include and dir_mark) or priority >= out_priority: + out_include = include + out_index = index + out_priority = priority - if is_reversed and priority == 2: - # Patterns are being checked in reverse order. The first pattern that - # matches with priority 2 takes precedence. - break + if is_reversed and priority == 2: + # Patterns are being checked in reverse order. The first pattern that + # matches with priority 2 takes precedence. + break - return (out_include, out_index) + return (out_include, out_index) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/pathspec.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/pathspec.py index 2ded1be..fe66d8c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/pathspec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_backends/simple/pathspec.py @@ -5,72 +5,67 @@ WARNING: The *pathspec._backends.simple* package is not part of the public API. Its contents and structure are likely to change. """ -from collections.abc import ( - Sequence) -from typing import ( - Optional) # Replaced by `X | None` in 3.10. +from collections.abc import Sequence +from typing import Optional # Replaced by `X | None` in 3.10. -from pathspec.backend import ( - _Backend) -from pathspec.pattern import ( - Pattern) -from pathspec._typing import ( - override) # Added in 3.12. -from pathspec.util import ( - check_match_file) +from pathspec.backend import _Backend +from pathspec.pattern import Pattern +from pathspec._typing import override # Added in 3.12. +from pathspec.util import check_match_file -from .._utils import ( - enumerate_patterns) +from .._utils import enumerate_patterns class SimplePsBackend(_Backend): - """ - The :class:`SimplePsBackend` class is the default (or simple) implementation - used by :class:`~pathspec.pathspec.PathSpec` for matching files. - """ + """ + The :class:`SimplePsBackend` class is the default (or simple) implementation + used by :class:`~pathspec.pathspec.PathSpec` for matching files. + """ - def __init__( - self, - patterns: Sequence[Pattern], - *, - no_filter: Optional[bool] = None, - no_reverse: Optional[bool] = None, - ) -> None: - """ - Initialize the :class:`SimplePsBackend` instance. + def __init__( + self, + patterns: Sequence[Pattern], + *, + no_filter: Optional[bool] = None, + no_reverse: Optional[bool] = None, + ) -> None: + """ + Initialize the :class:`SimplePsBackend` instance. - *patterns* (:class:`Sequence` of :class:`.Pattern`) contains the compiled - patterns. + *patterns* (:class:`Sequence` of :class:`.Pattern`) contains the compiled + patterns. - *no_filter* (:class:`bool`) is whether to keep no-op patterns (:data:`True`), - or remove them (:data:`False`). + *no_filter* (:class:`bool`) is whether to keep no-op patterns (:data:`True`), + or remove them (:data:`False`). - *no_reverse* (:class:`bool`) is whether to keep the pattern order - (:data:`True`), or reverse the order (:data:`True`). - """ + *no_reverse* (:class:`bool`) is whether to keep the pattern order + (:data:`True`), or reverse the order (:data:`True`). + """ - self._is_reversed: bool = not no_reverse - """ + self._is_reversed: bool = not no_reverse + """ *_is_reversed* (:class:`bool`) is whether to the pattern order was reversed. """ - self._patterns: list[tuple[int, Pattern]] = enumerate_patterns( - patterns, filter=not no_filter, reverse=not no_reverse, - ) - """ + self._patterns: list[tuple[int, Pattern]] = enumerate_patterns( + patterns, + filter=not no_filter, + reverse=not no_reverse, + ) + """ *_patterns* (:class:`list` of :class:`tuple`) contains the enumerated patterns. """ - @override - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + @override + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - return check_match_file(self._patterns, file, self._is_reversed) + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + return check_match_file(self._patterns, file, self._is_reversed) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_meta.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_meta.py index 4e4c782..f38411c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_meta.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_meta.py @@ -5,63 +5,63 @@ This module contains the project meta-data. __author__ = "Caleb P. Burns" __copyright__ = "Copyright © 2013-2026 Caleb P. Burns" __credits__ = [ - "Hong Minhee ", - "Brandon High ", - "029xue ", - "Michael Huynh ", - "Nick Humrich ", - "David Fraser ", - "Charles Samborski ", - "George Hickman ", - "Vincent Driessen ", - "Adrien Vergé ", - "Anders Blomdell ", - "Xavier Thomas ", - "Wim Jeantine-Glenn ", - "Hugo van Kemenade ", - "Dan Cecile ", - "MrOutis ", - "Jon Dufresne ", - "Greg Roodt ", - "Florin T. ", - "Ben Felder ", - "Nicholas Hollander ", - "KOLANICH ", - "Jon Hays ", - "Isaac0616 ", - "Sebastiaan Zeeff ", - "Roel Adriaans ", - "Ravi Selker ", - "Johan Vergeer ", - "danjer ", - "Jan-Hein Bührman ", - "Wim-Peter Dirks ", - "Karthikeyan Singaravelan ", - "John Vandenberg ", - "John T. Wodder II ", - "Tomasz Kłoczko ", - "Oren ", - "SP Mohanty ", - "Richard Si ", - "Jakub Kuczys ", - "Michał Górny ", - "Bartłomiej Żak ", - "Matthias ", - "Avasam ", - "Anıl Karagenç ", - "Yannic Schröder ", - "axesider ", - "TomRuk ", - "Oleh Prypin ", - "Lumina ", - "Kurt McKee ", - "Dobatymo ", - "Tomoki Nakamaru ", - "Sebastien Eskenazi ", - "Bar Vered ", - "Tzach Shabtay ", - "Adam Dangoor ", - "Marcel Telka ", - "Dmytro Kostochko ", + "Hong Minhee ", + "Brandon High ", + "029xue ", + "Michael Huynh ", + "Nick Humrich ", + "David Fraser ", + "Charles Samborski ", + "George Hickman ", + "Vincent Driessen ", + "Adrien Vergé ", + "Anders Blomdell ", + "Xavier Thomas ", + "Wim Jeantine-Glenn ", + "Hugo van Kemenade ", + "Dan Cecile ", + "MrOutis ", + "Jon Dufresne ", + "Greg Roodt ", + "Florin T. ", + "Ben Felder ", + "Nicholas Hollander ", + "KOLANICH ", + "Jon Hays ", + "Isaac0616 ", + "Sebastiaan Zeeff ", + "Roel Adriaans ", + "Ravi Selker ", + "Johan Vergeer ", + "danjer ", + "Jan-Hein Bührman ", + "Wim-Peter Dirks ", + "Karthikeyan Singaravelan ", + "John Vandenberg ", + "John T. Wodder II ", + "Tomasz Kłoczko ", + "Oren ", + "SP Mohanty ", + "Richard Si ", + "Jakub Kuczys ", + "Michał Górny ", + "Bartłomiej Żak ", + "Matthias ", + "Avasam ", + "Anıl Karagenç ", + "Yannic Schröder ", + "axesider ", + "TomRuk ", + "Oleh Prypin ", + "Lumina ", + "Kurt McKee ", + "Dobatymo ", + "Tomoki Nakamaru ", + "Sebastien Eskenazi ", + "Bar Vered ", + "Tzach Shabtay ", + "Adam Dangoor ", + "Marcel Telka ", + "Dmytro Kostochko ", ] __license__ = "MPL 2.0" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_typing.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_typing.py index 049966c..1ab5e57 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/_typing.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/_typing.py @@ -10,55 +10,63 @@ a vendored copy of :module:`typing_extensions`. import functools import warnings from typing import ( - Any, - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional, # Replaced by `X | None` in 3.10. - TypeVar) -try: - from typing import AnyStr # Removed in 3.18. -except ImportError: - AnyStr = TypeVar('AnyStr', str, bytes) -try: - from typing import Never # Added in 3.11. -except ImportError: - from typing import NoReturn as Never - -F = TypeVar('F', bound=Callable[..., Any]) + Any, + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, # Replaced by `X | None` in 3.10. + TypeVar, +) try: - from warnings import deprecated # Added in 3.13. + from typing import AnyStr # Removed in 3.18. except ImportError: - try: - from typing_extensions import deprecated - except ImportError: - def deprecated( - message: str, - /, *, - category: Optional[type[Warning]] = DeprecationWarning, - stacklevel: int = 1, - ) -> Callable[[F], F]: - def decorator(f: F) -> F: - @functools.wraps(f) - def wrapper(*a, **k): - warnings.warn(message, category=category, stacklevel=stacklevel+1) - return f(*a, **k) - return wrapper - return decorator + AnyStr = TypeVar("AnyStr", str, bytes) +try: + from typing import Never # Added in 3.11. +except ImportError: + from typing import NoReturn as Never + +F = TypeVar("F", bound=Callable[..., Any]) try: - from typing import override # Added in 3.12. + from warnings import deprecated # Added in 3.13. except ImportError: - try: - from typing_extensions import override - except ImportError: - def override(f: F) -> F: - return f + try: + from typing_extensions import deprecated + except ImportError: + + def deprecated( + message: str, + /, + *, + category: Optional[type[Warning]] = DeprecationWarning, + stacklevel: int = 1, + ) -> Callable[[F], F]: + def decorator(f: F) -> F: + @functools.wraps(f) + def wrapper(*a, **k): + warnings.warn(message, category=category, stacklevel=stacklevel + 1) + return f(*a, **k) + + return wrapper + + return decorator + + +try: + from typing import override # Added in 3.12. +except ImportError: + try: + from typing_extensions import override + except ImportError: + + def override(f: F) -> F: + return f def assert_unreachable(message: str) -> Never: - """ - The code path is unreachable. Raises an :class:`AssertionError`. + """ + The code path is unreachable. Raises an :class:`AssertionError`. - *message* (:class:`str`) is the error message. - """ - raise AssertionError(message) + *message* (:class:`str`) is the error message. + """ + raise AssertionError(message) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/backend.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/backend.py index f1def28..686c634 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/backend.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/backend.py @@ -5,36 +5,36 @@ matching backends. The exact structure of the backends is not solidified and is subject to change. """ -from typing import ( - Literal, - Optional) +from typing import Literal, Optional -BackendNamesHint = Literal['best', 'hyperscan', 're2', 'simple'] +BackendNamesHint = Literal["best", "hyperscan", "re2", "simple"] """ The supported backend values. """ class _Backend(object): - """ - .. warning:: This class is not part of the public API. It is subject to - change. + """ + .. warning:: This class is not part of the public API. It is subject to + change. - The :class:`_Backend` class is the abstract base class defining how to match - files against patterns. - """ + The :class:`_Backend` class is the abstract base class defining how to match + files against patterns. + """ - def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + def match_file(self, file: str) -> tuple[Optional[bool], Optional[int]]: + """ + Check the file against the patterns. - *file* (:class:`str`) is the normalized file path to check. + *file* (:class:`str`) is the normalized file path to check. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - raise NotImplementedError(( - f"{self.__class__.__module__}.{self.__class__.__qualname__}.match_file() " - f"must be implemented." - )) # NotImplementedError + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + raise NotImplementedError( + ( + f"{self.__class__.__module__}.{self.__class__.__qualname__}.match_file() " + f"must be implemented." + ) + ) # NotImplementedError diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/gitignore.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/gitignore.py index 93c3d76..de55303 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/gitignore.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/gitignore.py @@ -5,40 +5,29 @@ documented. Git allows including files from excluded directories which directly contradicts the documentation. This uses :class:`.GitIgnoreSpecPattern` to fully replicate Git's handling. """ + from __future__ import annotations -from collections.abc import ( - Iterable, - Sequence) +from collections.abc import Iterable, Sequence from typing import ( - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional, # Replaced by `X | None` in 3.10. - TypeVar, - Union, # Replaced by `X | Y` in 3.10. - cast, - overload) + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, # Replaced by `X | None` in 3.10. + TypeVar, + Union, # Replaced by `X | Y` in 3.10. + cast, + overload, +) -from pathspec.backend import ( - BackendNamesHint, - _Backend) -from pathspec._backends.agg import ( - make_gitignore_backend) -from pathspec.pathspec import ( - PathSpec) -from pathspec.pattern import ( - Pattern) -from pathspec.patterns.gitignore.basic import ( - GitIgnoreBasicPattern) -from pathspec.patterns.gitignore.spec import ( - GitIgnoreSpecPattern) -from pathspec._typing import ( - AnyStr, # Removed in 3.18. - override) # Added in 3.12. -from pathspec.util import ( - _is_iterable, - lookup_pattern) +from pathspec.backend import BackendNamesHint, _Backend +from pathspec._backends.agg import make_gitignore_backend +from pathspec.pathspec import PathSpec +from pathspec.pattern import Pattern +from pathspec.patterns.gitignore.basic import GitIgnoreBasicPattern +from pathspec.patterns.gitignore.spec import GitIgnoreSpecPattern +from pathspec._typing import AnyStr, override # Removed in 3.18. # Added in 3.12. +from pathspec.util import _is_iterable, lookup_pattern -Self = TypeVar("Self", bound='GitIgnoreSpec') +Self = TypeVar("Self", bound="GitIgnoreSpec") """ :class:`.GitIgnoreSpec` self type hint to support Python v<3.11 using PEP 673 recommendation. @@ -46,120 +35,127 @@ recommendation. class GitIgnoreSpec(PathSpec): - """ - The :class:`GitIgnoreSpec` class extends :class:`.PathSpec` to replicate - *gitignore* behavior. This is uses :class:`.GitIgnoreSpecPattern` to fully - replicate Git's handling. - """ + """ + The :class:`GitIgnoreSpec` class extends :class:`.PathSpec` to replicate + *gitignore* behavior. This is uses :class:`.GitIgnoreSpecPattern` to fully + replicate Git's handling. + """ - def __eq__(self, other: object) -> bool: - """ - Tests the equality of this gitignore-spec with *other* (:class:`.GitIgnoreSpec`) - by comparing their :attr:`self.patterns <.PathSpec.patterns>` attributes. A - non-:class:`GitIgnoreSpec` will not compare equal. - """ - if isinstance(other, GitIgnoreSpec): - return super().__eq__(other) - elif isinstance(other, PathSpec): - return False - else: - return NotImplemented + def __eq__(self, other: object) -> bool: + """ + Tests the equality of this gitignore-spec with *other* (:class:`.GitIgnoreSpec`) + by comparing their :attr:`self.patterns <.PathSpec.patterns>` attributes. A + non-:class:`GitIgnoreSpec` will not compare equal. + """ + if isinstance(other, GitIgnoreSpec): + return super().__eq__(other) + elif isinstance(other, PathSpec): + return False + else: + return NotImplemented - # Support reversed order of arguments from PathSpec. - @overload - @classmethod - def from_lines( - cls: type[Self], - pattern_factory: Union[str, Callable[[AnyStr], Pattern], None], - lines: Iterable[AnyStr], - *, - backend: Union[BackendNamesHint, str, None] = None, - _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, - ) -> Self: - ... + # Support reversed order of arguments from PathSpec. + @overload + @classmethod + def from_lines( + cls: type[Self], + pattern_factory: Union[str, Callable[[AnyStr], Pattern], None], + lines: Iterable[AnyStr], + *, + backend: Union[BackendNamesHint, str, None] = None, + _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, + ) -> Self: ... - @overload - @classmethod - def from_lines( - cls: type[Self], - lines: Iterable[AnyStr], - pattern_factory: Union[str, Callable[[AnyStr], Pattern], None] = None, - *, - backend: Union[BackendNamesHint, str, None] = None, - _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, - ) -> Self: - ... + @overload + @classmethod + def from_lines( + cls: type[Self], + lines: Iterable[AnyStr], + pattern_factory: Union[str, Callable[[AnyStr], Pattern], None] = None, + *, + backend: Union[BackendNamesHint, str, None] = None, + _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, + ) -> Self: ... - @override - @classmethod - def from_lines( - cls: type[Self], - lines: Iterable[AnyStr], - pattern_factory: Union[str, Callable[[AnyStr], Pattern], None] = None, - *, - backend: Union[BackendNamesHint, str, None] = None, - _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, - ) -> Self: - """ - Compiles the pattern lines. + @override + @classmethod + def from_lines( + cls: type[Self], + lines: Iterable[AnyStr], + pattern_factory: Union[str, Callable[[AnyStr], Pattern], None] = None, + *, + backend: Union[BackendNamesHint, str, None] = None, + _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, + ) -> Self: + """ + Compiles the pattern lines. - *lines* (:class:`~collections.abc.Iterable`) yields each uncompiled pattern - (:class:`str`). This simply has to yield each line, so it can be a - :class:`io.TextIOBase` (e.g., from :func:`open` or :class:`io.StringIO`) or - the result from :meth:`str.splitlines`. + *lines* (:class:`~collections.abc.Iterable`) yields each uncompiled pattern + (:class:`str`). This simply has to yield each line, so it can be a + :class:`io.TextIOBase` (e.g., from :func:`open` or :class:`io.StringIO`) or + the result from :meth:`str.splitlines`. - *pattern_factory* does not need to be set for :class:`GitIgnoreSpec`. If - set, it should be either ``"gitignore"`` or :class:`.GitIgnoreSpecPattern`. - There is no guarantee it will work with any other pattern class. Default is - :data:`None` for :class:`.GitIgnoreSpecPattern`. + *pattern_factory* does not need to be set for :class:`GitIgnoreSpec`. If + set, it should be either ``"gitignore"`` or :class:`.GitIgnoreSpecPattern`. + There is no guarantee it will work with any other pattern class. Default is + :data:`None` for :class:`.GitIgnoreSpecPattern`. - *backend* (:class:`str` or :data:`None`) is the pattern (regular expression) - matching backend to use. Default is :data:`None` for "best" to use the best - available backend. Priority of backends is: "re2", "hyperscan", "simple". - The "simple" backend is always available. + *backend* (:class:`str` or :data:`None`) is the pattern (regular expression) + matching backend to use. Default is :data:`None` for "best" to use the best + available backend. Priority of backends is: "re2", "hyperscan", "simple". + The "simple" backend is always available. - Returns the :class:`GitIgnoreSpec` instance. - """ - if (isinstance(lines, (str, bytes)) or callable(lines)) and _is_iterable(pattern_factory): - # Support reversed order of arguments from PathSpec. - pattern_factory, lines = lines, pattern_factory + Returns the :class:`GitIgnoreSpec` instance. + """ + if (isinstance(lines, (str, bytes)) or callable(lines)) and _is_iterable( + pattern_factory + ): + # Support reversed order of arguments from PathSpec. + pattern_factory, lines = lines, pattern_factory - if pattern_factory is None: - pattern_factory = GitIgnoreSpecPattern - elif pattern_factory == 'gitignore': - # Force use of GitIgnoreSpecPattern for "gitignore" to handle edge-cases. - # This makes usage easier. - pattern_factory = GitIgnoreSpecPattern + if pattern_factory is None: + pattern_factory = GitIgnoreSpecPattern + elif pattern_factory == "gitignore": + # Force use of GitIgnoreSpecPattern for "gitignore" to handle edge-cases. + # This makes usage easier. + pattern_factory = GitIgnoreSpecPattern - if isinstance(pattern_factory, str): - pattern_factory = lookup_pattern(pattern_factory) + if isinstance(pattern_factory, str): + pattern_factory = lookup_pattern(pattern_factory) - if issubclass(pattern_factory, GitIgnoreBasicPattern): - raise TypeError(( - f"{pattern_factory=!r} cannot be {GitIgnoreBasicPattern} because it " - f"will give unexpected results." - )) # TypeError + if issubclass(pattern_factory, GitIgnoreBasicPattern): + raise TypeError( + ( + f"{pattern_factory=!r} cannot be {GitIgnoreBasicPattern} because it " + f"will give unexpected results." + ) + ) # TypeError - self = super().from_lines(pattern_factory, lines, backend=backend, _test_backend_factory=_test_backend_factory) - return cast(Self, self) + self = super().from_lines( + pattern_factory, + lines, + backend=backend, + _test_backend_factory=_test_backend_factory, + ) + return cast(Self, self) - @override - @staticmethod - def _make_backend( - name: BackendNamesHint, - patterns: Sequence[Pattern], - ) -> _Backend: - """ - .. warning:: This method is not part of the public API. It is subject to - change. + @override + @staticmethod + def _make_backend( + name: BackendNamesHint, + patterns: Sequence[Pattern], + ) -> _Backend: + """ + .. warning:: This method is not part of the public API. It is subject to + change. - Create the backend for the patterns. + Create the backend for the patterns. - *name* (:class:`str`) is the name of the backend. + *name* (:class:`str`) is the name of the backend. - *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) - contains the compiled patterns. + *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) + contains the compiled patterns. - Returns the backend (:class:`._Backend`). - """ - return make_gitignore_backend(name, patterns) + Returns the backend (:class:`._Backend`). + """ + return make_gitignore_backend(name, patterns) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/pathspec.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/pathspec.py index bb88cbf..9629130 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/pathspec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/pathspec.py @@ -2,459 +2,457 @@ This module provides :class:`.PathSpec` which is an object-oriented interface for pattern matching of files. """ + from __future__ import annotations -from collections.abc import ( - Collection, - Iterable, - Iterator, - Sequence) -from itertools import ( - zip_longest) +from collections.abc import Collection, Iterable, Iterator, Sequence +from itertools import zip_longest from typing import ( - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Optional, # Replaced by `X | None` in 3.10. - TypeVar, - Union, # Replaced by `X | Y` in 3.10. - cast) + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Optional, # Replaced by `X | None` in 3.10. + TypeVar, + Union, # Replaced by `X | Y` in 3.10. + cast, +) -Self = TypeVar("Self", bound='PathSpec') +Self = TypeVar("Self", bound="PathSpec") """ :class:`.PathSpec` self type hint to support Python v<3.11 using PEP 673 recommendation. """ from pathspec import util -from pathspec.backend import ( - _Backend, - BackendNamesHint) -from pathspec._backends.agg import ( - make_pathspec_backend) -from pathspec.pattern import ( - Pattern) -from pathspec._typing import ( - AnyStr, # Removed in 3.18. - deprecated) # Added in 3.13. +from pathspec.backend import _Backend, BackendNamesHint +from pathspec._backends.agg import make_pathspec_backend +from pathspec.pattern import Pattern +from pathspec._typing import AnyStr, deprecated # Removed in 3.18. # Added in 3.13. from pathspec.util import ( - CheckResult, - StrPath, - TStrPath, - TreeEntry, - _is_iterable, - normalize_file) + CheckResult, + StrPath, + TStrPath, + TreeEntry, + _is_iterable, + normalize_file, +) class PathSpec(object): - """ - The :class:`PathSpec` class is a wrapper around a list of compiled - :class:`.Pattern` instances. - """ + """ + The :class:`PathSpec` class is a wrapper around a list of compiled + :class:`.Pattern` instances. + """ - def __init__( - self, - patterns: Union[Sequence[Pattern], Iterable[Pattern]], - *, - backend: Union[BackendNamesHint, str, None] = None, - _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, - ) -> None: - """ - Initializes the :class:`.PathSpec` instance. + def __init__( + self, + patterns: Union[Sequence[Pattern], Iterable[Pattern]], + *, + backend: Union[BackendNamesHint, str, None] = None, + _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, + ) -> None: + """ + Initializes the :class:`.PathSpec` instance. - *patterns* (:class:`~collections.abc.Sequence` or :class:`~collections.abc.Iterable`) - contains each compiled pattern (:class:`.Pattern`). If not a sequence, it - will be converted to a :class:`list`. + *patterns* (:class:`~collections.abc.Sequence` or :class:`~collections.abc.Iterable`) + contains each compiled pattern (:class:`.Pattern`). If not a sequence, it + will be converted to a :class:`list`. - *backend* (:class:`str` or :data:`None`) is the pattern (regular expression) - matching backend to use. Default is :data:`None` for "best" to use the best - available backend. Priority of backends is: "re2", "hyperscan", "simple". - The "simple" backend is always available. - """ - if not isinstance(patterns, Sequence): - patterns = list(patterns) + *backend* (:class:`str` or :data:`None`) is the pattern (regular expression) + matching backend to use. Default is :data:`None` for "best" to use the best + available backend. Priority of backends is: "re2", "hyperscan", "simple". + The "simple" backend is always available. + """ + if not isinstance(patterns, Sequence): + patterns = list(patterns) - if backend is None: - backend = 'best' + if backend is None: + backend = "best" - backend = cast(BackendNamesHint, backend) - if _test_backend_factory is not None: - use_backend = _test_backend_factory(patterns) - else: - use_backend = self._make_backend(backend, patterns) + backend = cast(BackendNamesHint, backend) + if _test_backend_factory is not None: + use_backend = _test_backend_factory(patterns) + else: + use_backend = self._make_backend(backend, patterns) - self._backend: _Backend = use_backend - """ + self._backend: _Backend = use_backend + """ *_backend* (:class:`._Backend`) is the pattern (regular expression) matching backend. """ - self._backend_name: BackendNamesHint = backend - """ + self._backend_name: BackendNamesHint = backend + """ *_backend_name* (:class:`str`) is the name of backend to use. """ - self.patterns: Sequence[Pattern] = patterns - """ + self.patterns: Sequence[Pattern] = patterns + """ *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) contains the compiled patterns. """ - def __add__(self: Self, other: PathSpec) -> Self: - """ - Combines the :attr:`self.patterns <.PathSpec.patterns>` patterns from two - :class:`PathSpec` instances. - """ - if isinstance(other, PathSpec): - return self.__class__(self.patterns + other.patterns, backend=self._backend_name) - else: - return NotImplemented + def __add__(self: Self, other: PathSpec) -> Self: + """ + Combines the :attr:`self.patterns <.PathSpec.patterns>` patterns from two + :class:`PathSpec` instances. + """ + if isinstance(other, PathSpec): + return self.__class__( + self.patterns + other.patterns, backend=self._backend_name + ) + else: + return NotImplemented - def __eq__(self, other: object) -> bool: - """ - Tests the equality of this path-spec with *other* (:class:`PathSpec`) by - comparing their :attr:`self.patterns <.PathSpec.patterns>` attributes. - """ - if isinstance(other, PathSpec): - paired_patterns = zip_longest(self.patterns, other.patterns) - return all(a == b for a, b in paired_patterns) - else: - return NotImplemented + def __eq__(self, other: object) -> bool: + """ + Tests the equality of this path-spec with *other* (:class:`PathSpec`) by + comparing their :attr:`self.patterns <.PathSpec.patterns>` attributes. + """ + if isinstance(other, PathSpec): + paired_patterns = zip_longest(self.patterns, other.patterns) + return all(a == b for a, b in paired_patterns) + else: + return NotImplemented - def __iadd__(self: Self, other: PathSpec) -> Self: - """ - Adds the :attr:`self.patterns <.PathSpec.patterns>` from *other* - (:class:`PathSpec`) to this instance. - """ - if isinstance(other, PathSpec): - self.patterns += other.patterns - self._backend = self._make_backend(self._backend_name, self.patterns) - return self - else: - return NotImplemented + def __iadd__(self: Self, other: PathSpec) -> Self: + """ + Adds the :attr:`self.patterns <.PathSpec.patterns>` from *other* + (:class:`PathSpec`) to this instance. + """ + if isinstance(other, PathSpec): + self.patterns += other.patterns + self._backend = self._make_backend(self._backend_name, self.patterns) + return self + else: + return NotImplemented - def __len__(self) -> int: - """ - Returns the number of :attr:`self.patterns <.PathSpec.patterns>` this - path-spec contains (:class:`int`). - """ - return len(self.patterns) + def __len__(self) -> int: + """ + Returns the number of :attr:`self.patterns <.PathSpec.patterns>` this + path-spec contains (:class:`int`). + """ + return len(self.patterns) - def check_file( - self, - file: TStrPath, - separators: Optional[Collection[str]] = None, - ) -> CheckResult[TStrPath]: - """ - Check the files against this path-spec. + def check_file( + self, + file: TStrPath, + separators: Optional[Collection[str]] = None, + ) -> CheckResult[TStrPath]: + """ + Check the files against this path-spec. - *file* (:class:`str` or :class:`os.PathLike`) is the file path to be matched - against :attr:`self.patterns <.PathSpec.patterns>`. + *file* (:class:`str` or :class:`os.PathLike`) is the file path to be matched + against :attr:`self.patterns <.PathSpec.patterns>`. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - Returns the file check result (:class:`.CheckResult`). - """ - norm_file = normalize_file(file, separators) - include, index = self._backend.match_file(norm_file) - return CheckResult(file, include, index) + Returns the file check result (:class:`.CheckResult`). + """ + norm_file = normalize_file(file, separators) + include, index = self._backend.match_file(norm_file) + return CheckResult(file, include, index) - def check_files( - self, - files: Iterable[TStrPath], - separators: Optional[Collection[str]] = None, - ) -> Iterator[CheckResult[TStrPath]]: - """ - Check the files against this path-spec. + def check_files( + self, + files: Iterable[TStrPath], + separators: Optional[Collection[str]] = None, + ) -> Iterator[CheckResult[TStrPath]]: + """ + Check the files against this path-spec. - *files* (:class:`~collections.abc.Iterable` of :class:`str` or - :class:`os.PathLike`) contains the file paths to be checked against - :attr:`self.patterns <.PathSpec.patterns>`. + *files* (:class:`~collections.abc.Iterable` of :class:`str` or + :class:`os.PathLike`) contains the file paths to be checked against + :attr:`self.patterns <.PathSpec.patterns>`. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - Returns an :class:`~collections.abc.Iterator` yielding each file check - result (:class:`.CheckResult`). - """ - if not _is_iterable(files): - raise TypeError(f"files:{files!r} is not an iterable.") + Returns an :class:`~collections.abc.Iterator` yielding each file check + result (:class:`.CheckResult`). + """ + if not _is_iterable(files): + raise TypeError(f"files:{files!r} is not an iterable.") - for orig_file in files: - norm_file = normalize_file(orig_file, separators) - include, index = self._backend.match_file(norm_file) - yield CheckResult(orig_file, include, index) + for orig_file in files: + norm_file = normalize_file(orig_file, separators) + include, index = self._backend.match_file(norm_file) + yield CheckResult(orig_file, include, index) - def check_tree_files( - self, - root: StrPath, - on_error: Optional[Callable[[OSError], None]] = None, - follow_links: Optional[bool] = None, - ) -> Iterator[CheckResult[str]]: - """ - Walks the specified root path for all files and checks them against this - path-spec. + def check_tree_files( + self, + root: StrPath, + on_error: Optional[Callable[[OSError], None]] = None, + follow_links: Optional[bool] = None, + ) -> Iterator[CheckResult[str]]: + """ + Walks the specified root path for all files and checks them against this + path-spec. - *root* (:class:`str` or :class:`os.PathLike`) is the root directory to - search for files. + *root* (:class:`str` or :class:`os.PathLike`) is the root directory to + search for files. - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally - is the error handler for file-system exceptions. It will be called with the - exception (:exc:`OSError`). Reraise the exception to abort the walk. Default - is :data:`None` to ignore file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally + is the error handler for file-system exceptions. It will be called with the + exception (:exc:`OSError`). Reraise the exception to abort the walk. Default + is :data:`None` to ignore file-system exceptions. - *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk - symbolic links that resolve to directories. Default is :data:`None` for - :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk + symbolic links that resolve to directories. Default is :data:`None` for + :data:`True`. - *negate* (:class:`bool` or :data:`None`) is whether to negate the match - results of the patterns. If :data:`True`, a pattern matching a file will - exclude the file rather than include it. Default is :data:`None` for - :data:`False`. + *negate* (:class:`bool` or :data:`None`) is whether to negate the match + results of the patterns. If :data:`True`, a pattern matching a file will + exclude the file rather than include it. Default is :data:`None` for + :data:`False`. - Returns an :class:`~collections.abc.Iterator` yielding each file check - result (:class:`.CheckResult`). - """ - files = util.iter_tree_files(root, on_error=on_error, follow_links=follow_links) - yield from self.check_files(files) + Returns an :class:`~collections.abc.Iterator` yielding each file check + result (:class:`.CheckResult`). + """ + files = util.iter_tree_files(root, on_error=on_error, follow_links=follow_links) + yield from self.check_files(files) - @classmethod - def from_lines( - cls: type[Self], - pattern_factory: Union[str, Callable[[AnyStr], Pattern]], - lines: Iterable[AnyStr], - *, - backend: Union[BackendNamesHint, str, None] = None, - _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, - ) -> Self: - """ - Compiles the pattern lines. + @classmethod + def from_lines( + cls: type[Self], + pattern_factory: Union[str, Callable[[AnyStr], Pattern]], + lines: Iterable[AnyStr], + *, + backend: Union[BackendNamesHint, str, None] = None, + _test_backend_factory: Optional[Callable[[Sequence[Pattern]], _Backend]] = None, + ) -> Self: + """ + Compiles the pattern lines. - *pattern_factory* can be either the name of a registered pattern factory - (:class:`str`), or a :class:`~collections.abc.Callable` used to compile - patterns. It must accept an uncompiled pattern (:class:`str`) and return the - compiled pattern (:class:`.Pattern`). + *pattern_factory* can be either the name of a registered pattern factory + (:class:`str`), or a :class:`~collections.abc.Callable` used to compile + patterns. It must accept an uncompiled pattern (:class:`str`) and return the + compiled pattern (:class:`.Pattern`). - *lines* (:class:`~collections.abc.Iterable`) yields each uncompiled pattern - (:class:`str`). This simply has to yield each line so that it can be a - :class:`io.TextIOBase` (e.g., from :func:`open` or :class:`io.StringIO`) or - the result from :meth:`str.splitlines`. + *lines* (:class:`~collections.abc.Iterable`) yields each uncompiled pattern + (:class:`str`). This simply has to yield each line so that it can be a + :class:`io.TextIOBase` (e.g., from :func:`open` or :class:`io.StringIO`) or + the result from :meth:`str.splitlines`. - *backend* (:class:`str` or :data:`None`) is the pattern (or regular - expression) matching backend to use. Default is :data:`None` for "best" to - use the best available backend. Priority of backends is: "re2", "hyperscan", - "simple". The "simple" backend is always available. + *backend* (:class:`str` or :data:`None`) is the pattern (or regular + expression) matching backend to use. Default is :data:`None` for "best" to + use the best available backend. Priority of backends is: "re2", "hyperscan", + "simple". The "simple" backend is always available. - Returns the :class:`PathSpec` instance. - """ - if isinstance(pattern_factory, str): - pattern_factory = util.lookup_pattern(pattern_factory) + Returns the :class:`PathSpec` instance. + """ + if isinstance(pattern_factory, str): + pattern_factory = util.lookup_pattern(pattern_factory) - if not callable(pattern_factory): - raise TypeError(f"pattern_factory:{pattern_factory!r} is not callable.") + if not callable(pattern_factory): + raise TypeError(f"pattern_factory:{pattern_factory!r} is not callable.") - if not _is_iterable(lines): - raise TypeError(f"lines:{lines!r} is not an iterable.") + if not _is_iterable(lines): + raise TypeError(f"lines:{lines!r} is not an iterable.") - patterns = [pattern_factory(line) for line in lines if line] - return cls(patterns, backend=backend, _test_backend_factory=_test_backend_factory) + patterns = [pattern_factory(line) for line in lines if line] + return cls( + patterns, backend=backend, _test_backend_factory=_test_backend_factory + ) - @staticmethod - def _make_backend( - name: BackendNamesHint, - patterns: Sequence[Pattern], - ) -> _Backend: - """ - .. warning:: This method is not part of the public API. It is subject to - change. + @staticmethod + def _make_backend( + name: BackendNamesHint, + patterns: Sequence[Pattern], + ) -> _Backend: + """ + .. warning:: This method is not part of the public API. It is subject to + change. - Create the backend for the patterns. + Create the backend for the patterns. - *name* (:class:`str`) is the name of the backend. + *name* (:class:`str`) is the name of the backend. - *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) - contains the compiled patterns. + *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) + contains the compiled patterns. - Returns the matcher (:class:`._Backend`). - """ - return make_pathspec_backend(name, patterns) + Returns the matcher (:class:`._Backend`). + """ + return make_pathspec_backend(name, patterns) - def match_entries( - self, - entries: Iterable[TreeEntry], - separators: Optional[Collection[str]] = None, - *, - negate: Optional[bool] = None, - ) -> Iterator[TreeEntry]: - """ - Matches the entries to this path-spec. + def match_entries( + self, + entries: Iterable[TreeEntry], + separators: Optional[Collection[str]] = None, + *, + negate: Optional[bool] = None, + ) -> Iterator[TreeEntry]: + """ + Matches the entries to this path-spec. - *entries* (:class:`~collections.abc.Iterable` of :class:`.TreeEntry`) - contains the entries to be matched against :attr:`self.patterns <.PathSpec.patterns>`. + *entries* (:class:`~collections.abc.Iterable` of :class:`.TreeEntry`) + contains the entries to be matched against :attr:`self.patterns <.PathSpec.patterns>`. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - *negate* (:class:`bool` or :data:`None`) is whether to negate the match - results of the patterns. If :data:`True`, a pattern matching a file will - exclude the file rather than include it. Default is :data:`None` for - :data:`False`. + *negate* (:class:`bool` or :data:`None`) is whether to negate the match + results of the patterns. If :data:`True`, a pattern matching a file will + exclude the file rather than include it. Default is :data:`None` for + :data:`False`. - Returns the matched entries (:class:`~collections.abc.Iterator` of - :class:`.TreeEntry`). - """ - if not _is_iterable(entries): - raise TypeError(f"entries:{entries!r} is not an iterable.") + Returns the matched entries (:class:`~collections.abc.Iterator` of + :class:`.TreeEntry`). + """ + if not _is_iterable(entries): + raise TypeError(f"entries:{entries!r} is not an iterable.") - for entry in entries: - norm_file = normalize_file(entry.path, separators) - include, _index = self._backend.match_file(norm_file) + for entry in entries: + norm_file = normalize_file(entry.path, separators) + include, _index = self._backend.match_file(norm_file) - if negate: - include = not include + if negate: + include = not include - if include: - yield entry + if include: + yield entry - def match_file( - self, - file: StrPath, - separators: Optional[Collection[str]] = None, - ) -> bool: - """ - Matches the file to this path-spec. + def match_file( + self, + file: StrPath, + separators: Optional[Collection[str]] = None, + ) -> bool: + """ + Matches the file to this path-spec. - *file* (:class:`str` or :class:`os.PathLike`) is the file path to be matched - against :attr:`self.patterns <.PathSpec.patterns>`. + *file* (:class:`str` or :class:`os.PathLike`) is the file path to be matched + against :attr:`self.patterns <.PathSpec.patterns>`. - *separators* (:class:`~collections.abc.Collection` of :class:`str`) - optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`) + optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - Returns :data:`True` if *file* matched; otherwise, :data:`False`. - """ - norm_file = normalize_file(file, separators) - include, _index = self._backend.match_file(norm_file) - return bool(include) + Returns :data:`True` if *file* matched; otherwise, :data:`False`. + """ + norm_file = normalize_file(file, separators) + include, _index = self._backend.match_file(norm_file) + return bool(include) - def match_files( - self, - files: Iterable[StrPath], - separators: Optional[Collection[str]] = None, - *, - negate: Optional[bool] = None, - ) -> Iterator[StrPath]: - """ - Matches the files to this path-spec. + def match_files( + self, + files: Iterable[StrPath], + separators: Optional[Collection[str]] = None, + *, + negate: Optional[bool] = None, + ) -> Iterator[StrPath]: + """ + Matches the files to this path-spec. - *files* (:class:`~collections.abc.Iterable` of :class:`str` or - :class:`os.PathLike`) contains the file paths to be matched against - :attr:`self.patterns <.PathSpec.patterns>`. + *files* (:class:`~collections.abc.Iterable` of :class:`str` or + :class:`os.PathLike`) contains the file paths to be matched against + :attr:`self.patterns <.PathSpec.patterns>`. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - *negate* (:class:`bool` or :data:`None`) is whether to negate the match - results of the patterns. If :data:`True`, a pattern matching a file will - exclude the file rather than include it. Default is :data:`None` for - :data:`False`. + *negate* (:class:`bool` or :data:`None`) is whether to negate the match + results of the patterns. If :data:`True`, a pattern matching a file will + exclude the file rather than include it. Default is :data:`None` for + :data:`False`. - Returns the matched files (:class:`~collections.abc.Iterator` of - :class:`str` or :class:`os.PathLike`). - """ - if not _is_iterable(files): - raise TypeError(f"files:{files!r} is not an iterable.") + Returns the matched files (:class:`~collections.abc.Iterator` of + :class:`str` or :class:`os.PathLike`). + """ + if not _is_iterable(files): + raise TypeError(f"files:{files!r} is not an iterable.") - for orig_file in files: - norm_file = normalize_file(orig_file, separators) - include, _index = self._backend.match_file(norm_file) + for orig_file in files: + norm_file = normalize_file(orig_file, separators) + include, _index = self._backend.match_file(norm_file) - if negate: - include = not include + if negate: + include = not include - if include: - yield orig_file + if include: + yield orig_file - def match_tree_entries( - self, - root: StrPath, - on_error: Optional[Callable[[OSError], None]] = None, - follow_links: Optional[bool] = None, - *, - negate: Optional[bool] = None, - ) -> Iterator[TreeEntry]: - """ - Walks the specified root path for all files and matches them to this - path-spec. + def match_tree_entries( + self, + root: StrPath, + on_error: Optional[Callable[[OSError], None]] = None, + follow_links: Optional[bool] = None, + *, + negate: Optional[bool] = None, + ) -> Iterator[TreeEntry]: + """ + Walks the specified root path for all files and matches them to this + path-spec. - *root* (:class:`str` or :class:`os.PathLike`) is the root directory to - search. + *root* (:class:`str` or :class:`os.PathLike`) is the root directory to + search. - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally - is the error handler for file-system exceptions. It will be called with the - exception (:exc:`OSError`). Reraise the exception to abort the walk. Default - is :data:`None` to ignore file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally + is the error handler for file-system exceptions. It will be called with the + exception (:exc:`OSError`). Reraise the exception to abort the walk. Default + is :data:`None` to ignore file-system exceptions. - *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk - symbolic links that resolve to directories. Default is :data:`None` for - :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk + symbolic links that resolve to directories. Default is :data:`None` for + :data:`True`. - *negate* (:class:`bool` or :data:`None`) is whether to negate the match - results of the patterns. If :data:`True`, a pattern matching a file will - exclude the file rather than include it. Default is :data:`None` for - :data:`False`. + *negate* (:class:`bool` or :data:`None`) is whether to negate the match + results of the patterns. If :data:`True`, a pattern matching a file will + exclude the file rather than include it. Default is :data:`None` for + :data:`False`. - Returns the matched files (:class:`~collections.abc.Iterator` of - :class:`.TreeEntry`). - """ - entries = util.iter_tree_entries(root, on_error=on_error, follow_links=follow_links) - yield from self.match_entries(entries, negate=negate) + Returns the matched files (:class:`~collections.abc.Iterator` of + :class:`.TreeEntry`). + """ + entries = util.iter_tree_entries( + root, on_error=on_error, follow_links=follow_links + ) + yield from self.match_entries(entries, negate=negate) - # NOTICE: The deprecation warning was only added in 1.0.0 (from 2026-01-05). - @deprecated(( - "PathSpec.match_tree() is deprecated. Use .match_tree_files() instead." - )) - def match_tree(self, *args, **kw) -> Iterator[str]: - """ - .. version-deprecated:: 0.3.2 - This is an alias for the :meth:`self.match_tree_files <.PathSpec.match_tree_files>` - method. - """ - return self.match_tree_files(*args, **kw) + # NOTICE: The deprecation warning was only added in 1.0.0 (from 2026-01-05). + @deprecated( + ("PathSpec.match_tree() is deprecated. Use .match_tree_files() instead.") + ) + def match_tree(self, *args, **kw) -> Iterator[str]: + """ + .. version-deprecated:: 0.3.2 + This is an alias for the :meth:`self.match_tree_files <.PathSpec.match_tree_files>` + method. + """ + return self.match_tree_files(*args, **kw) - def match_tree_files( - self, - root: StrPath, - on_error: Optional[Callable[[OSError], None]] = None, - follow_links: Optional[bool] = None, - *, - negate: Optional[bool] = None, - ) -> Iterator[str]: - """ - Walks the specified root path for all files and matches them to this - path-spec. + def match_tree_files( + self, + root: StrPath, + on_error: Optional[Callable[[OSError], None]] = None, + follow_links: Optional[bool] = None, + *, + negate: Optional[bool] = None, + ) -> Iterator[str]: + """ + Walks the specified root path for all files and matches them to this + path-spec. - *root* (:class:`str` or :class:`os.PathLike`) is the root directory to - search for files. + *root* (:class:`str` or :class:`os.PathLike`) is the root directory to + search for files. - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally - is the error handler for file-system exceptions. It will be called with the - exception (:exc:`OSError`). Reraise the exception to abort the walk. Default - is :data:`None` to ignore file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally + is the error handler for file-system exceptions. It will be called with the + exception (:exc:`OSError`). Reraise the exception to abort the walk. Default + is :data:`None` to ignore file-system exceptions. - *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk - symbolic links that resolve to directories. Default is :data:`None` for - :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk + symbolic links that resolve to directories. Default is :data:`None` for + :data:`True`. - *negate* (:class:`bool` or :data:`None`) is whether to negate the match - results of the patterns. If :data:`True`, a pattern matching a file will - exclude the file rather than include it. Default is :data:`None` for - :data:`False`. + *negate* (:class:`bool` or :data:`None`) is whether to negate the match + results of the patterns. If :data:`True`, a pattern matching a file will + exclude the file rather than include it. Default is :data:`None` for + :data:`False`. - Returns the matched files (:class:`~collections.abc.Iterable` of :class:`str`). - """ - files = util.iter_tree_files(root, on_error=on_error, follow_links=follow_links) - yield from self.match_files(files, negate=negate) + Returns the matched files (:class:`~collections.abc.Iterable` of :class:`str`). + """ + files = util.iter_tree_files(root, on_error=on_error, follow_links=follow_links) + yield from self.match_files(files, negate=negate) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/pattern.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/pattern.py index a4b8a2c..ccc0e10 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/pattern.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/pattern.py @@ -1,241 +1,244 @@ """ This module provides the base definition for patterns. """ + from __future__ import annotations import re -from collections.abc import ( - Iterable, - Iterator) -from dataclasses import ( - dataclass) +from collections.abc import Iterable, Iterator +from dataclasses import dataclass from typing import ( - Any, - Optional, # Replaced by `X | None` in 3.10. - TypeVar, - Union) # Replaced by `X | Y` in 3.10. + Any, + Optional, # Replaced by `X | None` in 3.10. + TypeVar, + Union, +) # Replaced by `X | Y` in 3.10. from ._typing import ( - AnyStr, # Removed in 3.18. - deprecated, # Added in 3.13. - override) # Added in 3.12. + AnyStr, # Removed in 3.18. + deprecated, # Added in 3.13. + override, +) # Added in 3.12. -RegexPatternSelf = TypeVar("RegexPatternSelf", bound='RegexPattern') +RegexPatternSelf = TypeVar("RegexPatternSelf", bound="RegexPattern") """ :class:`.RegexPattern` self type hint to support Python v<3.11 using PEP 673 recommendation. """ + class Pattern(object): - """ - The :class:`Pattern` class is the abstract definition of a pattern. - """ + """ + The :class:`Pattern` class is the abstract definition of a pattern. + """ - # Make the class dict-less. - __slots__ = ( - 'include', - ) + # Make the class dict-less. + __slots__ = ("include",) - def __init__(self, include: Optional[bool]) -> None: - """ - Initializes the :class:`Pattern` instance. + def __init__(self, include: Optional[bool]) -> None: + """ + Initializes the :class:`Pattern` instance. + *include* (:class:`bool` or :data:`None`) is whether the matched files + should be included (:data:`True`), excluded (:data:`False`), or is a + null-operation (:data:`None`). + """ + + self.include = include + """ *include* (:class:`bool` or :data:`None`) is whether the matched files should be included (:data:`True`), excluded (:data:`False`), or is a null-operation (:data:`None`). """ - self.include = include - """ - *include* (:class:`bool` or :data:`None`) is whether the matched files - should be included (:data:`True`), excluded (:data:`False`), or is a - null-operation (:data:`None`). - """ + @deprecated( + ( + "Pattern.match() is deprecated. Use Pattern.match_file() with a loop for " + "similar results." + ) + ) + def match(self, files: Iterable[str]) -> Iterator[str]: + """ + .. version-deprecated:: 0.10.0 + This method is no longer used. Use the :meth:`self.match_file <.Pattern.match_file>` + method with a loop for similar results. - @deprecated(( - "Pattern.match() is deprecated. Use Pattern.match_file() with a loop for " - "similar results." - )) - def match(self, files: Iterable[str]) -> Iterator[str]: - """ - .. version-deprecated:: 0.10.0 - This method is no longer used. Use the :meth:`self.match_file <.Pattern.match_file>` - method with a loop for similar results. + Matches this pattern against the specified files. - Matches this pattern against the specified files. + *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains each + file relative to the root directory. - *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains each - file relative to the root directory. + Returns an :class:`~collections.abc.Iterable` yielding each matched file + path (:class:`str`). + """ + for file in files: + if self.match_file(file) is not None: + yield file - Returns an :class:`~collections.abc.Iterable` yielding each matched file - path (:class:`str`). - """ - for file in files: - if self.match_file(file) is not None: - yield file + def match_file(self, file: str) -> Optional[Any]: + """ + Matches this pattern against the specified file. - def match_file(self, file: str) -> Optional[Any]: - """ - Matches this pattern against the specified file. + *file* (:class:`str`) is the normalized file path to match against. - *file* (:class:`str`) is the normalized file path to match against. - - Returns the match result if *file* matched; otherwise, :data:`None`. - """ - raise NotImplementedError(( - "{cls.__module__}.{cls.__qualname__} must override match_file()." - ).format(cls=self.__class__)) + Returns the match result if *file* matched; otherwise, :data:`None`. + """ + raise NotImplementedError( + ("{cls.__module__}.{cls.__qualname__} must override match_file().").format( + cls=self.__class__ + ) + ) class RegexPattern(Pattern): - """ - The :class:`RegexPattern` class is an implementation of a pattern using - regular expressions. - """ + """ + The :class:`RegexPattern` class is an implementation of a pattern using + regular expressions. + """ - # Keep the class dict-less. - __slots__ = ( - 'pattern', - 'regex', - ) + # Keep the class dict-less. + __slots__ = ( + "pattern", + "regex", + ) - def __init__( - self, - pattern: Union[AnyStr, re.Pattern, None], - include: Optional[bool] = None, - ) -> None: - """ - Initializes the :class:`RegexPattern` instance. + def __init__( + self, + pattern: Union[AnyStr, re.Pattern, None], + include: Optional[bool] = None, + ) -> None: + """ + Initializes the :class:`RegexPattern` instance. - *pattern* (:class:`str`, :class:`bytes`, :class:`re.Pattern`, or - :data:`None`) is the pattern to compile into a regular expression. + *pattern* (:class:`str`, :class:`bytes`, :class:`re.Pattern`, or + :data:`None`) is the pattern to compile into a regular expression. - *include* (:class:`bool` or :data:`None`) must be :data:`None` unless - *pattern* is a precompiled regular expression (:class:`re.Pattern`) in which - case it is whether matched files should be included (:data:`True`), excluded - (:data:`False`), or is a null operation (:data:`None`). + *include* (:class:`bool` or :data:`None`) must be :data:`None` unless + *pattern* is a precompiled regular expression (:class:`re.Pattern`) in which + case it is whether matched files should be included (:data:`True`), excluded + (:data:`False`), or is a null operation (:data:`None`). - .. note:: Subclasses do not need to support the *include* parameter. - """ + .. note:: Subclasses do not need to support the *include* parameter. + """ - if isinstance(pattern, (str, bytes)): - assert include is None, ( - f"include:{include!r} must be null when pattern:{pattern!r} is a string." - ) - regex, include = self.pattern_to_regex(pattern) - # NOTE: Make sure to allow a null regular expression to be - # returned for a null-operation. - if include is not None: - regex = re.compile(regex) + if isinstance(pattern, (str, bytes)): + assert ( + include is None + ), f"include:{include!r} must be null when pattern:{pattern!r} is a string." + regex, include = self.pattern_to_regex(pattern) + # NOTE: Make sure to allow a null regular expression to be + # returned for a null-operation. + if include is not None: + regex = re.compile(regex) - elif pattern is not None and hasattr(pattern, 'match'): - # Assume pattern is a precompiled regular expression. - # - NOTE: Used specified *include*. - regex = pattern + elif pattern is not None and hasattr(pattern, "match"): + # Assume pattern is a precompiled regular expression. + # - NOTE: Used specified *include*. + regex = pattern - elif pattern is None: - # NOTE: Make sure to allow a null pattern to be passed for a - # null-operation. - assert include is None, ( - f"include:{include!r} must be null when pattern:{pattern!r} is null." - ) - regex = None + elif pattern is None: + # NOTE: Make sure to allow a null pattern to be passed for a + # null-operation. + assert ( + include is None + ), f"include:{include!r} must be null when pattern:{pattern!r} is null." + regex = None - else: - raise TypeError(f"pattern:{pattern!r} is not a string, re.Pattern, or None.") + else: + raise TypeError( + f"pattern:{pattern!r} is not a string, re.Pattern, or None." + ) - super(RegexPattern, self).__init__(include) + super(RegexPattern, self).__init__(include) - self.pattern: Union[AnyStr, re.Pattern, None] = pattern - """ + self.pattern: Union[AnyStr, re.Pattern, None] = pattern + """ *pattern* (:class:`str`, :class:`bytes`, :class:`re.Pattern`, or :data:`None`) is the uncompiled, input pattern. This is for reference. """ - self.regex: Optional[re.Pattern] = regex - """ + self.regex: Optional[re.Pattern] = regex + """ *regex* (:class:`re.Pattern` or :data:`None`) is the compiled regular expression for the pattern. """ - def __copy__(self: RegexPatternSelf) -> RegexPatternSelf: - """ - Performa a shallow copy of the pattern. + def __copy__(self: RegexPatternSelf) -> RegexPatternSelf: + """ + Performa a shallow copy of the pattern. - Returns the copy (:class:`RegexPattern`). - """ - other = self.__class__(self.regex, self.include) - other.pattern = self.pattern - return other + Returns the copy (:class:`RegexPattern`). + """ + other = self.__class__(self.regex, self.include) + other.pattern = self.pattern + return other - def __eq__(self, other: RegexPattern) -> bool: - """ - Tests the equality of this regex pattern with *other* (:class:`RegexPattern`) - by comparing their :attr:`~Pattern.include` and :attr:`~RegexPattern.regex` - attributes. - """ - if isinstance(other, RegexPattern): - return self.include == other.include and self.regex == other.regex - else: - return NotImplemented + def __eq__(self, other: RegexPattern) -> bool: + """ + Tests the equality of this regex pattern with *other* (:class:`RegexPattern`) + by comparing their :attr:`~Pattern.include` and :attr:`~RegexPattern.regex` + attributes. + """ + if isinstance(other, RegexPattern): + return self.include == other.include and self.regex == other.regex + else: + return NotImplemented - @override - def match_file(self, file: AnyStr) -> Optional[RegexMatchResult]: - """ - Matches this pattern against the specified file. + @override + def match_file(self, file: AnyStr) -> Optional[RegexMatchResult]: + """ + Matches this pattern against the specified file. - *file* (:class:`str` or :class:`bytes`) is the file path relative to the - root directory (e.g., "relative/path/to/file"). + *file* (:class:`str` or :class:`bytes`) is the file path relative to the + root directory (e.g., "relative/path/to/file"). - Returns the match result (:class:`.RegexMatchResult`) if *file* matched; - otherwise, :data:`None`. - """ - if self.include is not None: - match = self.regex.search(file) - if match is not None: - return RegexMatchResult(match) + Returns the match result (:class:`.RegexMatchResult`) if *file* matched; + otherwise, :data:`None`. + """ + if self.include is not None: + match = self.regex.search(file) + if match is not None: + return RegexMatchResult(match) - return None + return None - @classmethod - def pattern_to_regex( - cls, - pattern: AnyStr, - ) -> tuple[Optional[AnyStr], Optional[bool]]: - """ - Convert the pattern into an uncompiled regular expression. + @classmethod + def pattern_to_regex( + cls, + pattern: AnyStr, + ) -> tuple[Optional[AnyStr], Optional[bool]]: + """ + Convert the pattern into an uncompiled regular expression. - *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a - regular expression. + *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a + regular expression. - Returns a :class:`tuple` containing: + Returns a :class:`tuple` containing: - - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the - uncompiled regular expression . + - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the + uncompiled regular expression . - - *include* (:class:`bool` or :data:`None`) is whether matched files - should be included (:data:`True`), excluded (:data:`False`), or is a - null-operation (:data:`None`). + - *include* (:class:`bool` or :data:`None`) is whether matched files + should be included (:data:`True`), excluded (:data:`False`), or is a + null-operation (:data:`None`). - .. note:: The default implementation simply returns *pattern* and - :data:`True`. - """ - return pattern, True + .. note:: The default implementation simply returns *pattern* and + :data:`True`. + """ + return pattern, True @dataclass() class RegexMatchResult(object): - """ - The :class:`RegexMatchResult` data class is used to return information about - the matched regular expression. - """ + """ + The :class:`RegexMatchResult` data class is used to return information about + the matched regular expression. + """ - # Keep the class dict-less. - __slots__ = ( - 'match', - ) + # Keep the class dict-less. + __slots__ = ("match",) - match: re.Match - """ + match: re.Match + """ *match* (:class:`re.Match`) is the regex match result. """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/__init__.py index e440754..a368728 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/__init__.py @@ -8,10 +8,9 @@ The following classes are imported and made available from this package: """ # Expose the GitIgnorePatternError for convenience. -from .base import ( - GitIgnorePatternError) +from .base import GitIgnorePatternError # Declare imports as part of the public interface. __all__ = [ - 'GitIgnorePatternError', + "GitIgnorePatternError", ] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/base.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/base.py index 0e1dd3c..df64844 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/base.py @@ -4,173 +4,174 @@ This module provides common classes for the gitignore patterns. import re -from pathspec.pattern import ( - RegexPattern) -from pathspec._typing import ( - AnyStr) # Removed in 3.18. +from pathspec.pattern import RegexPattern +from pathspec._typing import AnyStr # Removed in 3.18. -_BYTES_ENCODING = 'latin1' +_BYTES_ENCODING = "latin1" """ The encoding to use when parsing a byte string pattern. """ class _GitIgnoreBasePattern(RegexPattern): - """ - .. warning:: This class is not part of the public API. It is subject to - change. + """ + .. warning:: This class is not part of the public API. It is subject to + change. - The :class:`_GitIgnoreBasePattern` class is the base implementation for a - compiled gitignore pattern. - """ + The :class:`_GitIgnoreBasePattern` class is the base implementation for a + compiled gitignore pattern. + """ - # Keep the dict-less class hierarchy. - __slots__ = () + # Keep the dict-less class hierarchy. + __slots__ = () - @staticmethod - def escape(s: AnyStr) -> AnyStr: - """ - Escape special characters in the given string. + @staticmethod + def escape(s: AnyStr) -> AnyStr: + """ + Escape special characters in the given string. - *s* (:class:`str` or :class:`bytes`) a filename or a string that you want to - escape, usually before adding it to a ".gitignore". + *s* (:class:`str` or :class:`bytes`) a filename or a string that you want to + escape, usually before adding it to a ".gitignore". - Returns the escaped string (:class:`str` or :class:`bytes`). - """ - if isinstance(s, str): - return_type = str - string = s - elif isinstance(s, bytes): - return_type = bytes - string = s.decode(_BYTES_ENCODING) - else: - raise TypeError(f"s:{s!r} is not a unicode or byte string.") + Returns the escaped string (:class:`str` or :class:`bytes`). + """ + if isinstance(s, str): + return_type = str + string = s + elif isinstance(s, bytes): + return_type = bytes + string = s.decode(_BYTES_ENCODING) + else: + raise TypeError(f"s:{s!r} is not a unicode or byte string.") - # Reference: https://git-scm.com/docs/gitignore#_pattern_format - out_string = ''.join((f"\\{x}" if x in '[]!*#?' else x) for x in string) + # Reference: https://git-scm.com/docs/gitignore#_pattern_format + out_string = "".join((f"\\{x}" if x in "[]!*#?" else x) for x in string) - if return_type is bytes: - return out_string.encode(_BYTES_ENCODING) - else: - return out_string + if return_type is bytes: + return out_string.encode(_BYTES_ENCODING) + else: + return out_string - @staticmethod - def _translate_segment_glob(pattern: str) -> str: - """ - Translates the glob pattern to a regular expression. This is used in the - constructor to translate a path segment glob pattern to its corresponding - regular expression. + @staticmethod + def _translate_segment_glob(pattern: str) -> str: + """ + Translates the glob pattern to a regular expression. This is used in the + constructor to translate a path segment glob pattern to its corresponding + regular expression. - *pattern* (:class:`str`) is the glob pattern. + *pattern* (:class:`str`) is the glob pattern. - Returns the regular expression (:class:`str`). - """ - # NOTE: This is derived from `fnmatch.translate()` and is similar to the - # POSIX function `fnmatch()` with the `FNM_PATHNAME` flag set. + Returns the regular expression (:class:`str`). + """ + # NOTE: This is derived from `fnmatch.translate()` and is similar to the + # POSIX function `fnmatch()` with the `FNM_PATHNAME` flag set. - escape = False - regex = '' - i, end = 0, len(pattern) - while i < end: - # Get next character. - char = pattern[i] - i += 1 + escape = False + regex = "" + i, end = 0, len(pattern) + while i < end: + # Get next character. + char = pattern[i] + i += 1 - if escape: - # Escape the character. - escape = False - regex += re.escape(char) + if escape: + # Escape the character. + escape = False + regex += re.escape(char) - elif char == '\\': - # Escape character, escape next character. - escape = True + elif char == "\\": + # Escape character, escape next character. + escape = True - elif char == '*': - # Multi-character wildcard. Match any string (except slashes), including - # an empty string. - regex += '[^/]*' + elif char == "*": + # Multi-character wildcard. Match any string (except slashes), including + # an empty string. + regex += "[^/]*" - elif char == '?': - # Single-character wildcard. Match any single character (except a - # slash). - regex += '[^/]' + elif char == "?": + # Single-character wildcard. Match any single character (except a + # slash). + regex += "[^/]" - elif char == '[': - # Bracket expression wildcard. Except for the beginning exclamation - # mark, the whole bracket expression can be used directly as regex, but - # we have to find where the expression ends. - # - "[][!]" matches ']', '[' and '!'. - # - "[]-]" matches ']' and '-'. - # - "[!]a-]" matches any character except ']', 'a' and '-'. - j = i + elif char == "[": + # Bracket expression wildcard. Except for the beginning exclamation + # mark, the whole bracket expression can be used directly as regex, but + # we have to find where the expression ends. + # - "[][!]" matches ']', '[' and '!'. + # - "[]-]" matches ']' and '-'. + # - "[!]a-]" matches any character except ']', 'a' and '-'. + j = i - # Pass bracket expression negation. - if j < end and (pattern[j] == '!' or pattern[j] == '^'): - j += 1 + # Pass bracket expression negation. + if j < end and (pattern[j] == "!" or pattern[j] == "^"): + j += 1 - # Pass first closing bracket if it is at the beginning of the - # expression. - if j < end and pattern[j] == ']': - j += 1 + # Pass first closing bracket if it is at the beginning of the + # expression. + if j < end and pattern[j] == "]": + j += 1 - # Find closing bracket. Stop once we reach the end or find it. - while j < end and pattern[j] != ']': - j += 1 + # Find closing bracket. Stop once we reach the end or find it. + while j < end and pattern[j] != "]": + j += 1 - if j < end: - # Found end of bracket expression. Increment j to be one past the - # closing bracket: - # - # [...] - # ^ ^ - # i j - # - j += 1 - expr = '[' + if j < end: + # Found end of bracket expression. Increment j to be one past the + # closing bracket: + # + # [...] + # ^ ^ + # i j + # + j += 1 + expr = "[" - if pattern[i] == '!': - # Bracket expression needs to be negated. - expr += '^' - i += 1 - elif pattern[i] == '^': - # POSIX declares that the regex bracket expression negation "[^...]" - # is undefined in a glob pattern. Python's `fnmatch.translate()` - # escapes the caret ('^') as a literal. Git supports the using a - # caret for negation. Maintain consistency with Git because that is - # the expected behavior. - expr += '^' - i += 1 + if pattern[i] == "!": + # Bracket expression needs to be negated. + expr += "^" + i += 1 + elif pattern[i] == "^": + # POSIX declares that the regex bracket expression negation "[^...]" + # is undefined in a glob pattern. Python's `fnmatch.translate()` + # escapes the caret ('^') as a literal. Git supports the using a + # caret for negation. Maintain consistency with Git because that is + # the expected behavior. + expr += "^" + i += 1 - # Build regex bracket expression. Escape slashes so they are treated - # as literal slashes by regex as defined by POSIX. - expr += pattern[i:j].replace('\\', '\\\\') + # Build regex bracket expression. Escape slashes so they are treated + # as literal slashes by regex as defined by POSIX. + expr += pattern[i:j].replace("\\", "\\\\") - # Add regex bracket expression to regex result. - regex += expr + # Add regex bracket expression to regex result. + regex += expr - # Set i to one past the closing bracket. - i = j + # Set i to one past the closing bracket. + i = j - else: - # Failed to find closing bracket, treat opening bracket as a bracket - # literal instead of as an expression. - regex += '\\[' + else: + # Failed to find closing bracket, treat opening bracket as a bracket + # literal instead of as an expression. + regex += "\\[" - else: - # Regular character, escape it for regex. - regex += re.escape(char) + else: + # Regular character, escape it for regex. + regex += re.escape(char) - if escape: - raise ValueError(( - f"Escape character found with no next character to escape: {pattern!r}" - )) # ValueError + if escape: + raise ValueError( + ( + f"Escape character found with no next character to escape: {pattern!r}" + ) + ) # ValueError - return regex + return regex class GitIgnorePatternError(ValueError): - """ - The :class:`GitIgnorePatternError` class indicates an invalid gitignore - pattern. - """ - pass + """ + The :class:`GitIgnorePatternError` class indicates an invalid gitignore + pattern. + """ + + pass diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/basic.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/basic.py index 95d7915..94eae98 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/basic.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/basic.py @@ -6,312 +6,306 @@ when including files in excluded directories. .. _`gitignore`: https://git-scm.com/docs/gitignore """ -from typing import ( - Optional) # Replaced by `X | None` in 3.10. +from typing import Optional # Replaced by `X | None` in 3.10. from pathspec import util from pathspec._typing import ( - AnyStr, # Removed in 3.18. - assert_unreachable, - override) # Added in 3.12. + AnyStr, # Removed in 3.18. + assert_unreachable, + override, +) # Added in 3.12. -from .base import ( - GitIgnorePatternError, - _BYTES_ENCODING, - _GitIgnoreBasePattern) +from .base import GitIgnorePatternError, _BYTES_ENCODING, _GitIgnoreBasePattern class GitIgnoreBasicPattern(_GitIgnoreBasePattern): - """ - The :class:`GitIgnoreBasicPattern` class represents a compiled gitignore - pattern as documented. This is registered as "gitignore". - """ + """ + The :class:`GitIgnoreBasicPattern` class represents a compiled gitignore + pattern as documented. This is registered as "gitignore". + """ - # Keep the dict-less class hierarchy. - __slots__ = () + # Keep the dict-less class hierarchy. + __slots__ = () - @staticmethod - def __normalize_segments( - is_dir_pattern: bool, - pattern_segs: list[str], - ) -> tuple[Optional[list[str]], Optional[str]]: - """ - Normalize the pattern segments to make processing easier. + @staticmethod + def __normalize_segments( + is_dir_pattern: bool, + pattern_segs: list[str], + ) -> tuple[Optional[list[str]], Optional[str]]: + """ + Normalize the pattern segments to make processing easier. - *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory - pattern (i.e., ends with a slash '/'). + *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory + pattern (i.e., ends with a slash '/'). - *pattern_segs* (:class:`list` of :class:`str`) contains the pattern - segments. This may be modified in place. + *pattern_segs* (:class:`list` of :class:`str`) contains the pattern + segments. This may be modified in place. - Returns a :class:`tuple` containing either: + Returns a :class:`tuple` containing either: - - The normalized segments (:class:`list` of :class:`str`; or :data:`None`). + - The normalized segments (:class:`list` of :class:`str`; or :data:`None`). - - The regular expression override (:class:`str` or :data:`None`). - """ - if not pattern_segs[0]: - # A pattern beginning with a slash ('/') should match relative to the root - # directory. Remove the empty first segment to make the pattern relative - # to root. - del pattern_segs[0] + - The regular expression override (:class:`str` or :data:`None`). + """ + if not pattern_segs[0]: + # A pattern beginning with a slash ('/') should match relative to the root + # directory. Remove the empty first segment to make the pattern relative + # to root. + del pattern_segs[0] - elif len(pattern_segs) == 1 or (len(pattern_segs) == 2 and not pattern_segs[1]): - # A single segment pattern with or without a trailing slash ('/') will - # match any descendant path. This is equivalent to "**/{pattern}". Prepend - # double-asterisk segment to make pattern relative to root. - if pattern_segs[0] != '**': - pattern_segs.insert(0, '**') + elif len(pattern_segs) == 1 or (len(pattern_segs) == 2 and not pattern_segs[1]): + # A single segment pattern with or without a trailing slash ('/') will + # match any descendant path. This is equivalent to "**/{pattern}". Prepend + # double-asterisk segment to make pattern relative to root. + if pattern_segs[0] != "**": + pattern_segs.insert(0, "**") - else: - # A pattern without a beginning slash ('/') but contains at least one - # prepended directory (e.g., "dir/{pattern}") should match relative to the - # root directory. No segment modification is needed. - pass + else: + # A pattern without a beginning slash ('/') but contains at least one + # prepended directory (e.g., "dir/{pattern}") should match relative to the + # root directory. No segment modification is needed. + pass - if not pattern_segs: - # After normalization, we end up with no pattern at all. This must be - # because the pattern is invalid. - raise ValueError("Pattern normalized to nothing.") + if not pattern_segs: + # After normalization, we end up with no pattern at all. This must be + # because the pattern is invalid. + raise ValueError("Pattern normalized to nothing.") - if not pattern_segs[-1]: - # A pattern ending with a slash ('/') will match all descendant paths if - # it is a directory but not if it is a regular file. This is equivalent to - # "{pattern}/**". Set empty last segment to a double-asterisk to include - # all descendants. - pattern_segs[-1] = '**' + if not pattern_segs[-1]: + # A pattern ending with a slash ('/') will match all descendant paths if + # it is a directory but not if it is a regular file. This is equivalent to + # "{pattern}/**". Set empty last segment to a double-asterisk to include + # all descendants. + pattern_segs[-1] = "**" - # EDGE CASE: Collapse duplicate double-asterisk sequences (i.e., '**/**'). - # Iterate over the segments in reverse order and remove the duplicate double - # asterisks as we go. - for i in range(len(pattern_segs) - 1, 0, -1): - prev = pattern_segs[i-1] - seg = pattern_segs[i] - if prev == '**' and seg == '**': - del pattern_segs[i] + # EDGE CASE: Collapse duplicate double-asterisk sequences (i.e., '**/**'). + # Iterate over the segments in reverse order and remove the duplicate double + # asterisks as we go. + for i in range(len(pattern_segs) - 1, 0, -1): + prev = pattern_segs[i - 1] + seg = pattern_segs[i] + if prev == "**" and seg == "**": + del pattern_segs[i] - seg_count = len(pattern_segs) - if seg_count == 1 and pattern_segs[0] == '**': - if is_dir_pattern: - # The pattern "**/" will be normalized to "**", but it should match - # everything except for files in the root. Special case this pattern. - return (None, '/') - else: - # The pattern "**" will match every path. Special case this pattern. - return (None, '.') + seg_count = len(pattern_segs) + if seg_count == 1 and pattern_segs[0] == "**": + if is_dir_pattern: + # The pattern "**/" will be normalized to "**", but it should match + # everything except for files in the root. Special case this pattern. + return (None, "/") + else: + # The pattern "**" will match every path. Special case this pattern. + return (None, ".") - elif ( - seg_count == 2 - and pattern_segs[0] == '**' - and pattern_segs[1] == '*' - ): - # The pattern "*" will be normalized to "**/*" and will match every - # path. Special case this pattern for efficiency. - return (None, '.') + elif seg_count == 2 and pattern_segs[0] == "**" and pattern_segs[1] == "*": + # The pattern "*" will be normalized to "**/*" and will match every + # path. Special case this pattern for efficiency. + return (None, ".") - elif ( - seg_count == 3 - and pattern_segs[0] == '**' - and pattern_segs[1] == '*' - and pattern_segs[2] == '**' - ): - # The pattern "*/" will be normalized to "**/*/**" which will match every - # file not in the root directory. Special case this pattern for - # efficiency. - return (None, '/') + elif ( + seg_count == 3 + and pattern_segs[0] == "**" + and pattern_segs[1] == "*" + and pattern_segs[2] == "**" + ): + # The pattern "*/" will be normalized to "**/*/**" which will match every + # file not in the root directory. Special case this pattern for + # efficiency. + return (None, "/") - # No regular expression override, return modified pattern segments. - return (pattern_segs, None) + # No regular expression override, return modified pattern segments. + return (pattern_segs, None) - @override - @classmethod - def pattern_to_regex( - cls, - pattern: AnyStr, - ) -> tuple[Optional[AnyStr], Optional[bool]]: - """ - Convert the pattern into a regular expression. + @override + @classmethod + def pattern_to_regex( + cls, + pattern: AnyStr, + ) -> tuple[Optional[AnyStr], Optional[bool]]: + """ + Convert the pattern into a regular expression. - *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a - regular expression. + *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a + regular expression. - Returns a :class:`tuple` containing: + Returns a :class:`tuple` containing: - - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the - uncompiled regular expression. + - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the + uncompiled regular expression. - - *include* (:class:`bool` or :data:`None`) is whether matched files - should be included (:data:`True`), excluded (:data:`False`), or is a - null-operation (:data:`None`). - """ - if isinstance(pattern, str): - pattern_str = pattern - return_type = str - elif isinstance(pattern, bytes): - pattern_str = pattern.decode(_BYTES_ENCODING) - return_type = bytes - else: - raise TypeError(f"{pattern=!r} is not a unicode or byte string.") + - *include* (:class:`bool` or :data:`None`) is whether matched files + should be included (:data:`True`), excluded (:data:`False`), or is a + null-operation (:data:`None`). + """ + if isinstance(pattern, str): + pattern_str = pattern + return_type = str + elif isinstance(pattern, bytes): + pattern_str = pattern.decode(_BYTES_ENCODING) + return_type = bytes + else: + raise TypeError(f"{pattern=!r} is not a unicode or byte string.") - original_pattern = pattern_str - del pattern + original_pattern = pattern_str + del pattern - if pattern_str.endswith('\\ '): - # EDGE CASE: Spaces can be escaped with backslash. If a pattern that ends - # with a backslash is followed by a space, do not strip from the left. - pass - else: - # EDGE CASE: Leading spaces should be kept (only trailing spaces should be - # removed). - pattern_str = pattern_str.rstrip() + if pattern_str.endswith("\\ "): + # EDGE CASE: Spaces can be escaped with backslash. If a pattern that ends + # with a backslash is followed by a space, do not strip from the left. + pass + else: + # EDGE CASE: Leading spaces should be kept (only trailing spaces should be + # removed). + pattern_str = pattern_str.rstrip() - regex: Optional[str] - include: Optional[bool] + regex: Optional[str] + include: Optional[bool] - if not pattern_str: - # A blank pattern is a null-operation (neither includes nor excludes - # files). - return (None, None) + if not pattern_str: + # A blank pattern is a null-operation (neither includes nor excludes + # files). + return (None, None) - elif pattern_str.startswith('#'): - # A pattern starting with a hash ('#') serves as a comment (neither - # includes nor excludes files). Escape the hash with a backslash to match - # a literal hash (i.e., '\#'). - return (None, None) + elif pattern_str.startswith("#"): + # A pattern starting with a hash ('#') serves as a comment (neither + # includes nor excludes files). Escape the hash with a backslash to match + # a literal hash (i.e., '\#'). + return (None, None) - if pattern_str.startswith('!'): - # A pattern starting with an exclamation mark ('!') negates the pattern - # (exclude instead of include). Escape the exclamation mark with a back - # slash to match a literal exclamation mark (i.e., '\!'). - include = False - # Remove leading exclamation mark. - pattern_str = pattern_str[1:] - else: - include = True + if pattern_str.startswith("!"): + # A pattern starting with an exclamation mark ('!') negates the pattern + # (exclude instead of include). Escape the exclamation mark with a back + # slash to match a literal exclamation mark (i.e., '\!'). + include = False + # Remove leading exclamation mark. + pattern_str = pattern_str[1:] + else: + include = True - # Split pattern into segments. - pattern_segs = pattern_str.split('/') + # Split pattern into segments. + pattern_segs = pattern_str.split("/") - # Check whether the pattern is specifically a directory pattern before - # normalization. - is_dir_pattern = not pattern_segs[-1] + # Check whether the pattern is specifically a directory pattern before + # normalization. + is_dir_pattern = not pattern_segs[-1] - if pattern_str == '/': - # EDGE CASE: A single slash ('/') is not addressed by the gitignore - # documentation. Git treats it as a no-op (does not match any files). The - # straight forward interpretation is to treat it as a directory and match - # every descendant path (equivalent to '**'). Remove the directory pattern - # flag so that it is treated as '**' instead of '**/'. - is_dir_pattern = False + if pattern_str == "/": + # EDGE CASE: A single slash ('/') is not addressed by the gitignore + # documentation. Git treats it as a no-op (does not match any files). The + # straight forward interpretation is to treat it as a directory and match + # every descendant path (equivalent to '**'). Remove the directory pattern + # flag so that it is treated as '**' instead of '**/'. + is_dir_pattern = False - # Normalize pattern to make processing easier. - try: - pattern_segs, override_regex = cls.__normalize_segments( - is_dir_pattern, pattern_segs, - ) - except ValueError as e: - raise GitIgnorePatternError(( - f"Invalid git pattern: {original_pattern!r}" - )) from e # GitIgnorePatternError + # Normalize pattern to make processing easier. + try: + pattern_segs, override_regex = cls.__normalize_segments( + is_dir_pattern, + pattern_segs, + ) + except ValueError as e: + raise GitIgnorePatternError( + (f"Invalid git pattern: {original_pattern!r}") + ) from e # GitIgnorePatternError - if override_regex is not None: - # Use regex override. - regex = override_regex + if override_regex is not None: + # Use regex override. + regex = override_regex - elif pattern_segs is not None: - # Build regular expression from pattern. - try: - regex_parts = cls.__translate_segments(pattern_segs) - except ValueError as e: - raise GitIgnorePatternError(( - f"Invalid git pattern: {original_pattern!r}" - )) from e # GitIgnorePatternError + elif pattern_segs is not None: + # Build regular expression from pattern. + try: + regex_parts = cls.__translate_segments(pattern_segs) + except ValueError as e: + raise GitIgnorePatternError( + (f"Invalid git pattern: {original_pattern!r}") + ) from e # GitIgnorePatternError - regex = ''.join(regex_parts) + regex = "".join(regex_parts) - else: - assert_unreachable(( - f"{override_regex=} and {pattern_segs=} cannot both be null." - )) # assert_unreachable + else: + assert_unreachable( + (f"{override_regex=} and {pattern_segs=} cannot both be null.") + ) # assert_unreachable - # Encode regex if needed. - out_regex: AnyStr - if regex is not None and return_type is bytes: - out_regex = regex.encode(_BYTES_ENCODING) - else: - out_regex = regex + # Encode regex if needed. + out_regex: AnyStr + if regex is not None and return_type is bytes: + out_regex = regex.encode(_BYTES_ENCODING) + else: + out_regex = regex - return (out_regex, include) + return (out_regex, include) - @classmethod - def __translate_segments(cls, pattern_segs: list[str]) -> list[str]: - """ - Translate the pattern segments to regular expressions. + @classmethod + def __translate_segments(cls, pattern_segs: list[str]) -> list[str]: + """ + Translate the pattern segments to regular expressions. - *pattern_segs* (:class:`list` of :class:`str`) contains the pattern - segments. + *pattern_segs* (:class:`list` of :class:`str`) contains the pattern + segments. - Returns the regular expression parts (:class:`list` of :class:`str`). - """ - # Build regular expression from pattern. - out_parts = [] - need_slash = False - end = len(pattern_segs) - 1 - for i, seg in enumerate(pattern_segs): - if seg == '**': - if i == 0: - # A normalized pattern beginning with double-asterisks ('**') will - # match any leading path segments. - # - NOTICE: '(?:^|/)' benchmarks slower using p15 (sm=0.9382, - # hs=0.9966, re2=0.9337). - out_parts.append('^(?:.+/)?') + Returns the regular expression parts (:class:`list` of :class:`str`). + """ + # Build regular expression from pattern. + out_parts = [] + need_slash = False + end = len(pattern_segs) - 1 + for i, seg in enumerate(pattern_segs): + if seg == "**": + if i == 0: + # A normalized pattern beginning with double-asterisks ('**') will + # match any leading path segments. + # - NOTICE: '(?:^|/)' benchmarks slower using p15 (sm=0.9382, + # hs=0.9966, re2=0.9337). + out_parts.append("^(?:.+/)?") - elif i < end: - # A pattern with inner double-asterisks ('**') will match multiple (or - # zero) inner path segments. - out_parts.append('(?:/.+)?') - need_slash = True + elif i < end: + # A pattern with inner double-asterisks ('**') will match multiple (or + # zero) inner path segments. + out_parts.append("(?:/.+)?") + need_slash = True - else: - assert i == end, (i, end) - # A normalized pattern ending with double-asterisks ('**') will match - # any trailing path segments. - out_parts.append('/') + else: + assert i == end, (i, end) + # A normalized pattern ending with double-asterisks ('**') will match + # any trailing path segments. + out_parts.append("/") - else: - # Match path segment. - if i == 0: - # Anchor to root directory. - out_parts.append('^') + else: + # Match path segment. + if i == 0: + # Anchor to root directory. + out_parts.append("^") - if need_slash: - out_parts.append('/') + if need_slash: + out_parts.append("/") - if seg == '*': - # Match whole path segment. - out_parts.append('[^/]+') + if seg == "*": + # Match whole path segment. + out_parts.append("[^/]+") - else: - # Match segment glob pattern. - out_parts.append(cls._translate_segment_glob(seg)) + else: + # Match segment glob pattern. + out_parts.append(cls._translate_segment_glob(seg)) - if i == end: - if seg == '*': - # A pattern ending with an asterisk ('*') will match a file or - # directory (without matching descendant paths). E.g., "foo/*" - # matches "foo/test.json", "foo/bar/", but not "foo/bar/hello.c". - out_parts.append('/?$') + if i == end: + if seg == "*": + # A pattern ending with an asterisk ('*') will match a file or + # directory (without matching descendant paths). E.g., "foo/*" + # matches "foo/test.json", "foo/bar/", but not "foo/bar/hello.c". + out_parts.append("/?$") - else: - # A pattern ending without a slash ('/') will match a file or a - # directory (with paths underneath it). E.g., "foo" matches "foo", - # "foo/bar", "foo/bar/baz", etc. - out_parts.append('(?:/|$)') + else: + # A pattern ending without a slash ('/') will match a file or a + # directory (with paths underneath it). E.g., "foo" matches "foo", + # "foo/bar", "foo/bar/baz", etc. + out_parts.append("(?:/|$)") - need_slash = True + need_slash = True - return out_parts + return out_parts # Register GitIgnoreBasicPattern as "gitignore". -util.register_pattern('gitignore', GitIgnoreBasicPattern) +util.register_pattern("gitignore", GitIgnoreBasicPattern) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/spec.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/spec.py index ee77457..4ef110d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/spec.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitignore/spec.py @@ -8,328 +8,322 @@ appears to contradict the documentation. This is used by .. _`gitignore`: https://git-scm.com/docs/gitignore """ -from typing import ( - Optional) # Replaced by `X | None` in 3.10. +from typing import Optional # Replaced by `X | None` in 3.10. from pathspec._typing import ( - AnyStr, # Removed in 3.18. - assert_unreachable, - override) # Added in 3.12. + AnyStr, # Removed in 3.18. + assert_unreachable, + override, +) # Added in 3.12. -from .base import ( - GitIgnorePatternError, - _BYTES_ENCODING, - _GitIgnoreBasePattern) +from .base import GitIgnorePatternError, _BYTES_ENCODING, _GitIgnoreBasePattern -_DIR_MARK = 'ps_d' +_DIR_MARK = "ps_d" """ The regex group name for the directory marker. This is only used by :class:`GitIgnoreSpec`. """ -_DIR_MARK_CG = f'(?P<{_DIR_MARK}>/)' +_DIR_MARK_CG = f"(?P<{_DIR_MARK}>/)" """ This regular expression matches the directory marker. """ -_DIR_MARK_OPT = f'(?:{_DIR_MARK_CG}|$)' +_DIR_MARK_OPT = f"(?:{_DIR_MARK_CG}|$)" """ This regular expression matches the optional directory marker and sub-path. """ class GitIgnoreSpecPattern(_GitIgnoreBasePattern): - """ - The :class:`GitIgnoreSpecPattern` class represents a compiled gitignore - pattern with special handling for edge-cases to replicate Git's behavior. + """ + The :class:`GitIgnoreSpecPattern` class represents a compiled gitignore + pattern with special handling for edge-cases to replicate Git's behavior. - This is registered under the deprecated name "gitwildmatch" for backward - compatibility with v0.12. The registered name will be removed in a future - version. - """ + This is registered under the deprecated name "gitwildmatch" for backward + compatibility with v0.12. The registered name will be removed in a future + version. + """ - # Keep the dict-less class hierarchy. - __slots__ = () + # Keep the dict-less class hierarchy. + __slots__ = () - @staticmethod - def __normalize_segments( - is_dir_pattern: bool, - pattern_segs: list[str], - ) -> tuple[Optional[list[str]], Optional[str]]: - """ - Normalize the pattern segments to make processing easier. + @staticmethod + def __normalize_segments( + is_dir_pattern: bool, + pattern_segs: list[str], + ) -> tuple[Optional[list[str]], Optional[str]]: + """ + Normalize the pattern segments to make processing easier. - *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory - pattern (i.e., ends with a slash '/'). + *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory + pattern (i.e., ends with a slash '/'). - *pattern_segs* (:class:`list` of :class:`str`) contains the pattern - segments. This may be modified in place. + *pattern_segs* (:class:`list` of :class:`str`) contains the pattern + segments. This may be modified in place. - Returns a :class:`tuple` containing either: + Returns a :class:`tuple` containing either: - - The normalized segments (:class:`list` of :class:`str`; or :data:`None`). + - The normalized segments (:class:`list` of :class:`str`; or :data:`None`). - - The regular expression override (:class:`str` or :data:`None`). - """ - if not pattern_segs[0]: - # A pattern beginning with a slash ('/') should match relative to the root - # directory. Remove the empty first segment to make the pattern relative - # to root. - del pattern_segs[0] + - The regular expression override (:class:`str` or :data:`None`). + """ + if not pattern_segs[0]: + # A pattern beginning with a slash ('/') should match relative to the root + # directory. Remove the empty first segment to make the pattern relative + # to root. + del pattern_segs[0] - elif len(pattern_segs) == 1 or (len(pattern_segs) == 2 and not pattern_segs[1]): - # A single segment pattern with or without a trailing slash ('/') will - # match any descendant path. This is equivalent to "**/{pattern}". Prepend - # double-asterisk segment to make pattern relative to root. - if pattern_segs[0] != '**': - pattern_segs.insert(0, '**') + elif len(pattern_segs) == 1 or (len(pattern_segs) == 2 and not pattern_segs[1]): + # A single segment pattern with or without a trailing slash ('/') will + # match any descendant path. This is equivalent to "**/{pattern}". Prepend + # double-asterisk segment to make pattern relative to root. + if pattern_segs[0] != "**": + pattern_segs.insert(0, "**") - else: - # A pattern without a beginning slash ('/') but contains at least one - # prepended directory (e.g., "dir/{pattern}") should match relative to the - # root directory. No segment modification is needed. - pass + else: + # A pattern without a beginning slash ('/') but contains at least one + # prepended directory (e.g., "dir/{pattern}") should match relative to the + # root directory. No segment modification is needed. + pass - if not pattern_segs: - # After normalization, we end up with no pattern at all. This must be - # because the pattern is invalid. - raise ValueError("Pattern normalized to nothing.") + if not pattern_segs: + # After normalization, we end up with no pattern at all. This must be + # because the pattern is invalid. + raise ValueError("Pattern normalized to nothing.") - if not pattern_segs[-1]: - # A pattern ending with a slash ('/') will match all descendant paths if - # it is a directory but not if it is a regular file. This is equivalent to - # "{pattern}/**". Set empty last segment to a double-asterisk to include - # all descendants. - pattern_segs[-1] = '**' + if not pattern_segs[-1]: + # A pattern ending with a slash ('/') will match all descendant paths if + # it is a directory but not if it is a regular file. This is equivalent to + # "{pattern}/**". Set empty last segment to a double-asterisk to include + # all descendants. + pattern_segs[-1] = "**" - # EDGE CASE: Collapse duplicate double-asterisk sequences (i.e., '**/**'). - # Iterate over the segments in reverse order and remove the duplicate double - # asterisks as we go. - for i in range(len(pattern_segs) - 1, 0, -1): - prev = pattern_segs[i-1] - seg = pattern_segs[i] - if prev == '**' and seg == '**': - del pattern_segs[i] + # EDGE CASE: Collapse duplicate double-asterisk sequences (i.e., '**/**'). + # Iterate over the segments in reverse order and remove the duplicate double + # asterisks as we go. + for i in range(len(pattern_segs) - 1, 0, -1): + prev = pattern_segs[i - 1] + seg = pattern_segs[i] + if prev == "**" and seg == "**": + del pattern_segs[i] - seg_count = len(pattern_segs) - if seg_count == 1 and pattern_segs[0] == '**': - if is_dir_pattern: - # The pattern "**/" will be normalized to "**", but it should match - # everything except for files in the root. Special case this pattern. - return (None, _DIR_MARK_CG) - else: - # The pattern "**" will match every path. Special case this pattern. - return (None, '.') + seg_count = len(pattern_segs) + if seg_count == 1 and pattern_segs[0] == "**": + if is_dir_pattern: + # The pattern "**/" will be normalized to "**", but it should match + # everything except for files in the root. Special case this pattern. + return (None, _DIR_MARK_CG) + else: + # The pattern "**" will match every path. Special case this pattern. + return (None, ".") - elif ( - seg_count == 2 - and pattern_segs[0] == '**' - and pattern_segs[1] == '*' - ): - # The pattern "*" will be normalized to "**/*" and will match every - # path. Special case this pattern for efficiency. - return (None, '.') + elif seg_count == 2 and pattern_segs[0] == "**" and pattern_segs[1] == "*": + # The pattern "*" will be normalized to "**/*" and will match every + # path. Special case this pattern for efficiency. + return (None, ".") - elif ( - seg_count == 3 - and pattern_segs[0] == '**' - and pattern_segs[1] == '*' - and pattern_segs[2] == '**' - ): - # The pattern "*/" will be normalized to "**/*/**" which will match every - # file not in the root directory. Special case this pattern for - # efficiency. - if is_dir_pattern: - return (None, _DIR_MARK_CG) - else: - return (None, '/') + elif ( + seg_count == 3 + and pattern_segs[0] == "**" + and pattern_segs[1] == "*" + and pattern_segs[2] == "**" + ): + # The pattern "*/" will be normalized to "**/*/**" which will match every + # file not in the root directory. Special case this pattern for + # efficiency. + if is_dir_pattern: + return (None, _DIR_MARK_CG) + else: + return (None, "/") - # No regular expression override, return modified pattern segments. - return (pattern_segs, None) + # No regular expression override, return modified pattern segments. + return (pattern_segs, None) - @override - @classmethod - def pattern_to_regex( - cls, - pattern: AnyStr, - ) -> tuple[Optional[AnyStr], Optional[bool]]: - """ - Convert the pattern into a regular expression. + @override + @classmethod + def pattern_to_regex( + cls, + pattern: AnyStr, + ) -> tuple[Optional[AnyStr], Optional[bool]]: + """ + Convert the pattern into a regular expression. - *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a - regular expression. + *pattern* (:class:`str` or :class:`bytes`) is the pattern to convert into a + regular expression. - Returns a :class:`tuple` containing: + Returns a :class:`tuple` containing: - - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the - uncompiled regular expression. + - *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the + uncompiled regular expression. - - *include* (:class:`bool` or :data:`None`) is whether matched files - should be included (:data:`True`), excluded (:data:`False`), or is a - null-operation (:data:`None`). - """ - if isinstance(pattern, str): - pattern_str = pattern - return_type = str - elif isinstance(pattern, bytes): - pattern_str = pattern.decode(_BYTES_ENCODING) - return_type = bytes - else: - raise TypeError(f"{pattern=!r} is not a unicode or byte string.") + - *include* (:class:`bool` or :data:`None`) is whether matched files + should be included (:data:`True`), excluded (:data:`False`), or is a + null-operation (:data:`None`). + """ + if isinstance(pattern, str): + pattern_str = pattern + return_type = str + elif isinstance(pattern, bytes): + pattern_str = pattern.decode(_BYTES_ENCODING) + return_type = bytes + else: + raise TypeError(f"{pattern=!r} is not a unicode or byte string.") - original_pattern = pattern_str - del pattern + original_pattern = pattern_str + del pattern - if pattern_str.endswith('\\ '): - # EDGE CASE: Spaces can be escaped with backslash. If a pattern that ends - # with a backslash is followed by a space, do not strip from the left. - pass - else: - # EDGE CASE: Leading spaces should be kept (only trailing spaces should be - # removed). Git does not remove leading spaces. - pattern_str = pattern_str.rstrip() + if pattern_str.endswith("\\ "): + # EDGE CASE: Spaces can be escaped with backslash. If a pattern that ends + # with a backslash is followed by a space, do not strip from the left. + pass + else: + # EDGE CASE: Leading spaces should be kept (only trailing spaces should be + # removed). Git does not remove leading spaces. + pattern_str = pattern_str.rstrip() - regex: Optional[str] - include: Optional[bool] + regex: Optional[str] + include: Optional[bool] - if not pattern_str: - # A blank pattern is a null-operation (neither includes nor excludes - # files). - return (None, None) + if not pattern_str: + # A blank pattern is a null-operation (neither includes nor excludes + # files). + return (None, None) - elif pattern_str.startswith('#'): - # A pattern starting with a hash ('#') serves as a comment (neither - # includes nor excludes files). Escape the hash with a backslash to match - # a literal hash (i.e., '\#'). - return (None, None) + elif pattern_str.startswith("#"): + # A pattern starting with a hash ('#') serves as a comment (neither + # includes nor excludes files). Escape the hash with a backslash to match + # a literal hash (i.e., '\#'). + return (None, None) - elif pattern_str == '/': - # EDGE CASE: According to `git check-ignore` (v2.4.1), a single '/' does - # not match any file. - return (None, None) + elif pattern_str == "/": + # EDGE CASE: According to `git check-ignore` (v2.4.1), a single '/' does + # not match any file. + return (None, None) - if pattern_str.startswith('!'): - # A pattern starting with an exclamation mark ('!') negates the pattern - # (exclude instead of include). Escape the exclamation mark with a back - # slash to match a literal exclamation mark (i.e., '\!'). - include = False - # Remove leading exclamation mark. - pattern_str = pattern_str[1:] - else: - include = True + if pattern_str.startswith("!"): + # A pattern starting with an exclamation mark ('!') negates the pattern + # (exclude instead of include). Escape the exclamation mark with a back + # slash to match a literal exclamation mark (i.e., '\!'). + include = False + # Remove leading exclamation mark. + pattern_str = pattern_str[1:] + else: + include = True - # Split pattern into segments. - pattern_segs = pattern_str.split('/') + # Split pattern into segments. + pattern_segs = pattern_str.split("/") - # Check whether the pattern is specifically a directory pattern before - # normalization. - is_dir_pattern = not pattern_segs[-1] + # Check whether the pattern is specifically a directory pattern before + # normalization. + is_dir_pattern = not pattern_segs[-1] - # Normalize pattern to make processing easier. - try: - pattern_segs, override_regex = cls.__normalize_segments( - is_dir_pattern, pattern_segs, - ) - except ValueError as e: - raise GitIgnorePatternError(( - f"Invalid git pattern: {original_pattern!r}" - )) from e # GitIgnorePatternError + # Normalize pattern to make processing easier. + try: + pattern_segs, override_regex = cls.__normalize_segments( + is_dir_pattern, + pattern_segs, + ) + except ValueError as e: + raise GitIgnorePatternError( + (f"Invalid git pattern: {original_pattern!r}") + ) from e # GitIgnorePatternError - if override_regex is not None: - # Use regex override. - regex = override_regex + if override_regex is not None: + # Use regex override. + regex = override_regex - elif pattern_segs is not None: - # Build regular expression from pattern. - try: - regex_parts = cls.__translate_segments(is_dir_pattern, pattern_segs) - except ValueError as e: - raise GitIgnorePatternError(( - f"Invalid git pattern: {original_pattern!r}" - )) from e # GitIgnorePatternError + elif pattern_segs is not None: + # Build regular expression from pattern. + try: + regex_parts = cls.__translate_segments(is_dir_pattern, pattern_segs) + except ValueError as e: + raise GitIgnorePatternError( + (f"Invalid git pattern: {original_pattern!r}") + ) from e # GitIgnorePatternError - regex = ''.join(regex_parts) + regex = "".join(regex_parts) - else: - assert_unreachable(( - f"{override_regex=} and {pattern_segs=} cannot both be null." - )) # assert_unreachable + else: + assert_unreachable( + (f"{override_regex=} and {pattern_segs=} cannot both be null.") + ) # assert_unreachable - # Encode regex if needed. - out_regex: AnyStr - if regex is not None and return_type is bytes: - out_regex = regex.encode(_BYTES_ENCODING) - else: - out_regex = regex + # Encode regex if needed. + out_regex: AnyStr + if regex is not None and return_type is bytes: + out_regex = regex.encode(_BYTES_ENCODING) + else: + out_regex = regex - return (out_regex, include) + return (out_regex, include) - @classmethod - def __translate_segments( - cls, - is_dir_pattern: bool, - pattern_segs: list[str], - ) -> list[str]: - """ - Translate the pattern segments to regular expressions. + @classmethod + def __translate_segments( + cls, + is_dir_pattern: bool, + pattern_segs: list[str], + ) -> list[str]: + """ + Translate the pattern segments to regular expressions. - *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory - pattern (i.e., ends with a slash '/'). + *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory + pattern (i.e., ends with a slash '/'). - *pattern_segs* (:class:`list` of :class:`str`) contains the pattern - segments. + *pattern_segs* (:class:`list` of :class:`str`) contains the pattern + segments. - Returns the regular expression parts (:class:`list` of :class:`str`). - """ - # Build regular expression from pattern. - out_parts = [] - need_slash = False - end = len(pattern_segs) - 1 - for i, seg in enumerate(pattern_segs): - if seg == '**': - if i == 0: - # A normalized pattern beginning with double-asterisks ('**') will - # match any leading path segments. - out_parts.append('^(?:.+/)?') + Returns the regular expression parts (:class:`list` of :class:`str`). + """ + # Build regular expression from pattern. + out_parts = [] + need_slash = False + end = len(pattern_segs) - 1 + for i, seg in enumerate(pattern_segs): + if seg == "**": + if i == 0: + # A normalized pattern beginning with double-asterisks ('**') will + # match any leading path segments. + out_parts.append("^(?:.+/)?") - elif i < end: - # A pattern with inner double-asterisks ('**') will match multiple (or - # zero) inner path segments. - out_parts.append('(?:/.+)?') - need_slash = True + elif i < end: + # A pattern with inner double-asterisks ('**') will match multiple (or + # zero) inner path segments. + out_parts.append("(?:/.+)?") + need_slash = True - else: - assert i == end, (i, end) - # A normalized pattern ending with double-asterisks ('**') will match - # any trailing path segments. - if is_dir_pattern: - out_parts.append(_DIR_MARK_CG) - else: - out_parts.append('/') + else: + assert i == end, (i, end) + # A normalized pattern ending with double-asterisks ('**') will match + # any trailing path segments. + if is_dir_pattern: + out_parts.append(_DIR_MARK_CG) + else: + out_parts.append("/") - else: - # Match path segment. - if i == 0: - # Anchor to root directory. - out_parts.append('^') + else: + # Match path segment. + if i == 0: + # Anchor to root directory. + out_parts.append("^") - if need_slash: - out_parts.append('/') + if need_slash: + out_parts.append("/") - if seg == '*': - # Match whole path segment. - out_parts.append('[^/]+') + if seg == "*": + # Match whole path segment. + out_parts.append("[^/]+") - else: - # Match segment glob pattern. - out_parts.append(cls._translate_segment_glob(seg)) + else: + # Match segment glob pattern. + out_parts.append(cls._translate_segment_glob(seg)) - if i == end: - # A pattern ending without a slash ('/') will match a file or a - # directory (with paths underneath it). E.g., "foo" matches "foo", - # "foo/bar", "foo/bar/baz", etc. - out_parts.append(_DIR_MARK_OPT) + if i == end: + # A pattern ending without a slash ('/') will match a file or a + # directory (with paths underneath it). E.g., "foo" matches "foo", + # "foo/bar", "foo/bar/baz", etc. + out_parts.append(_DIR_MARK_OPT) - need_slash = True + need_slash = True - return out_parts + return out_parts diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitwildmatch.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitwildmatch.py index b44d961..d62206b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitwildmatch.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/patterns/gitwildmatch.py @@ -1,52 +1,52 @@ """ .. version-deprecated: 1.0.0 - This module is superseded by :module:`pathspec.patterns.gitignore`. + This module is superseded by :module:`pathspec.patterns.gitignore`. """ from pathspec import util -from pathspec._typing import ( - deprecated, # Added in 3.13. - override) # Added in 3.12. +from pathspec._typing import deprecated, override # Added in 3.13. # Added in 3.12. -from .gitignore.spec import ( - GitIgnoreSpecPattern) +from .gitignore.spec import GitIgnoreSpecPattern # DEPRECATED: Deprecated since version 1.0.0. Expose GitWildMatchPatternError # in this module for backward compatibility. -from .gitignore import ( - GitIgnorePatternError as GitWildMatchPatternError) +from .gitignore import GitIgnorePatternError as GitWildMatchPatternError class GitWildMatchPattern(GitIgnoreSpecPattern): - """ - .. version-deprecated:: 1.0.0 - This class is superseded by :class:`GitIgnoreSpecPattern` and - :class:`~pathspec.patterns.gitignore.basic.GitIgnoreBasicPattern`. - """ + """ + .. version-deprecated:: 1.0.0 + This class is superseded by :class:`GitIgnoreSpecPattern` and + :class:`~pathspec.patterns.gitignore.basic.GitIgnoreBasicPattern`. + """ - @deprecated(( - "GitWildMatchPattern ('gitwildmatch') is deprecated. Use 'gitignore' for " - "GitIgnoreBasicPattern or GitIgnoreSpecPattern instead." - )) - def __init__(self, *args, **kw) -> None: - """ - Warn about deprecation. - """ - super().__init__(*args, **kw) + @deprecated( + ( + "GitWildMatchPattern ('gitwildmatch') is deprecated. Use 'gitignore' for " + "GitIgnoreBasicPattern or GitIgnoreSpecPattern instead." + ) + ) + def __init__(self, *args, **kw) -> None: + """ + Warn about deprecation. + """ + super().__init__(*args, **kw) - @override - @classmethod - @deprecated(( - "GitWildMatchPattern ('gitwildmatch') is deprecated. Use 'gitignore' for " - "GitIgnoreBasicPattern or GitIgnoreSpecPattern instead." - )) - def pattern_to_regex(cls, *args, **kw): - """ - Warn about deprecation. - """ - return super().pattern_to_regex(*args, **kw) + @override + @classmethod + @deprecated( + ( + "GitWildMatchPattern ('gitwildmatch') is deprecated. Use 'gitignore' for " + "GitIgnoreBasicPattern or GitIgnoreSpecPattern instead." + ) + ) + def pattern_to_regex(cls, *args, **kw): + """ + Warn about deprecation. + """ + return super().pattern_to_regex(*args, **kw) # DEPRECATED: Deprecated since version 1.0.0. Register GitWildMatchPattern as # "gitwildmatch" for backward compatibility. -util.register_pattern('gitwildmatch', GitWildMatchPattern) +util.register_pattern("gitwildmatch", GitWildMatchPattern) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pathspec/util.py b/PPE2/.venv/lib/python3.12/site-packages/pathspec/util.py index ea2dbee..a76dee1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pathspec/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pathspec/util.py @@ -7,26 +7,19 @@ import os.path import pathlib import posixpath import stat -from collections.abc import ( - Collection, - Iterable, - Iterator, - Sequence) -from dataclasses import ( - dataclass) +from collections.abc import Collection, Iterable, Iterator, Sequence +from dataclasses import dataclass from typing import ( - Any, - Callable, # Replaced by `collections.abc.Callable` in 3.9.2. - Generic, - Optional, # Replaced by `X | None` in 3.10. - TypeVar, - Union) # Replaced by `X | Y` in 3.10. + Any, + Callable, # Replaced by `collections.abc.Callable` in 3.9.2. + Generic, + Optional, # Replaced by `X | None` in 3.10. + TypeVar, + Union, +) # Replaced by `X | Y` in 3.10. -from .pattern import ( - Pattern) -from ._typing import ( - AnyStr, # Removed in 3.18. - deprecated) # Added in 3.13. +from .pattern import Pattern +from ._typing import AnyStr, deprecated # Removed in 3.18. # Added in 3.13. StrPath = Union[str, os.PathLike[str]] @@ -36,9 +29,7 @@ Type variable for :class:`str` or :class:`os.PathLike`. """ NORMALIZE_PATH_SEPS = [ - __sep - for __sep in [os.sep, os.altsep] - if __sep and __sep != posixpath.sep + __sep for __sep in [os.sep, os.altsep] if __sep and __sep != posixpath.sep ] """ *NORMALIZE_PATH_SEPS* (:class:`list` of :class:`str`) contains the path @@ -55,690 +46,706 @@ registered pattern factory (:class:`~collections.abc.Callable`). def append_dir_sep(path: pathlib.Path) -> str: - """ - Appends the path separator to the path if the path is a directory. This can be - used to aid in distinguishing between directories and files on the file-system - by relying on the presence of a trailing path separator. + """ + Appends the path separator to the path if the path is a directory. This can be + used to aid in distinguishing between directories and files on the file-system + by relying on the presence of a trailing path separator. - *path* (:class:`pathlib.Path`) is the path to use. + *path* (:class:`pathlib.Path`) is the path to use. - Returns the path (:class:`str`). - """ - str_path = str(path) - if path.is_dir(): - str_path += os.sep + Returns the path (:class:`str`). + """ + str_path = str(path) + if path.is_dir(): + str_path += os.sep - return str_path + return str_path def check_match_file( - patterns: Iterable[tuple[int, Pattern]], - file: str, - is_reversed: Optional[bool] = None, + patterns: Iterable[tuple[int, Pattern]], + file: str, + is_reversed: Optional[bool] = None, ) -> tuple[Optional[bool], Optional[int]]: - """ - Check the file against the patterns. + """ + Check the file against the patterns. - *patterns* (:class:`~collections.abc.Iterable`) yields each indexed pattern - (:class:`tuple`) which contains the pattern index (:class:`int`) and actua - pattern (:class:`.Pattern`). + *patterns* (:class:`~collections.abc.Iterable`) yields each indexed pattern + (:class:`tuple`) which contains the pattern index (:class:`int`) and actua + pattern (:class:`.Pattern`). - *file* (:class:`str`) is the normalized file path to be matched against - *patterns*. + *file* (:class:`str`) is the normalized file path to be matched against + *patterns*. - *is_reversed* (:class:`bool` or :data:`None`) is whether the order of the - patterns has been reversed. Default is :data:`None` for :data:`False`. - Reversing the order of the patterns is an optimization. + *is_reversed* (:class:`bool` or :data:`None`) is whether the order of the + patterns has been reversed. Default is :data:`None` for :data:`False`. + Reversing the order of the patterns is an optimization. - Returns a :class:`tuple` containing whether to include *file* (:class:`bool` - or :data:`None`), and the index of the last matched pattern (:class:`int` or - :data:`None`). - """ - if is_reversed: - # Check patterns in reverse order. The first pattern that matches takes - # precedence. - for index, pattern in patterns: - if pattern.include is not None and pattern.match_file(file) is not None: - return pattern.include, index + Returns a :class:`tuple` containing whether to include *file* (:class:`bool` + or :data:`None`), and the index of the last matched pattern (:class:`int` or + :data:`None`). + """ + if is_reversed: + # Check patterns in reverse order. The first pattern that matches takes + # precedence. + for index, pattern in patterns: + if pattern.include is not None and pattern.match_file(file) is not None: + return pattern.include, index - return None, None + return None, None - else: - # Check all patterns. The last pattern that matches takes precedence. - out_include: Optional[bool] = None - out_index: Optional[int] = None - for index, pattern in patterns: - if pattern.include is not None and pattern.match_file(file) is not None: - out_include = pattern.include - out_index = index + else: + # Check all patterns. The last pattern that matches takes precedence. + out_include: Optional[bool] = None + out_index: Optional[int] = None + for index, pattern in patterns: + if pattern.include is not None and pattern.match_file(file) is not None: + out_include = pattern.include + out_index = index - return out_include, out_index + return out_include, out_index def detailed_match_files( - patterns: Iterable[Pattern], - files: Iterable[str], - all_matches: Optional[bool] = None, -) -> dict[str, 'MatchDetail']: - """ - Matches the files to the patterns, and returns which patterns matched the - files. + patterns: Iterable[Pattern], + files: Iterable[str], + all_matches: Optional[bool] = None, +) -> dict[str, "MatchDetail"]: + """ + Matches the files to the patterns, and returns which patterns matched the + files. - *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains - the patterns to use. + *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains + the patterns to use. - *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains the - normalized file paths to be matched against *patterns*. + *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains the + normalized file paths to be matched against *patterns*. - *all_matches* (:class:`bool` or :data:`None`) is whether to return all matches - patterns (:data:`True`), or only the last matched pattern (:data:`False`). - Default is :data:`None` for :data:`False`. + *all_matches* (:class:`bool` or :data:`None`) is whether to return all matches + patterns (:data:`True`), or only the last matched pattern (:data:`False`). + Default is :data:`None` for :data:`False`. - Returns the matched files (:class:`dict`) which maps each matched file - (:class:`str`) to the patterns that matched in order (:class:`.MatchDetail`). - """ - all_files = files if isinstance(files, Collection) else list(files) - return_files = {} - for pattern in patterns: - if pattern.include is not None: - result_files = pattern.match(all_files) # TODO: Replace with `.match_file()`. - if pattern.include: - # Add files and record pattern. - for result_file in result_files: - if result_file in return_files: - if all_matches: - return_files[result_file].patterns.append(pattern) - else: - return_files[result_file].patterns[0] = pattern - else: - return_files[result_file] = MatchDetail([pattern]) + Returns the matched files (:class:`dict`) which maps each matched file + (:class:`str`) to the patterns that matched in order (:class:`.MatchDetail`). + """ + all_files = files if isinstance(files, Collection) else list(files) + return_files = {} + for pattern in patterns: + if pattern.include is not None: + result_files = pattern.match( + all_files + ) # TODO: Replace with `.match_file()`. + if pattern.include: + # Add files and record pattern. + for result_file in result_files: + if result_file in return_files: + if all_matches: + return_files[result_file].patterns.append(pattern) + else: + return_files[result_file].patterns[0] = pattern + else: + return_files[result_file] = MatchDetail([pattern]) - else: - # Remove files. - for file in result_files: - del return_files[file] + else: + # Remove files. + for file in result_files: + del return_files[file] - return return_files + return return_files def _filter_check_patterns( - patterns: Iterable[Pattern], + patterns: Iterable[Pattern], ) -> list[tuple[int, Pattern]]: - """ - Filters out null-patterns. + """ + Filters out null-patterns. - *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains - the patterns. + *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains + the patterns. - Returns a :class:`list` containing each indexed pattern (:class:`tuple`) which - contains the pattern index (:class:`int`) and the actual pattern - (:class:`.Pattern`). - """ - return [ - (__index, __pat) - for __index, __pat in enumerate(patterns) - if __pat.include is not None - ] + Returns a :class:`list` containing each indexed pattern (:class:`tuple`) which + contains the pattern index (:class:`int`) and the actual pattern + (:class:`.Pattern`). + """ + return [ + (__index, __pat) + for __index, __pat in enumerate(patterns) + if __pat.include is not None + ] def _is_iterable(value: Any) -> bool: - """ - Check whether the value is an iterable (excludes strings). + """ + Check whether the value is an iterable (excludes strings). - *value* is the value to check, + *value* is the value to check, - Returns whether *value* is an iterable (:class:`bool`). - """ - return isinstance(value, Iterable) and not isinstance(value, (str, bytes)) + Returns whether *value* is an iterable (:class:`bool`). + """ + return isinstance(value, Iterable) and not isinstance(value, (str, bytes)) -@deprecated(( - "pathspec.util.iter_tree() is deprecated. Use iter_tree_files() instead." -)) +@deprecated(("pathspec.util.iter_tree() is deprecated. Use iter_tree_files() instead.")) def iter_tree(root, on_error=None, follow_links=None): - """ - .. version-deprecated:: 0.10.0 - This is an alias for the :func:`.iter_tree_files` function. - """ - return iter_tree_files(root, on_error=on_error, follow_links=follow_links) + """ + .. version-deprecated:: 0.10.0 + This is an alias for the :func:`.iter_tree_files` function. + """ + return iter_tree_files(root, on_error=on_error, follow_links=follow_links) def iter_tree_entries( - root: StrPath, - on_error: Optional[Callable[[OSError], None]] = None, - follow_links: Optional[bool] = None, -) -> Iterator['TreeEntry']: - """ - Walks the specified directory for all files and directories. + root: StrPath, + on_error: Optional[Callable[[OSError], None]] = None, + follow_links: Optional[bool] = None, +) -> Iterator["TreeEntry"]: + """ + Walks the specified directory for all files and directories. - *root* (:class:`str` or :class:`os.PathLike`) is the root directory to search. + *root* (:class:`str` or :class:`os.PathLike`) is the root directory to search. - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is - the error handler for file-system exceptions. It will be called with the - exception (:exc:`OSError`). Reraise the exception to abort the walk. Default - is :data:`None` to ignore file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is + the error handler for file-system exceptions. It will be called with the + exception (:exc:`OSError`). Reraise the exception to abort the walk. Default + is :data:`None` to ignore file-system exceptions. - *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk - symbolic links that resolve to directories. Default is :data:`None` for - :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk + symbolic links that resolve to directories. Default is :data:`None` for + :data:`True`. - Raises :exc:`.RecursionError` if recursion is detected. + Raises :exc:`.RecursionError` if recursion is detected. - Returns an :class:`~collections.abc.Iterator` yielding each file or directory - entry (:class:`.TreeEntry`) relative to *root*. - """ - if on_error is not None and not callable(on_error): - raise TypeError(f"on_error:{on_error!r} is not callable.") + Returns an :class:`~collections.abc.Iterator` yielding each file or directory + entry (:class:`.TreeEntry`) relative to *root*. + """ + if on_error is not None and not callable(on_error): + raise TypeError(f"on_error:{on_error!r} is not callable.") - if follow_links is None: - follow_links = True + if follow_links is None: + follow_links = True - yield from _iter_tree_entries_next(os.path.abspath(root), '', {}, on_error, follow_links) + yield from _iter_tree_entries_next( + os.path.abspath(root), "", {}, on_error, follow_links + ) def _iter_tree_entries_next( - root_full: str, - dir_rel: str, - memo: dict[str, str], - on_error: Callable[[OSError], None], - follow_links: bool, -) -> Iterator['TreeEntry']: - """ - Scan the directory for all descendant files. + root_full: str, + dir_rel: str, + memo: dict[str, str], + on_error: Callable[[OSError], None], + follow_links: bool, +) -> Iterator["TreeEntry"]: + """ + Scan the directory for all descendant files. - *root_full* (:class:`str`) the absolute path to the root directory. + *root_full* (:class:`str`) the absolute path to the root directory. - *dir_rel* (:class:`str`) the path to the directory to scan relative to - *root_full*. + *dir_rel* (:class:`str`) the path to the directory to scan relative to + *root_full*. - *memo* (:class:`dict`) keeps track of ancestor directories encountered. Maps - each ancestor real path (:class:`str`) to relative path (:class:`str`). + *memo* (:class:`dict`) keeps track of ancestor directories encountered. Maps + each ancestor real path (:class:`str`) to relative path (:class:`str`). - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is - the error handler for file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is + the error handler for file-system exceptions. - *follow_links* (:class:`bool`) is whether to walk symbolic links that resolve - to directories. + *follow_links* (:class:`bool`) is whether to walk symbolic links that resolve + to directories. - Yields each entry (:class:`.TreeEntry`). - """ - dir_full = os.path.join(root_full, dir_rel) - dir_real = os.path.realpath(dir_full) + Yields each entry (:class:`.TreeEntry`). + """ + dir_full = os.path.join(root_full, dir_rel) + dir_real = os.path.realpath(dir_full) - # Remember each encountered ancestor directory and its canonical (real) path. - # If a canonical path is encountered more than once, recursion has occurred. - if dir_real not in memo: - memo[dir_real] = dir_rel - else: - raise RecursionError(real_path=dir_real, first_path=memo[dir_real], second_path=dir_rel) + # Remember each encountered ancestor directory and its canonical (real) path. + # If a canonical path is encountered more than once, recursion has occurred. + if dir_real not in memo: + memo[dir_real] = dir_rel + else: + raise RecursionError( + real_path=dir_real, first_path=memo[dir_real], second_path=dir_rel + ) - with os.scandir(dir_full) as scan_iter: - node_ent: os.DirEntry - for node_ent in scan_iter: - node_rel = os.path.join(dir_rel, node_ent.name) + with os.scandir(dir_full) as scan_iter: + node_ent: os.DirEntry + for node_ent in scan_iter: + node_rel = os.path.join(dir_rel, node_ent.name) - # Inspect child node. - try: - node_lstat = node_ent.stat(follow_symlinks=False) - except OSError as e: - if on_error is not None: - on_error(e) - continue + # Inspect child node. + try: + node_lstat = node_ent.stat(follow_symlinks=False) + except OSError as e: + if on_error is not None: + on_error(e) + continue - if node_ent.is_symlink(): - # Child node is a link, inspect the target node. - try: - node_stat = node_ent.stat() - except OSError as e: - if on_error is not None: - on_error(e) - continue - else: - node_stat = node_lstat + if node_ent.is_symlink(): + # Child node is a link, inspect the target node. + try: + node_stat = node_ent.stat() + except OSError as e: + if on_error is not None: + on_error(e) + continue + else: + node_stat = node_lstat - if node_ent.is_dir(follow_symlinks=follow_links): - # Child node is a directory, recurse into it and yield its descendant - # files. - yield TreeEntry(node_ent.name, node_rel, node_lstat, node_stat) + if node_ent.is_dir(follow_symlinks=follow_links): + # Child node is a directory, recurse into it and yield its descendant + # files. + yield TreeEntry(node_ent.name, node_rel, node_lstat, node_stat) - yield from _iter_tree_entries_next(root_full, node_rel, memo, on_error, follow_links) + yield from _iter_tree_entries_next( + root_full, node_rel, memo, on_error, follow_links + ) - elif node_ent.is_file() or node_ent.is_symlink(): - # Child node is either a file or an unfollowed link, yield it. - yield TreeEntry(node_ent.name, node_rel, node_lstat, node_stat) + elif node_ent.is_file() or node_ent.is_symlink(): + # Child node is either a file or an unfollowed link, yield it. + yield TreeEntry(node_ent.name, node_rel, node_lstat, node_stat) - # NOTE: Make sure to remove the canonical (real) path of the directory from - # the ancestors memo once we are done with it. This allows the same directory - # to appear multiple times. If this is not done, the second occurrence of the - # directory will be incorrectly interpreted as a recursion. See - # . - del memo[dir_real] + # NOTE: Make sure to remove the canonical (real) path of the directory from + # the ancestors memo once we are done with it. This allows the same directory + # to appear multiple times. If this is not done, the second occurrence of the + # directory will be incorrectly interpreted as a recursion. See + # . + del memo[dir_real] def iter_tree_files( - root: StrPath, - on_error: Optional[Callable[[OSError], None]] = None, - follow_links: Optional[bool] = None, + root: StrPath, + on_error: Optional[Callable[[OSError], None]] = None, + follow_links: Optional[bool] = None, ) -> Iterator[str]: - """ - Walks the specified directory for all files. + """ + Walks the specified directory for all files. - *root* (:class:`str` or :class:`os.PathLike`) is the root directory to search - for files. + *root* (:class:`str` or :class:`os.PathLike`) is the root directory to search + for files. - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is - the error handler for file-system exceptions. It will be called with the - exception (:exc:`OSError`). Reraise the exception to abort the walk. Default - is :data:`None` to ignore file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is + the error handler for file-system exceptions. It will be called with the + exception (:exc:`OSError`). Reraise the exception to abort the walk. Default + is :data:`None` to ignore file-system exceptions. - *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk - symbolic links that resolve to directories. Default is :data:`None` for - :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) optionally is whether to walk + symbolic links that resolve to directories. Default is :data:`None` for + :data:`True`. - Raises :exc:`.RecursionError` if recursion is detected. + Raises :exc:`.RecursionError` if recursion is detected. - Returns an :class:`~collections.abc.Iterator` yielding the path to each file - (:class:`str`) relative to *root*. - """ - if on_error is not None and not callable(on_error): - raise TypeError(f"on_error:{on_error!r} is not callable.") + Returns an :class:`~collections.abc.Iterator` yielding the path to each file + (:class:`str`) relative to *root*. + """ + if on_error is not None and not callable(on_error): + raise TypeError(f"on_error:{on_error!r} is not callable.") - if follow_links is None: - follow_links = True + if follow_links is None: + follow_links = True - yield from _iter_tree_files_next(os.path.abspath(root), '', {}, on_error, follow_links) + yield from _iter_tree_files_next( + os.path.abspath(root), "", {}, on_error, follow_links + ) def _iter_tree_files_next( - root_full: str, - dir_rel: str, - memo: dict[str, str], - on_error: Callable[[OSError], None], - follow_links: bool, + root_full: str, + dir_rel: str, + memo: dict[str, str], + on_error: Callable[[OSError], None], + follow_links: bool, ) -> Iterator[str]: - """ - Scan the directory for all descendant files. + """ + Scan the directory for all descendant files. - *root_full* (:class:`str`) the absolute path to the root directory. + *root_full* (:class:`str`) the absolute path to the root directory. - *dir_rel* (:class:`str`) the path to the directory to scan relative to - *root_full*. + *dir_rel* (:class:`str`) the path to the directory to scan relative to + *root_full*. - *memo* (:class:`dict`) keeps track of ancestor directories encountered. Maps - each ancestor real path (:class:`str`) to relative path (:class:`str`). + *memo* (:class:`dict`) keeps track of ancestor directories encountered. Maps + each ancestor real path (:class:`str`) to relative path (:class:`str`). - *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is - the error handler for file-system exceptions. + *on_error* (:class:`~collections.abc.Callable` or :data:`None`) optionally is + the error handler for file-system exceptions. - *follow_links* (:class:`bool`) is whether to walk symbolic links that resolve - to directories. + *follow_links* (:class:`bool`) is whether to walk symbolic links that resolve + to directories. - Yields each file path (:class:`str`). - """ - dir_full = os.path.join(root_full, dir_rel) - dir_real = os.path.realpath(dir_full) + Yields each file path (:class:`str`). + """ + dir_full = os.path.join(root_full, dir_rel) + dir_real = os.path.realpath(dir_full) - # Remember each encountered ancestor directory and its canonical (real) path. - # If a canonical path is encountered more than once, recursion has occurred. - if dir_real not in memo: - memo[dir_real] = dir_rel - else: - raise RecursionError(real_path=dir_real, first_path=memo[dir_real], second_path=dir_rel) + # Remember each encountered ancestor directory and its canonical (real) path. + # If a canonical path is encountered more than once, recursion has occurred. + if dir_real not in memo: + memo[dir_real] = dir_rel + else: + raise RecursionError( + real_path=dir_real, first_path=memo[dir_real], second_path=dir_rel + ) - with os.scandir(dir_full) as scan_iter: - node_ent: os.DirEntry - for node_ent in scan_iter: - node_rel = os.path.join(dir_rel, node_ent.name) + with os.scandir(dir_full) as scan_iter: + node_ent: os.DirEntry + for node_ent in scan_iter: + node_rel = os.path.join(dir_rel, node_ent.name) - if node_ent.is_dir(follow_symlinks=follow_links): - # Child node is a directory, recurse into it and yield its descendant - # files. - yield from _iter_tree_files_next(root_full, node_rel, memo, on_error, follow_links) + if node_ent.is_dir(follow_symlinks=follow_links): + # Child node is a directory, recurse into it and yield its descendant + # files. + yield from _iter_tree_files_next( + root_full, node_rel, memo, on_error, follow_links + ) - elif node_ent.is_file(): - # Child node is a file, yield it. - yield node_rel + elif node_ent.is_file(): + # Child node is a file, yield it. + yield node_rel - elif not follow_links and node_ent.is_symlink(): - # Child node is an unfollowed link, yield it. - yield node_rel + elif not follow_links and node_ent.is_symlink(): + # Child node is an unfollowed link, yield it. + yield node_rel - # NOTE: Make sure to remove the canonical (real) path of the directory from - # the ancestors memo once we are done with it. This allows the same directory - # to appear multiple times. If this is not done, the second occurrence of the - # directory will be incorrectly interpreted as a recursion. See - # . - del memo[dir_real] + # NOTE: Make sure to remove the canonical (real) path of the directory from + # the ancestors memo once we are done with it. This allows the same directory + # to appear multiple times. If this is not done, the second occurrence of the + # directory will be incorrectly interpreted as a recursion. See + # . + del memo[dir_real] def lookup_pattern(name: str) -> Callable[[AnyStr], Pattern]: - """ - Lookups a registered pattern factory by name. + """ + Lookups a registered pattern factory by name. - *name* (:class:`str`) is the name of the pattern factory. + *name* (:class:`str`) is the name of the pattern factory. - Returns the registered pattern factory (:class:`~collections.abc.Callable`). - If no pattern factory is registered, raises :exc:`KeyError`. - """ - return _registered_patterns[name] + Returns the registered pattern factory (:class:`~collections.abc.Callable`). + If no pattern factory is registered, raises :exc:`KeyError`. + """ + return _registered_patterns[name] def match_file(patterns: Iterable[Pattern], file: str) -> bool: - """ - Matches the file to the patterns. + """ + Matches the file to the patterns. - *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains - the patterns to use. + *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains + the patterns to use. - *file* (:class:`str`) is the normalized file path to be matched against - *patterns*. + *file* (:class:`str`) is the normalized file path to be matched against + *patterns*. - Returns :data:`True` if *file* matched; otherwise, :data:`False`. - """ - matched = False - for pattern in patterns: - if pattern.include is not None and pattern.match_file(file) is not None: - matched = pattern.include + Returns :data:`True` if *file* matched; otherwise, :data:`False`. + """ + matched = False + for pattern in patterns: + if pattern.include is not None and pattern.match_file(file) is not None: + matched = pattern.include - return matched + return matched -@deprecated(( - "pathspec.util.match_files() is deprecated. Use match_file() with a loop for " - "better results." -)) +@deprecated( + ( + "pathspec.util.match_files() is deprecated. Use match_file() with a loop for " + "better results." + ) +) def match_files( - patterns: Iterable[Pattern], - files: Iterable[str], + patterns: Iterable[Pattern], + files: Iterable[str], ) -> set[str]: - """ - .. version-deprecated:: 0.10.0 - This function is no longer used. Use the :func:`.match_file` function with a - loop for better results. + """ + .. version-deprecated:: 0.10.0 + This function is no longer used. Use the :func:`.match_file` function with a + loop for better results. - Matches the files to the patterns. + Matches the files to the patterns. - *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains - the patterns to use. + *patterns* (:class:`~collections.abc.Iterable` of :class:`.Pattern`) contains + the patterns to use. - *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains the - normalized file paths to be matched against *patterns*. + *files* (:class:`~collections.abc.Iterable` of :class:`str`) contains the + normalized file paths to be matched against *patterns*. - Returns the matched files (:class:`set` of :class:`str`). - """ - use_patterns = [__pat for __pat in patterns if __pat.include is not None] + Returns the matched files (:class:`set` of :class:`str`). + """ + use_patterns = [__pat for __pat in patterns if __pat.include is not None] - return_files = set() - for file in files: - if match_file(use_patterns, file): - return_files.add(file) + return_files = set() + for file in files: + if match_file(use_patterns, file): + return_files.add(file) - return return_files + return return_files def normalize_file( - file: StrPath, - separators: Optional[Collection[str]] = None, + file: StrPath, + separators: Optional[Collection[str]] = None, ) -> str: - """ - Normalizes the file path to use the POSIX path separator (i.e., ``"/"``), and - make the paths relative (remove leading ``"/"``). + """ + Normalizes the file path to use the POSIX path separator (i.e., ``"/"``), and + make the paths relative (remove leading ``"/"``). - *file* (:class:`str` or :class:`os.PathLike`) is the file path. + *file* (:class:`str` or :class:`os.PathLike`) is the file path. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. This does - not need to include the POSIX path separator (``"/"``), but including it will - not affect the results. Default is ``None`` for :data:`.NORMALIZE_PATH_SEPS`. - To prevent normalization, pass an empty container (e.g., an empty tuple - ``()``). + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. This does + not need to include the POSIX path separator (``"/"``), but including it will + not affect the results. Default is ``None`` for :data:`.NORMALIZE_PATH_SEPS`. + To prevent normalization, pass an empty container (e.g., an empty tuple + ``()``). - Returns the normalized file path (:class:`str`). - """ - # Normalize path separators. - if separators is None: - separators = NORMALIZE_PATH_SEPS + Returns the normalized file path (:class:`str`). + """ + # Normalize path separators. + if separators is None: + separators = NORMALIZE_PATH_SEPS - # Convert path object to string. - norm_file: str = os.fspath(file) + # Convert path object to string. + norm_file: str = os.fspath(file) - for sep in separators: - norm_file = norm_file.replace(sep, posixpath.sep) + for sep in separators: + norm_file = norm_file.replace(sep, posixpath.sep) - if norm_file.startswith('/'): - # Make path relative. - norm_file = norm_file[1:] + if norm_file.startswith("/"): + # Make path relative. + norm_file = norm_file[1:] - elif norm_file.startswith('./'): - # Remove current directory prefix. - norm_file = norm_file[2:] + elif norm_file.startswith("./"): + # Remove current directory prefix. + norm_file = norm_file[2:] - return norm_file + return norm_file -@deprecated(( - "pathspec.util.normalize_files() is deprecated. Use normalize_file() with a " - "loop for better results." -)) +@deprecated( + ( + "pathspec.util.normalize_files() is deprecated. Use normalize_file() with a " + "loop for better results." + ) +) def normalize_files( - files: Iterable[StrPath], - separators: Optional[Collection[str]] = None, + files: Iterable[StrPath], + separators: Optional[Collection[str]] = None, ) -> dict[str, list[StrPath]]: - """ - .. version-deprecated:: 0.10.0 - This function is no longer used. Use the :func:`.normalize_file` function - with a loop for better results. + """ + .. version-deprecated:: 0.10.0 + This function is no longer used. Use the :func:`.normalize_file` function + with a loop for better results. - Normalizes the file paths to use the POSIX path separator. + Normalizes the file paths to use the POSIX path separator. - *files* (:class:`~collections.abc.Iterable` of :class:`str` or - :class:`os.PathLike`) contains the file paths to be normalized. + *files* (:class:`~collections.abc.Iterable` of :class:`str` or + :class:`os.PathLike`) contains the file paths to be normalized. - *separators* (:class:`~collections.abc.Collection` of :class:`str`; or - :data:`None`) optionally contains the path separators to normalize. See - :func:`.normalize_file` for more information. + *separators* (:class:`~collections.abc.Collection` of :class:`str`; or + :data:`None`) optionally contains the path separators to normalize. See + :func:`.normalize_file` for more information. - Returns a :class:`dict` mapping each normalized file path (:class:`str`) to - the original file paths (:class:`list` of :class:`str` or - :class:`os.PathLike`). - """ - norm_files = {} - for path in files: - norm_file = normalize_file(path, separators=separators) - if norm_file in norm_files: - norm_files[norm_file].append(path) - else: - norm_files[norm_file] = [path] + Returns a :class:`dict` mapping each normalized file path (:class:`str`) to + the original file paths (:class:`list` of :class:`str` or + :class:`os.PathLike`). + """ + norm_files = {} + for path in files: + norm_file = normalize_file(path, separators=separators) + if norm_file in norm_files: + norm_files[norm_file].append(path) + else: + norm_files[norm_file] = [path] - return norm_files + return norm_files def register_pattern( - name: str, - pattern_factory: Callable[[AnyStr], Pattern], - override: Optional[bool] = None, + name: str, + pattern_factory: Callable[[AnyStr], Pattern], + override: Optional[bool] = None, ) -> None: - """ - Registers the specified pattern factory. + """ + Registers the specified pattern factory. - *name* (:class:`str`) is the name to register the pattern factory under. + *name* (:class:`str`) is the name to register the pattern factory under. - *pattern_factory* (:class:`~collections.abc.Callable`) is used to compile - patterns. It must accept an uncompiled pattern (:class:`str`) and return the - compiled pattern (:class:`.Pattern`). + *pattern_factory* (:class:`~collections.abc.Callable`) is used to compile + patterns. It must accept an uncompiled pattern (:class:`str`) and return the + compiled pattern (:class:`.Pattern`). - *override* (:class:`bool` or :data:`None`) optionally is whether to allow - overriding an already registered pattern under the same name (:data:`True`), - instead of raising an :exc:`.AlreadyRegisteredError` (:data:`False`). Default - is :data:`None` for :data:`False`. - """ - if not isinstance(name, str): - raise TypeError(f"name:{name!r} is not a string.") + *override* (:class:`bool` or :data:`None`) optionally is whether to allow + overriding an already registered pattern under the same name (:data:`True`), + instead of raising an :exc:`.AlreadyRegisteredError` (:data:`False`). Default + is :data:`None` for :data:`False`. + """ + if not isinstance(name, str): + raise TypeError(f"name:{name!r} is not a string.") - if not callable(pattern_factory): - raise TypeError(f"pattern_factory:{pattern_factory!r} is not callable.") + if not callable(pattern_factory): + raise TypeError(f"pattern_factory:{pattern_factory!r} is not callable.") - if name in _registered_patterns and not override: - raise AlreadyRegisteredError(name, _registered_patterns[name]) + if name in _registered_patterns and not override: + raise AlreadyRegisteredError(name, _registered_patterns[name]) - _registered_patterns[name] = pattern_factory + _registered_patterns[name] = pattern_factory class AlreadyRegisteredError(Exception): - """ - The :exc:`AlreadyRegisteredError` exception is raised when a pattern factory - is registered under a name already in use. - """ + """ + The :exc:`AlreadyRegisteredError` exception is raised when a pattern factory + is registered under a name already in use. + """ - def __init__( - self, - name: str, - pattern_factory: Callable[[AnyStr], Pattern], - ) -> None: - """ - Initializes the :exc:`AlreadyRegisteredError` instance. + def __init__( + self, + name: str, + pattern_factory: Callable[[AnyStr], Pattern], + ) -> None: + """ + Initializes the :exc:`AlreadyRegisteredError` instance. - *name* (:class:`str`) is the name of the registered pattern. + *name* (:class:`str`) is the name of the registered pattern. - *pattern_factory* (:class:`~collections.abc.Callable`) is the registered - pattern factory. - """ - super().__init__(name, pattern_factory) + *pattern_factory* (:class:`~collections.abc.Callable`) is the registered + pattern factory. + """ + super().__init__(name, pattern_factory) - @property - def message(self) -> str: - """ - *message* (:class:`str`) is the error message. - """ - return ( - f"{self.name!r} is already registered for pattern factory=" - f"{self.pattern_factory!r}." - ) + @property + def message(self) -> str: + """ + *message* (:class:`str`) is the error message. + """ + return ( + f"{self.name!r} is already registered for pattern factory=" + f"{self.pattern_factory!r}." + ) - @property - def name(self) -> str: - """ - *name* (:class:`str`) is the name of the registered pattern. - """ - return self.args[0] + @property + def name(self) -> str: + """ + *name* (:class:`str`) is the name of the registered pattern. + """ + return self.args[0] - @property - def pattern_factory(self) -> Callable[[AnyStr], Pattern]: - """ - *pattern_factory* (:class:`~collections.abc.Callable`) is the registered - pattern factory. - """ - return self.args[1] + @property + def pattern_factory(self) -> Callable[[AnyStr], Pattern]: + """ + *pattern_factory* (:class:`~collections.abc.Callable`) is the registered + pattern factory. + """ + return self.args[1] class RecursionError(Exception): - """ - The :exc:`RecursionError` exception is raised when recursion is detected. - """ + """ + The :exc:`RecursionError` exception is raised when recursion is detected. + """ - def __init__( - self, - real_path: str, - first_path: str, - second_path: str, - ) -> None: - """ - Initializes the :exc:`RecursionError` instance. + def __init__( + self, + real_path: str, + first_path: str, + second_path: str, + ) -> None: + """ + Initializes the :exc:`RecursionError` instance. - *real_path* (:class:`str`) is the real path that recursion was encountered - on. + *real_path* (:class:`str`) is the real path that recursion was encountered + on. - *first_path* (:class:`str`) is the first path encountered for *real_path*. + *first_path* (:class:`str`) is the first path encountered for *real_path*. - *second_path* (:class:`str`) is the second path encountered for *real_path*. - """ - super().__init__(real_path, first_path, second_path) + *second_path* (:class:`str`) is the second path encountered for *real_path*. + """ + super().__init__(real_path, first_path, second_path) - @property - def first_path(self) -> str: - """ - *first_path* (:class:`str`) is the first path encountered for - :attr:`self.real_path `. - """ - return self.args[1] + @property + def first_path(self) -> str: + """ + *first_path* (:class:`str`) is the first path encountered for + :attr:`self.real_path `. + """ + return self.args[1] - @property - def message(self) -> str: - """ - *message* (:class:`str`) is the error message. - """ - return ( - f"Real path {self.real_path!r} was encountered at {self.first_path!r} " - f"and then {self.second_path!r}." - ) + @property + def message(self) -> str: + """ + *message* (:class:`str`) is the error message. + """ + return ( + f"Real path {self.real_path!r} was encountered at {self.first_path!r} " + f"and then {self.second_path!r}." + ) - @property - def real_path(self) -> str: - """ - *real_path* (:class:`str`) is the real path that recursion was - encountered on. - """ - return self.args[0] + @property + def real_path(self) -> str: + """ + *real_path* (:class:`str`) is the real path that recursion was + encountered on. + """ + return self.args[0] - @property - def second_path(self) -> str: - """ - *second_path* (:class:`str`) is the second path encountered for - :attr:`self.real_path `. - """ - return self.args[2] + @property + def second_path(self) -> str: + """ + *second_path* (:class:`str`) is the second path encountered for + :attr:`self.real_path `. + """ + return self.args[2] @dataclass(frozen=True) class CheckResult(Generic[TStrPath]): - """ - The :class:`CheckResult` class contains information about the file and which - pattern matched it. - """ + """ + The :class:`CheckResult` class contains information about the file and which + pattern matched it. + """ - # Make the class dict-less. - __slots__ = ( - 'file', - 'include', - 'index', - ) + # Make the class dict-less. + __slots__ = ( + "file", + "include", + "index", + ) - file: TStrPath - """ + file: TStrPath + """ *file* (:class:`str` or :class:`os.PathLike`) is the file path. """ - include: Optional[bool] - """ + include: Optional[bool] + """ *include* (:class:`bool` or :data:`None`) is whether to include or exclude the file. If :data:`None`, no pattern matched. """ - index: Optional[int] - """ + index: Optional[int] + """ *index* (:class:`int` or :data:`None`) is the index of the last pattern that matched. If :data:`None`, no pattern matched. """ class MatchDetail(object): - """ - The :class:`.MatchDetail` class contains information about - """ + """ + The :class:`.MatchDetail` class contains information about + """ - # Make the class dict-less. - __slots__ = ('patterns',) + # Make the class dict-less. + __slots__ = ("patterns",) - def __init__(self, patterns: Sequence[Pattern]) -> None: - """ - Initialize the :class:`.MatchDetail` instance. + def __init__(self, patterns: Sequence[Pattern]) -> None: + """ + Initialize the :class:`.MatchDetail` instance. - *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) - contains the patterns that matched the file in the order they were encountered. - """ + *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) + contains the patterns that matched the file in the order they were encountered. + """ - self.patterns = patterns - """ + self.patterns = patterns + """ *patterns* (:class:`~collections.abc.Sequence` of :class:`.Pattern`) contains the patterns that matched the file in the order they were encountered. @@ -746,102 +753,102 @@ class MatchDetail(object): class TreeEntry(object): - """ - The :class:`TreeEntry` class contains information about a file-system entry. - """ + """ + The :class:`TreeEntry` class contains information about a file-system entry. + """ - # Make the class dict-less. - __slots__ = ('_lstat', 'name', 'path', '_stat') + # Make the class dict-less. + __slots__ = ("_lstat", "name", "path", "_stat") - def __init__( - self, - name: str, - path: str, - lstat: os.stat_result, - stat: os.stat_result, - ) -> None: - """ - Initialize the :class:`TreeEntry` instance. + def __init__( + self, + name: str, + path: str, + lstat: os.stat_result, + stat: os.stat_result, + ) -> None: + """ + Initialize the :class:`TreeEntry` instance. - *name* (:class:`str`) is the base name of the entry. + *name* (:class:`str`) is the base name of the entry. - *path* (:class:`str`) is the relative path of the entry. + *path* (:class:`str`) is the relative path of the entry. - *lstat* (:class:`os.stat_result`) is the stat result of the direct entry. + *lstat* (:class:`os.stat_result`) is the stat result of the direct entry. - *stat* (:class:`os.stat_result`) is the stat result of the entry, - potentially linked. - """ + *stat* (:class:`os.stat_result`) is the stat result of the entry, + potentially linked. + """ - self._lstat: os.stat_result = lstat - """ + self._lstat: os.stat_result = lstat + """ *_lstat* (:class:`os.stat_result`) is the stat result of the direct entry. """ - self.name: str = name - """ + self.name: str = name + """ *name* (:class:`str`) is the base name of the entry. """ - self.path: str = path - """ + self.path: str = path + """ *path* (:class:`str`) is the path of the entry. """ - self._stat: os.stat_result = stat - """ + self._stat: os.stat_result = stat + """ *_stat* (:class:`os.stat_result`) is the stat result of the linked entry. """ - def is_dir(self, follow_links: Optional[bool] = None) -> bool: - """ - Get whether the entry is a directory. + def is_dir(self, follow_links: Optional[bool] = None) -> bool: + """ + Get whether the entry is a directory. - *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic - links. If this is :data:`True`, a symlink to a directory will result in - :data:`True`. Default is :data:`None` for :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic + links. If this is :data:`True`, a symlink to a directory will result in + :data:`True`. Default is :data:`None` for :data:`True`. - Returns whether the entry is a directory (:class:`bool`). - """ - if follow_links is None: - follow_links = True + Returns whether the entry is a directory (:class:`bool`). + """ + if follow_links is None: + follow_links = True - node_stat = self._stat if follow_links else self._lstat - return stat.S_ISDIR(node_stat.st_mode) + node_stat = self._stat if follow_links else self._lstat + return stat.S_ISDIR(node_stat.st_mode) - def is_file(self, follow_links: Optional[bool] = None) -> bool: - """ - Get whether the entry is a regular file. + def is_file(self, follow_links: Optional[bool] = None) -> bool: + """ + Get whether the entry is a regular file. - *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic - links. If this is :data:`True`, a symlink to a regular file will result in - :data:`True`. Default is :data:`None` for :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic + links. If this is :data:`True`, a symlink to a regular file will result in + :data:`True`. Default is :data:`None` for :data:`True`. - Returns whether the entry is a regular file (:class:`bool`). - """ - if follow_links is None: - follow_links = True + Returns whether the entry is a regular file (:class:`bool`). + """ + if follow_links is None: + follow_links = True - node_stat = self._stat if follow_links else self._lstat - return stat.S_ISREG(node_stat.st_mode) + node_stat = self._stat if follow_links else self._lstat + return stat.S_ISREG(node_stat.st_mode) - def is_symlink(self) -> bool: - """ - Returns whether the entry is a symbolic link (:class:`bool`). - """ - return stat.S_ISLNK(self._lstat.st_mode) + def is_symlink(self) -> bool: + """ + Returns whether the entry is a symbolic link (:class:`bool`). + """ + return stat.S_ISLNK(self._lstat.st_mode) - def stat(self, follow_links: Optional[bool] = None) -> os.stat_result: - """ - Get the cached stat result for the entry. + def stat(self, follow_links: Optional[bool] = None) -> os.stat_result: + """ + Get the cached stat result for the entry. - *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic - links. If this is :data:`True`, the stat result of the linked file will be - returned. Default is :data:`None` for :data:`True`. + *follow_links* (:class:`bool` or :data:`None`) is whether to follow symbolic + links. If this is :data:`True`, the stat result of the linked file will be + returned. Default is :data:`None` for :data:`True`. - Returns that stat result (:class:`os.stat_result`). - """ - if follow_links is None: - follow_links = True + Returns that stat result (:class:`os.stat_result`). + """ + if follow_links is None: + follow_links = True - return self._stat if follow_links else self._lstat + return self._stat if follow_links else self._lstat diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/METADATA b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/METADATA index e56d5d1..3cf6cc6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/METADATA +++ b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/METADATA @@ -108,4 +108,3 @@ rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. .. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa .. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev .. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/entry_points.txt b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/entry_points.txt index c6436d2..bd21992 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/entry_points.txt +++ b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/entry_points.txt @@ -1,4 +1,3 @@ [console_scripts] pip=pip._internal.cli.main:main pip3=pip._internal.cli.main:main - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distro/LICENSE b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distro/LICENSE index e06d208..5c304d1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distro/LICENSE +++ b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distro/LICENSE @@ -199,4 +199,3 @@ Apache License WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/msgpack/COPYING b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/msgpack/COPYING index f067af3..5f2280e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/msgpack/COPYING +++ b/PPE2/.venv/lib/python3.12/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/msgpack/COPYING @@ -11,4 +11,3 @@ Copyright (C) 2008-2011 INADA Naoki WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/build_env.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/build_env.py index 1a42a9d..fec96fb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/build_env.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/build_env.py @@ -463,9 +463,7 @@ class BuildEnvironment: with open( os.path.join(self._site_dir, "sitecustomize.py"), "w", encoding="utf-8" ) as fp: - fp.write( - textwrap.dedent( - """ + fp.write(textwrap.dedent(""" import os, site, sys # First, drop system-sites related paths. @@ -488,9 +486,7 @@ class BuildEnvironment: for path in {lib_dirs!r}: assert not path in sys.path site.addsitedir(path) - """ - ).format(system_sites=system_sites, lib_dirs=self._lib_dirs) - ) + """).format(system_sites=system_sites, lib_dirs=self._lib_dirs)) def __enter__(self) -> None: self._save_env = { diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py index a269f86..94a6fad 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py @@ -790,15 +790,13 @@ python_version: Callable[..., Option] = partial( callback=_handle_python_version, type="str", default=None, - help=dedent( - """\ + help=dedent("""\ The Python interpreter version to use for wheel and "Requires-Python" compatibility checks. Defaults to a version derived from the running interpreter. The version can be specified using up to three dot-separated integers (e.g. "3" for 3.0.0, "3.7" for 3.7.0, or "3.7.3"). A major-minor version can also be given as a string without dots (e.g. "37" for 3.7.0). - """ - ), + """), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py index 862740f..cc114de 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py @@ -107,8 +107,7 @@ class CacheCommand(Command): wheels_cache_size = filesystem.format_directory_size(wheels_cache_location) message = ( - textwrap.dedent( - """ + textwrap.dedent(""" Package index page cache location (pip v23.3+): {http_cache_location} Package index page cache location (older pips): {old_http_cache_location} Package index page cache size: {http_cache_size} @@ -116,8 +115,7 @@ class CacheCommand(Command): Locally built wheels location: {wheels_cache_location} Locally built wheels size: {wheels_cache_size} Number of locally built wheels: {package_count} - """ # noqa: E501 - ) + """) # noqa: E501 .format( http_cache_location=http_cache_location, old_http_cache_location=old_http_cache_location, diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/locations/base.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/locations/base.py index 17cd0e8..f8d13cd 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/locations/base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/locations/base.py @@ -41,7 +41,7 @@ def change_root(new_root: str, pathname: str) -> str: return os.path.join(new_root, pathname[1:]) elif os.name == "nt": - (drive, path) = os.path.splitdrive(pathname) + drive, path = os.path.splitdrive(pathname) if path[0] == "\\": path = path[1:] return os.path.join(new_root, path) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py index 40097d6..9f02e42 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py @@ -406,15 +406,13 @@ def _raise_for_invalid_entrypoint(specification: str) -> None: class PipScriptMaker(ScriptMaker): # Override distlib's default script template with one that # doesn't import `re` module, allowing scripts to load faster. - script_template = textwrap.dedent( - """\ + script_template = textwrap.dedent("""\ import sys from %(module)s import %(import_name)s if __name__ == '__main__': sys.argv[0] = sys.argv[0].removesuffix('.exe') sys.exit(%(func)s()) -""" - ) +""") def make( self, specification: str, options: dict[str, Any] | None = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/__init__.py index 34ccb99..215a79e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/__init__.py @@ -5,6 +5,7 @@ depend on something external. Files inside of pip._vendor should be considered immutable and should only be updated to versions from upstream. """ + from __future__ import absolute_import import glob @@ -87,8 +88,7 @@ if DEBUNDLED: vendored("requests.packages.urllib3.packages.ordered_dict") vendored("requests.packages.urllib3.packages.six") vendored("requests.packages.urllib3.packages.ssl_match_hostname") - vendored("requests.packages.urllib3.packages.ssl_match_hostname." - "_implementation") + vendored("requests.packages.urllib3.packages.ssl_match_hostname." "_implementation") vendored("requests.packages.urllib3.poolmanager") vendored("requests.packages.urllib3.request") vendored("requests.packages.urllib3.response") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py index 01f1253..5da19a5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py @@ -11,7 +11,10 @@ from typing import TYPE_CHECKING, Any, Collection, Mapping from pip._vendor.requests.adapters import HTTPAdapter from pip._vendor.cachecontrol.cache import DictCache -from pip._vendor.cachecontrol.controller import PERMANENT_REDIRECT_STATUSES, CacheController +from pip._vendor.cachecontrol.controller import ( + PERMANENT_REDIRECT_STATUSES, + CacheController, +) from pip._vendor.cachecontrol.filewrapper import CallbackFileWrapper if TYPE_CHECKING: @@ -53,7 +56,7 @@ class CacheControlAdapter(HTTPAdapter): stream: bool = False, timeout: None | float | tuple[float, float] | tuple[float, None] = None, verify: bool | str = True, - cert: (None | bytes | str | tuple[bytes | str, bytes | str]) = None, + cert: None | bytes | str | tuple[bytes | str, bytes | str] = None, proxies: Mapping[str, str] | None = None, cacheable_methods: Collection[str] | None = None, ) -> Response: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py index 45c632c..b33d6bd 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py @@ -36,13 +36,11 @@ class _FileCacheMixin: lock_class = FileLock except ImportError: - notice = dedent( - """ + notice = dedent(""" NOTE: In order to use the FileCache you must have filelock installed. You can install it via pip: pip install cachecontrol[filecache] - """ - ) + """) raise ImportError(notice) self.directory = directory @@ -87,7 +85,7 @@ class _FileCacheMixin: with self.lock_class(path + ".lock"): # Write our actual file - (fd, name) = tempfile.mkstemp(dir=dirname) + fd, name = tempfile.mkstemp(dir=dirname) try: os.write(fd, data) finally: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py index 0bf3801..47deb8a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py @@ -65,7 +65,7 @@ class CacheController: @classmethod def _urlnorm(cls, uri: str) -> str: """Normalize the URL to create a safe key for the cache""" - (scheme, authority, path, query, fragment) = parse_uri(uri) + scheme, authority, path, query, fragment = parse_uri(uri) if not scheme or not authority: raise Exception("Only absolute URIs are allowed. uri = %s" % uri) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py index 2f2f7e0..27d89cf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py @@ -4,9 +4,11 @@ certifi.py This module returns the installation location of cacert.pem or its contents. """ + import sys import atexit + def exit_cacert_ctx() -> None: _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] @@ -44,7 +46,11 @@ if sys.version_info >= (3, 11): return _CACERT_PATH def contents() -> str: - return files("pip._vendor.certifi").joinpath("cacert.pem").read_text(encoding="ascii") + return ( + files("pip._vendor.certifi") + .joinpath("cacert.pem") + .read_text(encoding="ascii") + ) else: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py index 4e82943..e223c65 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py @@ -6,7 +6,7 @@ # import logging -__version__ = '0.4.0' +__version__ = "0.4.0" class DistlibException(Exception): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py index ca561dd..1ffcbd7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py @@ -18,24 +18,41 @@ except ImportError: # pragma: no cover if sys.version_info[0] < 3: # pragma: no cover from StringIO import StringIO - string_types = basestring, + + string_types = (basestring,) text_type = unicode from types import FileType as file_type import __builtin__ as builtins import ConfigParser as configparser from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit - from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, - pathname2url, ContentTooShortError, splittype) + from urllib import ( + urlretrieve, + quote as _quote, + unquote, + url2pathname, + pathname2url, + ContentTooShortError, + splittype, + ) def quote(s): if isinstance(s, unicode): - s = s.encode('utf-8') + s = s.encode("utf-8") return _quote(s) import urllib2 - from urllib2 import (Request, urlopen, URLError, HTTPError, - HTTPBasicAuthHandler, HTTPPasswordMgr, HTTPHandler, - HTTPRedirectHandler, build_opener) + from urllib2 import ( + Request, + urlopen, + URLError, + HTTPError, + HTTPBasicAuthHandler, + HTTPPasswordMgr, + HTTPHandler, + HTTPRedirectHandler, + build_opener, + ) + if ssl: from urllib2 import HTTPSHandler import httplib @@ -43,6 +60,7 @@ if sys.version_info[0] < 3: # pragma: no cover import Queue as queue from HTMLParser import HTMLParser import htmlentitydefs + raw_input = raw_input from itertools import ifilter as filter from itertools import ifilterfalse as filterfalse @@ -62,17 +80,35 @@ if sys.version_info[0] < 3: # pragma: no cover else: # pragma: no cover from io import StringIO - string_types = str, + + string_types = (str,) text_type = str from io import TextIOWrapper as file_type import builtins import configparser - from urllib.parse import (urlparse, urlunparse, urljoin, quote, unquote, - urlsplit, urlunsplit, splittype) - from urllib.request import (urlopen, urlretrieve, Request, url2pathname, - pathname2url, HTTPBasicAuthHandler, - HTTPPasswordMgr, HTTPHandler, - HTTPRedirectHandler, build_opener) + from urllib.parse import ( + urlparse, + urlunparse, + urljoin, + quote, + unquote, + urlsplit, + urlunsplit, + splittype, + ) + from urllib.request import ( + urlopen, + urlretrieve, + Request, + url2pathname, + pathname2url, + HTTPBasicAuthHandler, + HTTPPasswordMgr, + HTTPHandler, + HTTPRedirectHandler, + build_opener, + ) + if ssl: from urllib.request import HTTPSHandler from urllib.error import HTTPError, URLError, ContentTooShortError @@ -82,8 +118,10 @@ else: # pragma: no cover import queue from html.parser import HTMLParser import html.entities as htmlentitydefs + raw_input = input from itertools import filterfalse + filter = filter try: @@ -102,17 +140,18 @@ except ImportError: # pragma: no cover if not dn: return False - parts = dn.split('.') + parts = dn.split(".") leftmost, remainder = parts[0], parts[1:] - wildcards = leftmost.count('*') + wildcards = leftmost.count("*") if wildcards > max_wildcards: # Issue #17980: avoid denials of service by refusing more # than one wildcard per fragment. A survey of established # policy among SSL implementations showed it to be a # reasonable choice. raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) + "too many wildcards in certificate DNS name: " + repr(dn) + ) # speed up common case w/o wildcards if not wildcards: @@ -121,11 +160,11 @@ except ImportError: # pragma: no cover # RFC 6125, section 6.4.3, subitem 1. # The client SHOULD NOT attempt to match a presented identifier in which # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': + if leftmost == "*": # When '*' is a fragment by itself, it matches a non-empty dotless # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): + pats.append("[^.]+") + elif leftmost.startswith("xn--") or hostname.startswith("xn--"): # RFC 6125, section 6.4.3, subitem 3. # The client SHOULD NOT attempt to match a presented identifier # where the wildcard character is embedded within an A-label or @@ -133,13 +172,13 @@ except ImportError: # pragma: no cover pats.append(re.escape(leftmost)) else: # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) + pats.append(re.escape(leftmost).replace(r"\*", "[^.]*")) # add the remaining fragments, ignore any wildcards for frag in remainder: pats.append(re.escape(frag)) - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) + pat = re.compile(r"\A" + r"\.".join(pats) + r"\Z", re.IGNORECASE) return pat.match(hostname) def match_hostname(cert, hostname): @@ -151,38 +190,43 @@ except ImportError: # pragma: no cover returns nothing. """ if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") + raise ValueError( + "empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED" + ) dnsnames = [] - san = cert.get('subjectAltName', ()) + san = cert.get("subjectAltName", ()) for key, value in san: - if key == 'DNS': + if key == "DNS": if _dnsname_match(value, hostname): return dnsnames.append(value) if not dnsnames: # The subject is only checked when there is no dNSName entry # in subjectAltName - for sub in cert.get('subject', ()): + for sub in cert.get("subject", ()): for key, value in sub: # XXX according to RFC 2818, the most specific Common Name # must be used. - if key == 'commonName': + if key == "commonName": if _dnsname_match(value, hostname): return dnsnames.append(value) if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" % - (hostname, ', '.join(map(repr, dnsnames)))) + raise CertificateError( + "hostname %r " + "doesn't match either of %s" + % (hostname, ", ".join(map(repr, dnsnames))) + ) elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" % - (hostname, dnsnames[0])) + raise CertificateError( + "hostname %r " "doesn't match %r" % (hostname, dnsnames[0]) + ) else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") + raise CertificateError( + "no appropriate commonName or " "subjectAltName fields were found" + ) try: @@ -217,7 +261,7 @@ except ImportError: # pragma: no cover # Additionally check that `file` is not a directory, as on Windows # directories pass the os.access check. def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn)) + return os.path.exists(fn) and os.access(fn, mode) and not os.path.isdir(fn) # If we're given a path with a directory part, look it up directly rather # than referring to PATH directories. This includes checking relative to the @@ -269,7 +313,7 @@ except ImportError: # pragma: no cover from zipfile import ZipFile as BaseZipFile -if hasattr(BaseZipFile, '__enter__'): # pragma: no cover +if hasattr(BaseZipFile, "__enter__"): # pragma: no cover ZipFile = BaseZipFile else: # pragma: no cover from zipfile import ZipExtFile as BaseZipExtFile @@ -306,13 +350,13 @@ except ImportError: # pragma: no cover def python_implementation(): """Return a string identifying the Python implementation.""" - if 'PyPy' in sys.version: - return 'PyPy' - if os.name == 'java': - return 'Jython' - if sys.version.startswith('IronPython'): - return 'IronPython' - return 'CPython' + if "PyPy" in sys.version: + return "PyPy" + if os.name == "java": + return "Jython" + if sys.version.startswith("IronPython"): + return "IronPython" + return "CPython" import sysconfig @@ -336,11 +380,11 @@ except AttributeError: # pragma: no cover # sys.getfilesystemencoding(): the return value is "the user’s preference # according to the result of nl_langinfo(CODESET), or None if the # nl_langinfo(CODESET) failed." - _fsencoding = sys.getfilesystemencoding() or 'utf-8' - if _fsencoding == 'mbcs': - _fserrors = 'strict' + _fsencoding = sys.getfilesystemencoding() or "utf-8" + if _fsencoding == "mbcs": + _fserrors = "strict" else: - _fserrors = 'surrogateescape' + _fserrors = "surrogateescape" def fsencode(filename): if isinstance(filename, bytes): @@ -348,8 +392,7 @@ except AttributeError: # pragma: no cover elif isinstance(filename, text_type): return filename.encode(_fsencoding, _fserrors) else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) + raise TypeError("expect bytes or str, not %s" % type(filename).__name__) def fsdecode(filename): if isinstance(filename, text_type): @@ -357,8 +400,7 @@ except AttributeError: # pragma: no cover elif isinstance(filename, bytes): return filename.decode(_fsencoding, _fserrors) else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) + raise TypeError("expect bytes or str, not %s" % type(filename).__name__) try: @@ -374,8 +416,9 @@ except ImportError: # pragma: no cover enc = orig_enc[:12].lower().replace("_", "-") if enc == "utf-8" or enc.startswith("utf-8-"): return "utf-8" - if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ - enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or enc.startswith( + ("latin-1-", "iso-8859-1-", "iso-latin-1-") + ): return "iso-8859-1" return orig_enc @@ -402,24 +445,24 @@ except ImportError: # pragma: no cover filename = None bom_found = False encoding = None - default = 'utf-8' + default = "utf-8" def read_or_stop(): try: return readline() except StopIteration: - return b'' + return b"" def find_cookie(line): try: # Decode as UTF-8. Either the line is an encoding declaration, # in which case it should be pure ASCII, or it must be UTF-8 # per default encoding. - line_string = line.decode('utf-8') + line_string = line.decode("utf-8") except UnicodeDecodeError: msg = "invalid or missing encoding declaration" if filename is not None: - msg = '{} for {!r}'.format(msg, filename) + msg = "{} for {!r}".format(msg, filename) raise SyntaxError(msg) matches = cookie_re.findall(line_string) @@ -433,27 +476,25 @@ except ImportError: # pragma: no cover if filename is None: msg = "unknown encoding: " + encoding else: - msg = "unknown encoding for {!r}: {}".format( - filename, encoding) + msg = "unknown encoding for {!r}: {}".format(filename, encoding) raise SyntaxError(msg) if bom_found: - if codec.name != 'utf-8': + if codec.name != "utf-8": # This behaviour mimics the Python interpreter if filename is None: - msg = 'encoding problem: utf-8' + msg = "encoding problem: utf-8" else: - msg = 'encoding problem for {!r}: utf-8'.format( - filename) + msg = "encoding problem for {!r}: utf-8".format(filename) raise SyntaxError(msg) - encoding += '-sig' + encoding += "-sig" return encoding first = read_or_stop() if first.startswith(BOM_UTF8): bom_found = True first = first[3:] - default = 'utf-8-sig' + default = "utf-8-sig" if not first: return default, [] @@ -491,11 +532,11 @@ except ImportError: # pragma: no cover from reprlib import recursive_repr as _recursive_repr except ImportError: - def _recursive_repr(fillvalue='...'): - ''' + def _recursive_repr(fillvalue="..."): + """ Decorator to make a repr function return fillvalue for a recursive call - ''' + """ def decorating_function(user_function): repr_running = set() @@ -512,17 +553,16 @@ except ImportError: # pragma: no cover return result # Can't use functools.wraps() here because of bootstrap issues - wrapper.__module__ = getattr(user_function, '__module__') - wrapper.__doc__ = getattr(user_function, '__doc__') - wrapper.__name__ = getattr(user_function, '__name__') - wrapper.__annotations__ = getattr(user_function, - '__annotations__', {}) + wrapper.__module__ = getattr(user_function, "__module__") + wrapper.__doc__ = getattr(user_function, "__doc__") + wrapper.__name__ = getattr(user_function, "__name__") + wrapper.__annotations__ = getattr(user_function, "__annotations__", {}) return wrapper return decorating_function class ChainMap(MutableMapping): - ''' + """ A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. @@ -532,13 +572,13 @@ except ImportError: # pragma: no cover Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. - ''' + """ def __init__(self, *maps): - '''Initialize a ChainMap by setting *maps* to the given mappings. + """Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. - ''' + """ self.maps = list(maps) or [{}] # always at least one map def __missing__(self, key): @@ -547,19 +587,16 @@ except ImportError: # pragma: no cover def __getitem__(self, key): for mapping in self.maps: try: - return mapping[ - key] # can't use 'key in mapping' with defaultdict + return mapping[key] # can't use 'key in mapping' with defaultdict except KeyError: pass - return self.__missing__( - key) # support subclasses that define __missing__ + return self.__missing__(key) # support subclasses that define __missing__ def get(self, key, default=None): return self[key] if key in self else default def __len__(self): - return len(set().union( - *self.maps)) # reuses stored hash values if possible + return len(set().union(*self.maps)) # reuses stored hash values if possible def __iter__(self): return iter(set().union(*self.maps)) @@ -572,27 +609,28 @@ except ImportError: # pragma: no cover @_recursive_repr() def __repr__(self): - return '{0.__class__.__name__}({1})'.format( - self, ', '.join(map(repr, self.maps))) + return "{0.__class__.__name__}({1})".format( + self, ", ".join(map(repr, self.maps)) + ) @classmethod def fromkeys(cls, iterable, *args): - 'Create a ChainMap with a single dict created from the iterable.' + "Create a ChainMap with a single dict created from the iterable." return cls(dict.fromkeys(iterable, *args)) def copy(self): - 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' + "New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]" return self.__class__(self.maps[0].copy(), *self.maps[1:]) __copy__ = copy def new_child(self): # like Django's Context.push() - 'New ChainMap with a new dict followed by all previous maps.' + "New ChainMap with a new dict followed by all previous maps." return self.__class__({}, *self.maps) @property def parents(self): # like Django's Context.pop() - 'New ChainMap from maps[1:].' + "New ChainMap from maps[1:]." return self.__class__(*self.maps[1:]) def __setitem__(self, key, value): @@ -602,26 +640,24 @@ except ImportError: # pragma: no cover try: del self.maps[0][key] except KeyError: - raise KeyError( - 'Key not found in the first mapping: {!r}'.format(key)) + raise KeyError("Key not found in the first mapping: {!r}".format(key)) def popitem(self): - 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' + "Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty." try: return self.maps[0].popitem() except KeyError: - raise KeyError('No keys found in the first mapping.') + raise KeyError("No keys found in the first mapping.") def pop(self, key, *args): - 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' + "Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0]." try: return self.maps[0].pop(key, *args) except KeyError: - raise KeyError( - 'Key not found in the first mapping: {!r}'.format(key)) + raise KeyError("Key not found in the first mapping: {!r}".format(key)) def clear(self): - 'Clear maps[0], leaving maps[1:] intact.' + "Clear maps[0], leaving maps[1:] intact." self.maps[0].clear() @@ -630,13 +666,13 @@ try: except ImportError: # pragma: no cover def cache_from_source(path, debug_override=None): - assert path.endswith('.py') + assert path.endswith(".py") if debug_override is None: debug_override = __debug__ if debug_override: - suffix = 'c' + suffix = "c" else: - suffix = 'o' + suffix = "o" return path + suffix @@ -657,7 +693,7 @@ except ImportError: # pragma: no cover pass class OrderedDict(dict): - 'Dictionary that remembers insertion order' + "Dictionary that remembers insertion order" # An inherited dict maps keys to values. # The inherited dict provides __getitem__, __len__, __contains__, and get. @@ -670,14 +706,13 @@ except ImportError: # pragma: no cover # Each link is stored as a list of length three: [PREV, NEXT, KEY]. def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for + """Initialize an ordered dictionary. Signature is the same as for regular dictionaries, but keyword arguments are not recommended because their insertion order is arbitrary. - ''' + """ if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % - len(args)) + raise TypeError("expected at most 1 arguments, got %d" % len(args)) try: self.__root except AttributeError: @@ -687,7 +722,7 @@ except ImportError: # pragma: no cover self.__update(*args, **kwds) def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' + "od.__setitem__(i, y) <==> od[i]=y" # Setting a new item creates a new link which goes at the end of the linked # list, and the inherited dictionary is updated with the new key/value pair. if key not in self: @@ -697,7 +732,7 @@ except ImportError: # pragma: no cover dict_setitem(self, key, value) def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' + "od.__delitem__(y) <==> del od[y]" # Deleting an existing item uses self.__map to find the link which is # then removed by updating the links in the predecessor and successor nodes. dict_delitem(self, key) @@ -706,7 +741,7 @@ except ImportError: # pragma: no cover link_next[0] = link_prev def __iter__(self): - 'od.__iter__() <==> iter(od)' + "od.__iter__() <==> iter(od)" root = self.__root curr = root[1] while curr is not root: @@ -714,7 +749,7 @@ except ImportError: # pragma: no cover curr = curr[1] def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' + "od.__reversed__() <==> reversed(od)" root = self.__root curr = root[0] while curr is not root: @@ -722,7 +757,7 @@ except ImportError: # pragma: no cover curr = curr[0] def clear(self): - 'od.clear() -> None. Remove all items from od.' + "od.clear() -> None. Remove all items from od." try: for node in self.__map.itervalues(): del node[:] @@ -734,12 +769,12 @@ except ImportError: # pragma: no cover dict.clear(self) def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. + """od.popitem() -> (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. - ''' + """ if not self: - raise KeyError('dictionary is empty') + raise KeyError("dictionary is empty") root = self.__root if last: link = root[0] @@ -759,45 +794,47 @@ except ImportError: # pragma: no cover # -- the following methods do not depend on the internal structure -- def keys(self): - 'od.keys() -> list of keys in od' + "od.keys() -> list of keys in od" return list(self) def values(self): - 'od.values() -> list of values in od' + "od.values() -> list of values in od" return [self[key] for key in self] def items(self): - 'od.items() -> list of (key, value) pairs in od' + "od.items() -> list of (key, value) pairs in od" return [(key, self[key]) for key in self] def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' + "od.iterkeys() -> an iterator over the keys in od" return iter(self) def itervalues(self): - 'od.itervalues -> an iterator over the values in od' + "od.itervalues -> an iterator over the values in od" for k in self: yield self[k] def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' + "od.iteritems -> an iterator over the (key, value) items in od" for k in self: yield (k, self[k]) def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + """od.update(E, **F) -> None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v - ''' + """ if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args), )) + raise TypeError( + "update() takes at most 2 positional " + "arguments (%d given)" % (len(args),) + ) elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') + raise TypeError("update() takes at least 1 argument (0 given)") self = args[0] # Make progressively weaker assumptions about "other" other = () @@ -806,7 +843,7 @@ except ImportError: # pragma: no cover if isinstance(other, dict): for key in other: self[key] = other[key] - elif hasattr(other, 'keys'): + elif hasattr(other, "keys"): for key in other.keys(): self[key] = other[key] else: @@ -820,10 +857,10 @@ except ImportError: # pragma: no cover __marker = object() def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + """od.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. - ''' + """ if key in self: result = self[key] del self[key] @@ -833,60 +870,59 @@ except ImportError: # pragma: no cover return default def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + "od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od" if key in self: return self[key] self[key] = default return default def __repr__(self, _repr_running=None): - 'od.__repr__() <==> repr(od)' + "od.__repr__() <==> repr(od)" if not _repr_running: _repr_running = {} call_key = id(self), _get_ident() if call_key in _repr_running: - return '...' + return "..." _repr_running[call_key] = 1 try: if not self: - return '%s()' % (self.__class__.__name__, ) - return '%s(%r)' % (self.__class__.__name__, self.items()) + return "%s()" % (self.__class__.__name__,) + return "%s(%r)" % (self.__class__.__name__, self.items()) finally: del _repr_running[call_key] def __reduce__(self): - 'Return state information for pickling' + "Return state information for pickling" items = [[k, self[k]] for k in self] inst_dict = vars(self).copy() for k in vars(OrderedDict()): inst_dict.pop(k, None) if inst_dict: - return (self.__class__, (items, ), inst_dict) - return self.__class__, (items, ) + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) def copy(self): - 'od.copy() -> a shallow copy of od' + "od.copy() -> a shallow copy of od" return self.__class__(self) @classmethod def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + """OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S and values equal to v (which defaults to None). - ''' + """ d = cls() for key in iterable: d[key] = value return d def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + """od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. - ''' + """ if isinstance(other, OrderedDict): - return len(self) == len( - other) and self.items() == other.items() + return len(self) == len(other) and self.items() == other.items() return dict.__eq__(self, other) def __ne__(self, other): @@ -910,12 +946,12 @@ except ImportError: # pragma: no cover try: from logging.config import BaseConfigurator, valid_ident except ImportError: # pragma: no cover - IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) + IDENTIFIER = re.compile("^[a-z_][a-z0-9_]*$", re.I) def valid_ident(s): m = IDENTIFIER.match(s) if not m: - raise ValueError('Not a valid Python identifier: %r' % s) + raise ValueError("Not a valid Python identifier: %r" % s) return True # The ConvertingXXX classes are wrappers around standard Python containers, @@ -936,8 +972,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -948,8 +983,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -958,8 +992,7 @@ except ImportError: # pragma: no cover value = dict.pop(self, key, default) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -973,8 +1006,7 @@ except ImportError: # pragma: no cover # If the converted value is different, save for next time if value is not result: self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -983,8 +1015,7 @@ except ImportError: # pragma: no cover value = list.pop(self, idx) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self return result @@ -995,8 +1026,7 @@ except ImportError: # pragma: no cover value = tuple.__getitem__(self, key) result = self.configurator.convert(value) if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): + if type(result) in (ConvertingDict, ConvertingList, ConvertingTuple): result.parent = self result.key = key return result @@ -1006,16 +1036,16 @@ except ImportError: # pragma: no cover The configurator base class which defines some useful defaults. """ - CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') + CONVERT_PATTERN = re.compile(r"^(?P[a-z]+)://(?P.*)$") - WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') - DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') - INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') - DIGIT_PATTERN = re.compile(r'^\d+$') + WORD_PATTERN = re.compile(r"^\s*(\w+)\s*") + DOT_PATTERN = re.compile(r"^\.\s*(\w+)\s*") + INDEX_PATTERN = re.compile(r"^\[\s*(\w+)\s*\]\s*") + DIGIT_PATTERN = re.compile(r"^\d+$") value_converters = { - 'ext': 'ext_convert', - 'cfg': 'cfg_convert', + "ext": "ext_convert", + "cfg": "cfg_convert", } # We might want to use a different one, e.g. importlib @@ -1030,12 +1060,12 @@ except ImportError: # pragma: no cover Resolve strings to objects using standard import and attribute syntax. """ - name = s.split('.') + name = s.split(".") used = name.pop(0) try: found = self.importer(used) for frag in name: - used += '.' + frag + used += "." + frag try: found = getattr(found, frag) except AttributeError: @@ -1044,7 +1074,7 @@ except ImportError: # pragma: no cover return found except ImportError: e, tb = sys.exc_info()[1:] - v = ValueError('Cannot resolve %r: %s' % (s, e)) + v = ValueError("Cannot resolve %r: %s" % (s, e)) v.__cause__, v.__traceback__ = e, tb raise v @@ -1059,7 +1089,7 @@ except ImportError: # pragma: no cover if m is None: raise ValueError("Unable to convert %r" % value) else: - rest = rest[m.end():] + rest = rest[m.end() :] d = self.config[m.groups()[0]] while rest: m = self.DOT_PATTERN.match(rest) @@ -1073,17 +1103,16 @@ except ImportError: # pragma: no cover d = d[idx] else: try: - n = int( - idx - ) # try as number first (most likely) + n = int(idx) # try as number first (most likely) d = d[n] except TypeError: d = d[idx] if m: - rest = rest[m.end():] + rest = rest[m.end() :] else: - raise ValueError('Unable to convert ' - '%r at %r' % (value, rest)) + raise ValueError( + "Unable to convert " "%r at %r" % (value, rest) + ) # rest should be empty return d @@ -1093,12 +1122,10 @@ except ImportError: # pragma: no cover replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. """ - if not isinstance(value, ConvertingDict) and isinstance( - value, dict): + if not isinstance(value, ConvertingDict) and isinstance(value, dict): value = ConvertingDict(value) value.configurator = self - elif not isinstance(value, ConvertingList) and isinstance( - value, list): + elif not isinstance(value, ConvertingList) and isinstance(value, list): value = ConvertingList(value) value.configurator = self elif not isinstance(value, ConvertingTuple) and isinstance(value, tuple): @@ -1108,20 +1135,20 @@ except ImportError: # pragma: no cover m = self.CONVERT_PATTERN.match(value) if m: d = m.groupdict() - prefix = d['prefix'] + prefix = d["prefix"] converter = self.value_converters.get(prefix, None) if converter: - suffix = d['suffix'] + suffix = d["suffix"] converter = getattr(self, converter) value = converter(suffix) return value def configure_custom(self, config): """Configure an object with a user-supplied factory.""" - c = config.pop('()') + c = config.pop("()") if not callable(c): c = self.resolve(c) - props = config.pop('.', None) + props = config.pop(".", None) # Check for valid identifiers kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) result = c(**kwargs) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py index fef52aa..bb608c9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py @@ -21,14 +21,14 @@ from .util import cached_property, get_cache_base, Cache logger = logging.getLogger(__name__) -cache = None # created when needed +cache = None # created when needed class ResourceCache(Cache): def __init__(self, base=None): if base is None: # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('resource-cache')) + base = os.path.join(get_cache_base(), str("resource-cache")) super(ResourceCache, self).__init__(base) def is_stale(self, resource, path): @@ -63,7 +63,7 @@ class ResourceCache(Cache): stale = self.is_stale(resource, path) if stale: # write the bytes of the resource to the cache location - with open(result, 'wb') as f: + with open(result, "wb") as f: f.write(resource.bytes) return result @@ -80,7 +80,8 @@ class Resource(ResourceBase): not normally instantiated by user code, but rather by a :class:`ResourceFinder` which manages the resource. """ - is_container = False # Backwards compatibility + + is_container = False # Backwards compatibility def as_stream(self): """ @@ -108,7 +109,7 @@ class Resource(ResourceBase): class ResourceContainer(ResourceBase): - is_container = True # Backwards compatibility + is_container = True # Backwards compatibility @cached_property def resources(self): @@ -120,15 +121,15 @@ class ResourceFinder(object): Resource finder for file system resources. """ - if sys.platform.startswith('java'): - skipped_extensions = ('.pyc', '.pyo', '.class') + if sys.platform.startswith("java"): + skipped_extensions = (".pyc", ".pyo", ".class") else: - skipped_extensions = ('.pyc', '.pyo') + skipped_extensions = (".pyc", ".pyo") def __init__(self, module): self.module = module - self.loader = getattr(module, '__loader__', None) - self.base = os.path.dirname(getattr(module, '__file__', '')) + self.loader = getattr(module, "__loader__", None) + self.base = os.path.dirname(getattr(module, "__file__", "")) def _adjust_path(self, path): return os.path.realpath(path) @@ -136,10 +137,10 @@ class ResourceFinder(object): def _make_path(self, resource_name): # Issue #50: need to preserve type of path on Python 2.x # like os.path._get_sep - if isinstance(resource_name, bytes): # should only happen on 2.x - sep = b'/' + if isinstance(resource_name, bytes): # should only happen on 2.x + sep = b"/" else: - sep = '/' + sep = "/" parts = resource_name.split(sep) parts.insert(0, self.base) result = os.path.join(*parts) @@ -164,10 +165,10 @@ class ResourceFinder(object): return result def get_stream(self, resource): - return open(resource.path, 'rb') + return open(resource.path, "rb") def get_bytes(self, resource): - with open(resource.path, 'rb') as f: + with open(resource.path, "rb") as f: return f.read() def get_size(self, resource): @@ -175,8 +176,8 @@ class ResourceFinder(object): def get_resources(self, resource): def allowed(f): - return (f != '__pycache__' and not - f.endswith(self.skipped_extensions)) + return f != "__pycache__" and not f.endswith(self.skipped_extensions) + return set([f for f in os.listdir(resource.path) if allowed(f)]) def is_container(self, resource): @@ -197,7 +198,7 @@ class ResourceFinder(object): if not rname: new_name = name else: - new_name = '/'.join([rname, name]) + new_name = "/".join([rname, name]) child = self.find(new_name) if child.is_container: todo.append(child) @@ -209,12 +210,13 @@ class ZipResourceFinder(ResourceFinder): """ Resource finder for resources in .zip files. """ + def __init__(self, module): super(ZipResourceFinder, self).__init__(module) archive = self.loader.archive self.prefix_len = 1 + len(archive) # PyPy doesn't have a _files attr on zipimporter, and you can't set one - if hasattr(self.loader, '_files'): + if hasattr(self.loader, "_files"): self._files = self.loader._files else: self._files = zipimport._zip_directory_cache[archive] @@ -224,7 +226,7 @@ class ZipResourceFinder(ResourceFinder): return path def _find(self, path): - path = path[self.prefix_len:] + path = path[self.prefix_len :] if path in self._files: result = True else: @@ -236,14 +238,14 @@ class ZipResourceFinder(ResourceFinder): except IndexError: result = False if not result: - logger.debug('_find failed: %r %r', path, self.loader.prefix) + logger.debug("_find failed: %r %r", path, self.loader.prefix) else: - logger.debug('_find worked: %r %r', path, self.loader.prefix) + logger.debug("_find worked: %r %r", path, self.loader.prefix) return result def get_cache_info(self, resource): prefix = self.loader.archive - path = resource.path[1 + len(prefix):] + path = resource.path[1 + len(prefix) :] return prefix, path def get_bytes(self, resource): @@ -253,11 +255,11 @@ class ZipResourceFinder(ResourceFinder): return io.BytesIO(self.get_bytes(resource)) def get_size(self, resource): - path = resource.path[self.prefix_len:] + path = resource.path[self.prefix_len :] return self._files[path][3] def get_resources(self, resource): - path = resource.path[self.prefix_len:] + path = resource.path[self.prefix_len :] if path and path[-1] != os.sep: path += os.sep plen = len(path) @@ -267,12 +269,12 @@ class ZipResourceFinder(ResourceFinder): if not self.index[i].startswith(path): break s = self.index[i][plen:] - result.add(s.split(os.sep, 1)[0]) # only immediate children + result.add(s.split(os.sep, 1)[0]) # only immediate children i += 1 return result def _is_directory(self, path): - path = path[self.prefix_len:] + path = path[self.prefix_len :] if path and path[-1] != os.sep: path += os.sep i = bisect.bisect(self.index, path) @@ -285,7 +287,7 @@ class ZipResourceFinder(ResourceFinder): _finder_registry = { type(None): ResourceFinder, - zipimport.zipimporter: ZipResourceFinder + zipimport.zipimporter: ZipResourceFinder, } try: @@ -322,20 +324,21 @@ def finder(package): if package not in sys.modules: __import__(package) module = sys.modules[package] - path = getattr(module, '__path__', None) + path = getattr(module, "__path__", None) if path is None: - raise DistlibException('You cannot get a finder for a module, ' - 'only for a package') - loader = getattr(module, '__loader__', None) + raise DistlibException( + "You cannot get a finder for a module, " "only for a package" + ) + loader = getattr(module, "__loader__", None) finder_maker = _finder_registry.get(type(loader)) if finder_maker is None: - raise DistlibException('Unable to locate finder for %r' % package) + raise DistlibException("Unable to locate finder for %r" % package) result = finder_maker(module) _finder_cache[package] = result return result -_dummy_module = types.ModuleType(str('__dummy__')) +_dummy_module = types.ModuleType(str("__dummy__")) def finder_for_path(path): @@ -352,7 +355,7 @@ def finder_for_path(path): finder = _finder_registry.get(type(loader)) if finder: module = _dummy_module - module.__file__ = os.path.join(path, '') + module.__file__ = os.path.join(path, "") module.__loader__ = loader result = finder(module) return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py index 195dc3f..41fed8f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py @@ -15,11 +15,18 @@ from zipfile import ZipInfo from .compat import sysconfig, detect_encoding, ZipFile from .resources import finder -from .util import (FileOperator, get_export_entry, convert_path, get_executable, get_platform, in_venv) +from .util import ( + FileOperator, + get_export_entry, + convert_path, + get_executable, + get_platform, + in_venv, +) logger = logging.getLogger(__name__) -_DEFAULT_MANIFEST = ''' +_DEFAULT_MANIFEST = """ -'''.strip() +""".strip() # check if Python is called on the first line with this expression -FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') -SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- +FIRST_LINE_RE = re.compile(b"^#!.*pythonw?[0-9.]*([ \t].*)?$") +SCRIPT_TEMPLATE = r"""# -*- coding: utf-8 -*- import re import sys if __name__ == '__main__': from %(module)s import %(import_name)s sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(%(func)s()) -''' +""" # Pre-fetch the contents of all executable wrapper stubs. # This is to address https://github.com/pypa/pip/issues/12666. @@ -56,10 +63,10 @@ if __name__ == '__main__': # location where it was imported from. So we load everything into memory in # advance. -if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): +if os.name == "nt" or (os.name == "java" and os._name == "nt"): # Issue 31: don't hardcode an absolute package name, but # determine it relative to the current package - DISTLIB_PACKAGE = __name__.rsplit('.', 1)[0] + DISTLIB_PACKAGE = __name__.rsplit(".", 1)[0] WRAPPERS = { r.name: r.bytes @@ -69,14 +76,14 @@ if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): def enquote_executable(executable): - if ' ' in executable: + if " " in executable: # make sure we quote only the executable in case of env # for example /usr/bin/env "/dir with spaces/bin/jython" # instead of "/usr/bin/env /dir with spaces/bin/jython" # otherwise whole - if executable.startswith('/usr/bin/env '): - env, _executable = executable.split(' ', 1) - if ' ' in _executable and not _executable.startswith('"'): + if executable.startswith("/usr/bin/env "): + env, _executable = executable.split(" ", 1) + if " " in _executable and not _executable.startswith('"'): executable = '%s "%s"' % (env, _executable) else: if not executable.startswith('"'): @@ -93,32 +100,37 @@ class ScriptMaker(object): A class to copy or create scripts from source scripts or callable specifications. """ + script_template = SCRIPT_TEMPLATE executable = None # for shebangs - def __init__(self, source_dir, target_dir, add_launchers=True, dry_run=False, fileop=None): + def __init__( + self, source_dir, target_dir, add_launchers=True, dry_run=False, fileop=None + ): self.source_dir = source_dir self.target_dir = target_dir self.add_launchers = add_launchers self.force = False self.clobber = False # It only makes sense to set mode bits on POSIX. - self.set_mode = (os.name == 'posix') or (os.name == 'java' and os._name == 'posix') - self.variants = set(('', 'X.Y')) + self.set_mode = (os.name == "posix") or ( + os.name == "java" and os._name == "posix" + ) + self.variants = set(("", "X.Y")) self._fileop = fileop or FileOperator(dry_run) - self._is_nt = os.name == 'nt' or (os.name == 'java' and os._name == 'nt') + self._is_nt = os.name == "nt" or (os.name == "java" and os._name == "nt") self.version_info = sys.version_info def _get_alternate_executable(self, executable, options): - if options.get('gui', False) and self._is_nt: # pragma: no cover + if options.get("gui", False) and self._is_nt: # pragma: no cover dn, fn = os.path.split(executable) - fn = fn.replace('python', 'pythonw') + fn = fn.replace("python", "pythonw") executable = os.path.join(dn, fn) return executable - if sys.platform.startswith('java'): # pragma: no cover + if sys.platform.startswith("java"): # pragma: no cover def _is_shell(self, executable): """ @@ -127,9 +139,9 @@ class ScriptMaker(object): """ try: with open(executable) as fp: - return fp.read(2) == '#!' + return fp.read(2) == "#!" except (OSError, IOError): - logger.warning('Failed to open %s', executable) + logger.warning("Failed to open %s", executable) return False def _fix_jython_executable(self, executable): @@ -137,12 +149,12 @@ class ScriptMaker(object): # Workaround for Jython is not needed on Linux systems. import java - if java.lang.System.getProperty('os.name') == 'Linux': + if java.lang.System.getProperty("os.name") == "Linux": return executable - elif executable.lower().endswith('jython.exe'): + elif executable.lower().endswith("jython.exe"): # Use wrapper exe for Jython on Windows return executable - return '/usr/bin/env %s' % executable + return "/usr/bin/env %s" % executable def _build_shebang(self, executable, post_interp): """ @@ -155,7 +167,7 @@ class ScriptMaker(object): See also: http://www.in-ulm.de/~mascheck/various/shebang/#length https://hg.mozilla.org/mozilla-central/file/tip/mach """ - if os.name != 'posix': + if os.name != "posix": simple_shebang = True elif getattr(sys, "cross_compiling", False): # In a cross-compiling environment, the shebang will likely be a @@ -166,21 +178,23 @@ class ScriptMaker(object): else: # Add 3 for '#!' prefix and newline suffix. shebang_length = len(executable) + len(post_interp) + 3 - if sys.platform == 'darwin': + if sys.platform == "darwin": max_shebang_length = 512 else: max_shebang_length = 127 - simple_shebang = ((b' ' not in executable) and (shebang_length <= max_shebang_length)) + simple_shebang = (b" " not in executable) and ( + shebang_length <= max_shebang_length + ) if simple_shebang: - result = b'#!' + executable + post_interp + b'\n' + result = b"#!" + executable + post_interp + b"\n" else: - result = b'#!/bin/sh\n' + result = b"#!/bin/sh\n" result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' result += b"' '''\n" return result - def _get_shebang(self, encoding, post_interp=b'', options=None): + def _get_shebang(self, encoding, post_interp=b"", options=None): enquote = True if self.executable: executable = self.executable @@ -188,21 +202,31 @@ class ScriptMaker(object): elif not sysconfig.is_python_build(): executable = get_executable() elif in_venv(): # pragma: no cover - executable = os.path.join(sysconfig.get_path('scripts'), 'python%s' % sysconfig.get_config_var('EXE')) + executable = os.path.join( + sysconfig.get_path("scripts"), + "python%s" % sysconfig.get_config_var("EXE"), + ) else: # pragma: no cover - if os.name == 'nt': + if os.name == "nt": # for Python builds from source on Windows, no Python executables with # a version suffix are created, so we use python.exe - executable = os.path.join(sysconfig.get_config_var('BINDIR'), - 'python%s' % (sysconfig.get_config_var('EXE'))) + executable = os.path.join( + sysconfig.get_config_var("BINDIR"), + "python%s" % (sysconfig.get_config_var("EXE")), + ) else: executable = os.path.join( - sysconfig.get_config_var('BINDIR'), - 'python%s%s' % (sysconfig.get_config_var('VERSION'), sysconfig.get_config_var('EXE'))) + sysconfig.get_config_var("BINDIR"), + "python%s%s" + % ( + sysconfig.get_config_var("VERSION"), + sysconfig.get_config_var("EXE"), + ), + ) if options: executable = self._get_alternate_executable(executable, options) - if sys.platform.startswith('java'): # pragma: no cover + if sys.platform.startswith("java"): # pragma: no cover executable = self._fix_jython_executable(executable) # Normalise case for Windows - COMMENTED OUT @@ -220,11 +244,14 @@ class ScriptMaker(object): executable = enquote_executable(executable) # Issue #51: don't use fsencode, since we later try to # check that the shebang is decodable using utf-8. - executable = executable.encode('utf-8') + executable = executable.encode("utf-8") # in case of IronPython, play safe and enable frames support - if (sys.platform == 'cli' and '-X:Frames' not in post_interp and - '-X:FullFrames' not in post_interp): # pragma: no cover - post_interp += b' -X:Frames' + if ( + sys.platform == "cli" + and "-X:Frames" not in post_interp + and "-X:FullFrames" not in post_interp + ): # pragma: no cover + post_interp += b" -X:Frames" shebang = self._build_shebang(executable, post_interp) # Python parser starts to read a script using UTF-8 until # it gets a #coding:xxx cookie. The shebang has to be the @@ -232,23 +259,28 @@ class ScriptMaker(object): # written before. So the shebang has to be decodable from # UTF-8. try: - shebang.decode('utf-8') + shebang.decode("utf-8") except UnicodeDecodeError: # pragma: no cover - raise ValueError('The shebang (%r) is not decodable from utf-8' % shebang) + raise ValueError("The shebang (%r) is not decodable from utf-8" % shebang) # If the script is encoded to a custom encoding (use a # #coding:xxx cookie), the shebang has to be decodable from # the script encoding too. - if encoding != 'utf-8': + if encoding != "utf-8": try: shebang.decode(encoding) except UnicodeDecodeError: # pragma: no cover - raise ValueError('The shebang (%r) is not decodable ' - 'from the script encoding (%r)' % (shebang, encoding)) + raise ValueError( + "The shebang (%r) is not decodable " + "from the script encoding (%r)" % (shebang, encoding) + ) return shebang def _get_script_text(self, entry): return self.script_template % dict( - module=entry.prefix, import_name=entry.suffix.split('.')[0], func=entry.suffix) + module=entry.prefix, + import_name=entry.suffix.split(".")[0], + func=entry.suffix, + ) manifest = _DEFAULT_MANIFEST @@ -261,82 +293,90 @@ class ScriptMaker(object): if not use_launcher: script_bytes = shebang + script_bytes else: # pragma: no cover - if ext == 'py': - launcher = self._get_launcher('t') + if ext == "py": + launcher = self._get_launcher("t") else: - launcher = self._get_launcher('w') + launcher = self._get_launcher("w") stream = BytesIO() - with ZipFile(stream, 'w') as zf: - source_date_epoch = os.environ.get('SOURCE_DATE_EPOCH') + with ZipFile(stream, "w") as zf: + source_date_epoch = os.environ.get("SOURCE_DATE_EPOCH") if source_date_epoch: date_time = time.gmtime(int(source_date_epoch))[:6] - zinfo = ZipInfo(filename='__main__.py', date_time=date_time) + zinfo = ZipInfo(filename="__main__.py", date_time=date_time) zf.writestr(zinfo, script_bytes) else: - zf.writestr('__main__.py', script_bytes) + zf.writestr("__main__.py", script_bytes) zip_data = stream.getvalue() script_bytes = launcher + shebang + zip_data for name in names: outname = os.path.join(self.target_dir, name) if use_launcher: # pragma: no cover n, e = os.path.splitext(outname) - if e.startswith('.py'): + if e.startswith(".py"): outname = n - outname = '%s.exe' % outname + outname = "%s.exe" % outname try: self._fileop.write_binary_file(outname, script_bytes) except Exception: # Failed writing an executable - it might be in use. - logger.warning('Failed to write executable - trying to ' - 'use .deleteme logic') - dfname = '%s.deleteme' % outname + logger.warning( + "Failed to write executable - trying to " "use .deleteme logic" + ) + dfname = "%s.deleteme" % outname if os.path.exists(dfname): os.remove(dfname) # Not allowed to fail here os.rename(outname, dfname) # nor here self._fileop.write_binary_file(outname, script_bytes) - logger.debug('Able to replace executable using ' - '.deleteme logic') + logger.debug("Able to replace executable using " ".deleteme logic") try: os.remove(dfname) except Exception: pass # still in use - ignore error else: - if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover - outname = '%s.%s' % (outname, ext) + if self._is_nt and not outname.endswith("." + ext): # pragma: no cover + outname = "%s.%s" % (outname, ext) if os.path.exists(outname) and not self.clobber: - logger.warning('Skipping existing file %s', outname) + logger.warning("Skipping existing file %s", outname) continue self._fileop.write_binary_file(outname, script_bytes) if self.set_mode: self._fileop.set_executable_mode([outname]) filenames.append(outname) - variant_separator = '-' + variant_separator = "-" def get_script_filenames(self, name): result = set() - if '' in self.variants: + if "" in self.variants: result.add(name) - if 'X' in self.variants: - result.add('%s%s' % (name, self.version_info[0])) - if 'X.Y' in self.variants: - result.add('%s%s%s.%s' % (name, self.variant_separator, self.version_info[0], self.version_info[1])) + if "X" in self.variants: + result.add("%s%s" % (name, self.version_info[0])) + if "X.Y" in self.variants: + result.add( + "%s%s%s.%s" + % ( + name, + self.variant_separator, + self.version_info[0], + self.version_info[1], + ) + ) return result def _make_script(self, entry, filenames, options=None): - post_interp = b'' + post_interp = b"" if options: - args = options.get('interpreter_args', []) + args = options.get("interpreter_args", []) if args: - args = ' %s' % ' '.join(args) - post_interp = args.encode('utf-8') - shebang = self._get_shebang('utf-8', post_interp, options=options) - script = self._get_script_text(entry).encode('utf-8') + args = " %s" % " ".join(args) + post_interp = args.encode("utf-8") + shebang = self._get_shebang("utf-8", post_interp, options=options) + script = self._get_script_text(entry).encode("utf-8") scriptnames = self.get_script_filenames(entry.name) - if options and options.get('gui', False): - ext = 'pyw' + if options and options.get("gui", False): + ext = "pyw" else: - ext = 'py' + ext = "py" self._write_script(scriptnames, shebang, script, filenames, ext) def _copy_script(self, script, filenames): @@ -344,14 +384,14 @@ class ScriptMaker(object): script = os.path.join(self.source_dir, convert_path(script)) outname = os.path.join(self.target_dir, os.path.basename(script)) if not self.force and not self._fileop.newer(script, outname): - logger.debug('not copying %s (up-to-date)', script) + logger.debug("not copying %s (up-to-date)", script) return # Always open the file, but ignore failures in dry-run mode -- # that way, we'll get accurate feedback if we can read the # script. try: - f = open(script, 'rb') + f = open(script, "rb") except IOError: # pragma: no cover if not self.dry_run: raise @@ -359,13 +399,13 @@ class ScriptMaker(object): else: first_line = f.readline() if not first_line: # pragma: no cover - logger.warning('%s is an empty file (skipping)', script) + logger.warning("%s is an empty file (skipping)", script) return - match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) + match = FIRST_LINE_RE.match(first_line.replace(b"\r\n", b"\n")) if match: adjust = True - post_interp = match.group(1) or b'' + post_interp = match.group(1) or b"" if not adjust: if f: @@ -375,15 +415,15 @@ class ScriptMaker(object): self._fileop.set_executable_mode([outname]) filenames.append(outname) else: - logger.info('copying and adjusting %s -> %s', script, self.target_dir) + logger.info("copying and adjusting %s -> %s", script, self.target_dir) if not self._fileop.dry_run: encoding, lines = detect_encoding(f.readline) f.seek(0) shebang = self._get_shebang(encoding, post_interp) - if b'pythonw' in first_line: # pragma: no cover - ext = 'pyw' + if b"pythonw" in first_line: # pragma: no cover + ext = "pyw" else: - ext = 'py' + ext = "py" n = os.path.basename(outname) self._write_script([n], shebang, f.read(), filenames, ext) if f: @@ -397,20 +437,22 @@ class ScriptMaker(object): def dry_run(self, value): self._fileop.dry_run = value - if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover + if os.name == "nt" or (os.name == "java" and os._name == "nt"): # pragma: no cover # Executable launcher support. # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ def _get_launcher(self, kind): - if struct.calcsize('P') == 8: # 64-bit - bits = '64' + if struct.calcsize("P") == 8: # 64-bit + bits = "64" else: - bits = '32' - platform_suffix = '-arm' if get_platform() == 'win-arm64' else '' - name = '%s%s%s.exe' % (kind, bits, platform_suffix) + bits = "32" + platform_suffix = "-arm" if get_platform() == "win-arm64" else "" + name = "%s%s%s.exe" % (kind, bits, platform_suffix) if name not in WRAPPERS: - msg = ('Unable to find resource %s in package %s' % - (name, DISTLIB_PACKAGE)) + msg = "Unable to find resource %s in package %s" % ( + name, + DISTLIB_PACKAGE, + ) raise ValueError(msg) return WRAPPERS[name] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py index 0d5bd7a..a53bcf9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py @@ -14,6 +14,7 @@ import os import py_compile import re import socket + try: import ssl except ImportError: # pragma: no cover @@ -31,9 +32,28 @@ except ImportError: # pragma: no cover import time from . import DistlibException -from .compat import (string_types, text_type, shutil, raw_input, StringIO, cache_from_source, urlopen, urljoin, httplib, - xmlrpclib, HTTPHandler, BaseConfigurator, valid_ident, Container, configparser, URLError, ZipFile, - fsdecode, unquote, urlparse) +from .compat import ( + string_types, + text_type, + shutil, + raw_input, + StringIO, + cache_from_source, + urlopen, + urljoin, + httplib, + xmlrpclib, + HTTPHandler, + BaseConfigurator, + valid_ident, + Container, + configparser, + URLError, + ZipFile, + fsdecode, + unquote, + urlparse, +) logger = logging.getLogger(__name__) @@ -41,14 +61,14 @@ logger = logging.getLogger(__name__) # Requirement parsing code as per PEP 508 # -IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') -VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') -COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') -MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') -OR = re.compile(r'^or\b\s*') -AND = re.compile(r'^and\b\s*') -NON_SPACE = re.compile(r'(\S+)\s*') -STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') +IDENTIFIER = re.compile(r"^([\w\.-]+)\s*") +VERSION_IDENTIFIER = re.compile(r"^([\w\.*+-]+)\s*") +COMPARE_OP = re.compile(r"^(<=?|>=?|={2,3}|[~!]=)\s*") +MARKER_OP = re.compile(r"^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*") +OR = re.compile(r"^or\b\s*") +AND = re.compile(r"^and\b\s*") +NON_SPACE = re.compile(r"(\S+)\s*") +STRING_CHUNK = re.compile(r"([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)") def parse_marker(marker_string): @@ -66,14 +86,14 @@ def parse_marker(marker_string): m = IDENTIFIER.match(remaining) if m: result = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] elif not remaining: - raise SyntaxError('unexpected end of input') + raise SyntaxError("unexpected end of input") else: q = remaining[0] - if q not in '\'"': - raise SyntaxError('invalid expression: %s' % remaining) - oq = '\'"'.replace(q, '') + if q not in "'\"": + raise SyntaxError("invalid expression: %s" % remaining) + oq = "'\"".replace(q, "") remaining = remaining[1:] parts = [q] while remaining: @@ -86,22 +106,22 @@ def parse_marker(marker_string): else: m = STRING_CHUNK.match(remaining) if not m: - raise SyntaxError('error in string literal: %s' % remaining) + raise SyntaxError("error in string literal: %s" % remaining) parts.append(m.groups()[0]) - remaining = remaining[m.end():] + remaining = remaining[m.end() :] else: - s = ''.join(parts) - raise SyntaxError('unterminated string: %s' % s) + s = "".join(parts) + raise SyntaxError("unterminated string: %s" % s) parts.append(q) - result = ''.join(parts) + result = "".join(parts) remaining = remaining[1:].lstrip() # skip past closing quote return result, remaining def marker_expr(remaining): - if remaining and remaining[0] == '(': + if remaining and remaining[0] == "(": result, remaining = marker(remaining[1:].lstrip()) - if remaining[0] != ')': - raise SyntaxError('unterminated parenthesis: %s' % remaining) + if remaining[0] != ")": + raise SyntaxError("unterminated parenthesis: %s" % remaining) remaining = remaining[1:].lstrip() else: lhs, remaining = marker_var(remaining) @@ -110,9 +130,9 @@ def parse_marker(marker_string): if not m: break op = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_var(remaining) - lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} + lhs = {"op": op, "lhs": lhs, "rhs": rhs} result = lhs return result, remaining @@ -122,9 +142,9 @@ def parse_marker(marker_string): m = AND.match(remaining) if not m: break - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_expr(remaining) - lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} + lhs = {"op": "and", "lhs": lhs, "rhs": rhs} return lhs, remaining def marker(remaining): @@ -133,9 +153,9 @@ def parse_marker(marker_string): m = OR.match(remaining) if not m: break - remaining = remaining[m.end():] + remaining = remaining[m.end() :] rhs, remaining = marker_and(remaining) - lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} + lhs = {"op": "or", "lhs": lhs, "rhs": rhs} return lhs, remaining return marker(marker_string) @@ -147,41 +167,41 @@ def parse_requirement(req): whose attributes contain the various parts of the requirement. """ remaining = req.strip() - if not remaining or remaining.startswith('#'): + if not remaining or remaining.startswith("#"): return None m = IDENTIFIER.match(remaining) if not m: - raise SyntaxError('name expected: %s' % remaining) + raise SyntaxError("name expected: %s" % remaining) distname = m.groups()[0] - remaining = remaining[m.end():] + remaining = remaining[m.end() :] extras = mark_expr = versions = uri = None - if remaining and remaining[0] == '[': - i = remaining.find(']', 1) + if remaining and remaining[0] == "[": + i = remaining.find("]", 1) if i < 0: - raise SyntaxError('unterminated extra: %s' % remaining) + raise SyntaxError("unterminated extra: %s" % remaining) s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() + remaining = remaining[i + 1 :].lstrip() extras = [] while s: m = IDENTIFIER.match(s) if not m: - raise SyntaxError('malformed extra: %s' % s) + raise SyntaxError("malformed extra: %s" % s) extras.append(m.groups()[0]) - s = s[m.end():] + s = s[m.end() :] if not s: break - if s[0] != ',': - raise SyntaxError('comma expected in extras: %s' % s) + if s[0] != ",": + raise SyntaxError("comma expected in extras: %s" % s) s = s[1:].lstrip() if not extras: extras = None if remaining: - if remaining[0] == '@': + if remaining[0] == "@": # it's a URI remaining = remaining[1:].lstrip() m = NON_SPACE.match(remaining) if not m: - raise SyntaxError('invalid URI: %s' % remaining) + raise SyntaxError("invalid URI: %s" % remaining) uri = m.groups()[0] t = urlparse(uri) # there are issues with Python and URL parsing, so this test @@ -189,8 +209,8 @@ def parse_requirement(req): # always parse invalid URLs correctly - it should raise # exceptions for malformed URLs if not (t.scheme and t.netloc): - raise SyntaxError('Invalid URL: %s' % uri) - remaining = remaining[m.end():].lstrip() + raise SyntaxError("Invalid URL: %s" % uri) + remaining = remaining[m.end() :].lstrip() else: def get_versions(ver_remaining): @@ -204,14 +224,14 @@ def parse_requirement(req): versions = [] while True: op = m.groups()[0] - ver_remaining = ver_remaining[m.end():] + ver_remaining = ver_remaining[m.end() :] m = VERSION_IDENTIFIER.match(ver_remaining) if not m: - raise SyntaxError('invalid version: %s' % ver_remaining) + raise SyntaxError("invalid version: %s" % ver_remaining) v = m.groups()[0] versions.append((op, v)) - ver_remaining = ver_remaining[m.end():] - if not ver_remaining or ver_remaining[0] != ',': + ver_remaining = ver_remaining[m.end() :] + if not ver_remaining or ver_remaining[0] != ",": break ver_remaining = ver_remaining[1:].lstrip() # Some packages have a trailing comma which would break things @@ -220,19 +240,19 @@ def parse_requirement(req): break m = COMPARE_OP.match(ver_remaining) if not m: - raise SyntaxError('invalid constraint: %s' % ver_remaining) + raise SyntaxError("invalid constraint: %s" % ver_remaining) if not versions: versions = None return versions, ver_remaining - if remaining[0] != '(': + if remaining[0] != "(": versions, remaining = get_versions(remaining) else: - i = remaining.find(')', 1) + i = remaining.find(")", 1) if i < 0: - raise SyntaxError('unterminated parenthesis: %s' % remaining) + raise SyntaxError("unterminated parenthesis: %s" % remaining) s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() + remaining = remaining[i + 1 :].lstrip() # As a special diversion from PEP 508, allow a version number # a.b.c in parentheses as a synonym for ~= a.b.c (because this # is allowed in earlier PEPs) @@ -241,28 +261,35 @@ def parse_requirement(req): else: m = VERSION_IDENTIFIER.match(s) if not m: - raise SyntaxError('invalid constraint: %s' % s) + raise SyntaxError("invalid constraint: %s" % s) v = m.groups()[0] - s = s[m.end():].lstrip() + s = s[m.end() :].lstrip() if s: - raise SyntaxError('invalid constraint: %s' % s) - versions = [('~=', v)] + raise SyntaxError("invalid constraint: %s" % s) + versions = [("~=", v)] if remaining: - if remaining[0] != ';': - raise SyntaxError('invalid requirement: %s' % remaining) + if remaining[0] != ";": + raise SyntaxError("invalid requirement: %s" % remaining) remaining = remaining[1:].lstrip() mark_expr, remaining = parse_marker(remaining) - if remaining and remaining[0] != '#': - raise SyntaxError('unexpected trailing data: %s' % remaining) + if remaining and remaining[0] != "#": + raise SyntaxError("unexpected trailing data: %s" % remaining) if not versions: rs = distname else: - rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) - return Container(name=distname, extras=extras, constraints=versions, marker=mark_expr, url=uri, requirement=rs) + rs = "%s %s" % (distname, ", ".join(["%s %s" % con for con in versions])) + return Container( + name=distname, + extras=extras, + constraints=versions, + marker=mark_expr, + url=uri, + requirement=rs, + ) def get_resources_dests(resources_root, rules): @@ -270,10 +297,10 @@ def get_resources_dests(resources_root, rules): def get_rel_path(root, path): # normalizes and returns a lstripped-/-separated path - root = root.replace(os.path.sep, '/') - path = path.replace(os.path.sep, '/') + root = root.replace(os.path.sep, "/") + path = path.replace(os.path.sep, "/") assert path.startswith(root) - return path[len(root):].lstrip('/') + return path[len(root) :].lstrip("/") destinations = {} for base, suffix, dest in rules: @@ -286,18 +313,18 @@ def get_resources_dests(resources_root, rules): destinations.pop(resource_file, None) else: rel_path = get_rel_path(abs_base, abs_path) - rel_dest = dest.replace(os.path.sep, '/').rstrip('/') - destinations[resource_file] = rel_dest + '/' + rel_path + rel_dest = dest.replace(os.path.sep, "/").rstrip("/") + destinations[resource_file] = rel_dest + "/" + rel_path return destinations def in_venv(): - if hasattr(sys, 'real_prefix'): + if hasattr(sys, "real_prefix"): # virtualenv venvs result = True else: # PEP 405 venvs - result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) + result = sys.prefix != getattr(sys, "base_prefix", sys.prefix) return result @@ -331,7 +358,7 @@ def proceed(prompt, allowed_chars, error_prompt=None, default=None): if c in allowed_chars: break if error_prompt: - p = '%c: %s\n%s' % (c, error_prompt, prompt) + p = "%c: %s\n%s" % (c, error_prompt, prompt) return c @@ -348,16 +375,16 @@ def extract_by_key(d, keys): def read_exports(stream): if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) + stream = codecs.getreader("utf-8")(stream) # Try to load as JSON, falling back on legacy format data = stream.read() stream = StringIO(data) try: jdata = json.load(stream) - result = jdata['extensions']['python.exports']['exports'] + result = jdata["extensions"]["python.exports"]["exports"] for group, entries in result.items(): for k, v in entries.items(): - s = '%s = %s' % (k, v) + s = "%s = %s" % (k, v) entry = get_export_entry(s) assert entry is not None entries[k] = entry @@ -366,7 +393,7 @@ def read_exports(stream): stream.seek(0, 0) def read_stream(cp, stream): - if hasattr(cp, 'read_file'): + if hasattr(cp, "read_file"): cp.read_file(stream) else: cp.readfp(stream) @@ -384,7 +411,7 @@ def read_exports(stream): for key in cp.sections(): result[key] = entries = {} for name, value in cp.items(key): - s = '%s = %s' % (name, value) + s = "%s = %s" % (name, value) entry = get_export_entry(s) assert entry is not None # entry.dist = self @@ -395,7 +422,7 @@ def read_exports(stream): def write_exports(exports, stream): if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getwriter('utf-8')(stream) + stream = codecs.getwriter("utf-8")(stream) cp = configparser.ConfigParser() for k, v in exports.items(): # TODO check k, v for valid values @@ -404,9 +431,9 @@ def write_exports(exports, stream): if entry.suffix is None: s = entry.prefix else: - s = '%s:%s' % (entry.prefix, entry.suffix) + s = "%s:%s" % (entry.prefix, entry.suffix) if entry.flags: - s = '%s [%s]' % (s, ', '.join(entry.flags)) + s = "%s [%s]" % (s, ", ".join(entry.flags)) cp.set(k, entry.name, s) cp.write(stream) @@ -466,16 +493,16 @@ def convert_path(pathname): ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. """ - if os.sep == '/': + if os.sep == "/": return pathname if not pathname: return pathname - if pathname[0] == '/': + if pathname[0] == "/": raise ValueError("path '%s' cannot be absolute" % pathname) - if pathname[-1] == '/': + if pathname[-1] == "/": raise ValueError("path '%s' cannot end with '/'" % pathname) - paths = pathname.split('/') + paths = pathname.split("/") while os.curdir in paths: paths.remove(os.curdir) if not paths: @@ -519,31 +546,30 @@ class FileOperator(object): return os.stat(source).st_mtime > os.stat(target).st_mtime def copy_file(self, infile, outfile, check=True): - """Copy a file respecting dry-run and force flags. - """ + """Copy a file respecting dry-run and force flags.""" self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying %s to %s', infile, outfile) + logger.info("Copying %s to %s", infile, outfile) if not self.dry_run: msg = None if check: if os.path.islink(outfile): - msg = '%s is a symlink' % outfile + msg = "%s is a symlink" % outfile elif os.path.exists(outfile) and not os.path.isfile(outfile): - msg = '%s is a non-regular file' % outfile + msg = "%s is a non-regular file" % outfile if msg: - raise ValueError(msg + ' which would be overwritten') + raise ValueError(msg + " which would be overwritten") shutil.copyfile(infile, outfile) self.record_as_written(outfile) def copy_stream(self, instream, outfile, encoding=None): assert not os.path.isdir(outfile) self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying stream %s to %s', instream, outfile) + logger.info("Copying stream %s to %s", instream, outfile) if not self.dry_run: if encoding is None: - outstream = open(outfile, 'wb') + outstream = open(outfile, "wb") else: - outstream = codecs.open(outfile, 'w', encoding=encoding) + outstream = codecs.open(outfile, "w", encoding=encoding) try: shutil.copyfileobj(instream, outstream) finally: @@ -555,7 +581,7 @@ class FileOperator(object): if not self.dry_run: if os.path.exists(path): os.remove(path) - with open(path, 'wb') as f: + with open(path, "wb") as f: f.write(data) self.record_as_written(path) @@ -563,7 +589,7 @@ class FileOperator(object): self.write_binary_file(path, data.encode(encoding)) def set_mode(self, bits, mask, files): - if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): + if os.name == "posix" or (os.name == "java" and os._name == "posix"): # Set the executable bits (owner, group, and world) on # all the files specified. for f in files: @@ -582,35 +608,39 @@ class FileOperator(object): self.ensured.add(path) d, f = os.path.split(path) self.ensure_dir(d) - logger.info('Creating %s' % path) + logger.info("Creating %s" % path) if not self.dry_run: os.mkdir(path) if self.record: self.dirs_created.add(path) - def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): + def byte_compile( + self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False + ): dpath = cache_from_source(path, not optimize) - logger.info('Byte-compiling %s to %s', path, dpath) + logger.info("Byte-compiling %s to %s", path, dpath) if not self.dry_run: if force or self.newer(path, dpath): if not prefix: diagpath = None else: assert path.startswith(prefix) - diagpath = path[len(prefix):] + diagpath = path[len(prefix) :] compile_kwargs = {} - if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): + if hashed_invalidation and hasattr(py_compile, "PycInvalidationMode"): if not isinstance(hashed_invalidation, py_compile.PycInvalidationMode): hashed_invalidation = py_compile.PycInvalidationMode.CHECKED_HASH - compile_kwargs['invalidation_mode'] = hashed_invalidation - py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error + compile_kwargs["invalidation_mode"] = hashed_invalidation + py_compile.compile( + path, dpath, diagpath, True, **compile_kwargs + ) # raise error self.record_as_written(dpath) return dpath def ensure_removed(self, path): if os.path.exists(path): if os.path.isdir(path) and not os.path.islink(path): - logger.debug('Removing directory tree at %s', path) + logger.debug("Removing directory tree at %s", path) if not self.dry_run: shutil.rmtree(path) if self.record: @@ -618,10 +648,10 @@ class FileOperator(object): self.dirs_created.remove(path) else: if os.path.islink(path): - s = 'link' + s = "link" else: - s = 'file' - logger.debug('Removing %s %s', s, path) + s = "file" + logger.debug("Removing %s %s", s, path) if not self.dry_run: os.remove(path) if self.record: @@ -662,7 +692,7 @@ class FileOperator(object): for d in dirs: flist = os.listdir(d) if flist: - assert flist == ['__pycache__'] + assert flist == ["__pycache__"] sd = os.path.join(d, flist[0]) os.rmdir(sd) os.rmdir(d) # should fail if non-empty @@ -677,7 +707,7 @@ def resolve(module_name, dotted_path): if dotted_path is None: result = mod else: - parts = dotted_path.split('.') + parts = dotted_path.split(".") result = getattr(mod, parts.pop(0)) for p in parts: result = getattr(result, p) @@ -697,53 +727,61 @@ class ExportEntry(object): return resolve(self.prefix, self.suffix) def __repr__(self): # pragma: no cover - return '' % (self.name, self.prefix, self.suffix, self.flags) + return "" % ( + self.name, + self.prefix, + self.suffix, + self.flags, + ) def __eq__(self, other): if not isinstance(other, ExportEntry): result = False else: - result = (self.name == other.name and self.prefix == other.prefix and self.suffix == other.suffix and - self.flags == other.flags) + result = ( + self.name == other.name + and self.prefix == other.prefix + and self.suffix == other.suffix + and self.flags == other.flags + ) return result __hash__ = object.__hash__ ENTRY_RE = re.compile( - r'''(?P([^\[]\S*)) + r"""(?P([^\[]\S*)) \s*=\s*(?P(\w+)([:\.]\w+)*) \s*(\[\s*(?P[\w-]+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? - ''', re.VERBOSE) + """, + re.VERBOSE, +) def get_export_entry(specification): m = ENTRY_RE.search(specification) if not m: result = None - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) + if "[" in specification or "]" in specification: + raise DistlibException("Invalid specification " "'%s'" % specification) else: d = m.groupdict() - name = d['name'] - path = d['callable'] - colons = path.count(':') + name = d["name"] + path = d["callable"] + colons = path.count(":") if colons == 0: prefix, suffix = path, None else: if colons != 1: - raise DistlibException("Invalid specification " - "'%s'" % specification) - prefix, suffix = path.split(':') - flags = d['flags'] + raise DistlibException("Invalid specification " "'%s'" % specification) + prefix, suffix = path.split(":") + flags = d["flags"] if flags is None: - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) + if "[" in specification or "]" in specification: + raise DistlibException("Invalid specification " "'%s'" % specification) flags = [] else: - flags = [f.strip() for f in flags.split(',')] + flags = [f.strip() for f in flags.split(",")] result = ExportEntry(name, prefix, suffix, flags) return result @@ -764,28 +802,28 @@ def get_cache_base(suffix=None): determined above, or with the name specified with ``suffix``. """ if suffix is None: - suffix = '.distlib' - if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: - result = os.path.expandvars('$localappdata') + suffix = ".distlib" + if os.name == "nt" and "LOCALAPPDATA" in os.environ: + result = os.path.expandvars("$localappdata") else: # Assume posix, or old Windows - result = os.path.expanduser('~') + result = os.path.expanduser("~") # we use 'isdir' instead of 'exists', because we want to # fail if there's a file with that name if os.path.isdir(result): usable = os.access(result, os.W_OK) if not usable: - logger.warning('Directory exists but is not writable: %s', result) + logger.warning("Directory exists but is not writable: %s", result) else: try: os.makedirs(result) usable = True except OSError: - logger.warning('Unable to create %s', result, exc_info=True) + logger.warning("Unable to create %s", result, exc_info=True) usable = False if not usable: result = tempfile.mkdtemp() - logger.warning('Default location unusable, using %s', result) + logger.warning("Default location unusable, using %s", result) return os.path.join(result, suffix) @@ -801,25 +839,25 @@ def path_to_cache_dir(path, use_abspath=True): """ d, p = os.path.splitdrive(os.path.abspath(path) if use_abspath else path) if d: - d = d.replace(':', '---') - p = p.replace(os.sep, '--') - return d + p + '.cache' + d = d.replace(":", "---") + p = p.replace(os.sep, "--") + return d + p + ".cache" def ensure_slash(s): - if not s.endswith('/'): - return s + '/' + if not s.endswith("/"): + return s + "/" return s def parse_credentials(netloc): username = password = None - if '@' in netloc: - prefix, netloc = netloc.rsplit('@', 1) - if ':' not in prefix: + if "@" in netloc: + prefix, netloc = netloc.rsplit("@", 1) + if ":" not in prefix: username = prefix else: - username, password = prefix.split(':', 1) + username, password = prefix.split(":", 1) if username: username = unquote(username) if password: @@ -844,9 +882,10 @@ def is_string_sequence(seq): return result -PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' - '([a-z0-9_.+-]+)', re.I) -PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') +PROJECT_NAME_AND_VERSION = re.compile( + "([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-" "([a-z0-9_.+-]+)", re.I +) +PYTHON_VERSION = re.compile(r"-py(\d\.?\d?)") def split_filename(filename, project_name=None): @@ -857,16 +896,16 @@ def split_filename(filename, project_name=None): """ result = None pyver = None - filename = unquote(filename).replace(' ', '-') + filename = unquote(filename).replace(" ", "-") m = PYTHON_VERSION.search(filename) if m: pyver = m.group(1) - filename = filename[:m.start()] + filename = filename[: m.start()] if project_name and len(filename) > len(project_name) + 1: - m = re.match(re.escape(project_name) + r'\b', filename) + m = re.match(re.escape(project_name) + r"\b", filename) if m: n = m.end() - result = filename[:n], filename[n + 1:], pyver + result = filename[:n], filename[n + 1 :], pyver if result is None: m = PROJECT_NAME_AND_VERSION.match(filename) if m: @@ -875,8 +914,7 @@ def split_filename(filename, project_name=None): # Allow spaces in name because of legacy dists like "Twisted Core" -NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' - r'\(\s*(?P[^\s)]+)\)$') +NAME_VERSION_RE = re.compile(r"(?P[\w .-]+)\s*" r"\(\s*(?P[^\s)]+)\)$") def parse_name_and_version(p): @@ -890,30 +928,30 @@ def parse_name_and_version(p): """ m = NAME_VERSION_RE.match(p) if not m: - raise DistlibException('Ill-formed name/version string: \'%s\'' % p) + raise DistlibException("Ill-formed name/version string: '%s'" % p) d = m.groupdict() - return d['name'].strip().lower(), d['ver'] + return d["name"].strip().lower(), d["ver"] def get_extras(requested, available): result = set() requested = set(requested or []) available = set(available or []) - if '*' in requested: - requested.remove('*') + if "*" in requested: + requested.remove("*") result |= available for r in requested: - if r == '-': + if r == "-": result.add(r) - elif r.startswith('-'): + elif r.startswith("-"): unwanted = r[1:] if unwanted not in available: - logger.warning('undeclared extra: %s' % unwanted) + logger.warning("undeclared extra: %s" % unwanted) if unwanted in result: result.remove(unwanted) else: if r not in available: - logger.warning('undeclared extra: %s' % r) + logger.warning("undeclared extra: %s" % r) result.add(r) return result @@ -931,31 +969,31 @@ def _get_external_data(url): # using a custom redirect handler. resp = urlopen(url) headers = resp.info() - ct = headers.get('Content-Type') - if not ct.startswith('application/json'): - logger.debug('Unexpected response for JSON request: %s', ct) + ct = headers.get("Content-Type") + if not ct.startswith("application/json"): + logger.debug("Unexpected response for JSON request: %s", ct) else: - reader = codecs.getreader('utf-8')(resp) + reader = codecs.getreader("utf-8")(resp) # data = reader.read().decode('utf-8') # result = json.loads(data) result = json.load(reader) except Exception as e: - logger.exception('Failed to get external data for %s: %s', url, e) + logger.exception("Failed to get external data for %s: %s", url, e) return result -_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' +_external_data_base_url = "https://www.red-dove.com/pypi/projects/" def get_project_data(name): - url = '%s/%s/project.json' % (name[0].upper(), name) + url = "%s/%s/project.json" % (name[0].upper(), name) url = urljoin(_external_data_base_url, url) result = _get_external_data(url) return result def get_package_data(name, version): - url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) + url = "%s/%s/package-%s.json" % (name[0].upper(), name, version) url = urljoin(_external_data_base_url, url) return _get_external_data(url) @@ -978,7 +1016,7 @@ class Cache(object): if not os.path.isdir(base): # pragma: no cover os.makedirs(base) if (os.stat(base).st_mode & 0o77) != 0: - logger.warning('Directory \'%s\' is not private', base) + logger.warning("Directory '%s' is not private", base) self.base = os.path.abspath(os.path.normpath(base)) def prefix_to_dir(self, prefix, use_abspath=True): @@ -1041,7 +1079,7 @@ class EventMixin(object): """ subs = self._subscribers if event not in subs: - raise ValueError('No subscribers: %r' % event) + raise ValueError("No subscribers: %r" % event) subs[event].remove(subscriber) def get_subscribers(self, event): @@ -1067,10 +1105,16 @@ class EventMixin(object): try: value = subscriber(event, *args, **kwargs) except Exception: - logger.exception('Exception during event publication') + logger.exception("Exception during event publication") value = None result.append(value) - logger.debug('publish %s: args = %s, kwargs = %s, result = %s', event, args, kwargs, result) + logger.debug( + "publish %s: args = %s, kwargs = %s, result = %s", + event, + args, + kwargs, + result, + ) return result @@ -1114,19 +1158,19 @@ class Sequencer(object): preds = self._preds[succ] succs = self._succs[pred] except KeyError: # pragma: no cover - raise ValueError('%r not a successor of anything' % succ) + raise ValueError("%r not a successor of anything" % succ) try: preds.remove(pred) succs.remove(succ) except KeyError: # pragma: no cover - raise ValueError('%r not a successor of %r' % (succ, pred)) + raise ValueError("%r not a successor of %r" % (succ, pred)) def is_step(self, step): - return (step in self._preds or step in self._succs or step in self._nodes) + return step in self._preds or step in self._succs or step in self._nodes def get_steps(self, final): if not self.is_step(final): - raise ValueError('Unknown: %r' % final) + raise ValueError("Unknown: %r" % final) result = [] todo = [] seen = set() @@ -1203,53 +1247,53 @@ class Sequencer(object): @property def dot(self): - result = ['digraph G {'] + result = ["digraph G {"] for succ in self._preds: preds = self._preds[succ] for pred in preds: - result.append(' %s -> %s;' % (pred, succ)) + result.append(" %s -> %s;" % (pred, succ)) for node in self._nodes: - result.append(' %s;' % node) - result.append('}') - return '\n'.join(result) + result.append(" %s;" % node) + result.append("}") + return "\n".join(result) # # Unarchiving functionality for zip, tar, tgz, tbz, whl # -ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz', '.whl') +ARCHIVE_EXTENSIONS = (".tar.gz", ".tar.bz2", ".tar", ".zip", ".tgz", ".tbz", ".whl") def unarchive(archive_filename, dest_dir, format=None, check=True): def check_path(path): if not isinstance(path, text_type): - path = path.decode('utf-8') + path = path.decode("utf-8") p = os.path.abspath(os.path.join(dest_dir, path)) if not p.startswith(dest_dir) or p[plen] != os.sep: - raise ValueError('path outside destination: %r' % p) + raise ValueError("path outside destination: %r" % p) dest_dir = os.path.abspath(dest_dir) plen = len(dest_dir) archive = None if format is None: - if archive_filename.endswith(('.zip', '.whl')): - format = 'zip' - elif archive_filename.endswith(('.tar.gz', '.tgz')): - format = 'tgz' - mode = 'r:gz' - elif archive_filename.endswith(('.tar.bz2', '.tbz')): - format = 'tbz' - mode = 'r:bz2' - elif archive_filename.endswith('.tar'): - format = 'tar' - mode = 'r' + if archive_filename.endswith((".zip", ".whl")): + format = "zip" + elif archive_filename.endswith((".tar.gz", ".tgz")): + format = "tgz" + mode = "r:gz" + elif archive_filename.endswith((".tar.bz2", ".tbz")): + format = "tbz" + mode = "r:bz2" + elif archive_filename.endswith(".tar"): + format = "tar" + mode = "r" else: # pragma: no cover - raise ValueError('Unknown format for %r' % archive_filename) + raise ValueError("Unknown format for %r" % archive_filename) try: - if format == 'zip': - archive = ZipFile(archive_filename, 'r') + if format == "zip": + archive = ZipFile(archive_filename, "r") if check: names = archive.namelist() for name in names: @@ -1260,14 +1304,14 @@ def unarchive(archive_filename, dest_dir, format=None, check=True): names = archive.getnames() for name in names: check_path(name) - if format != 'zip' and sys.version_info[0] < 3: + if format != "zip" and sys.version_info[0] < 3: # See Python issue 17153. If the dest path contains Unicode, # tarfile extraction fails on Python 2.x if a member path name # contains non-ASCII characters - it leads to an implicit # bytes -> unicode conversion using ASCII to decode. for tarinfo in archive.getmembers(): if not isinstance(tarinfo.name, text_type): - tarinfo.name = tarinfo.name.decode('utf-8') + tarinfo.name = tarinfo.name.decode("utf-8") # Limit extraction of dangerous items, if this Python # allows it easily. If not, just trust the input. @@ -1307,11 +1351,11 @@ def zip_dir(directory): # Simple progress bar # -UNITS = ('', 'K', 'M', 'G', 'T', 'P') +UNITS = ("", "K", "M", "G", "T", "P") class Progress(object): - unknown = 'UNKNOWN' + unknown = "UNKNOWN" def __init__(self, minval=0, maxval=100): assert maxval is None or maxval >= minval @@ -1351,31 +1395,31 @@ class Progress(object): @property def percentage(self): if self.done: - result = '100 %' + result = "100 %" elif self.max is None: - result = ' ?? %' + result = " ?? %" else: v = 100.0 * (self.cur - self.min) / (self.max - self.min) - result = '%3d %%' % v + result = "%3d %%" % v return result def format_duration(self, duration): if (duration <= 0) and self.max is None or self.cur == self.min: - result = '??:??:??' + result = "??:??:??" # elif duration < 1: # result = '--:--:--' else: - result = time.strftime('%H:%M:%S', time.gmtime(duration)) + result = time.strftime("%H:%M:%S", time.gmtime(duration)) return result @property def ETA(self): if self.done: - prefix = 'Done' + prefix = "Done" t = self.elapsed # import pdb; pdb.set_trace() else: - prefix = 'ETA ' + prefix = "ETA " if self.max is None: t = -1 elif self.elapsed == 0 or (self.cur == self.min): @@ -1385,7 +1429,7 @@ class Progress(object): t = float(self.max - self.min) t /= self.cur - self.min t = (t - 1) * self.elapsed - return '%s: %s' % (prefix, self.format_duration(t)) + return "%s: %s" % (prefix, self.format_duration(t)) @property def speed(self): @@ -1397,16 +1441,16 @@ class Progress(object): if result < 1000: break result /= 1000.0 - return '%d %sB/s' % (result, unit) + return "%d %sB/s" % (result, unit) # # Glob functionality # -RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') -_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') +RICH_GLOB = re.compile(r"\{([^}]*)\}") +_CHECK_RECURSIVE_GLOB = re.compile(r"[^/\\,{]\*\*|\*\*[^/\\,}]") +_CHECK_MISMATCH_SET = re.compile(r"^[^{]*\}|\{[^}]*$") def iglob(path_glob): @@ -1425,23 +1469,23 @@ def _iglob(path_glob): if len(rich_path_glob) > 1: assert len(rich_path_glob) == 3, rich_path_glob prefix, set, suffix = rich_path_glob - for item in set.split(','): - for path in _iglob(''.join((prefix, item, suffix))): + for item in set.split(","): + for path in _iglob("".join((prefix, item, suffix))): yield path else: - if '**' not in path_glob: + if "**" not in path_glob: for item in std_iglob(path_glob): yield item else: - prefix, radical = path_glob.split('**', 1) - if prefix == '': - prefix = '.' - if radical == '': - radical = '*' + prefix, radical = path_glob.split("**", 1) + if prefix == "": + prefix = "." + if radical == "": + radical = "*" else: # we support both - radical = radical.lstrip('/') - radical = radical.lstrip('\\') + radical = radical.lstrip("/") + radical = radical.lstrip("\\") for path, dir, files in os.walk(prefix): path = os.path.normpath(path) for fn in _iglob(os.path.join(path, radical)): @@ -1449,7 +1493,11 @@ def _iglob(path_glob): if ssl: - from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, CertificateError) + from .compat import ( + HTTPSHandler as BaseHTTPSHandler, + match_hostname, + CertificateError, + ) # # HTTPSConnection which verifies certificates/matches domains @@ -1462,27 +1510,27 @@ if ssl: # noinspection PyPropertyAccess def connect(self): sock = socket.create_connection((self.host, self.port), self.timeout) - if getattr(self, '_tunnel_host', False): + if getattr(self, "_tunnel_host", False): self.sock = sock self._tunnel() context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - if hasattr(ssl, 'OP_NO_SSLv2'): + if hasattr(ssl, "OP_NO_SSLv2"): context.options |= ssl.OP_NO_SSLv2 - if getattr(self, 'cert_file', None): + if getattr(self, "cert_file", None): context.load_cert_chain(self.cert_file, self.key_file) kwargs = {} if self.ca_certs: context.verify_mode = ssl.CERT_REQUIRED context.load_verify_locations(cafile=self.ca_certs) - if getattr(ssl, 'HAS_SNI', False): - kwargs['server_hostname'] = self.host + if getattr(ssl, "HAS_SNI", False): + kwargs["server_hostname"] = self.host self.sock = context.wrap_socket(sock, **kwargs) if self.ca_certs and self.check_domain: try: match_hostname(self.sock.getpeercert(), self.host) - logger.debug('Host verified: %s', self.host) + logger.debug("Host verified: %s", self.host) except CertificateError: # pragma: no cover self.sock.shutdown(socket.SHUT_RDWR) self.sock.close() @@ -1515,9 +1563,10 @@ if ssl: try: return self.do_open(self._conn_maker, req) except URLError as e: - if 'certificate verify failed' in str(e.reason): - raise CertificateError('Unable to verify server certificate ' - 'for %s' % req.host) + if "certificate verify failed" in str(e.reason): + raise CertificateError( + "Unable to verify server certificate " "for %s" % req.host + ) else: raise @@ -1533,8 +1582,10 @@ if ssl: class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): def http_open(self, req): - raise URLError('Unexpected HTTP request on what should be a secure ' - 'connection: %s' % req) + raise URLError( + "Unexpected HTTP request on what should be a secure " + "connection: %s" % req + ) # @@ -1566,7 +1617,7 @@ if ssl: h, eh, kwargs = self.get_host_info(host) if not kwargs: kwargs = {} - kwargs['timeout'] = self.timeout + kwargs["timeout"] = self.timeout if not self._connection or host != self._connection[0]: self._extra_headers = eh self._connection = host, httplib.HTTPSConnection(h, None, **kwargs) @@ -1576,18 +1627,18 @@ if ssl: class ServerProxy(xmlrpclib.ServerProxy): def __init__(self, uri, **kwargs): - self.timeout = timeout = kwargs.pop('timeout', None) + self.timeout = timeout = kwargs.pop("timeout", None) # The above classes only come into play if a timeout # is specified if timeout is not None: # scheme = splittype(uri) # deprecated as of Python 3.8 scheme = urlparse(uri)[0] - use_datetime = kwargs.get('use_datetime', 0) - if scheme == 'https': + use_datetime = kwargs.get("use_datetime", 0) + if scheme == "https": tcls = SafeTransport else: tcls = Transport - kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) + kwargs["transport"] = t = tcls(timeout, use_datetime=use_datetime) self.transport = t xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) @@ -1600,20 +1651,20 @@ class ServerProxy(xmlrpclib.ServerProxy): def _csv_open(fn, mode, **kwargs): if sys.version_info[0] < 3: - mode += 'b' + mode += "b" else: - kwargs['newline'] = '' + kwargs["newline"] = "" # Python 3 determines encoding from locale. Force 'utf-8' # file encoding to match other forced utf-8 encoding - kwargs['encoding'] = 'utf-8' + kwargs["encoding"] = "utf-8" return open(fn, mode, **kwargs) class CSVBase(object): defaults = { - 'delimiter': str(','), # The strs are used because we need native - 'quotechar': str('"'), # str in the csv API (2.x won't take - 'lineterminator': str('\n') # Unicode) + "delimiter": str(","), # The strs are used because we need native + "quotechar": str('"'), # str in the csv API (2.x won't take + "lineterminator": str("\n"), # Unicode) } def __enter__(self): @@ -1626,14 +1677,14 @@ class CSVBase(object): class CSVReader(CSVBase): def __init__(self, **kwargs): - if 'stream' in kwargs: - stream = kwargs['stream'] + if "stream" in kwargs: + stream = kwargs["stream"] if sys.version_info[0] >= 3: # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) + stream = codecs.getreader("utf-8")(stream) self.stream = stream else: - self.stream = _csv_open(kwargs['path'], 'r') + self.stream = _csv_open(kwargs["path"], "r") self.reader = csv.reader(self.stream, **self.defaults) def __iter__(self): @@ -1644,7 +1695,7 @@ class CSVReader(CSVBase): if sys.version_info[0] < 3: for i, item in enumerate(result): if not isinstance(item, text_type): - result[i] = item.decode('utf-8') + result[i] = item.decode("utf-8") return result __next__ = next @@ -1653,7 +1704,7 @@ class CSVReader(CSVBase): class CSVWriter(CSVBase): def __init__(self, fn, **kwargs): - self.stream = _csv_open(fn, 'w') + self.stream = _csv_open(fn, "w") self.writer = csv.writer(self.stream, **self.defaults) def writerow(self, row): @@ -1661,7 +1712,7 @@ class CSVWriter(CSVBase): r = [] for item in row: if isinstance(item, text_type): - item = item.encode('utf-8') + item = item.encode("utf-8") r.append(item) row = r self.writer.writerow(row) @@ -1675,7 +1726,7 @@ class CSVWriter(CSVBase): class Configurator(BaseConfigurator): value_converters = dict(BaseConfigurator.value_converters) - value_converters['inc'] = 'inc_convert' + value_converters["inc"] = "inc_convert" def __init__(self, config, base=None): super(Configurator, self).__init__(config) @@ -1687,7 +1738,7 @@ class Configurator(BaseConfigurator): if isinstance(o, (list, tuple)): result = type(o)([convert(i) for i in o]) elif isinstance(o, dict): - if '()' in o: + if "()" in o: result = self.configure_custom(o) else: result = {} @@ -1697,12 +1748,12 @@ class Configurator(BaseConfigurator): result = self.convert(o) return result - c = config.pop('()') + c = config.pop("()") if not callable(c): c = self.resolve(c) - props = config.pop('.', None) + props = config.pop(".", None) # Check for valid identifiers - args = config.pop('[]', ()) + args = config.pop("[]", ()) if args: args = tuple([convert(o) for o in args]) items = [(k, convert(config[k])) for k in config if valid_ident(k)] @@ -1715,7 +1766,7 @@ class Configurator(BaseConfigurator): def __getitem__(self, key): result = self.config[key] - if isinstance(result, dict) and '()' in result: + if isinstance(result, dict) and "()" in result: self.config[key] = result = self.configure_custom(result) return result @@ -1723,7 +1774,7 @@ class Configurator(BaseConfigurator): """Default converter for the inc:// protocol.""" if not os.path.isabs(value): value = os.path.join(self.base, value) - with codecs.open(value, 'r', encoding='utf-8') as f: + with codecs.open(value, "r", encoding="utf-8") as f: result = json.load(f) return result @@ -1752,32 +1803,34 @@ class SubprocessMixin(object): progress(s, context) else: if not verbose: - sys.stderr.write('.') + sys.stderr.write(".") else: - sys.stderr.write(s.decode('utf-8')) + sys.stderr.write(s.decode("utf-8")) sys.stderr.flush() stream.close() def run_command(self, cmd, **kwargs): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs) - t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) + p = subprocess.Popen( + cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, **kwargs + ) + t1 = threading.Thread(target=self.reader, args=(p.stdout, "stdout")) t1.start() - t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) + t2 = threading.Thread(target=self.reader, args=(p.stderr, "stderr")) t2.start() p.wait() t1.join() t2.join() if self.progress is not None: - self.progress('done.', 'main') + self.progress("done.", "main") elif self.verbose: - sys.stderr.write('done.\n') + sys.stderr.write("done.\n") return p def normalize_name(name): """Normalize a python package name a la PEP 503""" # https://www.python.org/dev/peps/pep-0503/#normalized-names - return re.sub('[-_.]+', '-', name).lower() + return re.sub("[-_.]+", "-", name).lower() # def _get_pypirc_command(): @@ -1793,12 +1846,12 @@ def normalize_name(name): class PyPIRCFile(object): - DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' - DEFAULT_REALM = 'pypi' + DEFAULT_REPOSITORY = "https://upload.pypi.org/legacy/" + DEFAULT_REALM = "pypi" def __init__(self, fn=None, url=None): if fn is None: - fn = os.path.join(os.path.expanduser('~'), '.pypirc') + fn = os.path.join(os.path.expanduser("~"), ".pypirc") self.filename = fn self.url = url @@ -1811,22 +1864,29 @@ class PyPIRCFile(object): config = configparser.RawConfigParser() config.read(self.filename) sections = config.sections() - if 'distutils' in sections: + if "distutils" in sections: # let's get the list of servers - index_servers = config.get('distutils', 'index-servers') - _servers = [server.strip() for server in index_servers.split('\n') if server.strip() != ''] + index_servers = config.get("distutils", "index-servers") + _servers = [ + server.strip() + for server in index_servers.split("\n") + if server.strip() != "" + ] if _servers == []: # nothing set, let's try to get the default pypi - if 'pypi' in sections: - _servers = ['pypi'] + if "pypi" in sections: + _servers = ["pypi"] else: for server in _servers: - result = {'server': server} - result['username'] = config.get(server, 'username') + result = {"server": server} + result["username"] = config.get(server, "username") # optional params - for key, default in (('repository', self.DEFAULT_REPOSITORY), ('realm', self.DEFAULT_REALM), - ('password', None)): + for key, default in ( + ("repository", self.DEFAULT_REPOSITORY), + ("realm", self.DEFAULT_REALM), + ("password", None), + ): if config.has_option(server, key): result[key] = config.get(server, key) else: @@ -1835,23 +1895,29 @@ class PyPIRCFile(object): # work around people having "repository" for the "pypi" # section of their config set to the HTTP (rather than # HTTPS) URL - if (server == 'pypi' and repository in (self.DEFAULT_REPOSITORY, 'pypi')): - result['repository'] = self.DEFAULT_REPOSITORY - elif (result['server'] != repository and result['repository'] != repository): + if server == "pypi" and repository in ( + self.DEFAULT_REPOSITORY, + "pypi", + ): + result["repository"] = self.DEFAULT_REPOSITORY + elif ( + result["server"] != repository + and result["repository"] != repository + ): result = {} - elif 'server-login' in sections: + elif "server-login" in sections: # old format - server = 'server-login' - if config.has_option(server, 'repository'): - repository = config.get(server, 'repository') + server = "server-login" + if config.has_option(server, "repository"): + repository = config.get(server, "repository") else: repository = self.DEFAULT_REPOSITORY result = { - 'username': config.get(server, 'username'), - 'password': config.get(server, 'password'), - 'repository': repository, - 'server': server, - 'realm': self.DEFAULT_REALM + "username": config.get(server, "username"), + "password": config.get(server, "password"), + "repository": repository, + "server": server, + "realm": self.DEFAULT_REALM, } return result @@ -1860,11 +1926,11 @@ class PyPIRCFile(object): config = configparser.RawConfigParser() fn = self.filename config.read(fn) - if not config.has_section('pypi'): - config.add_section('pypi') - config.set('pypi', 'username', username) - config.set('pypi', 'password', password) - with open(fn, 'w') as f: + if not config.has_section("pypi"): + config.add_section("pypi") + config.set("pypi", "username", username) + config.set("pypi", "password", password) + with open(fn, "w") as f: config.write(f) @@ -1905,80 +1971,84 @@ def get_host_platform(): For other non-POSIX platforms, currently just returns 'sys.platform'. """ - if os.name == 'nt': - if 'amd64' in sys.version.lower(): - return 'win-amd64' - if '(arm)' in sys.version.lower(): - return 'win-arm32' - if '(arm64)' in sys.version.lower(): - return 'win-arm64' + if os.name == "nt": + if "amd64" in sys.version.lower(): + return "win-amd64" + if "(arm)" in sys.version.lower(): + return "win-arm32" + if "(arm64)" in sys.version.lower(): + return "win-arm64" return sys.platform # Set for cross builds explicitly if "_PYTHON_HOST_PLATFORM" in os.environ: return os.environ["_PYTHON_HOST_PLATFORM"] - if os.name != 'posix' or not hasattr(os, 'uname'): + if os.name != "posix" or not hasattr(os, "uname"): # XXX what about the architecture? NT is Intel or Alpha, # Mac OS is M68k or PPC, etc. return sys.platform # Try to distinguish various flavours of Unix - (osname, host, release, version, machine) = os.uname() + osname, host, release, version, machine = os.uname() # Convert the OS name to lowercase, remove '/' characters, and translate # spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_').replace('/', '-') + osname = osname.lower().replace("/", "") + machine = machine.replace(" ", "_").replace("/", "-") - if osname[:5] == 'linux': + if osname[:5] == "linux": # At least on Linux/Intel, 'machine' is the processor -- # i386, etc. # XXX what about Alpha, SPARC, etc? return "%s-%s" % (osname, machine) - elif osname[:5] == 'sunos': - if release[0] >= '5': # SunOS 5 == Solaris 2 - osname = 'solaris' - release = '%d.%s' % (int(release[0]) - 3, release[2:]) + elif osname[:5] == "sunos": + if release[0] >= "5": # SunOS 5 == Solaris 2 + osname = "solaris" + release = "%d.%s" % (int(release[0]) - 3, release[2:]) # We can't use 'platform.architecture()[0]' because a # bootstrap problem. We use a dict to get an error # if some suspicious happens. - bitness = {2147483647: '32bit', 9223372036854775807: '64bit'} - machine += '.%s' % bitness[sys.maxsize] + bitness = {2147483647: "32bit", 9223372036854775807: "64bit"} + machine += ".%s" % bitness[sys.maxsize] # fall through to standard osname-release-machine representation - elif osname[:3] == 'aix': + elif osname[:3] == "aix": from _aix_support import aix_platform + return aix_platform() - elif osname[:6] == 'cygwin': - osname = 'cygwin' - rel_re = re.compile(r'[\d.]+', re.ASCII) + elif osname[:6] == "cygwin": + osname = "cygwin" + rel_re = re.compile(r"[\d.]+", re.ASCII) m = rel_re.match(release) if m: release = m.group() - elif osname[:6] == 'darwin': + elif osname[:6] == "darwin": import _osx_support + try: from distutils import sysconfig except ImportError: import sysconfig - osname, release, machine = _osx_support.get_platform_osx(sysconfig.get_config_vars(), osname, release, machine) + osname, release, machine = _osx_support.get_platform_osx( + sysconfig.get_config_vars(), osname, release, machine + ) - return '%s-%s-%s' % (osname, release, machine) + return "%s-%s-%s" % (osname, release, machine) _TARGET_TO_PLAT = { - 'x86': 'win32', - 'x64': 'win-amd64', - 'arm': 'win-arm32', + "x86": "win32", + "x64": "win-amd64", + "arm": "win-arm32", } def get_platform(): - if os.name != 'nt': + if os.name != "nt": return get_host_platform() - cross_compilation_target = os.environ.get('VSCMD_ARG_TGT_ARCH') + cross_compilation_target = os.environ.get("VSCMD_ARG_TGT_ARCH") if cross_compilation_target not in _TARGET_TO_PLAT: return get_host_platform() return _TARGET_TO_PLAT[cross_compilation_target] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE index e06d208..5c304d1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE @@ -199,4 +199,3 @@ Apache License WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py index 8177bf7..8f10a72 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py @@ -74,7 +74,11 @@ def check_bidi(label: str, check_ltr: bool = False) -> bool: direction = unicodedata.bidirectional(cp) if direction == "": # String likely comes from a newer version of Unicode - raise IDNABidiError("Unknown directionality in label {} at position {}".format(repr(label), idx)) + raise IDNABidiError( + "Unknown directionality in label {} at position {}".format( + repr(label), idx + ) + ) if direction in ["R", "AL", "AN"]: bidi_label = True if not bidi_label and not check_ltr: @@ -87,7 +91,11 @@ def check_bidi(label: str, check_ltr: bool = False) -> bool: elif direction == "L": rtl = False else: - raise IDNABidiError("First codepoint in label {} must be directionality L, R or AL".format(repr(label))) + raise IDNABidiError( + "First codepoint in label {} must be directionality L, R or AL".format( + repr(label) + ) + ) valid_ending = False number_type: Optional[str] = None @@ -108,7 +116,11 @@ def check_bidi(label: str, check_ltr: bool = False) -> bool: "BN", "NSM", ]: - raise IDNABidiError("Invalid direction for codepoint at position {} in a right-to-left label".format(idx)) + raise IDNABidiError( + "Invalid direction for codepoint at position {} in a right-to-left label".format( + idx + ) + ) # Bidi rule 3 if direction in ["R", "AL", "EN", "AN"]: valid_ending = True @@ -120,11 +132,17 @@ def check_bidi(label: str, check_ltr: bool = False) -> bool: number_type = direction else: if number_type != direction: - raise IDNABidiError("Can not mix numeral types in a right-to-left label") + raise IDNABidiError( + "Can not mix numeral types in a right-to-left label" + ) else: # Bidi rule 5 if direction not in ["L", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"]: - raise IDNABidiError("Invalid direction for codepoint at position {} in a left-to-right label".format(idx)) + raise IDNABidiError( + "Invalid direction for codepoint at position {} in a left-to-right label".format( + idx + ) + ) # Bidi rule 6 if direction in ["L", "EN"]: valid_ending = True @@ -223,7 +241,11 @@ def valid_contexto(label: str, pos: int, exception: bool = False) -> bool: for cp in label: if cp == "\u30fb": continue - if _is_script(cp, "Hiragana") or _is_script(cp, "Katakana") or _is_script(cp, "Han"): + if ( + _is_script(cp, "Hiragana") + or _is_script(cp, "Katakana") + or _is_script(cp, "Han") + ): return True return False @@ -260,7 +282,9 @@ def check_label(label: Union[str, bytes, bytearray]) -> None: try: if not valid_contextj(label, pos): raise InvalidCodepointContext( - "Joiner {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + "Joiner {} not allowed at position {} in {}".format( + _unot(cp_value), pos + 1, repr(label) + ) ) except ValueError: raise IDNAError( @@ -271,11 +295,15 @@ def check_label(label: Union[str, bytes, bytearray]) -> None: elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTO"]): if not valid_contexto(label, pos): raise InvalidCodepointContext( - "Codepoint {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label)) + "Codepoint {} not allowed at position {} in {}".format( + _unot(cp_value), pos + 1, repr(label) + ) ) else: raise InvalidCodepoint( - "Codepoint {} at position {} of {} not allowed".format(_unot(cp_value), pos + 1, repr(label)) + "Codepoint {} at position {} of {} not allowed".format( + _unot(cp_value), pos + 1, repr(label) + ) ) check_bidi(label) @@ -329,7 +357,9 @@ def ulabel(label: Union[str, bytes, bytearray]) -> str: return label -def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str: +def uts46_remap( + domain: str, std3_rules: bool = True, transitional: bool = False +) -> str: """Re-map the characters in the string according to UTS46 processing.""" from .uts46data import uts46data @@ -338,7 +368,13 @@ def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False for pos, char in enumerate(domain): code_point = ord(char) try: - uts46row = uts46data[code_point if code_point < 256 else bisect.bisect_left(uts46data, (code_point, "Z")) - 1] + uts46row = uts46data[ + ( + code_point + if code_point < 256 + else bisect.bisect_left(uts46data, (code_point, "Z")) - 1 + ) + ] status = uts46row[1] replacement: Optional[str] = None if len(uts46row) == 3: @@ -350,14 +386,18 @@ def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False ): output += char elif replacement is not None and ( - status == "M" or (status == "3" and not std3_rules) or (status == "D" and transitional) + status == "M" + or (status == "3" and not std3_rules) + or (status == "D" and transitional) ): output += replacement elif status != "I": raise IndexError() except IndexError: raise InvalidCodepoint( - "Codepoint {} not allowed at position {} in {}".format(_unot(code_point), pos + 1, repr(domain)) + "Codepoint {} not allowed at position {} in {}".format( + _unot(code_point), pos + 1, repr(domain) + ) ) return unicodedata.normalize("NFC", output) @@ -374,7 +414,9 @@ def encode( try: s = str(s, "ascii") except UnicodeDecodeError: - raise IDNAError("should pass a unicode string to the function rather than a byte string.") + raise IDNAError( + "should pass a unicode string to the function rather than a byte string." + ) if uts46: s = uts46_remap(s, std3_rules, transitional) trailing_dot = False diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING index f067af3..5f2280e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING @@ -11,4 +11,3 @@ Copyright (C) 2008-2011 INADA Naoki WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py index 9694819..b6781c1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py @@ -46,7 +46,9 @@ class Timestamp: if not isinstance(nanoseconds, int): raise TypeError("nanoseconds must be an integer") if not (0 <= nanoseconds < 10**9): - raise ValueError("nanoseconds must be a non-negative integer less than 999999999.") + raise ValueError( + "nanoseconds must be a non-negative integer less than 999999999." + ) self.seconds = seconds self.nanoseconds = nanoseconds @@ -57,7 +59,9 @@ class Timestamp: def __eq__(self, other): """Check for equality with another Timestamp object""" if type(other) is self.__class__: - return self.seconds == other.seconds and self.nanoseconds == other.nanoseconds + return ( + self.seconds == other.seconds and self.nanoseconds == other.nanoseconds + ) return False def __ne__(self, other): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py index b02e47c..920072f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py @@ -519,14 +519,17 @@ class Unpacker: return if self._object_pairs_hook is not None: ret = self._object_pairs_hook( - (self._unpack(EX_CONSTRUCT), self._unpack(EX_CONSTRUCT)) for _ in range(n) + (self._unpack(EX_CONSTRUCT), self._unpack(EX_CONSTRUCT)) + for _ in range(n) ) else: ret = {} for _ in range(n): key = self._unpack(EX_CONSTRUCT) if self._strict_map_key and type(key) not in (str, bytes): - raise ValueError("%s is not allowed for map key" % str(type(key))) + raise ValueError( + "%s is not allowed for map key" % str(type(key)) + ) if isinstance(key, str): key = sys.intern(key) ret[key] = self._unpack(EX_CONSTRUCT) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py index e6d20dd..bf80904 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py @@ -118,9 +118,9 @@ class Tokenizer: another check. If `peek` is set to `True`, the token is not loaded and would need to be checked again. """ - assert self.next_token is None, ( - f"Cannot check for {name!r}, already have {self.next_token!r}" - ) + assert ( + self.next_token is None + ), f"Cannot check for {name!r}, already have {self.next_token!r}" assert name in self.rules, f"Unknown token name: {name!r}" expression = self.rules[name] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py index a277af2..7fabf12 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py @@ -1,799 +1,992 @@ - from __future__ import annotations from typing import TypedDict + class SPDXLicense(TypedDict): id: str deprecated: bool + class SPDXException(TypedDict): id: str deprecated: bool -VERSION = '3.27.0' +VERSION = "3.27.0" LICENSES: dict[str, SPDXLicense] = { - '0bsd': {'id': '0BSD', 'deprecated': False}, - '3d-slicer-1.0': {'id': '3D-Slicer-1.0', 'deprecated': False}, - 'aal': {'id': 'AAL', 'deprecated': False}, - 'abstyles': {'id': 'Abstyles', 'deprecated': False}, - 'adacore-doc': {'id': 'AdaCore-doc', 'deprecated': False}, - 'adobe-2006': {'id': 'Adobe-2006', 'deprecated': False}, - 'adobe-display-postscript': {'id': 'Adobe-Display-PostScript', 'deprecated': False}, - 'adobe-glyph': {'id': 'Adobe-Glyph', 'deprecated': False}, - 'adobe-utopia': {'id': 'Adobe-Utopia', 'deprecated': False}, - 'adsl': {'id': 'ADSL', 'deprecated': False}, - 'afl-1.1': {'id': 'AFL-1.1', 'deprecated': False}, - 'afl-1.2': {'id': 'AFL-1.2', 'deprecated': False}, - 'afl-2.0': {'id': 'AFL-2.0', 'deprecated': False}, - 'afl-2.1': {'id': 'AFL-2.1', 'deprecated': False}, - 'afl-3.0': {'id': 'AFL-3.0', 'deprecated': False}, - 'afmparse': {'id': 'Afmparse', 'deprecated': False}, - 'agpl-1.0': {'id': 'AGPL-1.0', 'deprecated': True}, - 'agpl-1.0-only': {'id': 'AGPL-1.0-only', 'deprecated': False}, - 'agpl-1.0-or-later': {'id': 'AGPL-1.0-or-later', 'deprecated': False}, - 'agpl-3.0': {'id': 'AGPL-3.0', 'deprecated': True}, - 'agpl-3.0-only': {'id': 'AGPL-3.0-only', 'deprecated': False}, - 'agpl-3.0-or-later': {'id': 'AGPL-3.0-or-later', 'deprecated': False}, - 'aladdin': {'id': 'Aladdin', 'deprecated': False}, - 'amd-newlib': {'id': 'AMD-newlib', 'deprecated': False}, - 'amdplpa': {'id': 'AMDPLPA', 'deprecated': False}, - 'aml': {'id': 'AML', 'deprecated': False}, - 'aml-glslang': {'id': 'AML-glslang', 'deprecated': False}, - 'ampas': {'id': 'AMPAS', 'deprecated': False}, - 'antlr-pd': {'id': 'ANTLR-PD', 'deprecated': False}, - 'antlr-pd-fallback': {'id': 'ANTLR-PD-fallback', 'deprecated': False}, - 'any-osi': {'id': 'any-OSI', 'deprecated': False}, - 'any-osi-perl-modules': {'id': 'any-OSI-perl-modules', 'deprecated': False}, - 'apache-1.0': {'id': 'Apache-1.0', 'deprecated': False}, - 'apache-1.1': {'id': 'Apache-1.1', 'deprecated': False}, - 'apache-2.0': {'id': 'Apache-2.0', 'deprecated': False}, - 'apafml': {'id': 'APAFML', 'deprecated': False}, - 'apl-1.0': {'id': 'APL-1.0', 'deprecated': False}, - 'app-s2p': {'id': 'App-s2p', 'deprecated': False}, - 'apsl-1.0': {'id': 'APSL-1.0', 'deprecated': False}, - 'apsl-1.1': {'id': 'APSL-1.1', 'deprecated': False}, - 'apsl-1.2': {'id': 'APSL-1.2', 'deprecated': False}, - 'apsl-2.0': {'id': 'APSL-2.0', 'deprecated': False}, - 'arphic-1999': {'id': 'Arphic-1999', 'deprecated': False}, - 'artistic-1.0': {'id': 'Artistic-1.0', 'deprecated': False}, - 'artistic-1.0-cl8': {'id': 'Artistic-1.0-cl8', 'deprecated': False}, - 'artistic-1.0-perl': {'id': 'Artistic-1.0-Perl', 'deprecated': False}, - 'artistic-2.0': {'id': 'Artistic-2.0', 'deprecated': False}, - 'artistic-dist': {'id': 'Artistic-dist', 'deprecated': False}, - 'aspell-ru': {'id': 'Aspell-RU', 'deprecated': False}, - 'aswf-digital-assets-1.0': {'id': 'ASWF-Digital-Assets-1.0', 'deprecated': False}, - 'aswf-digital-assets-1.1': {'id': 'ASWF-Digital-Assets-1.1', 'deprecated': False}, - 'baekmuk': {'id': 'Baekmuk', 'deprecated': False}, - 'bahyph': {'id': 'Bahyph', 'deprecated': False}, - 'barr': {'id': 'Barr', 'deprecated': False}, - 'bcrypt-solar-designer': {'id': 'bcrypt-Solar-Designer', 'deprecated': False}, - 'beerware': {'id': 'Beerware', 'deprecated': False}, - 'bitstream-charter': {'id': 'Bitstream-Charter', 'deprecated': False}, - 'bitstream-vera': {'id': 'Bitstream-Vera', 'deprecated': False}, - 'bittorrent-1.0': {'id': 'BitTorrent-1.0', 'deprecated': False}, - 'bittorrent-1.1': {'id': 'BitTorrent-1.1', 'deprecated': False}, - 'blessing': {'id': 'blessing', 'deprecated': False}, - 'blueoak-1.0.0': {'id': 'BlueOak-1.0.0', 'deprecated': False}, - 'boehm-gc': {'id': 'Boehm-GC', 'deprecated': False}, - 'boehm-gc-without-fee': {'id': 'Boehm-GC-without-fee', 'deprecated': False}, - 'borceux': {'id': 'Borceux', 'deprecated': False}, - 'brian-gladman-2-clause': {'id': 'Brian-Gladman-2-Clause', 'deprecated': False}, - 'brian-gladman-3-clause': {'id': 'Brian-Gladman-3-Clause', 'deprecated': False}, - 'bsd-1-clause': {'id': 'BSD-1-Clause', 'deprecated': False}, - 'bsd-2-clause': {'id': 'BSD-2-Clause', 'deprecated': False}, - 'bsd-2-clause-darwin': {'id': 'BSD-2-Clause-Darwin', 'deprecated': False}, - 'bsd-2-clause-first-lines': {'id': 'BSD-2-Clause-first-lines', 'deprecated': False}, - 'bsd-2-clause-freebsd': {'id': 'BSD-2-Clause-FreeBSD', 'deprecated': True}, - 'bsd-2-clause-netbsd': {'id': 'BSD-2-Clause-NetBSD', 'deprecated': True}, - 'bsd-2-clause-patent': {'id': 'BSD-2-Clause-Patent', 'deprecated': False}, - 'bsd-2-clause-pkgconf-disclaimer': {'id': 'BSD-2-Clause-pkgconf-disclaimer', 'deprecated': False}, - 'bsd-2-clause-views': {'id': 'BSD-2-Clause-Views', 'deprecated': False}, - 'bsd-3-clause': {'id': 'BSD-3-Clause', 'deprecated': False}, - 'bsd-3-clause-acpica': {'id': 'BSD-3-Clause-acpica', 'deprecated': False}, - 'bsd-3-clause-attribution': {'id': 'BSD-3-Clause-Attribution', 'deprecated': False}, - 'bsd-3-clause-clear': {'id': 'BSD-3-Clause-Clear', 'deprecated': False}, - 'bsd-3-clause-flex': {'id': 'BSD-3-Clause-flex', 'deprecated': False}, - 'bsd-3-clause-hp': {'id': 'BSD-3-Clause-HP', 'deprecated': False}, - 'bsd-3-clause-lbnl': {'id': 'BSD-3-Clause-LBNL', 'deprecated': False}, - 'bsd-3-clause-modification': {'id': 'BSD-3-Clause-Modification', 'deprecated': False}, - 'bsd-3-clause-no-military-license': {'id': 'BSD-3-Clause-No-Military-License', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-license': {'id': 'BSD-3-Clause-No-Nuclear-License', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-license-2014': {'id': 'BSD-3-Clause-No-Nuclear-License-2014', 'deprecated': False}, - 'bsd-3-clause-no-nuclear-warranty': {'id': 'BSD-3-Clause-No-Nuclear-Warranty', 'deprecated': False}, - 'bsd-3-clause-open-mpi': {'id': 'BSD-3-Clause-Open-MPI', 'deprecated': False}, - 'bsd-3-clause-sun': {'id': 'BSD-3-Clause-Sun', 'deprecated': False}, - 'bsd-4-clause': {'id': 'BSD-4-Clause', 'deprecated': False}, - 'bsd-4-clause-shortened': {'id': 'BSD-4-Clause-Shortened', 'deprecated': False}, - 'bsd-4-clause-uc': {'id': 'BSD-4-Clause-UC', 'deprecated': False}, - 'bsd-4.3reno': {'id': 'BSD-4.3RENO', 'deprecated': False}, - 'bsd-4.3tahoe': {'id': 'BSD-4.3TAHOE', 'deprecated': False}, - 'bsd-advertising-acknowledgement': {'id': 'BSD-Advertising-Acknowledgement', 'deprecated': False}, - 'bsd-attribution-hpnd-disclaimer': {'id': 'BSD-Attribution-HPND-disclaimer', 'deprecated': False}, - 'bsd-inferno-nettverk': {'id': 'BSD-Inferno-Nettverk', 'deprecated': False}, - 'bsd-protection': {'id': 'BSD-Protection', 'deprecated': False}, - 'bsd-source-beginning-file': {'id': 'BSD-Source-beginning-file', 'deprecated': False}, - 'bsd-source-code': {'id': 'BSD-Source-Code', 'deprecated': False}, - 'bsd-systemics': {'id': 'BSD-Systemics', 'deprecated': False}, - 'bsd-systemics-w3works': {'id': 'BSD-Systemics-W3Works', 'deprecated': False}, - 'bsl-1.0': {'id': 'BSL-1.0', 'deprecated': False}, - 'busl-1.1': {'id': 'BUSL-1.1', 'deprecated': False}, - 'bzip2-1.0.5': {'id': 'bzip2-1.0.5', 'deprecated': True}, - 'bzip2-1.0.6': {'id': 'bzip2-1.0.6', 'deprecated': False}, - 'c-uda-1.0': {'id': 'C-UDA-1.0', 'deprecated': False}, - 'cal-1.0': {'id': 'CAL-1.0', 'deprecated': False}, - 'cal-1.0-combined-work-exception': {'id': 'CAL-1.0-Combined-Work-Exception', 'deprecated': False}, - 'caldera': {'id': 'Caldera', 'deprecated': False}, - 'caldera-no-preamble': {'id': 'Caldera-no-preamble', 'deprecated': False}, - 'catharon': {'id': 'Catharon', 'deprecated': False}, - 'catosl-1.1': {'id': 'CATOSL-1.1', 'deprecated': False}, - 'cc-by-1.0': {'id': 'CC-BY-1.0', 'deprecated': False}, - 'cc-by-2.0': {'id': 'CC-BY-2.0', 'deprecated': False}, - 'cc-by-2.5': {'id': 'CC-BY-2.5', 'deprecated': False}, - 'cc-by-2.5-au': {'id': 'CC-BY-2.5-AU', 'deprecated': False}, - 'cc-by-3.0': {'id': 'CC-BY-3.0', 'deprecated': False}, - 'cc-by-3.0-at': {'id': 'CC-BY-3.0-AT', 'deprecated': False}, - 'cc-by-3.0-au': {'id': 'CC-BY-3.0-AU', 'deprecated': False}, - 'cc-by-3.0-de': {'id': 'CC-BY-3.0-DE', 'deprecated': False}, - 'cc-by-3.0-igo': {'id': 'CC-BY-3.0-IGO', 'deprecated': False}, - 'cc-by-3.0-nl': {'id': 'CC-BY-3.0-NL', 'deprecated': False}, - 'cc-by-3.0-us': {'id': 'CC-BY-3.0-US', 'deprecated': False}, - 'cc-by-4.0': {'id': 'CC-BY-4.0', 'deprecated': False}, - 'cc-by-nc-1.0': {'id': 'CC-BY-NC-1.0', 'deprecated': False}, - 'cc-by-nc-2.0': {'id': 'CC-BY-NC-2.0', 'deprecated': False}, - 'cc-by-nc-2.5': {'id': 'CC-BY-NC-2.5', 'deprecated': False}, - 'cc-by-nc-3.0': {'id': 'CC-BY-NC-3.0', 'deprecated': False}, - 'cc-by-nc-3.0-de': {'id': 'CC-BY-NC-3.0-DE', 'deprecated': False}, - 'cc-by-nc-4.0': {'id': 'CC-BY-NC-4.0', 'deprecated': False}, - 'cc-by-nc-nd-1.0': {'id': 'CC-BY-NC-ND-1.0', 'deprecated': False}, - 'cc-by-nc-nd-2.0': {'id': 'CC-BY-NC-ND-2.0', 'deprecated': False}, - 'cc-by-nc-nd-2.5': {'id': 'CC-BY-NC-ND-2.5', 'deprecated': False}, - 'cc-by-nc-nd-3.0': {'id': 'CC-BY-NC-ND-3.0', 'deprecated': False}, - 'cc-by-nc-nd-3.0-de': {'id': 'CC-BY-NC-ND-3.0-DE', 'deprecated': False}, - 'cc-by-nc-nd-3.0-igo': {'id': 'CC-BY-NC-ND-3.0-IGO', 'deprecated': False}, - 'cc-by-nc-nd-4.0': {'id': 'CC-BY-NC-ND-4.0', 'deprecated': False}, - 'cc-by-nc-sa-1.0': {'id': 'CC-BY-NC-SA-1.0', 'deprecated': False}, - 'cc-by-nc-sa-2.0': {'id': 'CC-BY-NC-SA-2.0', 'deprecated': False}, - 'cc-by-nc-sa-2.0-de': {'id': 'CC-BY-NC-SA-2.0-DE', 'deprecated': False}, - 'cc-by-nc-sa-2.0-fr': {'id': 'CC-BY-NC-SA-2.0-FR', 'deprecated': False}, - 'cc-by-nc-sa-2.0-uk': {'id': 'CC-BY-NC-SA-2.0-UK', 'deprecated': False}, - 'cc-by-nc-sa-2.5': {'id': 'CC-BY-NC-SA-2.5', 'deprecated': False}, - 'cc-by-nc-sa-3.0': {'id': 'CC-BY-NC-SA-3.0', 'deprecated': False}, - 'cc-by-nc-sa-3.0-de': {'id': 'CC-BY-NC-SA-3.0-DE', 'deprecated': False}, - 'cc-by-nc-sa-3.0-igo': {'id': 'CC-BY-NC-SA-3.0-IGO', 'deprecated': False}, - 'cc-by-nc-sa-4.0': {'id': 'CC-BY-NC-SA-4.0', 'deprecated': False}, - 'cc-by-nd-1.0': {'id': 'CC-BY-ND-1.0', 'deprecated': False}, - 'cc-by-nd-2.0': {'id': 'CC-BY-ND-2.0', 'deprecated': False}, - 'cc-by-nd-2.5': {'id': 'CC-BY-ND-2.5', 'deprecated': False}, - 'cc-by-nd-3.0': {'id': 'CC-BY-ND-3.0', 'deprecated': False}, - 'cc-by-nd-3.0-de': {'id': 'CC-BY-ND-3.0-DE', 'deprecated': False}, - 'cc-by-nd-4.0': {'id': 'CC-BY-ND-4.0', 'deprecated': False}, - 'cc-by-sa-1.0': {'id': 'CC-BY-SA-1.0', 'deprecated': False}, - 'cc-by-sa-2.0': {'id': 'CC-BY-SA-2.0', 'deprecated': False}, - 'cc-by-sa-2.0-uk': {'id': 'CC-BY-SA-2.0-UK', 'deprecated': False}, - 'cc-by-sa-2.1-jp': {'id': 'CC-BY-SA-2.1-JP', 'deprecated': False}, - 'cc-by-sa-2.5': {'id': 'CC-BY-SA-2.5', 'deprecated': False}, - 'cc-by-sa-3.0': {'id': 'CC-BY-SA-3.0', 'deprecated': False}, - 'cc-by-sa-3.0-at': {'id': 'CC-BY-SA-3.0-AT', 'deprecated': False}, - 'cc-by-sa-3.0-de': {'id': 'CC-BY-SA-3.0-DE', 'deprecated': False}, - 'cc-by-sa-3.0-igo': {'id': 'CC-BY-SA-3.0-IGO', 'deprecated': False}, - 'cc-by-sa-4.0': {'id': 'CC-BY-SA-4.0', 'deprecated': False}, - 'cc-pddc': {'id': 'CC-PDDC', 'deprecated': False}, - 'cc-pdm-1.0': {'id': 'CC-PDM-1.0', 'deprecated': False}, - 'cc-sa-1.0': {'id': 'CC-SA-1.0', 'deprecated': False}, - 'cc0-1.0': {'id': 'CC0-1.0', 'deprecated': False}, - 'cddl-1.0': {'id': 'CDDL-1.0', 'deprecated': False}, - 'cddl-1.1': {'id': 'CDDL-1.1', 'deprecated': False}, - 'cdl-1.0': {'id': 'CDL-1.0', 'deprecated': False}, - 'cdla-permissive-1.0': {'id': 'CDLA-Permissive-1.0', 'deprecated': False}, - 'cdla-permissive-2.0': {'id': 'CDLA-Permissive-2.0', 'deprecated': False}, - 'cdla-sharing-1.0': {'id': 'CDLA-Sharing-1.0', 'deprecated': False}, - 'cecill-1.0': {'id': 'CECILL-1.0', 'deprecated': False}, - 'cecill-1.1': {'id': 'CECILL-1.1', 'deprecated': False}, - 'cecill-2.0': {'id': 'CECILL-2.0', 'deprecated': False}, - 'cecill-2.1': {'id': 'CECILL-2.1', 'deprecated': False}, - 'cecill-b': {'id': 'CECILL-B', 'deprecated': False}, - 'cecill-c': {'id': 'CECILL-C', 'deprecated': False}, - 'cern-ohl-1.1': {'id': 'CERN-OHL-1.1', 'deprecated': False}, - 'cern-ohl-1.2': {'id': 'CERN-OHL-1.2', 'deprecated': False}, - 'cern-ohl-p-2.0': {'id': 'CERN-OHL-P-2.0', 'deprecated': False}, - 'cern-ohl-s-2.0': {'id': 'CERN-OHL-S-2.0', 'deprecated': False}, - 'cern-ohl-w-2.0': {'id': 'CERN-OHL-W-2.0', 'deprecated': False}, - 'cfitsio': {'id': 'CFITSIO', 'deprecated': False}, - 'check-cvs': {'id': 'check-cvs', 'deprecated': False}, - 'checkmk': {'id': 'checkmk', 'deprecated': False}, - 'clartistic': {'id': 'ClArtistic', 'deprecated': False}, - 'clips': {'id': 'Clips', 'deprecated': False}, - 'cmu-mach': {'id': 'CMU-Mach', 'deprecated': False}, - 'cmu-mach-nodoc': {'id': 'CMU-Mach-nodoc', 'deprecated': False}, - 'cnri-jython': {'id': 'CNRI-Jython', 'deprecated': False}, - 'cnri-python': {'id': 'CNRI-Python', 'deprecated': False}, - 'cnri-python-gpl-compatible': {'id': 'CNRI-Python-GPL-Compatible', 'deprecated': False}, - 'coil-1.0': {'id': 'COIL-1.0', 'deprecated': False}, - 'community-spec-1.0': {'id': 'Community-Spec-1.0', 'deprecated': False}, - 'condor-1.1': {'id': 'Condor-1.1', 'deprecated': False}, - 'copyleft-next-0.3.0': {'id': 'copyleft-next-0.3.0', 'deprecated': False}, - 'copyleft-next-0.3.1': {'id': 'copyleft-next-0.3.1', 'deprecated': False}, - 'cornell-lossless-jpeg': {'id': 'Cornell-Lossless-JPEG', 'deprecated': False}, - 'cpal-1.0': {'id': 'CPAL-1.0', 'deprecated': False}, - 'cpl-1.0': {'id': 'CPL-1.0', 'deprecated': False}, - 'cpol-1.02': {'id': 'CPOL-1.02', 'deprecated': False}, - 'cronyx': {'id': 'Cronyx', 'deprecated': False}, - 'crossword': {'id': 'Crossword', 'deprecated': False}, - 'cryptoswift': {'id': 'CryptoSwift', 'deprecated': False}, - 'crystalstacker': {'id': 'CrystalStacker', 'deprecated': False}, - 'cua-opl-1.0': {'id': 'CUA-OPL-1.0', 'deprecated': False}, - 'cube': {'id': 'Cube', 'deprecated': False}, - 'curl': {'id': 'curl', 'deprecated': False}, - 'cve-tou': {'id': 'cve-tou', 'deprecated': False}, - 'd-fsl-1.0': {'id': 'D-FSL-1.0', 'deprecated': False}, - 'dec-3-clause': {'id': 'DEC-3-Clause', 'deprecated': False}, - 'diffmark': {'id': 'diffmark', 'deprecated': False}, - 'dl-de-by-2.0': {'id': 'DL-DE-BY-2.0', 'deprecated': False}, - 'dl-de-zero-2.0': {'id': 'DL-DE-ZERO-2.0', 'deprecated': False}, - 'doc': {'id': 'DOC', 'deprecated': False}, - 'docbook-dtd': {'id': 'DocBook-DTD', 'deprecated': False}, - 'docbook-schema': {'id': 'DocBook-Schema', 'deprecated': False}, - 'docbook-stylesheet': {'id': 'DocBook-Stylesheet', 'deprecated': False}, - 'docbook-xml': {'id': 'DocBook-XML', 'deprecated': False}, - 'dotseqn': {'id': 'Dotseqn', 'deprecated': False}, - 'drl-1.0': {'id': 'DRL-1.0', 'deprecated': False}, - 'drl-1.1': {'id': 'DRL-1.1', 'deprecated': False}, - 'dsdp': {'id': 'DSDP', 'deprecated': False}, - 'dtoa': {'id': 'dtoa', 'deprecated': False}, - 'dvipdfm': {'id': 'dvipdfm', 'deprecated': False}, - 'ecl-1.0': {'id': 'ECL-1.0', 'deprecated': False}, - 'ecl-2.0': {'id': 'ECL-2.0', 'deprecated': False}, - 'ecos-2.0': {'id': 'eCos-2.0', 'deprecated': True}, - 'efl-1.0': {'id': 'EFL-1.0', 'deprecated': False}, - 'efl-2.0': {'id': 'EFL-2.0', 'deprecated': False}, - 'egenix': {'id': 'eGenix', 'deprecated': False}, - 'elastic-2.0': {'id': 'Elastic-2.0', 'deprecated': False}, - 'entessa': {'id': 'Entessa', 'deprecated': False}, - 'epics': {'id': 'EPICS', 'deprecated': False}, - 'epl-1.0': {'id': 'EPL-1.0', 'deprecated': False}, - 'epl-2.0': {'id': 'EPL-2.0', 'deprecated': False}, - 'erlpl-1.1': {'id': 'ErlPL-1.1', 'deprecated': False}, - 'etalab-2.0': {'id': 'etalab-2.0', 'deprecated': False}, - 'eudatagrid': {'id': 'EUDatagrid', 'deprecated': False}, - 'eupl-1.0': {'id': 'EUPL-1.0', 'deprecated': False}, - 'eupl-1.1': {'id': 'EUPL-1.1', 'deprecated': False}, - 'eupl-1.2': {'id': 'EUPL-1.2', 'deprecated': False}, - 'eurosym': {'id': 'Eurosym', 'deprecated': False}, - 'fair': {'id': 'Fair', 'deprecated': False}, - 'fbm': {'id': 'FBM', 'deprecated': False}, - 'fdk-aac': {'id': 'FDK-AAC', 'deprecated': False}, - 'ferguson-twofish': {'id': 'Ferguson-Twofish', 'deprecated': False}, - 'frameworx-1.0': {'id': 'Frameworx-1.0', 'deprecated': False}, - 'freebsd-doc': {'id': 'FreeBSD-DOC', 'deprecated': False}, - 'freeimage': {'id': 'FreeImage', 'deprecated': False}, - 'fsfap': {'id': 'FSFAP', 'deprecated': False}, - 'fsfap-no-warranty-disclaimer': {'id': 'FSFAP-no-warranty-disclaimer', 'deprecated': False}, - 'fsful': {'id': 'FSFUL', 'deprecated': False}, - 'fsfullr': {'id': 'FSFULLR', 'deprecated': False}, - 'fsfullrsd': {'id': 'FSFULLRSD', 'deprecated': False}, - 'fsfullrwd': {'id': 'FSFULLRWD', 'deprecated': False}, - 'fsl-1.1-alv2': {'id': 'FSL-1.1-ALv2', 'deprecated': False}, - 'fsl-1.1-mit': {'id': 'FSL-1.1-MIT', 'deprecated': False}, - 'ftl': {'id': 'FTL', 'deprecated': False}, - 'furuseth': {'id': 'Furuseth', 'deprecated': False}, - 'fwlw': {'id': 'fwlw', 'deprecated': False}, - 'game-programming-gems': {'id': 'Game-Programming-Gems', 'deprecated': False}, - 'gcr-docs': {'id': 'GCR-docs', 'deprecated': False}, - 'gd': {'id': 'GD', 'deprecated': False}, - 'generic-xts': {'id': 'generic-xts', 'deprecated': False}, - 'gfdl-1.1': {'id': 'GFDL-1.1', 'deprecated': True}, - 'gfdl-1.1-invariants-only': {'id': 'GFDL-1.1-invariants-only', 'deprecated': False}, - 'gfdl-1.1-invariants-or-later': {'id': 'GFDL-1.1-invariants-or-later', 'deprecated': False}, - 'gfdl-1.1-no-invariants-only': {'id': 'GFDL-1.1-no-invariants-only', 'deprecated': False}, - 'gfdl-1.1-no-invariants-or-later': {'id': 'GFDL-1.1-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.1-only': {'id': 'GFDL-1.1-only', 'deprecated': False}, - 'gfdl-1.1-or-later': {'id': 'GFDL-1.1-or-later', 'deprecated': False}, - 'gfdl-1.2': {'id': 'GFDL-1.2', 'deprecated': True}, - 'gfdl-1.2-invariants-only': {'id': 'GFDL-1.2-invariants-only', 'deprecated': False}, - 'gfdl-1.2-invariants-or-later': {'id': 'GFDL-1.2-invariants-or-later', 'deprecated': False}, - 'gfdl-1.2-no-invariants-only': {'id': 'GFDL-1.2-no-invariants-only', 'deprecated': False}, - 'gfdl-1.2-no-invariants-or-later': {'id': 'GFDL-1.2-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.2-only': {'id': 'GFDL-1.2-only', 'deprecated': False}, - 'gfdl-1.2-or-later': {'id': 'GFDL-1.2-or-later', 'deprecated': False}, - 'gfdl-1.3': {'id': 'GFDL-1.3', 'deprecated': True}, - 'gfdl-1.3-invariants-only': {'id': 'GFDL-1.3-invariants-only', 'deprecated': False}, - 'gfdl-1.3-invariants-or-later': {'id': 'GFDL-1.3-invariants-or-later', 'deprecated': False}, - 'gfdl-1.3-no-invariants-only': {'id': 'GFDL-1.3-no-invariants-only', 'deprecated': False}, - 'gfdl-1.3-no-invariants-or-later': {'id': 'GFDL-1.3-no-invariants-or-later', 'deprecated': False}, - 'gfdl-1.3-only': {'id': 'GFDL-1.3-only', 'deprecated': False}, - 'gfdl-1.3-or-later': {'id': 'GFDL-1.3-or-later', 'deprecated': False}, - 'giftware': {'id': 'Giftware', 'deprecated': False}, - 'gl2ps': {'id': 'GL2PS', 'deprecated': False}, - 'glide': {'id': 'Glide', 'deprecated': False}, - 'glulxe': {'id': 'Glulxe', 'deprecated': False}, - 'glwtpl': {'id': 'GLWTPL', 'deprecated': False}, - 'gnuplot': {'id': 'gnuplot', 'deprecated': False}, - 'gpl-1.0': {'id': 'GPL-1.0', 'deprecated': True}, - 'gpl-1.0+': {'id': 'GPL-1.0+', 'deprecated': True}, - 'gpl-1.0-only': {'id': 'GPL-1.0-only', 'deprecated': False}, - 'gpl-1.0-or-later': {'id': 'GPL-1.0-or-later', 'deprecated': False}, - 'gpl-2.0': {'id': 'GPL-2.0', 'deprecated': True}, - 'gpl-2.0+': {'id': 'GPL-2.0+', 'deprecated': True}, - 'gpl-2.0-only': {'id': 'GPL-2.0-only', 'deprecated': False}, - 'gpl-2.0-or-later': {'id': 'GPL-2.0-or-later', 'deprecated': False}, - 'gpl-2.0-with-autoconf-exception': {'id': 'GPL-2.0-with-autoconf-exception', 'deprecated': True}, - 'gpl-2.0-with-bison-exception': {'id': 'GPL-2.0-with-bison-exception', 'deprecated': True}, - 'gpl-2.0-with-classpath-exception': {'id': 'GPL-2.0-with-classpath-exception', 'deprecated': True}, - 'gpl-2.0-with-font-exception': {'id': 'GPL-2.0-with-font-exception', 'deprecated': True}, - 'gpl-2.0-with-gcc-exception': {'id': 'GPL-2.0-with-GCC-exception', 'deprecated': True}, - 'gpl-3.0': {'id': 'GPL-3.0', 'deprecated': True}, - 'gpl-3.0+': {'id': 'GPL-3.0+', 'deprecated': True}, - 'gpl-3.0-only': {'id': 'GPL-3.0-only', 'deprecated': False}, - 'gpl-3.0-or-later': {'id': 'GPL-3.0-or-later', 'deprecated': False}, - 'gpl-3.0-with-autoconf-exception': {'id': 'GPL-3.0-with-autoconf-exception', 'deprecated': True}, - 'gpl-3.0-with-gcc-exception': {'id': 'GPL-3.0-with-GCC-exception', 'deprecated': True}, - 'graphics-gems': {'id': 'Graphics-Gems', 'deprecated': False}, - 'gsoap-1.3b': {'id': 'gSOAP-1.3b', 'deprecated': False}, - 'gtkbook': {'id': 'gtkbook', 'deprecated': False}, - 'gutmann': {'id': 'Gutmann', 'deprecated': False}, - 'haskellreport': {'id': 'HaskellReport', 'deprecated': False}, - 'hdf5': {'id': 'HDF5', 'deprecated': False}, - 'hdparm': {'id': 'hdparm', 'deprecated': False}, - 'hidapi': {'id': 'HIDAPI', 'deprecated': False}, - 'hippocratic-2.1': {'id': 'Hippocratic-2.1', 'deprecated': False}, - 'hp-1986': {'id': 'HP-1986', 'deprecated': False}, - 'hp-1989': {'id': 'HP-1989', 'deprecated': False}, - 'hpnd': {'id': 'HPND', 'deprecated': False}, - 'hpnd-dec': {'id': 'HPND-DEC', 'deprecated': False}, - 'hpnd-doc': {'id': 'HPND-doc', 'deprecated': False}, - 'hpnd-doc-sell': {'id': 'HPND-doc-sell', 'deprecated': False}, - 'hpnd-export-us': {'id': 'HPND-export-US', 'deprecated': False}, - 'hpnd-export-us-acknowledgement': {'id': 'HPND-export-US-acknowledgement', 'deprecated': False}, - 'hpnd-export-us-modify': {'id': 'HPND-export-US-modify', 'deprecated': False}, - 'hpnd-export2-us': {'id': 'HPND-export2-US', 'deprecated': False}, - 'hpnd-fenneberg-livingston': {'id': 'HPND-Fenneberg-Livingston', 'deprecated': False}, - 'hpnd-inria-imag': {'id': 'HPND-INRIA-IMAG', 'deprecated': False}, - 'hpnd-intel': {'id': 'HPND-Intel', 'deprecated': False}, - 'hpnd-kevlin-henney': {'id': 'HPND-Kevlin-Henney', 'deprecated': False}, - 'hpnd-markus-kuhn': {'id': 'HPND-Markus-Kuhn', 'deprecated': False}, - 'hpnd-merchantability-variant': {'id': 'HPND-merchantability-variant', 'deprecated': False}, - 'hpnd-mit-disclaimer': {'id': 'HPND-MIT-disclaimer', 'deprecated': False}, - 'hpnd-netrek': {'id': 'HPND-Netrek', 'deprecated': False}, - 'hpnd-pbmplus': {'id': 'HPND-Pbmplus', 'deprecated': False}, - 'hpnd-sell-mit-disclaimer-xserver': {'id': 'HPND-sell-MIT-disclaimer-xserver', 'deprecated': False}, - 'hpnd-sell-regexpr': {'id': 'HPND-sell-regexpr', 'deprecated': False}, - 'hpnd-sell-variant': {'id': 'HPND-sell-variant', 'deprecated': False}, - 'hpnd-sell-variant-mit-disclaimer': {'id': 'HPND-sell-variant-MIT-disclaimer', 'deprecated': False}, - 'hpnd-sell-variant-mit-disclaimer-rev': {'id': 'HPND-sell-variant-MIT-disclaimer-rev', 'deprecated': False}, - 'hpnd-uc': {'id': 'HPND-UC', 'deprecated': False}, - 'hpnd-uc-export-us': {'id': 'HPND-UC-export-US', 'deprecated': False}, - 'htmltidy': {'id': 'HTMLTIDY', 'deprecated': False}, - 'ibm-pibs': {'id': 'IBM-pibs', 'deprecated': False}, - 'icu': {'id': 'ICU', 'deprecated': False}, - 'iec-code-components-eula': {'id': 'IEC-Code-Components-EULA', 'deprecated': False}, - 'ijg': {'id': 'IJG', 'deprecated': False}, - 'ijg-short': {'id': 'IJG-short', 'deprecated': False}, - 'imagemagick': {'id': 'ImageMagick', 'deprecated': False}, - 'imatix': {'id': 'iMatix', 'deprecated': False}, - 'imlib2': {'id': 'Imlib2', 'deprecated': False}, - 'info-zip': {'id': 'Info-ZIP', 'deprecated': False}, - 'inner-net-2.0': {'id': 'Inner-Net-2.0', 'deprecated': False}, - 'innosetup': {'id': 'InnoSetup', 'deprecated': False}, - 'intel': {'id': 'Intel', 'deprecated': False}, - 'intel-acpi': {'id': 'Intel-ACPI', 'deprecated': False}, - 'interbase-1.0': {'id': 'Interbase-1.0', 'deprecated': False}, - 'ipa': {'id': 'IPA', 'deprecated': False}, - 'ipl-1.0': {'id': 'IPL-1.0', 'deprecated': False}, - 'isc': {'id': 'ISC', 'deprecated': False}, - 'isc-veillard': {'id': 'ISC-Veillard', 'deprecated': False}, - 'jam': {'id': 'Jam', 'deprecated': False}, - 'jasper-2.0': {'id': 'JasPer-2.0', 'deprecated': False}, - 'jove': {'id': 'jove', 'deprecated': False}, - 'jpl-image': {'id': 'JPL-image', 'deprecated': False}, - 'jpnic': {'id': 'JPNIC', 'deprecated': False}, - 'json': {'id': 'JSON', 'deprecated': False}, - 'kastrup': {'id': 'Kastrup', 'deprecated': False}, - 'kazlib': {'id': 'Kazlib', 'deprecated': False}, - 'knuth-ctan': {'id': 'Knuth-CTAN', 'deprecated': False}, - 'lal-1.2': {'id': 'LAL-1.2', 'deprecated': False}, - 'lal-1.3': {'id': 'LAL-1.3', 'deprecated': False}, - 'latex2e': {'id': 'Latex2e', 'deprecated': False}, - 'latex2e-translated-notice': {'id': 'Latex2e-translated-notice', 'deprecated': False}, - 'leptonica': {'id': 'Leptonica', 'deprecated': False}, - 'lgpl-2.0': {'id': 'LGPL-2.0', 'deprecated': True}, - 'lgpl-2.0+': {'id': 'LGPL-2.0+', 'deprecated': True}, - 'lgpl-2.0-only': {'id': 'LGPL-2.0-only', 'deprecated': False}, - 'lgpl-2.0-or-later': {'id': 'LGPL-2.0-or-later', 'deprecated': False}, - 'lgpl-2.1': {'id': 'LGPL-2.1', 'deprecated': True}, - 'lgpl-2.1+': {'id': 'LGPL-2.1+', 'deprecated': True}, - 'lgpl-2.1-only': {'id': 'LGPL-2.1-only', 'deprecated': False}, - 'lgpl-2.1-or-later': {'id': 'LGPL-2.1-or-later', 'deprecated': False}, - 'lgpl-3.0': {'id': 'LGPL-3.0', 'deprecated': True}, - 'lgpl-3.0+': {'id': 'LGPL-3.0+', 'deprecated': True}, - 'lgpl-3.0-only': {'id': 'LGPL-3.0-only', 'deprecated': False}, - 'lgpl-3.0-or-later': {'id': 'LGPL-3.0-or-later', 'deprecated': False}, - 'lgpllr': {'id': 'LGPLLR', 'deprecated': False}, - 'libpng': {'id': 'Libpng', 'deprecated': False}, - 'libpng-1.6.35': {'id': 'libpng-1.6.35', 'deprecated': False}, - 'libpng-2.0': {'id': 'libpng-2.0', 'deprecated': False}, - 'libselinux-1.0': {'id': 'libselinux-1.0', 'deprecated': False}, - 'libtiff': {'id': 'libtiff', 'deprecated': False}, - 'libutil-david-nugent': {'id': 'libutil-David-Nugent', 'deprecated': False}, - 'liliq-p-1.1': {'id': 'LiLiQ-P-1.1', 'deprecated': False}, - 'liliq-r-1.1': {'id': 'LiLiQ-R-1.1', 'deprecated': False}, - 'liliq-rplus-1.1': {'id': 'LiLiQ-Rplus-1.1', 'deprecated': False}, - 'linux-man-pages-1-para': {'id': 'Linux-man-pages-1-para', 'deprecated': False}, - 'linux-man-pages-copyleft': {'id': 'Linux-man-pages-copyleft', 'deprecated': False}, - 'linux-man-pages-copyleft-2-para': {'id': 'Linux-man-pages-copyleft-2-para', 'deprecated': False}, - 'linux-man-pages-copyleft-var': {'id': 'Linux-man-pages-copyleft-var', 'deprecated': False}, - 'linux-openib': {'id': 'Linux-OpenIB', 'deprecated': False}, - 'loop': {'id': 'LOOP', 'deprecated': False}, - 'lpd-document': {'id': 'LPD-document', 'deprecated': False}, - 'lpl-1.0': {'id': 'LPL-1.0', 'deprecated': False}, - 'lpl-1.02': {'id': 'LPL-1.02', 'deprecated': False}, - 'lppl-1.0': {'id': 'LPPL-1.0', 'deprecated': False}, - 'lppl-1.1': {'id': 'LPPL-1.1', 'deprecated': False}, - 'lppl-1.2': {'id': 'LPPL-1.2', 'deprecated': False}, - 'lppl-1.3a': {'id': 'LPPL-1.3a', 'deprecated': False}, - 'lppl-1.3c': {'id': 'LPPL-1.3c', 'deprecated': False}, - 'lsof': {'id': 'lsof', 'deprecated': False}, - 'lucida-bitmap-fonts': {'id': 'Lucida-Bitmap-Fonts', 'deprecated': False}, - 'lzma-sdk-9.11-to-9.20': {'id': 'LZMA-SDK-9.11-to-9.20', 'deprecated': False}, - 'lzma-sdk-9.22': {'id': 'LZMA-SDK-9.22', 'deprecated': False}, - 'mackerras-3-clause': {'id': 'Mackerras-3-Clause', 'deprecated': False}, - 'mackerras-3-clause-acknowledgment': {'id': 'Mackerras-3-Clause-acknowledgment', 'deprecated': False}, - 'magaz': {'id': 'magaz', 'deprecated': False}, - 'mailprio': {'id': 'mailprio', 'deprecated': False}, - 'makeindex': {'id': 'MakeIndex', 'deprecated': False}, - 'man2html': {'id': 'man2html', 'deprecated': False}, - 'martin-birgmeier': {'id': 'Martin-Birgmeier', 'deprecated': False}, - 'mcphee-slideshow': {'id': 'McPhee-slideshow', 'deprecated': False}, - 'metamail': {'id': 'metamail', 'deprecated': False}, - 'minpack': {'id': 'Minpack', 'deprecated': False}, - 'mips': {'id': 'MIPS', 'deprecated': False}, - 'miros': {'id': 'MirOS', 'deprecated': False}, - 'mit': {'id': 'MIT', 'deprecated': False}, - 'mit-0': {'id': 'MIT-0', 'deprecated': False}, - 'mit-advertising': {'id': 'MIT-advertising', 'deprecated': False}, - 'mit-click': {'id': 'MIT-Click', 'deprecated': False}, - 'mit-cmu': {'id': 'MIT-CMU', 'deprecated': False}, - 'mit-enna': {'id': 'MIT-enna', 'deprecated': False}, - 'mit-feh': {'id': 'MIT-feh', 'deprecated': False}, - 'mit-festival': {'id': 'MIT-Festival', 'deprecated': False}, - 'mit-khronos-old': {'id': 'MIT-Khronos-old', 'deprecated': False}, - 'mit-modern-variant': {'id': 'MIT-Modern-Variant', 'deprecated': False}, - 'mit-open-group': {'id': 'MIT-open-group', 'deprecated': False}, - 'mit-testregex': {'id': 'MIT-testregex', 'deprecated': False}, - 'mit-wu': {'id': 'MIT-Wu', 'deprecated': False}, - 'mitnfa': {'id': 'MITNFA', 'deprecated': False}, - 'mmixware': {'id': 'MMIXware', 'deprecated': False}, - 'motosoto': {'id': 'Motosoto', 'deprecated': False}, - 'mpeg-ssg': {'id': 'MPEG-SSG', 'deprecated': False}, - 'mpi-permissive': {'id': 'mpi-permissive', 'deprecated': False}, - 'mpich2': {'id': 'mpich2', 'deprecated': False}, - 'mpl-1.0': {'id': 'MPL-1.0', 'deprecated': False}, - 'mpl-1.1': {'id': 'MPL-1.1', 'deprecated': False}, - 'mpl-2.0': {'id': 'MPL-2.0', 'deprecated': False}, - 'mpl-2.0-no-copyleft-exception': {'id': 'MPL-2.0-no-copyleft-exception', 'deprecated': False}, - 'mplus': {'id': 'mplus', 'deprecated': False}, - 'ms-lpl': {'id': 'MS-LPL', 'deprecated': False}, - 'ms-pl': {'id': 'MS-PL', 'deprecated': False}, - 'ms-rl': {'id': 'MS-RL', 'deprecated': False}, - 'mtll': {'id': 'MTLL', 'deprecated': False}, - 'mulanpsl-1.0': {'id': 'MulanPSL-1.0', 'deprecated': False}, - 'mulanpsl-2.0': {'id': 'MulanPSL-2.0', 'deprecated': False}, - 'multics': {'id': 'Multics', 'deprecated': False}, - 'mup': {'id': 'Mup', 'deprecated': False}, - 'naist-2003': {'id': 'NAIST-2003', 'deprecated': False}, - 'nasa-1.3': {'id': 'NASA-1.3', 'deprecated': False}, - 'naumen': {'id': 'Naumen', 'deprecated': False}, - 'nbpl-1.0': {'id': 'NBPL-1.0', 'deprecated': False}, - 'ncbi-pd': {'id': 'NCBI-PD', 'deprecated': False}, - 'ncgl-uk-2.0': {'id': 'NCGL-UK-2.0', 'deprecated': False}, - 'ncl': {'id': 'NCL', 'deprecated': False}, - 'ncsa': {'id': 'NCSA', 'deprecated': False}, - 'net-snmp': {'id': 'Net-SNMP', 'deprecated': True}, - 'netcdf': {'id': 'NetCDF', 'deprecated': False}, - 'newsletr': {'id': 'Newsletr', 'deprecated': False}, - 'ngpl': {'id': 'NGPL', 'deprecated': False}, - 'ngrep': {'id': 'ngrep', 'deprecated': False}, - 'nicta-1.0': {'id': 'NICTA-1.0', 'deprecated': False}, - 'nist-pd': {'id': 'NIST-PD', 'deprecated': False}, - 'nist-pd-fallback': {'id': 'NIST-PD-fallback', 'deprecated': False}, - 'nist-software': {'id': 'NIST-Software', 'deprecated': False}, - 'nlod-1.0': {'id': 'NLOD-1.0', 'deprecated': False}, - 'nlod-2.0': {'id': 'NLOD-2.0', 'deprecated': False}, - 'nlpl': {'id': 'NLPL', 'deprecated': False}, - 'nokia': {'id': 'Nokia', 'deprecated': False}, - 'nosl': {'id': 'NOSL', 'deprecated': False}, - 'noweb': {'id': 'Noweb', 'deprecated': False}, - 'npl-1.0': {'id': 'NPL-1.0', 'deprecated': False}, - 'npl-1.1': {'id': 'NPL-1.1', 'deprecated': False}, - 'nposl-3.0': {'id': 'NPOSL-3.0', 'deprecated': False}, - 'nrl': {'id': 'NRL', 'deprecated': False}, - 'ntia-pd': {'id': 'NTIA-PD', 'deprecated': False}, - 'ntp': {'id': 'NTP', 'deprecated': False}, - 'ntp-0': {'id': 'NTP-0', 'deprecated': False}, - 'nunit': {'id': 'Nunit', 'deprecated': True}, - 'o-uda-1.0': {'id': 'O-UDA-1.0', 'deprecated': False}, - 'oar': {'id': 'OAR', 'deprecated': False}, - 'occt-pl': {'id': 'OCCT-PL', 'deprecated': False}, - 'oclc-2.0': {'id': 'OCLC-2.0', 'deprecated': False}, - 'odbl-1.0': {'id': 'ODbL-1.0', 'deprecated': False}, - 'odc-by-1.0': {'id': 'ODC-By-1.0', 'deprecated': False}, - 'offis': {'id': 'OFFIS', 'deprecated': False}, - 'ofl-1.0': {'id': 'OFL-1.0', 'deprecated': False}, - 'ofl-1.0-no-rfn': {'id': 'OFL-1.0-no-RFN', 'deprecated': False}, - 'ofl-1.0-rfn': {'id': 'OFL-1.0-RFN', 'deprecated': False}, - 'ofl-1.1': {'id': 'OFL-1.1', 'deprecated': False}, - 'ofl-1.1-no-rfn': {'id': 'OFL-1.1-no-RFN', 'deprecated': False}, - 'ofl-1.1-rfn': {'id': 'OFL-1.1-RFN', 'deprecated': False}, - 'ogc-1.0': {'id': 'OGC-1.0', 'deprecated': False}, - 'ogdl-taiwan-1.0': {'id': 'OGDL-Taiwan-1.0', 'deprecated': False}, - 'ogl-canada-2.0': {'id': 'OGL-Canada-2.0', 'deprecated': False}, - 'ogl-uk-1.0': {'id': 'OGL-UK-1.0', 'deprecated': False}, - 'ogl-uk-2.0': {'id': 'OGL-UK-2.0', 'deprecated': False}, - 'ogl-uk-3.0': {'id': 'OGL-UK-3.0', 'deprecated': False}, - 'ogtsl': {'id': 'OGTSL', 'deprecated': False}, - 'oldap-1.1': {'id': 'OLDAP-1.1', 'deprecated': False}, - 'oldap-1.2': {'id': 'OLDAP-1.2', 'deprecated': False}, - 'oldap-1.3': {'id': 'OLDAP-1.3', 'deprecated': False}, - 'oldap-1.4': {'id': 'OLDAP-1.4', 'deprecated': False}, - 'oldap-2.0': {'id': 'OLDAP-2.0', 'deprecated': False}, - 'oldap-2.0.1': {'id': 'OLDAP-2.0.1', 'deprecated': False}, - 'oldap-2.1': {'id': 'OLDAP-2.1', 'deprecated': False}, - 'oldap-2.2': {'id': 'OLDAP-2.2', 'deprecated': False}, - 'oldap-2.2.1': {'id': 'OLDAP-2.2.1', 'deprecated': False}, - 'oldap-2.2.2': {'id': 'OLDAP-2.2.2', 'deprecated': False}, - 'oldap-2.3': {'id': 'OLDAP-2.3', 'deprecated': False}, - 'oldap-2.4': {'id': 'OLDAP-2.4', 'deprecated': False}, - 'oldap-2.5': {'id': 'OLDAP-2.5', 'deprecated': False}, - 'oldap-2.6': {'id': 'OLDAP-2.6', 'deprecated': False}, - 'oldap-2.7': {'id': 'OLDAP-2.7', 'deprecated': False}, - 'oldap-2.8': {'id': 'OLDAP-2.8', 'deprecated': False}, - 'olfl-1.3': {'id': 'OLFL-1.3', 'deprecated': False}, - 'oml': {'id': 'OML', 'deprecated': False}, - 'openpbs-2.3': {'id': 'OpenPBS-2.3', 'deprecated': False}, - 'openssl': {'id': 'OpenSSL', 'deprecated': False}, - 'openssl-standalone': {'id': 'OpenSSL-standalone', 'deprecated': False}, - 'openvision': {'id': 'OpenVision', 'deprecated': False}, - 'opl-1.0': {'id': 'OPL-1.0', 'deprecated': False}, - 'opl-uk-3.0': {'id': 'OPL-UK-3.0', 'deprecated': False}, - 'opubl-1.0': {'id': 'OPUBL-1.0', 'deprecated': False}, - 'oset-pl-2.1': {'id': 'OSET-PL-2.1', 'deprecated': False}, - 'osl-1.0': {'id': 'OSL-1.0', 'deprecated': False}, - 'osl-1.1': {'id': 'OSL-1.1', 'deprecated': False}, - 'osl-2.0': {'id': 'OSL-2.0', 'deprecated': False}, - 'osl-2.1': {'id': 'OSL-2.1', 'deprecated': False}, - 'osl-3.0': {'id': 'OSL-3.0', 'deprecated': False}, - 'padl': {'id': 'PADL', 'deprecated': False}, - 'parity-6.0.0': {'id': 'Parity-6.0.0', 'deprecated': False}, - 'parity-7.0.0': {'id': 'Parity-7.0.0', 'deprecated': False}, - 'pddl-1.0': {'id': 'PDDL-1.0', 'deprecated': False}, - 'php-3.0': {'id': 'PHP-3.0', 'deprecated': False}, - 'php-3.01': {'id': 'PHP-3.01', 'deprecated': False}, - 'pixar': {'id': 'Pixar', 'deprecated': False}, - 'pkgconf': {'id': 'pkgconf', 'deprecated': False}, - 'plexus': {'id': 'Plexus', 'deprecated': False}, - 'pnmstitch': {'id': 'pnmstitch', 'deprecated': False}, - 'polyform-noncommercial-1.0.0': {'id': 'PolyForm-Noncommercial-1.0.0', 'deprecated': False}, - 'polyform-small-business-1.0.0': {'id': 'PolyForm-Small-Business-1.0.0', 'deprecated': False}, - 'postgresql': {'id': 'PostgreSQL', 'deprecated': False}, - 'ppl': {'id': 'PPL', 'deprecated': False}, - 'psf-2.0': {'id': 'PSF-2.0', 'deprecated': False}, - 'psfrag': {'id': 'psfrag', 'deprecated': False}, - 'psutils': {'id': 'psutils', 'deprecated': False}, - 'python-2.0': {'id': 'Python-2.0', 'deprecated': False}, - 'python-2.0.1': {'id': 'Python-2.0.1', 'deprecated': False}, - 'python-ldap': {'id': 'python-ldap', 'deprecated': False}, - 'qhull': {'id': 'Qhull', 'deprecated': False}, - 'qpl-1.0': {'id': 'QPL-1.0', 'deprecated': False}, - 'qpl-1.0-inria-2004': {'id': 'QPL-1.0-INRIA-2004', 'deprecated': False}, - 'radvd': {'id': 'radvd', 'deprecated': False}, - 'rdisc': {'id': 'Rdisc', 'deprecated': False}, - 'rhecos-1.1': {'id': 'RHeCos-1.1', 'deprecated': False}, - 'rpl-1.1': {'id': 'RPL-1.1', 'deprecated': False}, - 'rpl-1.5': {'id': 'RPL-1.5', 'deprecated': False}, - 'rpsl-1.0': {'id': 'RPSL-1.0', 'deprecated': False}, - 'rsa-md': {'id': 'RSA-MD', 'deprecated': False}, - 'rscpl': {'id': 'RSCPL', 'deprecated': False}, - 'ruby': {'id': 'Ruby', 'deprecated': False}, - 'ruby-pty': {'id': 'Ruby-pty', 'deprecated': False}, - 'sax-pd': {'id': 'SAX-PD', 'deprecated': False}, - 'sax-pd-2.0': {'id': 'SAX-PD-2.0', 'deprecated': False}, - 'saxpath': {'id': 'Saxpath', 'deprecated': False}, - 'scea': {'id': 'SCEA', 'deprecated': False}, - 'schemereport': {'id': 'SchemeReport', 'deprecated': False}, - 'sendmail': {'id': 'Sendmail', 'deprecated': False}, - 'sendmail-8.23': {'id': 'Sendmail-8.23', 'deprecated': False}, - 'sendmail-open-source-1.1': {'id': 'Sendmail-Open-Source-1.1', 'deprecated': False}, - 'sgi-b-1.0': {'id': 'SGI-B-1.0', 'deprecated': False}, - 'sgi-b-1.1': {'id': 'SGI-B-1.1', 'deprecated': False}, - 'sgi-b-2.0': {'id': 'SGI-B-2.0', 'deprecated': False}, - 'sgi-opengl': {'id': 'SGI-OpenGL', 'deprecated': False}, - 'sgp4': {'id': 'SGP4', 'deprecated': False}, - 'shl-0.5': {'id': 'SHL-0.5', 'deprecated': False}, - 'shl-0.51': {'id': 'SHL-0.51', 'deprecated': False}, - 'simpl-2.0': {'id': 'SimPL-2.0', 'deprecated': False}, - 'sissl': {'id': 'SISSL', 'deprecated': False}, - 'sissl-1.2': {'id': 'SISSL-1.2', 'deprecated': False}, - 'sl': {'id': 'SL', 'deprecated': False}, - 'sleepycat': {'id': 'Sleepycat', 'deprecated': False}, - 'smail-gpl': {'id': 'SMAIL-GPL', 'deprecated': False}, - 'smlnj': {'id': 'SMLNJ', 'deprecated': False}, - 'smppl': {'id': 'SMPPL', 'deprecated': False}, - 'snia': {'id': 'SNIA', 'deprecated': False}, - 'snprintf': {'id': 'snprintf', 'deprecated': False}, - 'sofa': {'id': 'SOFA', 'deprecated': False}, - 'softsurfer': {'id': 'softSurfer', 'deprecated': False}, - 'soundex': {'id': 'Soundex', 'deprecated': False}, - 'spencer-86': {'id': 'Spencer-86', 'deprecated': False}, - 'spencer-94': {'id': 'Spencer-94', 'deprecated': False}, - 'spencer-99': {'id': 'Spencer-99', 'deprecated': False}, - 'spl-1.0': {'id': 'SPL-1.0', 'deprecated': False}, - 'ssh-keyscan': {'id': 'ssh-keyscan', 'deprecated': False}, - 'ssh-openssh': {'id': 'SSH-OpenSSH', 'deprecated': False}, - 'ssh-short': {'id': 'SSH-short', 'deprecated': False}, - 'ssleay-standalone': {'id': 'SSLeay-standalone', 'deprecated': False}, - 'sspl-1.0': {'id': 'SSPL-1.0', 'deprecated': False}, - 'standardml-nj': {'id': 'StandardML-NJ', 'deprecated': True}, - 'sugarcrm-1.1.3': {'id': 'SugarCRM-1.1.3', 'deprecated': False}, - 'sul-1.0': {'id': 'SUL-1.0', 'deprecated': False}, - 'sun-ppp': {'id': 'Sun-PPP', 'deprecated': False}, - 'sun-ppp-2000': {'id': 'Sun-PPP-2000', 'deprecated': False}, - 'sunpro': {'id': 'SunPro', 'deprecated': False}, - 'swl': {'id': 'SWL', 'deprecated': False}, - 'swrule': {'id': 'swrule', 'deprecated': False}, - 'symlinks': {'id': 'Symlinks', 'deprecated': False}, - 'tapr-ohl-1.0': {'id': 'TAPR-OHL-1.0', 'deprecated': False}, - 'tcl': {'id': 'TCL', 'deprecated': False}, - 'tcp-wrappers': {'id': 'TCP-wrappers', 'deprecated': False}, - 'termreadkey': {'id': 'TermReadKey', 'deprecated': False}, - 'tgppl-1.0': {'id': 'TGPPL-1.0', 'deprecated': False}, - 'thirdeye': {'id': 'ThirdEye', 'deprecated': False}, - 'threeparttable': {'id': 'threeparttable', 'deprecated': False}, - 'tmate': {'id': 'TMate', 'deprecated': False}, - 'torque-1.1': {'id': 'TORQUE-1.1', 'deprecated': False}, - 'tosl': {'id': 'TOSL', 'deprecated': False}, - 'tpdl': {'id': 'TPDL', 'deprecated': False}, - 'tpl-1.0': {'id': 'TPL-1.0', 'deprecated': False}, - 'trustedqsl': {'id': 'TrustedQSL', 'deprecated': False}, - 'ttwl': {'id': 'TTWL', 'deprecated': False}, - 'ttyp0': {'id': 'TTYP0', 'deprecated': False}, - 'tu-berlin-1.0': {'id': 'TU-Berlin-1.0', 'deprecated': False}, - 'tu-berlin-2.0': {'id': 'TU-Berlin-2.0', 'deprecated': False}, - 'ubuntu-font-1.0': {'id': 'Ubuntu-font-1.0', 'deprecated': False}, - 'ucar': {'id': 'UCAR', 'deprecated': False}, - 'ucl-1.0': {'id': 'UCL-1.0', 'deprecated': False}, - 'ulem': {'id': 'ulem', 'deprecated': False}, - 'umich-merit': {'id': 'UMich-Merit', 'deprecated': False}, - 'unicode-3.0': {'id': 'Unicode-3.0', 'deprecated': False}, - 'unicode-dfs-2015': {'id': 'Unicode-DFS-2015', 'deprecated': False}, - 'unicode-dfs-2016': {'id': 'Unicode-DFS-2016', 'deprecated': False}, - 'unicode-tou': {'id': 'Unicode-TOU', 'deprecated': False}, - 'unixcrypt': {'id': 'UnixCrypt', 'deprecated': False}, - 'unlicense': {'id': 'Unlicense', 'deprecated': False}, - 'unlicense-libtelnet': {'id': 'Unlicense-libtelnet', 'deprecated': False}, - 'unlicense-libwhirlpool': {'id': 'Unlicense-libwhirlpool', 'deprecated': False}, - 'upl-1.0': {'id': 'UPL-1.0', 'deprecated': False}, - 'urt-rle': {'id': 'URT-RLE', 'deprecated': False}, - 'vim': {'id': 'Vim', 'deprecated': False}, - 'vostrom': {'id': 'VOSTROM', 'deprecated': False}, - 'vsl-1.0': {'id': 'VSL-1.0', 'deprecated': False}, - 'w3c': {'id': 'W3C', 'deprecated': False}, - 'w3c-19980720': {'id': 'W3C-19980720', 'deprecated': False}, - 'w3c-20150513': {'id': 'W3C-20150513', 'deprecated': False}, - 'w3m': {'id': 'w3m', 'deprecated': False}, - 'watcom-1.0': {'id': 'Watcom-1.0', 'deprecated': False}, - 'widget-workshop': {'id': 'Widget-Workshop', 'deprecated': False}, - 'wsuipa': {'id': 'Wsuipa', 'deprecated': False}, - 'wtfpl': {'id': 'WTFPL', 'deprecated': False}, - 'wwl': {'id': 'wwl', 'deprecated': False}, - 'wxwindows': {'id': 'wxWindows', 'deprecated': True}, - 'x11': {'id': 'X11', 'deprecated': False}, - 'x11-distribute-modifications-variant': {'id': 'X11-distribute-modifications-variant', 'deprecated': False}, - 'x11-swapped': {'id': 'X11-swapped', 'deprecated': False}, - 'xdebug-1.03': {'id': 'Xdebug-1.03', 'deprecated': False}, - 'xerox': {'id': 'Xerox', 'deprecated': False}, - 'xfig': {'id': 'Xfig', 'deprecated': False}, - 'xfree86-1.1': {'id': 'XFree86-1.1', 'deprecated': False}, - 'xinetd': {'id': 'xinetd', 'deprecated': False}, - 'xkeyboard-config-zinoviev': {'id': 'xkeyboard-config-Zinoviev', 'deprecated': False}, - 'xlock': {'id': 'xlock', 'deprecated': False}, - 'xnet': {'id': 'Xnet', 'deprecated': False}, - 'xpp': {'id': 'xpp', 'deprecated': False}, - 'xskat': {'id': 'XSkat', 'deprecated': False}, - 'xzoom': {'id': 'xzoom', 'deprecated': False}, - 'ypl-1.0': {'id': 'YPL-1.0', 'deprecated': False}, - 'ypl-1.1': {'id': 'YPL-1.1', 'deprecated': False}, - 'zed': {'id': 'Zed', 'deprecated': False}, - 'zeeff': {'id': 'Zeeff', 'deprecated': False}, - 'zend-2.0': {'id': 'Zend-2.0', 'deprecated': False}, - 'zimbra-1.3': {'id': 'Zimbra-1.3', 'deprecated': False}, - 'zimbra-1.4': {'id': 'Zimbra-1.4', 'deprecated': False}, - 'zlib': {'id': 'Zlib', 'deprecated': False}, - 'zlib-acknowledgement': {'id': 'zlib-acknowledgement', 'deprecated': False}, - 'zpl-1.1': {'id': 'ZPL-1.1', 'deprecated': False}, - 'zpl-2.0': {'id': 'ZPL-2.0', 'deprecated': False}, - 'zpl-2.1': {'id': 'ZPL-2.1', 'deprecated': False}, + "0bsd": {"id": "0BSD", "deprecated": False}, + "3d-slicer-1.0": {"id": "3D-Slicer-1.0", "deprecated": False}, + "aal": {"id": "AAL", "deprecated": False}, + "abstyles": {"id": "Abstyles", "deprecated": False}, + "adacore-doc": {"id": "AdaCore-doc", "deprecated": False}, + "adobe-2006": {"id": "Adobe-2006", "deprecated": False}, + "adobe-display-postscript": {"id": "Adobe-Display-PostScript", "deprecated": False}, + "adobe-glyph": {"id": "Adobe-Glyph", "deprecated": False}, + "adobe-utopia": {"id": "Adobe-Utopia", "deprecated": False}, + "adsl": {"id": "ADSL", "deprecated": False}, + "afl-1.1": {"id": "AFL-1.1", "deprecated": False}, + "afl-1.2": {"id": "AFL-1.2", "deprecated": False}, + "afl-2.0": {"id": "AFL-2.0", "deprecated": False}, + "afl-2.1": {"id": "AFL-2.1", "deprecated": False}, + "afl-3.0": {"id": "AFL-3.0", "deprecated": False}, + "afmparse": {"id": "Afmparse", "deprecated": False}, + "agpl-1.0": {"id": "AGPL-1.0", "deprecated": True}, + "agpl-1.0-only": {"id": "AGPL-1.0-only", "deprecated": False}, + "agpl-1.0-or-later": {"id": "AGPL-1.0-or-later", "deprecated": False}, + "agpl-3.0": {"id": "AGPL-3.0", "deprecated": True}, + "agpl-3.0-only": {"id": "AGPL-3.0-only", "deprecated": False}, + "agpl-3.0-or-later": {"id": "AGPL-3.0-or-later", "deprecated": False}, + "aladdin": {"id": "Aladdin", "deprecated": False}, + "amd-newlib": {"id": "AMD-newlib", "deprecated": False}, + "amdplpa": {"id": "AMDPLPA", "deprecated": False}, + "aml": {"id": "AML", "deprecated": False}, + "aml-glslang": {"id": "AML-glslang", "deprecated": False}, + "ampas": {"id": "AMPAS", "deprecated": False}, + "antlr-pd": {"id": "ANTLR-PD", "deprecated": False}, + "antlr-pd-fallback": {"id": "ANTLR-PD-fallback", "deprecated": False}, + "any-osi": {"id": "any-OSI", "deprecated": False}, + "any-osi-perl-modules": {"id": "any-OSI-perl-modules", "deprecated": False}, + "apache-1.0": {"id": "Apache-1.0", "deprecated": False}, + "apache-1.1": {"id": "Apache-1.1", "deprecated": False}, + "apache-2.0": {"id": "Apache-2.0", "deprecated": False}, + "apafml": {"id": "APAFML", "deprecated": False}, + "apl-1.0": {"id": "APL-1.0", "deprecated": False}, + "app-s2p": {"id": "App-s2p", "deprecated": False}, + "apsl-1.0": {"id": "APSL-1.0", "deprecated": False}, + "apsl-1.1": {"id": "APSL-1.1", "deprecated": False}, + "apsl-1.2": {"id": "APSL-1.2", "deprecated": False}, + "apsl-2.0": {"id": "APSL-2.0", "deprecated": False}, + "arphic-1999": {"id": "Arphic-1999", "deprecated": False}, + "artistic-1.0": {"id": "Artistic-1.0", "deprecated": False}, + "artistic-1.0-cl8": {"id": "Artistic-1.0-cl8", "deprecated": False}, + "artistic-1.0-perl": {"id": "Artistic-1.0-Perl", "deprecated": False}, + "artistic-2.0": {"id": "Artistic-2.0", "deprecated": False}, + "artistic-dist": {"id": "Artistic-dist", "deprecated": False}, + "aspell-ru": {"id": "Aspell-RU", "deprecated": False}, + "aswf-digital-assets-1.0": {"id": "ASWF-Digital-Assets-1.0", "deprecated": False}, + "aswf-digital-assets-1.1": {"id": "ASWF-Digital-Assets-1.1", "deprecated": False}, + "baekmuk": {"id": "Baekmuk", "deprecated": False}, + "bahyph": {"id": "Bahyph", "deprecated": False}, + "barr": {"id": "Barr", "deprecated": False}, + "bcrypt-solar-designer": {"id": "bcrypt-Solar-Designer", "deprecated": False}, + "beerware": {"id": "Beerware", "deprecated": False}, + "bitstream-charter": {"id": "Bitstream-Charter", "deprecated": False}, + "bitstream-vera": {"id": "Bitstream-Vera", "deprecated": False}, + "bittorrent-1.0": {"id": "BitTorrent-1.0", "deprecated": False}, + "bittorrent-1.1": {"id": "BitTorrent-1.1", "deprecated": False}, + "blessing": {"id": "blessing", "deprecated": False}, + "blueoak-1.0.0": {"id": "BlueOak-1.0.0", "deprecated": False}, + "boehm-gc": {"id": "Boehm-GC", "deprecated": False}, + "boehm-gc-without-fee": {"id": "Boehm-GC-without-fee", "deprecated": False}, + "borceux": {"id": "Borceux", "deprecated": False}, + "brian-gladman-2-clause": {"id": "Brian-Gladman-2-Clause", "deprecated": False}, + "brian-gladman-3-clause": {"id": "Brian-Gladman-3-Clause", "deprecated": False}, + "bsd-1-clause": {"id": "BSD-1-Clause", "deprecated": False}, + "bsd-2-clause": {"id": "BSD-2-Clause", "deprecated": False}, + "bsd-2-clause-darwin": {"id": "BSD-2-Clause-Darwin", "deprecated": False}, + "bsd-2-clause-first-lines": {"id": "BSD-2-Clause-first-lines", "deprecated": False}, + "bsd-2-clause-freebsd": {"id": "BSD-2-Clause-FreeBSD", "deprecated": True}, + "bsd-2-clause-netbsd": {"id": "BSD-2-Clause-NetBSD", "deprecated": True}, + "bsd-2-clause-patent": {"id": "BSD-2-Clause-Patent", "deprecated": False}, + "bsd-2-clause-pkgconf-disclaimer": { + "id": "BSD-2-Clause-pkgconf-disclaimer", + "deprecated": False, + }, + "bsd-2-clause-views": {"id": "BSD-2-Clause-Views", "deprecated": False}, + "bsd-3-clause": {"id": "BSD-3-Clause", "deprecated": False}, + "bsd-3-clause-acpica": {"id": "BSD-3-Clause-acpica", "deprecated": False}, + "bsd-3-clause-attribution": {"id": "BSD-3-Clause-Attribution", "deprecated": False}, + "bsd-3-clause-clear": {"id": "BSD-3-Clause-Clear", "deprecated": False}, + "bsd-3-clause-flex": {"id": "BSD-3-Clause-flex", "deprecated": False}, + "bsd-3-clause-hp": {"id": "BSD-3-Clause-HP", "deprecated": False}, + "bsd-3-clause-lbnl": {"id": "BSD-3-Clause-LBNL", "deprecated": False}, + "bsd-3-clause-modification": { + "id": "BSD-3-Clause-Modification", + "deprecated": False, + }, + "bsd-3-clause-no-military-license": { + "id": "BSD-3-Clause-No-Military-License", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-license": { + "id": "BSD-3-Clause-No-Nuclear-License", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-license-2014": { + "id": "BSD-3-Clause-No-Nuclear-License-2014", + "deprecated": False, + }, + "bsd-3-clause-no-nuclear-warranty": { + "id": "BSD-3-Clause-No-Nuclear-Warranty", + "deprecated": False, + }, + "bsd-3-clause-open-mpi": {"id": "BSD-3-Clause-Open-MPI", "deprecated": False}, + "bsd-3-clause-sun": {"id": "BSD-3-Clause-Sun", "deprecated": False}, + "bsd-4-clause": {"id": "BSD-4-Clause", "deprecated": False}, + "bsd-4-clause-shortened": {"id": "BSD-4-Clause-Shortened", "deprecated": False}, + "bsd-4-clause-uc": {"id": "BSD-4-Clause-UC", "deprecated": False}, + "bsd-4.3reno": {"id": "BSD-4.3RENO", "deprecated": False}, + "bsd-4.3tahoe": {"id": "BSD-4.3TAHOE", "deprecated": False}, + "bsd-advertising-acknowledgement": { + "id": "BSD-Advertising-Acknowledgement", + "deprecated": False, + }, + "bsd-attribution-hpnd-disclaimer": { + "id": "BSD-Attribution-HPND-disclaimer", + "deprecated": False, + }, + "bsd-inferno-nettverk": {"id": "BSD-Inferno-Nettverk", "deprecated": False}, + "bsd-protection": {"id": "BSD-Protection", "deprecated": False}, + "bsd-source-beginning-file": { + "id": "BSD-Source-beginning-file", + "deprecated": False, + }, + "bsd-source-code": {"id": "BSD-Source-Code", "deprecated": False}, + "bsd-systemics": {"id": "BSD-Systemics", "deprecated": False}, + "bsd-systemics-w3works": {"id": "BSD-Systemics-W3Works", "deprecated": False}, + "bsl-1.0": {"id": "BSL-1.0", "deprecated": False}, + "busl-1.1": {"id": "BUSL-1.1", "deprecated": False}, + "bzip2-1.0.5": {"id": "bzip2-1.0.5", "deprecated": True}, + "bzip2-1.0.6": {"id": "bzip2-1.0.6", "deprecated": False}, + "c-uda-1.0": {"id": "C-UDA-1.0", "deprecated": False}, + "cal-1.0": {"id": "CAL-1.0", "deprecated": False}, + "cal-1.0-combined-work-exception": { + "id": "CAL-1.0-Combined-Work-Exception", + "deprecated": False, + }, + "caldera": {"id": "Caldera", "deprecated": False}, + "caldera-no-preamble": {"id": "Caldera-no-preamble", "deprecated": False}, + "catharon": {"id": "Catharon", "deprecated": False}, + "catosl-1.1": {"id": "CATOSL-1.1", "deprecated": False}, + "cc-by-1.0": {"id": "CC-BY-1.0", "deprecated": False}, + "cc-by-2.0": {"id": "CC-BY-2.0", "deprecated": False}, + "cc-by-2.5": {"id": "CC-BY-2.5", "deprecated": False}, + "cc-by-2.5-au": {"id": "CC-BY-2.5-AU", "deprecated": False}, + "cc-by-3.0": {"id": "CC-BY-3.0", "deprecated": False}, + "cc-by-3.0-at": {"id": "CC-BY-3.0-AT", "deprecated": False}, + "cc-by-3.0-au": {"id": "CC-BY-3.0-AU", "deprecated": False}, + "cc-by-3.0-de": {"id": "CC-BY-3.0-DE", "deprecated": False}, + "cc-by-3.0-igo": {"id": "CC-BY-3.0-IGO", "deprecated": False}, + "cc-by-3.0-nl": {"id": "CC-BY-3.0-NL", "deprecated": False}, + "cc-by-3.0-us": {"id": "CC-BY-3.0-US", "deprecated": False}, + "cc-by-4.0": {"id": "CC-BY-4.0", "deprecated": False}, + "cc-by-nc-1.0": {"id": "CC-BY-NC-1.0", "deprecated": False}, + "cc-by-nc-2.0": {"id": "CC-BY-NC-2.0", "deprecated": False}, + "cc-by-nc-2.5": {"id": "CC-BY-NC-2.5", "deprecated": False}, + "cc-by-nc-3.0": {"id": "CC-BY-NC-3.0", "deprecated": False}, + "cc-by-nc-3.0-de": {"id": "CC-BY-NC-3.0-DE", "deprecated": False}, + "cc-by-nc-4.0": {"id": "CC-BY-NC-4.0", "deprecated": False}, + "cc-by-nc-nd-1.0": {"id": "CC-BY-NC-ND-1.0", "deprecated": False}, + "cc-by-nc-nd-2.0": {"id": "CC-BY-NC-ND-2.0", "deprecated": False}, + "cc-by-nc-nd-2.5": {"id": "CC-BY-NC-ND-2.5", "deprecated": False}, + "cc-by-nc-nd-3.0": {"id": "CC-BY-NC-ND-3.0", "deprecated": False}, + "cc-by-nc-nd-3.0-de": {"id": "CC-BY-NC-ND-3.0-DE", "deprecated": False}, + "cc-by-nc-nd-3.0-igo": {"id": "CC-BY-NC-ND-3.0-IGO", "deprecated": False}, + "cc-by-nc-nd-4.0": {"id": "CC-BY-NC-ND-4.0", "deprecated": False}, + "cc-by-nc-sa-1.0": {"id": "CC-BY-NC-SA-1.0", "deprecated": False}, + "cc-by-nc-sa-2.0": {"id": "CC-BY-NC-SA-2.0", "deprecated": False}, + "cc-by-nc-sa-2.0-de": {"id": "CC-BY-NC-SA-2.0-DE", "deprecated": False}, + "cc-by-nc-sa-2.0-fr": {"id": "CC-BY-NC-SA-2.0-FR", "deprecated": False}, + "cc-by-nc-sa-2.0-uk": {"id": "CC-BY-NC-SA-2.0-UK", "deprecated": False}, + "cc-by-nc-sa-2.5": {"id": "CC-BY-NC-SA-2.5", "deprecated": False}, + "cc-by-nc-sa-3.0": {"id": "CC-BY-NC-SA-3.0", "deprecated": False}, + "cc-by-nc-sa-3.0-de": {"id": "CC-BY-NC-SA-3.0-DE", "deprecated": False}, + "cc-by-nc-sa-3.0-igo": {"id": "CC-BY-NC-SA-3.0-IGO", "deprecated": False}, + "cc-by-nc-sa-4.0": {"id": "CC-BY-NC-SA-4.0", "deprecated": False}, + "cc-by-nd-1.0": {"id": "CC-BY-ND-1.0", "deprecated": False}, + "cc-by-nd-2.0": {"id": "CC-BY-ND-2.0", "deprecated": False}, + "cc-by-nd-2.5": {"id": "CC-BY-ND-2.5", "deprecated": False}, + "cc-by-nd-3.0": {"id": "CC-BY-ND-3.0", "deprecated": False}, + "cc-by-nd-3.0-de": {"id": "CC-BY-ND-3.0-DE", "deprecated": False}, + "cc-by-nd-4.0": {"id": "CC-BY-ND-4.0", "deprecated": False}, + "cc-by-sa-1.0": {"id": "CC-BY-SA-1.0", "deprecated": False}, + "cc-by-sa-2.0": {"id": "CC-BY-SA-2.0", "deprecated": False}, + "cc-by-sa-2.0-uk": {"id": "CC-BY-SA-2.0-UK", "deprecated": False}, + "cc-by-sa-2.1-jp": {"id": "CC-BY-SA-2.1-JP", "deprecated": False}, + "cc-by-sa-2.5": {"id": "CC-BY-SA-2.5", "deprecated": False}, + "cc-by-sa-3.0": {"id": "CC-BY-SA-3.0", "deprecated": False}, + "cc-by-sa-3.0-at": {"id": "CC-BY-SA-3.0-AT", "deprecated": False}, + "cc-by-sa-3.0-de": {"id": "CC-BY-SA-3.0-DE", "deprecated": False}, + "cc-by-sa-3.0-igo": {"id": "CC-BY-SA-3.0-IGO", "deprecated": False}, + "cc-by-sa-4.0": {"id": "CC-BY-SA-4.0", "deprecated": False}, + "cc-pddc": {"id": "CC-PDDC", "deprecated": False}, + "cc-pdm-1.0": {"id": "CC-PDM-1.0", "deprecated": False}, + "cc-sa-1.0": {"id": "CC-SA-1.0", "deprecated": False}, + "cc0-1.0": {"id": "CC0-1.0", "deprecated": False}, + "cddl-1.0": {"id": "CDDL-1.0", "deprecated": False}, + "cddl-1.1": {"id": "CDDL-1.1", "deprecated": False}, + "cdl-1.0": {"id": "CDL-1.0", "deprecated": False}, + "cdla-permissive-1.0": {"id": "CDLA-Permissive-1.0", "deprecated": False}, + "cdla-permissive-2.0": {"id": "CDLA-Permissive-2.0", "deprecated": False}, + "cdla-sharing-1.0": {"id": "CDLA-Sharing-1.0", "deprecated": False}, + "cecill-1.0": {"id": "CECILL-1.0", "deprecated": False}, + "cecill-1.1": {"id": "CECILL-1.1", "deprecated": False}, + "cecill-2.0": {"id": "CECILL-2.0", "deprecated": False}, + "cecill-2.1": {"id": "CECILL-2.1", "deprecated": False}, + "cecill-b": {"id": "CECILL-B", "deprecated": False}, + "cecill-c": {"id": "CECILL-C", "deprecated": False}, + "cern-ohl-1.1": {"id": "CERN-OHL-1.1", "deprecated": False}, + "cern-ohl-1.2": {"id": "CERN-OHL-1.2", "deprecated": False}, + "cern-ohl-p-2.0": {"id": "CERN-OHL-P-2.0", "deprecated": False}, + "cern-ohl-s-2.0": {"id": "CERN-OHL-S-2.0", "deprecated": False}, + "cern-ohl-w-2.0": {"id": "CERN-OHL-W-2.0", "deprecated": False}, + "cfitsio": {"id": "CFITSIO", "deprecated": False}, + "check-cvs": {"id": "check-cvs", "deprecated": False}, + "checkmk": {"id": "checkmk", "deprecated": False}, + "clartistic": {"id": "ClArtistic", "deprecated": False}, + "clips": {"id": "Clips", "deprecated": False}, + "cmu-mach": {"id": "CMU-Mach", "deprecated": False}, + "cmu-mach-nodoc": {"id": "CMU-Mach-nodoc", "deprecated": False}, + "cnri-jython": {"id": "CNRI-Jython", "deprecated": False}, + "cnri-python": {"id": "CNRI-Python", "deprecated": False}, + "cnri-python-gpl-compatible": { + "id": "CNRI-Python-GPL-Compatible", + "deprecated": False, + }, + "coil-1.0": {"id": "COIL-1.0", "deprecated": False}, + "community-spec-1.0": {"id": "Community-Spec-1.0", "deprecated": False}, + "condor-1.1": {"id": "Condor-1.1", "deprecated": False}, + "copyleft-next-0.3.0": {"id": "copyleft-next-0.3.0", "deprecated": False}, + "copyleft-next-0.3.1": {"id": "copyleft-next-0.3.1", "deprecated": False}, + "cornell-lossless-jpeg": {"id": "Cornell-Lossless-JPEG", "deprecated": False}, + "cpal-1.0": {"id": "CPAL-1.0", "deprecated": False}, + "cpl-1.0": {"id": "CPL-1.0", "deprecated": False}, + "cpol-1.02": {"id": "CPOL-1.02", "deprecated": False}, + "cronyx": {"id": "Cronyx", "deprecated": False}, + "crossword": {"id": "Crossword", "deprecated": False}, + "cryptoswift": {"id": "CryptoSwift", "deprecated": False}, + "crystalstacker": {"id": "CrystalStacker", "deprecated": False}, + "cua-opl-1.0": {"id": "CUA-OPL-1.0", "deprecated": False}, + "cube": {"id": "Cube", "deprecated": False}, + "curl": {"id": "curl", "deprecated": False}, + "cve-tou": {"id": "cve-tou", "deprecated": False}, + "d-fsl-1.0": {"id": "D-FSL-1.0", "deprecated": False}, + "dec-3-clause": {"id": "DEC-3-Clause", "deprecated": False}, + "diffmark": {"id": "diffmark", "deprecated": False}, + "dl-de-by-2.0": {"id": "DL-DE-BY-2.0", "deprecated": False}, + "dl-de-zero-2.0": {"id": "DL-DE-ZERO-2.0", "deprecated": False}, + "doc": {"id": "DOC", "deprecated": False}, + "docbook-dtd": {"id": "DocBook-DTD", "deprecated": False}, + "docbook-schema": {"id": "DocBook-Schema", "deprecated": False}, + "docbook-stylesheet": {"id": "DocBook-Stylesheet", "deprecated": False}, + "docbook-xml": {"id": "DocBook-XML", "deprecated": False}, + "dotseqn": {"id": "Dotseqn", "deprecated": False}, + "drl-1.0": {"id": "DRL-1.0", "deprecated": False}, + "drl-1.1": {"id": "DRL-1.1", "deprecated": False}, + "dsdp": {"id": "DSDP", "deprecated": False}, + "dtoa": {"id": "dtoa", "deprecated": False}, + "dvipdfm": {"id": "dvipdfm", "deprecated": False}, + "ecl-1.0": {"id": "ECL-1.0", "deprecated": False}, + "ecl-2.0": {"id": "ECL-2.0", "deprecated": False}, + "ecos-2.0": {"id": "eCos-2.0", "deprecated": True}, + "efl-1.0": {"id": "EFL-1.0", "deprecated": False}, + "efl-2.0": {"id": "EFL-2.0", "deprecated": False}, + "egenix": {"id": "eGenix", "deprecated": False}, + "elastic-2.0": {"id": "Elastic-2.0", "deprecated": False}, + "entessa": {"id": "Entessa", "deprecated": False}, + "epics": {"id": "EPICS", "deprecated": False}, + "epl-1.0": {"id": "EPL-1.0", "deprecated": False}, + "epl-2.0": {"id": "EPL-2.0", "deprecated": False}, + "erlpl-1.1": {"id": "ErlPL-1.1", "deprecated": False}, + "etalab-2.0": {"id": "etalab-2.0", "deprecated": False}, + "eudatagrid": {"id": "EUDatagrid", "deprecated": False}, + "eupl-1.0": {"id": "EUPL-1.0", "deprecated": False}, + "eupl-1.1": {"id": "EUPL-1.1", "deprecated": False}, + "eupl-1.2": {"id": "EUPL-1.2", "deprecated": False}, + "eurosym": {"id": "Eurosym", "deprecated": False}, + "fair": {"id": "Fair", "deprecated": False}, + "fbm": {"id": "FBM", "deprecated": False}, + "fdk-aac": {"id": "FDK-AAC", "deprecated": False}, + "ferguson-twofish": {"id": "Ferguson-Twofish", "deprecated": False}, + "frameworx-1.0": {"id": "Frameworx-1.0", "deprecated": False}, + "freebsd-doc": {"id": "FreeBSD-DOC", "deprecated": False}, + "freeimage": {"id": "FreeImage", "deprecated": False}, + "fsfap": {"id": "FSFAP", "deprecated": False}, + "fsfap-no-warranty-disclaimer": { + "id": "FSFAP-no-warranty-disclaimer", + "deprecated": False, + }, + "fsful": {"id": "FSFUL", "deprecated": False}, + "fsfullr": {"id": "FSFULLR", "deprecated": False}, + "fsfullrsd": {"id": "FSFULLRSD", "deprecated": False}, + "fsfullrwd": {"id": "FSFULLRWD", "deprecated": False}, + "fsl-1.1-alv2": {"id": "FSL-1.1-ALv2", "deprecated": False}, + "fsl-1.1-mit": {"id": "FSL-1.1-MIT", "deprecated": False}, + "ftl": {"id": "FTL", "deprecated": False}, + "furuseth": {"id": "Furuseth", "deprecated": False}, + "fwlw": {"id": "fwlw", "deprecated": False}, + "game-programming-gems": {"id": "Game-Programming-Gems", "deprecated": False}, + "gcr-docs": {"id": "GCR-docs", "deprecated": False}, + "gd": {"id": "GD", "deprecated": False}, + "generic-xts": {"id": "generic-xts", "deprecated": False}, + "gfdl-1.1": {"id": "GFDL-1.1", "deprecated": True}, + "gfdl-1.1-invariants-only": {"id": "GFDL-1.1-invariants-only", "deprecated": False}, + "gfdl-1.1-invariants-or-later": { + "id": "GFDL-1.1-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.1-no-invariants-only": { + "id": "GFDL-1.1-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.1-no-invariants-or-later": { + "id": "GFDL-1.1-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.1-only": {"id": "GFDL-1.1-only", "deprecated": False}, + "gfdl-1.1-or-later": {"id": "GFDL-1.1-or-later", "deprecated": False}, + "gfdl-1.2": {"id": "GFDL-1.2", "deprecated": True}, + "gfdl-1.2-invariants-only": {"id": "GFDL-1.2-invariants-only", "deprecated": False}, + "gfdl-1.2-invariants-or-later": { + "id": "GFDL-1.2-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.2-no-invariants-only": { + "id": "GFDL-1.2-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.2-no-invariants-or-later": { + "id": "GFDL-1.2-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.2-only": {"id": "GFDL-1.2-only", "deprecated": False}, + "gfdl-1.2-or-later": {"id": "GFDL-1.2-or-later", "deprecated": False}, + "gfdl-1.3": {"id": "GFDL-1.3", "deprecated": True}, + "gfdl-1.3-invariants-only": {"id": "GFDL-1.3-invariants-only", "deprecated": False}, + "gfdl-1.3-invariants-or-later": { + "id": "GFDL-1.3-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.3-no-invariants-only": { + "id": "GFDL-1.3-no-invariants-only", + "deprecated": False, + }, + "gfdl-1.3-no-invariants-or-later": { + "id": "GFDL-1.3-no-invariants-or-later", + "deprecated": False, + }, + "gfdl-1.3-only": {"id": "GFDL-1.3-only", "deprecated": False}, + "gfdl-1.3-or-later": {"id": "GFDL-1.3-or-later", "deprecated": False}, + "giftware": {"id": "Giftware", "deprecated": False}, + "gl2ps": {"id": "GL2PS", "deprecated": False}, + "glide": {"id": "Glide", "deprecated": False}, + "glulxe": {"id": "Glulxe", "deprecated": False}, + "glwtpl": {"id": "GLWTPL", "deprecated": False}, + "gnuplot": {"id": "gnuplot", "deprecated": False}, + "gpl-1.0": {"id": "GPL-1.0", "deprecated": True}, + "gpl-1.0+": {"id": "GPL-1.0+", "deprecated": True}, + "gpl-1.0-only": {"id": "GPL-1.0-only", "deprecated": False}, + "gpl-1.0-or-later": {"id": "GPL-1.0-or-later", "deprecated": False}, + "gpl-2.0": {"id": "GPL-2.0", "deprecated": True}, + "gpl-2.0+": {"id": "GPL-2.0+", "deprecated": True}, + "gpl-2.0-only": {"id": "GPL-2.0-only", "deprecated": False}, + "gpl-2.0-or-later": {"id": "GPL-2.0-or-later", "deprecated": False}, + "gpl-2.0-with-autoconf-exception": { + "id": "GPL-2.0-with-autoconf-exception", + "deprecated": True, + }, + "gpl-2.0-with-bison-exception": { + "id": "GPL-2.0-with-bison-exception", + "deprecated": True, + }, + "gpl-2.0-with-classpath-exception": { + "id": "GPL-2.0-with-classpath-exception", + "deprecated": True, + }, + "gpl-2.0-with-font-exception": { + "id": "GPL-2.0-with-font-exception", + "deprecated": True, + }, + "gpl-2.0-with-gcc-exception": { + "id": "GPL-2.0-with-GCC-exception", + "deprecated": True, + }, + "gpl-3.0": {"id": "GPL-3.0", "deprecated": True}, + "gpl-3.0+": {"id": "GPL-3.0+", "deprecated": True}, + "gpl-3.0-only": {"id": "GPL-3.0-only", "deprecated": False}, + "gpl-3.0-or-later": {"id": "GPL-3.0-or-later", "deprecated": False}, + "gpl-3.0-with-autoconf-exception": { + "id": "GPL-3.0-with-autoconf-exception", + "deprecated": True, + }, + "gpl-3.0-with-gcc-exception": { + "id": "GPL-3.0-with-GCC-exception", + "deprecated": True, + }, + "graphics-gems": {"id": "Graphics-Gems", "deprecated": False}, + "gsoap-1.3b": {"id": "gSOAP-1.3b", "deprecated": False}, + "gtkbook": {"id": "gtkbook", "deprecated": False}, + "gutmann": {"id": "Gutmann", "deprecated": False}, + "haskellreport": {"id": "HaskellReport", "deprecated": False}, + "hdf5": {"id": "HDF5", "deprecated": False}, + "hdparm": {"id": "hdparm", "deprecated": False}, + "hidapi": {"id": "HIDAPI", "deprecated": False}, + "hippocratic-2.1": {"id": "Hippocratic-2.1", "deprecated": False}, + "hp-1986": {"id": "HP-1986", "deprecated": False}, + "hp-1989": {"id": "HP-1989", "deprecated": False}, + "hpnd": {"id": "HPND", "deprecated": False}, + "hpnd-dec": {"id": "HPND-DEC", "deprecated": False}, + "hpnd-doc": {"id": "HPND-doc", "deprecated": False}, + "hpnd-doc-sell": {"id": "HPND-doc-sell", "deprecated": False}, + "hpnd-export-us": {"id": "HPND-export-US", "deprecated": False}, + "hpnd-export-us-acknowledgement": { + "id": "HPND-export-US-acknowledgement", + "deprecated": False, + }, + "hpnd-export-us-modify": {"id": "HPND-export-US-modify", "deprecated": False}, + "hpnd-export2-us": {"id": "HPND-export2-US", "deprecated": False}, + "hpnd-fenneberg-livingston": { + "id": "HPND-Fenneberg-Livingston", + "deprecated": False, + }, + "hpnd-inria-imag": {"id": "HPND-INRIA-IMAG", "deprecated": False}, + "hpnd-intel": {"id": "HPND-Intel", "deprecated": False}, + "hpnd-kevlin-henney": {"id": "HPND-Kevlin-Henney", "deprecated": False}, + "hpnd-markus-kuhn": {"id": "HPND-Markus-Kuhn", "deprecated": False}, + "hpnd-merchantability-variant": { + "id": "HPND-merchantability-variant", + "deprecated": False, + }, + "hpnd-mit-disclaimer": {"id": "HPND-MIT-disclaimer", "deprecated": False}, + "hpnd-netrek": {"id": "HPND-Netrek", "deprecated": False}, + "hpnd-pbmplus": {"id": "HPND-Pbmplus", "deprecated": False}, + "hpnd-sell-mit-disclaimer-xserver": { + "id": "HPND-sell-MIT-disclaimer-xserver", + "deprecated": False, + }, + "hpnd-sell-regexpr": {"id": "HPND-sell-regexpr", "deprecated": False}, + "hpnd-sell-variant": {"id": "HPND-sell-variant", "deprecated": False}, + "hpnd-sell-variant-mit-disclaimer": { + "id": "HPND-sell-variant-MIT-disclaimer", + "deprecated": False, + }, + "hpnd-sell-variant-mit-disclaimer-rev": { + "id": "HPND-sell-variant-MIT-disclaimer-rev", + "deprecated": False, + }, + "hpnd-uc": {"id": "HPND-UC", "deprecated": False}, + "hpnd-uc-export-us": {"id": "HPND-UC-export-US", "deprecated": False}, + "htmltidy": {"id": "HTMLTIDY", "deprecated": False}, + "ibm-pibs": {"id": "IBM-pibs", "deprecated": False}, + "icu": {"id": "ICU", "deprecated": False}, + "iec-code-components-eula": {"id": "IEC-Code-Components-EULA", "deprecated": False}, + "ijg": {"id": "IJG", "deprecated": False}, + "ijg-short": {"id": "IJG-short", "deprecated": False}, + "imagemagick": {"id": "ImageMagick", "deprecated": False}, + "imatix": {"id": "iMatix", "deprecated": False}, + "imlib2": {"id": "Imlib2", "deprecated": False}, + "info-zip": {"id": "Info-ZIP", "deprecated": False}, + "inner-net-2.0": {"id": "Inner-Net-2.0", "deprecated": False}, + "innosetup": {"id": "InnoSetup", "deprecated": False}, + "intel": {"id": "Intel", "deprecated": False}, + "intel-acpi": {"id": "Intel-ACPI", "deprecated": False}, + "interbase-1.0": {"id": "Interbase-1.0", "deprecated": False}, + "ipa": {"id": "IPA", "deprecated": False}, + "ipl-1.0": {"id": "IPL-1.0", "deprecated": False}, + "isc": {"id": "ISC", "deprecated": False}, + "isc-veillard": {"id": "ISC-Veillard", "deprecated": False}, + "jam": {"id": "Jam", "deprecated": False}, + "jasper-2.0": {"id": "JasPer-2.0", "deprecated": False}, + "jove": {"id": "jove", "deprecated": False}, + "jpl-image": {"id": "JPL-image", "deprecated": False}, + "jpnic": {"id": "JPNIC", "deprecated": False}, + "json": {"id": "JSON", "deprecated": False}, + "kastrup": {"id": "Kastrup", "deprecated": False}, + "kazlib": {"id": "Kazlib", "deprecated": False}, + "knuth-ctan": {"id": "Knuth-CTAN", "deprecated": False}, + "lal-1.2": {"id": "LAL-1.2", "deprecated": False}, + "lal-1.3": {"id": "LAL-1.3", "deprecated": False}, + "latex2e": {"id": "Latex2e", "deprecated": False}, + "latex2e-translated-notice": { + "id": "Latex2e-translated-notice", + "deprecated": False, + }, + "leptonica": {"id": "Leptonica", "deprecated": False}, + "lgpl-2.0": {"id": "LGPL-2.0", "deprecated": True}, + "lgpl-2.0+": {"id": "LGPL-2.0+", "deprecated": True}, + "lgpl-2.0-only": {"id": "LGPL-2.0-only", "deprecated": False}, + "lgpl-2.0-or-later": {"id": "LGPL-2.0-or-later", "deprecated": False}, + "lgpl-2.1": {"id": "LGPL-2.1", "deprecated": True}, + "lgpl-2.1+": {"id": "LGPL-2.1+", "deprecated": True}, + "lgpl-2.1-only": {"id": "LGPL-2.1-only", "deprecated": False}, + "lgpl-2.1-or-later": {"id": "LGPL-2.1-or-later", "deprecated": False}, + "lgpl-3.0": {"id": "LGPL-3.0", "deprecated": True}, + "lgpl-3.0+": {"id": "LGPL-3.0+", "deprecated": True}, + "lgpl-3.0-only": {"id": "LGPL-3.0-only", "deprecated": False}, + "lgpl-3.0-or-later": {"id": "LGPL-3.0-or-later", "deprecated": False}, + "lgpllr": {"id": "LGPLLR", "deprecated": False}, + "libpng": {"id": "Libpng", "deprecated": False}, + "libpng-1.6.35": {"id": "libpng-1.6.35", "deprecated": False}, + "libpng-2.0": {"id": "libpng-2.0", "deprecated": False}, + "libselinux-1.0": {"id": "libselinux-1.0", "deprecated": False}, + "libtiff": {"id": "libtiff", "deprecated": False}, + "libutil-david-nugent": {"id": "libutil-David-Nugent", "deprecated": False}, + "liliq-p-1.1": {"id": "LiLiQ-P-1.1", "deprecated": False}, + "liliq-r-1.1": {"id": "LiLiQ-R-1.1", "deprecated": False}, + "liliq-rplus-1.1": {"id": "LiLiQ-Rplus-1.1", "deprecated": False}, + "linux-man-pages-1-para": {"id": "Linux-man-pages-1-para", "deprecated": False}, + "linux-man-pages-copyleft": {"id": "Linux-man-pages-copyleft", "deprecated": False}, + "linux-man-pages-copyleft-2-para": { + "id": "Linux-man-pages-copyleft-2-para", + "deprecated": False, + }, + "linux-man-pages-copyleft-var": { + "id": "Linux-man-pages-copyleft-var", + "deprecated": False, + }, + "linux-openib": {"id": "Linux-OpenIB", "deprecated": False}, + "loop": {"id": "LOOP", "deprecated": False}, + "lpd-document": {"id": "LPD-document", "deprecated": False}, + "lpl-1.0": {"id": "LPL-1.0", "deprecated": False}, + "lpl-1.02": {"id": "LPL-1.02", "deprecated": False}, + "lppl-1.0": {"id": "LPPL-1.0", "deprecated": False}, + "lppl-1.1": {"id": "LPPL-1.1", "deprecated": False}, + "lppl-1.2": {"id": "LPPL-1.2", "deprecated": False}, + "lppl-1.3a": {"id": "LPPL-1.3a", "deprecated": False}, + "lppl-1.3c": {"id": "LPPL-1.3c", "deprecated": False}, + "lsof": {"id": "lsof", "deprecated": False}, + "lucida-bitmap-fonts": {"id": "Lucida-Bitmap-Fonts", "deprecated": False}, + "lzma-sdk-9.11-to-9.20": {"id": "LZMA-SDK-9.11-to-9.20", "deprecated": False}, + "lzma-sdk-9.22": {"id": "LZMA-SDK-9.22", "deprecated": False}, + "mackerras-3-clause": {"id": "Mackerras-3-Clause", "deprecated": False}, + "mackerras-3-clause-acknowledgment": { + "id": "Mackerras-3-Clause-acknowledgment", + "deprecated": False, + }, + "magaz": {"id": "magaz", "deprecated": False}, + "mailprio": {"id": "mailprio", "deprecated": False}, + "makeindex": {"id": "MakeIndex", "deprecated": False}, + "man2html": {"id": "man2html", "deprecated": False}, + "martin-birgmeier": {"id": "Martin-Birgmeier", "deprecated": False}, + "mcphee-slideshow": {"id": "McPhee-slideshow", "deprecated": False}, + "metamail": {"id": "metamail", "deprecated": False}, + "minpack": {"id": "Minpack", "deprecated": False}, + "mips": {"id": "MIPS", "deprecated": False}, + "miros": {"id": "MirOS", "deprecated": False}, + "mit": {"id": "MIT", "deprecated": False}, + "mit-0": {"id": "MIT-0", "deprecated": False}, + "mit-advertising": {"id": "MIT-advertising", "deprecated": False}, + "mit-click": {"id": "MIT-Click", "deprecated": False}, + "mit-cmu": {"id": "MIT-CMU", "deprecated": False}, + "mit-enna": {"id": "MIT-enna", "deprecated": False}, + "mit-feh": {"id": "MIT-feh", "deprecated": False}, + "mit-festival": {"id": "MIT-Festival", "deprecated": False}, + "mit-khronos-old": {"id": "MIT-Khronos-old", "deprecated": False}, + "mit-modern-variant": {"id": "MIT-Modern-Variant", "deprecated": False}, + "mit-open-group": {"id": "MIT-open-group", "deprecated": False}, + "mit-testregex": {"id": "MIT-testregex", "deprecated": False}, + "mit-wu": {"id": "MIT-Wu", "deprecated": False}, + "mitnfa": {"id": "MITNFA", "deprecated": False}, + "mmixware": {"id": "MMIXware", "deprecated": False}, + "motosoto": {"id": "Motosoto", "deprecated": False}, + "mpeg-ssg": {"id": "MPEG-SSG", "deprecated": False}, + "mpi-permissive": {"id": "mpi-permissive", "deprecated": False}, + "mpich2": {"id": "mpich2", "deprecated": False}, + "mpl-1.0": {"id": "MPL-1.0", "deprecated": False}, + "mpl-1.1": {"id": "MPL-1.1", "deprecated": False}, + "mpl-2.0": {"id": "MPL-2.0", "deprecated": False}, + "mpl-2.0-no-copyleft-exception": { + "id": "MPL-2.0-no-copyleft-exception", + "deprecated": False, + }, + "mplus": {"id": "mplus", "deprecated": False}, + "ms-lpl": {"id": "MS-LPL", "deprecated": False}, + "ms-pl": {"id": "MS-PL", "deprecated": False}, + "ms-rl": {"id": "MS-RL", "deprecated": False}, + "mtll": {"id": "MTLL", "deprecated": False}, + "mulanpsl-1.0": {"id": "MulanPSL-1.0", "deprecated": False}, + "mulanpsl-2.0": {"id": "MulanPSL-2.0", "deprecated": False}, + "multics": {"id": "Multics", "deprecated": False}, + "mup": {"id": "Mup", "deprecated": False}, + "naist-2003": {"id": "NAIST-2003", "deprecated": False}, + "nasa-1.3": {"id": "NASA-1.3", "deprecated": False}, + "naumen": {"id": "Naumen", "deprecated": False}, + "nbpl-1.0": {"id": "NBPL-1.0", "deprecated": False}, + "ncbi-pd": {"id": "NCBI-PD", "deprecated": False}, + "ncgl-uk-2.0": {"id": "NCGL-UK-2.0", "deprecated": False}, + "ncl": {"id": "NCL", "deprecated": False}, + "ncsa": {"id": "NCSA", "deprecated": False}, + "net-snmp": {"id": "Net-SNMP", "deprecated": True}, + "netcdf": {"id": "NetCDF", "deprecated": False}, + "newsletr": {"id": "Newsletr", "deprecated": False}, + "ngpl": {"id": "NGPL", "deprecated": False}, + "ngrep": {"id": "ngrep", "deprecated": False}, + "nicta-1.0": {"id": "NICTA-1.0", "deprecated": False}, + "nist-pd": {"id": "NIST-PD", "deprecated": False}, + "nist-pd-fallback": {"id": "NIST-PD-fallback", "deprecated": False}, + "nist-software": {"id": "NIST-Software", "deprecated": False}, + "nlod-1.0": {"id": "NLOD-1.0", "deprecated": False}, + "nlod-2.0": {"id": "NLOD-2.0", "deprecated": False}, + "nlpl": {"id": "NLPL", "deprecated": False}, + "nokia": {"id": "Nokia", "deprecated": False}, + "nosl": {"id": "NOSL", "deprecated": False}, + "noweb": {"id": "Noweb", "deprecated": False}, + "npl-1.0": {"id": "NPL-1.0", "deprecated": False}, + "npl-1.1": {"id": "NPL-1.1", "deprecated": False}, + "nposl-3.0": {"id": "NPOSL-3.0", "deprecated": False}, + "nrl": {"id": "NRL", "deprecated": False}, + "ntia-pd": {"id": "NTIA-PD", "deprecated": False}, + "ntp": {"id": "NTP", "deprecated": False}, + "ntp-0": {"id": "NTP-0", "deprecated": False}, + "nunit": {"id": "Nunit", "deprecated": True}, + "o-uda-1.0": {"id": "O-UDA-1.0", "deprecated": False}, + "oar": {"id": "OAR", "deprecated": False}, + "occt-pl": {"id": "OCCT-PL", "deprecated": False}, + "oclc-2.0": {"id": "OCLC-2.0", "deprecated": False}, + "odbl-1.0": {"id": "ODbL-1.0", "deprecated": False}, + "odc-by-1.0": {"id": "ODC-By-1.0", "deprecated": False}, + "offis": {"id": "OFFIS", "deprecated": False}, + "ofl-1.0": {"id": "OFL-1.0", "deprecated": False}, + "ofl-1.0-no-rfn": {"id": "OFL-1.0-no-RFN", "deprecated": False}, + "ofl-1.0-rfn": {"id": "OFL-1.0-RFN", "deprecated": False}, + "ofl-1.1": {"id": "OFL-1.1", "deprecated": False}, + "ofl-1.1-no-rfn": {"id": "OFL-1.1-no-RFN", "deprecated": False}, + "ofl-1.1-rfn": {"id": "OFL-1.1-RFN", "deprecated": False}, + "ogc-1.0": {"id": "OGC-1.0", "deprecated": False}, + "ogdl-taiwan-1.0": {"id": "OGDL-Taiwan-1.0", "deprecated": False}, + "ogl-canada-2.0": {"id": "OGL-Canada-2.0", "deprecated": False}, + "ogl-uk-1.0": {"id": "OGL-UK-1.0", "deprecated": False}, + "ogl-uk-2.0": {"id": "OGL-UK-2.0", "deprecated": False}, + "ogl-uk-3.0": {"id": "OGL-UK-3.0", "deprecated": False}, + "ogtsl": {"id": "OGTSL", "deprecated": False}, + "oldap-1.1": {"id": "OLDAP-1.1", "deprecated": False}, + "oldap-1.2": {"id": "OLDAP-1.2", "deprecated": False}, + "oldap-1.3": {"id": "OLDAP-1.3", "deprecated": False}, + "oldap-1.4": {"id": "OLDAP-1.4", "deprecated": False}, + "oldap-2.0": {"id": "OLDAP-2.0", "deprecated": False}, + "oldap-2.0.1": {"id": "OLDAP-2.0.1", "deprecated": False}, + "oldap-2.1": {"id": "OLDAP-2.1", "deprecated": False}, + "oldap-2.2": {"id": "OLDAP-2.2", "deprecated": False}, + "oldap-2.2.1": {"id": "OLDAP-2.2.1", "deprecated": False}, + "oldap-2.2.2": {"id": "OLDAP-2.2.2", "deprecated": False}, + "oldap-2.3": {"id": "OLDAP-2.3", "deprecated": False}, + "oldap-2.4": {"id": "OLDAP-2.4", "deprecated": False}, + "oldap-2.5": {"id": "OLDAP-2.5", "deprecated": False}, + "oldap-2.6": {"id": "OLDAP-2.6", "deprecated": False}, + "oldap-2.7": {"id": "OLDAP-2.7", "deprecated": False}, + "oldap-2.8": {"id": "OLDAP-2.8", "deprecated": False}, + "olfl-1.3": {"id": "OLFL-1.3", "deprecated": False}, + "oml": {"id": "OML", "deprecated": False}, + "openpbs-2.3": {"id": "OpenPBS-2.3", "deprecated": False}, + "openssl": {"id": "OpenSSL", "deprecated": False}, + "openssl-standalone": {"id": "OpenSSL-standalone", "deprecated": False}, + "openvision": {"id": "OpenVision", "deprecated": False}, + "opl-1.0": {"id": "OPL-1.0", "deprecated": False}, + "opl-uk-3.0": {"id": "OPL-UK-3.0", "deprecated": False}, + "opubl-1.0": {"id": "OPUBL-1.0", "deprecated": False}, + "oset-pl-2.1": {"id": "OSET-PL-2.1", "deprecated": False}, + "osl-1.0": {"id": "OSL-1.0", "deprecated": False}, + "osl-1.1": {"id": "OSL-1.1", "deprecated": False}, + "osl-2.0": {"id": "OSL-2.0", "deprecated": False}, + "osl-2.1": {"id": "OSL-2.1", "deprecated": False}, + "osl-3.0": {"id": "OSL-3.0", "deprecated": False}, + "padl": {"id": "PADL", "deprecated": False}, + "parity-6.0.0": {"id": "Parity-6.0.0", "deprecated": False}, + "parity-7.0.0": {"id": "Parity-7.0.0", "deprecated": False}, + "pddl-1.0": {"id": "PDDL-1.0", "deprecated": False}, + "php-3.0": {"id": "PHP-3.0", "deprecated": False}, + "php-3.01": {"id": "PHP-3.01", "deprecated": False}, + "pixar": {"id": "Pixar", "deprecated": False}, + "pkgconf": {"id": "pkgconf", "deprecated": False}, + "plexus": {"id": "Plexus", "deprecated": False}, + "pnmstitch": {"id": "pnmstitch", "deprecated": False}, + "polyform-noncommercial-1.0.0": { + "id": "PolyForm-Noncommercial-1.0.0", + "deprecated": False, + }, + "polyform-small-business-1.0.0": { + "id": "PolyForm-Small-Business-1.0.0", + "deprecated": False, + }, + "postgresql": {"id": "PostgreSQL", "deprecated": False}, + "ppl": {"id": "PPL", "deprecated": False}, + "psf-2.0": {"id": "PSF-2.0", "deprecated": False}, + "psfrag": {"id": "psfrag", "deprecated": False}, + "psutils": {"id": "psutils", "deprecated": False}, + "python-2.0": {"id": "Python-2.0", "deprecated": False}, + "python-2.0.1": {"id": "Python-2.0.1", "deprecated": False}, + "python-ldap": {"id": "python-ldap", "deprecated": False}, + "qhull": {"id": "Qhull", "deprecated": False}, + "qpl-1.0": {"id": "QPL-1.0", "deprecated": False}, + "qpl-1.0-inria-2004": {"id": "QPL-1.0-INRIA-2004", "deprecated": False}, + "radvd": {"id": "radvd", "deprecated": False}, + "rdisc": {"id": "Rdisc", "deprecated": False}, + "rhecos-1.1": {"id": "RHeCos-1.1", "deprecated": False}, + "rpl-1.1": {"id": "RPL-1.1", "deprecated": False}, + "rpl-1.5": {"id": "RPL-1.5", "deprecated": False}, + "rpsl-1.0": {"id": "RPSL-1.0", "deprecated": False}, + "rsa-md": {"id": "RSA-MD", "deprecated": False}, + "rscpl": {"id": "RSCPL", "deprecated": False}, + "ruby": {"id": "Ruby", "deprecated": False}, + "ruby-pty": {"id": "Ruby-pty", "deprecated": False}, + "sax-pd": {"id": "SAX-PD", "deprecated": False}, + "sax-pd-2.0": {"id": "SAX-PD-2.0", "deprecated": False}, + "saxpath": {"id": "Saxpath", "deprecated": False}, + "scea": {"id": "SCEA", "deprecated": False}, + "schemereport": {"id": "SchemeReport", "deprecated": False}, + "sendmail": {"id": "Sendmail", "deprecated": False}, + "sendmail-8.23": {"id": "Sendmail-8.23", "deprecated": False}, + "sendmail-open-source-1.1": {"id": "Sendmail-Open-Source-1.1", "deprecated": False}, + "sgi-b-1.0": {"id": "SGI-B-1.0", "deprecated": False}, + "sgi-b-1.1": {"id": "SGI-B-1.1", "deprecated": False}, + "sgi-b-2.0": {"id": "SGI-B-2.0", "deprecated": False}, + "sgi-opengl": {"id": "SGI-OpenGL", "deprecated": False}, + "sgp4": {"id": "SGP4", "deprecated": False}, + "shl-0.5": {"id": "SHL-0.5", "deprecated": False}, + "shl-0.51": {"id": "SHL-0.51", "deprecated": False}, + "simpl-2.0": {"id": "SimPL-2.0", "deprecated": False}, + "sissl": {"id": "SISSL", "deprecated": False}, + "sissl-1.2": {"id": "SISSL-1.2", "deprecated": False}, + "sl": {"id": "SL", "deprecated": False}, + "sleepycat": {"id": "Sleepycat", "deprecated": False}, + "smail-gpl": {"id": "SMAIL-GPL", "deprecated": False}, + "smlnj": {"id": "SMLNJ", "deprecated": False}, + "smppl": {"id": "SMPPL", "deprecated": False}, + "snia": {"id": "SNIA", "deprecated": False}, + "snprintf": {"id": "snprintf", "deprecated": False}, + "sofa": {"id": "SOFA", "deprecated": False}, + "softsurfer": {"id": "softSurfer", "deprecated": False}, + "soundex": {"id": "Soundex", "deprecated": False}, + "spencer-86": {"id": "Spencer-86", "deprecated": False}, + "spencer-94": {"id": "Spencer-94", "deprecated": False}, + "spencer-99": {"id": "Spencer-99", "deprecated": False}, + "spl-1.0": {"id": "SPL-1.0", "deprecated": False}, + "ssh-keyscan": {"id": "ssh-keyscan", "deprecated": False}, + "ssh-openssh": {"id": "SSH-OpenSSH", "deprecated": False}, + "ssh-short": {"id": "SSH-short", "deprecated": False}, + "ssleay-standalone": {"id": "SSLeay-standalone", "deprecated": False}, + "sspl-1.0": {"id": "SSPL-1.0", "deprecated": False}, + "standardml-nj": {"id": "StandardML-NJ", "deprecated": True}, + "sugarcrm-1.1.3": {"id": "SugarCRM-1.1.3", "deprecated": False}, + "sul-1.0": {"id": "SUL-1.0", "deprecated": False}, + "sun-ppp": {"id": "Sun-PPP", "deprecated": False}, + "sun-ppp-2000": {"id": "Sun-PPP-2000", "deprecated": False}, + "sunpro": {"id": "SunPro", "deprecated": False}, + "swl": {"id": "SWL", "deprecated": False}, + "swrule": {"id": "swrule", "deprecated": False}, + "symlinks": {"id": "Symlinks", "deprecated": False}, + "tapr-ohl-1.0": {"id": "TAPR-OHL-1.0", "deprecated": False}, + "tcl": {"id": "TCL", "deprecated": False}, + "tcp-wrappers": {"id": "TCP-wrappers", "deprecated": False}, + "termreadkey": {"id": "TermReadKey", "deprecated": False}, + "tgppl-1.0": {"id": "TGPPL-1.0", "deprecated": False}, + "thirdeye": {"id": "ThirdEye", "deprecated": False}, + "threeparttable": {"id": "threeparttable", "deprecated": False}, + "tmate": {"id": "TMate", "deprecated": False}, + "torque-1.1": {"id": "TORQUE-1.1", "deprecated": False}, + "tosl": {"id": "TOSL", "deprecated": False}, + "tpdl": {"id": "TPDL", "deprecated": False}, + "tpl-1.0": {"id": "TPL-1.0", "deprecated": False}, + "trustedqsl": {"id": "TrustedQSL", "deprecated": False}, + "ttwl": {"id": "TTWL", "deprecated": False}, + "ttyp0": {"id": "TTYP0", "deprecated": False}, + "tu-berlin-1.0": {"id": "TU-Berlin-1.0", "deprecated": False}, + "tu-berlin-2.0": {"id": "TU-Berlin-2.0", "deprecated": False}, + "ubuntu-font-1.0": {"id": "Ubuntu-font-1.0", "deprecated": False}, + "ucar": {"id": "UCAR", "deprecated": False}, + "ucl-1.0": {"id": "UCL-1.0", "deprecated": False}, + "ulem": {"id": "ulem", "deprecated": False}, + "umich-merit": {"id": "UMich-Merit", "deprecated": False}, + "unicode-3.0": {"id": "Unicode-3.0", "deprecated": False}, + "unicode-dfs-2015": {"id": "Unicode-DFS-2015", "deprecated": False}, + "unicode-dfs-2016": {"id": "Unicode-DFS-2016", "deprecated": False}, + "unicode-tou": {"id": "Unicode-TOU", "deprecated": False}, + "unixcrypt": {"id": "UnixCrypt", "deprecated": False}, + "unlicense": {"id": "Unlicense", "deprecated": False}, + "unlicense-libtelnet": {"id": "Unlicense-libtelnet", "deprecated": False}, + "unlicense-libwhirlpool": {"id": "Unlicense-libwhirlpool", "deprecated": False}, + "upl-1.0": {"id": "UPL-1.0", "deprecated": False}, + "urt-rle": {"id": "URT-RLE", "deprecated": False}, + "vim": {"id": "Vim", "deprecated": False}, + "vostrom": {"id": "VOSTROM", "deprecated": False}, + "vsl-1.0": {"id": "VSL-1.0", "deprecated": False}, + "w3c": {"id": "W3C", "deprecated": False}, + "w3c-19980720": {"id": "W3C-19980720", "deprecated": False}, + "w3c-20150513": {"id": "W3C-20150513", "deprecated": False}, + "w3m": {"id": "w3m", "deprecated": False}, + "watcom-1.0": {"id": "Watcom-1.0", "deprecated": False}, + "widget-workshop": {"id": "Widget-Workshop", "deprecated": False}, + "wsuipa": {"id": "Wsuipa", "deprecated": False}, + "wtfpl": {"id": "WTFPL", "deprecated": False}, + "wwl": {"id": "wwl", "deprecated": False}, + "wxwindows": {"id": "wxWindows", "deprecated": True}, + "x11": {"id": "X11", "deprecated": False}, + "x11-distribute-modifications-variant": { + "id": "X11-distribute-modifications-variant", + "deprecated": False, + }, + "x11-swapped": {"id": "X11-swapped", "deprecated": False}, + "xdebug-1.03": {"id": "Xdebug-1.03", "deprecated": False}, + "xerox": {"id": "Xerox", "deprecated": False}, + "xfig": {"id": "Xfig", "deprecated": False}, + "xfree86-1.1": {"id": "XFree86-1.1", "deprecated": False}, + "xinetd": {"id": "xinetd", "deprecated": False}, + "xkeyboard-config-zinoviev": { + "id": "xkeyboard-config-Zinoviev", + "deprecated": False, + }, + "xlock": {"id": "xlock", "deprecated": False}, + "xnet": {"id": "Xnet", "deprecated": False}, + "xpp": {"id": "xpp", "deprecated": False}, + "xskat": {"id": "XSkat", "deprecated": False}, + "xzoom": {"id": "xzoom", "deprecated": False}, + "ypl-1.0": {"id": "YPL-1.0", "deprecated": False}, + "ypl-1.1": {"id": "YPL-1.1", "deprecated": False}, + "zed": {"id": "Zed", "deprecated": False}, + "zeeff": {"id": "Zeeff", "deprecated": False}, + "zend-2.0": {"id": "Zend-2.0", "deprecated": False}, + "zimbra-1.3": {"id": "Zimbra-1.3", "deprecated": False}, + "zimbra-1.4": {"id": "Zimbra-1.4", "deprecated": False}, + "zlib": {"id": "Zlib", "deprecated": False}, + "zlib-acknowledgement": {"id": "zlib-acknowledgement", "deprecated": False}, + "zpl-1.1": {"id": "ZPL-1.1", "deprecated": False}, + "zpl-2.0": {"id": "ZPL-2.0", "deprecated": False}, + "zpl-2.1": {"id": "ZPL-2.1", "deprecated": False}, } EXCEPTIONS: dict[str, SPDXException] = { - '389-exception': {'id': '389-exception', 'deprecated': False}, - 'asterisk-exception': {'id': 'Asterisk-exception', 'deprecated': False}, - 'asterisk-linking-protocols-exception': {'id': 'Asterisk-linking-protocols-exception', 'deprecated': False}, - 'autoconf-exception-2.0': {'id': 'Autoconf-exception-2.0', 'deprecated': False}, - 'autoconf-exception-3.0': {'id': 'Autoconf-exception-3.0', 'deprecated': False}, - 'autoconf-exception-generic': {'id': 'Autoconf-exception-generic', 'deprecated': False}, - 'autoconf-exception-generic-3.0': {'id': 'Autoconf-exception-generic-3.0', 'deprecated': False}, - 'autoconf-exception-macro': {'id': 'Autoconf-exception-macro', 'deprecated': False}, - 'bison-exception-1.24': {'id': 'Bison-exception-1.24', 'deprecated': False}, - 'bison-exception-2.2': {'id': 'Bison-exception-2.2', 'deprecated': False}, - 'bootloader-exception': {'id': 'Bootloader-exception', 'deprecated': False}, - 'cgal-linking-exception': {'id': 'CGAL-linking-exception', 'deprecated': False}, - 'classpath-exception-2.0': {'id': 'Classpath-exception-2.0', 'deprecated': False}, - 'clisp-exception-2.0': {'id': 'CLISP-exception-2.0', 'deprecated': False}, - 'cryptsetup-openssl-exception': {'id': 'cryptsetup-OpenSSL-exception', 'deprecated': False}, - 'digia-qt-lgpl-exception-1.1': {'id': 'Digia-Qt-LGPL-exception-1.1', 'deprecated': False}, - 'digirule-foss-exception': {'id': 'DigiRule-FOSS-exception', 'deprecated': False}, - 'ecos-exception-2.0': {'id': 'eCos-exception-2.0', 'deprecated': False}, - 'erlang-otp-linking-exception': {'id': 'erlang-otp-linking-exception', 'deprecated': False}, - 'fawkes-runtime-exception': {'id': 'Fawkes-Runtime-exception', 'deprecated': False}, - 'fltk-exception': {'id': 'FLTK-exception', 'deprecated': False}, - 'fmt-exception': {'id': 'fmt-exception', 'deprecated': False}, - 'font-exception-2.0': {'id': 'Font-exception-2.0', 'deprecated': False}, - 'freertos-exception-2.0': {'id': 'freertos-exception-2.0', 'deprecated': False}, - 'gcc-exception-2.0': {'id': 'GCC-exception-2.0', 'deprecated': False}, - 'gcc-exception-2.0-note': {'id': 'GCC-exception-2.0-note', 'deprecated': False}, - 'gcc-exception-3.1': {'id': 'GCC-exception-3.1', 'deprecated': False}, - 'gmsh-exception': {'id': 'Gmsh-exception', 'deprecated': False}, - 'gnat-exception': {'id': 'GNAT-exception', 'deprecated': False}, - 'gnome-examples-exception': {'id': 'GNOME-examples-exception', 'deprecated': False}, - 'gnu-compiler-exception': {'id': 'GNU-compiler-exception', 'deprecated': False}, - 'gnu-javamail-exception': {'id': 'gnu-javamail-exception', 'deprecated': False}, - 'gpl-3.0-389-ds-base-exception': {'id': 'GPL-3.0-389-ds-base-exception', 'deprecated': False}, - 'gpl-3.0-interface-exception': {'id': 'GPL-3.0-interface-exception', 'deprecated': False}, - 'gpl-3.0-linking-exception': {'id': 'GPL-3.0-linking-exception', 'deprecated': False}, - 'gpl-3.0-linking-source-exception': {'id': 'GPL-3.0-linking-source-exception', 'deprecated': False}, - 'gpl-cc-1.0': {'id': 'GPL-CC-1.0', 'deprecated': False}, - 'gstreamer-exception-2005': {'id': 'GStreamer-exception-2005', 'deprecated': False}, - 'gstreamer-exception-2008': {'id': 'GStreamer-exception-2008', 'deprecated': False}, - 'harbour-exception': {'id': 'harbour-exception', 'deprecated': False}, - 'i2p-gpl-java-exception': {'id': 'i2p-gpl-java-exception', 'deprecated': False}, - 'independent-modules-exception': {'id': 'Independent-modules-exception', 'deprecated': False}, - 'kicad-libraries-exception': {'id': 'KiCad-libraries-exception', 'deprecated': False}, - 'lgpl-3.0-linking-exception': {'id': 'LGPL-3.0-linking-exception', 'deprecated': False}, - 'libpri-openh323-exception': {'id': 'libpri-OpenH323-exception', 'deprecated': False}, - 'libtool-exception': {'id': 'Libtool-exception', 'deprecated': False}, - 'linux-syscall-note': {'id': 'Linux-syscall-note', 'deprecated': False}, - 'llgpl': {'id': 'LLGPL', 'deprecated': False}, - 'llvm-exception': {'id': 'LLVM-exception', 'deprecated': False}, - 'lzma-exception': {'id': 'LZMA-exception', 'deprecated': False}, - 'mif-exception': {'id': 'mif-exception', 'deprecated': False}, - 'mxml-exception': {'id': 'mxml-exception', 'deprecated': False}, - 'nokia-qt-exception-1.1': {'id': 'Nokia-Qt-exception-1.1', 'deprecated': True}, - 'ocaml-lgpl-linking-exception': {'id': 'OCaml-LGPL-linking-exception', 'deprecated': False}, - 'occt-exception-1.0': {'id': 'OCCT-exception-1.0', 'deprecated': False}, - 'openjdk-assembly-exception-1.0': {'id': 'OpenJDK-assembly-exception-1.0', 'deprecated': False}, - 'openvpn-openssl-exception': {'id': 'openvpn-openssl-exception', 'deprecated': False}, - 'pcre2-exception': {'id': 'PCRE2-exception', 'deprecated': False}, - 'polyparse-exception': {'id': 'polyparse-exception', 'deprecated': False}, - 'ps-or-pdf-font-exception-20170817': {'id': 'PS-or-PDF-font-exception-20170817', 'deprecated': False}, - 'qpl-1.0-inria-2004-exception': {'id': 'QPL-1.0-INRIA-2004-exception', 'deprecated': False}, - 'qt-gpl-exception-1.0': {'id': 'Qt-GPL-exception-1.0', 'deprecated': False}, - 'qt-lgpl-exception-1.1': {'id': 'Qt-LGPL-exception-1.1', 'deprecated': False}, - 'qwt-exception-1.0': {'id': 'Qwt-exception-1.0', 'deprecated': False}, - 'romic-exception': {'id': 'romic-exception', 'deprecated': False}, - 'rrdtool-floss-exception-2.0': {'id': 'RRDtool-FLOSS-exception-2.0', 'deprecated': False}, - 'sane-exception': {'id': 'SANE-exception', 'deprecated': False}, - 'shl-2.0': {'id': 'SHL-2.0', 'deprecated': False}, - 'shl-2.1': {'id': 'SHL-2.1', 'deprecated': False}, - 'stunnel-exception': {'id': 'stunnel-exception', 'deprecated': False}, - 'swi-exception': {'id': 'SWI-exception', 'deprecated': False}, - 'swift-exception': {'id': 'Swift-exception', 'deprecated': False}, - 'texinfo-exception': {'id': 'Texinfo-exception', 'deprecated': False}, - 'u-boot-exception-2.0': {'id': 'u-boot-exception-2.0', 'deprecated': False}, - 'ubdl-exception': {'id': 'UBDL-exception', 'deprecated': False}, - 'universal-foss-exception-1.0': {'id': 'Universal-FOSS-exception-1.0', 'deprecated': False}, - 'vsftpd-openssl-exception': {'id': 'vsftpd-openssl-exception', 'deprecated': False}, - 'wxwindows-exception-3.1': {'id': 'WxWindows-exception-3.1', 'deprecated': False}, - 'x11vnc-openssl-exception': {'id': 'x11vnc-openssl-exception', 'deprecated': False}, + "389-exception": {"id": "389-exception", "deprecated": False}, + "asterisk-exception": {"id": "Asterisk-exception", "deprecated": False}, + "asterisk-linking-protocols-exception": { + "id": "Asterisk-linking-protocols-exception", + "deprecated": False, + }, + "autoconf-exception-2.0": {"id": "Autoconf-exception-2.0", "deprecated": False}, + "autoconf-exception-3.0": {"id": "Autoconf-exception-3.0", "deprecated": False}, + "autoconf-exception-generic": { + "id": "Autoconf-exception-generic", + "deprecated": False, + }, + "autoconf-exception-generic-3.0": { + "id": "Autoconf-exception-generic-3.0", + "deprecated": False, + }, + "autoconf-exception-macro": {"id": "Autoconf-exception-macro", "deprecated": False}, + "bison-exception-1.24": {"id": "Bison-exception-1.24", "deprecated": False}, + "bison-exception-2.2": {"id": "Bison-exception-2.2", "deprecated": False}, + "bootloader-exception": {"id": "Bootloader-exception", "deprecated": False}, + "cgal-linking-exception": {"id": "CGAL-linking-exception", "deprecated": False}, + "classpath-exception-2.0": {"id": "Classpath-exception-2.0", "deprecated": False}, + "clisp-exception-2.0": {"id": "CLISP-exception-2.0", "deprecated": False}, + "cryptsetup-openssl-exception": { + "id": "cryptsetup-OpenSSL-exception", + "deprecated": False, + }, + "digia-qt-lgpl-exception-1.1": { + "id": "Digia-Qt-LGPL-exception-1.1", + "deprecated": False, + }, + "digirule-foss-exception": {"id": "DigiRule-FOSS-exception", "deprecated": False}, + "ecos-exception-2.0": {"id": "eCos-exception-2.0", "deprecated": False}, + "erlang-otp-linking-exception": { + "id": "erlang-otp-linking-exception", + "deprecated": False, + }, + "fawkes-runtime-exception": {"id": "Fawkes-Runtime-exception", "deprecated": False}, + "fltk-exception": {"id": "FLTK-exception", "deprecated": False}, + "fmt-exception": {"id": "fmt-exception", "deprecated": False}, + "font-exception-2.0": {"id": "Font-exception-2.0", "deprecated": False}, + "freertos-exception-2.0": {"id": "freertos-exception-2.0", "deprecated": False}, + "gcc-exception-2.0": {"id": "GCC-exception-2.0", "deprecated": False}, + "gcc-exception-2.0-note": {"id": "GCC-exception-2.0-note", "deprecated": False}, + "gcc-exception-3.1": {"id": "GCC-exception-3.1", "deprecated": False}, + "gmsh-exception": {"id": "Gmsh-exception", "deprecated": False}, + "gnat-exception": {"id": "GNAT-exception", "deprecated": False}, + "gnome-examples-exception": {"id": "GNOME-examples-exception", "deprecated": False}, + "gnu-compiler-exception": {"id": "GNU-compiler-exception", "deprecated": False}, + "gnu-javamail-exception": {"id": "gnu-javamail-exception", "deprecated": False}, + "gpl-3.0-389-ds-base-exception": { + "id": "GPL-3.0-389-ds-base-exception", + "deprecated": False, + }, + "gpl-3.0-interface-exception": { + "id": "GPL-3.0-interface-exception", + "deprecated": False, + }, + "gpl-3.0-linking-exception": { + "id": "GPL-3.0-linking-exception", + "deprecated": False, + }, + "gpl-3.0-linking-source-exception": { + "id": "GPL-3.0-linking-source-exception", + "deprecated": False, + }, + "gpl-cc-1.0": {"id": "GPL-CC-1.0", "deprecated": False}, + "gstreamer-exception-2005": {"id": "GStreamer-exception-2005", "deprecated": False}, + "gstreamer-exception-2008": {"id": "GStreamer-exception-2008", "deprecated": False}, + "harbour-exception": {"id": "harbour-exception", "deprecated": False}, + "i2p-gpl-java-exception": {"id": "i2p-gpl-java-exception", "deprecated": False}, + "independent-modules-exception": { + "id": "Independent-modules-exception", + "deprecated": False, + }, + "kicad-libraries-exception": { + "id": "KiCad-libraries-exception", + "deprecated": False, + }, + "lgpl-3.0-linking-exception": { + "id": "LGPL-3.0-linking-exception", + "deprecated": False, + }, + "libpri-openh323-exception": { + "id": "libpri-OpenH323-exception", + "deprecated": False, + }, + "libtool-exception": {"id": "Libtool-exception", "deprecated": False}, + "linux-syscall-note": {"id": "Linux-syscall-note", "deprecated": False}, + "llgpl": {"id": "LLGPL", "deprecated": False}, + "llvm-exception": {"id": "LLVM-exception", "deprecated": False}, + "lzma-exception": {"id": "LZMA-exception", "deprecated": False}, + "mif-exception": {"id": "mif-exception", "deprecated": False}, + "mxml-exception": {"id": "mxml-exception", "deprecated": False}, + "nokia-qt-exception-1.1": {"id": "Nokia-Qt-exception-1.1", "deprecated": True}, + "ocaml-lgpl-linking-exception": { + "id": "OCaml-LGPL-linking-exception", + "deprecated": False, + }, + "occt-exception-1.0": {"id": "OCCT-exception-1.0", "deprecated": False}, + "openjdk-assembly-exception-1.0": { + "id": "OpenJDK-assembly-exception-1.0", + "deprecated": False, + }, + "openvpn-openssl-exception": { + "id": "openvpn-openssl-exception", + "deprecated": False, + }, + "pcre2-exception": {"id": "PCRE2-exception", "deprecated": False}, + "polyparse-exception": {"id": "polyparse-exception", "deprecated": False}, + "ps-or-pdf-font-exception-20170817": { + "id": "PS-or-PDF-font-exception-20170817", + "deprecated": False, + }, + "qpl-1.0-inria-2004-exception": { + "id": "QPL-1.0-INRIA-2004-exception", + "deprecated": False, + }, + "qt-gpl-exception-1.0": {"id": "Qt-GPL-exception-1.0", "deprecated": False}, + "qt-lgpl-exception-1.1": {"id": "Qt-LGPL-exception-1.1", "deprecated": False}, + "qwt-exception-1.0": {"id": "Qwt-exception-1.0", "deprecated": False}, + "romic-exception": {"id": "romic-exception", "deprecated": False}, + "rrdtool-floss-exception-2.0": { + "id": "RRDtool-FLOSS-exception-2.0", + "deprecated": False, + }, + "sane-exception": {"id": "SANE-exception", "deprecated": False}, + "shl-2.0": {"id": "SHL-2.0", "deprecated": False}, + "shl-2.1": {"id": "SHL-2.1", "deprecated": False}, + "stunnel-exception": {"id": "stunnel-exception", "deprecated": False}, + "swi-exception": {"id": "SWI-exception", "deprecated": False}, + "swift-exception": {"id": "Swift-exception", "deprecated": False}, + "texinfo-exception": {"id": "Texinfo-exception", "deprecated": False}, + "u-boot-exception-2.0": {"id": "u-boot-exception-2.0", "deprecated": False}, + "ubdl-exception": {"id": "UBDL-exception", "deprecated": False}, + "universal-foss-exception-1.0": { + "id": "Universal-FOSS-exception-1.0", + "deprecated": False, + }, + "vsftpd-openssl-exception": {"id": "vsftpd-openssl-exception", "deprecated": False}, + "wxwindows-exception-3.1": {"id": "WxWindows-exception-3.1", "deprecated": False}, + "x11vnc-openssl-exception": {"id": "x11vnc-openssl-exception", "deprecated": False}, } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py index 72f2b03..a534381 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py @@ -165,14 +165,14 @@ def __getstate__() -> dict[str, Any]: state = {} g = globals() for k, v in _state_vars.items(): - state[k] = g['_sget_' + v](g[k]) + state[k] = g["_sget_" + v](g[k]) return state def __setstate__(state: dict[str, Any]) -> dict[str, Any]: g = globals() for k, v in state.items(): - g['_sset_' + _state_vars[k]](k, g[k], v) + g["_sset_" + _state_vars[k]](k, g[k], v) return state @@ -213,7 +213,7 @@ def get_supported_platform(): m = macosVersionString.match(plat) if m is not None and sys.platform == "darwin": try: - plat = 'macosx-%s-%s' % ('.'.join(_macos_vers()[:2]), m.group(3)) + plat = "macosx-%s-%s" % (".".join(_macos_vers()[:2]), m.group(3)) except ValueError: # not macOS pass @@ -222,87 +222,87 @@ def get_supported_platform(): __all__ = [ # Basic resource access and distribution/entry point discovery - 'require', - 'run_script', - 'get_provider', - 'get_distribution', - 'load_entry_point', - 'get_entry_map', - 'get_entry_info', - 'iter_entry_points', - 'resource_string', - 'resource_stream', - 'resource_filename', - 'resource_listdir', - 'resource_exists', - 'resource_isdir', + "require", + "run_script", + "get_provider", + "get_distribution", + "load_entry_point", + "get_entry_map", + "get_entry_info", + "iter_entry_points", + "resource_string", + "resource_stream", + "resource_filename", + "resource_listdir", + "resource_exists", + "resource_isdir", # Environmental control - 'declare_namespace', - 'working_set', - 'add_activation_listener', - 'find_distributions', - 'set_extraction_path', - 'cleanup_resources', - 'get_default_cache', + "declare_namespace", + "working_set", + "add_activation_listener", + "find_distributions", + "set_extraction_path", + "cleanup_resources", + "get_default_cache", # Primary implementation classes - 'Environment', - 'WorkingSet', - 'ResourceManager', - 'Distribution', - 'Requirement', - 'EntryPoint', + "Environment", + "WorkingSet", + "ResourceManager", + "Distribution", + "Requirement", + "EntryPoint", # Exceptions - 'ResolutionError', - 'VersionConflict', - 'DistributionNotFound', - 'UnknownExtra', - 'ExtractionError', + "ResolutionError", + "VersionConflict", + "DistributionNotFound", + "UnknownExtra", + "ExtractionError", # Warnings - 'PEP440Warning', + "PEP440Warning", # Parsing functions and string utilities - 'parse_requirements', - 'parse_version', - 'safe_name', - 'safe_version', - 'get_platform', - 'compatible_platforms', - 'yield_lines', - 'split_sections', - 'safe_extra', - 'to_filename', - 'invalid_marker', - 'evaluate_marker', + "parse_requirements", + "parse_version", + "safe_name", + "safe_version", + "get_platform", + "compatible_platforms", + "yield_lines", + "split_sections", + "safe_extra", + "to_filename", + "invalid_marker", + "evaluate_marker", # filesystem utilities - 'ensure_directory', - 'normalize_path', + "ensure_directory", + "normalize_path", # Distribution "precedence" constants - 'EGG_DIST', - 'BINARY_DIST', - 'SOURCE_DIST', - 'CHECKOUT_DIST', - 'DEVELOP_DIST', + "EGG_DIST", + "BINARY_DIST", + "SOURCE_DIST", + "CHECKOUT_DIST", + "DEVELOP_DIST", # "Provider" interfaces, implementations, and registration/lookup APIs - 'IMetadataProvider', - 'IResourceProvider', - 'FileMetadata', - 'PathMetadata', - 'EggMetadata', - 'EmptyProvider', - 'empty_provider', - 'NullProvider', - 'EggProvider', - 'DefaultProvider', - 'ZipProvider', - 'register_finder', - 'register_namespace_handler', - 'register_loader_type', - 'fixup_namespace_packages', - 'get_importer', + "IMetadataProvider", + "IResourceProvider", + "FileMetadata", + "PathMetadata", + "EggMetadata", + "EmptyProvider", + "empty_provider", + "NullProvider", + "EggProvider", + "DefaultProvider", + "ZipProvider", + "register_finder", + "register_namespace_handler", + "register_loader_type", + "fixup_namespace_packages", + "get_importer", # Warnings - 'PkgResourcesDeprecationWarning', + "PkgResourcesDeprecationWarning", # Deprecated/backward compatibility only - 'run_main', - 'AvailableDistributions', + "run_main", + "AvailableDistributions", ] @@ -351,7 +351,7 @@ class ContextualVersionConflict(VersionConflict): requirements that required the installed Distribution. """ - _template = VersionConflict._template + ' by {self.required_by}' + _template = VersionConflict._template + " by {self.required_by}" @property def required_by(self) -> set[str]: @@ -377,8 +377,8 @@ class DistributionNotFound(ResolutionError): @property def requirers_str(self): if not self.requirers: - return 'the application' - return ', '.join(self.requirers) + return "the application" + return ", ".join(self.requirers) def report(self): return self._template.format(**locals()) @@ -393,7 +393,7 @@ class UnknownExtra(ResolutionError): _provider_factories: dict[type[_ModuleLike], _ProviderFactoryType] = {} -PY_MAJOR = '{}.{}'.format(*sys.version_info) +PY_MAJOR = "{}.{}".format(*sys.version_info) EGG_DIST = 3 BINARY_DIST = 2 SOURCE_DIST = 1 @@ -426,7 +426,7 @@ def get_provider(moduleOrReq: str | Requirement) -> IResourceProvider | Distribu except KeyError: __import__(moduleOrReq) module = sys.modules[moduleOrReq] - loader = getattr(module, '__loader__', None) + loader = getattr(module, "__loader__", None) return _find_adapter(_provider_factories, loader)(module) @@ -434,18 +434,18 @@ def get_provider(moduleOrReq: str | Requirement) -> IResourceProvider | Distribu def _macos_vers(): version = platform.mac_ver()[0] # fallback for MacPorts - if version == '': - plist = '/System/Library/CoreServices/SystemVersion.plist' + if version == "": + plist = "/System/Library/CoreServices/SystemVersion.plist" if os.path.exists(plist): - with open(plist, 'rb') as fh: + with open(plist, "rb") as fh: plist_content = plistlib.load(fh) - if 'ProductVersion' in plist_content: - version = plist_content['ProductVersion'] - return version.split('.') + if "ProductVersion" in plist_content: + version = plist_content["ProductVersion"] + return version.split(".") def _macos_arch(machine): - return {'PowerPC': 'ppc', 'Power_Macintosh': 'ppc'}.get(machine, machine) + return {"PowerPC": "ppc", "Power_Macintosh": "ppc"}.get(machine, machine) def get_build_platform(): @@ -457,7 +457,7 @@ def get_build_platform(): from sysconfig import get_platform plat = get_platform() - if sys.platform == "darwin" and not plat.startswith('macosx-'): + if sys.platform == "darwin" and not plat.startswith("macosx-"): try: version = _macos_vers() machine = os.uname()[4].replace(" ", "_") @@ -741,9 +741,9 @@ class WorkingSet: def run_script(self, requires: str, script_name: str): """Locate distribution for `requires` and run `script_name` script""" ns = sys._getframe(1).f_globals - name = ns['__name__'] + name = ns["__name__"] ns.clear() - ns['__name__'] = name + ns["__name__"] = name self.require(requires)[0].run_script(script_name, ns) def __iter__(self) -> Iterator[Distribution]: @@ -1117,7 +1117,7 @@ class _ReqExtras(Dict["Requirement", Tuple[str, ...]]): evaluation. Otherwise, return True. """ extra_evals = ( - req.marker.evaluate({'extra': extra}) + req.marker.evaluate({"extra": extra}) for extra in self.get(req, ()) + (extras or (None,)) ) return not req.marker or any(extra_evals) @@ -1203,7 +1203,7 @@ class Environment: dists = self._distmap.setdefault(dist.key, []) if dist not in dists: dists.append(dist) - dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) + dists.sort(key=operator.attrgetter("hashcmp"), reverse=True) @overload def best_match( @@ -1275,10 +1275,12 @@ class Environment: def obtain( self, requirement: Requirement, - installer: Callable[[Requirement], None] - | _InstallerType - | None - | _InstallerTypeT[_DistributionT] = None, + installer: ( + Callable[[Requirement], None] + | _InstallerType + | None + | _InstallerTypeT[_DistributionT] + ) = None, ) -> Distribution | None: """Obtain a distribution matching `requirement` (e.g. via download) @@ -1388,8 +1390,7 @@ class ResourceManager: old_exc = sys.exc_info()[1] cache_path = self.extraction_path or get_default_cache() - tmpl = textwrap.dedent( - """ + tmpl = textwrap.dedent(""" Can't extract file(s) to egg cache The following error occurred while trying to extract file(s) @@ -1404,8 +1405,7 @@ class ResourceManager: Perhaps your account does not have write access to this directory? You can change the cache directory by setting the PYTHON_EGG_CACHE environment variable to point to an accessible directory. - """ - ).lstrip() + """).lstrip() err = ExtractionError(tmpl.format(**locals())) err.manager = self err.cache_path = cache_path @@ -1426,7 +1426,7 @@ class ResourceManager: extract, as it tracks the generated names for possible cleanup later. """ extract_path = self.extraction_path or get_default_cache() - target_path = os.path.join(extract_path, archive_name + '-tmp', *names) + target_path = os.path.join(extract_path, archive_name + "-tmp", *names) try: _bypass_ensure_directory(target_path) except Exception: @@ -1447,7 +1447,7 @@ class ResourceManager: See Distribute #375 for more details. """ - if os.name == 'nt' and not path.startswith(os.environ['windir']): + if os.name == "nt" and not path.startswith(os.environ["windir"]): # On Windows, permissions are generally restrictive by default # and temp directories are not writable by other users, so # bypass the warning. @@ -1479,7 +1479,7 @@ class ResourceManager: returns. """ - if os.name == 'posix': + if os.name == "posix": # Make the resource executable mode = ((os.stat(tempname).st_mode) | 0o555) & 0o7777 os.chmod(tempname, mode) @@ -1529,7 +1529,7 @@ def get_default_cache() -> str: or a platform-relevant user cache dir for an app named "Python-Eggs". """ - return os.environ.get('PYTHON_EGG_CACHE') or _user_cache_dir(appname='Python-Eggs') + return os.environ.get("PYTHON_EGG_CACHE") or _user_cache_dir(appname="Python-Eggs") def safe_name(name: str): @@ -1537,7 +1537,7 @@ def safe_name(name: str): Any runs of non-alphanumeric/. characters are replaced with a single '-'. """ - return re.sub('[^A-Za-z0-9.]+', '-', name) + return re.sub("[^A-Za-z0-9.]+", "-", name) def safe_version(version: str): @@ -1548,8 +1548,8 @@ def safe_version(version: str): # normalize the version return str(_packaging_version.Version(version)) except _packaging_version.InvalidVersion: - version = version.replace(' ', '.') - return re.sub('[^A-Za-z0-9.]+', '-', version) + version = version.replace(" ", ".") + return re.sub("[^A-Za-z0-9.]+", "-", version) def _forgiving_version(version): @@ -1565,7 +1565,7 @@ def _forgiving_version(version): >>> parse_version(_forgiving_version('hello world')) """ - version = version.replace(' ', '.') + version = version.replace(" ", ".") match = _PEP440_FALLBACK.search(version) if match: safe = match["safe"] @@ -1579,9 +1579,9 @@ def _forgiving_version(version): def _safe_segment(segment): """Convert an arbitrary string into a safe segment""" - segment = re.sub('[^A-Za-z0-9.]+', '-', segment) - segment = re.sub('-[^A-Za-z0-9]+', '-', segment) - return re.sub(r'\.[^A-Za-z0-9]+', '.', segment).strip(".-") + segment = re.sub("[^A-Za-z0-9.]+", "-", segment) + segment = re.sub("-[^A-Za-z0-9]+", "-", segment) + return re.sub(r"\.[^A-Za-z0-9]+", ".", segment).strip(".-") def safe_extra(extra: str): @@ -1590,7 +1590,7 @@ def safe_extra(extra: str): Any runs of non-alphanumeric characters are replaced with a single '_', and the result is always lowercased. """ - return re.sub('[^A-Za-z0-9.-]+', '_', extra).lower() + return re.sub("[^A-Za-z0-9.-]+", "_", extra).lower() def to_filename(name: str): @@ -1598,7 +1598,7 @@ def to_filename(name: str): Any '-' characters are currently replaced with '_'. """ - return name.replace('-', '_') + return name.replace("-", "_") def invalid_marker(text: str): @@ -1638,8 +1638,8 @@ class NullProvider: loader: _LoaderProtocol | None = None def __init__(self, module: _ModuleLike): - self.loader = getattr(module, '__loader__', None) - self.module_path = os.path.dirname(getattr(module, '__file__', '')) + self.loader = getattr(module, "__loader__", None) + self.module_path = os.path.dirname(getattr(module, "__file__", "")) def get_resource_filename(self, manager: ResourceManager, resource_name: str): return self._fn(self.module_path, resource_name) @@ -1671,11 +1671,11 @@ class NullProvider: path = self._get_metadata_path(name) value = self._get(path) try: - return value.decode('utf-8') + return value.decode("utf-8") except UnicodeDecodeError as exc: # Include the path in the error message to simplify # troubleshooting, and without changing the exception type. - exc.reason += ' in {} file at path: {}'.format(name, path) + exc.reason += " in {} file at path: {}".format(name, path) raise def get_metadata_lines(self, name: str) -> Iterator[str]: @@ -1696,7 +1696,7 @@ class NullProvider: return [] def run_script(self, script_name: str, namespace: dict[str, Any]): - script = 'scripts/' + script_name + script = "scripts/" + script_name if not self.has_metadata(script): raise ResolutionError( "Script {script!r} not found in metadata at {self.egg_info!r}".format( @@ -1704,13 +1704,13 @@ class NullProvider: ), ) - script_text = self.get_metadata(script).replace('\r\n', '\n') - script_text = script_text.replace('\r', '\n') + script_text = self.get_metadata(script).replace("\r\n", "\n") + script_text = script_text.replace("\r", "\n") script_filename = self._fn(self.egg_info, script) - namespace['__file__'] = script_filename + namespace["__file__"] = script_filename if os.path.exists(script_filename): source = _read_utf8_with_fallback(script_filename) - code = compile(source, script_filename, 'exec') + code = compile(source, script_filename, "exec") exec(code, namespace, namespace) else: from linecache import cache @@ -1718,10 +1718,10 @@ class NullProvider: cache[script_filename] = ( len(script_text), 0, - script_text.split('\n'), + script_text.split("\n"), script_filename, ) - script_code = compile(script_text, script_filename, 'exec') + script_code = compile(script_text, script_filename, "exec") exec(script_code, namespace, namespace) def _has(self, path) -> bool: @@ -1746,7 +1746,7 @@ class NullProvider: ) self._validate_resource_path(resource_name) if resource_name: - return os.path.join(base, *resource_name.split('/')) + return os.path.join(base, *resource_name.split("/")) return base @staticmethod @@ -1825,7 +1825,7 @@ is not allowed. ) def _get(self, path) -> bytes: - if hasattr(self.loader, 'get_data') and self.loader: + if hasattr(self.loader, "get_data") and self.loader: # Already checked get_data exists return self.loader.get_data(path) # type: ignore[attr-defined] raise NotImplementedError( @@ -1863,7 +1863,7 @@ class EggProvider(NullProvider): def _set_egg(self, path: str): self.egg_name = os.path.basename(path) - self.egg_info = os.path.join(path, 'EGG-INFO') + self.egg_info = os.path.join(path, "EGG-INFO") self.egg_root = path @@ -1880,17 +1880,17 @@ class DefaultProvider(EggProvider): return os.listdir(path) def get_resource_stream(self, manager: object, resource_name: str): - return open(self._fn(self.module_path, resource_name), 'rb') + return open(self._fn(self.module_path, resource_name), "rb") def _get(self, path) -> bytes: - with open(path, 'rb') as stream: + with open(path, "rb") as stream: return stream.read() @classmethod def _register(cls): loader_names = ( - 'SourceFileLoader', - 'SourcelessFileLoader', + "SourceFileLoader", + "SourcelessFileLoader", ) for name in loader_names: loader_cls = getattr(importlib.machinery, name, type(None)) @@ -1909,7 +1909,7 @@ class EmptyProvider(NullProvider): _isdir = _has = lambda self, path: False def _get(self, path) -> bytes: - return b'' + return b"" def _listdir(self, path): return [] @@ -1939,7 +1939,7 @@ class ZipManifests(Dict[str, "MemoizedZipManifests.manifest_mod"]): with zipfile.ZipFile(path) as zfile: items = ( ( - name.replace('/', os.sep), + name.replace("/", os.sep), zfile.getinfo(name), ) for name in zfile.namelist() @@ -1989,7 +1989,7 @@ class ZipProvider(EggProvider): # usable with the zipimport directory cache for our target archive fspath = fspath.rstrip(os.sep) if fspath == self.loader.archive: - return '' + return "" if fspath.startswith(self.zip_pre): return fspath[len(self.zip_pre) :] raise AssertionError("%s is not a subpath of %s" % (fspath, self.zip_pre)) @@ -2014,7 +2014,7 @@ class ZipProvider(EggProvider): # no need to lock for extraction, since we use temp names zip_path = self._resource_to_zip(resource_name) eagers = self._get_eager_resources() - if '/'.join(self._parts(zip_path)) in eagers: + if "/".join(self._parts(zip_path)) in eagers: for name in eagers: self._extract_resource(manager, self._eager_to_zip(name)) return self._extract_resource(manager, zip_path) @@ -2029,7 +2029,9 @@ class ZipProvider(EggProvider): return timestamp, size # FIXME: 'ZipProvider._extract_resource' is too complex (12) - def _extract_resource(self, manager: ResourceManager, zip_path) -> str: # noqa: C901 + def _extract_resource( + self, manager: ResourceManager, zip_path + ) -> str: # noqa: C901 if zip_path in self._index(): for name in self._index()[zip_path]: last = self._extract_resource(manager, os.path.join(zip_path, name)) @@ -2071,7 +2073,7 @@ class ZipProvider(EggProvider): # so proceed. return real_path # Windows, del old file and retry - elif os.name == 'nt': + elif os.name == "nt": unlink(real_path) rename(tmpnam, real_path) return real_path @@ -2095,14 +2097,14 @@ class ZipProvider(EggProvider): return False # check that the contents match zip_contents = self.loader.get_data(zip_path) - with open(file_path, 'rb') as f: + with open(file_path, "rb") as f: file_contents = f.read() return zip_contents == file_contents def _get_eager_resources(self): if self.eagers is None: eagers = [] - for name in ('native_libs.txt', 'eager_resources.txt'): + for name in ("native_libs.txt", "eager_resources.txt"): if self.has_metadata(name): eagers.extend(self.get_metadata_lines(name)) self.eagers = eagers @@ -2164,19 +2166,19 @@ class FileMetadata(EmptyProvider): return self.path def has_metadata(self, name: str) -> bool: - return name == 'PKG-INFO' and os.path.isfile(self.path) + return name == "PKG-INFO" and os.path.isfile(self.path) def get_metadata(self, name: str): - if name != 'PKG-INFO': + if name != "PKG-INFO": raise KeyError("No metadata except PKG-INFO is available") - with open(self.path, encoding='utf-8', errors="replace") as f: + with open(self.path, encoding="utf-8", errors="replace") as f: metadata = f.read() self._warn_on_replacement(metadata) return metadata def _warn_on_replacement(self, metadata): - replacement_char = '�' + replacement_char = "�" if replacement_char in metadata: tmpl = "{self.path} could not be properly decoded in UTF-8" msg = tmpl.format(**locals()) @@ -2227,7 +2229,7 @@ class EggMetadata(ZipProvider): _distribution_finders: dict[type, _DistFinderType[Any]] = _declare_state( - 'dict', '_distribution_finders', {} + "dict", "_distribution_finders", {} ) @@ -2254,22 +2256,22 @@ def find_eggs_in_zip( """ Find eggs in zip files; possibly multiple nested eggs. """ - if importer.archive.endswith('.whl'): + if importer.archive.endswith(".whl"): # wheels are not supported with this finder # they don't have PKG-INFO metadata, and won't ever contain eggs return metadata = EggMetadata(importer) - if metadata.has_metadata('PKG-INFO'): + if metadata.has_metadata("PKG-INFO"): yield Distribution.from_filename(path_item, metadata=metadata) if only: # don't yield nested distros return - for subitem in metadata.resource_listdir(''): + for subitem in metadata.resource_listdir(""): if _is_egg_path(subitem): subpath = os.path.join(path_item, subitem) dists = find_eggs_in_zip(zipimport.zipimporter(subpath), subpath) yield from dists - elif subitem.lower().endswith(('.dist-info', '.egg-info')): + elif subitem.lower().endswith((".dist-info", ".egg-info")): subpath = os.path.join(path_item, subitem) submeta = EggMetadata(zipimport.zipimporter(subpath)) submeta.egg_info = subpath @@ -2295,7 +2297,7 @@ def find_on_path(importer: object | None, path_item, only=False): if _is_unpacked_egg(path_item): yield Distribution.from_filename( path_item, - metadata=PathMetadata(path_item, os.path.join(path_item, 'EGG-INFO')), + metadata=PathMetadata(path_item, os.path.join(path_item, "EGG-INFO")), ) return @@ -2311,19 +2313,23 @@ def find_on_path(importer: object | None, path_item, only=False): def dist_factory(path_item, entry, only): """Return a dist_factory for the given entry.""" lower = entry.lower() - is_egg_info = lower.endswith('.egg-info') - is_dist_info = lower.endswith('.dist-info') and os.path.isdir( + is_egg_info = lower.endswith(".egg-info") + is_dist_info = lower.endswith(".dist-info") and os.path.isdir( os.path.join(path_item, entry) ) is_meta = is_egg_info or is_dist_info return ( distributions_from_metadata if is_meta - else find_distributions - if not only and _is_egg_path(entry) - else resolve_egg_link - if not only and lower.endswith('.egg-link') - else NoDists() + else ( + find_distributions + if not only and _is_egg_path(entry) + else ( + resolve_egg_link + if not only and lower.endswith(".egg-link") + else NoDists() + ) + ) ) @@ -2400,16 +2406,16 @@ def resolve_egg_link(path): return next(dist_groups, ()) -if hasattr(pkgutil, 'ImpImporter'): +if hasattr(pkgutil, "ImpImporter"): register_finder(pkgutil.ImpImporter, find_on_path) register_finder(importlib.machinery.FileFinder, find_on_path) _namespace_handlers: dict[type, _NSHandlerType[Any]] = _declare_state( - 'dict', '_namespace_handlers', {} + "dict", "_namespace_handlers", {} ) _namespace_packages: dict[str | None, list[str]] = _declare_state( - 'dict', '_namespace_packages', {} + "dict", "_namespace_packages", {} ) @@ -2458,7 +2464,7 @@ def _handle_ns(packageName, path_item): module = sys.modules[packageName] = types.ModuleType(packageName) module.__path__ = [] _set_parent_ns(packageName) - elif not hasattr(module, '__path__'): + elif not hasattr(module, "__path__"): raise TypeError("Not a package:", packageName) handler = _find_adapter(_namespace_handlers, importer) subpath = handler(importer, path_item, packageName, module) @@ -2484,14 +2490,14 @@ def _rebuild_mod_path(orig_path, package_name, module: types.ModuleType): try: return sys_path.index(entry) except ValueError: - return float('inf') + return float("inf") def position_in_sys_path(path): """ Return the ordinal of the path based on its position in sys.path """ path_parts = path.split(os.sep) - module_parts = package_name.count('.') + 1 + module_parts = package_name.count(".") + 1 parts = path_parts[:-module_parts] return safe_sys_path_index(_normalize_cached(os.sep.join(parts))) @@ -2522,7 +2528,7 @@ def declare_namespace(packageName: str): return path: MutableSequence[str] = sys.path - parent, _, _ = packageName.rpartition('.') + parent, _, _ = packageName.rpartition(".") if parent: declare_namespace(parent) @@ -2567,7 +2573,7 @@ def file_ns_handler( ): """Compute an ns-package subpath for a filesystem or zipfile importer""" - subpath = os.path.join(path_item, packageName.split('.')[-1]) + subpath = os.path.join(path_item, packageName.split(".")[-1]) normalized = _normalize_cached(subpath) for item in module.__path__: if _normalize_cached(item) == normalized: @@ -2577,7 +2583,7 @@ def file_ns_handler( return subpath -if hasattr(pkgutil, 'ImpImporter'): +if hasattr(pkgutil, "ImpImporter"): register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) register_namespace_handler(zipimport.zipimporter, file_ns_handler) @@ -2613,7 +2619,7 @@ def _cygwin_patch(filename: StrOrBytesPath): # pragma: nocover would probably better, in Cygwin even more so, except that this seems to be by design... """ - return os.path.abspath(filename) if sys.platform == 'cygwin' else filename + return os.path.abspath(filename) if sys.platform == "cygwin" else filename if TYPE_CHECKING: @@ -2624,6 +2630,7 @@ if TYPE_CHECKING: @overload def _normalize_cached(filename: BytesPath) -> bytes: ... def _normalize_cached(filename: StrOrBytesPath) -> str | bytes: ... + else: @functools.lru_cache(maxsize=None) @@ -2640,7 +2647,7 @@ def _is_egg_path(path): def _is_zip_egg(path): return ( - path.lower().endswith('.egg') + path.lower().endswith(".egg") and os.path.isfile(path) and zipfile.is_zipfile(path) ) @@ -2650,16 +2657,16 @@ def _is_unpacked_egg(path): """ Determine if given path appears to be an unpacked egg. """ - return path.lower().endswith('.egg') and os.path.isfile( - os.path.join(path, 'EGG-INFO', 'PKG-INFO') + return path.lower().endswith(".egg") and os.path.isfile( + os.path.join(path, "EGG-INFO", "PKG-INFO") ) def _set_parent_ns(packageName): - parts = packageName.split('.') + parts = packageName.split(".") name = parts.pop() if parts: - parent = '.'.join(parts) + parent = ".".join(parts) setattr(sys.modules[parent], name, sys.modules[packageName]) @@ -2700,9 +2707,9 @@ class EntryPoint: def __str__(self): s = "%s = %s" % (self.name, self.module_name) if self.attrs: - s += ':' + '.'.join(self.attrs) + s += ":" + ".".join(self.attrs) if self.extras: - s += ' [%s]' % ','.join(self.extras) + s += " [%s]" % ",".join(self.extras) return s def __repr__(self): @@ -2748,7 +2755,7 @@ class EntryPoint: """ Resolve the entry point from its module and attrs. """ - module = __import__(self.module_name, fromlist=['__name__'], level=0) + module = __import__(self.module_name, fromlist=["__name__"], level=0) try: return functools.reduce(getattr, self.attrs, module) except AttributeError as exc: @@ -2773,12 +2780,12 @@ class EntryPoint: list(map(working_set.add, items)) pattern = re.compile( - r'\s*' - r'(?P.+?)\s*' - r'=\s*' - r'(?P[\w.]+)\s*' - r'(:\s*(?P[\w.]+))?\s*' - r'(?P\[.*\])?\s*$' + r"\s*" + r"(?P.+?)\s*" + r"=\s*" + r"(?P[\w.]+)\s*" + r"(:\s*(?P[\w.]+))?\s*" + r"(?P\[.*\])?\s*$" ) @classmethod @@ -2797,15 +2804,15 @@ class EntryPoint: msg = "EntryPoint must be in 'name=module:attrs [extras]' format" raise ValueError(msg, src) res = m.groupdict() - extras = cls._parse_extras(res['extras']) - attrs = res['attr'].split('.') if res['attr'] else () - return cls(res['name'], res['module'], attrs, extras, dist) + extras = cls._parse_extras(res["extras"]) + attrs = res["attr"].split(".") if res["attr"] else () + return cls(res["name"], res["module"], attrs, extras, dist) @classmethod def _parse_extras(cls, extras_spec): if not extras_spec: return () - req = Requirement.parse('x' + extras_spec) + req = Requirement.parse("x" + extras_spec) if req.specs: raise ValueError return req.extras @@ -2860,18 +2867,18 @@ def _version_from_file(lines): """ def is_version_line(line): - return line.lower().startswith('version:') + return line.lower().startswith("version:") version_lines = filter(is_version_line, lines) - line = next(iter(version_lines), '') - _, _, value = line.partition(':') + line = next(iter(version_lines), "") + _, _, value = line.partition(":") return safe_version(value.strip()) or None class Distribution: """Wrap an actual or potential sys.path entry w/metadata""" - PKG_INFO = 'PKG-INFO' + PKG_INFO = "PKG-INFO" def __init__( self, @@ -2883,7 +2890,7 @@ class Distribution: platform: str | None = None, precedence: int = EGG_DIST, ): - self.project_name = safe_name(project_name or 'Unknown') + self.project_name = safe_name(project_name or "Unknown") if version is not None: self._version = safe_version(version) self.py_version = py_version @@ -2908,7 +2915,7 @@ class Distribution: match = EGG_NAME(basename) if match: project_name, version, py_version, platform = match.group( - 'name', 'ver', 'pyver', 'plat' + "name", "ver", "pyver", "plat" ) return cls( location, @@ -2930,8 +2937,8 @@ class Distribution: self.precedence, self.key, self.location, - self.py_version or '', - self.platform or '', + self.py_version or "", + self.platform or "", ) def __hash__(self): @@ -3047,7 +3054,7 @@ class Distribution: for extra in list(filter(None, dm)): new_extra: str | None = extra reqs = dm.pop(extra) - new_extra, _, marker = extra.partition(':') + new_extra, _, marker = extra.partition(":") fails_marker = marker and ( invalid_marker(marker) or not evaluate_marker(marker) ) @@ -3060,7 +3067,7 @@ class Distribution: def _build_dep_map(self): dm = {} - for name in 'requires.txt', 'depends.txt': + for name in "requires.txt", "depends.txt": for extra, reqs in split_sections(self._get_metadata(name)): dm.setdefault(extra, []).extend(parse_requirements(reqs)) return dm @@ -3092,7 +3099,7 @@ class Distribution: # Handle exceptions e.g. in case the distribution's metadata # provider doesn't support _get_metadata_path(). except Exception: - return '[could not detect]' + return "[could not detect]" return path @@ -3111,7 +3118,7 @@ class Distribution: self.insert_on(path, replace=replace) if path is sys.path and self.location is not None: fixup_namespace_packages(self.location) - for pkg in self._get_metadata('namespace_packages.txt'): + for pkg in self._get_metadata("namespace_packages.txt"): if pkg in sys.modules: declare_namespace(pkg) @@ -3124,7 +3131,7 @@ class Distribution: ) if self.platform: - filename += '-' + self.platform + filename += "-" + self.platform return filename def __repr__(self): @@ -3135,7 +3142,7 @@ class Distribution: def __str__(self): try: - version = getattr(self, 'version', None) + version = getattr(self, "version", None) except ValueError: version = None version = version or "[unknown version]" @@ -3143,14 +3150,14 @@ class Distribution: def __getattr__(self, attr): """Delegate all unrecognized public attributes to .metadata provider""" - if attr.startswith('_'): + if attr.startswith("_"): raise AttributeError(attr) return getattr(self._provider, attr) def __dir__(self): return list( set(super().__dir__()) - | set(attr for attr in self._provider.__dir__() if not attr.startswith('_')) + | set(attr for attr in self._provider.__dir__() if not attr.startswith("_")) ) @classmethod @@ -3188,7 +3195,7 @@ class Distribution: """Return the entry point map for `group`, or the full entry map""" if not hasattr(self, "_ep_map"): self._ep_map = EntryPoint.parse_map( - self._get_metadata('entry_points.txt'), self + self._get_metadata("entry_points.txt"), self ) if group is not None: return self._ep_map.get(group, {}) @@ -3273,22 +3280,22 @@ class Distribution: return def check_version_conflict(self): - if self.key == 'setuptools': + if self.key == "setuptools": # ignore the inevitable setuptools self-conflicts :( return - nsp = dict.fromkeys(self._get_metadata('namespace_packages.txt')) + nsp = dict.fromkeys(self._get_metadata("namespace_packages.txt")) loc = normalize_path(self.location) - for modname in self._get_metadata('top_level.txt'): + for modname in self._get_metadata("top_level.txt"): if ( modname not in sys.modules or modname in nsp or modname in _namespace_packages ): continue - if modname in ('pkg_resources', 'setuptools', 'site'): + if modname in ("pkg_resources", "setuptools", "site"): continue - fn = getattr(sys.modules[modname], '__file__', None) + fn = getattr(sys.modules[modname], "__file__", None) if fn and ( normalize_path(fn).startswith(loc) or fn.startswith(self.location) ): @@ -3311,12 +3318,12 @@ class Distribution: def clone(self, **kw: str | int | IResourceProvider | None): """Copy this distribution, substituting in any changed keyword args""" - names = 'project_name version py_version platform location precedence' + names = "project_name version py_version platform location precedence" for attr in names.split(): kw.setdefault(attr, getattr(self, attr, None)) - kw.setdefault('metadata', self._provider) + kw.setdefault("metadata", self._provider) # Unsafely unpacking. But keeping **kw for backwards and subclassing compatibility - return self.__class__(**kw) # type:ignore[arg-type] + return self.__class__(**kw) # type: ignore[arg-type] @property def extras(self): @@ -3348,7 +3355,7 @@ class DistInfoDistribution(Distribution): w/metadata, .dist-info style. """ - PKG_INFO = 'METADATA' + PKG_INFO = "METADATA" EQEQ = re.compile(r"([\(,])\s*(\d.*?)\s*([,\)])") @property @@ -3375,18 +3382,18 @@ class DistInfoDistribution(Distribution): reqs: list[Requirement] = [] # Including any condition expressions - for req in self._parsed_pkg_info.get_all('Requires-Dist') or []: + for req in self._parsed_pkg_info.get_all("Requires-Dist") or []: reqs.extend(parse_requirements(req)) def reqs_for_extra(extra): for req in reqs: - if not req.marker or req.marker.evaluate({'extra': extra}): + if not req.marker or req.marker.evaluate({"extra": extra}): yield req common = types.MappingProxyType(dict.fromkeys(reqs_for_extra(None))) self.__dep_map[None].extend(common) - for extra in self._parsed_pkg_info.get_all('Provides-Extra') or []: + for extra in self._parsed_pkg_info.get_all("Provides-Extra") or []: s_extra = safe_extra(extra.strip()) self.__dep_map[s_extra] = [ r for r in reqs_for_extra(extra) if r not in common @@ -3396,9 +3403,9 @@ class DistInfoDistribution(Distribution): _distributionImpl = { - '.egg': Distribution, - '.egg-info': EggInfoDistribution, - '.dist-info': DistInfoDistribution, + ".egg": Distribution, + ".egg-info": EggInfoDistribution, + ".dist-info": DistInfoDistribution, } @@ -3489,7 +3496,7 @@ def _always_object(classes): def _find_adapter(registry: Mapping[type, _AdapterT], ob: object) -> _AdapterT: """Return an adapter factory for `ob` from `registry`""" - types = _always_object(inspect.getmro(getattr(ob, '__class__', type(ob)))) + types = _always_object(inspect.getmro(getattr(ob, "__class__", type(ob)))) for t in types: if t in registry: return registry[t] @@ -3612,11 +3619,11 @@ def _call_aside(f, *args, **kwargs): def _initialize(g=globals()): "Set up global resource manager (deliberately not state-saved)" manager = ResourceManager() - g['_manager'] = manager + g["_manager"] = manager g.update( (name, getattr(manager, name)) for name in dir(manager) - if not name.startswith('_') + if not name.startswith("_") ) @@ -3633,7 +3640,7 @@ def _initialize_master_working_set(): Invocation by other packages is unsupported and done at their own risk. """ - working_set = _declare_state('object', 'working_set', WorkingSet._build_master()) + working_set = _declare_state("object", "working_set", WorkingSet._build_master()) require = working_set.require iter_entry_points = working_set.iter_entry_points diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py index 92efc85..23d7298 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py @@ -23,7 +23,9 @@ class Android(PlatformDirsABC): @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``/data/user///files/``""" - return self._append_app_name_and_version(cast("str", _android_folder()), "files") + return self._append_app_name_and_version( + cast("str", _android_folder()), "files" + ) @property def site_data_dir(self) -> str: @@ -36,7 +38,9 @@ class Android(PlatformDirsABC): :return: config directory tied to the user, e.g. \ ``/data/user///shared_prefs/`` """ - return self._append_app_name_and_version(cast("str", _android_folder()), "shared_prefs") + return self._append_app_name_and_version( + cast("str", _android_folder()), "shared_prefs" + ) @property def site_config_dir(self) -> str: @@ -46,7 +50,9 @@ class Android(PlatformDirsABC): @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g.,``/data/user///cache/``""" - return self._append_app_name_and_version(cast("str", _android_folder()), "cache") + return self._append_app_name_and_version( + cast("str", _android_folder()), "cache" + ) @property def site_cache_dir(self) -> str: @@ -127,7 +133,9 @@ def _android_folder() -> str | None: # noqa: C901 # First try to get a path to android app using python4android (if available)... from android import mActivity # noqa: PLC0415 - context = cast("android.content.Context", mActivity.getApplicationContext()) # noqa: F821 + context = cast( + "android.content.Context", mActivity.getApplicationContext() + ) # noqa: F821 result = context.getFilesDir().getParentFile().getAbsolutePath() except Exception: # noqa: BLE001 result = None @@ -173,7 +181,9 @@ def _android_documents_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - documents_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + documents_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DOCUMENTS + ).getAbsolutePath() except Exception: # noqa: BLE001 documents_dir = "/storage/emulated/0/Documents" @@ -189,7 +199,9 @@ def _android_downloads_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - downloads_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + downloads_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DOWNLOADS + ).getAbsolutePath() except Exception: # noqa: BLE001 downloads_dir = "/storage/emulated/0/Downloads" @@ -205,7 +217,9 @@ def _android_pictures_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - pictures_dir: str = context.getExternalFilesDir(environment.DIRECTORY_PICTURES).getAbsolutePath() + pictures_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_PICTURES + ).getAbsolutePath() except Exception: # noqa: BLE001 pictures_dir = "/storage/emulated/0/Pictures" @@ -221,7 +235,9 @@ def _android_videos_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - videos_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DCIM).getAbsolutePath() + videos_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DCIM + ).getAbsolutePath() except Exception: # noqa: BLE001 videos_dir = "/storage/emulated/0/DCIM/Camera" @@ -237,7 +253,9 @@ def _android_music_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - music_dir: str = context.getExternalFilesDir(environment.DIRECTORY_MUSIC).getAbsolutePath() + music_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_MUSIC + ).getAbsolutePath() except Exception: # noqa: BLE001 music_dir = "/storage/emulated/0/Music" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py index 30ab368..6469b07 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py @@ -27,7 +27,9 @@ class MacOS(PlatformDirsABC): @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Application Support") + ) # noqa: PTH111 @property def site_data_dir(self) -> str: @@ -41,8 +43,14 @@ class MacOS(PlatformDirsABC): """ is_homebrew = "/opt/python" in sys.prefix homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" - path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/share")] if is_homebrew else [] - path_list.append(self._append_app_name_and_version("/Library/Application Support")) + path_list = ( + [self._append_app_name_and_version(f"{homebrew_prefix}/share")] + if is_homebrew + else [] + ) + path_list.append( + self._append_app_name_and_version("/Library/Application Support") + ) if self.multipath: return os.pathsep.join(path_list) return path_list[0] @@ -65,7 +73,9 @@ class MacOS(PlatformDirsABC): @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Caches") + ) # noqa: PTH111 @property def site_cache_dir(self) -> str: @@ -79,7 +89,11 @@ class MacOS(PlatformDirsABC): """ is_homebrew = "/opt/python" in sys.prefix homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" - path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/var/cache")] if is_homebrew else [] + path_list = ( + [self._append_app_name_and_version(f"{homebrew_prefix}/var/cache")] + if is_homebrew + else [] + ) path_list.append(self._append_app_name_and_version("/Library/Caches")) if self.multipath: return os.pathsep.join(path_list) @@ -98,7 +112,9 @@ class MacOS(PlatformDirsABC): @property def user_log_dir(self) -> str: """:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Logs") + ) # noqa: PTH111 @property def user_documents_dir(self) -> str: @@ -133,7 +149,9 @@ class MacOS(PlatformDirsABC): @property def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Caches/TemporaryItems") + ) # noqa: PTH111 @property def site_runtime_dir(self) -> str: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py index fcf6f03..50030ca 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py @@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '4.5.1' +__version__ = version = "4.5.1" __version_tuple__ = version_tuple = (4, 5, 1) __commit_id__ = commit_id = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py index 8d523a9..d936f71 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py @@ -131,7 +131,9 @@ class Windows(PlatformDirsABC): :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\Temp\\$appauthor\\$appname`` """ - path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) # noqa: PTH118 + path = os.path.normpath( + os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp") + ) # noqa: PTH118 return self._append_parts(path) @property @@ -164,19 +166,29 @@ def get_win_folder_from_env_vars(csidl_name: str) -> str: def get_win_folder_if_csidl_name_not_env_var(csidl_name: str) -> str | None: """Get a folder for a CSIDL name that does not exist as an environment variable.""" if csidl_name == "CSIDL_PERSONAL": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Documents" + ) # noqa: PTH118 if csidl_name == "CSIDL_DOWNLOADS": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Downloads") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Downloads" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYPICTURES": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Pictures") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Pictures" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYVIDEO": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Videos") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Videos" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYMUSIC": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Music") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Music" + ) # noqa: PTH118 return None @@ -204,14 +216,22 @@ def get_win_folder_from_registry(csidl_name: str) -> str: if shell_folder_name is None: msg = f"Unknown CSIDL name: {csidl_name}" raise ValueError(msg) - if sys.platform != "win32": # only needed for mypy type checker to know that this code runs only on Windows + if ( + sys.platform != "win32" + ): # only needed for mypy type checker to know that this code runs only on Windows raise NotImplementedError import winreg # noqa: PLC0415 # Use HKEY_LOCAL_MACHINE for system-wide folders, HKEY_CURRENT_USER for user-specific folders - hkey = winreg.HKEY_LOCAL_MACHINE if csidl_name in machine_names else winreg.HKEY_CURRENT_USER + hkey = ( + winreg.HKEY_LOCAL_MACHINE + if csidl_name in machine_names + else winreg.HKEY_CURRENT_USER + ) - key = winreg.OpenKey(hkey, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") + key = winreg.OpenKey( + hkey, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) directory, _ = winreg.QueryValueEx(key, shell_folder_name) return str(directory) @@ -240,7 +260,9 @@ def get_win_folder_via_ctypes(csidl_name: str) -> str: raise ValueError(msg) buf = ctypes.create_unicode_buffer(1024) - windll = getattr(ctypes, "windll") # noqa: B009 # using getattr to avoid false positive with mypy type checker + windll = getattr( + ctypes, "windll" + ) # noqa: B009 # using getattr to avoid false positive with mypy type checker windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) # Downgrade to short path name if it has high-bit chars. diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py index cb229c9..541e159 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py @@ -1,35 +1,36 @@ """ - Pygments - ~~~~~~~~ +Pygments +~~~~~~~~ - Pygments is a syntax highlighting package written in Python. +Pygments is a syntax highlighting package written in Python. - It is a generic syntax highlighter for general use in all kinds of software - such as forum systems, wikis or other applications that need to prettify - source code. Highlights are: +It is a generic syntax highlighter for general use in all kinds of software +such as forum systems, wikis or other applications that need to prettify +source code. Highlights are: - * a wide range of common languages and markup formats is supported - * special attention is paid to details, increasing quality by a fair amount - * support for new languages and formats are added easily - * a number of output formats, presently HTML, LaTeX, RTF, SVG, all image - formats that PIL supports, and ANSI sequences - * it is usable as a command-line tool and as a library - * ... and it highlights even Brainfuck! +* a wide range of common languages and markup formats is supported +* special attention is paid to details, increasing quality by a fair amount +* support for new languages and formats are added easily +* a number of output formats, presently HTML, LaTeX, RTF, SVG, all image + formats that PIL supports, and ANSI sequences +* it is usable as a command-line tool and as a library +* ... and it highlights even Brainfuck! - The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``. +The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``. - .. _Pygments master branch: - https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev +.. _Pygments master branch: + https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ + from io import StringIO, BytesIO -__version__ = '2.19.2' -__docformat__ = 'restructuredtext' +__version__ = "2.19.2" +__docformat__ = "restructuredtext" -__all__ = ['lex', 'format', 'highlight'] +__all__ = ["lex", "format", "highlight"] def lex(code, lexer): @@ -43,9 +44,9 @@ def lex(code, lexer): except TypeError: # Heuristic to catch a common mistake. from pip._vendor.pygments.lexer import RegexLexer + if isinstance(lexer, type) and issubclass(lexer, RegexLexer): - raise TypeError('lex() argument must be a lexer instance, ' - 'not a class') + raise TypeError("lex() argument must be a lexer instance, " "not a class") raise @@ -60,7 +61,9 @@ def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builti """ try: if not outfile: - realoutfile = getattr(formatter, 'encoding', None) and BytesIO() or StringIO() + realoutfile = ( + getattr(formatter, "encoding", None) and BytesIO() or StringIO() + ) formatter.format(tokens, realoutfile) return realoutfile.getvalue() else: @@ -68,9 +71,11 @@ def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builti except TypeError: # Heuristic to catch a common mistake. from pip._vendor.pygments.formatter import Formatter + if isinstance(formatter, type) and issubclass(formatter, Formatter): - raise TypeError('format() argument must be a formatter instance, ' - 'not a class') + raise TypeError( + "format() argument must be a formatter instance, " "not a class" + ) raise diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py index a2e612f..1982ab0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py @@ -1,11 +1,11 @@ """ - pygments.__main__ - ~~~~~~~~~~~~~~~~~ +pygments.__main__ +~~~~~~~~~~~~~~~~~ - Main entry point for ``python -m pygments``. +Main entry point for ``python -m pygments``. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import sys diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py index ee1ac27..d7793ee 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py @@ -1,11 +1,11 @@ """ - pygments.console - ~~~~~~~~~~~~~~~~ +pygments.console +~~~~~~~~~~~~~~~~ - Format colored console output. +Format colored console output. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ esc = "\x1b[" @@ -21,10 +21,17 @@ codes["underline"] = esc + "04m" codes["blink"] = esc + "05m" codes["overline"] = esc + "06m" -dark_colors = ["black", "red", "green", "yellow", "blue", - "magenta", "cyan", "gray"] -light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue", - "brightmagenta", "brightcyan", "white"] +dark_colors = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "gray"] +light_colors = [ + "brightblack", + "brightred", + "brightgreen", + "brightyellow", + "brightblue", + "brightmagenta", + "brightcyan", + "white", +] x = 30 for dark, light in zip(dark_colors, light_colors): @@ -55,16 +62,16 @@ def ansiformat(attr, text): +color+ blinking color """ result = [] - if attr[:1] == attr[-1:] == '+': - result.append(codes['blink']) + if attr[:1] == attr[-1:] == "+": + result.append(codes["blink"]) attr = attr[1:-1] - if attr[:1] == attr[-1:] == '*': - result.append(codes['bold']) + if attr[:1] == attr[-1:] == "*": + result.append(codes["bold"]) attr = attr[1:-1] - if attr[:1] == attr[-1:] == '_': - result.append(codes['underline']) + if attr[:1] == attr[-1:] == "_": + result.append(codes["underline"]) attr = attr[1:-1] result.append(codes[attr]) result.append(text) - result.append(codes['reset']) - return ''.join(result) + result.append(codes["reset"]) + return "".join(result) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py index 5efff43..fba8610 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py @@ -1,11 +1,11 @@ """ - pygments.filter - ~~~~~~~~~~~~~~~ +pygments.filter +~~~~~~~~~~~~~~~ - Module that implements the default filter. +Module that implements the default filter. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ @@ -15,8 +15,10 @@ def apply_filters(stream, filters, lexer=None): a stream. If lexer is given it's forwarded to the filter, otherwise the filter receives `None`. """ + def _apply(filter_, stream): yield from filter_.filter(lexer, stream) + for filter_ in filters: stream = _apply(filter_, stream) return stream @@ -31,11 +33,15 @@ def simplefilter(f): for ttype, value in stream: yield ttype, value.lower() """ - return type(f.__name__, (FunctionFilter,), { - '__module__': getattr(f, '__module__'), - '__doc__': f.__doc__, - 'function': f, - }) + return type( + f.__name__, + (FunctionFilter,), + { + "__module__": getattr(f, "__module__"), + "__doc__": f.__doc__, + "function": f, + }, + ) class Filter: @@ -58,11 +64,12 @@ class FunctionFilter(Filter): automatically creates subclasses of this class for functions passed to it. """ + function = None def __init__(self, **options): - if not hasattr(self, 'function'): - raise TypeError(f'{self.__class__.__name__!r} used without bound function') + if not hasattr(self, "function"): + raise TypeError(f"{self.__class__.__name__!r} used without bound function") Filter.__init__(self, **options) def filter(self, lexer, stream): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py index 97380c9..2a388ad 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py @@ -1,21 +1,34 @@ """ - pygments.filters - ~~~~~~~~~~~~~~~~ +pygments.filters +~~~~~~~~~~~~~~~~ - Module containing filter lookup functions and default - filters. +Module containing filter lookup functions and default +filters. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pip._vendor.pygments.token import String, Comment, Keyword, Name, Error, Whitespace, \ - string_to_tokentype +from pip._vendor.pygments.token import ( + String, + Comment, + Keyword, + Name, + Error, + Whitespace, + string_to_tokentype, +) from pip._vendor.pygments.filter import Filter -from pip._vendor.pygments.util import get_list_opt, get_int_opt, get_bool_opt, \ - get_choice_opt, ClassNotFound, OptionError +from pip._vendor.pygments.util import ( + get_list_opt, + get_int_opt, + get_bool_opt, + get_choice_opt, + ClassNotFound, + OptionError, +) from pip._vendor.pygments.plugin import find_plugin_filters @@ -39,7 +52,7 @@ def get_filter_by_name(filtername, **options): if cls: return cls(**options) else: - raise ClassNotFound(f'filter {filtername!r} not found') + raise ClassNotFound(f"filter {filtername!r} not found") def get_all_filters(): @@ -49,8 +62,7 @@ def get_all_filters(): yield name -def _replace_special(ttype, value, regex, specialttype, - replacefunc=lambda x: x): +def _replace_special(ttype, value, regex, specialttype, replacefunc=lambda x: x): last = 0 for match in regex.finditer(value): start, end = match.start(), match.end() @@ -77,18 +89,17 @@ class CodeTagFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - tags = get_list_opt(options, 'codetags', - ['XXX', 'TODO', 'FIXME', 'BUG', 'NOTE']) - self.tag_re = re.compile(r'\b({})\b'.format('|'.join([ - re.escape(tag) for tag in tags if tag - ]))) + tags = get_list_opt( + options, "codetags", ["XXX", "TODO", "FIXME", "BUG", "NOTE"] + ) + self.tag_re = re.compile( + r"\b({})\b".format("|".join([re.escape(tag) for tag in tags if tag])) + ) def filter(self, lexer, stream): regex = self.tag_re for ttype, value in stream: - if ttype in String.Doc or \ - ttype in Comment and \ - ttype not in Comment.Preproc: + if ttype in String.Doc or ttype in Comment and ttype not in Comment.Preproc: yield from _replace_special(ttype, value, regex, Comment.Special) else: yield ttype, value @@ -109,571 +120,570 @@ class SymbolFilter(Filter): """ latex_symbols = { - '\\alpha' : '\U000003b1', - '\\beta' : '\U000003b2', - '\\gamma' : '\U000003b3', - '\\delta' : '\U000003b4', - '\\varepsilon' : '\U000003b5', - '\\zeta' : '\U000003b6', - '\\eta' : '\U000003b7', - '\\vartheta' : '\U000003b8', - '\\iota' : '\U000003b9', - '\\kappa' : '\U000003ba', - '\\lambda' : '\U000003bb', - '\\mu' : '\U000003bc', - '\\nu' : '\U000003bd', - '\\xi' : '\U000003be', - '\\pi' : '\U000003c0', - '\\varrho' : '\U000003c1', - '\\sigma' : '\U000003c3', - '\\tau' : '\U000003c4', - '\\upsilon' : '\U000003c5', - '\\varphi' : '\U000003c6', - '\\chi' : '\U000003c7', - '\\psi' : '\U000003c8', - '\\omega' : '\U000003c9', - '\\Gamma' : '\U00000393', - '\\Delta' : '\U00000394', - '\\Theta' : '\U00000398', - '\\Lambda' : '\U0000039b', - '\\Xi' : '\U0000039e', - '\\Pi' : '\U000003a0', - '\\Sigma' : '\U000003a3', - '\\Upsilon' : '\U000003a5', - '\\Phi' : '\U000003a6', - '\\Psi' : '\U000003a8', - '\\Omega' : '\U000003a9', - '\\leftarrow' : '\U00002190', - '\\longleftarrow' : '\U000027f5', - '\\rightarrow' : '\U00002192', - '\\longrightarrow' : '\U000027f6', - '\\Leftarrow' : '\U000021d0', - '\\Longleftarrow' : '\U000027f8', - '\\Rightarrow' : '\U000021d2', - '\\Longrightarrow' : '\U000027f9', - '\\leftrightarrow' : '\U00002194', - '\\longleftrightarrow' : '\U000027f7', - '\\Leftrightarrow' : '\U000021d4', - '\\Longleftrightarrow' : '\U000027fa', - '\\mapsto' : '\U000021a6', - '\\longmapsto' : '\U000027fc', - '\\relbar' : '\U00002500', - '\\Relbar' : '\U00002550', - '\\hookleftarrow' : '\U000021a9', - '\\hookrightarrow' : '\U000021aa', - '\\leftharpoondown' : '\U000021bd', - '\\rightharpoondown' : '\U000021c1', - '\\leftharpoonup' : '\U000021bc', - '\\rightharpoonup' : '\U000021c0', - '\\rightleftharpoons' : '\U000021cc', - '\\leadsto' : '\U0000219d', - '\\downharpoonleft' : '\U000021c3', - '\\downharpoonright' : '\U000021c2', - '\\upharpoonleft' : '\U000021bf', - '\\upharpoonright' : '\U000021be', - '\\restriction' : '\U000021be', - '\\uparrow' : '\U00002191', - '\\Uparrow' : '\U000021d1', - '\\downarrow' : '\U00002193', - '\\Downarrow' : '\U000021d3', - '\\updownarrow' : '\U00002195', - '\\Updownarrow' : '\U000021d5', - '\\langle' : '\U000027e8', - '\\rangle' : '\U000027e9', - '\\lceil' : '\U00002308', - '\\rceil' : '\U00002309', - '\\lfloor' : '\U0000230a', - '\\rfloor' : '\U0000230b', - '\\flqq' : '\U000000ab', - '\\frqq' : '\U000000bb', - '\\bot' : '\U000022a5', - '\\top' : '\U000022a4', - '\\wedge' : '\U00002227', - '\\bigwedge' : '\U000022c0', - '\\vee' : '\U00002228', - '\\bigvee' : '\U000022c1', - '\\forall' : '\U00002200', - '\\exists' : '\U00002203', - '\\nexists' : '\U00002204', - '\\neg' : '\U000000ac', - '\\Box' : '\U000025a1', - '\\Diamond' : '\U000025c7', - '\\vdash' : '\U000022a2', - '\\models' : '\U000022a8', - '\\dashv' : '\U000022a3', - '\\surd' : '\U0000221a', - '\\le' : '\U00002264', - '\\ge' : '\U00002265', - '\\ll' : '\U0000226a', - '\\gg' : '\U0000226b', - '\\lesssim' : '\U00002272', - '\\gtrsim' : '\U00002273', - '\\lessapprox' : '\U00002a85', - '\\gtrapprox' : '\U00002a86', - '\\in' : '\U00002208', - '\\notin' : '\U00002209', - '\\subset' : '\U00002282', - '\\supset' : '\U00002283', - '\\subseteq' : '\U00002286', - '\\supseteq' : '\U00002287', - '\\sqsubset' : '\U0000228f', - '\\sqsupset' : '\U00002290', - '\\sqsubseteq' : '\U00002291', - '\\sqsupseteq' : '\U00002292', - '\\cap' : '\U00002229', - '\\bigcap' : '\U000022c2', - '\\cup' : '\U0000222a', - '\\bigcup' : '\U000022c3', - '\\sqcup' : '\U00002294', - '\\bigsqcup' : '\U00002a06', - '\\sqcap' : '\U00002293', - '\\Bigsqcap' : '\U00002a05', - '\\setminus' : '\U00002216', - '\\propto' : '\U0000221d', - '\\uplus' : '\U0000228e', - '\\bigplus' : '\U00002a04', - '\\sim' : '\U0000223c', - '\\doteq' : '\U00002250', - '\\simeq' : '\U00002243', - '\\approx' : '\U00002248', - '\\asymp' : '\U0000224d', - '\\cong' : '\U00002245', - '\\equiv' : '\U00002261', - '\\Join' : '\U000022c8', - '\\bowtie' : '\U00002a1d', - '\\prec' : '\U0000227a', - '\\succ' : '\U0000227b', - '\\preceq' : '\U0000227c', - '\\succeq' : '\U0000227d', - '\\parallel' : '\U00002225', - '\\mid' : '\U000000a6', - '\\pm' : '\U000000b1', - '\\mp' : '\U00002213', - '\\times' : '\U000000d7', - '\\div' : '\U000000f7', - '\\cdot' : '\U000022c5', - '\\star' : '\U000022c6', - '\\circ' : '\U00002218', - '\\dagger' : '\U00002020', - '\\ddagger' : '\U00002021', - '\\lhd' : '\U000022b2', - '\\rhd' : '\U000022b3', - '\\unlhd' : '\U000022b4', - '\\unrhd' : '\U000022b5', - '\\triangleleft' : '\U000025c3', - '\\triangleright' : '\U000025b9', - '\\triangle' : '\U000025b3', - '\\triangleq' : '\U0000225c', - '\\oplus' : '\U00002295', - '\\bigoplus' : '\U00002a01', - '\\otimes' : '\U00002297', - '\\bigotimes' : '\U00002a02', - '\\odot' : '\U00002299', - '\\bigodot' : '\U00002a00', - '\\ominus' : '\U00002296', - '\\oslash' : '\U00002298', - '\\dots' : '\U00002026', - '\\cdots' : '\U000022ef', - '\\sum' : '\U00002211', - '\\prod' : '\U0000220f', - '\\coprod' : '\U00002210', - '\\infty' : '\U0000221e', - '\\int' : '\U0000222b', - '\\oint' : '\U0000222e', - '\\clubsuit' : '\U00002663', - '\\diamondsuit' : '\U00002662', - '\\heartsuit' : '\U00002661', - '\\spadesuit' : '\U00002660', - '\\aleph' : '\U00002135', - '\\emptyset' : '\U00002205', - '\\nabla' : '\U00002207', - '\\partial' : '\U00002202', - '\\flat' : '\U0000266d', - '\\natural' : '\U0000266e', - '\\sharp' : '\U0000266f', - '\\angle' : '\U00002220', - '\\copyright' : '\U000000a9', - '\\textregistered' : '\U000000ae', - '\\textonequarter' : '\U000000bc', - '\\textonehalf' : '\U000000bd', - '\\textthreequarters' : '\U000000be', - '\\textordfeminine' : '\U000000aa', - '\\textordmasculine' : '\U000000ba', - '\\euro' : '\U000020ac', - '\\pounds' : '\U000000a3', - '\\yen' : '\U000000a5', - '\\textcent' : '\U000000a2', - '\\textcurrency' : '\U000000a4', - '\\textdegree' : '\U000000b0', + "\\alpha": "\U000003b1", + "\\beta": "\U000003b2", + "\\gamma": "\U000003b3", + "\\delta": "\U000003b4", + "\\varepsilon": "\U000003b5", + "\\zeta": "\U000003b6", + "\\eta": "\U000003b7", + "\\vartheta": "\U000003b8", + "\\iota": "\U000003b9", + "\\kappa": "\U000003ba", + "\\lambda": "\U000003bb", + "\\mu": "\U000003bc", + "\\nu": "\U000003bd", + "\\xi": "\U000003be", + "\\pi": "\U000003c0", + "\\varrho": "\U000003c1", + "\\sigma": "\U000003c3", + "\\tau": "\U000003c4", + "\\upsilon": "\U000003c5", + "\\varphi": "\U000003c6", + "\\chi": "\U000003c7", + "\\psi": "\U000003c8", + "\\omega": "\U000003c9", + "\\Gamma": "\U00000393", + "\\Delta": "\U00000394", + "\\Theta": "\U00000398", + "\\Lambda": "\U0000039b", + "\\Xi": "\U0000039e", + "\\Pi": "\U000003a0", + "\\Sigma": "\U000003a3", + "\\Upsilon": "\U000003a5", + "\\Phi": "\U000003a6", + "\\Psi": "\U000003a8", + "\\Omega": "\U000003a9", + "\\leftarrow": "\U00002190", + "\\longleftarrow": "\U000027f5", + "\\rightarrow": "\U00002192", + "\\longrightarrow": "\U000027f6", + "\\Leftarrow": "\U000021d0", + "\\Longleftarrow": "\U000027f8", + "\\Rightarrow": "\U000021d2", + "\\Longrightarrow": "\U000027f9", + "\\leftrightarrow": "\U00002194", + "\\longleftrightarrow": "\U000027f7", + "\\Leftrightarrow": "\U000021d4", + "\\Longleftrightarrow": "\U000027fa", + "\\mapsto": "\U000021a6", + "\\longmapsto": "\U000027fc", + "\\relbar": "\U00002500", + "\\Relbar": "\U00002550", + "\\hookleftarrow": "\U000021a9", + "\\hookrightarrow": "\U000021aa", + "\\leftharpoondown": "\U000021bd", + "\\rightharpoondown": "\U000021c1", + "\\leftharpoonup": "\U000021bc", + "\\rightharpoonup": "\U000021c0", + "\\rightleftharpoons": "\U000021cc", + "\\leadsto": "\U0000219d", + "\\downharpoonleft": "\U000021c3", + "\\downharpoonright": "\U000021c2", + "\\upharpoonleft": "\U000021bf", + "\\upharpoonright": "\U000021be", + "\\restriction": "\U000021be", + "\\uparrow": "\U00002191", + "\\Uparrow": "\U000021d1", + "\\downarrow": "\U00002193", + "\\Downarrow": "\U000021d3", + "\\updownarrow": "\U00002195", + "\\Updownarrow": "\U000021d5", + "\\langle": "\U000027e8", + "\\rangle": "\U000027e9", + "\\lceil": "\U00002308", + "\\rceil": "\U00002309", + "\\lfloor": "\U0000230a", + "\\rfloor": "\U0000230b", + "\\flqq": "\U000000ab", + "\\frqq": "\U000000bb", + "\\bot": "\U000022a5", + "\\top": "\U000022a4", + "\\wedge": "\U00002227", + "\\bigwedge": "\U000022c0", + "\\vee": "\U00002228", + "\\bigvee": "\U000022c1", + "\\forall": "\U00002200", + "\\exists": "\U00002203", + "\\nexists": "\U00002204", + "\\neg": "\U000000ac", + "\\Box": "\U000025a1", + "\\Diamond": "\U000025c7", + "\\vdash": "\U000022a2", + "\\models": "\U000022a8", + "\\dashv": "\U000022a3", + "\\surd": "\U0000221a", + "\\le": "\U00002264", + "\\ge": "\U00002265", + "\\ll": "\U0000226a", + "\\gg": "\U0000226b", + "\\lesssim": "\U00002272", + "\\gtrsim": "\U00002273", + "\\lessapprox": "\U00002a85", + "\\gtrapprox": "\U00002a86", + "\\in": "\U00002208", + "\\notin": "\U00002209", + "\\subset": "\U00002282", + "\\supset": "\U00002283", + "\\subseteq": "\U00002286", + "\\supseteq": "\U00002287", + "\\sqsubset": "\U0000228f", + "\\sqsupset": "\U00002290", + "\\sqsubseteq": "\U00002291", + "\\sqsupseteq": "\U00002292", + "\\cap": "\U00002229", + "\\bigcap": "\U000022c2", + "\\cup": "\U0000222a", + "\\bigcup": "\U000022c3", + "\\sqcup": "\U00002294", + "\\bigsqcup": "\U00002a06", + "\\sqcap": "\U00002293", + "\\Bigsqcap": "\U00002a05", + "\\setminus": "\U00002216", + "\\propto": "\U0000221d", + "\\uplus": "\U0000228e", + "\\bigplus": "\U00002a04", + "\\sim": "\U0000223c", + "\\doteq": "\U00002250", + "\\simeq": "\U00002243", + "\\approx": "\U00002248", + "\\asymp": "\U0000224d", + "\\cong": "\U00002245", + "\\equiv": "\U00002261", + "\\Join": "\U000022c8", + "\\bowtie": "\U00002a1d", + "\\prec": "\U0000227a", + "\\succ": "\U0000227b", + "\\preceq": "\U0000227c", + "\\succeq": "\U0000227d", + "\\parallel": "\U00002225", + "\\mid": "\U000000a6", + "\\pm": "\U000000b1", + "\\mp": "\U00002213", + "\\times": "\U000000d7", + "\\div": "\U000000f7", + "\\cdot": "\U000022c5", + "\\star": "\U000022c6", + "\\circ": "\U00002218", + "\\dagger": "\U00002020", + "\\ddagger": "\U00002021", + "\\lhd": "\U000022b2", + "\\rhd": "\U000022b3", + "\\unlhd": "\U000022b4", + "\\unrhd": "\U000022b5", + "\\triangleleft": "\U000025c3", + "\\triangleright": "\U000025b9", + "\\triangle": "\U000025b3", + "\\triangleq": "\U0000225c", + "\\oplus": "\U00002295", + "\\bigoplus": "\U00002a01", + "\\otimes": "\U00002297", + "\\bigotimes": "\U00002a02", + "\\odot": "\U00002299", + "\\bigodot": "\U00002a00", + "\\ominus": "\U00002296", + "\\oslash": "\U00002298", + "\\dots": "\U00002026", + "\\cdots": "\U000022ef", + "\\sum": "\U00002211", + "\\prod": "\U0000220f", + "\\coprod": "\U00002210", + "\\infty": "\U0000221e", + "\\int": "\U0000222b", + "\\oint": "\U0000222e", + "\\clubsuit": "\U00002663", + "\\diamondsuit": "\U00002662", + "\\heartsuit": "\U00002661", + "\\spadesuit": "\U00002660", + "\\aleph": "\U00002135", + "\\emptyset": "\U00002205", + "\\nabla": "\U00002207", + "\\partial": "\U00002202", + "\\flat": "\U0000266d", + "\\natural": "\U0000266e", + "\\sharp": "\U0000266f", + "\\angle": "\U00002220", + "\\copyright": "\U000000a9", + "\\textregistered": "\U000000ae", + "\\textonequarter": "\U000000bc", + "\\textonehalf": "\U000000bd", + "\\textthreequarters": "\U000000be", + "\\textordfeminine": "\U000000aa", + "\\textordmasculine": "\U000000ba", + "\\euro": "\U000020ac", + "\\pounds": "\U000000a3", + "\\yen": "\U000000a5", + "\\textcent": "\U000000a2", + "\\textcurrency": "\U000000a4", + "\\textdegree": "\U000000b0", } isabelle_symbols = { - '\\' : '\U0001d7ec', - '\\' : '\U0001d7ed', - '\\' : '\U0001d7ee', - '\\' : '\U0001d7ef', - '\\' : '\U0001d7f0', - '\\' : '\U0001d7f1', - '\\' : '\U0001d7f2', - '\\' : '\U0001d7f3', - '\\' : '\U0001d7f4', - '\\' : '\U0001d7f5', - '\\' : '\U0001d49c', - '\\' : '\U0000212c', - '\\' : '\U0001d49e', - '\\' : '\U0001d49f', - '\\' : '\U00002130', - '\\' : '\U00002131', - '\\' : '\U0001d4a2', - '\\' : '\U0000210b', - '\\' : '\U00002110', - '\\' : '\U0001d4a5', - '\\' : '\U0001d4a6', - '\\' : '\U00002112', - '\\' : '\U00002133', - '\\' : '\U0001d4a9', - '\\' : '\U0001d4aa', - '\\

' : '\U0001d5c9', - '\\' : '\U0001d5ca', - '\\' : '\U0001d5cb', - '\\' : '\U0001d5cc', - '\\' : '\U0001d5cd', - '\\' : '\U0001d5ce', - '\\' : '\U0001d5cf', - '\\' : '\U0001d5d0', - '\\' : '\U0001d5d1', - '\\' : '\U0001d5d2', - '\\' : '\U0001d5d3', - '\\' : '\U0001d504', - '\\' : '\U0001d505', - '\\' : '\U0000212d', - '\\

' : '\U0001d507', - '\\' : '\U0001d508', - '\\' : '\U0001d509', - '\\' : '\U0001d50a', - '\\' : '\U0000210c', - '\\' : '\U00002111', - '\\' : '\U0001d50d', - '\\' : '\U0001d50e', - '\\' : '\U0001d50f', - '\\' : '\U0001d510', - '\\' : '\U0001d511', - '\\' : '\U0001d512', - '\\' : '\U0001d513', - '\\' : '\U0001d514', - '\\' : '\U0000211c', - '\\' : '\U0001d516', - '\\' : '\U0001d517', - '\\' : '\U0001d518', - '\\' : '\U0001d519', - '\\' : '\U0001d51a', - '\\' : '\U0001d51b', - '\\' : '\U0001d51c', - '\\' : '\U00002128', - '\\' : '\U0001d51e', - '\\' : '\U0001d51f', - '\\' : '\U0001d520', - '\\
' : '\U0001d521', - '\\' : '\U0001d522', - '\\' : '\U0001d523', - '\\' : '\U0001d524', - '\\' : '\U0001d525', - '\\' : '\U0001d526', - '\\' : '\U0001d527', - '\\' : '\U0001d528', - '\\' : '\U0001d529', - '\\' : '\U0001d52a', - '\\' : '\U0001d52b', - '\\' : '\U0001d52c', - '\\' : '\U0001d52d', - '\\' : '\U0001d52e', - '\\' : '\U0001d52f', - '\\' : '\U0001d530', - '\\' : '\U0001d531', - '\\' : '\U0001d532', - '\\' : '\U0001d533', - '\\' : '\U0001d534', - '\\' : '\U0001d535', - '\\' : '\U0001d536', - '\\' : '\U0001d537', - '\\' : '\U000003b1', - '\\' : '\U000003b2', - '\\' : '\U000003b3', - '\\' : '\U000003b4', - '\\' : '\U000003b5', - '\\' : '\U000003b6', - '\\' : '\U000003b7', - '\\' : '\U000003b8', - '\\' : '\U000003b9', - '\\' : '\U000003ba', - '\\' : '\U000003bb', - '\\' : '\U000003bc', - '\\' : '\U000003bd', - '\\' : '\U000003be', - '\\' : '\U000003c0', - '\\' : '\U000003c1', - '\\' : '\U000003c3', - '\\' : '\U000003c4', - '\\' : '\U000003c5', - '\\' : '\U000003c6', - '\\' : '\U000003c7', - '\\' : '\U000003c8', - '\\' : '\U000003c9', - '\\' : '\U00000393', - '\\' : '\U00000394', - '\\' : '\U00000398', - '\\' : '\U0000039b', - '\\' : '\U0000039e', - '\\' : '\U000003a0', - '\\' : '\U000003a3', - '\\' : '\U000003a5', - '\\' : '\U000003a6', - '\\' : '\U000003a8', - '\\' : '\U000003a9', - '\\' : '\U0001d539', - '\\' : '\U00002102', - '\\' : '\U00002115', - '\\' : '\U0000211a', - '\\' : '\U0000211d', - '\\' : '\U00002124', - '\\' : '\U00002190', - '\\' : '\U000027f5', - '\\' : '\U00002192', - '\\' : '\U000027f6', - '\\' : '\U000021d0', - '\\' : '\U000027f8', - '\\' : '\U000021d2', - '\\' : '\U000027f9', - '\\' : '\U00002194', - '\\' : '\U000027f7', - '\\' : '\U000021d4', - '\\' : '\U000027fa', - '\\' : '\U000021a6', - '\\' : '\U000027fc', - '\\' : '\U00002500', - '\\' : '\U00002550', - '\\' : '\U000021a9', - '\\' : '\U000021aa', - '\\' : '\U000021bd', - '\\' : '\U000021c1', - '\\' : '\U000021bc', - '\\' : '\U000021c0', - '\\' : '\U000021cc', - '\\' : '\U0000219d', - '\\' : '\U000021c3', - '\\' : '\U000021c2', - '\\' : '\U000021bf', - '\\' : '\U000021be', - '\\' : '\U000021be', - '\\' : '\U00002237', - '\\' : '\U00002191', - '\\' : '\U000021d1', - '\\' : '\U00002193', - '\\' : '\U000021d3', - '\\' : '\U00002195', - '\\' : '\U000021d5', - '\\' : '\U000027e8', - '\\' : '\U000027e9', - '\\' : '\U00002308', - '\\' : '\U00002309', - '\\' : '\U0000230a', - '\\' : '\U0000230b', - '\\' : '\U00002987', - '\\' : '\U00002988', - '\\' : '\U000027e6', - '\\' : '\U000027e7', - '\\' : '\U00002983', - '\\' : '\U00002984', - '\\' : '\U000000ab', - '\\' : '\U000000bb', - '\\' : '\U000022a5', - '\\' : '\U000022a4', - '\\' : '\U00002227', - '\\' : '\U000022c0', - '\\' : '\U00002228', - '\\' : '\U000022c1', - '\\' : '\U00002200', - '\\' : '\U00002203', - '\\' : '\U00002204', - '\\' : '\U000000ac', - '\\' : '\U000025a1', - '\\' : '\U000025c7', - '\\' : '\U000022a2', - '\\' : '\U000022a8', - '\\' : '\U000022a9', - '\\' : '\U000022ab', - '\\' : '\U000022a3', - '\\' : '\U0000221a', - '\\' : '\U00002264', - '\\' : '\U00002265', - '\\' : '\U0000226a', - '\\' : '\U0000226b', - '\\' : '\U00002272', - '\\' : '\U00002273', - '\\' : '\U00002a85', - '\\' : '\U00002a86', - '\\' : '\U00002208', - '\\' : '\U00002209', - '\\' : '\U00002282', - '\\' : '\U00002283', - '\\' : '\U00002286', - '\\' : '\U00002287', - '\\' : '\U0000228f', - '\\' : '\U00002290', - '\\' : '\U00002291', - '\\' : '\U00002292', - '\\' : '\U00002229', - '\\' : '\U000022c2', - '\\' : '\U0000222a', - '\\' : '\U000022c3', - '\\' : '\U00002294', - '\\' : '\U00002a06', - '\\' : '\U00002293', - '\\' : '\U00002a05', - '\\' : '\U00002216', - '\\' : '\U0000221d', - '\\' : '\U0000228e', - '\\' : '\U00002a04', - '\\' : '\U00002260', - '\\' : '\U0000223c', - '\\' : '\U00002250', - '\\' : '\U00002243', - '\\' : '\U00002248', - '\\' : '\U0000224d', - '\\' : '\U00002245', - '\\' : '\U00002323', - '\\' : '\U00002261', - '\\' : '\U00002322', - '\\' : '\U000022c8', - '\\' : '\U00002a1d', - '\\' : '\U0000227a', - '\\' : '\U0000227b', - '\\' : '\U0000227c', - '\\' : '\U0000227d', - '\\' : '\U00002225', - '\\' : '\U000000a6', - '\\' : '\U000000b1', - '\\' : '\U00002213', - '\\' : '\U000000d7', - '\\
' : '\U000000f7', - '\\' : '\U000022c5', - '\\' : '\U000022c6', - '\\' : '\U00002219', - '\\' : '\U00002218', - '\\' : '\U00002020', - '\\' : '\U00002021', - '\\' : '\U000022b2', - '\\' : '\U000022b3', - '\\' : '\U000022b4', - '\\' : '\U000022b5', - '\\' : '\U000025c3', - '\\' : '\U000025b9', - '\\' : '\U000025b3', - '\\' : '\U0000225c', - '\\' : '\U00002295', - '\\' : '\U00002a01', - '\\' : '\U00002297', - '\\' : '\U00002a02', - '\\' : '\U00002299', - '\\' : '\U00002a00', - '\\' : '\U00002296', - '\\' : '\U00002298', - '\\' : '\U00002026', - '\\' : '\U000022ef', - '\\' : '\U00002211', - '\\' : '\U0000220f', - '\\' : '\U00002210', - '\\' : '\U0000221e', - '\\' : '\U0000222b', - '\\' : '\U0000222e', - '\\' : '\U00002663', - '\\' : '\U00002662', - '\\' : '\U00002661', - '\\' : '\U00002660', - '\\' : '\U00002135', - '\\' : '\U00002205', - '\\' : '\U00002207', - '\\' : '\U00002202', - '\\' : '\U0000266d', - '\\' : '\U0000266e', - '\\' : '\U0000266f', - '\\' : '\U00002220', - '\\' : '\U000000a9', - '\\' : '\U000000ae', - '\\' : '\U000000ad', - '\\' : '\U000000af', - '\\' : '\U000000bc', - '\\' : '\U000000bd', - '\\' : '\U000000be', - '\\' : '\U000000aa', - '\\' : '\U000000ba', - '\\
' : '\U000000a7', - '\\' : '\U000000b6', - '\\' : '\U000000a1', - '\\' : '\U000000bf', - '\\' : '\U000020ac', - '\\' : '\U000000a3', - '\\' : '\U000000a5', - '\\' : '\U000000a2', - '\\' : '\U000000a4', - '\\' : '\U000000b0', - '\\' : '\U00002a3f', - '\\' : '\U00002127', - '\\' : '\U000025ca', - '\\' : '\U00002118', - '\\' : '\U00002240', - '\\' : '\U000022c4', - '\\' : '\U000000b4', - '\\' : '\U00000131', - '\\' : '\U000000a8', - '\\' : '\U000000b8', - '\\' : '\U000002dd', - '\\' : '\U000003f5', - '\\' : '\U000023ce', - '\\' : '\U00002039', - '\\' : '\U0000203a', - '\\' : '\U00002302', - '\\<^sub>' : '\U000021e9', - '\\<^sup>' : '\U000021e7', - '\\<^bold>' : '\U00002759', - '\\<^bsub>' : '\U000021d8', - '\\<^esub>' : '\U000021d9', - '\\<^bsup>' : '\U000021d7', - '\\<^esup>' : '\U000021d6', + "\\": "\U0001d7ec", + "\\": "\U0001d7ed", + "\\": "\U0001d7ee", + "\\": "\U0001d7ef", + "\\": "\U0001d7f0", + "\\": "\U0001d7f1", + "\\": "\U0001d7f2", + "\\": "\U0001d7f3", + "\\": "\U0001d7f4", + "\\": "\U0001d7f5", + "\\": "\U0001d49c", + "\\": "\U0000212c", + "\\": "\U0001d49e", + "\\": "\U0001d49f", + "\\": "\U00002130", + "\\": "\U00002131", + "\\": "\U0001d4a2", + "\\": "\U0000210b", + "\\": "\U00002110", + "\\": "\U0001d4a5", + "\\": "\U0001d4a6", + "\\": "\U00002112", + "\\": "\U00002133", + "\\": "\U0001d4a9", + "\\": "\U0001d4aa", + "\\

": "\U0001d5c9", + "\\": "\U0001d5ca", + "\\": "\U0001d5cb", + "\\": "\U0001d5cc", + "\\": "\U0001d5cd", + "\\": "\U0001d5ce", + "\\": "\U0001d5cf", + "\\": "\U0001d5d0", + "\\": "\U0001d5d1", + "\\": "\U0001d5d2", + "\\": "\U0001d5d3", + "\\": "\U0001d504", + "\\": "\U0001d505", + "\\": "\U0000212d", + "\\

": "\U0001d507", + "\\": "\U0001d508", + "\\": "\U0001d509", + "\\": "\U0001d50a", + "\\": "\U0000210c", + "\\": "\U00002111", + "\\": "\U0001d50d", + "\\": "\U0001d50e", + "\\": "\U0001d50f", + "\\": "\U0001d510", + "\\": "\U0001d511", + "\\": "\U0001d512", + "\\": "\U0001d513", + "\\": "\U0001d514", + "\\": "\U0000211c", + "\\": "\U0001d516", + "\\": "\U0001d517", + "\\": "\U0001d518", + "\\": "\U0001d519", + "\\": "\U0001d51a", + "\\": "\U0001d51b", + "\\": "\U0001d51c", + "\\": "\U00002128", + "\\": "\U0001d51e", + "\\": "\U0001d51f", + "\\": "\U0001d520", + "\\
": "\U0001d521", + "\\": "\U0001d522", + "\\": "\U0001d523", + "\\": "\U0001d524", + "\\": "\U0001d525", + "\\": "\U0001d526", + "\\": "\U0001d527", + "\\": "\U0001d528", + "\\": "\U0001d529", + "\\": "\U0001d52a", + "\\": "\U0001d52b", + "\\": "\U0001d52c", + "\\": "\U0001d52d", + "\\": "\U0001d52e", + "\\": "\U0001d52f", + "\\": "\U0001d530", + "\\": "\U0001d531", + "\\": "\U0001d532", + "\\": "\U0001d533", + "\\": "\U0001d534", + "\\": "\U0001d535", + "\\": "\U0001d536", + "\\": "\U0001d537", + "\\": "\U000003b1", + "\\": "\U000003b2", + "\\": "\U000003b3", + "\\": "\U000003b4", + "\\": "\U000003b5", + "\\": "\U000003b6", + "\\": "\U000003b7", + "\\": "\U000003b8", + "\\": "\U000003b9", + "\\": "\U000003ba", + "\\": "\U000003bb", + "\\": "\U000003bc", + "\\": "\U000003bd", + "\\": "\U000003be", + "\\": "\U000003c0", + "\\": "\U000003c1", + "\\": "\U000003c3", + "\\": "\U000003c4", + "\\": "\U000003c5", + "\\": "\U000003c6", + "\\": "\U000003c7", + "\\": "\U000003c8", + "\\": "\U000003c9", + "\\": "\U00000393", + "\\": "\U00000394", + "\\": "\U00000398", + "\\": "\U0000039b", + "\\": "\U0000039e", + "\\": "\U000003a0", + "\\": "\U000003a3", + "\\": "\U000003a5", + "\\": "\U000003a6", + "\\": "\U000003a8", + "\\": "\U000003a9", + "\\": "\U0001d539", + "\\": "\U00002102", + "\\": "\U00002115", + "\\": "\U0000211a", + "\\": "\U0000211d", + "\\": "\U00002124", + "\\": "\U00002190", + "\\": "\U000027f5", + "\\": "\U00002192", + "\\": "\U000027f6", + "\\": "\U000021d0", + "\\": "\U000027f8", + "\\": "\U000021d2", + "\\": "\U000027f9", + "\\": "\U00002194", + "\\": "\U000027f7", + "\\": "\U000021d4", + "\\": "\U000027fa", + "\\": "\U000021a6", + "\\": "\U000027fc", + "\\": "\U00002500", + "\\": "\U00002550", + "\\": "\U000021a9", + "\\": "\U000021aa", + "\\": "\U000021bd", + "\\": "\U000021c1", + "\\": "\U000021bc", + "\\": "\U000021c0", + "\\": "\U000021cc", + "\\": "\U0000219d", + "\\": "\U000021c3", + "\\": "\U000021c2", + "\\": "\U000021bf", + "\\": "\U000021be", + "\\": "\U000021be", + "\\": "\U00002237", + "\\": "\U00002191", + "\\": "\U000021d1", + "\\": "\U00002193", + "\\": "\U000021d3", + "\\": "\U00002195", + "\\": "\U000021d5", + "\\": "\U000027e8", + "\\": "\U000027e9", + "\\": "\U00002308", + "\\": "\U00002309", + "\\": "\U0000230a", + "\\": "\U0000230b", + "\\": "\U00002987", + "\\": "\U00002988", + "\\": "\U000027e6", + "\\": "\U000027e7", + "\\": "\U00002983", + "\\": "\U00002984", + "\\": "\U000000ab", + "\\": "\U000000bb", + "\\": "\U000022a5", + "\\": "\U000022a4", + "\\": "\U00002227", + "\\": "\U000022c0", + "\\": "\U00002228", + "\\": "\U000022c1", + "\\": "\U00002200", + "\\": "\U00002203", + "\\": "\U00002204", + "\\": "\U000000ac", + "\\": "\U000025a1", + "\\": "\U000025c7", + "\\": "\U000022a2", + "\\": "\U000022a8", + "\\": "\U000022a9", + "\\": "\U000022ab", + "\\": "\U000022a3", + "\\": "\U0000221a", + "\\": "\U00002264", + "\\": "\U00002265", + "\\": "\U0000226a", + "\\": "\U0000226b", + "\\": "\U00002272", + "\\": "\U00002273", + "\\": "\U00002a85", + "\\": "\U00002a86", + "\\": "\U00002208", + "\\": "\U00002209", + "\\": "\U00002282", + "\\": "\U00002283", + "\\": "\U00002286", + "\\": "\U00002287", + "\\": "\U0000228f", + "\\": "\U00002290", + "\\": "\U00002291", + "\\": "\U00002292", + "\\": "\U00002229", + "\\": "\U000022c2", + "\\": "\U0000222a", + "\\": "\U000022c3", + "\\": "\U00002294", + "\\": "\U00002a06", + "\\": "\U00002293", + "\\": "\U00002a05", + "\\": "\U00002216", + "\\": "\U0000221d", + "\\": "\U0000228e", + "\\": "\U00002a04", + "\\": "\U00002260", + "\\": "\U0000223c", + "\\": "\U00002250", + "\\": "\U00002243", + "\\": "\U00002248", + "\\": "\U0000224d", + "\\": "\U00002245", + "\\": "\U00002323", + "\\": "\U00002261", + "\\": "\U00002322", + "\\": "\U000022c8", + "\\": "\U00002a1d", + "\\": "\U0000227a", + "\\": "\U0000227b", + "\\": "\U0000227c", + "\\": "\U0000227d", + "\\": "\U00002225", + "\\": "\U000000a6", + "\\": "\U000000b1", + "\\": "\U00002213", + "\\": "\U000000d7", + "\\
": "\U000000f7", + "\\": "\U000022c5", + "\\": "\U000022c6", + "\\": "\U00002219", + "\\": "\U00002218", + "\\": "\U00002020", + "\\": "\U00002021", + "\\": "\U000022b2", + "\\": "\U000022b3", + "\\": "\U000022b4", + "\\": "\U000022b5", + "\\": "\U000025c3", + "\\": "\U000025b9", + "\\": "\U000025b3", + "\\": "\U0000225c", + "\\": "\U00002295", + "\\": "\U00002a01", + "\\": "\U00002297", + "\\": "\U00002a02", + "\\": "\U00002299", + "\\": "\U00002a00", + "\\": "\U00002296", + "\\": "\U00002298", + "\\": "\U00002026", + "\\": "\U000022ef", + "\\": "\U00002211", + "\\": "\U0000220f", + "\\": "\U00002210", + "\\": "\U0000221e", + "\\": "\U0000222b", + "\\": "\U0000222e", + "\\": "\U00002663", + "\\": "\U00002662", + "\\": "\U00002661", + "\\": "\U00002660", + "\\": "\U00002135", + "\\": "\U00002205", + "\\": "\U00002207", + "\\": "\U00002202", + "\\": "\U0000266d", + "\\": "\U0000266e", + "\\": "\U0000266f", + "\\": "\U00002220", + "\\": "\U000000a9", + "\\": "\U000000ae", + "\\": "\U000000ad", + "\\": "\U000000af", + "\\": "\U000000bc", + "\\": "\U000000bd", + "\\": "\U000000be", + "\\": "\U000000aa", + "\\": "\U000000ba", + "\\
": "\U000000a7", + "\\": "\U000000b6", + "\\": "\U000000a1", + "\\": "\U000000bf", + "\\": "\U000020ac", + "\\": "\U000000a3", + "\\": "\U000000a5", + "\\": "\U000000a2", + "\\": "\U000000a4", + "\\": "\U000000b0", + "\\": "\U00002a3f", + "\\": "\U00002127", + "\\": "\U000025ca", + "\\": "\U00002118", + "\\": "\U00002240", + "\\": "\U000022c4", + "\\": "\U000000b4", + "\\": "\U00000131", + "\\": "\U000000a8", + "\\": "\U000000b8", + "\\": "\U000002dd", + "\\": "\U000003f5", + "\\": "\U000023ce", + "\\": "\U00002039", + "\\": "\U0000203a", + "\\": "\U00002302", + "\\<^sub>": "\U000021e9", + "\\<^sup>": "\U000021e7", + "\\<^bold>": "\U00002759", + "\\<^bsub>": "\U000021d8", + "\\<^esub>": "\U000021d9", + "\\<^bsup>": "\U000021d7", + "\\<^esup>": "\U000021d6", } - lang_map = {'isabelle' : isabelle_symbols, 'latex' : latex_symbols} + lang_map = {"isabelle": isabelle_symbols, "latex": latex_symbols} def __init__(self, **options): Filter.__init__(self, **options) - lang = get_choice_opt(options, 'lang', - ['isabelle', 'latex'], 'isabelle') + lang = get_choice_opt(options, "lang", ["isabelle", "latex"], "isabelle") self.symbols = self.lang_map[lang] def filter(self, lexer, stream): @@ -700,8 +710,9 @@ class KeywordCaseFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - case = get_choice_opt(options, 'case', - ['lower', 'upper', 'capitalize'], 'lower') + case = get_choice_opt( + options, "case", ["lower", "upper", "capitalize"], "lower" + ) self.convert = getattr(str, case) def filter(self, lexer, stream): @@ -738,8 +749,8 @@ class NameHighlightFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - self.names = set(get_list_opt(options, 'names', [])) - tokentype = options.get('tokentype') + self.names = set(get_list_opt(options, "names", [])) + tokentype = options.get("tokentype") if tokentype: self.tokentype = string_to_tokentype(tokentype) else: @@ -771,13 +782,13 @@ class RaiseOnErrorTokenFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - self.exception = options.get('excclass', ErrorToken) + self.exception = options.get("excclass", ErrorToken) try: # issubclass() will raise TypeError if first argument is not a class if not issubclass(self.exception, Exception): raise TypeError except TypeError: - raise OptionError('excclass option is not an exception class') + raise OptionError("excclass option is not an exception class") def filter(self, lexer, stream): for ttype, value in stream: @@ -818,50 +829,49 @@ class VisibleWhitespaceFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - for name, default in [('spaces', '·'), - ('tabs', '»'), - ('newlines', '¶')]: + for name, default in [("spaces", "·"), ("tabs", "»"), ("newlines", "¶")]: opt = options.get(name, False) if isinstance(opt, str) and len(opt) == 1: setattr(self, name, opt) else: - setattr(self, name, (opt and default or '')) - tabsize = get_int_opt(options, 'tabsize', 8) + setattr(self, name, (opt and default or "")) + tabsize = get_int_opt(options, "tabsize", 8) if self.tabs: - self.tabs += ' ' * (tabsize - 1) + self.tabs += " " * (tabsize - 1) if self.newlines: - self.newlines += '\n' - self.wstt = get_bool_opt(options, 'wstokentype', True) + self.newlines += "\n" + self.wstt = get_bool_opt(options, "wstokentype", True) def filter(self, lexer, stream): if self.wstt: - spaces = self.spaces or ' ' - tabs = self.tabs or '\t' - newlines = self.newlines or '\n' - regex = re.compile(r'\s') + spaces = self.spaces or " " + tabs = self.tabs or "\t" + newlines = self.newlines or "\n" + regex = re.compile(r"\s") def replacefunc(wschar): - if wschar == ' ': + if wschar == " ": return spaces - elif wschar == '\t': + elif wschar == "\t": return tabs - elif wschar == '\n': + elif wschar == "\n": return newlines return wschar for ttype, value in stream: - yield from _replace_special(ttype, value, regex, Whitespace, - replacefunc) + yield from _replace_special( + ttype, value, regex, Whitespace, replacefunc + ) else: spaces, tabs, newlines = self.spaces, self.tabs, self.newlines # simpler processing for ttype, value in stream: if spaces: - value = value.replace(' ', spaces) + value = value.replace(" ", spaces) if tabs: - value = value.replace('\t', tabs) + value = value.replace("\t", tabs) if newlines: - value = value.replace('\n', newlines) + value = value.replace("\n", newlines) yield ttype, value @@ -879,28 +889,29 @@ class GobbleFilter(Filter): .. versionadded:: 1.2 """ + def __init__(self, **options): Filter.__init__(self, **options) - self.n = get_int_opt(options, 'n', 0) + self.n = get_int_opt(options, "n", 0) def gobble(self, value, left): if left < len(value): return value[left:], 0 else: - return '', left - len(value) + return "", left - len(value) def filter(self, lexer, stream): n = self.n left = n # How many characters left to gobble. for ttype, value in stream: # Remove ``left`` tokens from first line, ``n`` from all others. - parts = value.split('\n') - (parts[0], left) = self.gobble(parts[0], left) + parts = value.split("\n") + parts[0], left = self.gobble(parts[0], left) for i in range(1, len(parts)): - (parts[i], left) = self.gobble(parts[i], n) - value = '\n'.join(parts) + parts[i], left = self.gobble(parts[i], n) + value = "\n".join(parts) - if value != '': + if value != "": yield ttype, value @@ -910,6 +921,7 @@ class TokenMergeFilter(Filter): .. versionadded:: 1.2 """ + def __init__(self, **options): Filter.__init__(self, **options) @@ -929,12 +941,12 @@ class TokenMergeFilter(Filter): FILTERS = { - 'codetagify': CodeTagFilter, - 'keywordcase': KeywordCaseFilter, - 'highlight': NameHighlightFilter, - 'raiseonerror': RaiseOnErrorTokenFilter, - 'whitespace': VisibleWhitespaceFilter, - 'gobble': GobbleFilter, - 'tokenmerge': TokenMergeFilter, - 'symbols': SymbolFilter, + "codetagify": CodeTagFilter, + "keywordcase": KeywordCaseFilter, + "highlight": NameHighlightFilter, + "raiseonerror": RaiseOnErrorTokenFilter, + "whitespace": VisibleWhitespaceFilter, + "gobble": GobbleFilter, + "tokenmerge": TokenMergeFilter, + "symbols": SymbolFilter, } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py index 0041e41..ec68171 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py @@ -1,11 +1,11 @@ """ - pygments.formatter - ~~~~~~~~~~~~~~~~~~ +pygments.formatter +~~~~~~~~~~~~~~~~~~ - Base formatter class. +Base formatter class. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import codecs @@ -13,7 +13,7 @@ import codecs from pip._vendor.pygments.util import get_bool_opt from pip._vendor.pygments.styles import get_style_by_name -__all__ = ['Formatter'] +__all__ = ["Formatter"] def _lookup_style(style): @@ -86,17 +86,17 @@ class Formatter: and if you override it, you should first process your own options, then call the base class implementation. """ - self.style = _lookup_style(options.get('style', 'default')) - self.full = get_bool_opt(options, 'full', False) - self.title = options.get('title', '') - self.encoding = options.get('encoding', None) or None - if self.encoding in ('guess', 'chardet'): + self.style = _lookup_style(options.get("style", "default")) + self.full = get_bool_opt(options, "full", False) + self.title = options.get("title", "") + self.encoding = options.get("encoding", None) or None + if self.encoding in ("guess", "chardet"): # can happen for e.g. pygmentize -O encoding=guess - self.encoding = 'utf-8' - self.encoding = options.get('outencoding') or self.encoding + self.encoding = "utf-8" + self.encoding = options.get("outencoding") or self.encoding self.options = options - def get_style_defs(self, arg=''): + def get_style_defs(self, arg=""): """ This method must return statements or declarations suitable to define the current style for subsequent highlighted text (e.g. CSS classes @@ -109,7 +109,7 @@ class Formatter: This method is called by the ``-S`` :doc:`command-line option `, the `arg` is then given by the ``-a`` option. """ - return '' + return "" def format(self, tokensource, outfile): """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py index 014f2ee..ed16522 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py @@ -1,11 +1,11 @@ """ - pygments.formatters - ~~~~~~~~~~~~~~~~~~~ +pygments.formatters +~~~~~~~~~~~~~~~~~~~ - Pygments formatters. +Pygments formatters. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -18,8 +18,12 @@ from pip._vendor.pygments.formatters._mapping import FORMATTERS from pip._vendor.pygments.plugin import find_plugin_formatters from pip._vendor.pygments.util import ClassNotFound -__all__ = ['get_formatter_by_name', 'get_formatter_for_filename', - 'get_all_formatters', 'load_formatter_from_file'] + list(FORMATTERS) +__all__ = [ + "get_formatter_by_name", + "get_formatter_for_filename", + "get_all_formatters", + "load_formatter_from_file", +] + list(FORMATTERS) _formatter_cache = {} # classes by name _pattern_cache = {} @@ -35,7 +39,7 @@ def _fn_matches(fn, glob): def _load_formatters(module_name): """Load a formatter (and all others in the module too).""" - mod = __import__(module_name, None, None, ['__all__']) + mod = __import__(module_name, None, None, ["__all__"]) for formatter_name in mod.__all__: cls = getattr(mod, formatter_name) _formatter_cache[cls.name] = cls @@ -99,20 +103,20 @@ def load_formatter_from_file(filename, formattername="CustomFormatter", **option try: # This empty dict will contain the namespace for the exec'd file custom_namespace = {} - with open(filename, 'rb') as f: + with open(filename, "rb") as f: exec(f.read(), custom_namespace) # Retrieve the class `formattername` from that namespace if formattername not in custom_namespace: - raise ClassNotFound(f'no valid {formattername} class found in {filename}') + raise ClassNotFound(f"no valid {formattername} class found in {filename}") formatter_class = custom_namespace[formattername] # And finally instantiate it with the options return formatter_class(**options) except OSError as err: - raise ClassNotFound(f'cannot read {filename}: {err}') + raise ClassNotFound(f"cannot read {filename}: {err}") except ClassNotFound: raise except Exception as err: - raise ClassNotFound(f'error when loading custom formatter: {err}') + raise ClassNotFound(f"error when loading custom formatter: {err}") def get_formatter_for_filename(fn, **options): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py index 72ca840..80188ab 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py @@ -2,22 +2,130 @@ # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead. FORMATTERS = { - 'BBCodeFormatter': ('pygments.formatters.bbcode', 'BBCode', ('bbcode', 'bb'), (), 'Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.'), - 'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'GifImageFormatter': ('pygments.formatters.img', 'img_gif', ('gif',), ('*.gif',), 'Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'GroffFormatter': ('pygments.formatters.groff', 'groff', ('groff', 'troff', 'roff'), (), 'Format tokens with groff escapes to change their color and font style.'), - 'HtmlFormatter': ('pygments.formatters.html', 'HTML', ('html',), ('*.html', '*.htm'), "Format tokens as HTML 4 ```` tags. By default, the content is enclosed in a ``
`` tag, itself wrapped in a ``
`` tag (but see the `nowrap` option). The ``
``'s CSS class can be set by the `cssclass` option."), - 'IRCFormatter': ('pygments.formatters.irc', 'IRC', ('irc', 'IRC'), (), 'Format tokens with IRC color sequences'), - 'ImageFormatter': ('pygments.formatters.img', 'img', ('img', 'IMG', 'png'), ('*.png',), 'Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'JpgImageFormatter': ('pygments.formatters.img', 'img_jpg', ('jpg', 'jpeg'), ('*.jpg',), 'Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'LatexFormatter': ('pygments.formatters.latex', 'LaTeX', ('latex', 'tex'), ('*.tex',), 'Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.'), - 'NullFormatter': ('pygments.formatters.other', 'Text only', ('text', 'null'), ('*.txt',), 'Output the text unchanged without any formatting.'), - 'PangoMarkupFormatter': ('pygments.formatters.pangomarkup', 'Pango Markup', ('pango', 'pangomarkup'), (), 'Format tokens as Pango Markup code. It can then be rendered to an SVG.'), - 'RawTokenFormatter': ('pygments.formatters.other', 'Raw tokens', ('raw', 'tokens'), ('*.raw',), 'Format tokens as a raw representation for storing token streams.'), - 'RtfFormatter': ('pygments.formatters.rtf', 'RTF', ('rtf',), ('*.rtf',), 'Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.'), - 'SvgFormatter': ('pygments.formatters.svg', 'SVG', ('svg',), ('*.svg',), 'Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ```` element with explicit ``x`` and ``y`` coordinates containing ```` elements with the individual token styles.'), - 'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TerminalFormatter': ('pygments.formatters.terminal', 'Terminal', ('terminal', 'console'), (), 'Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TerminalTrueColorFormatter': ('pygments.formatters.terminal256', 'TerminalTrueColor', ('terminal16m', 'console16m', '16m'), (), 'Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.'), + "BBCodeFormatter": ( + "pygments.formatters.bbcode", + "BBCode", + ("bbcode", "bb"), + (), + "Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.", + ), + "BmpImageFormatter": ( + "pygments.formatters.img", + "img_bmp", + ("bmp", "bitmap"), + ("*.bmp",), + "Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "GifImageFormatter": ( + "pygments.formatters.img", + "img_gif", + ("gif",), + ("*.gif",), + "Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "GroffFormatter": ( + "pygments.formatters.groff", + "groff", + ("groff", "troff", "roff"), + (), + "Format tokens with groff escapes to change their color and font style.", + ), + "HtmlFormatter": ( + "pygments.formatters.html", + "HTML", + ("html",), + ("*.html", "*.htm"), + "Format tokens as HTML 4 ```` tags. By default, the content is enclosed in a ``
`` tag, itself wrapped in a ``
`` tag (but see the `nowrap` option). The ``
``'s CSS class can be set by the `cssclass` option.", + ), + "IRCFormatter": ( + "pygments.formatters.irc", + "IRC", + ("irc", "IRC"), + (), + "Format tokens with IRC color sequences", + ), + "ImageFormatter": ( + "pygments.formatters.img", + "img", + ("img", "IMG", "png"), + ("*.png",), + "Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "JpgImageFormatter": ( + "pygments.formatters.img", + "img_jpg", + ("jpg", "jpeg"), + ("*.jpg",), + "Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "LatexFormatter": ( + "pygments.formatters.latex", + "LaTeX", + ("latex", "tex"), + ("*.tex",), + "Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.", + ), + "NullFormatter": ( + "pygments.formatters.other", + "Text only", + ("text", "null"), + ("*.txt",), + "Output the text unchanged without any formatting.", + ), + "PangoMarkupFormatter": ( + "pygments.formatters.pangomarkup", + "Pango Markup", + ("pango", "pangomarkup"), + (), + "Format tokens as Pango Markup code. It can then be rendered to an SVG.", + ), + "RawTokenFormatter": ( + "pygments.formatters.other", + "Raw tokens", + ("raw", "tokens"), + ("*.raw",), + "Format tokens as a raw representation for storing token streams.", + ), + "RtfFormatter": ( + "pygments.formatters.rtf", + "RTF", + ("rtf",), + ("*.rtf",), + "Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.", + ), + "SvgFormatter": ( + "pygments.formatters.svg", + "SVG", + ("svg",), + ("*.svg",), + "Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ```` element with explicit ``x`` and ``y`` coordinates containing ```` elements with the individual token styles.", + ), + "Terminal256Formatter": ( + "pygments.formatters.terminal256", + "Terminal256", + ("terminal256", "console256", "256"), + (), + "Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TerminalFormatter": ( + "pygments.formatters.terminal", + "Terminal", + ("terminal", "console"), + (), + "Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TerminalTrueColorFormatter": ( + "pygments.formatters.terminal256", + "TerminalTrueColor", + ("terminal16m", "console16m", "16m"), + (), + "Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TestcaseFormatter": ( + "pygments.formatters.other", + "Testcase", + ("testcase",), + (), + "Format tokens as appropriate for a new testcase.", + ), } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py index c05aa81..98466e3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py @@ -1,11 +1,11 @@ """ - pygments.lexer - ~~~~~~~~~~~~~~ +pygments.lexer +~~~~~~~~~~~~~~ - Base lexer classes. +Base lexer classes. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -15,21 +15,41 @@ import time from pip._vendor.pygments.filter import apply_filters, Filter from pip._vendor.pygments.filters import get_filter_by_name from pip._vendor.pygments.token import Error, Text, Other, Whitespace, _TokenType -from pip._vendor.pygments.util import get_bool_opt, get_int_opt, get_list_opt, \ - make_analysator, Future, guess_decode +from pip._vendor.pygments.util import ( + get_bool_opt, + get_int_opt, + get_list_opt, + make_analysator, + Future, + guess_decode, +) from pip._vendor.pygments.regexopt import regex_opt -__all__ = ['Lexer', 'RegexLexer', 'ExtendedRegexLexer', 'DelegatingLexer', - 'LexerContext', 'include', 'inherit', 'bygroups', 'using', 'this', - 'default', 'words', 'line_re'] +__all__ = [ + "Lexer", + "RegexLexer", + "ExtendedRegexLexer", + "DelegatingLexer", + "LexerContext", + "include", + "inherit", + "bygroups", + "using", + "this", + "default", + "words", + "line_re", +] -line_re = re.compile('.*?\n') +line_re = re.compile(".*?\n") -_encoding_map = [(b'\xef\xbb\xbf', 'utf-8'), - (b'\xff\xfe\0\0', 'utf-32'), - (b'\0\0\xfe\xff', 'utf-32be'), - (b'\xff\xfe', 'utf-16'), - (b'\xfe\xff', 'utf-16be')] +_encoding_map = [ + (b"\xef\xbb\xbf", "utf-8"), + (b"\xff\xfe\0\0", "utf-32"), + (b"\0\0\xfe\xff", "utf-32be"), + (b"\xff\xfe", "utf-16"), + (b"\xfe\xff", "utf-16be"), +] _default_analyse = staticmethod(lambda x: 0.0) @@ -41,8 +61,8 @@ class LexerMeta(type): """ def __new__(mcs, name, bases, d): - if 'analyse_text' in d: - d['analyse_text'] = make_analysator(d['analyse_text']) + if "analyse_text" in d: + d["analyse_text"] = make_analysator(d["analyse_text"]) return type.__new__(mcs, name, bases, d) @@ -162,21 +182,21 @@ class Lexer(metaclass=LexerMeta): available to help with that, see `Utilities`_. """ self.options = options - self.stripnl = get_bool_opt(options, 'stripnl', True) - self.stripall = get_bool_opt(options, 'stripall', False) - self.ensurenl = get_bool_opt(options, 'ensurenl', True) - self.tabsize = get_int_opt(options, 'tabsize', 0) - self.encoding = options.get('encoding', 'guess') - self.encoding = options.get('inencoding') or self.encoding + self.stripnl = get_bool_opt(options, "stripnl", True) + self.stripall = get_bool_opt(options, "stripall", False) + self.ensurenl = get_bool_opt(options, "ensurenl", True) + self.tabsize = get_int_opt(options, "tabsize", 0) + self.encoding = options.get("encoding", "guess") + self.encoding = options.get("inencoding") or self.encoding self.filters = [] - for filter_ in get_list_opt(options, 'filters', ()): + for filter_ in get_list_opt(options, "filters", ()): self.add_filter(filter_) def __repr__(self): if self.options: - return f'' + return f"" else: - return f'' + return f"" def add_filter(self, filter_, **options): """ @@ -207,48 +227,49 @@ class Lexer(metaclass=LexerMeta): """Apply preprocessing such as decoding the input, removing BOM and normalizing newlines.""" if not isinstance(text, str): - if self.encoding == 'guess': + if self.encoding == "guess": text, _ = guess_decode(text) - elif self.encoding == 'chardet': + elif self.encoding == "chardet": try: # pip vendoring note: this code is not reachable by pip, # removed import of chardet to make it clear. - raise ImportError('chardet is not vendored by pip') + raise ImportError("chardet is not vendored by pip") except ImportError as e: - raise ImportError('To enable chardet encoding guessing, ' - 'please install the chardet library ' - 'from http://chardet.feedparser.org/') from e + raise ImportError( + "To enable chardet encoding guessing, " + "please install the chardet library " + "from http://chardet.feedparser.org/" + ) from e # check for BOM first decoded = None for bom, encoding in _encoding_map: if text.startswith(bom): - decoded = text[len(bom):].decode(encoding, 'replace') + decoded = text[len(bom) :].decode(encoding, "replace") break # no BOM found, so use chardet if decoded is None: enc = chardet.detect(text[:1024]) # Guess using first 1KB - decoded = text.decode(enc.get('encoding') or 'utf-8', - 'replace') + decoded = text.decode(enc.get("encoding") or "utf-8", "replace") text = decoded else: text = text.decode(self.encoding) - if text.startswith('\ufeff'): - text = text[len('\ufeff'):] + if text.startswith("\ufeff"): + text = text[len("\ufeff") :] else: - if text.startswith('\ufeff'): - text = text[len('\ufeff'):] + if text.startswith("\ufeff"): + text = text[len("\ufeff") :] # text now *is* a unicode string - text = text.replace('\r\n', '\n') - text = text.replace('\r', '\n') + text = text.replace("\r\n", "\n") + text = text.replace("\r", "\n") if self.stripall: text = text.strip() elif self.stripnl: - text = text.strip('\n') + text = text.strip("\n") if self.tabsize > 0: text = text.expandtabs(self.tabsize) - if self.ensurenl and not text.endswith('\n'): - text += '\n' + if self.ensurenl and not text.endswith("\n"): + text += "\n" return text @@ -271,6 +292,7 @@ class Lexer(metaclass=LexerMeta): def streamer(): for _, t, v in self.get_tokens_unprocessed(text): yield t, v + stream = streamer() if not unfiltered: stream = apply_filters(stream, self.filters, self) @@ -305,7 +327,7 @@ class DelegatingLexer(Lexer): Lexer.__init__(self, **options) def get_tokens_unprocessed(self, text): - buffered = '' + buffered = "" insertions = [] lng_buffer = [] for i, t, v in self.language_lexer.get_tokens_unprocessed(text): @@ -318,8 +340,9 @@ class DelegatingLexer(Lexer): lng_buffer.append((i, t, v)) if lng_buffer: insertions.append((len(buffered), lng_buffer)) - return do_insertions(insertions, - self.root_lexer.get_tokens_unprocessed(buffered)) + return do_insertions( + insertions, self.root_lexer.get_tokens_unprocessed(buffered) + ) # ------------------------------------------------------------------------------ @@ -331,6 +354,7 @@ class include(str): # pylint: disable=invalid-name """ Indicates that a state should include rules from another state. """ + pass @@ -338,8 +362,10 @@ class _inherit: """ Indicates the a state should inherit from its superclass. """ + def __repr__(self): - return 'inherit' + return "inherit" + inherit = _inherit() # pylint: disable=invalid-name @@ -374,7 +400,7 @@ class _PseudoMatch: def group(self, arg=None): if arg: - raise IndexError('No such group') + raise IndexError("No such group") return self._text def groups(self): @@ -388,6 +414,7 @@ def bygroups(*args): """ Callback that yields multiple actions for each group in the match. """ + def callback(lexer, match, ctx=None): for i, action in enumerate(args): if action is None: @@ -401,12 +428,14 @@ def bygroups(*args): if data is not None: if ctx: ctx.pos = match.start(i + 1) - for item in action(lexer, - _PseudoMatch(match.start(i + 1), data), ctx): + for item in action( + lexer, _PseudoMatch(match.start(i + 1), data), ctx + ): if item: yield item if ctx: ctx.pos = match.end() + return callback @@ -416,6 +445,7 @@ class _This: Used by ``using``. """ + this = _This() @@ -433,14 +463,15 @@ def using(_other, **kwargs): Note: For that to work, `_other` must not be an `ExtendedRegexLexer`. """ gt_kwargs = {} - if 'state' in kwargs: - s = kwargs.pop('state') + if "state" in kwargs: + s = kwargs.pop("state") if isinstance(s, (list, tuple)): - gt_kwargs['stack'] = s + gt_kwargs["stack"] = s else: - gt_kwargs['stack'] = ('root', s) + gt_kwargs["stack"] = ("root", s) if _other is this: + def callback(lexer, match, ctx=None): # if keyword arguments are given the callback # function has to create a new lexer instance @@ -455,7 +486,9 @@ def using(_other, **kwargs): yield i + s, t, v if ctx: ctx.pos = match.end() + else: + def callback(lexer, match, ctx=None): # XXX: cache that somehow kwargs.update(lexer.options) @@ -466,6 +499,7 @@ def using(_other, **kwargs): yield i + s, t, v if ctx: ctx.pos = match.end() + return callback @@ -477,6 +511,7 @@ class default: .. versionadded:: 2.0 """ + def __init__(self, state): self.state = state @@ -488,7 +523,8 @@ class words(Future): .. versionadded:: 2.0 """ - def __init__(self, words, prefix='', suffix=''): + + def __init__(self, words, prefix="", suffix=""): self.words = words self.prefix = prefix self.suffix = suffix @@ -511,49 +547,49 @@ class RegexLexerMeta(LexerMeta): def _process_token(cls, token): """Preprocess the token component of a token definition.""" - assert type(token) is _TokenType or callable(token), \ - f'token type must be simple type or callable, not {token!r}' + assert type(token) is _TokenType or callable( + token + ), f"token type must be simple type or callable, not {token!r}" return token def _process_new_state(cls, new_state, unprocessed, processed): """Preprocess the state transition action of a token definition.""" if isinstance(new_state, str): # an existing state - if new_state == '#pop': + if new_state == "#pop": return -1 elif new_state in unprocessed: return (new_state,) - elif new_state == '#push': + elif new_state == "#push": return new_state - elif new_state[:5] == '#pop:': + elif new_state[:5] == "#pop:": return -int(new_state[5:]) else: - assert False, f'unknown new state {new_state!r}' + assert False, f"unknown new state {new_state!r}" elif isinstance(new_state, combined): # combine a new state from existing ones - tmp_state = '_tmp_%d' % cls._tmpname + tmp_state = "_tmp_%d" % cls._tmpname cls._tmpname += 1 itokens = [] for istate in new_state: - assert istate != new_state, f'circular state ref {istate!r}' - itokens.extend(cls._process_state(unprocessed, - processed, istate)) + assert istate != new_state, f"circular state ref {istate!r}" + itokens.extend(cls._process_state(unprocessed, processed, istate)) processed[tmp_state] = itokens return (tmp_state,) elif isinstance(new_state, tuple): # push more than one state for istate in new_state: - assert (istate in unprocessed or - istate in ('#pop', '#push')), \ - 'unknown new state ' + istate + assert istate in unprocessed or istate in ("#pop", "#push"), ( + "unknown new state " + istate + ) return new_state else: - assert False, f'unknown new state def {new_state!r}' + assert False, f"unknown new state def {new_state!r}" def _process_state(cls, unprocessed, processed, state): """Preprocess a single state definition.""" assert isinstance(state, str), f"wrong state name {state!r}" - assert state[0] != '#', f"invalid state name {state!r}" + assert state[0] != "#", f"invalid state name {state!r}" if state in processed: return processed[state] tokens = processed[state] = [] @@ -562,8 +598,7 @@ class RegexLexerMeta(LexerMeta): if isinstance(tdef, include): # it's a state reference assert tdef != state, f"circular state reference {state!r}" - tokens.extend(cls._process_state(unprocessed, processed, - str(tdef))) + tokens.extend(cls._process_state(unprocessed, processed, str(tdef))) continue if isinstance(tdef, _inherit): # should be processed already, but may not in the case of: @@ -572,7 +607,7 @@ class RegexLexerMeta(LexerMeta): continue if isinstance(tdef, default): new_state = cls._process_new_state(tdef.state, unprocessed, processed) - tokens.append((re.compile('').match, None, new_state)) + tokens.append((re.compile("").match, None, new_state)) continue assert type(tdef) is tuple, f"wrong rule def {tdef!r}" @@ -580,15 +615,16 @@ class RegexLexerMeta(LexerMeta): try: rex = cls._process_regex(tdef[0], rflags, state) except Exception as err: - raise ValueError(f"uncompilable regex {tdef[0]!r} in state {state!r} of {cls!r}: {err}") from err + raise ValueError( + f"uncompilable regex {tdef[0]!r} in state {state!r} of {cls!r}: {err}" + ) from err token = cls._process_token(tdef[1]) if len(tdef) == 2: new_state = None else: - new_state = cls._process_new_state(tdef[2], - unprocessed, processed) + new_state = cls._process_new_state(tdef[2], unprocessed, processed) tokens.append((rex, token, new_state)) return tokens @@ -616,7 +652,7 @@ class RegexLexerMeta(LexerMeta): tokens = {} inheritable = {} for c in cls.__mro__: - toks = c.__dict__.get('tokens', {}) + toks = c.__dict__.get("tokens", {}) for state, items in toks.items(): curitems = tokens.get(state) @@ -638,7 +674,7 @@ class RegexLexerMeta(LexerMeta): continue # Replace the "inherit" value with the items - curitems[inherit_ndx:inherit_ndx+1] = items + curitems[inherit_ndx : inherit_ndx + 1] = items try: # N.b. this is the index in items (that is, the superclass # copy), so offset required when storing below. @@ -652,14 +688,14 @@ class RegexLexerMeta(LexerMeta): def __call__(cls, *args, **kwds): """Instantiate cls after preprocessing its token definitions.""" - if '_tokens' not in cls.__dict__: + if "_tokens" not in cls.__dict__: cls._all_tokens = {} cls._tmpname = 0 - if hasattr(cls, 'token_variants') and cls.token_variants: + if hasattr(cls, "token_variants") and cls.token_variants: # don't process yet pass else: - cls._tokens = cls.process_tokendef('', cls.get_tokendefs()) + cls._tokens = cls.process_tokendef("", cls.get_tokendefs()) return type.__call__(cls, *args, **kwds) @@ -699,7 +735,7 @@ class RegexLexer(Lexer, metaclass=RegexLexerMeta): #: current one. tokens = {} - def get_tokens_unprocessed(self, text, stack=('root',)): + def get_tokens_unprocessed(self, text, stack=("root",)): """ Split ``text`` into (tokentype, text) pairs. @@ -723,10 +759,10 @@ class RegexLexer(Lexer, metaclass=RegexLexerMeta): # state transition if isinstance(new_state, tuple): for state in new_state: - if state == '#pop': + if state == "#pop": if len(statestack) > 1: statestack.pop() - elif state == '#push': + elif state == "#push": statestack.append(statestack[-1]) else: statestack.append(state) @@ -738,7 +774,7 @@ class RegexLexer(Lexer, metaclass=RegexLexerMeta): del statestack[1:] else: del statestack[new_state:] - elif new_state == '#push': + elif new_state == "#push": statestack.append(statestack[-1]) else: assert False, f"wrong state def: {new_state!r}" @@ -748,11 +784,11 @@ class RegexLexer(Lexer, metaclass=RegexLexerMeta): # We are here only if all state tokens have been considered # and there was not a match on any of them. try: - if text[pos] == '\n': + if text[pos] == "\n": # at EOL, reset state to "root" - statestack = ['root'] - statetokens = tokendefs['root'] - yield pos, Whitespace, '\n' + statestack = ["root"] + statetokens = tokendefs["root"] + yield pos, Whitespace, "\n" pos += 1 continue yield pos, Error, text[pos] @@ -770,10 +806,10 @@ class LexerContext: self.text = text self.pos = pos self.end = end or len(text) # end=0 not supported ;-) - self.stack = stack or ['root'] + self.stack = stack or ["root"] def __repr__(self): - return f'LexerContext({self.text!r}, {self.pos!r}, {self.stack!r})' + return f"LexerContext({self.text!r}, {self.pos!r}, {self.stack!r})" class ExtendedRegexLexer(RegexLexer): @@ -789,7 +825,7 @@ class ExtendedRegexLexer(RegexLexer): tokendefs = self._tokens if not context: ctx = LexerContext(text, 0) - statetokens = tokendefs['root'] + statetokens = tokendefs["root"] else: ctx = context statetokens = tokendefs[ctx.stack[-1]] @@ -812,10 +848,10 @@ class ExtendedRegexLexer(RegexLexer): # state transition if isinstance(new_state, tuple): for state in new_state: - if state == '#pop': + if state == "#pop": if len(ctx.stack) > 1: ctx.stack.pop() - elif state == '#push': + elif state == "#push": ctx.stack.append(ctx.stack[-1]) else: ctx.stack.append(state) @@ -825,7 +861,7 @@ class ExtendedRegexLexer(RegexLexer): del ctx.stack[1:] else: del ctx.stack[new_state:] - elif new_state == '#push': + elif new_state == "#push": ctx.stack.append(ctx.stack[-1]) else: assert False, f"wrong state def: {new_state!r}" @@ -835,11 +871,11 @@ class ExtendedRegexLexer(RegexLexer): try: if ctx.pos >= ctx.end: break - if text[ctx.pos] == '\n': + if text[ctx.pos] == "\n": # at EOL, reset state to "root" - ctx.stack = ['root'] - statetokens = tokendefs['root'] - yield ctx.pos, Text, '\n' + ctx.stack = ["root"] + statetokens = tokendefs["root"] + yield ctx.pos, Text, "\n" ctx.pos += 1 continue yield ctx.pos, Error, text[ctx.pos] @@ -881,7 +917,7 @@ def do_insertions(insertions, tokens): realpos = i oldi = 0 while insleft and i + len(v) >= index: - tmpval = v[oldi:index - i] + tmpval = v[oldi : index - i] if tmpval: yield realpos, t, tmpval realpos += len(tmpval) @@ -917,8 +953,7 @@ class ProfilingRegexLexerMeta(RegexLexerMeta): def _process_regex(cls, regex, rflags, state): if isinstance(regex, words): - rex = regex_opt(regex.words, prefix=regex.prefix, - suffix=regex.suffix) + rex = regex_opt(regex.words, prefix=regex.prefix, suffix=regex.suffix) else: rex = regex compiled = re.compile(rex, rflags) @@ -931,6 +966,7 @@ class ProfilingRegexLexerMeta(RegexLexerMeta): info[0] += 1 info[1] += t1 - t0 return res + return match_func @@ -940,24 +976,35 @@ class ProfilingRegexLexer(RegexLexer, metaclass=ProfilingRegexLexerMeta): _prof_data = [] _prof_sort_index = 4 # defaults to time per call - def get_tokens_unprocessed(self, text, stack=('root',)): + def get_tokens_unprocessed(self, text, stack=("root",)): # this needs to be a stack, since using(this) will produce nested calls self.__class__._prof_data.append({}) yield from RegexLexer.get_tokens_unprocessed(self, text, stack) rawdata = self.__class__._prof_data.pop() - data = sorted(((s, repr(r).strip('u\'').replace('\\\\', '\\')[:65], - n, 1000 * t, 1000 * t / n) - for ((s, r), (n, t)) in rawdata.items()), - key=lambda x: x[self._prof_sort_index], - reverse=True) + data = sorted( + ( + ( + s, + repr(r).strip("u'").replace("\\\\", "\\")[:65], + n, + 1000 * t, + 1000 * t / n, + ) + for ((s, r), (n, t)) in rawdata.items() + ), + key=lambda x: x[self._prof_sort_index], + reverse=True, + ) sum_total = sum(x[3] for x in data) print() - print('Profiling result for %s lexing %d chars in %.3f ms' % - (self.__class__.__name__, len(text), sum_total)) - print('=' * 110) - print('%-20s %-64s ncalls tottime percall' % ('state', 'regex')) - print('-' * 110) + print( + "Profiling result for %s lexing %d chars in %.3f ms" + % (self.__class__.__name__, len(text), sum_total) + ) + print("=" * 110) + print("%-20s %-64s ncalls tottime percall" % ("state", "regex")) + print("-" * 110) for d in data: - print('%-20s %-65s %5d %8.4f %8.4f' % d) - print('=' * 110) + print("%-20s %-65s %5d %8.4f %8.4f" % d) + print("=" * 110) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py index 49184ec..0fdde21 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py @@ -1,11 +1,11 @@ """ - pygments.lexers - ~~~~~~~~~~~~~~~ +pygments.lexers +~~~~~~~~~~~~~~~ - Pygments lexers. +Pygments lexers. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -20,13 +20,22 @@ from pip._vendor.pygments.plugin import find_plugin_lexers from pip._vendor.pygments.util import ClassNotFound, guess_decode COMPAT = { - 'Python3Lexer': 'PythonLexer', - 'Python3TracebackLexer': 'PythonTracebackLexer', - 'LeanLexer': 'Lean3Lexer', + "Python3Lexer": "PythonLexer", + "Python3TracebackLexer": "PythonTracebackLexer", + "LeanLexer": "Lean3Lexer", } -__all__ = ['get_lexer_by_name', 'get_lexer_for_filename', 'find_lexer_class', - 'guess_lexer', 'load_lexer_from_file'] + list(LEXERS) + list(COMPAT) +__all__ = ( + [ + "get_lexer_by_name", + "get_lexer_for_filename", + "find_lexer_class", + "guess_lexer", + "load_lexer_from_file", + ] + + list(LEXERS) + + list(COMPAT) +) _lexer_cache = {} _pattern_cache = {} @@ -42,7 +51,7 @@ def _fn_matches(fn, glob): def _load_lexers(module_name): """Load a lexer (and all others in the module too).""" - mod = __import__(module_name, None, None, ['__all__']) + mod = __import__(module_name, None, None, ["__all__"]) for lexer_name in mod.__all__: cls = getattr(mod, lexer_name) _lexer_cache[cls.name] = cls @@ -93,7 +102,7 @@ def find_lexer_class_by_name(_alias): .. versionadded:: 2.2 """ if not _alias: - raise ClassNotFound(f'no lexer for alias {_alias!r} found') + raise ClassNotFound(f"no lexer for alias {_alias!r} found") # lookup builtin lexers for module_name, name, aliases, _, _ in LEXERS.values(): if _alias.lower() in aliases: @@ -104,7 +113,7 @@ def find_lexer_class_by_name(_alias): for cls in find_plugin_lexers(): if _alias.lower() in cls.aliases: return cls - raise ClassNotFound(f'no lexer for alias {_alias!r} found') + raise ClassNotFound(f"no lexer for alias {_alias!r} found") def get_lexer_by_name(_alias, **options): @@ -117,7 +126,7 @@ def get_lexer_by_name(_alias, **options): found. """ if not _alias: - raise ClassNotFound(f'no lexer for alias {_alias!r} found') + raise ClassNotFound(f"no lexer for alias {_alias!r} found") # lookup builtin lexers for module_name, name, aliases, _, _ in LEXERS.values(): @@ -129,7 +138,7 @@ def get_lexer_by_name(_alias, **options): for cls in find_plugin_lexers(): if _alias.lower() in cls.aliases: return cls(**options) - raise ClassNotFound(f'no lexer for alias {_alias!r} found') + raise ClassNotFound(f"no lexer for alias {_alias!r} found") def load_lexer_from_file(filename, lexername="CustomLexer", **options): @@ -150,20 +159,20 @@ def load_lexer_from_file(filename, lexername="CustomLexer", **options): try: # This empty dict will contain the namespace for the exec'd file custom_namespace = {} - with open(filename, 'rb') as f: + with open(filename, "rb") as f: exec(f.read(), custom_namespace) # Retrieve the class `lexername` from that namespace if lexername not in custom_namespace: - raise ClassNotFound(f'no valid {lexername} class found in {filename}') + raise ClassNotFound(f"no valid {lexername} class found in {filename}") lexer_class = custom_namespace[lexername] # And finally instantiate it with the options return lexer_class(**options) except OSError as err: - raise ClassNotFound(f'cannot read {filename}: {err}') + raise ClassNotFound(f"cannot read {filename}: {err}") except ClassNotFound: raise except Exception as err: - raise ClassNotFound(f'error when loading custom lexer: {err}') + raise ClassNotFound(f"error when loading custom lexer: {err}") def find_lexer_class_for_filename(_fn, code=None): @@ -194,7 +203,7 @@ def find_lexer_class_for_filename(_fn, code=None): def get_rating(info): cls, filename = info # explicit patterns get a bonus - bonus = '*' not in filename and 0.5 or 0 + bonus = "*" not in filename and 0.5 or 0 # The class _always_ defines analyse_text because it's included in # the Lexer class. The default implementation returns None which # gets turned into 0.0. Run scripts/detect_missing_analyse_text.py @@ -224,7 +233,7 @@ def get_lexer_for_filename(_fn, code=None, **options): """ res = find_lexer_class_for_filename(_fn, code) if not res: - raise ClassNotFound(f'no lexer for filename {_fn!r} found') + raise ClassNotFound(f"no lexer for filename {_fn!r} found") return res(**options) @@ -244,7 +253,7 @@ def get_lexer_for_mimetype(_mime, **options): for cls in find_plugin_lexers(): if _mime in cls.mimetypes: return cls(**options) - raise ClassNotFound(f'no lexer for mimetype {_mime!r} found') + raise ClassNotFound(f"no lexer for mimetype {_mime!r} found") def _iter_lexerclasses(plugins=True): @@ -279,7 +288,7 @@ def guess_lexer_for_filename(_fn, _text, **options): matching_lexers.add(lexer) primary[lexer] = False if not matching_lexers: - raise ClassNotFound(f'no lexer for filename {fn!r} found') + raise ClassNotFound(f"no lexer for filename {fn!r} found") if len(matching_lexers) == 1: return matching_lexers.pop()(**options) result = [] @@ -296,6 +305,7 @@ def guess_lexer_for_filename(_fn, _text, **options): # - priority # - last resort: class name return (t[0], primary[t[1]], t[1].priority, t[1].__name__) + result.sort(key=type_sort) return result[-1][1](**options) @@ -313,9 +323,9 @@ def guess_lexer(_text, **options): """ if not isinstance(_text, str): - inencoding = options.get('inencoding', options.get('encoding')) + inencoding = options.get("inencoding", options.get("encoding")) if inencoding: - _text = _text.decode(inencoding or 'utf8') + _text = _text.decode(inencoding or "utf8") else: _text, _ = guess_decode(_text) @@ -336,7 +346,7 @@ def guess_lexer(_text, **options): if rv > best_lexer[0]: best_lexer[:] = (rv, lexer) if not best_lexer[0] or best_lexer[1] is None: - raise ClassNotFound('no lexer matching the text found') + raise ClassNotFound("no lexer matching the text found") return best_lexer[1](**options) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py index c0d6a8a..59172cb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py @@ -2,601 +2,4278 @@ # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead. LEXERS = { - 'ABAPLexer': ('pip._vendor.pygments.lexers.business', 'ABAP', ('abap',), ('*.abap', '*.ABAP'), ('text/x-abap',)), - 'AMDGPULexer': ('pip._vendor.pygments.lexers.amdgpu', 'AMDGPU', ('amdgpu',), ('*.isa',), ()), - 'APLLexer': ('pip._vendor.pygments.lexers.apl', 'APL', ('apl',), ('*.apl', '*.aplf', '*.aplo', '*.apln', '*.aplc', '*.apli', '*.dyalog'), ()), - 'AbnfLexer': ('pip._vendor.pygments.lexers.grammar_notation', 'ABNF', ('abnf',), ('*.abnf',), ('text/x-abnf',)), - 'ActionScript3Lexer': ('pip._vendor.pygments.lexers.actionscript', 'ActionScript 3', ('actionscript3', 'as3'), ('*.as',), ('application/x-actionscript3', 'text/x-actionscript3', 'text/actionscript3')), - 'ActionScriptLexer': ('pip._vendor.pygments.lexers.actionscript', 'ActionScript', ('actionscript', 'as'), ('*.as',), ('application/x-actionscript', 'text/x-actionscript', 'text/actionscript')), - 'AdaLexer': ('pip._vendor.pygments.lexers.ada', 'Ada', ('ada', 'ada95', 'ada2005'), ('*.adb', '*.ads', '*.ada'), ('text/x-ada',)), - 'AdlLexer': ('pip._vendor.pygments.lexers.archetype', 'ADL', ('adl',), ('*.adl', '*.adls', '*.adlf', '*.adlx'), ()), - 'AgdaLexer': ('pip._vendor.pygments.lexers.haskell', 'Agda', ('agda',), ('*.agda',), ('text/x-agda',)), - 'AheuiLexer': ('pip._vendor.pygments.lexers.esoteric', 'Aheui', ('aheui',), ('*.aheui',), ()), - 'AlloyLexer': ('pip._vendor.pygments.lexers.dsls', 'Alloy', ('alloy',), ('*.als',), ('text/x-alloy',)), - 'AmbientTalkLexer': ('pip._vendor.pygments.lexers.ambient', 'AmbientTalk', ('ambienttalk', 'ambienttalk/2', 'at'), ('*.at',), ('text/x-ambienttalk',)), - 'AmplLexer': ('pip._vendor.pygments.lexers.ampl', 'Ampl', ('ampl',), ('*.run',), ()), - 'Angular2HtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML + Angular2', ('html+ng2',), ('*.ng2',), ()), - 'Angular2Lexer': ('pip._vendor.pygments.lexers.templates', 'Angular2', ('ng2',), (), ()), - 'AntlrActionScriptLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With ActionScript Target', ('antlr-actionscript', 'antlr-as'), ('*.G', '*.g'), ()), - 'AntlrCSharpLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With C# Target', ('antlr-csharp', 'antlr-c#'), ('*.G', '*.g'), ()), - 'AntlrCppLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With CPP Target', ('antlr-cpp',), ('*.G', '*.g'), ()), - 'AntlrJavaLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With Java Target', ('antlr-java',), ('*.G', '*.g'), ()), - 'AntlrLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR', ('antlr',), (), ()), - 'AntlrObjectiveCLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With ObjectiveC Target', ('antlr-objc',), ('*.G', '*.g'), ()), - 'AntlrPerlLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With Perl Target', ('antlr-perl',), ('*.G', '*.g'), ()), - 'AntlrPythonLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With Python Target', ('antlr-python',), ('*.G', '*.g'), ()), - 'AntlrRubyLexer': ('pip._vendor.pygments.lexers.parsers', 'ANTLR With Ruby Target', ('antlr-ruby', 'antlr-rb'), ('*.G', '*.g'), ()), - 'ApacheConfLexer': ('pip._vendor.pygments.lexers.configs', 'ApacheConf', ('apacheconf', 'aconf', 'apache'), ('.htaccess', 'apache.conf', 'apache2.conf'), ('text/x-apacheconf',)), - 'AppleScriptLexer': ('pip._vendor.pygments.lexers.scripting', 'AppleScript', ('applescript',), ('*.applescript',), ()), - 'ArduinoLexer': ('pip._vendor.pygments.lexers.c_like', 'Arduino', ('arduino',), ('*.ino',), ('text/x-arduino',)), - 'ArrowLexer': ('pip._vendor.pygments.lexers.arrow', 'Arrow', ('arrow',), ('*.arw',), ()), - 'ArturoLexer': ('pip._vendor.pygments.lexers.arturo', 'Arturo', ('arturo', 'art'), ('*.art',), ()), - 'AscLexer': ('pip._vendor.pygments.lexers.asc', 'ASCII armored', ('asc', 'pem'), ('*.asc', '*.pem', 'id_dsa', 'id_ecdsa', 'id_ecdsa_sk', 'id_ed25519', 'id_ed25519_sk', 'id_rsa'), ('application/pgp-keys', 'application/pgp-encrypted', 'application/pgp-signature', 'application/pem-certificate-chain')), - 'Asn1Lexer': ('pip._vendor.pygments.lexers.asn1', 'ASN.1', ('asn1',), ('*.asn1',), ()), - 'AspectJLexer': ('pip._vendor.pygments.lexers.jvm', 'AspectJ', ('aspectj',), ('*.aj',), ('text/x-aspectj',)), - 'AsymptoteLexer': ('pip._vendor.pygments.lexers.graphics', 'Asymptote', ('asymptote', 'asy'), ('*.asy',), ('text/x-asymptote',)), - 'AugeasLexer': ('pip._vendor.pygments.lexers.configs', 'Augeas', ('augeas',), ('*.aug',), ()), - 'AutoItLexer': ('pip._vendor.pygments.lexers.automation', 'AutoIt', ('autoit',), ('*.au3',), ('text/x-autoit',)), - 'AutohotkeyLexer': ('pip._vendor.pygments.lexers.automation', 'autohotkey', ('autohotkey', 'ahk'), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)), - 'AwkLexer': ('pip._vendor.pygments.lexers.textedit', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)), - 'BBCBasicLexer': ('pip._vendor.pygments.lexers.basic', 'BBC Basic', ('bbcbasic',), ('*.bbc',), ()), - 'BBCodeLexer': ('pip._vendor.pygments.lexers.markup', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)), - 'BCLexer': ('pip._vendor.pygments.lexers.algebra', 'BC', ('bc',), ('*.bc',), ()), - 'BQNLexer': ('pip._vendor.pygments.lexers.bqn', 'BQN', ('bqn',), ('*.bqn',), ()), - 'BSTLexer': ('pip._vendor.pygments.lexers.bibtex', 'BST', ('bst', 'bst-pybtex'), ('*.bst',), ()), - 'BareLexer': ('pip._vendor.pygments.lexers.bare', 'BARE', ('bare',), ('*.bare',), ()), - 'BaseMakefileLexer': ('pip._vendor.pygments.lexers.make', 'Base Makefile', ('basemake',), (), ()), - 'BashLexer': ('pip._vendor.pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'zsh', 'shell', 'openrc'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '*.exheres-0', '*.exlib', '*.zsh', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', '.kshrc', 'kshrc', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript', 'text/x-shellscript')), - 'BashSessionLexer': ('pip._vendor.pygments.lexers.shell', 'Bash Session', ('console', 'shell-session'), ('*.sh-session', '*.shell-session'), ('application/x-shell-session', 'application/x-sh-session')), - 'BatchLexer': ('pip._vendor.pygments.lexers.shell', 'Batchfile', ('batch', 'bat', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)), - 'BddLexer': ('pip._vendor.pygments.lexers.bdd', 'Bdd', ('bdd',), ('*.feature',), ('text/x-bdd',)), - 'BefungeLexer': ('pip._vendor.pygments.lexers.esoteric', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)), - 'BerryLexer': ('pip._vendor.pygments.lexers.berry', 'Berry', ('berry', 'be'), ('*.be',), ('text/x-berry', 'application/x-berry')), - 'BibTeXLexer': ('pip._vendor.pygments.lexers.bibtex', 'BibTeX', ('bibtex', 'bib'), ('*.bib',), ('text/x-bibtex',)), - 'BlitzBasicLexer': ('pip._vendor.pygments.lexers.basic', 'BlitzBasic', ('blitzbasic', 'b3d', 'bplus'), ('*.bb', '*.decls'), ('text/x-bb',)), - 'BlitzMaxLexer': ('pip._vendor.pygments.lexers.basic', 'BlitzMax', ('blitzmax', 'bmax'), ('*.bmx',), ('text/x-bmx',)), - 'BlueprintLexer': ('pip._vendor.pygments.lexers.blueprint', 'Blueprint', ('blueprint',), ('*.blp',), ('text/x-blueprint',)), - 'BnfLexer': ('pip._vendor.pygments.lexers.grammar_notation', 'BNF', ('bnf',), ('*.bnf',), ('text/x-bnf',)), - 'BoaLexer': ('pip._vendor.pygments.lexers.boa', 'Boa', ('boa',), ('*.boa',), ()), - 'BooLexer': ('pip._vendor.pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)), - 'BoogieLexer': ('pip._vendor.pygments.lexers.verification', 'Boogie', ('boogie',), ('*.bpl',), ()), - 'BrainfuckLexer': ('pip._vendor.pygments.lexers.esoteric', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)), - 'BugsLexer': ('pip._vendor.pygments.lexers.modeling', 'BUGS', ('bugs', 'winbugs', 'openbugs'), ('*.bug',), ()), - 'CAmkESLexer': ('pip._vendor.pygments.lexers.esoteric', 'CAmkES', ('camkes', 'idl4'), ('*.camkes', '*.idl4'), ()), - 'CLexer': ('pip._vendor.pygments.lexers.c_cpp', 'C', ('c',), ('*.c', '*.h', '*.idc', '*.x[bp]m'), ('text/x-chdr', 'text/x-csrc', 'image/x-xbitmap', 'image/x-xpixmap')), - 'CMakeLexer': ('pip._vendor.pygments.lexers.make', 'CMake', ('cmake',), ('*.cmake', 'CMakeLists.txt'), ('text/x-cmake',)), - 'CObjdumpLexer': ('pip._vendor.pygments.lexers.asm', 'c-objdump', ('c-objdump',), ('*.c-objdump',), ('text/x-c-objdump',)), - 'CPSALexer': ('pip._vendor.pygments.lexers.lisp', 'CPSA', ('cpsa',), ('*.cpsa',), ()), - 'CSSUL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'CSS+UL4', ('css+ul4',), ('*.cssul4',), ()), - 'CSharpAspxLexer': ('pip._vendor.pygments.lexers.dotnet', 'aspx-cs', ('aspx-cs',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()), - 'CSharpLexer': ('pip._vendor.pygments.lexers.dotnet', 'C#', ('csharp', 'c#', 'cs'), ('*.cs',), ('text/x-csharp',)), - 'Ca65Lexer': ('pip._vendor.pygments.lexers.asm', 'ca65 assembler', ('ca65',), ('*.s',), ()), - 'CadlLexer': ('pip._vendor.pygments.lexers.archetype', 'cADL', ('cadl',), ('*.cadl',), ()), - 'CapDLLexer': ('pip._vendor.pygments.lexers.esoteric', 'CapDL', ('capdl',), ('*.cdl',), ()), - 'CapnProtoLexer': ('pip._vendor.pygments.lexers.capnproto', "Cap'n Proto", ('capnp',), ('*.capnp',), ()), - 'CarbonLexer': ('pip._vendor.pygments.lexers.carbon', 'Carbon', ('carbon',), ('*.carbon',), ('text/x-carbon',)), - 'CbmBasicV2Lexer': ('pip._vendor.pygments.lexers.basic', 'CBM BASIC V2', ('cbmbas',), ('*.bas',), ()), - 'CddlLexer': ('pip._vendor.pygments.lexers.cddl', 'CDDL', ('cddl',), ('*.cddl',), ('text/x-cddl',)), - 'CeylonLexer': ('pip._vendor.pygments.lexers.jvm', 'Ceylon', ('ceylon',), ('*.ceylon',), ('text/x-ceylon',)), - 'Cfengine3Lexer': ('pip._vendor.pygments.lexers.configs', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()), - 'ChaiscriptLexer': ('pip._vendor.pygments.lexers.scripting', 'ChaiScript', ('chaiscript', 'chai'), ('*.chai',), ('text/x-chaiscript', 'application/x-chaiscript')), - 'ChapelLexer': ('pip._vendor.pygments.lexers.chapel', 'Chapel', ('chapel', 'chpl'), ('*.chpl',), ()), - 'CharmciLexer': ('pip._vendor.pygments.lexers.c_like', 'Charmci', ('charmci',), ('*.ci',), ()), - 'CheetahHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire', 'htmlcheetah'), (), ('text/html+cheetah', 'text/html+spitfire')), - 'CheetahJavascriptLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Cheetah', ('javascript+cheetah', 'js+cheetah', 'javascript+spitfire', 'js+spitfire'), (), ('application/x-javascript+cheetah', 'text/x-javascript+cheetah', 'text/javascript+cheetah', 'application/x-javascript+spitfire', 'text/x-javascript+spitfire', 'text/javascript+spitfire')), - 'CheetahLexer': ('pip._vendor.pygments.lexers.templates', 'Cheetah', ('cheetah', 'spitfire'), ('*.tmpl', '*.spt'), ('application/x-cheetah', 'application/x-spitfire')), - 'CheetahXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Cheetah', ('xml+cheetah', 'xml+spitfire'), (), ('application/xml+cheetah', 'application/xml+spitfire')), - 'CirruLexer': ('pip._vendor.pygments.lexers.webmisc', 'Cirru', ('cirru',), ('*.cirru',), ('text/x-cirru',)), - 'ClayLexer': ('pip._vendor.pygments.lexers.c_like', 'Clay', ('clay',), ('*.clay',), ('text/x-clay',)), - 'CleanLexer': ('pip._vendor.pygments.lexers.clean', 'Clean', ('clean',), ('*.icl', '*.dcl'), ()), - 'ClojureLexer': ('pip._vendor.pygments.lexers.jvm', 'Clojure', ('clojure', 'clj'), ('*.clj', '*.cljc'), ('text/x-clojure', 'application/x-clojure')), - 'ClojureScriptLexer': ('pip._vendor.pygments.lexers.jvm', 'ClojureScript', ('clojurescript', 'cljs'), ('*.cljs',), ('text/x-clojurescript', 'application/x-clojurescript')), - 'CobolFreeformatLexer': ('pip._vendor.pygments.lexers.business', 'COBOLFree', ('cobolfree',), ('*.cbl', '*.CBL'), ()), - 'CobolLexer': ('pip._vendor.pygments.lexers.business', 'COBOL', ('cobol',), ('*.cob', '*.COB', '*.cpy', '*.CPY'), ('text/x-cobol',)), - 'CodeQLLexer': ('pip._vendor.pygments.lexers.codeql', 'CodeQL', ('codeql', 'ql'), ('*.ql', '*.qll'), ()), - 'CoffeeScriptLexer': ('pip._vendor.pygments.lexers.javascript', 'CoffeeScript', ('coffeescript', 'coffee-script', 'coffee'), ('*.coffee',), ('text/coffeescript',)), - 'ColdfusionCFCLexer': ('pip._vendor.pygments.lexers.templates', 'Coldfusion CFC', ('cfc',), ('*.cfc',), ()), - 'ColdfusionHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'Coldfusion HTML', ('cfm',), ('*.cfm', '*.cfml'), ('application/x-coldfusion',)), - 'ColdfusionLexer': ('pip._vendor.pygments.lexers.templates', 'cfstatement', ('cfs',), (), ()), - 'Comal80Lexer': ('pip._vendor.pygments.lexers.comal', 'COMAL-80', ('comal', 'comal80'), ('*.cml', '*.comal'), ()), - 'CommonLispLexer': ('pip._vendor.pygments.lexers.lisp', 'Common Lisp', ('common-lisp', 'cl', 'lisp'), ('*.cl', '*.lisp'), ('text/x-common-lisp',)), - 'ComponentPascalLexer': ('pip._vendor.pygments.lexers.oberon', 'Component Pascal', ('componentpascal', 'cp'), ('*.cp', '*.cps'), ('text/x-component-pascal',)), - 'CoqLexer': ('pip._vendor.pygments.lexers.theorem', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)), - 'CplintLexer': ('pip._vendor.pygments.lexers.cplint', 'cplint', ('cplint',), ('*.ecl', '*.prolog', '*.pro', '*.pl', '*.P', '*.lpad', '*.cpl'), ('text/x-cplint',)), - 'CppLexer': ('pip._vendor.pygments.lexers.c_cpp', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx', '*.C', '*.H', '*.cp', '*.CPP', '*.tpp'), ('text/x-c++hdr', 'text/x-c++src')), - 'CppObjdumpLexer': ('pip._vendor.pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)), - 'CrmshLexer': ('pip._vendor.pygments.lexers.dsls', 'Crmsh', ('crmsh', 'pcmk'), ('*.crmsh', '*.pcmk'), ()), - 'CrocLexer': ('pip._vendor.pygments.lexers.d', 'Croc', ('croc',), ('*.croc',), ('text/x-crocsrc',)), - 'CryptolLexer': ('pip._vendor.pygments.lexers.haskell', 'Cryptol', ('cryptol', 'cry'), ('*.cry',), ('text/x-cryptol',)), - 'CrystalLexer': ('pip._vendor.pygments.lexers.crystal', 'Crystal', ('cr', 'crystal'), ('*.cr',), ('text/x-crystal',)), - 'CsoundDocumentLexer': ('pip._vendor.pygments.lexers.csound', 'Csound Document', ('csound-document', 'csound-csd'), ('*.csd',), ()), - 'CsoundOrchestraLexer': ('pip._vendor.pygments.lexers.csound', 'Csound Orchestra', ('csound', 'csound-orc'), ('*.orc', '*.udo'), ()), - 'CsoundScoreLexer': ('pip._vendor.pygments.lexers.csound', 'Csound Score', ('csound-score', 'csound-sco'), ('*.sco',), ()), - 'CssDjangoLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), ('*.css.j2', '*.css.jinja2'), ('text/css+django', 'text/css+jinja')), - 'CssErbLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Ruby', ('css+ruby', 'css+erb'), (), ('text/css+ruby',)), - 'CssGenshiLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Genshi Text', ('css+genshitext', 'css+genshi'), (), ('text/css+genshi',)), - 'CssLexer': ('pip._vendor.pygments.lexers.css', 'CSS', ('css',), ('*.css',), ('text/css',)), - 'CssPhpLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+PHP', ('css+php',), (), ('text/css+php',)), - 'CssSmartyLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Smarty', ('css+smarty',), (), ('text/css+smarty',)), - 'CudaLexer': ('pip._vendor.pygments.lexers.c_like', 'CUDA', ('cuda', 'cu'), ('*.cu', '*.cuh'), ('text/x-cuda',)), - 'CypherLexer': ('pip._vendor.pygments.lexers.graph', 'Cypher', ('cypher',), ('*.cyp', '*.cypher'), ()), - 'CythonLexer': ('pip._vendor.pygments.lexers.python', 'Cython', ('cython', 'pyx', 'pyrex'), ('*.pyx', '*.pxd', '*.pxi'), ('text/x-cython', 'application/x-cython')), - 'DLexer': ('pip._vendor.pygments.lexers.d', 'D', ('d',), ('*.d', '*.di'), ('text/x-dsrc',)), - 'DObjdumpLexer': ('pip._vendor.pygments.lexers.asm', 'd-objdump', ('d-objdump',), ('*.d-objdump',), ('text/x-d-objdump',)), - 'DarcsPatchLexer': ('pip._vendor.pygments.lexers.diff', 'Darcs Patch', ('dpatch',), ('*.dpatch', '*.darcspatch'), ()), - 'DartLexer': ('pip._vendor.pygments.lexers.javascript', 'Dart', ('dart',), ('*.dart',), ('text/x-dart',)), - 'Dasm16Lexer': ('pip._vendor.pygments.lexers.asm', 'DASM16', ('dasm16',), ('*.dasm16', '*.dasm'), ('text/x-dasm16',)), - 'DaxLexer': ('pip._vendor.pygments.lexers.dax', 'Dax', ('dax',), ('*.dax',), ()), - 'DebianControlLexer': ('pip._vendor.pygments.lexers.installers', 'Debian Control file', ('debcontrol', 'control'), ('control',), ()), - 'DebianSourcesLexer': ('pip._vendor.pygments.lexers.installers', 'Debian Sources file', ('debian.sources',), ('*.sources',), ()), - 'DelphiLexer': ('pip._vendor.pygments.lexers.pascal', 'Delphi', ('delphi', 'pas', 'pascal', 'objectpascal'), ('*.pas', '*.dpr'), ('text/x-pascal',)), - 'DesktopLexer': ('pip._vendor.pygments.lexers.configs', 'Desktop file', ('desktop',), ('*.desktop',), ('application/x-desktop',)), - 'DevicetreeLexer': ('pip._vendor.pygments.lexers.devicetree', 'Devicetree', ('devicetree', 'dts'), ('*.dts', '*.dtsi'), ('text/x-c',)), - 'DgLexer': ('pip._vendor.pygments.lexers.python', 'dg', ('dg',), ('*.dg',), ('text/x-dg',)), - 'DiffLexer': ('pip._vendor.pygments.lexers.diff', 'Diff', ('diff', 'udiff'), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch')), - 'DjangoLexer': ('pip._vendor.pygments.lexers.templates', 'Django/Jinja', ('django', 'jinja'), (), ('application/x-django-templating', 'application/x-jinja')), - 'DnsZoneLexer': ('pip._vendor.pygments.lexers.dns', 'Zone', ('zone',), ('*.zone',), ('text/dns',)), - 'DockerLexer': ('pip._vendor.pygments.lexers.configs', 'Docker', ('docker', 'dockerfile'), ('Dockerfile', '*.docker'), ('text/x-dockerfile-config',)), - 'DtdLexer': ('pip._vendor.pygments.lexers.html', 'DTD', ('dtd',), ('*.dtd',), ('application/xml-dtd',)), - 'DuelLexer': ('pip._vendor.pygments.lexers.webmisc', 'Duel', ('duel', 'jbst', 'jsonml+bst'), ('*.duel', '*.jbst'), ('text/x-duel', 'text/x-jbst')), - 'DylanConsoleLexer': ('pip._vendor.pygments.lexers.dylan', 'Dylan session', ('dylan-console', 'dylan-repl'), ('*.dylan-console',), ('text/x-dylan-console',)), - 'DylanLexer': ('pip._vendor.pygments.lexers.dylan', 'Dylan', ('dylan',), ('*.dylan', '*.dyl', '*.intr'), ('text/x-dylan',)), - 'DylanLidLexer': ('pip._vendor.pygments.lexers.dylan', 'DylanLID', ('dylan-lid', 'lid'), ('*.lid', '*.hdp'), ('text/x-dylan-lid',)), - 'ECLLexer': ('pip._vendor.pygments.lexers.ecl', 'ECL', ('ecl',), ('*.ecl',), ('application/x-ecl',)), - 'ECLexer': ('pip._vendor.pygments.lexers.c_like', 'eC', ('ec',), ('*.ec', '*.eh'), ('text/x-echdr', 'text/x-ecsrc')), - 'EarlGreyLexer': ('pip._vendor.pygments.lexers.javascript', 'Earl Grey', ('earl-grey', 'earlgrey', 'eg'), ('*.eg',), ('text/x-earl-grey',)), - 'EasytrieveLexer': ('pip._vendor.pygments.lexers.scripting', 'Easytrieve', ('easytrieve',), ('*.ezt', '*.mac'), ('text/x-easytrieve',)), - 'EbnfLexer': ('pip._vendor.pygments.lexers.parsers', 'EBNF', ('ebnf',), ('*.ebnf',), ('text/x-ebnf',)), - 'EiffelLexer': ('pip._vendor.pygments.lexers.eiffel', 'Eiffel', ('eiffel',), ('*.e',), ('text/x-eiffel',)), - 'ElixirConsoleLexer': ('pip._vendor.pygments.lexers.erlang', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)), - 'ElixirLexer': ('pip._vendor.pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.eex', '*.exs', '*.leex'), ('text/x-elixir',)), - 'ElmLexer': ('pip._vendor.pygments.lexers.elm', 'Elm', ('elm',), ('*.elm',), ('text/x-elm',)), - 'ElpiLexer': ('pip._vendor.pygments.lexers.elpi', 'Elpi', ('elpi',), ('*.elpi',), ('text/x-elpi',)), - 'EmacsLispLexer': ('pip._vendor.pygments.lexers.lisp', 'EmacsLisp', ('emacs-lisp', 'elisp', 'emacs'), ('*.el',), ('text/x-elisp', 'application/x-elisp')), - 'EmailLexer': ('pip._vendor.pygments.lexers.email', 'E-mail', ('email', 'eml'), ('*.eml',), ('message/rfc822',)), - 'ErbLexer': ('pip._vendor.pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)), - 'ErlangLexer': ('pip._vendor.pygments.lexers.erlang', 'Erlang', ('erlang',), ('*.erl', '*.hrl', '*.es', '*.escript'), ('text/x-erlang',)), - 'ErlangShellLexer': ('pip._vendor.pygments.lexers.erlang', 'Erlang erl session', ('erl',), ('*.erl-sh',), ('text/x-erl-shellsession',)), - 'EvoqueHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Evoque', ('html+evoque',), (), ('text/html+evoque',)), - 'EvoqueLexer': ('pip._vendor.pygments.lexers.templates', 'Evoque', ('evoque',), ('*.evoque',), ('application/x-evoque',)), - 'EvoqueXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Evoque', ('xml+evoque',), (), ('application/xml+evoque',)), - 'ExeclineLexer': ('pip._vendor.pygments.lexers.shell', 'execline', ('execline',), ('*.exec',), ()), - 'EzhilLexer': ('pip._vendor.pygments.lexers.ezhil', 'Ezhil', ('ezhil',), ('*.n',), ('text/x-ezhil',)), - 'FSharpLexer': ('pip._vendor.pygments.lexers.dotnet', 'F#', ('fsharp', 'f#'), ('*.fs', '*.fsi', '*.fsx'), ('text/x-fsharp',)), - 'FStarLexer': ('pip._vendor.pygments.lexers.ml', 'FStar', ('fstar',), ('*.fst', '*.fsti'), ('text/x-fstar',)), - 'FactorLexer': ('pip._vendor.pygments.lexers.factor', 'Factor', ('factor',), ('*.factor',), ('text/x-factor',)), - 'FancyLexer': ('pip._vendor.pygments.lexers.ruby', 'Fancy', ('fancy', 'fy'), ('*.fy', '*.fancypack'), ('text/x-fancysrc',)), - 'FantomLexer': ('pip._vendor.pygments.lexers.fantom', 'Fantom', ('fan',), ('*.fan',), ('application/x-fantom',)), - 'FelixLexer': ('pip._vendor.pygments.lexers.felix', 'Felix', ('felix', 'flx'), ('*.flx', '*.flxh'), ('text/x-felix',)), - 'FennelLexer': ('pip._vendor.pygments.lexers.lisp', 'Fennel', ('fennel', 'fnl'), ('*.fnl',), ()), - 'FiftLexer': ('pip._vendor.pygments.lexers.fift', 'Fift', ('fift', 'fif'), ('*.fif',), ()), - 'FishShellLexer': ('pip._vendor.pygments.lexers.shell', 'Fish', ('fish', 'fishshell'), ('*.fish', '*.load'), ('application/x-fish',)), - 'FlatlineLexer': ('pip._vendor.pygments.lexers.dsls', 'Flatline', ('flatline',), (), ('text/x-flatline',)), - 'FloScriptLexer': ('pip._vendor.pygments.lexers.floscript', 'FloScript', ('floscript', 'flo'), ('*.flo',), ()), - 'ForthLexer': ('pip._vendor.pygments.lexers.forth', 'Forth', ('forth',), ('*.frt', '*.fs'), ('application/x-forth',)), - 'FortranFixedLexer': ('pip._vendor.pygments.lexers.fortran', 'FortranFixed', ('fortranfixed',), ('*.f', '*.F'), ()), - 'FortranLexer': ('pip._vendor.pygments.lexers.fortran', 'Fortran', ('fortran', 'f90'), ('*.f03', '*.f90', '*.F03', '*.F90'), ('text/x-fortran',)), - 'FoxProLexer': ('pip._vendor.pygments.lexers.foxpro', 'FoxPro', ('foxpro', 'vfp', 'clipper', 'xbase'), ('*.PRG', '*.prg'), ()), - 'FreeFemLexer': ('pip._vendor.pygments.lexers.freefem', 'Freefem', ('freefem',), ('*.edp',), ('text/x-freefem',)), - 'FuncLexer': ('pip._vendor.pygments.lexers.func', 'FunC', ('func', 'fc'), ('*.fc', '*.func'), ()), - 'FutharkLexer': ('pip._vendor.pygments.lexers.futhark', 'Futhark', ('futhark',), ('*.fut',), ('text/x-futhark',)), - 'GAPConsoleLexer': ('pip._vendor.pygments.lexers.algebra', 'GAP session', ('gap-console', 'gap-repl'), ('*.tst',), ()), - 'GAPLexer': ('pip._vendor.pygments.lexers.algebra', 'GAP', ('gap',), ('*.g', '*.gd', '*.gi', '*.gap'), ()), - 'GDScriptLexer': ('pip._vendor.pygments.lexers.gdscript', 'GDScript', ('gdscript', 'gd'), ('*.gd',), ('text/x-gdscript', 'application/x-gdscript')), - 'GLShaderLexer': ('pip._vendor.pygments.lexers.graphics', 'GLSL', ('glsl',), ('*.vert', '*.frag', '*.geo'), ('text/x-glslsrc',)), - 'GSQLLexer': ('pip._vendor.pygments.lexers.gsql', 'GSQL', ('gsql',), ('*.gsql',), ()), - 'GasLexer': ('pip._vendor.pygments.lexers.asm', 'GAS', ('gas', 'asm'), ('*.s', '*.S'), ('text/x-gas',)), - 'GcodeLexer': ('pip._vendor.pygments.lexers.gcodelexer', 'g-code', ('gcode',), ('*.gcode',), ()), - 'GenshiLexer': ('pip._vendor.pygments.lexers.templates', 'Genshi', ('genshi', 'kid', 'xml+genshi', 'xml+kid'), ('*.kid',), ('application/x-genshi', 'application/x-kid')), - 'GenshiTextLexer': ('pip._vendor.pygments.lexers.templates', 'Genshi Text', ('genshitext',), (), ('application/x-genshi-text', 'text/x-genshi')), - 'GettextLexer': ('pip._vendor.pygments.lexers.textfmts', 'Gettext Catalog', ('pot', 'po'), ('*.pot', '*.po'), ('application/x-gettext', 'text/x-gettext', 'text/gettext')), - 'GherkinLexer': ('pip._vendor.pygments.lexers.testing', 'Gherkin', ('gherkin', 'cucumber'), ('*.feature',), ('text/x-gherkin',)), - 'GleamLexer': ('pip._vendor.pygments.lexers.gleam', 'Gleam', ('gleam',), ('*.gleam',), ('text/x-gleam',)), - 'GnuplotLexer': ('pip._vendor.pygments.lexers.graphics', 'Gnuplot', ('gnuplot',), ('*.plot', '*.plt'), ('text/x-gnuplot',)), - 'GoLexer': ('pip._vendor.pygments.lexers.go', 'Go', ('go', 'golang'), ('*.go',), ('text/x-gosrc',)), - 'GoloLexer': ('pip._vendor.pygments.lexers.jvm', 'Golo', ('golo',), ('*.golo',), ()), - 'GoodDataCLLexer': ('pip._vendor.pygments.lexers.business', 'GoodData-CL', ('gooddata-cl',), ('*.gdc',), ('text/x-gooddata-cl',)), - 'GoogleSqlLexer': ('pip._vendor.pygments.lexers.sql', 'GoogleSQL', ('googlesql', 'zetasql'), ('*.googlesql', '*.googlesql.sql'), ('text/x-google-sql', 'text/x-google-sql-aux')), - 'GosuLexer': ('pip._vendor.pygments.lexers.jvm', 'Gosu', ('gosu',), ('*.gs', '*.gsx', '*.gsp', '*.vark'), ('text/x-gosu',)), - 'GosuTemplateLexer': ('pip._vendor.pygments.lexers.jvm', 'Gosu Template', ('gst',), ('*.gst',), ('text/x-gosu-template',)), - 'GraphQLLexer': ('pip._vendor.pygments.lexers.graphql', 'GraphQL', ('graphql',), ('*.graphql',), ()), - 'GraphvizLexer': ('pip._vendor.pygments.lexers.graphviz', 'Graphviz', ('graphviz', 'dot'), ('*.gv', '*.dot'), ('text/x-graphviz', 'text/vnd.graphviz')), - 'GroffLexer': ('pip._vendor.pygments.lexers.markup', 'Groff', ('groff', 'nroff', 'man'), ('*.[1-9]', '*.man', '*.1p', '*.3pm'), ('application/x-troff', 'text/troff')), - 'GroovyLexer': ('pip._vendor.pygments.lexers.jvm', 'Groovy', ('groovy',), ('*.groovy', '*.gradle'), ('text/x-groovy',)), - 'HLSLShaderLexer': ('pip._vendor.pygments.lexers.graphics', 'HLSL', ('hlsl',), ('*.hlsl', '*.hlsli'), ('text/x-hlsl',)), - 'HTMLUL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'HTML+UL4', ('html+ul4',), ('*.htmlul4',), ()), - 'HamlLexer': ('pip._vendor.pygments.lexers.html', 'Haml', ('haml',), ('*.haml',), ('text/x-haml',)), - 'HandlebarsHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Handlebars', ('html+handlebars',), ('*.handlebars', '*.hbs'), ('text/html+handlebars', 'text/x-handlebars-template')), - 'HandlebarsLexer': ('pip._vendor.pygments.lexers.templates', 'Handlebars', ('handlebars',), (), ()), - 'HareLexer': ('pip._vendor.pygments.lexers.hare', 'Hare', ('hare',), ('*.ha',), ('text/x-hare',)), - 'HaskellLexer': ('pip._vendor.pygments.lexers.haskell', 'Haskell', ('haskell', 'hs'), ('*.hs',), ('text/x-haskell',)), - 'HaxeLexer': ('pip._vendor.pygments.lexers.haxe', 'Haxe', ('haxe', 'hxsl', 'hx'), ('*.hx', '*.hxsl'), ('text/haxe', 'text/x-haxe', 'text/x-hx')), - 'HexdumpLexer': ('pip._vendor.pygments.lexers.hexdump', 'Hexdump', ('hexdump',), (), ()), - 'HsailLexer': ('pip._vendor.pygments.lexers.asm', 'HSAIL', ('hsail', 'hsa'), ('*.hsail',), ('text/x-hsail',)), - 'HspecLexer': ('pip._vendor.pygments.lexers.haskell', 'Hspec', ('hspec',), ('*Spec.hs',), ()), - 'HtmlDjangoLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja', 'htmldjango'), ('*.html.j2', '*.htm.j2', '*.xhtml.j2', '*.html.jinja2', '*.htm.jinja2', '*.xhtml.jinja2'), ('text/html+django', 'text/html+jinja')), - 'HtmlGenshiLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Genshi', ('html+genshi', 'html+kid'), (), ('text/html+genshi',)), - 'HtmlLexer': ('pip._vendor.pygments.lexers.html', 'HTML', ('html',), ('*.html', '*.htm', '*.xhtml', '*.xslt'), ('text/html', 'application/xhtml+xml')), - 'HtmlPhpLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+PHP', ('html+php',), ('*.phtml',), ('application/x-php', 'application/x-httpd-php', 'application/x-httpd-php3', 'application/x-httpd-php4', 'application/x-httpd-php5')), - 'HtmlSmartyLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Smarty', ('html+smarty',), (), ('text/html+smarty',)), - 'HttpLexer': ('pip._vendor.pygments.lexers.textfmts', 'HTTP', ('http',), (), ()), - 'HxmlLexer': ('pip._vendor.pygments.lexers.haxe', 'Hxml', ('haxeml', 'hxml'), ('*.hxml',), ()), - 'HyLexer': ('pip._vendor.pygments.lexers.lisp', 'Hy', ('hylang', 'hy'), ('*.hy',), ('text/x-hy', 'application/x-hy')), - 'HybrisLexer': ('pip._vendor.pygments.lexers.scripting', 'Hybris', ('hybris',), ('*.hyb',), ('text/x-hybris', 'application/x-hybris')), - 'IDLLexer': ('pip._vendor.pygments.lexers.idl', 'IDL', ('idl',), ('*.pro',), ('text/idl',)), - 'IconLexer': ('pip._vendor.pygments.lexers.unicon', 'Icon', ('icon',), ('*.icon', '*.ICON'), ()), - 'IdrisLexer': ('pip._vendor.pygments.lexers.haskell', 'Idris', ('idris', 'idr'), ('*.idr',), ('text/x-idris',)), - 'IgorLexer': ('pip._vendor.pygments.lexers.igor', 'Igor', ('igor', 'igorpro'), ('*.ipf',), ('text/ipf',)), - 'Inform6Lexer': ('pip._vendor.pygments.lexers.int_fiction', 'Inform 6', ('inform6', 'i6'), ('*.inf',), ()), - 'Inform6TemplateLexer': ('pip._vendor.pygments.lexers.int_fiction', 'Inform 6 template', ('i6t',), ('*.i6t',), ()), - 'Inform7Lexer': ('pip._vendor.pygments.lexers.int_fiction', 'Inform 7', ('inform7', 'i7'), ('*.ni', '*.i7x'), ()), - 'IniLexer': ('pip._vendor.pygments.lexers.configs', 'INI', ('ini', 'cfg', 'dosini'), ('*.ini', '*.cfg', '*.inf', '.editorconfig'), ('text/x-ini', 'text/inf')), - 'IoLexer': ('pip._vendor.pygments.lexers.iolang', 'Io', ('io',), ('*.io',), ('text/x-iosrc',)), - 'IokeLexer': ('pip._vendor.pygments.lexers.jvm', 'Ioke', ('ioke', 'ik'), ('*.ik',), ('text/x-iokesrc',)), - 'IrcLogsLexer': ('pip._vendor.pygments.lexers.textfmts', 'IRC logs', ('irc',), ('*.weechatlog',), ('text/x-irclog',)), - 'IsabelleLexer': ('pip._vendor.pygments.lexers.theorem', 'Isabelle', ('isabelle',), ('*.thy',), ('text/x-isabelle',)), - 'JLexer': ('pip._vendor.pygments.lexers.j', 'J', ('j',), ('*.ijs',), ('text/x-j',)), - 'JMESPathLexer': ('pip._vendor.pygments.lexers.jmespath', 'JMESPath', ('jmespath', 'jp'), ('*.jp',), ()), - 'JSLTLexer': ('pip._vendor.pygments.lexers.jslt', 'JSLT', ('jslt',), ('*.jslt',), ('text/x-jslt',)), - 'JagsLexer': ('pip._vendor.pygments.lexers.modeling', 'JAGS', ('jags',), ('*.jag', '*.bug'), ()), - 'JanetLexer': ('pip._vendor.pygments.lexers.lisp', 'Janet', ('janet',), ('*.janet', '*.jdn'), ('text/x-janet', 'application/x-janet')), - 'JasminLexer': ('pip._vendor.pygments.lexers.jvm', 'Jasmin', ('jasmin', 'jasminxt'), ('*.j',), ()), - 'JavaLexer': ('pip._vendor.pygments.lexers.jvm', 'Java', ('java',), ('*.java',), ('text/x-java',)), - 'JavascriptDjangoLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Django/Jinja', ('javascript+django', 'js+django', 'javascript+jinja', 'js+jinja'), ('*.js.j2', '*.js.jinja2'), ('application/x-javascript+django', 'application/x-javascript+jinja', 'text/x-javascript+django', 'text/x-javascript+jinja', 'text/javascript+django', 'text/javascript+jinja')), - 'JavascriptErbLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Ruby', ('javascript+ruby', 'js+ruby', 'javascript+erb', 'js+erb'), (), ('application/x-javascript+ruby', 'text/x-javascript+ruby', 'text/javascript+ruby')), - 'JavascriptGenshiLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Genshi Text', ('js+genshitext', 'js+genshi', 'javascript+genshitext', 'javascript+genshi'), (), ('application/x-javascript+genshi', 'text/x-javascript+genshi', 'text/javascript+genshi')), - 'JavascriptLexer': ('pip._vendor.pygments.lexers.javascript', 'JavaScript', ('javascript', 'js'), ('*.js', '*.jsm', '*.mjs', '*.cjs'), ('application/javascript', 'application/x-javascript', 'text/x-javascript', 'text/javascript')), - 'JavascriptPhpLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+PHP', ('javascript+php', 'js+php'), (), ('application/x-javascript+php', 'text/x-javascript+php', 'text/javascript+php')), - 'JavascriptSmartyLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Smarty', ('javascript+smarty', 'js+smarty'), (), ('application/x-javascript+smarty', 'text/x-javascript+smarty', 'text/javascript+smarty')), - 'JavascriptUL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'Javascript+UL4', ('js+ul4',), ('*.jsul4',), ()), - 'JclLexer': ('pip._vendor.pygments.lexers.scripting', 'JCL', ('jcl',), ('*.jcl',), ('text/x-jcl',)), - 'JsgfLexer': ('pip._vendor.pygments.lexers.grammar_notation', 'JSGF', ('jsgf',), ('*.jsgf',), ('application/jsgf', 'application/x-jsgf', 'text/jsgf')), - 'Json5Lexer': ('pip._vendor.pygments.lexers.json5', 'JSON5', ('json5',), ('*.json5',), ()), - 'JsonBareObjectLexer': ('pip._vendor.pygments.lexers.data', 'JSONBareObject', (), (), ()), - 'JsonLdLexer': ('pip._vendor.pygments.lexers.data', 'JSON-LD', ('jsonld', 'json-ld'), ('*.jsonld',), ('application/ld+json',)), - 'JsonLexer': ('pip._vendor.pygments.lexers.data', 'JSON', ('json', 'json-object'), ('*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock'), ('application/json', 'application/json-object', 'application/x-ndjson', 'application/jsonl', 'application/json-seq')), - 'JsonnetLexer': ('pip._vendor.pygments.lexers.jsonnet', 'Jsonnet', ('jsonnet',), ('*.jsonnet', '*.libsonnet'), ()), - 'JspLexer': ('pip._vendor.pygments.lexers.templates', 'Java Server Page', ('jsp',), ('*.jsp',), ('application/x-jsp',)), - 'JsxLexer': ('pip._vendor.pygments.lexers.jsx', 'JSX', ('jsx', 'react'), ('*.jsx', '*.react'), ('text/jsx', 'text/typescript-jsx')), - 'JuliaConsoleLexer': ('pip._vendor.pygments.lexers.julia', 'Julia console', ('jlcon', 'julia-repl'), (), ()), - 'JuliaLexer': ('pip._vendor.pygments.lexers.julia', 'Julia', ('julia', 'jl'), ('*.jl',), ('text/x-julia', 'application/x-julia')), - 'JuttleLexer': ('pip._vendor.pygments.lexers.javascript', 'Juttle', ('juttle',), ('*.juttle',), ('application/juttle', 'application/x-juttle', 'text/x-juttle', 'text/juttle')), - 'KLexer': ('pip._vendor.pygments.lexers.q', 'K', ('k',), ('*.k',), ()), - 'KalLexer': ('pip._vendor.pygments.lexers.javascript', 'Kal', ('kal',), ('*.kal',), ('text/kal', 'application/kal')), - 'KconfigLexer': ('pip._vendor.pygments.lexers.configs', 'Kconfig', ('kconfig', 'menuconfig', 'linux-config', 'kernel-config'), ('Kconfig*', '*Config.in*', 'external.in*', 'standard-modules.in'), ('text/x-kconfig',)), - 'KernelLogLexer': ('pip._vendor.pygments.lexers.textfmts', 'Kernel log', ('kmsg', 'dmesg'), ('*.kmsg', '*.dmesg'), ()), - 'KokaLexer': ('pip._vendor.pygments.lexers.haskell', 'Koka', ('koka',), ('*.kk', '*.kki'), ('text/x-koka',)), - 'KotlinLexer': ('pip._vendor.pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt', '*.kts'), ('text/x-kotlin',)), - 'KuinLexer': ('pip._vendor.pygments.lexers.kuin', 'Kuin', ('kuin',), ('*.kn',), ()), - 'KustoLexer': ('pip._vendor.pygments.lexers.kusto', 'Kusto', ('kql', 'kusto'), ('*.kql', '*.kusto', '.csl'), ()), - 'LSLLexer': ('pip._vendor.pygments.lexers.scripting', 'LSL', ('lsl',), ('*.lsl',), ('text/x-lsl',)), - 'LassoCssLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Lasso', ('css+lasso',), (), ('text/css+lasso',)), - 'LassoHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Lasso', ('html+lasso',), (), ('text/html+lasso', 'application/x-httpd-lasso', 'application/x-httpd-lasso[89]')), - 'LassoJavascriptLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Lasso', ('javascript+lasso', 'js+lasso'), (), ('application/x-javascript+lasso', 'text/x-javascript+lasso', 'text/javascript+lasso')), - 'LassoLexer': ('pip._vendor.pygments.lexers.javascript', 'Lasso', ('lasso', 'lassoscript'), ('*.lasso', '*.lasso[89]'), ('text/x-lasso',)), - 'LassoXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Lasso', ('xml+lasso',), (), ('application/xml+lasso',)), - 'LdaprcLexer': ('pip._vendor.pygments.lexers.ldap', 'LDAP configuration file', ('ldapconf', 'ldaprc'), ('.ldaprc', 'ldaprc', 'ldap.conf'), ('text/x-ldapconf',)), - 'LdifLexer': ('pip._vendor.pygments.lexers.ldap', 'LDIF', ('ldif',), ('*.ldif',), ('text/x-ldif',)), - 'Lean3Lexer': ('pip._vendor.pygments.lexers.lean', 'Lean', ('lean', 'lean3'), ('*.lean',), ('text/x-lean', 'text/x-lean3')), - 'Lean4Lexer': ('pip._vendor.pygments.lexers.lean', 'Lean4', ('lean4',), ('*.lean',), ('text/x-lean4',)), - 'LessCssLexer': ('pip._vendor.pygments.lexers.css', 'LessCss', ('less',), ('*.less',), ('text/x-less-css',)), - 'LighttpdConfLexer': ('pip._vendor.pygments.lexers.configs', 'Lighttpd configuration file', ('lighttpd', 'lighty'), ('lighttpd.conf',), ('text/x-lighttpd-conf',)), - 'LilyPondLexer': ('pip._vendor.pygments.lexers.lilypond', 'LilyPond', ('lilypond',), ('*.ly',), ()), - 'LimboLexer': ('pip._vendor.pygments.lexers.inferno', 'Limbo', ('limbo',), ('*.b',), ('text/limbo',)), - 'LiquidLexer': ('pip._vendor.pygments.lexers.templates', 'liquid', ('liquid',), ('*.liquid',), ()), - 'LiterateAgdaLexer': ('pip._vendor.pygments.lexers.haskell', 'Literate Agda', ('literate-agda', 'lagda'), ('*.lagda',), ('text/x-literate-agda',)), - 'LiterateCryptolLexer': ('pip._vendor.pygments.lexers.haskell', 'Literate Cryptol', ('literate-cryptol', 'lcryptol', 'lcry'), ('*.lcry',), ('text/x-literate-cryptol',)), - 'LiterateHaskellLexer': ('pip._vendor.pygments.lexers.haskell', 'Literate Haskell', ('literate-haskell', 'lhaskell', 'lhs'), ('*.lhs',), ('text/x-literate-haskell',)), - 'LiterateIdrisLexer': ('pip._vendor.pygments.lexers.haskell', 'Literate Idris', ('literate-idris', 'lidris', 'lidr'), ('*.lidr',), ('text/x-literate-idris',)), - 'LiveScriptLexer': ('pip._vendor.pygments.lexers.javascript', 'LiveScript', ('livescript', 'live-script'), ('*.ls',), ('text/livescript',)), - 'LlvmLexer': ('pip._vendor.pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)), - 'LlvmMirBodyLexer': ('pip._vendor.pygments.lexers.asm', 'LLVM-MIR Body', ('llvm-mir-body',), (), ()), - 'LlvmMirLexer': ('pip._vendor.pygments.lexers.asm', 'LLVM-MIR', ('llvm-mir',), ('*.mir',), ()), - 'LogosLexer': ('pip._vendor.pygments.lexers.objective', 'Logos', ('logos',), ('*.x', '*.xi', '*.xm', '*.xmi'), ('text/x-logos',)), - 'LogtalkLexer': ('pip._vendor.pygments.lexers.prolog', 'Logtalk', ('logtalk',), ('*.lgt', '*.logtalk'), ('text/x-logtalk',)), - 'LuaLexer': ('pip._vendor.pygments.lexers.scripting', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')), - 'LuauLexer': ('pip._vendor.pygments.lexers.scripting', 'Luau', ('luau',), ('*.luau',), ()), - 'MCFunctionLexer': ('pip._vendor.pygments.lexers.minecraft', 'MCFunction', ('mcfunction', 'mcf'), ('*.mcfunction',), ('text/mcfunction',)), - 'MCSchemaLexer': ('pip._vendor.pygments.lexers.minecraft', 'MCSchema', ('mcschema',), ('*.mcschema',), ('text/mcschema',)), - 'MIMELexer': ('pip._vendor.pygments.lexers.mime', 'MIME', ('mime',), (), ('multipart/mixed', 'multipart/related', 'multipart/alternative')), - 'MIPSLexer': ('pip._vendor.pygments.lexers.mips', 'MIPS', ('mips',), ('*.mips', '*.MIPS'), ()), - 'MOOCodeLexer': ('pip._vendor.pygments.lexers.scripting', 'MOOCode', ('moocode', 'moo'), ('*.moo',), ('text/x-moocode',)), - 'MSDOSSessionLexer': ('pip._vendor.pygments.lexers.shell', 'MSDOS Session', ('doscon',), (), ()), - 'Macaulay2Lexer': ('pip._vendor.pygments.lexers.macaulay2', 'Macaulay2', ('macaulay2',), ('*.m2',), ()), - 'MakefileLexer': ('pip._vendor.pygments.lexers.make', 'Makefile', ('make', 'makefile', 'mf', 'bsdmake'), ('*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile'), ('text/x-makefile',)), - 'MakoCssLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Mako', ('css+mako',), (), ('text/css+mako',)), - 'MakoHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Mako', ('html+mako',), (), ('text/html+mako',)), - 'MakoJavascriptLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Mako', ('javascript+mako', 'js+mako'), (), ('application/x-javascript+mako', 'text/x-javascript+mako', 'text/javascript+mako')), - 'MakoLexer': ('pip._vendor.pygments.lexers.templates', 'Mako', ('mako',), ('*.mao',), ('application/x-mako',)), - 'MakoXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Mako', ('xml+mako',), (), ('application/xml+mako',)), - 'MapleLexer': ('pip._vendor.pygments.lexers.maple', 'Maple', ('maple',), ('*.mpl', '*.mi', '*.mm'), ('text/x-maple',)), - 'MaqlLexer': ('pip._vendor.pygments.lexers.business', 'MAQL', ('maql',), ('*.maql',), ('text/x-gooddata-maql', 'application/x-gooddata-maql')), - 'MarkdownLexer': ('pip._vendor.pygments.lexers.markup', 'Markdown', ('markdown', 'md'), ('*.md', '*.markdown'), ('text/x-markdown',)), - 'MaskLexer': ('pip._vendor.pygments.lexers.javascript', 'Mask', ('mask',), ('*.mask',), ('text/x-mask',)), - 'MasonLexer': ('pip._vendor.pygments.lexers.templates', 'Mason', ('mason',), ('*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler'), ('application/x-mason',)), - 'MathematicaLexer': ('pip._vendor.pygments.lexers.algebra', 'Mathematica', ('mathematica', 'mma', 'nb'), ('*.nb', '*.cdf', '*.nbp', '*.ma'), ('application/mathematica', 'application/vnd.wolfram.mathematica', 'application/vnd.wolfram.mathematica.package', 'application/vnd.wolfram.cdf')), - 'MatlabLexer': ('pip._vendor.pygments.lexers.matlab', 'Matlab', ('matlab',), ('*.m',), ('text/matlab',)), - 'MatlabSessionLexer': ('pip._vendor.pygments.lexers.matlab', 'Matlab session', ('matlabsession',), (), ()), - 'MaximaLexer': ('pip._vendor.pygments.lexers.maxima', 'Maxima', ('maxima', 'macsyma'), ('*.mac', '*.max'), ()), - 'MesonLexer': ('pip._vendor.pygments.lexers.meson', 'Meson', ('meson', 'meson.build'), ('meson.build', 'meson_options.txt'), ('text/x-meson',)), - 'MiniDLexer': ('pip._vendor.pygments.lexers.d', 'MiniD', ('minid',), (), ('text/x-minidsrc',)), - 'MiniScriptLexer': ('pip._vendor.pygments.lexers.scripting', 'MiniScript', ('miniscript', 'ms'), ('*.ms',), ('text/x-minicript', 'application/x-miniscript')), - 'ModelicaLexer': ('pip._vendor.pygments.lexers.modeling', 'Modelica', ('modelica',), ('*.mo',), ('text/x-modelica',)), - 'Modula2Lexer': ('pip._vendor.pygments.lexers.modula2', 'Modula-2', ('modula2', 'm2'), ('*.def', '*.mod'), ('text/x-modula2',)), - 'MoinWikiLexer': ('pip._vendor.pygments.lexers.markup', 'MoinMoin/Trac Wiki markup', ('trac-wiki', 'moin'), (), ('text/x-trac-wiki',)), - 'MojoLexer': ('pip._vendor.pygments.lexers.mojo', 'Mojo', ('mojo', '🔥'), ('*.mojo', '*.🔥'), ('text/x-mojo', 'application/x-mojo')), - 'MonkeyLexer': ('pip._vendor.pygments.lexers.basic', 'Monkey', ('monkey',), ('*.monkey',), ('text/x-monkey',)), - 'MonteLexer': ('pip._vendor.pygments.lexers.monte', 'Monte', ('monte',), ('*.mt',), ()), - 'MoonScriptLexer': ('pip._vendor.pygments.lexers.scripting', 'MoonScript', ('moonscript', 'moon'), ('*.moon',), ('text/x-moonscript', 'application/x-moonscript')), - 'MoselLexer': ('pip._vendor.pygments.lexers.mosel', 'Mosel', ('mosel',), ('*.mos',), ()), - 'MozPreprocCssLexer': ('pip._vendor.pygments.lexers.markup', 'CSS+mozpreproc', ('css+mozpreproc',), ('*.css.in',), ()), - 'MozPreprocHashLexer': ('pip._vendor.pygments.lexers.markup', 'mozhashpreproc', ('mozhashpreproc',), (), ()), - 'MozPreprocJavascriptLexer': ('pip._vendor.pygments.lexers.markup', 'Javascript+mozpreproc', ('javascript+mozpreproc',), ('*.js.in',), ()), - 'MozPreprocPercentLexer': ('pip._vendor.pygments.lexers.markup', 'mozpercentpreproc', ('mozpercentpreproc',), (), ()), - 'MozPreprocXulLexer': ('pip._vendor.pygments.lexers.markup', 'XUL+mozpreproc', ('xul+mozpreproc',), ('*.xul.in',), ()), - 'MqlLexer': ('pip._vendor.pygments.lexers.c_like', 'MQL', ('mql', 'mq4', 'mq5', 'mql4', 'mql5'), ('*.mq4', '*.mq5', '*.mqh'), ('text/x-mql',)), - 'MscgenLexer': ('pip._vendor.pygments.lexers.dsls', 'Mscgen', ('mscgen', 'msc'), ('*.msc',), ()), - 'MuPADLexer': ('pip._vendor.pygments.lexers.algebra', 'MuPAD', ('mupad',), ('*.mu',), ()), - 'MxmlLexer': ('pip._vendor.pygments.lexers.actionscript', 'MXML', ('mxml',), ('*.mxml',), ()), - 'MySqlLexer': ('pip._vendor.pygments.lexers.sql', 'MySQL', ('mysql',), (), ('text/x-mysql',)), - 'MyghtyCssLexer': ('pip._vendor.pygments.lexers.templates', 'CSS+Myghty', ('css+myghty',), (), ('text/css+myghty',)), - 'MyghtyHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Myghty', ('html+myghty',), (), ('text/html+myghty',)), - 'MyghtyJavascriptLexer': ('pip._vendor.pygments.lexers.templates', 'JavaScript+Myghty', ('javascript+myghty', 'js+myghty'), (), ('application/x-javascript+myghty', 'text/x-javascript+myghty', 'text/javascript+mygthy')), - 'MyghtyLexer': ('pip._vendor.pygments.lexers.templates', 'Myghty', ('myghty',), ('*.myt', 'autodelegate'), ('application/x-myghty',)), - 'MyghtyXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Myghty', ('xml+myghty',), (), ('application/xml+myghty',)), - 'NCLLexer': ('pip._vendor.pygments.lexers.ncl', 'NCL', ('ncl',), ('*.ncl',), ('text/ncl',)), - 'NSISLexer': ('pip._vendor.pygments.lexers.installers', 'NSIS', ('nsis', 'nsi', 'nsh'), ('*.nsi', '*.nsh'), ('text/x-nsis',)), - 'NasmLexer': ('pip._vendor.pygments.lexers.asm', 'NASM', ('nasm',), ('*.asm', '*.ASM', '*.nasm'), ('text/x-nasm',)), - 'NasmObjdumpLexer': ('pip._vendor.pygments.lexers.asm', 'objdump-nasm', ('objdump-nasm',), ('*.objdump-intel',), ('text/x-nasm-objdump',)), - 'NemerleLexer': ('pip._vendor.pygments.lexers.dotnet', 'Nemerle', ('nemerle',), ('*.n',), ('text/x-nemerle',)), - 'NesCLexer': ('pip._vendor.pygments.lexers.c_like', 'nesC', ('nesc',), ('*.nc',), ('text/x-nescsrc',)), - 'NestedTextLexer': ('pip._vendor.pygments.lexers.configs', 'NestedText', ('nestedtext', 'nt'), ('*.nt',), ()), - 'NewLispLexer': ('pip._vendor.pygments.lexers.lisp', 'NewLisp', ('newlisp',), ('*.lsp', '*.nl', '*.kif'), ('text/x-newlisp', 'application/x-newlisp')), - 'NewspeakLexer': ('pip._vendor.pygments.lexers.smalltalk', 'Newspeak', ('newspeak',), ('*.ns2',), ('text/x-newspeak',)), - 'NginxConfLexer': ('pip._vendor.pygments.lexers.configs', 'Nginx configuration file', ('nginx',), ('nginx.conf',), ('text/x-nginx-conf',)), - 'NimrodLexer': ('pip._vendor.pygments.lexers.nimrod', 'Nimrod', ('nimrod', 'nim'), ('*.nim', '*.nimrod'), ('text/x-nim',)), - 'NitLexer': ('pip._vendor.pygments.lexers.nit', 'Nit', ('nit',), ('*.nit',), ()), - 'NixLexer': ('pip._vendor.pygments.lexers.nix', 'Nix', ('nixos', 'nix'), ('*.nix',), ('text/x-nix',)), - 'NodeConsoleLexer': ('pip._vendor.pygments.lexers.javascript', 'Node.js REPL console session', ('nodejsrepl',), (), ('text/x-nodejsrepl',)), - 'NotmuchLexer': ('pip._vendor.pygments.lexers.textfmts', 'Notmuch', ('notmuch',), (), ()), - 'NuSMVLexer': ('pip._vendor.pygments.lexers.smv', 'NuSMV', ('nusmv',), ('*.smv',), ()), - 'NumPyLexer': ('pip._vendor.pygments.lexers.python', 'NumPy', ('numpy',), (), ()), - 'NumbaIRLexer': ('pip._vendor.pygments.lexers.numbair', 'Numba_IR', ('numba_ir', 'numbair'), ('*.numba_ir',), ('text/x-numba_ir', 'text/x-numbair')), - 'ObjdumpLexer': ('pip._vendor.pygments.lexers.asm', 'objdump', ('objdump',), ('*.objdump',), ('text/x-objdump',)), - 'ObjectiveCLexer': ('pip._vendor.pygments.lexers.objective', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m', '*.h'), ('text/x-objective-c',)), - 'ObjectiveCppLexer': ('pip._vendor.pygments.lexers.objective', 'Objective-C++', ('objective-c++', 'objectivec++', 'obj-c++', 'objc++'), ('*.mm', '*.hh'), ('text/x-objective-c++',)), - 'ObjectiveJLexer': ('pip._vendor.pygments.lexers.javascript', 'Objective-J', ('objective-j', 'objectivej', 'obj-j', 'objj'), ('*.j',), ('text/x-objective-j',)), - 'OcamlLexer': ('pip._vendor.pygments.lexers.ml', 'OCaml', ('ocaml',), ('*.ml', '*.mli', '*.mll', '*.mly'), ('text/x-ocaml',)), - 'OctaveLexer': ('pip._vendor.pygments.lexers.matlab', 'Octave', ('octave',), ('*.m',), ('text/octave',)), - 'OdinLexer': ('pip._vendor.pygments.lexers.archetype', 'ODIN', ('odin',), ('*.odin',), ('text/odin',)), - 'OmgIdlLexer': ('pip._vendor.pygments.lexers.c_like', 'OMG Interface Definition Language', ('omg-idl',), ('*.idl', '*.pidl'), ()), - 'OocLexer': ('pip._vendor.pygments.lexers.ooc', 'Ooc', ('ooc',), ('*.ooc',), ('text/x-ooc',)), - 'OpaLexer': ('pip._vendor.pygments.lexers.ml', 'Opa', ('opa',), ('*.opa',), ('text/x-opa',)), - 'OpenEdgeLexer': ('pip._vendor.pygments.lexers.business', 'OpenEdge ABL', ('openedge', 'abl', 'progress'), ('*.p', '*.cls'), ('text/x-openedge', 'application/x-openedge')), - 'OpenScadLexer': ('pip._vendor.pygments.lexers.openscad', 'OpenSCAD', ('openscad',), ('*.scad',), ('application/x-openscad',)), - 'OrgLexer': ('pip._vendor.pygments.lexers.markup', 'Org Mode', ('org', 'orgmode', 'org-mode'), ('*.org',), ('text/org',)), - 'OutputLexer': ('pip._vendor.pygments.lexers.special', 'Text output', ('output',), (), ()), - 'PacmanConfLexer': ('pip._vendor.pygments.lexers.configs', 'PacmanConf', ('pacmanconf',), ('pacman.conf',), ()), - 'PanLexer': ('pip._vendor.pygments.lexers.dsls', 'Pan', ('pan',), ('*.pan',), ()), - 'ParaSailLexer': ('pip._vendor.pygments.lexers.parasail', 'ParaSail', ('parasail',), ('*.psi', '*.psl'), ('text/x-parasail',)), - 'PawnLexer': ('pip._vendor.pygments.lexers.pawn', 'Pawn', ('pawn',), ('*.p', '*.pwn', '*.inc'), ('text/x-pawn',)), - 'PddlLexer': ('pip._vendor.pygments.lexers.pddl', 'PDDL', ('pddl',), ('*.pddl',), ()), - 'PegLexer': ('pip._vendor.pygments.lexers.grammar_notation', 'PEG', ('peg',), ('*.peg',), ('text/x-peg',)), - 'Perl6Lexer': ('pip._vendor.pygments.lexers.perl', 'Perl6', ('perl6', 'pl6', 'raku'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6', '*.t', '*.raku', '*.rakumod', '*.rakutest', '*.rakudoc'), ('text/x-perl6', 'application/x-perl6')), - 'PerlLexer': ('pip._vendor.pygments.lexers.perl', 'Perl', ('perl', 'pl'), ('*.pl', '*.pm', '*.t', '*.perl'), ('text/x-perl', 'application/x-perl')), - 'PhixLexer': ('pip._vendor.pygments.lexers.phix', 'Phix', ('phix',), ('*.exw',), ('text/x-phix',)), - 'PhpLexer': ('pip._vendor.pygments.lexers.php', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)), - 'PigLexer': ('pip._vendor.pygments.lexers.jvm', 'Pig', ('pig',), ('*.pig',), ('text/x-pig',)), - 'PikeLexer': ('pip._vendor.pygments.lexers.c_like', 'Pike', ('pike',), ('*.pike', '*.pmod'), ('text/x-pike',)), - 'PkgConfigLexer': ('pip._vendor.pygments.lexers.configs', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()), - 'PlPgsqlLexer': ('pip._vendor.pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)), - 'PointlessLexer': ('pip._vendor.pygments.lexers.pointless', 'Pointless', ('pointless',), ('*.ptls',), ()), - 'PonyLexer': ('pip._vendor.pygments.lexers.pony', 'Pony', ('pony',), ('*.pony',), ()), - 'PortugolLexer': ('pip._vendor.pygments.lexers.pascal', 'Portugol', ('portugol',), ('*.alg', '*.portugol'), ()), - 'PostScriptLexer': ('pip._vendor.pygments.lexers.graphics', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)), - 'PostgresConsoleLexer': ('pip._vendor.pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)), - 'PostgresExplainLexer': ('pip._vendor.pygments.lexers.sql', 'PostgreSQL EXPLAIN dialect', ('postgres-explain',), ('*.explain',), ('text/x-postgresql-explain',)), - 'PostgresLexer': ('pip._vendor.pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)), - 'PovrayLexer': ('pip._vendor.pygments.lexers.graphics', 'POVRay', ('pov',), ('*.pov', '*.inc'), ('text/x-povray',)), - 'PowerShellLexer': ('pip._vendor.pygments.lexers.shell', 'PowerShell', ('powershell', 'pwsh', 'posh', 'ps1', 'psm1'), ('*.ps1', '*.psm1'), ('text/x-powershell',)), - 'PowerShellSessionLexer': ('pip._vendor.pygments.lexers.shell', 'PowerShell Session', ('pwsh-session', 'ps1con'), (), ()), - 'PraatLexer': ('pip._vendor.pygments.lexers.praat', 'Praat', ('praat',), ('*.praat', '*.proc', '*.psc'), ()), - 'ProcfileLexer': ('pip._vendor.pygments.lexers.procfile', 'Procfile', ('procfile',), ('Procfile',), ()), - 'PrologLexer': ('pip._vendor.pygments.lexers.prolog', 'Prolog', ('prolog',), ('*.ecl', '*.prolog', '*.pro', '*.pl'), ('text/x-prolog',)), - 'PromQLLexer': ('pip._vendor.pygments.lexers.promql', 'PromQL', ('promql',), ('*.promql',), ()), - 'PromelaLexer': ('pip._vendor.pygments.lexers.c_like', 'Promela', ('promela',), ('*.pml', '*.prom', '*.prm', '*.promela', '*.pr', '*.pm'), ('text/x-promela',)), - 'PropertiesLexer': ('pip._vendor.pygments.lexers.configs', 'Properties', ('properties', 'jproperties'), ('*.properties',), ('text/x-java-properties',)), - 'ProtoBufLexer': ('pip._vendor.pygments.lexers.dsls', 'Protocol Buffer', ('protobuf', 'proto'), ('*.proto',), ()), - 'PrqlLexer': ('pip._vendor.pygments.lexers.prql', 'PRQL', ('prql',), ('*.prql',), ('application/prql', 'application/x-prql')), - 'PsyshConsoleLexer': ('pip._vendor.pygments.lexers.php', 'PsySH console session for PHP', ('psysh',), (), ()), - 'PtxLexer': ('pip._vendor.pygments.lexers.ptx', 'PTX', ('ptx',), ('*.ptx',), ('text/x-ptx',)), - 'PugLexer': ('pip._vendor.pygments.lexers.html', 'Pug', ('pug', 'jade'), ('*.pug', '*.jade'), ('text/x-pug', 'text/x-jade')), - 'PuppetLexer': ('pip._vendor.pygments.lexers.dsls', 'Puppet', ('puppet',), ('*.pp',), ()), - 'PyPyLogLexer': ('pip._vendor.pygments.lexers.console', 'PyPy Log', ('pypylog', 'pypy'), ('*.pypylog',), ('application/x-pypylog',)), - 'Python2Lexer': ('pip._vendor.pygments.lexers.python', 'Python 2.x', ('python2', 'py2'), (), ('text/x-python2', 'application/x-python2')), - 'Python2TracebackLexer': ('pip._vendor.pygments.lexers.python', 'Python 2.x Traceback', ('py2tb',), ('*.py2tb',), ('text/x-python2-traceback',)), - 'PythonConsoleLexer': ('pip._vendor.pygments.lexers.python', 'Python console session', ('pycon', 'python-console'), (), ('text/x-python-doctest',)), - 'PythonLexer': ('pip._vendor.pygments.lexers.python', 'Python', ('python', 'py', 'sage', 'python3', 'py3', 'bazel', 'starlark', 'pyi'), ('*.py', '*.pyw', '*.pyi', '*.jy', '*.sage', '*.sc', 'SConstruct', 'SConscript', '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE', '*.tac'), ('text/x-python', 'application/x-python', 'text/x-python3', 'application/x-python3')), - 'PythonTracebackLexer': ('pip._vendor.pygments.lexers.python', 'Python Traceback', ('pytb', 'py3tb'), ('*.pytb', '*.py3tb'), ('text/x-python-traceback', 'text/x-python3-traceback')), - 'PythonUL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'Python+UL4', ('py+ul4',), ('*.pyul4',), ()), - 'QBasicLexer': ('pip._vendor.pygments.lexers.basic', 'QBasic', ('qbasic', 'basic'), ('*.BAS', '*.bas'), ('text/basic',)), - 'QLexer': ('pip._vendor.pygments.lexers.q', 'Q', ('q',), ('*.q',), ()), - 'QVToLexer': ('pip._vendor.pygments.lexers.qvt', 'QVTO', ('qvto', 'qvt'), ('*.qvto',), ()), - 'QlikLexer': ('pip._vendor.pygments.lexers.qlik', 'Qlik', ('qlik', 'qlikview', 'qliksense', 'qlikscript'), ('*.qvs', '*.qvw'), ()), - 'QmlLexer': ('pip._vendor.pygments.lexers.webmisc', 'QML', ('qml', 'qbs'), ('*.qml', '*.qbs'), ('application/x-qml', 'application/x-qt.qbs+qml')), - 'RConsoleLexer': ('pip._vendor.pygments.lexers.r', 'RConsole', ('rconsole', 'rout'), ('*.Rout',), ()), - 'RNCCompactLexer': ('pip._vendor.pygments.lexers.rnc', 'Relax-NG Compact', ('rng-compact', 'rnc'), ('*.rnc',), ()), - 'RPMSpecLexer': ('pip._vendor.pygments.lexers.installers', 'RPMSpec', ('spec',), ('*.spec',), ('text/x-rpm-spec',)), - 'RacketLexer': ('pip._vendor.pygments.lexers.lisp', 'Racket', ('racket', 'rkt'), ('*.rkt', '*.rktd', '*.rktl'), ('text/x-racket', 'application/x-racket')), - 'RagelCLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in C Host', ('ragel-c',), ('*.rl',), ()), - 'RagelCppLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in CPP Host', ('ragel-cpp',), ('*.rl',), ()), - 'RagelDLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in D Host', ('ragel-d',), ('*.rl',), ()), - 'RagelEmbeddedLexer': ('pip._vendor.pygments.lexers.parsers', 'Embedded Ragel', ('ragel-em',), ('*.rl',), ()), - 'RagelJavaLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in Java Host', ('ragel-java',), ('*.rl',), ()), - 'RagelLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel', ('ragel',), (), ()), - 'RagelObjectiveCLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in Objective C Host', ('ragel-objc',), ('*.rl',), ()), - 'RagelRubyLexer': ('pip._vendor.pygments.lexers.parsers', 'Ragel in Ruby Host', ('ragel-ruby', 'ragel-rb'), ('*.rl',), ()), - 'RawTokenLexer': ('pip._vendor.pygments.lexers.special', 'Raw token data', (), (), ('application/x-pygments-tokens',)), - 'RdLexer': ('pip._vendor.pygments.lexers.r', 'Rd', ('rd',), ('*.Rd',), ('text/x-r-doc',)), - 'ReasonLexer': ('pip._vendor.pygments.lexers.ml', 'ReasonML', ('reasonml', 'reason'), ('*.re', '*.rei'), ('text/x-reasonml',)), - 'RebolLexer': ('pip._vendor.pygments.lexers.rebol', 'REBOL', ('rebol',), ('*.r', '*.r3', '*.reb'), ('text/x-rebol',)), - 'RedLexer': ('pip._vendor.pygments.lexers.rebol', 'Red', ('red', 'red/system'), ('*.red', '*.reds'), ('text/x-red', 'text/x-red-system')), - 'RedcodeLexer': ('pip._vendor.pygments.lexers.esoteric', 'Redcode', ('redcode',), ('*.cw',), ()), - 'RegeditLexer': ('pip._vendor.pygments.lexers.configs', 'reg', ('registry',), ('*.reg',), ('text/x-windows-registry',)), - 'RegoLexer': ('pip._vendor.pygments.lexers.rego', 'Rego', ('rego',), ('*.rego',), ('text/x-rego',)), - 'ResourceLexer': ('pip._vendor.pygments.lexers.resource', 'ResourceBundle', ('resourcebundle', 'resource'), (), ()), - 'RexxLexer': ('pip._vendor.pygments.lexers.scripting', 'Rexx', ('rexx', 'arexx'), ('*.rexx', '*.rex', '*.rx', '*.arexx'), ('text/x-rexx',)), - 'RhtmlLexer': ('pip._vendor.pygments.lexers.templates', 'RHTML', ('rhtml', 'html+erb', 'html+ruby'), ('*.rhtml',), ('text/html+ruby',)), - 'RideLexer': ('pip._vendor.pygments.lexers.ride', 'Ride', ('ride',), ('*.ride',), ('text/x-ride',)), - 'RitaLexer': ('pip._vendor.pygments.lexers.rita', 'Rita', ('rita',), ('*.rita',), ('text/rita',)), - 'RoboconfGraphLexer': ('pip._vendor.pygments.lexers.roboconf', 'Roboconf Graph', ('roboconf-graph',), ('*.graph',), ()), - 'RoboconfInstancesLexer': ('pip._vendor.pygments.lexers.roboconf', 'Roboconf Instances', ('roboconf-instances',), ('*.instances',), ()), - 'RobotFrameworkLexer': ('pip._vendor.pygments.lexers.robotframework', 'RobotFramework', ('robotframework',), ('*.robot', '*.resource'), ('text/x-robotframework',)), - 'RqlLexer': ('pip._vendor.pygments.lexers.sql', 'RQL', ('rql',), ('*.rql',), ('text/x-rql',)), - 'RslLexer': ('pip._vendor.pygments.lexers.dsls', 'RSL', ('rsl',), ('*.rsl',), ('text/rsl',)), - 'RstLexer': ('pip._vendor.pygments.lexers.markup', 'reStructuredText', ('restructuredtext', 'rst', 'rest'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')), - 'RtsLexer': ('pip._vendor.pygments.lexers.trafficscript', 'TrafficScript', ('trafficscript', 'rts'), ('*.rts',), ()), - 'RubyConsoleLexer': ('pip._vendor.pygments.lexers.ruby', 'Ruby irb session', ('rbcon', 'irb'), (), ('text/x-ruby-shellsession',)), - 'RubyLexer': ('pip._vendor.pygments.lexers.ruby', 'Ruby', ('ruby', 'rb', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby', 'Gemfile', 'Vagrantfile'), ('text/x-ruby', 'application/x-ruby')), - 'RustLexer': ('pip._vendor.pygments.lexers.rust', 'Rust', ('rust', 'rs'), ('*.rs', '*.rs.in'), ('text/rust', 'text/x-rust')), - 'SASLexer': ('pip._vendor.pygments.lexers.sas', 'SAS', ('sas',), ('*.SAS', '*.sas'), ('text/x-sas', 'text/sas', 'application/x-sas')), - 'SLexer': ('pip._vendor.pygments.lexers.r', 'S', ('splus', 's', 'r'), ('*.S', '*.R', '.Rhistory', '.Rprofile', '.Renviron'), ('text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r', 'text/x-R', 'text/x-r-history', 'text/x-r-profile')), - 'SMLLexer': ('pip._vendor.pygments.lexers.ml', 'Standard ML', ('sml',), ('*.sml', '*.sig', '*.fun'), ('text/x-standardml', 'application/x-standardml')), - 'SNBTLexer': ('pip._vendor.pygments.lexers.minecraft', 'SNBT', ('snbt',), ('*.snbt',), ('text/snbt',)), - 'SarlLexer': ('pip._vendor.pygments.lexers.jvm', 'SARL', ('sarl',), ('*.sarl',), ('text/x-sarl',)), - 'SassLexer': ('pip._vendor.pygments.lexers.css', 'Sass', ('sass',), ('*.sass',), ('text/x-sass',)), - 'SaviLexer': ('pip._vendor.pygments.lexers.savi', 'Savi', ('savi',), ('*.savi',), ()), - 'ScalaLexer': ('pip._vendor.pygments.lexers.jvm', 'Scala', ('scala',), ('*.scala',), ('text/x-scala',)), - 'ScamlLexer': ('pip._vendor.pygments.lexers.html', 'Scaml', ('scaml',), ('*.scaml',), ('text/x-scaml',)), - 'ScdocLexer': ('pip._vendor.pygments.lexers.scdoc', 'scdoc', ('scdoc', 'scd'), ('*.scd', '*.scdoc'), ()), - 'SchemeLexer': ('pip._vendor.pygments.lexers.lisp', 'Scheme', ('scheme', 'scm'), ('*.scm', '*.ss'), ('text/x-scheme', 'application/x-scheme')), - 'ScilabLexer': ('pip._vendor.pygments.lexers.matlab', 'Scilab', ('scilab',), ('*.sci', '*.sce', '*.tst'), ('text/scilab',)), - 'ScssLexer': ('pip._vendor.pygments.lexers.css', 'SCSS', ('scss',), ('*.scss',), ('text/x-scss',)), - 'SedLexer': ('pip._vendor.pygments.lexers.textedit', 'Sed', ('sed', 'gsed', 'ssed'), ('*.sed', '*.[gs]sed'), ('text/x-sed',)), - 'ShExCLexer': ('pip._vendor.pygments.lexers.rdf', 'ShExC', ('shexc', 'shex'), ('*.shex',), ('text/shex',)), - 'ShenLexer': ('pip._vendor.pygments.lexers.lisp', 'Shen', ('shen',), ('*.shen',), ('text/x-shen', 'application/x-shen')), - 'SieveLexer': ('pip._vendor.pygments.lexers.sieve', 'Sieve', ('sieve',), ('*.siv', '*.sieve'), ()), - 'SilverLexer': ('pip._vendor.pygments.lexers.verification', 'Silver', ('silver',), ('*.sil', '*.vpr'), ()), - 'SingularityLexer': ('pip._vendor.pygments.lexers.configs', 'Singularity', ('singularity',), ('*.def', 'Singularity'), ()), - 'SlashLexer': ('pip._vendor.pygments.lexers.slash', 'Slash', ('slash',), ('*.sla',), ()), - 'SlimLexer': ('pip._vendor.pygments.lexers.webmisc', 'Slim', ('slim',), ('*.slim',), ('text/x-slim',)), - 'SlurmBashLexer': ('pip._vendor.pygments.lexers.shell', 'Slurm', ('slurm', 'sbatch'), ('*.sl',), ()), - 'SmaliLexer': ('pip._vendor.pygments.lexers.dalvik', 'Smali', ('smali',), ('*.smali',), ('text/smali',)), - 'SmalltalkLexer': ('pip._vendor.pygments.lexers.smalltalk', 'Smalltalk', ('smalltalk', 'squeak', 'st'), ('*.st',), ('text/x-smalltalk',)), - 'SmartGameFormatLexer': ('pip._vendor.pygments.lexers.sgf', 'SmartGameFormat', ('sgf',), ('*.sgf',), ()), - 'SmartyLexer': ('pip._vendor.pygments.lexers.templates', 'Smarty', ('smarty',), ('*.tpl',), ('application/x-smarty',)), - 'SmithyLexer': ('pip._vendor.pygments.lexers.smithy', 'Smithy', ('smithy',), ('*.smithy',), ()), - 'SnobolLexer': ('pip._vendor.pygments.lexers.snobol', 'Snobol', ('snobol',), ('*.snobol',), ('text/x-snobol',)), - 'SnowballLexer': ('pip._vendor.pygments.lexers.dsls', 'Snowball', ('snowball',), ('*.sbl',), ()), - 'SolidityLexer': ('pip._vendor.pygments.lexers.solidity', 'Solidity', ('solidity',), ('*.sol',), ()), - 'SoongLexer': ('pip._vendor.pygments.lexers.soong', 'Soong', ('androidbp', 'bp', 'soong'), ('Android.bp',), ()), - 'SophiaLexer': ('pip._vendor.pygments.lexers.sophia', 'Sophia', ('sophia',), ('*.aes',), ()), - 'SourcePawnLexer': ('pip._vendor.pygments.lexers.pawn', 'SourcePawn', ('sp',), ('*.sp',), ('text/x-sourcepawn',)), - 'SourcesListLexer': ('pip._vendor.pygments.lexers.installers', 'Debian Sourcelist', ('debsources', 'sourceslist', 'sources.list'), ('sources.list',), ()), - 'SparqlLexer': ('pip._vendor.pygments.lexers.rdf', 'SPARQL', ('sparql',), ('*.rq', '*.sparql'), ('application/sparql-query',)), - 'SpiceLexer': ('pip._vendor.pygments.lexers.spice', 'Spice', ('spice', 'spicelang'), ('*.spice',), ('text/x-spice',)), - 'SqlJinjaLexer': ('pip._vendor.pygments.lexers.templates', 'SQL+Jinja', ('sql+jinja',), ('*.sql', '*.sql.j2', '*.sql.jinja2'), ()), - 'SqlLexer': ('pip._vendor.pygments.lexers.sql', 'SQL', ('sql',), ('*.sql',), ('text/x-sql',)), - 'SqliteConsoleLexer': ('pip._vendor.pygments.lexers.sql', 'sqlite3con', ('sqlite3',), ('*.sqlite3-console',), ('text/x-sqlite3-console',)), - 'SquidConfLexer': ('pip._vendor.pygments.lexers.configs', 'SquidConf', ('squidconf', 'squid.conf', 'squid'), ('squid.conf',), ('text/x-squidconf',)), - 'SrcinfoLexer': ('pip._vendor.pygments.lexers.srcinfo', 'Srcinfo', ('srcinfo',), ('.SRCINFO',), ()), - 'SspLexer': ('pip._vendor.pygments.lexers.templates', 'Scalate Server Page', ('ssp',), ('*.ssp',), ('application/x-ssp',)), - 'StanLexer': ('pip._vendor.pygments.lexers.modeling', 'Stan', ('stan',), ('*.stan',), ()), - 'StataLexer': ('pip._vendor.pygments.lexers.stata', 'Stata', ('stata', 'do'), ('*.do', '*.ado'), ('text/x-stata', 'text/stata', 'application/x-stata')), - 'SuperColliderLexer': ('pip._vendor.pygments.lexers.supercollider', 'SuperCollider', ('supercollider', 'sc'), ('*.sc', '*.scd'), ('application/supercollider', 'text/supercollider')), - 'SwiftLexer': ('pip._vendor.pygments.lexers.objective', 'Swift', ('swift',), ('*.swift',), ('text/x-swift',)), - 'SwigLexer': ('pip._vendor.pygments.lexers.c_like', 'SWIG', ('swig',), ('*.swg', '*.i'), ('text/swig',)), - 'SystemVerilogLexer': ('pip._vendor.pygments.lexers.hdl', 'systemverilog', ('systemverilog', 'sv'), ('*.sv', '*.svh'), ('text/x-systemverilog',)), - 'SystemdLexer': ('pip._vendor.pygments.lexers.configs', 'Systemd', ('systemd',), ('*.service', '*.socket', '*.device', '*.mount', '*.automount', '*.swap', '*.target', '*.path', '*.timer', '*.slice', '*.scope'), ()), - 'TAPLexer': ('pip._vendor.pygments.lexers.testing', 'TAP', ('tap',), ('*.tap',), ()), - 'TNTLexer': ('pip._vendor.pygments.lexers.tnt', 'Typographic Number Theory', ('tnt',), ('*.tnt',), ()), - 'TOMLLexer': ('pip._vendor.pygments.lexers.configs', 'TOML', ('toml',), ('*.toml', 'Pipfile', 'poetry.lock'), ('application/toml',)), - 'TableGenLexer': ('pip._vendor.pygments.lexers.tablegen', 'TableGen', ('tablegen', 'td'), ('*.td',), ()), - 'TactLexer': ('pip._vendor.pygments.lexers.tact', 'Tact', ('tact',), ('*.tact',), ()), - 'Tads3Lexer': ('pip._vendor.pygments.lexers.int_fiction', 'TADS 3', ('tads3',), ('*.t',), ()), - 'TalLexer': ('pip._vendor.pygments.lexers.tal', 'Tal', ('tal', 'uxntal'), ('*.tal',), ('text/x-uxntal',)), - 'TasmLexer': ('pip._vendor.pygments.lexers.asm', 'TASM', ('tasm',), ('*.asm', '*.ASM', '*.tasm'), ('text/x-tasm',)), - 'TclLexer': ('pip._vendor.pygments.lexers.tcl', 'Tcl', ('tcl',), ('*.tcl', '*.rvt'), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')), - 'TcshLexer': ('pip._vendor.pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)), - 'TcshSessionLexer': ('pip._vendor.pygments.lexers.shell', 'Tcsh Session', ('tcshcon',), (), ()), - 'TeaTemplateLexer': ('pip._vendor.pygments.lexers.templates', 'Tea', ('tea',), ('*.tea',), ('text/x-tea',)), - 'TealLexer': ('pip._vendor.pygments.lexers.teal', 'teal', ('teal',), ('*.teal',), ()), - 'TeraTermLexer': ('pip._vendor.pygments.lexers.teraterm', 'Tera Term macro', ('teratermmacro', 'teraterm', 'ttl'), ('*.ttl',), ('text/x-teratermmacro',)), - 'TermcapLexer': ('pip._vendor.pygments.lexers.configs', 'Termcap', ('termcap',), ('termcap', 'termcap.src'), ()), - 'TerminfoLexer': ('pip._vendor.pygments.lexers.configs', 'Terminfo', ('terminfo',), ('terminfo', 'terminfo.src'), ()), - 'TerraformLexer': ('pip._vendor.pygments.lexers.configs', 'Terraform', ('terraform', 'tf', 'hcl'), ('*.tf', '*.hcl'), ('application/x-tf', 'application/x-terraform')), - 'TexLexer': ('pip._vendor.pygments.lexers.markup', 'TeX', ('tex', 'latex'), ('*.tex', '*.aux', '*.toc'), ('text/x-tex', 'text/x-latex')), - 'TextLexer': ('pip._vendor.pygments.lexers.special', 'Text only', ('text',), ('*.txt',), ('text/plain',)), - 'ThingsDBLexer': ('pip._vendor.pygments.lexers.thingsdb', 'ThingsDB', ('ti', 'thingsdb'), ('*.ti',), ()), - 'ThriftLexer': ('pip._vendor.pygments.lexers.dsls', 'Thrift', ('thrift',), ('*.thrift',), ('application/x-thrift',)), - 'TiddlyWiki5Lexer': ('pip._vendor.pygments.lexers.markup', 'tiddler', ('tid',), ('*.tid',), ('text/vnd.tiddlywiki',)), - 'TlbLexer': ('pip._vendor.pygments.lexers.tlb', 'Tl-b', ('tlb',), ('*.tlb',), ()), - 'TlsLexer': ('pip._vendor.pygments.lexers.tls', 'TLS Presentation Language', ('tls',), (), ()), - 'TodotxtLexer': ('pip._vendor.pygments.lexers.textfmts', 'Todotxt', ('todotxt',), ('todo.txt', '*.todotxt'), ('text/x-todo',)), - 'TransactSqlLexer': ('pip._vendor.pygments.lexers.sql', 'Transact-SQL', ('tsql', 't-sql'), ('*.sql',), ('text/x-tsql',)), - 'TreetopLexer': ('pip._vendor.pygments.lexers.parsers', 'Treetop', ('treetop',), ('*.treetop', '*.tt'), ()), - 'TsxLexer': ('pip._vendor.pygments.lexers.jsx', 'TSX', ('tsx',), ('*.tsx',), ('text/typescript-tsx',)), - 'TurtleLexer': ('pip._vendor.pygments.lexers.rdf', 'Turtle', ('turtle',), ('*.ttl',), ('text/turtle', 'application/x-turtle')), - 'TwigHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Twig', ('html+twig',), ('*.twig',), ('text/html+twig',)), - 'TwigLexer': ('pip._vendor.pygments.lexers.templates', 'Twig', ('twig',), (), ('application/x-twig',)), - 'TypeScriptLexer': ('pip._vendor.pygments.lexers.javascript', 'TypeScript', ('typescript', 'ts'), ('*.ts',), ('application/x-typescript', 'text/x-typescript')), - 'TypoScriptCssDataLexer': ('pip._vendor.pygments.lexers.typoscript', 'TypoScriptCssData', ('typoscriptcssdata',), (), ()), - 'TypoScriptHtmlDataLexer': ('pip._vendor.pygments.lexers.typoscript', 'TypoScriptHtmlData', ('typoscripthtmldata',), (), ()), - 'TypoScriptLexer': ('pip._vendor.pygments.lexers.typoscript', 'TypoScript', ('typoscript',), ('*.typoscript',), ('text/x-typoscript',)), - 'TypstLexer': ('pip._vendor.pygments.lexers.typst', 'Typst', ('typst',), ('*.typ',), ('text/x-typst',)), - 'UL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'UL4', ('ul4',), ('*.ul4',), ()), - 'UcodeLexer': ('pip._vendor.pygments.lexers.unicon', 'ucode', ('ucode',), ('*.u', '*.u1', '*.u2'), ()), - 'UniconLexer': ('pip._vendor.pygments.lexers.unicon', 'Unicon', ('unicon',), ('*.icn',), ('text/unicon',)), - 'UnixConfigLexer': ('pip._vendor.pygments.lexers.configs', 'Unix/Linux config files', ('unixconfig', 'linuxconfig'), (), ()), - 'UrbiscriptLexer': ('pip._vendor.pygments.lexers.urbi', 'UrbiScript', ('urbiscript',), ('*.u',), ('application/x-urbiscript',)), - 'UrlEncodedLexer': ('pip._vendor.pygments.lexers.html', 'urlencoded', ('urlencoded',), (), ('application/x-www-form-urlencoded',)), - 'UsdLexer': ('pip._vendor.pygments.lexers.usd', 'USD', ('usd', 'usda'), ('*.usd', '*.usda'), ()), - 'VBScriptLexer': ('pip._vendor.pygments.lexers.basic', 'VBScript', ('vbscript',), ('*.vbs', '*.VBS'), ()), - 'VCLLexer': ('pip._vendor.pygments.lexers.varnish', 'VCL', ('vcl',), ('*.vcl',), ('text/x-vclsrc',)), - 'VCLSnippetLexer': ('pip._vendor.pygments.lexers.varnish', 'VCLSnippets', ('vclsnippets', 'vclsnippet'), (), ('text/x-vclsnippet',)), - 'VCTreeStatusLexer': ('pip._vendor.pygments.lexers.console', 'VCTreeStatus', ('vctreestatus',), (), ()), - 'VGLLexer': ('pip._vendor.pygments.lexers.dsls', 'VGL', ('vgl',), ('*.rpf',), ()), - 'ValaLexer': ('pip._vendor.pygments.lexers.c_like', 'Vala', ('vala', 'vapi'), ('*.vala', '*.vapi'), ('text/x-vala',)), - 'VbNetAspxLexer': ('pip._vendor.pygments.lexers.dotnet', 'aspx-vb', ('aspx-vb',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()), - 'VbNetLexer': ('pip._vendor.pygments.lexers.dotnet', 'VB.net', ('vb.net', 'vbnet', 'lobas', 'oobas', 'sobas', 'visual-basic', 'visualbasic'), ('*.vb', '*.bas'), ('text/x-vbnet', 'text/x-vba')), - 'VelocityHtmlLexer': ('pip._vendor.pygments.lexers.templates', 'HTML+Velocity', ('html+velocity',), (), ('text/html+velocity',)), - 'VelocityLexer': ('pip._vendor.pygments.lexers.templates', 'Velocity', ('velocity',), ('*.vm', '*.fhtml'), ()), - 'VelocityXmlLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Velocity', ('xml+velocity',), (), ('application/xml+velocity',)), - 'VerifpalLexer': ('pip._vendor.pygments.lexers.verifpal', 'Verifpal', ('verifpal',), ('*.vp',), ('text/x-verifpal',)), - 'VerilogLexer': ('pip._vendor.pygments.lexers.hdl', 'verilog', ('verilog', 'v'), ('*.v',), ('text/x-verilog',)), - 'VhdlLexer': ('pip._vendor.pygments.lexers.hdl', 'vhdl', ('vhdl',), ('*.vhdl', '*.vhd'), ('text/x-vhdl',)), - 'VimLexer': ('pip._vendor.pygments.lexers.textedit', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc', 'vimrc', 'gvimrc'), ('text/x-vim',)), - 'VisualPrologGrammarLexer': ('pip._vendor.pygments.lexers.vip', 'Visual Prolog Grammar', ('visualprologgrammar',), ('*.vipgrm',), ()), - 'VisualPrologLexer': ('pip._vendor.pygments.lexers.vip', 'Visual Prolog', ('visualprolog',), ('*.pro', '*.cl', '*.i', '*.pack', '*.ph'), ()), - 'VueLexer': ('pip._vendor.pygments.lexers.html', 'Vue', ('vue',), ('*.vue',), ()), - 'VyperLexer': ('pip._vendor.pygments.lexers.vyper', 'Vyper', ('vyper',), ('*.vy',), ()), - 'WDiffLexer': ('pip._vendor.pygments.lexers.diff', 'WDiff', ('wdiff',), ('*.wdiff',), ()), - 'WatLexer': ('pip._vendor.pygments.lexers.webassembly', 'WebAssembly', ('wast', 'wat'), ('*.wat', '*.wast'), ()), - 'WebIDLLexer': ('pip._vendor.pygments.lexers.webidl', 'Web IDL', ('webidl',), ('*.webidl',), ()), - 'WgslLexer': ('pip._vendor.pygments.lexers.wgsl', 'WebGPU Shading Language', ('wgsl',), ('*.wgsl',), ('text/wgsl',)), - 'WhileyLexer': ('pip._vendor.pygments.lexers.whiley', 'Whiley', ('whiley',), ('*.whiley',), ('text/x-whiley',)), - 'WikitextLexer': ('pip._vendor.pygments.lexers.markup', 'Wikitext', ('wikitext', 'mediawiki'), (), ('text/x-wiki',)), - 'WoWTocLexer': ('pip._vendor.pygments.lexers.wowtoc', 'World of Warcraft TOC', ('wowtoc',), ('*.toc',), ()), - 'WrenLexer': ('pip._vendor.pygments.lexers.wren', 'Wren', ('wren',), ('*.wren',), ()), - 'X10Lexer': ('pip._vendor.pygments.lexers.x10', 'X10', ('x10', 'xten'), ('*.x10',), ('text/x-x10',)), - 'XMLUL4Lexer': ('pip._vendor.pygments.lexers.ul4', 'XML+UL4', ('xml+ul4',), ('*.xmlul4',), ()), - 'XQueryLexer': ('pip._vendor.pygments.lexers.webmisc', 'XQuery', ('xquery', 'xqy', 'xq', 'xql', 'xqm'), ('*.xqy', '*.xquery', '*.xq', '*.xql', '*.xqm'), ('text/xquery', 'application/xquery')), - 'XmlDjangoLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Django/Jinja', ('xml+django', 'xml+jinja'), ('*.xml.j2', '*.xml.jinja2'), ('application/xml+django', 'application/xml+jinja')), - 'XmlErbLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Ruby', ('xml+ruby', 'xml+erb'), (), ('application/xml+ruby',)), - 'XmlLexer': ('pip._vendor.pygments.lexers.html', 'XML', ('xml',), ('*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd', '*.wsdl', '*.wsf'), ('text/xml', 'application/xml', 'image/svg+xml', 'application/rss+xml', 'application/atom+xml')), - 'XmlPhpLexer': ('pip._vendor.pygments.lexers.templates', 'XML+PHP', ('xml+php',), (), ('application/xml+php',)), - 'XmlSmartyLexer': ('pip._vendor.pygments.lexers.templates', 'XML+Smarty', ('xml+smarty',), (), ('application/xml+smarty',)), - 'XorgLexer': ('pip._vendor.pygments.lexers.xorg', 'Xorg', ('xorg.conf',), ('xorg.conf',), ()), - 'XppLexer': ('pip._vendor.pygments.lexers.dotnet', 'X++', ('xpp', 'x++'), ('*.xpp',), ()), - 'XsltLexer': ('pip._vendor.pygments.lexers.html', 'XSLT', ('xslt',), ('*.xsl', '*.xslt', '*.xpl'), ('application/xsl+xml', 'application/xslt+xml')), - 'XtendLexer': ('pip._vendor.pygments.lexers.jvm', 'Xtend', ('xtend',), ('*.xtend',), ('text/x-xtend',)), - 'XtlangLexer': ('pip._vendor.pygments.lexers.lisp', 'xtlang', ('extempore',), ('*.xtm',), ()), - 'YamlJinjaLexer': ('pip._vendor.pygments.lexers.templates', 'YAML+Jinja', ('yaml+jinja', 'salt', 'sls'), ('*.sls', '*.yaml.j2', '*.yml.j2', '*.yaml.jinja2', '*.yml.jinja2'), ('text/x-yaml+jinja', 'text/x-sls')), - 'YamlLexer': ('pip._vendor.pygments.lexers.data', 'YAML', ('yaml',), ('*.yaml', '*.yml'), ('text/x-yaml',)), - 'YangLexer': ('pip._vendor.pygments.lexers.yang', 'YANG', ('yang',), ('*.yang',), ('application/yang',)), - 'YaraLexer': ('pip._vendor.pygments.lexers.yara', 'YARA', ('yara', 'yar'), ('*.yar',), ('text/x-yara',)), - 'ZeekLexer': ('pip._vendor.pygments.lexers.dsls', 'Zeek', ('zeek', 'bro'), ('*.zeek', '*.bro'), ()), - 'ZephirLexer': ('pip._vendor.pygments.lexers.php', 'Zephir', ('zephir',), ('*.zep',), ()), - 'ZigLexer': ('pip._vendor.pygments.lexers.zig', 'Zig', ('zig',), ('*.zig',), ('text/zig',)), - 'apdlexer': ('pip._vendor.pygments.lexers.apdlexer', 'ANSYS parametric design language', ('ansys', 'apdl'), ('*.ans',), ()), + "ABAPLexer": ( + "pip._vendor.pygments.lexers.business", + "ABAP", + ("abap",), + ("*.abap", "*.ABAP"), + ("text/x-abap",), + ), + "AMDGPULexer": ( + "pip._vendor.pygments.lexers.amdgpu", + "AMDGPU", + ("amdgpu",), + ("*.isa",), + (), + ), + "APLLexer": ( + "pip._vendor.pygments.lexers.apl", + "APL", + ("apl",), + ("*.apl", "*.aplf", "*.aplo", "*.apln", "*.aplc", "*.apli", "*.dyalog"), + (), + ), + "AbnfLexer": ( + "pip._vendor.pygments.lexers.grammar_notation", + "ABNF", + ("abnf",), + ("*.abnf",), + ("text/x-abnf",), + ), + "ActionScript3Lexer": ( + "pip._vendor.pygments.lexers.actionscript", + "ActionScript 3", + ("actionscript3", "as3"), + ("*.as",), + ("application/x-actionscript3", "text/x-actionscript3", "text/actionscript3"), + ), + "ActionScriptLexer": ( + "pip._vendor.pygments.lexers.actionscript", + "ActionScript", + ("actionscript", "as"), + ("*.as",), + ("application/x-actionscript", "text/x-actionscript", "text/actionscript"), + ), + "AdaLexer": ( + "pip._vendor.pygments.lexers.ada", + "Ada", + ("ada", "ada95", "ada2005"), + ("*.adb", "*.ads", "*.ada"), + ("text/x-ada",), + ), + "AdlLexer": ( + "pip._vendor.pygments.lexers.archetype", + "ADL", + ("adl",), + ("*.adl", "*.adls", "*.adlf", "*.adlx"), + (), + ), + "AgdaLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Agda", + ("agda",), + ("*.agda",), + ("text/x-agda",), + ), + "AheuiLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "Aheui", + ("aheui",), + ("*.aheui",), + (), + ), + "AlloyLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Alloy", + ("alloy",), + ("*.als",), + ("text/x-alloy",), + ), + "AmbientTalkLexer": ( + "pip._vendor.pygments.lexers.ambient", + "AmbientTalk", + ("ambienttalk", "ambienttalk/2", "at"), + ("*.at",), + ("text/x-ambienttalk",), + ), + "AmplLexer": ( + "pip._vendor.pygments.lexers.ampl", + "Ampl", + ("ampl",), + ("*.run",), + (), + ), + "Angular2HtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML + Angular2", + ("html+ng2",), + ("*.ng2",), + (), + ), + "Angular2Lexer": ( + "pip._vendor.pygments.lexers.templates", + "Angular2", + ("ng2",), + (), + (), + ), + "AntlrActionScriptLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With ActionScript Target", + ("antlr-actionscript", "antlr-as"), + ("*.G", "*.g"), + (), + ), + "AntlrCSharpLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With C# Target", + ("antlr-csharp", "antlr-c#"), + ("*.G", "*.g"), + (), + ), + "AntlrCppLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With CPP Target", + ("antlr-cpp",), + ("*.G", "*.g"), + (), + ), + "AntlrJavaLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With Java Target", + ("antlr-java",), + ("*.G", "*.g"), + (), + ), + "AntlrLexer": ("pip._vendor.pygments.lexers.parsers", "ANTLR", ("antlr",), (), ()), + "AntlrObjectiveCLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With ObjectiveC Target", + ("antlr-objc",), + ("*.G", "*.g"), + (), + ), + "AntlrPerlLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With Perl Target", + ("antlr-perl",), + ("*.G", "*.g"), + (), + ), + "AntlrPythonLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With Python Target", + ("antlr-python",), + ("*.G", "*.g"), + (), + ), + "AntlrRubyLexer": ( + "pip._vendor.pygments.lexers.parsers", + "ANTLR With Ruby Target", + ("antlr-ruby", "antlr-rb"), + ("*.G", "*.g"), + (), + ), + "ApacheConfLexer": ( + "pip._vendor.pygments.lexers.configs", + "ApacheConf", + ("apacheconf", "aconf", "apache"), + (".htaccess", "apache.conf", "apache2.conf"), + ("text/x-apacheconf",), + ), + "AppleScriptLexer": ( + "pip._vendor.pygments.lexers.scripting", + "AppleScript", + ("applescript",), + ("*.applescript",), + (), + ), + "ArduinoLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Arduino", + ("arduino",), + ("*.ino",), + ("text/x-arduino",), + ), + "ArrowLexer": ( + "pip._vendor.pygments.lexers.arrow", + "Arrow", + ("arrow",), + ("*.arw",), + (), + ), + "ArturoLexer": ( + "pip._vendor.pygments.lexers.arturo", + "Arturo", + ("arturo", "art"), + ("*.art",), + (), + ), + "AscLexer": ( + "pip._vendor.pygments.lexers.asc", + "ASCII armored", + ("asc", "pem"), + ( + "*.asc", + "*.pem", + "id_dsa", + "id_ecdsa", + "id_ecdsa_sk", + "id_ed25519", + "id_ed25519_sk", + "id_rsa", + ), + ( + "application/pgp-keys", + "application/pgp-encrypted", + "application/pgp-signature", + "application/pem-certificate-chain", + ), + ), + "Asn1Lexer": ( + "pip._vendor.pygments.lexers.asn1", + "ASN.1", + ("asn1",), + ("*.asn1",), + (), + ), + "AspectJLexer": ( + "pip._vendor.pygments.lexers.jvm", + "AspectJ", + ("aspectj",), + ("*.aj",), + ("text/x-aspectj",), + ), + "AsymptoteLexer": ( + "pip._vendor.pygments.lexers.graphics", + "Asymptote", + ("asymptote", "asy"), + ("*.asy",), + ("text/x-asymptote",), + ), + "AugeasLexer": ( + "pip._vendor.pygments.lexers.configs", + "Augeas", + ("augeas",), + ("*.aug",), + (), + ), + "AutoItLexer": ( + "pip._vendor.pygments.lexers.automation", + "AutoIt", + ("autoit",), + ("*.au3",), + ("text/x-autoit",), + ), + "AutohotkeyLexer": ( + "pip._vendor.pygments.lexers.automation", + "autohotkey", + ("autohotkey", "ahk"), + ("*.ahk", "*.ahkl"), + ("text/x-autohotkey",), + ), + "AwkLexer": ( + "pip._vendor.pygments.lexers.textedit", + "Awk", + ("awk", "gawk", "mawk", "nawk"), + ("*.awk",), + ("application/x-awk",), + ), + "BBCBasicLexer": ( + "pip._vendor.pygments.lexers.basic", + "BBC Basic", + ("bbcbasic",), + ("*.bbc",), + (), + ), + "BBCodeLexer": ( + "pip._vendor.pygments.lexers.markup", + "BBCode", + ("bbcode",), + (), + ("text/x-bbcode",), + ), + "BCLexer": ("pip._vendor.pygments.lexers.algebra", "BC", ("bc",), ("*.bc",), ()), + "BQNLexer": ("pip._vendor.pygments.lexers.bqn", "BQN", ("bqn",), ("*.bqn",), ()), + "BSTLexer": ( + "pip._vendor.pygments.lexers.bibtex", + "BST", + ("bst", "bst-pybtex"), + ("*.bst",), + (), + ), + "BareLexer": ( + "pip._vendor.pygments.lexers.bare", + "BARE", + ("bare",), + ("*.bare",), + (), + ), + "BaseMakefileLexer": ( + "pip._vendor.pygments.lexers.make", + "Base Makefile", + ("basemake",), + (), + (), + ), + "BashLexer": ( + "pip._vendor.pygments.lexers.shell", + "Bash", + ("bash", "sh", "ksh", "zsh", "shell", "openrc"), + ( + "*.sh", + "*.ksh", + "*.bash", + "*.ebuild", + "*.eclass", + "*.exheres-0", + "*.exlib", + "*.zsh", + ".bashrc", + "bashrc", + ".bash_*", + "bash_*", + "zshrc", + ".zshrc", + ".kshrc", + "kshrc", + "PKGBUILD", + ), + ("application/x-sh", "application/x-shellscript", "text/x-shellscript"), + ), + "BashSessionLexer": ( + "pip._vendor.pygments.lexers.shell", + "Bash Session", + ("console", "shell-session"), + ("*.sh-session", "*.shell-session"), + ("application/x-shell-session", "application/x-sh-session"), + ), + "BatchLexer": ( + "pip._vendor.pygments.lexers.shell", + "Batchfile", + ("batch", "bat", "dosbatch", "winbatch"), + ("*.bat", "*.cmd"), + ("application/x-dos-batch",), + ), + "BddLexer": ( + "pip._vendor.pygments.lexers.bdd", + "Bdd", + ("bdd",), + ("*.feature",), + ("text/x-bdd",), + ), + "BefungeLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "Befunge", + ("befunge",), + ("*.befunge",), + ("application/x-befunge",), + ), + "BerryLexer": ( + "pip._vendor.pygments.lexers.berry", + "Berry", + ("berry", "be"), + ("*.be",), + ("text/x-berry", "application/x-berry"), + ), + "BibTeXLexer": ( + "pip._vendor.pygments.lexers.bibtex", + "BibTeX", + ("bibtex", "bib"), + ("*.bib",), + ("text/x-bibtex",), + ), + "BlitzBasicLexer": ( + "pip._vendor.pygments.lexers.basic", + "BlitzBasic", + ("blitzbasic", "b3d", "bplus"), + ("*.bb", "*.decls"), + ("text/x-bb",), + ), + "BlitzMaxLexer": ( + "pip._vendor.pygments.lexers.basic", + "BlitzMax", + ("blitzmax", "bmax"), + ("*.bmx",), + ("text/x-bmx",), + ), + "BlueprintLexer": ( + "pip._vendor.pygments.lexers.blueprint", + "Blueprint", + ("blueprint",), + ("*.blp",), + ("text/x-blueprint",), + ), + "BnfLexer": ( + "pip._vendor.pygments.lexers.grammar_notation", + "BNF", + ("bnf",), + ("*.bnf",), + ("text/x-bnf",), + ), + "BoaLexer": ("pip._vendor.pygments.lexers.boa", "Boa", ("boa",), ("*.boa",), ()), + "BooLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "Boo", + ("boo",), + ("*.boo",), + ("text/x-boo",), + ), + "BoogieLexer": ( + "pip._vendor.pygments.lexers.verification", + "Boogie", + ("boogie",), + ("*.bpl",), + (), + ), + "BrainfuckLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "Brainfuck", + ("brainfuck", "bf"), + ("*.bf", "*.b"), + ("application/x-brainfuck",), + ), + "BugsLexer": ( + "pip._vendor.pygments.lexers.modeling", + "BUGS", + ("bugs", "winbugs", "openbugs"), + ("*.bug",), + (), + ), + "CAmkESLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "CAmkES", + ("camkes", "idl4"), + ("*.camkes", "*.idl4"), + (), + ), + "CLexer": ( + "pip._vendor.pygments.lexers.c_cpp", + "C", + ("c",), + ("*.c", "*.h", "*.idc", "*.x[bp]m"), + ("text/x-chdr", "text/x-csrc", "image/x-xbitmap", "image/x-xpixmap"), + ), + "CMakeLexer": ( + "pip._vendor.pygments.lexers.make", + "CMake", + ("cmake",), + ("*.cmake", "CMakeLists.txt"), + ("text/x-cmake",), + ), + "CObjdumpLexer": ( + "pip._vendor.pygments.lexers.asm", + "c-objdump", + ("c-objdump",), + ("*.c-objdump",), + ("text/x-c-objdump",), + ), + "CPSALexer": ( + "pip._vendor.pygments.lexers.lisp", + "CPSA", + ("cpsa",), + ("*.cpsa",), + (), + ), + "CSSUL4Lexer": ( + "pip._vendor.pygments.lexers.ul4", + "CSS+UL4", + ("css+ul4",), + ("*.cssul4",), + (), + ), + "CSharpAspxLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "aspx-cs", + ("aspx-cs",), + ("*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"), + (), + ), + "CSharpLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "C#", + ("csharp", "c#", "cs"), + ("*.cs",), + ("text/x-csharp",), + ), + "Ca65Lexer": ( + "pip._vendor.pygments.lexers.asm", + "ca65 assembler", + ("ca65",), + ("*.s",), + (), + ), + "CadlLexer": ( + "pip._vendor.pygments.lexers.archetype", + "cADL", + ("cadl",), + ("*.cadl",), + (), + ), + "CapDLLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "CapDL", + ("capdl",), + ("*.cdl",), + (), + ), + "CapnProtoLexer": ( + "pip._vendor.pygments.lexers.capnproto", + "Cap'n Proto", + ("capnp",), + ("*.capnp",), + (), + ), + "CarbonLexer": ( + "pip._vendor.pygments.lexers.carbon", + "Carbon", + ("carbon",), + ("*.carbon",), + ("text/x-carbon",), + ), + "CbmBasicV2Lexer": ( + "pip._vendor.pygments.lexers.basic", + "CBM BASIC V2", + ("cbmbas",), + ("*.bas",), + (), + ), + "CddlLexer": ( + "pip._vendor.pygments.lexers.cddl", + "CDDL", + ("cddl",), + ("*.cddl",), + ("text/x-cddl",), + ), + "CeylonLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Ceylon", + ("ceylon",), + ("*.ceylon",), + ("text/x-ceylon",), + ), + "Cfengine3Lexer": ( + "pip._vendor.pygments.lexers.configs", + "CFEngine3", + ("cfengine3", "cf3"), + ("*.cf",), + (), + ), + "ChaiscriptLexer": ( + "pip._vendor.pygments.lexers.scripting", + "ChaiScript", + ("chaiscript", "chai"), + ("*.chai",), + ("text/x-chaiscript", "application/x-chaiscript"), + ), + "ChapelLexer": ( + "pip._vendor.pygments.lexers.chapel", + "Chapel", + ("chapel", "chpl"), + ("*.chpl",), + (), + ), + "CharmciLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Charmci", + ("charmci",), + ("*.ci",), + (), + ), + "CheetahHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Cheetah", + ("html+cheetah", "html+spitfire", "htmlcheetah"), + (), + ("text/html+cheetah", "text/html+spitfire"), + ), + "CheetahJavascriptLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Cheetah", + ("javascript+cheetah", "js+cheetah", "javascript+spitfire", "js+spitfire"), + (), + ( + "application/x-javascript+cheetah", + "text/x-javascript+cheetah", + "text/javascript+cheetah", + "application/x-javascript+spitfire", + "text/x-javascript+spitfire", + "text/javascript+spitfire", + ), + ), + "CheetahLexer": ( + "pip._vendor.pygments.lexers.templates", + "Cheetah", + ("cheetah", "spitfire"), + ("*.tmpl", "*.spt"), + ("application/x-cheetah", "application/x-spitfire"), + ), + "CheetahXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Cheetah", + ("xml+cheetah", "xml+spitfire"), + (), + ("application/xml+cheetah", "application/xml+spitfire"), + ), + "CirruLexer": ( + "pip._vendor.pygments.lexers.webmisc", + "Cirru", + ("cirru",), + ("*.cirru",), + ("text/x-cirru",), + ), + "ClayLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Clay", + ("clay",), + ("*.clay",), + ("text/x-clay",), + ), + "CleanLexer": ( + "pip._vendor.pygments.lexers.clean", + "Clean", + ("clean",), + ("*.icl", "*.dcl"), + (), + ), + "ClojureLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Clojure", + ("clojure", "clj"), + ("*.clj", "*.cljc"), + ("text/x-clojure", "application/x-clojure"), + ), + "ClojureScriptLexer": ( + "pip._vendor.pygments.lexers.jvm", + "ClojureScript", + ("clojurescript", "cljs"), + ("*.cljs",), + ("text/x-clojurescript", "application/x-clojurescript"), + ), + "CobolFreeformatLexer": ( + "pip._vendor.pygments.lexers.business", + "COBOLFree", + ("cobolfree",), + ("*.cbl", "*.CBL"), + (), + ), + "CobolLexer": ( + "pip._vendor.pygments.lexers.business", + "COBOL", + ("cobol",), + ("*.cob", "*.COB", "*.cpy", "*.CPY"), + ("text/x-cobol",), + ), + "CodeQLLexer": ( + "pip._vendor.pygments.lexers.codeql", + "CodeQL", + ("codeql", "ql"), + ("*.ql", "*.qll"), + (), + ), + "CoffeeScriptLexer": ( + "pip._vendor.pygments.lexers.javascript", + "CoffeeScript", + ("coffeescript", "coffee-script", "coffee"), + ("*.coffee",), + ("text/coffeescript",), + ), + "ColdfusionCFCLexer": ( + "pip._vendor.pygments.lexers.templates", + "Coldfusion CFC", + ("cfc",), + ("*.cfc",), + (), + ), + "ColdfusionHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "Coldfusion HTML", + ("cfm",), + ("*.cfm", "*.cfml"), + ("application/x-coldfusion",), + ), + "ColdfusionLexer": ( + "pip._vendor.pygments.lexers.templates", + "cfstatement", + ("cfs",), + (), + (), + ), + "Comal80Lexer": ( + "pip._vendor.pygments.lexers.comal", + "COMAL-80", + ("comal", "comal80"), + ("*.cml", "*.comal"), + (), + ), + "CommonLispLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Common Lisp", + ("common-lisp", "cl", "lisp"), + ("*.cl", "*.lisp"), + ("text/x-common-lisp",), + ), + "ComponentPascalLexer": ( + "pip._vendor.pygments.lexers.oberon", + "Component Pascal", + ("componentpascal", "cp"), + ("*.cp", "*.cps"), + ("text/x-component-pascal",), + ), + "CoqLexer": ( + "pip._vendor.pygments.lexers.theorem", + "Coq", + ("coq",), + ("*.v",), + ("text/x-coq",), + ), + "CplintLexer": ( + "pip._vendor.pygments.lexers.cplint", + "cplint", + ("cplint",), + ("*.ecl", "*.prolog", "*.pro", "*.pl", "*.P", "*.lpad", "*.cpl"), + ("text/x-cplint",), + ), + "CppLexer": ( + "pip._vendor.pygments.lexers.c_cpp", + "C++", + ("cpp", "c++"), + ( + "*.cpp", + "*.hpp", + "*.c++", + "*.h++", + "*.cc", + "*.hh", + "*.cxx", + "*.hxx", + "*.C", + "*.H", + "*.cp", + "*.CPP", + "*.tpp", + ), + ("text/x-c++hdr", "text/x-c++src"), + ), + "CppObjdumpLexer": ( + "pip._vendor.pygments.lexers.asm", + "cpp-objdump", + ("cpp-objdump", "c++-objdumb", "cxx-objdump"), + ("*.cpp-objdump", "*.c++-objdump", "*.cxx-objdump"), + ("text/x-cpp-objdump",), + ), + "CrmshLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Crmsh", + ("crmsh", "pcmk"), + ("*.crmsh", "*.pcmk"), + (), + ), + "CrocLexer": ( + "pip._vendor.pygments.lexers.d", + "Croc", + ("croc",), + ("*.croc",), + ("text/x-crocsrc",), + ), + "CryptolLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Cryptol", + ("cryptol", "cry"), + ("*.cry",), + ("text/x-cryptol",), + ), + "CrystalLexer": ( + "pip._vendor.pygments.lexers.crystal", + "Crystal", + ("cr", "crystal"), + ("*.cr",), + ("text/x-crystal",), + ), + "CsoundDocumentLexer": ( + "pip._vendor.pygments.lexers.csound", + "Csound Document", + ("csound-document", "csound-csd"), + ("*.csd",), + (), + ), + "CsoundOrchestraLexer": ( + "pip._vendor.pygments.lexers.csound", + "Csound Orchestra", + ("csound", "csound-orc"), + ("*.orc", "*.udo"), + (), + ), + "CsoundScoreLexer": ( + "pip._vendor.pygments.lexers.csound", + "Csound Score", + ("csound-score", "csound-sco"), + ("*.sco",), + (), + ), + "CssDjangoLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Django/Jinja", + ("css+django", "css+jinja"), + ("*.css.j2", "*.css.jinja2"), + ("text/css+django", "text/css+jinja"), + ), + "CssErbLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Ruby", + ("css+ruby", "css+erb"), + (), + ("text/css+ruby",), + ), + "CssGenshiLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Genshi Text", + ("css+genshitext", "css+genshi"), + (), + ("text/css+genshi",), + ), + "CssLexer": ( + "pip._vendor.pygments.lexers.css", + "CSS", + ("css",), + ("*.css",), + ("text/css",), + ), + "CssPhpLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+PHP", + ("css+php",), + (), + ("text/css+php",), + ), + "CssSmartyLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Smarty", + ("css+smarty",), + (), + ("text/css+smarty",), + ), + "CudaLexer": ( + "pip._vendor.pygments.lexers.c_like", + "CUDA", + ("cuda", "cu"), + ("*.cu", "*.cuh"), + ("text/x-cuda",), + ), + "CypherLexer": ( + "pip._vendor.pygments.lexers.graph", + "Cypher", + ("cypher",), + ("*.cyp", "*.cypher"), + (), + ), + "CythonLexer": ( + "pip._vendor.pygments.lexers.python", + "Cython", + ("cython", "pyx", "pyrex"), + ("*.pyx", "*.pxd", "*.pxi"), + ("text/x-cython", "application/x-cython"), + ), + "DLexer": ( + "pip._vendor.pygments.lexers.d", + "D", + ("d",), + ("*.d", "*.di"), + ("text/x-dsrc",), + ), + "DObjdumpLexer": ( + "pip._vendor.pygments.lexers.asm", + "d-objdump", + ("d-objdump",), + ("*.d-objdump",), + ("text/x-d-objdump",), + ), + "DarcsPatchLexer": ( + "pip._vendor.pygments.lexers.diff", + "Darcs Patch", + ("dpatch",), + ("*.dpatch", "*.darcspatch"), + (), + ), + "DartLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Dart", + ("dart",), + ("*.dart",), + ("text/x-dart",), + ), + "Dasm16Lexer": ( + "pip._vendor.pygments.lexers.asm", + "DASM16", + ("dasm16",), + ("*.dasm16", "*.dasm"), + ("text/x-dasm16",), + ), + "DaxLexer": ("pip._vendor.pygments.lexers.dax", "Dax", ("dax",), ("*.dax",), ()), + "DebianControlLexer": ( + "pip._vendor.pygments.lexers.installers", + "Debian Control file", + ("debcontrol", "control"), + ("control",), + (), + ), + "DebianSourcesLexer": ( + "pip._vendor.pygments.lexers.installers", + "Debian Sources file", + ("debian.sources",), + ("*.sources",), + (), + ), + "DelphiLexer": ( + "pip._vendor.pygments.lexers.pascal", + "Delphi", + ("delphi", "pas", "pascal", "objectpascal"), + ("*.pas", "*.dpr"), + ("text/x-pascal",), + ), + "DesktopLexer": ( + "pip._vendor.pygments.lexers.configs", + "Desktop file", + ("desktop",), + ("*.desktop",), + ("application/x-desktop",), + ), + "DevicetreeLexer": ( + "pip._vendor.pygments.lexers.devicetree", + "Devicetree", + ("devicetree", "dts"), + ("*.dts", "*.dtsi"), + ("text/x-c",), + ), + "DgLexer": ( + "pip._vendor.pygments.lexers.python", + "dg", + ("dg",), + ("*.dg",), + ("text/x-dg",), + ), + "DiffLexer": ( + "pip._vendor.pygments.lexers.diff", + "Diff", + ("diff", "udiff"), + ("*.diff", "*.patch"), + ("text/x-diff", "text/x-patch"), + ), + "DjangoLexer": ( + "pip._vendor.pygments.lexers.templates", + "Django/Jinja", + ("django", "jinja"), + (), + ("application/x-django-templating", "application/x-jinja"), + ), + "DnsZoneLexer": ( + "pip._vendor.pygments.lexers.dns", + "Zone", + ("zone",), + ("*.zone",), + ("text/dns",), + ), + "DockerLexer": ( + "pip._vendor.pygments.lexers.configs", + "Docker", + ("docker", "dockerfile"), + ("Dockerfile", "*.docker"), + ("text/x-dockerfile-config",), + ), + "DtdLexer": ( + "pip._vendor.pygments.lexers.html", + "DTD", + ("dtd",), + ("*.dtd",), + ("application/xml-dtd",), + ), + "DuelLexer": ( + "pip._vendor.pygments.lexers.webmisc", + "Duel", + ("duel", "jbst", "jsonml+bst"), + ("*.duel", "*.jbst"), + ("text/x-duel", "text/x-jbst"), + ), + "DylanConsoleLexer": ( + "pip._vendor.pygments.lexers.dylan", + "Dylan session", + ("dylan-console", "dylan-repl"), + ("*.dylan-console",), + ("text/x-dylan-console",), + ), + "DylanLexer": ( + "pip._vendor.pygments.lexers.dylan", + "Dylan", + ("dylan",), + ("*.dylan", "*.dyl", "*.intr"), + ("text/x-dylan",), + ), + "DylanLidLexer": ( + "pip._vendor.pygments.lexers.dylan", + "DylanLID", + ("dylan-lid", "lid"), + ("*.lid", "*.hdp"), + ("text/x-dylan-lid",), + ), + "ECLLexer": ( + "pip._vendor.pygments.lexers.ecl", + "ECL", + ("ecl",), + ("*.ecl",), + ("application/x-ecl",), + ), + "ECLexer": ( + "pip._vendor.pygments.lexers.c_like", + "eC", + ("ec",), + ("*.ec", "*.eh"), + ("text/x-echdr", "text/x-ecsrc"), + ), + "EarlGreyLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Earl Grey", + ("earl-grey", "earlgrey", "eg"), + ("*.eg",), + ("text/x-earl-grey",), + ), + "EasytrieveLexer": ( + "pip._vendor.pygments.lexers.scripting", + "Easytrieve", + ("easytrieve",), + ("*.ezt", "*.mac"), + ("text/x-easytrieve",), + ), + "EbnfLexer": ( + "pip._vendor.pygments.lexers.parsers", + "EBNF", + ("ebnf",), + ("*.ebnf",), + ("text/x-ebnf",), + ), + "EiffelLexer": ( + "pip._vendor.pygments.lexers.eiffel", + "Eiffel", + ("eiffel",), + ("*.e",), + ("text/x-eiffel",), + ), + "ElixirConsoleLexer": ( + "pip._vendor.pygments.lexers.erlang", + "Elixir iex session", + ("iex",), + (), + ("text/x-elixir-shellsession",), + ), + "ElixirLexer": ( + "pip._vendor.pygments.lexers.erlang", + "Elixir", + ("elixir", "ex", "exs"), + ("*.ex", "*.eex", "*.exs", "*.leex"), + ("text/x-elixir",), + ), + "ElmLexer": ( + "pip._vendor.pygments.lexers.elm", + "Elm", + ("elm",), + ("*.elm",), + ("text/x-elm",), + ), + "ElpiLexer": ( + "pip._vendor.pygments.lexers.elpi", + "Elpi", + ("elpi",), + ("*.elpi",), + ("text/x-elpi",), + ), + "EmacsLispLexer": ( + "pip._vendor.pygments.lexers.lisp", + "EmacsLisp", + ("emacs-lisp", "elisp", "emacs"), + ("*.el",), + ("text/x-elisp", "application/x-elisp"), + ), + "EmailLexer": ( + "pip._vendor.pygments.lexers.email", + "E-mail", + ("email", "eml"), + ("*.eml",), + ("message/rfc822",), + ), + "ErbLexer": ( + "pip._vendor.pygments.lexers.templates", + "ERB", + ("erb",), + (), + ("application/x-ruby-templating",), + ), + "ErlangLexer": ( + "pip._vendor.pygments.lexers.erlang", + "Erlang", + ("erlang",), + ("*.erl", "*.hrl", "*.es", "*.escript"), + ("text/x-erlang",), + ), + "ErlangShellLexer": ( + "pip._vendor.pygments.lexers.erlang", + "Erlang erl session", + ("erl",), + ("*.erl-sh",), + ("text/x-erl-shellsession",), + ), + "EvoqueHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Evoque", + ("html+evoque",), + (), + ("text/html+evoque",), + ), + "EvoqueLexer": ( + "pip._vendor.pygments.lexers.templates", + "Evoque", + ("evoque",), + ("*.evoque",), + ("application/x-evoque",), + ), + "EvoqueXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Evoque", + ("xml+evoque",), + (), + ("application/xml+evoque",), + ), + "ExeclineLexer": ( + "pip._vendor.pygments.lexers.shell", + "execline", + ("execline",), + ("*.exec",), + (), + ), + "EzhilLexer": ( + "pip._vendor.pygments.lexers.ezhil", + "Ezhil", + ("ezhil",), + ("*.n",), + ("text/x-ezhil",), + ), + "FSharpLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "F#", + ("fsharp", "f#"), + ("*.fs", "*.fsi", "*.fsx"), + ("text/x-fsharp",), + ), + "FStarLexer": ( + "pip._vendor.pygments.lexers.ml", + "FStar", + ("fstar",), + ("*.fst", "*.fsti"), + ("text/x-fstar",), + ), + "FactorLexer": ( + "pip._vendor.pygments.lexers.factor", + "Factor", + ("factor",), + ("*.factor",), + ("text/x-factor",), + ), + "FancyLexer": ( + "pip._vendor.pygments.lexers.ruby", + "Fancy", + ("fancy", "fy"), + ("*.fy", "*.fancypack"), + ("text/x-fancysrc",), + ), + "FantomLexer": ( + "pip._vendor.pygments.lexers.fantom", + "Fantom", + ("fan",), + ("*.fan",), + ("application/x-fantom",), + ), + "FelixLexer": ( + "pip._vendor.pygments.lexers.felix", + "Felix", + ("felix", "flx"), + ("*.flx", "*.flxh"), + ("text/x-felix",), + ), + "FennelLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Fennel", + ("fennel", "fnl"), + ("*.fnl",), + (), + ), + "FiftLexer": ( + "pip._vendor.pygments.lexers.fift", + "Fift", + ("fift", "fif"), + ("*.fif",), + (), + ), + "FishShellLexer": ( + "pip._vendor.pygments.lexers.shell", + "Fish", + ("fish", "fishshell"), + ("*.fish", "*.load"), + ("application/x-fish",), + ), + "FlatlineLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Flatline", + ("flatline",), + (), + ("text/x-flatline",), + ), + "FloScriptLexer": ( + "pip._vendor.pygments.lexers.floscript", + "FloScript", + ("floscript", "flo"), + ("*.flo",), + (), + ), + "ForthLexer": ( + "pip._vendor.pygments.lexers.forth", + "Forth", + ("forth",), + ("*.frt", "*.fs"), + ("application/x-forth",), + ), + "FortranFixedLexer": ( + "pip._vendor.pygments.lexers.fortran", + "FortranFixed", + ("fortranfixed",), + ("*.f", "*.F"), + (), + ), + "FortranLexer": ( + "pip._vendor.pygments.lexers.fortran", + "Fortran", + ("fortran", "f90"), + ("*.f03", "*.f90", "*.F03", "*.F90"), + ("text/x-fortran",), + ), + "FoxProLexer": ( + "pip._vendor.pygments.lexers.foxpro", + "FoxPro", + ("foxpro", "vfp", "clipper", "xbase"), + ("*.PRG", "*.prg"), + (), + ), + "FreeFemLexer": ( + "pip._vendor.pygments.lexers.freefem", + "Freefem", + ("freefem",), + ("*.edp",), + ("text/x-freefem",), + ), + "FuncLexer": ( + "pip._vendor.pygments.lexers.func", + "FunC", + ("func", "fc"), + ("*.fc", "*.func"), + (), + ), + "FutharkLexer": ( + "pip._vendor.pygments.lexers.futhark", + "Futhark", + ("futhark",), + ("*.fut",), + ("text/x-futhark",), + ), + "GAPConsoleLexer": ( + "pip._vendor.pygments.lexers.algebra", + "GAP session", + ("gap-console", "gap-repl"), + ("*.tst",), + (), + ), + "GAPLexer": ( + "pip._vendor.pygments.lexers.algebra", + "GAP", + ("gap",), + ("*.g", "*.gd", "*.gi", "*.gap"), + (), + ), + "GDScriptLexer": ( + "pip._vendor.pygments.lexers.gdscript", + "GDScript", + ("gdscript", "gd"), + ("*.gd",), + ("text/x-gdscript", "application/x-gdscript"), + ), + "GLShaderLexer": ( + "pip._vendor.pygments.lexers.graphics", + "GLSL", + ("glsl",), + ("*.vert", "*.frag", "*.geo"), + ("text/x-glslsrc",), + ), + "GSQLLexer": ( + "pip._vendor.pygments.lexers.gsql", + "GSQL", + ("gsql",), + ("*.gsql",), + (), + ), + "GasLexer": ( + "pip._vendor.pygments.lexers.asm", + "GAS", + ("gas", "asm"), + ("*.s", "*.S"), + ("text/x-gas",), + ), + "GcodeLexer": ( + "pip._vendor.pygments.lexers.gcodelexer", + "g-code", + ("gcode",), + ("*.gcode",), + (), + ), + "GenshiLexer": ( + "pip._vendor.pygments.lexers.templates", + "Genshi", + ("genshi", "kid", "xml+genshi", "xml+kid"), + ("*.kid",), + ("application/x-genshi", "application/x-kid"), + ), + "GenshiTextLexer": ( + "pip._vendor.pygments.lexers.templates", + "Genshi Text", + ("genshitext",), + (), + ("application/x-genshi-text", "text/x-genshi"), + ), + "GettextLexer": ( + "pip._vendor.pygments.lexers.textfmts", + "Gettext Catalog", + ("pot", "po"), + ("*.pot", "*.po"), + ("application/x-gettext", "text/x-gettext", "text/gettext"), + ), + "GherkinLexer": ( + "pip._vendor.pygments.lexers.testing", + "Gherkin", + ("gherkin", "cucumber"), + ("*.feature",), + ("text/x-gherkin",), + ), + "GleamLexer": ( + "pip._vendor.pygments.lexers.gleam", + "Gleam", + ("gleam",), + ("*.gleam",), + ("text/x-gleam",), + ), + "GnuplotLexer": ( + "pip._vendor.pygments.lexers.graphics", + "Gnuplot", + ("gnuplot",), + ("*.plot", "*.plt"), + ("text/x-gnuplot",), + ), + "GoLexer": ( + "pip._vendor.pygments.lexers.go", + "Go", + ("go", "golang"), + ("*.go",), + ("text/x-gosrc",), + ), + "GoloLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Golo", + ("golo",), + ("*.golo",), + (), + ), + "GoodDataCLLexer": ( + "pip._vendor.pygments.lexers.business", + "GoodData-CL", + ("gooddata-cl",), + ("*.gdc",), + ("text/x-gooddata-cl",), + ), + "GoogleSqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "GoogleSQL", + ("googlesql", "zetasql"), + ("*.googlesql", "*.googlesql.sql"), + ("text/x-google-sql", "text/x-google-sql-aux"), + ), + "GosuLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Gosu", + ("gosu",), + ("*.gs", "*.gsx", "*.gsp", "*.vark"), + ("text/x-gosu",), + ), + "GosuTemplateLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Gosu Template", + ("gst",), + ("*.gst",), + ("text/x-gosu-template",), + ), + "GraphQLLexer": ( + "pip._vendor.pygments.lexers.graphql", + "GraphQL", + ("graphql",), + ("*.graphql",), + (), + ), + "GraphvizLexer": ( + "pip._vendor.pygments.lexers.graphviz", + "Graphviz", + ("graphviz", "dot"), + ("*.gv", "*.dot"), + ("text/x-graphviz", "text/vnd.graphviz"), + ), + "GroffLexer": ( + "pip._vendor.pygments.lexers.markup", + "Groff", + ("groff", "nroff", "man"), + ("*.[1-9]", "*.man", "*.1p", "*.3pm"), + ("application/x-troff", "text/troff"), + ), + "GroovyLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Groovy", + ("groovy",), + ("*.groovy", "*.gradle"), + ("text/x-groovy",), + ), + "HLSLShaderLexer": ( + "pip._vendor.pygments.lexers.graphics", + "HLSL", + ("hlsl",), + ("*.hlsl", "*.hlsli"), + ("text/x-hlsl",), + ), + "HTMLUL4Lexer": ( + "pip._vendor.pygments.lexers.ul4", + "HTML+UL4", + ("html+ul4",), + ("*.htmlul4",), + (), + ), + "HamlLexer": ( + "pip._vendor.pygments.lexers.html", + "Haml", + ("haml",), + ("*.haml",), + ("text/x-haml",), + ), + "HandlebarsHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Handlebars", + ("html+handlebars",), + ("*.handlebars", "*.hbs"), + ("text/html+handlebars", "text/x-handlebars-template"), + ), + "HandlebarsLexer": ( + "pip._vendor.pygments.lexers.templates", + "Handlebars", + ("handlebars",), + (), + (), + ), + "HareLexer": ( + "pip._vendor.pygments.lexers.hare", + "Hare", + ("hare",), + ("*.ha",), + ("text/x-hare",), + ), + "HaskellLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Haskell", + ("haskell", "hs"), + ("*.hs",), + ("text/x-haskell",), + ), + "HaxeLexer": ( + "pip._vendor.pygments.lexers.haxe", + "Haxe", + ("haxe", "hxsl", "hx"), + ("*.hx", "*.hxsl"), + ("text/haxe", "text/x-haxe", "text/x-hx"), + ), + "HexdumpLexer": ( + "pip._vendor.pygments.lexers.hexdump", + "Hexdump", + ("hexdump",), + (), + (), + ), + "HsailLexer": ( + "pip._vendor.pygments.lexers.asm", + "HSAIL", + ("hsail", "hsa"), + ("*.hsail",), + ("text/x-hsail",), + ), + "HspecLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Hspec", + ("hspec",), + ("*Spec.hs",), + (), + ), + "HtmlDjangoLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Django/Jinja", + ("html+django", "html+jinja", "htmldjango"), + ( + "*.html.j2", + "*.htm.j2", + "*.xhtml.j2", + "*.html.jinja2", + "*.htm.jinja2", + "*.xhtml.jinja2", + ), + ("text/html+django", "text/html+jinja"), + ), + "HtmlGenshiLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Genshi", + ("html+genshi", "html+kid"), + (), + ("text/html+genshi",), + ), + "HtmlLexer": ( + "pip._vendor.pygments.lexers.html", + "HTML", + ("html",), + ("*.html", "*.htm", "*.xhtml", "*.xslt"), + ("text/html", "application/xhtml+xml"), + ), + "HtmlPhpLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+PHP", + ("html+php",), + ("*.phtml",), + ( + "application/x-php", + "application/x-httpd-php", + "application/x-httpd-php3", + "application/x-httpd-php4", + "application/x-httpd-php5", + ), + ), + "HtmlSmartyLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Smarty", + ("html+smarty",), + (), + ("text/html+smarty",), + ), + "HttpLexer": ("pip._vendor.pygments.lexers.textfmts", "HTTP", ("http",), (), ()), + "HxmlLexer": ( + "pip._vendor.pygments.lexers.haxe", + "Hxml", + ("haxeml", "hxml"), + ("*.hxml",), + (), + ), + "HyLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Hy", + ("hylang", "hy"), + ("*.hy",), + ("text/x-hy", "application/x-hy"), + ), + "HybrisLexer": ( + "pip._vendor.pygments.lexers.scripting", + "Hybris", + ("hybris",), + ("*.hyb",), + ("text/x-hybris", "application/x-hybris"), + ), + "IDLLexer": ( + "pip._vendor.pygments.lexers.idl", + "IDL", + ("idl",), + ("*.pro",), + ("text/idl",), + ), + "IconLexer": ( + "pip._vendor.pygments.lexers.unicon", + "Icon", + ("icon",), + ("*.icon", "*.ICON"), + (), + ), + "IdrisLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Idris", + ("idris", "idr"), + ("*.idr",), + ("text/x-idris",), + ), + "IgorLexer": ( + "pip._vendor.pygments.lexers.igor", + "Igor", + ("igor", "igorpro"), + ("*.ipf",), + ("text/ipf",), + ), + "Inform6Lexer": ( + "pip._vendor.pygments.lexers.int_fiction", + "Inform 6", + ("inform6", "i6"), + ("*.inf",), + (), + ), + "Inform6TemplateLexer": ( + "pip._vendor.pygments.lexers.int_fiction", + "Inform 6 template", + ("i6t",), + ("*.i6t",), + (), + ), + "Inform7Lexer": ( + "pip._vendor.pygments.lexers.int_fiction", + "Inform 7", + ("inform7", "i7"), + ("*.ni", "*.i7x"), + (), + ), + "IniLexer": ( + "pip._vendor.pygments.lexers.configs", + "INI", + ("ini", "cfg", "dosini"), + ("*.ini", "*.cfg", "*.inf", ".editorconfig"), + ("text/x-ini", "text/inf"), + ), + "IoLexer": ( + "pip._vendor.pygments.lexers.iolang", + "Io", + ("io",), + ("*.io",), + ("text/x-iosrc",), + ), + "IokeLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Ioke", + ("ioke", "ik"), + ("*.ik",), + ("text/x-iokesrc",), + ), + "IrcLogsLexer": ( + "pip._vendor.pygments.lexers.textfmts", + "IRC logs", + ("irc",), + ("*.weechatlog",), + ("text/x-irclog",), + ), + "IsabelleLexer": ( + "pip._vendor.pygments.lexers.theorem", + "Isabelle", + ("isabelle",), + ("*.thy",), + ("text/x-isabelle",), + ), + "JLexer": ("pip._vendor.pygments.lexers.j", "J", ("j",), ("*.ijs",), ("text/x-j",)), + "JMESPathLexer": ( + "pip._vendor.pygments.lexers.jmespath", + "JMESPath", + ("jmespath", "jp"), + ("*.jp",), + (), + ), + "JSLTLexer": ( + "pip._vendor.pygments.lexers.jslt", + "JSLT", + ("jslt",), + ("*.jslt",), + ("text/x-jslt",), + ), + "JagsLexer": ( + "pip._vendor.pygments.lexers.modeling", + "JAGS", + ("jags",), + ("*.jag", "*.bug"), + (), + ), + "JanetLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Janet", + ("janet",), + ("*.janet", "*.jdn"), + ("text/x-janet", "application/x-janet"), + ), + "JasminLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Jasmin", + ("jasmin", "jasminxt"), + ("*.j",), + (), + ), + "JavaLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Java", + ("java",), + ("*.java",), + ("text/x-java",), + ), + "JavascriptDjangoLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Django/Jinja", + ("javascript+django", "js+django", "javascript+jinja", "js+jinja"), + ("*.js.j2", "*.js.jinja2"), + ( + "application/x-javascript+django", + "application/x-javascript+jinja", + "text/x-javascript+django", + "text/x-javascript+jinja", + "text/javascript+django", + "text/javascript+jinja", + ), + ), + "JavascriptErbLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Ruby", + ("javascript+ruby", "js+ruby", "javascript+erb", "js+erb"), + (), + ( + "application/x-javascript+ruby", + "text/x-javascript+ruby", + "text/javascript+ruby", + ), + ), + "JavascriptGenshiLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Genshi Text", + ("js+genshitext", "js+genshi", "javascript+genshitext", "javascript+genshi"), + (), + ( + "application/x-javascript+genshi", + "text/x-javascript+genshi", + "text/javascript+genshi", + ), + ), + "JavascriptLexer": ( + "pip._vendor.pygments.lexers.javascript", + "JavaScript", + ("javascript", "js"), + ("*.js", "*.jsm", "*.mjs", "*.cjs"), + ( + "application/javascript", + "application/x-javascript", + "text/x-javascript", + "text/javascript", + ), + ), + "JavascriptPhpLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+PHP", + ("javascript+php", "js+php"), + (), + ( + "application/x-javascript+php", + "text/x-javascript+php", + "text/javascript+php", + ), + ), + "JavascriptSmartyLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Smarty", + ("javascript+smarty", "js+smarty"), + (), + ( + "application/x-javascript+smarty", + "text/x-javascript+smarty", + "text/javascript+smarty", + ), + ), + "JavascriptUL4Lexer": ( + "pip._vendor.pygments.lexers.ul4", + "Javascript+UL4", + ("js+ul4",), + ("*.jsul4",), + (), + ), + "JclLexer": ( + "pip._vendor.pygments.lexers.scripting", + "JCL", + ("jcl",), + ("*.jcl",), + ("text/x-jcl",), + ), + "JsgfLexer": ( + "pip._vendor.pygments.lexers.grammar_notation", + "JSGF", + ("jsgf",), + ("*.jsgf",), + ("application/jsgf", "application/x-jsgf", "text/jsgf"), + ), + "Json5Lexer": ( + "pip._vendor.pygments.lexers.json5", + "JSON5", + ("json5",), + ("*.json5",), + (), + ), + "JsonBareObjectLexer": ( + "pip._vendor.pygments.lexers.data", + "JSONBareObject", + (), + (), + (), + ), + "JsonLdLexer": ( + "pip._vendor.pygments.lexers.data", + "JSON-LD", + ("jsonld", "json-ld"), + ("*.jsonld",), + ("application/ld+json",), + ), + "JsonLexer": ( + "pip._vendor.pygments.lexers.data", + "JSON", + ("json", "json-object"), + ("*.json", "*.jsonl", "*.ndjson", "Pipfile.lock"), + ( + "application/json", + "application/json-object", + "application/x-ndjson", + "application/jsonl", + "application/json-seq", + ), + ), + "JsonnetLexer": ( + "pip._vendor.pygments.lexers.jsonnet", + "Jsonnet", + ("jsonnet",), + ("*.jsonnet", "*.libsonnet"), + (), + ), + "JspLexer": ( + "pip._vendor.pygments.lexers.templates", + "Java Server Page", + ("jsp",), + ("*.jsp",), + ("application/x-jsp",), + ), + "JsxLexer": ( + "pip._vendor.pygments.lexers.jsx", + "JSX", + ("jsx", "react"), + ("*.jsx", "*.react"), + ("text/jsx", "text/typescript-jsx"), + ), + "JuliaConsoleLexer": ( + "pip._vendor.pygments.lexers.julia", + "Julia console", + ("jlcon", "julia-repl"), + (), + (), + ), + "JuliaLexer": ( + "pip._vendor.pygments.lexers.julia", + "Julia", + ("julia", "jl"), + ("*.jl",), + ("text/x-julia", "application/x-julia"), + ), + "JuttleLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Juttle", + ("juttle",), + ("*.juttle",), + ("application/juttle", "application/x-juttle", "text/x-juttle", "text/juttle"), + ), + "KLexer": ("pip._vendor.pygments.lexers.q", "K", ("k",), ("*.k",), ()), + "KalLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Kal", + ("kal",), + ("*.kal",), + ("text/kal", "application/kal"), + ), + "KconfigLexer": ( + "pip._vendor.pygments.lexers.configs", + "Kconfig", + ("kconfig", "menuconfig", "linux-config", "kernel-config"), + ("Kconfig*", "*Config.in*", "external.in*", "standard-modules.in"), + ("text/x-kconfig",), + ), + "KernelLogLexer": ( + "pip._vendor.pygments.lexers.textfmts", + "Kernel log", + ("kmsg", "dmesg"), + ("*.kmsg", "*.dmesg"), + (), + ), + "KokaLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Koka", + ("koka",), + ("*.kk", "*.kki"), + ("text/x-koka",), + ), + "KotlinLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Kotlin", + ("kotlin",), + ("*.kt", "*.kts"), + ("text/x-kotlin",), + ), + "KuinLexer": ("pip._vendor.pygments.lexers.kuin", "Kuin", ("kuin",), ("*.kn",), ()), + "KustoLexer": ( + "pip._vendor.pygments.lexers.kusto", + "Kusto", + ("kql", "kusto"), + ("*.kql", "*.kusto", ".csl"), + (), + ), + "LSLLexer": ( + "pip._vendor.pygments.lexers.scripting", + "LSL", + ("lsl",), + ("*.lsl",), + ("text/x-lsl",), + ), + "LassoCssLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Lasso", + ("css+lasso",), + (), + ("text/css+lasso",), + ), + "LassoHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Lasso", + ("html+lasso",), + (), + ( + "text/html+lasso", + "application/x-httpd-lasso", + "application/x-httpd-lasso[89]", + ), + ), + "LassoJavascriptLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Lasso", + ("javascript+lasso", "js+lasso"), + (), + ( + "application/x-javascript+lasso", + "text/x-javascript+lasso", + "text/javascript+lasso", + ), + ), + "LassoLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Lasso", + ("lasso", "lassoscript"), + ("*.lasso", "*.lasso[89]"), + ("text/x-lasso",), + ), + "LassoXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Lasso", + ("xml+lasso",), + (), + ("application/xml+lasso",), + ), + "LdaprcLexer": ( + "pip._vendor.pygments.lexers.ldap", + "LDAP configuration file", + ("ldapconf", "ldaprc"), + (".ldaprc", "ldaprc", "ldap.conf"), + ("text/x-ldapconf",), + ), + "LdifLexer": ( + "pip._vendor.pygments.lexers.ldap", + "LDIF", + ("ldif",), + ("*.ldif",), + ("text/x-ldif",), + ), + "Lean3Lexer": ( + "pip._vendor.pygments.lexers.lean", + "Lean", + ("lean", "lean3"), + ("*.lean",), + ("text/x-lean", "text/x-lean3"), + ), + "Lean4Lexer": ( + "pip._vendor.pygments.lexers.lean", + "Lean4", + ("lean4",), + ("*.lean",), + ("text/x-lean4",), + ), + "LessCssLexer": ( + "pip._vendor.pygments.lexers.css", + "LessCss", + ("less",), + ("*.less",), + ("text/x-less-css",), + ), + "LighttpdConfLexer": ( + "pip._vendor.pygments.lexers.configs", + "Lighttpd configuration file", + ("lighttpd", "lighty"), + ("lighttpd.conf",), + ("text/x-lighttpd-conf",), + ), + "LilyPondLexer": ( + "pip._vendor.pygments.lexers.lilypond", + "LilyPond", + ("lilypond",), + ("*.ly",), + (), + ), + "LimboLexer": ( + "pip._vendor.pygments.lexers.inferno", + "Limbo", + ("limbo",), + ("*.b",), + ("text/limbo",), + ), + "LiquidLexer": ( + "pip._vendor.pygments.lexers.templates", + "liquid", + ("liquid",), + ("*.liquid",), + (), + ), + "LiterateAgdaLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Literate Agda", + ("literate-agda", "lagda"), + ("*.lagda",), + ("text/x-literate-agda",), + ), + "LiterateCryptolLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Literate Cryptol", + ("literate-cryptol", "lcryptol", "lcry"), + ("*.lcry",), + ("text/x-literate-cryptol",), + ), + "LiterateHaskellLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Literate Haskell", + ("literate-haskell", "lhaskell", "lhs"), + ("*.lhs",), + ("text/x-literate-haskell",), + ), + "LiterateIdrisLexer": ( + "pip._vendor.pygments.lexers.haskell", + "Literate Idris", + ("literate-idris", "lidris", "lidr"), + ("*.lidr",), + ("text/x-literate-idris",), + ), + "LiveScriptLexer": ( + "pip._vendor.pygments.lexers.javascript", + "LiveScript", + ("livescript", "live-script"), + ("*.ls",), + ("text/livescript",), + ), + "LlvmLexer": ( + "pip._vendor.pygments.lexers.asm", + "LLVM", + ("llvm",), + ("*.ll",), + ("text/x-llvm",), + ), + "LlvmMirBodyLexer": ( + "pip._vendor.pygments.lexers.asm", + "LLVM-MIR Body", + ("llvm-mir-body",), + (), + (), + ), + "LlvmMirLexer": ( + "pip._vendor.pygments.lexers.asm", + "LLVM-MIR", + ("llvm-mir",), + ("*.mir",), + (), + ), + "LogosLexer": ( + "pip._vendor.pygments.lexers.objective", + "Logos", + ("logos",), + ("*.x", "*.xi", "*.xm", "*.xmi"), + ("text/x-logos",), + ), + "LogtalkLexer": ( + "pip._vendor.pygments.lexers.prolog", + "Logtalk", + ("logtalk",), + ("*.lgt", "*.logtalk"), + ("text/x-logtalk",), + ), + "LuaLexer": ( + "pip._vendor.pygments.lexers.scripting", + "Lua", + ("lua",), + ("*.lua", "*.wlua"), + ("text/x-lua", "application/x-lua"), + ), + "LuauLexer": ( + "pip._vendor.pygments.lexers.scripting", + "Luau", + ("luau",), + ("*.luau",), + (), + ), + "MCFunctionLexer": ( + "pip._vendor.pygments.lexers.minecraft", + "MCFunction", + ("mcfunction", "mcf"), + ("*.mcfunction",), + ("text/mcfunction",), + ), + "MCSchemaLexer": ( + "pip._vendor.pygments.lexers.minecraft", + "MCSchema", + ("mcschema",), + ("*.mcschema",), + ("text/mcschema",), + ), + "MIMELexer": ( + "pip._vendor.pygments.lexers.mime", + "MIME", + ("mime",), + (), + ("multipart/mixed", "multipart/related", "multipart/alternative"), + ), + "MIPSLexer": ( + "pip._vendor.pygments.lexers.mips", + "MIPS", + ("mips",), + ("*.mips", "*.MIPS"), + (), + ), + "MOOCodeLexer": ( + "pip._vendor.pygments.lexers.scripting", + "MOOCode", + ("moocode", "moo"), + ("*.moo",), + ("text/x-moocode",), + ), + "MSDOSSessionLexer": ( + "pip._vendor.pygments.lexers.shell", + "MSDOS Session", + ("doscon",), + (), + (), + ), + "Macaulay2Lexer": ( + "pip._vendor.pygments.lexers.macaulay2", + "Macaulay2", + ("macaulay2",), + ("*.m2",), + (), + ), + "MakefileLexer": ( + "pip._vendor.pygments.lexers.make", + "Makefile", + ("make", "makefile", "mf", "bsdmake"), + ("*.mak", "*.mk", "Makefile", "makefile", "Makefile.*", "GNUmakefile"), + ("text/x-makefile",), + ), + "MakoCssLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Mako", + ("css+mako",), + (), + ("text/css+mako",), + ), + "MakoHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Mako", + ("html+mako",), + (), + ("text/html+mako",), + ), + "MakoJavascriptLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Mako", + ("javascript+mako", "js+mako"), + (), + ( + "application/x-javascript+mako", + "text/x-javascript+mako", + "text/javascript+mako", + ), + ), + "MakoLexer": ( + "pip._vendor.pygments.lexers.templates", + "Mako", + ("mako",), + ("*.mao",), + ("application/x-mako",), + ), + "MakoXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Mako", + ("xml+mako",), + (), + ("application/xml+mako",), + ), + "MapleLexer": ( + "pip._vendor.pygments.lexers.maple", + "Maple", + ("maple",), + ("*.mpl", "*.mi", "*.mm"), + ("text/x-maple",), + ), + "MaqlLexer": ( + "pip._vendor.pygments.lexers.business", + "MAQL", + ("maql",), + ("*.maql",), + ("text/x-gooddata-maql", "application/x-gooddata-maql"), + ), + "MarkdownLexer": ( + "pip._vendor.pygments.lexers.markup", + "Markdown", + ("markdown", "md"), + ("*.md", "*.markdown"), + ("text/x-markdown",), + ), + "MaskLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Mask", + ("mask",), + ("*.mask",), + ("text/x-mask",), + ), + "MasonLexer": ( + "pip._vendor.pygments.lexers.templates", + "Mason", + ("mason",), + ("*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"), + ("application/x-mason",), + ), + "MathematicaLexer": ( + "pip._vendor.pygments.lexers.algebra", + "Mathematica", + ("mathematica", "mma", "nb"), + ("*.nb", "*.cdf", "*.nbp", "*.ma"), + ( + "application/mathematica", + "application/vnd.wolfram.mathematica", + "application/vnd.wolfram.mathematica.package", + "application/vnd.wolfram.cdf", + ), + ), + "MatlabLexer": ( + "pip._vendor.pygments.lexers.matlab", + "Matlab", + ("matlab",), + ("*.m",), + ("text/matlab",), + ), + "MatlabSessionLexer": ( + "pip._vendor.pygments.lexers.matlab", + "Matlab session", + ("matlabsession",), + (), + (), + ), + "MaximaLexer": ( + "pip._vendor.pygments.lexers.maxima", + "Maxima", + ("maxima", "macsyma"), + ("*.mac", "*.max"), + (), + ), + "MesonLexer": ( + "pip._vendor.pygments.lexers.meson", + "Meson", + ("meson", "meson.build"), + ("meson.build", "meson_options.txt"), + ("text/x-meson",), + ), + "MiniDLexer": ( + "pip._vendor.pygments.lexers.d", + "MiniD", + ("minid",), + (), + ("text/x-minidsrc",), + ), + "MiniScriptLexer": ( + "pip._vendor.pygments.lexers.scripting", + "MiniScript", + ("miniscript", "ms"), + ("*.ms",), + ("text/x-minicript", "application/x-miniscript"), + ), + "ModelicaLexer": ( + "pip._vendor.pygments.lexers.modeling", + "Modelica", + ("modelica",), + ("*.mo",), + ("text/x-modelica",), + ), + "Modula2Lexer": ( + "pip._vendor.pygments.lexers.modula2", + "Modula-2", + ("modula2", "m2"), + ("*.def", "*.mod"), + ("text/x-modula2",), + ), + "MoinWikiLexer": ( + "pip._vendor.pygments.lexers.markup", + "MoinMoin/Trac Wiki markup", + ("trac-wiki", "moin"), + (), + ("text/x-trac-wiki",), + ), + "MojoLexer": ( + "pip._vendor.pygments.lexers.mojo", + "Mojo", + ("mojo", "🔥"), + ("*.mojo", "*.🔥"), + ("text/x-mojo", "application/x-mojo"), + ), + "MonkeyLexer": ( + "pip._vendor.pygments.lexers.basic", + "Monkey", + ("monkey",), + ("*.monkey",), + ("text/x-monkey",), + ), + "MonteLexer": ( + "pip._vendor.pygments.lexers.monte", + "Monte", + ("monte",), + ("*.mt",), + (), + ), + "MoonScriptLexer": ( + "pip._vendor.pygments.lexers.scripting", + "MoonScript", + ("moonscript", "moon"), + ("*.moon",), + ("text/x-moonscript", "application/x-moonscript"), + ), + "MoselLexer": ( + "pip._vendor.pygments.lexers.mosel", + "Mosel", + ("mosel",), + ("*.mos",), + (), + ), + "MozPreprocCssLexer": ( + "pip._vendor.pygments.lexers.markup", + "CSS+mozpreproc", + ("css+mozpreproc",), + ("*.css.in",), + (), + ), + "MozPreprocHashLexer": ( + "pip._vendor.pygments.lexers.markup", + "mozhashpreproc", + ("mozhashpreproc",), + (), + (), + ), + "MozPreprocJavascriptLexer": ( + "pip._vendor.pygments.lexers.markup", + "Javascript+mozpreproc", + ("javascript+mozpreproc",), + ("*.js.in",), + (), + ), + "MozPreprocPercentLexer": ( + "pip._vendor.pygments.lexers.markup", + "mozpercentpreproc", + ("mozpercentpreproc",), + (), + (), + ), + "MozPreprocXulLexer": ( + "pip._vendor.pygments.lexers.markup", + "XUL+mozpreproc", + ("xul+mozpreproc",), + ("*.xul.in",), + (), + ), + "MqlLexer": ( + "pip._vendor.pygments.lexers.c_like", + "MQL", + ("mql", "mq4", "mq5", "mql4", "mql5"), + ("*.mq4", "*.mq5", "*.mqh"), + ("text/x-mql",), + ), + "MscgenLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Mscgen", + ("mscgen", "msc"), + ("*.msc",), + (), + ), + "MuPADLexer": ( + "pip._vendor.pygments.lexers.algebra", + "MuPAD", + ("mupad",), + ("*.mu",), + (), + ), + "MxmlLexer": ( + "pip._vendor.pygments.lexers.actionscript", + "MXML", + ("mxml",), + ("*.mxml",), + (), + ), + "MySqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "MySQL", + ("mysql",), + (), + ("text/x-mysql",), + ), + "MyghtyCssLexer": ( + "pip._vendor.pygments.lexers.templates", + "CSS+Myghty", + ("css+myghty",), + (), + ("text/css+myghty",), + ), + "MyghtyHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Myghty", + ("html+myghty",), + (), + ("text/html+myghty",), + ), + "MyghtyJavascriptLexer": ( + "pip._vendor.pygments.lexers.templates", + "JavaScript+Myghty", + ("javascript+myghty", "js+myghty"), + (), + ( + "application/x-javascript+myghty", + "text/x-javascript+myghty", + "text/javascript+mygthy", + ), + ), + "MyghtyLexer": ( + "pip._vendor.pygments.lexers.templates", + "Myghty", + ("myghty",), + ("*.myt", "autodelegate"), + ("application/x-myghty",), + ), + "MyghtyXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Myghty", + ("xml+myghty",), + (), + ("application/xml+myghty",), + ), + "NCLLexer": ( + "pip._vendor.pygments.lexers.ncl", + "NCL", + ("ncl",), + ("*.ncl",), + ("text/ncl",), + ), + "NSISLexer": ( + "pip._vendor.pygments.lexers.installers", + "NSIS", + ("nsis", "nsi", "nsh"), + ("*.nsi", "*.nsh"), + ("text/x-nsis",), + ), + "NasmLexer": ( + "pip._vendor.pygments.lexers.asm", + "NASM", + ("nasm",), + ("*.asm", "*.ASM", "*.nasm"), + ("text/x-nasm",), + ), + "NasmObjdumpLexer": ( + "pip._vendor.pygments.lexers.asm", + "objdump-nasm", + ("objdump-nasm",), + ("*.objdump-intel",), + ("text/x-nasm-objdump",), + ), + "NemerleLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "Nemerle", + ("nemerle",), + ("*.n",), + ("text/x-nemerle",), + ), + "NesCLexer": ( + "pip._vendor.pygments.lexers.c_like", + "nesC", + ("nesc",), + ("*.nc",), + ("text/x-nescsrc",), + ), + "NestedTextLexer": ( + "pip._vendor.pygments.lexers.configs", + "NestedText", + ("nestedtext", "nt"), + ("*.nt",), + (), + ), + "NewLispLexer": ( + "pip._vendor.pygments.lexers.lisp", + "NewLisp", + ("newlisp",), + ("*.lsp", "*.nl", "*.kif"), + ("text/x-newlisp", "application/x-newlisp"), + ), + "NewspeakLexer": ( + "pip._vendor.pygments.lexers.smalltalk", + "Newspeak", + ("newspeak",), + ("*.ns2",), + ("text/x-newspeak",), + ), + "NginxConfLexer": ( + "pip._vendor.pygments.lexers.configs", + "Nginx configuration file", + ("nginx",), + ("nginx.conf",), + ("text/x-nginx-conf",), + ), + "NimrodLexer": ( + "pip._vendor.pygments.lexers.nimrod", + "Nimrod", + ("nimrod", "nim"), + ("*.nim", "*.nimrod"), + ("text/x-nim",), + ), + "NitLexer": ("pip._vendor.pygments.lexers.nit", "Nit", ("nit",), ("*.nit",), ()), + "NixLexer": ( + "pip._vendor.pygments.lexers.nix", + "Nix", + ("nixos", "nix"), + ("*.nix",), + ("text/x-nix",), + ), + "NodeConsoleLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Node.js REPL console session", + ("nodejsrepl",), + (), + ("text/x-nodejsrepl",), + ), + "NotmuchLexer": ( + "pip._vendor.pygments.lexers.textfmts", + "Notmuch", + ("notmuch",), + (), + (), + ), + "NuSMVLexer": ( + "pip._vendor.pygments.lexers.smv", + "NuSMV", + ("nusmv",), + ("*.smv",), + (), + ), + "NumPyLexer": ("pip._vendor.pygments.lexers.python", "NumPy", ("numpy",), (), ()), + "NumbaIRLexer": ( + "pip._vendor.pygments.lexers.numbair", + "Numba_IR", + ("numba_ir", "numbair"), + ("*.numba_ir",), + ("text/x-numba_ir", "text/x-numbair"), + ), + "ObjdumpLexer": ( + "pip._vendor.pygments.lexers.asm", + "objdump", + ("objdump",), + ("*.objdump",), + ("text/x-objdump",), + ), + "ObjectiveCLexer": ( + "pip._vendor.pygments.lexers.objective", + "Objective-C", + ("objective-c", "objectivec", "obj-c", "objc"), + ("*.m", "*.h"), + ("text/x-objective-c",), + ), + "ObjectiveCppLexer": ( + "pip._vendor.pygments.lexers.objective", + "Objective-C++", + ("objective-c++", "objectivec++", "obj-c++", "objc++"), + ("*.mm", "*.hh"), + ("text/x-objective-c++",), + ), + "ObjectiveJLexer": ( + "pip._vendor.pygments.lexers.javascript", + "Objective-J", + ("objective-j", "objectivej", "obj-j", "objj"), + ("*.j",), + ("text/x-objective-j",), + ), + "OcamlLexer": ( + "pip._vendor.pygments.lexers.ml", + "OCaml", + ("ocaml",), + ("*.ml", "*.mli", "*.mll", "*.mly"), + ("text/x-ocaml",), + ), + "OctaveLexer": ( + "pip._vendor.pygments.lexers.matlab", + "Octave", + ("octave",), + ("*.m",), + ("text/octave",), + ), + "OdinLexer": ( + "pip._vendor.pygments.lexers.archetype", + "ODIN", + ("odin",), + ("*.odin",), + ("text/odin",), + ), + "OmgIdlLexer": ( + "pip._vendor.pygments.lexers.c_like", + "OMG Interface Definition Language", + ("omg-idl",), + ("*.idl", "*.pidl"), + (), + ), + "OocLexer": ( + "pip._vendor.pygments.lexers.ooc", + "Ooc", + ("ooc",), + ("*.ooc",), + ("text/x-ooc",), + ), + "OpaLexer": ( + "pip._vendor.pygments.lexers.ml", + "Opa", + ("opa",), + ("*.opa",), + ("text/x-opa",), + ), + "OpenEdgeLexer": ( + "pip._vendor.pygments.lexers.business", + "OpenEdge ABL", + ("openedge", "abl", "progress"), + ("*.p", "*.cls"), + ("text/x-openedge", "application/x-openedge"), + ), + "OpenScadLexer": ( + "pip._vendor.pygments.lexers.openscad", + "OpenSCAD", + ("openscad",), + ("*.scad",), + ("application/x-openscad",), + ), + "OrgLexer": ( + "pip._vendor.pygments.lexers.markup", + "Org Mode", + ("org", "orgmode", "org-mode"), + ("*.org",), + ("text/org",), + ), + "OutputLexer": ( + "pip._vendor.pygments.lexers.special", + "Text output", + ("output",), + (), + (), + ), + "PacmanConfLexer": ( + "pip._vendor.pygments.lexers.configs", + "PacmanConf", + ("pacmanconf",), + ("pacman.conf",), + (), + ), + "PanLexer": ("pip._vendor.pygments.lexers.dsls", "Pan", ("pan",), ("*.pan",), ()), + "ParaSailLexer": ( + "pip._vendor.pygments.lexers.parasail", + "ParaSail", + ("parasail",), + ("*.psi", "*.psl"), + ("text/x-parasail",), + ), + "PawnLexer": ( + "pip._vendor.pygments.lexers.pawn", + "Pawn", + ("pawn",), + ("*.p", "*.pwn", "*.inc"), + ("text/x-pawn",), + ), + "PddlLexer": ( + "pip._vendor.pygments.lexers.pddl", + "PDDL", + ("pddl",), + ("*.pddl",), + (), + ), + "PegLexer": ( + "pip._vendor.pygments.lexers.grammar_notation", + "PEG", + ("peg",), + ("*.peg",), + ("text/x-peg",), + ), + "Perl6Lexer": ( + "pip._vendor.pygments.lexers.perl", + "Perl6", + ("perl6", "pl6", "raku"), + ( + "*.pl", + "*.pm", + "*.nqp", + "*.p6", + "*.6pl", + "*.p6l", + "*.pl6", + "*.6pm", + "*.p6m", + "*.pm6", + "*.t", + "*.raku", + "*.rakumod", + "*.rakutest", + "*.rakudoc", + ), + ("text/x-perl6", "application/x-perl6"), + ), + "PerlLexer": ( + "pip._vendor.pygments.lexers.perl", + "Perl", + ("perl", "pl"), + ("*.pl", "*.pm", "*.t", "*.perl"), + ("text/x-perl", "application/x-perl"), + ), + "PhixLexer": ( + "pip._vendor.pygments.lexers.phix", + "Phix", + ("phix",), + ("*.exw",), + ("text/x-phix",), + ), + "PhpLexer": ( + "pip._vendor.pygments.lexers.php", + "PHP", + ("php", "php3", "php4", "php5"), + ("*.php", "*.php[345]", "*.inc"), + ("text/x-php",), + ), + "PigLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Pig", + ("pig",), + ("*.pig",), + ("text/x-pig",), + ), + "PikeLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Pike", + ("pike",), + ("*.pike", "*.pmod"), + ("text/x-pike",), + ), + "PkgConfigLexer": ( + "pip._vendor.pygments.lexers.configs", + "PkgConfig", + ("pkgconfig",), + ("*.pc",), + (), + ), + "PlPgsqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "PL/pgSQL", + ("plpgsql",), + (), + ("text/x-plpgsql",), + ), + "PointlessLexer": ( + "pip._vendor.pygments.lexers.pointless", + "Pointless", + ("pointless",), + ("*.ptls",), + (), + ), + "PonyLexer": ( + "pip._vendor.pygments.lexers.pony", + "Pony", + ("pony",), + ("*.pony",), + (), + ), + "PortugolLexer": ( + "pip._vendor.pygments.lexers.pascal", + "Portugol", + ("portugol",), + ("*.alg", "*.portugol"), + (), + ), + "PostScriptLexer": ( + "pip._vendor.pygments.lexers.graphics", + "PostScript", + ("postscript", "postscr"), + ("*.ps", "*.eps"), + ("application/postscript",), + ), + "PostgresConsoleLexer": ( + "pip._vendor.pygments.lexers.sql", + "PostgreSQL console (psql)", + ("psql", "postgresql-console", "postgres-console"), + (), + ("text/x-postgresql-psql",), + ), + "PostgresExplainLexer": ( + "pip._vendor.pygments.lexers.sql", + "PostgreSQL EXPLAIN dialect", + ("postgres-explain",), + ("*.explain",), + ("text/x-postgresql-explain",), + ), + "PostgresLexer": ( + "pip._vendor.pygments.lexers.sql", + "PostgreSQL SQL dialect", + ("postgresql", "postgres"), + (), + ("text/x-postgresql",), + ), + "PovrayLexer": ( + "pip._vendor.pygments.lexers.graphics", + "POVRay", + ("pov",), + ("*.pov", "*.inc"), + ("text/x-povray",), + ), + "PowerShellLexer": ( + "pip._vendor.pygments.lexers.shell", + "PowerShell", + ("powershell", "pwsh", "posh", "ps1", "psm1"), + ("*.ps1", "*.psm1"), + ("text/x-powershell",), + ), + "PowerShellSessionLexer": ( + "pip._vendor.pygments.lexers.shell", + "PowerShell Session", + ("pwsh-session", "ps1con"), + (), + (), + ), + "PraatLexer": ( + "pip._vendor.pygments.lexers.praat", + "Praat", + ("praat",), + ("*.praat", "*.proc", "*.psc"), + (), + ), + "ProcfileLexer": ( + "pip._vendor.pygments.lexers.procfile", + "Procfile", + ("procfile",), + ("Procfile",), + (), + ), + "PrologLexer": ( + "pip._vendor.pygments.lexers.prolog", + "Prolog", + ("prolog",), + ("*.ecl", "*.prolog", "*.pro", "*.pl"), + ("text/x-prolog",), + ), + "PromQLLexer": ( + "pip._vendor.pygments.lexers.promql", + "PromQL", + ("promql",), + ("*.promql",), + (), + ), + "PromelaLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Promela", + ("promela",), + ("*.pml", "*.prom", "*.prm", "*.promela", "*.pr", "*.pm"), + ("text/x-promela",), + ), + "PropertiesLexer": ( + "pip._vendor.pygments.lexers.configs", + "Properties", + ("properties", "jproperties"), + ("*.properties",), + ("text/x-java-properties",), + ), + "ProtoBufLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Protocol Buffer", + ("protobuf", "proto"), + ("*.proto",), + (), + ), + "PrqlLexer": ( + "pip._vendor.pygments.lexers.prql", + "PRQL", + ("prql",), + ("*.prql",), + ("application/prql", "application/x-prql"), + ), + "PsyshConsoleLexer": ( + "pip._vendor.pygments.lexers.php", + "PsySH console session for PHP", + ("psysh",), + (), + (), + ), + "PtxLexer": ( + "pip._vendor.pygments.lexers.ptx", + "PTX", + ("ptx",), + ("*.ptx",), + ("text/x-ptx",), + ), + "PugLexer": ( + "pip._vendor.pygments.lexers.html", + "Pug", + ("pug", "jade"), + ("*.pug", "*.jade"), + ("text/x-pug", "text/x-jade"), + ), + "PuppetLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Puppet", + ("puppet",), + ("*.pp",), + (), + ), + "PyPyLogLexer": ( + "pip._vendor.pygments.lexers.console", + "PyPy Log", + ("pypylog", "pypy"), + ("*.pypylog",), + ("application/x-pypylog",), + ), + "Python2Lexer": ( + "pip._vendor.pygments.lexers.python", + "Python 2.x", + ("python2", "py2"), + (), + ("text/x-python2", "application/x-python2"), + ), + "Python2TracebackLexer": ( + "pip._vendor.pygments.lexers.python", + "Python 2.x Traceback", + ("py2tb",), + ("*.py2tb",), + ("text/x-python2-traceback",), + ), + "PythonConsoleLexer": ( + "pip._vendor.pygments.lexers.python", + "Python console session", + ("pycon", "python-console"), + (), + ("text/x-python-doctest",), + ), + "PythonLexer": ( + "pip._vendor.pygments.lexers.python", + "Python", + ("python", "py", "sage", "python3", "py3", "bazel", "starlark", "pyi"), + ( + "*.py", + "*.pyw", + "*.pyi", + "*.jy", + "*.sage", + "*.sc", + "SConstruct", + "SConscript", + "*.bzl", + "BUCK", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "*.tac", + ), + ( + "text/x-python", + "application/x-python", + "text/x-python3", + "application/x-python3", + ), + ), + "PythonTracebackLexer": ( + "pip._vendor.pygments.lexers.python", + "Python Traceback", + ("pytb", "py3tb"), + ("*.pytb", "*.py3tb"), + ("text/x-python-traceback", "text/x-python3-traceback"), + ), + "PythonUL4Lexer": ( + "pip._vendor.pygments.lexers.ul4", + "Python+UL4", + ("py+ul4",), + ("*.pyul4",), + (), + ), + "QBasicLexer": ( + "pip._vendor.pygments.lexers.basic", + "QBasic", + ("qbasic", "basic"), + ("*.BAS", "*.bas"), + ("text/basic",), + ), + "QLexer": ("pip._vendor.pygments.lexers.q", "Q", ("q",), ("*.q",), ()), + "QVToLexer": ( + "pip._vendor.pygments.lexers.qvt", + "QVTO", + ("qvto", "qvt"), + ("*.qvto",), + (), + ), + "QlikLexer": ( + "pip._vendor.pygments.lexers.qlik", + "Qlik", + ("qlik", "qlikview", "qliksense", "qlikscript"), + ("*.qvs", "*.qvw"), + (), + ), + "QmlLexer": ( + "pip._vendor.pygments.lexers.webmisc", + "QML", + ("qml", "qbs"), + ("*.qml", "*.qbs"), + ("application/x-qml", "application/x-qt.qbs+qml"), + ), + "RConsoleLexer": ( + "pip._vendor.pygments.lexers.r", + "RConsole", + ("rconsole", "rout"), + ("*.Rout",), + (), + ), + "RNCCompactLexer": ( + "pip._vendor.pygments.lexers.rnc", + "Relax-NG Compact", + ("rng-compact", "rnc"), + ("*.rnc",), + (), + ), + "RPMSpecLexer": ( + "pip._vendor.pygments.lexers.installers", + "RPMSpec", + ("spec",), + ("*.spec",), + ("text/x-rpm-spec",), + ), + "RacketLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Racket", + ("racket", "rkt"), + ("*.rkt", "*.rktd", "*.rktl"), + ("text/x-racket", "application/x-racket"), + ), + "RagelCLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in C Host", + ("ragel-c",), + ("*.rl",), + (), + ), + "RagelCppLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in CPP Host", + ("ragel-cpp",), + ("*.rl",), + (), + ), + "RagelDLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in D Host", + ("ragel-d",), + ("*.rl",), + (), + ), + "RagelEmbeddedLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Embedded Ragel", + ("ragel-em",), + ("*.rl",), + (), + ), + "RagelJavaLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in Java Host", + ("ragel-java",), + ("*.rl",), + (), + ), + "RagelLexer": ("pip._vendor.pygments.lexers.parsers", "Ragel", ("ragel",), (), ()), + "RagelObjectiveCLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in Objective C Host", + ("ragel-objc",), + ("*.rl",), + (), + ), + "RagelRubyLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Ragel in Ruby Host", + ("ragel-ruby", "ragel-rb"), + ("*.rl",), + (), + ), + "RawTokenLexer": ( + "pip._vendor.pygments.lexers.special", + "Raw token data", + (), + (), + ("application/x-pygments-tokens",), + ), + "RdLexer": ( + "pip._vendor.pygments.lexers.r", + "Rd", + ("rd",), + ("*.Rd",), + ("text/x-r-doc",), + ), + "ReasonLexer": ( + "pip._vendor.pygments.lexers.ml", + "ReasonML", + ("reasonml", "reason"), + ("*.re", "*.rei"), + ("text/x-reasonml",), + ), + "RebolLexer": ( + "pip._vendor.pygments.lexers.rebol", + "REBOL", + ("rebol",), + ("*.r", "*.r3", "*.reb"), + ("text/x-rebol",), + ), + "RedLexer": ( + "pip._vendor.pygments.lexers.rebol", + "Red", + ("red", "red/system"), + ("*.red", "*.reds"), + ("text/x-red", "text/x-red-system"), + ), + "RedcodeLexer": ( + "pip._vendor.pygments.lexers.esoteric", + "Redcode", + ("redcode",), + ("*.cw",), + (), + ), + "RegeditLexer": ( + "pip._vendor.pygments.lexers.configs", + "reg", + ("registry",), + ("*.reg",), + ("text/x-windows-registry",), + ), + "RegoLexer": ( + "pip._vendor.pygments.lexers.rego", + "Rego", + ("rego",), + ("*.rego",), + ("text/x-rego",), + ), + "ResourceLexer": ( + "pip._vendor.pygments.lexers.resource", + "ResourceBundle", + ("resourcebundle", "resource"), + (), + (), + ), + "RexxLexer": ( + "pip._vendor.pygments.lexers.scripting", + "Rexx", + ("rexx", "arexx"), + ("*.rexx", "*.rex", "*.rx", "*.arexx"), + ("text/x-rexx",), + ), + "RhtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "RHTML", + ("rhtml", "html+erb", "html+ruby"), + ("*.rhtml",), + ("text/html+ruby",), + ), + "RideLexer": ( + "pip._vendor.pygments.lexers.ride", + "Ride", + ("ride",), + ("*.ride",), + ("text/x-ride",), + ), + "RitaLexer": ( + "pip._vendor.pygments.lexers.rita", + "Rita", + ("rita",), + ("*.rita",), + ("text/rita",), + ), + "RoboconfGraphLexer": ( + "pip._vendor.pygments.lexers.roboconf", + "Roboconf Graph", + ("roboconf-graph",), + ("*.graph",), + (), + ), + "RoboconfInstancesLexer": ( + "pip._vendor.pygments.lexers.roboconf", + "Roboconf Instances", + ("roboconf-instances",), + ("*.instances",), + (), + ), + "RobotFrameworkLexer": ( + "pip._vendor.pygments.lexers.robotframework", + "RobotFramework", + ("robotframework",), + ("*.robot", "*.resource"), + ("text/x-robotframework",), + ), + "RqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "RQL", + ("rql",), + ("*.rql",), + ("text/x-rql",), + ), + "RslLexer": ( + "pip._vendor.pygments.lexers.dsls", + "RSL", + ("rsl",), + ("*.rsl",), + ("text/rsl",), + ), + "RstLexer": ( + "pip._vendor.pygments.lexers.markup", + "reStructuredText", + ("restructuredtext", "rst", "rest"), + ("*.rst", "*.rest"), + ("text/x-rst", "text/prs.fallenstein.rst"), + ), + "RtsLexer": ( + "pip._vendor.pygments.lexers.trafficscript", + "TrafficScript", + ("trafficscript", "rts"), + ("*.rts",), + (), + ), + "RubyConsoleLexer": ( + "pip._vendor.pygments.lexers.ruby", + "Ruby irb session", + ("rbcon", "irb"), + (), + ("text/x-ruby-shellsession",), + ), + "RubyLexer": ( + "pip._vendor.pygments.lexers.ruby", + "Ruby", + ("ruby", "rb", "duby"), + ( + "*.rb", + "*.rbw", + "Rakefile", + "*.rake", + "*.gemspec", + "*.rbx", + "*.duby", + "Gemfile", + "Vagrantfile", + ), + ("text/x-ruby", "application/x-ruby"), + ), + "RustLexer": ( + "pip._vendor.pygments.lexers.rust", + "Rust", + ("rust", "rs"), + ("*.rs", "*.rs.in"), + ("text/rust", "text/x-rust"), + ), + "SASLexer": ( + "pip._vendor.pygments.lexers.sas", + "SAS", + ("sas",), + ("*.SAS", "*.sas"), + ("text/x-sas", "text/sas", "application/x-sas"), + ), + "SLexer": ( + "pip._vendor.pygments.lexers.r", + "S", + ("splus", "s", "r"), + ("*.S", "*.R", ".Rhistory", ".Rprofile", ".Renviron"), + ( + "text/S-plus", + "text/S", + "text/x-r-source", + "text/x-r", + "text/x-R", + "text/x-r-history", + "text/x-r-profile", + ), + ), + "SMLLexer": ( + "pip._vendor.pygments.lexers.ml", + "Standard ML", + ("sml",), + ("*.sml", "*.sig", "*.fun"), + ("text/x-standardml", "application/x-standardml"), + ), + "SNBTLexer": ( + "pip._vendor.pygments.lexers.minecraft", + "SNBT", + ("snbt",), + ("*.snbt",), + ("text/snbt",), + ), + "SarlLexer": ( + "pip._vendor.pygments.lexers.jvm", + "SARL", + ("sarl",), + ("*.sarl",), + ("text/x-sarl",), + ), + "SassLexer": ( + "pip._vendor.pygments.lexers.css", + "Sass", + ("sass",), + ("*.sass",), + ("text/x-sass",), + ), + "SaviLexer": ( + "pip._vendor.pygments.lexers.savi", + "Savi", + ("savi",), + ("*.savi",), + (), + ), + "ScalaLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Scala", + ("scala",), + ("*.scala",), + ("text/x-scala",), + ), + "ScamlLexer": ( + "pip._vendor.pygments.lexers.html", + "Scaml", + ("scaml",), + ("*.scaml",), + ("text/x-scaml",), + ), + "ScdocLexer": ( + "pip._vendor.pygments.lexers.scdoc", + "scdoc", + ("scdoc", "scd"), + ("*.scd", "*.scdoc"), + (), + ), + "SchemeLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Scheme", + ("scheme", "scm"), + ("*.scm", "*.ss"), + ("text/x-scheme", "application/x-scheme"), + ), + "ScilabLexer": ( + "pip._vendor.pygments.lexers.matlab", + "Scilab", + ("scilab",), + ("*.sci", "*.sce", "*.tst"), + ("text/scilab",), + ), + "ScssLexer": ( + "pip._vendor.pygments.lexers.css", + "SCSS", + ("scss",), + ("*.scss",), + ("text/x-scss",), + ), + "SedLexer": ( + "pip._vendor.pygments.lexers.textedit", + "Sed", + ("sed", "gsed", "ssed"), + ("*.sed", "*.[gs]sed"), + ("text/x-sed",), + ), + "ShExCLexer": ( + "pip._vendor.pygments.lexers.rdf", + "ShExC", + ("shexc", "shex"), + ("*.shex",), + ("text/shex",), + ), + "ShenLexer": ( + "pip._vendor.pygments.lexers.lisp", + "Shen", + ("shen",), + ("*.shen",), + ("text/x-shen", "application/x-shen"), + ), + "SieveLexer": ( + "pip._vendor.pygments.lexers.sieve", + "Sieve", + ("sieve",), + ("*.siv", "*.sieve"), + (), + ), + "SilverLexer": ( + "pip._vendor.pygments.lexers.verification", + "Silver", + ("silver",), + ("*.sil", "*.vpr"), + (), + ), + "SingularityLexer": ( + "pip._vendor.pygments.lexers.configs", + "Singularity", + ("singularity",), + ("*.def", "Singularity"), + (), + ), + "SlashLexer": ( + "pip._vendor.pygments.lexers.slash", + "Slash", + ("slash",), + ("*.sla",), + (), + ), + "SlimLexer": ( + "pip._vendor.pygments.lexers.webmisc", + "Slim", + ("slim",), + ("*.slim",), + ("text/x-slim",), + ), + "SlurmBashLexer": ( + "pip._vendor.pygments.lexers.shell", + "Slurm", + ("slurm", "sbatch"), + ("*.sl",), + (), + ), + "SmaliLexer": ( + "pip._vendor.pygments.lexers.dalvik", + "Smali", + ("smali",), + ("*.smali",), + ("text/smali",), + ), + "SmalltalkLexer": ( + "pip._vendor.pygments.lexers.smalltalk", + "Smalltalk", + ("smalltalk", "squeak", "st"), + ("*.st",), + ("text/x-smalltalk",), + ), + "SmartGameFormatLexer": ( + "pip._vendor.pygments.lexers.sgf", + "SmartGameFormat", + ("sgf",), + ("*.sgf",), + (), + ), + "SmartyLexer": ( + "pip._vendor.pygments.lexers.templates", + "Smarty", + ("smarty",), + ("*.tpl",), + ("application/x-smarty",), + ), + "SmithyLexer": ( + "pip._vendor.pygments.lexers.smithy", + "Smithy", + ("smithy",), + ("*.smithy",), + (), + ), + "SnobolLexer": ( + "pip._vendor.pygments.lexers.snobol", + "Snobol", + ("snobol",), + ("*.snobol",), + ("text/x-snobol",), + ), + "SnowballLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Snowball", + ("snowball",), + ("*.sbl",), + (), + ), + "SolidityLexer": ( + "pip._vendor.pygments.lexers.solidity", + "Solidity", + ("solidity",), + ("*.sol",), + (), + ), + "SoongLexer": ( + "pip._vendor.pygments.lexers.soong", + "Soong", + ("androidbp", "bp", "soong"), + ("Android.bp",), + (), + ), + "SophiaLexer": ( + "pip._vendor.pygments.lexers.sophia", + "Sophia", + ("sophia",), + ("*.aes",), + (), + ), + "SourcePawnLexer": ( + "pip._vendor.pygments.lexers.pawn", + "SourcePawn", + ("sp",), + ("*.sp",), + ("text/x-sourcepawn",), + ), + "SourcesListLexer": ( + "pip._vendor.pygments.lexers.installers", + "Debian Sourcelist", + ("debsources", "sourceslist", "sources.list"), + ("sources.list",), + (), + ), + "SparqlLexer": ( + "pip._vendor.pygments.lexers.rdf", + "SPARQL", + ("sparql",), + ("*.rq", "*.sparql"), + ("application/sparql-query",), + ), + "SpiceLexer": ( + "pip._vendor.pygments.lexers.spice", + "Spice", + ("spice", "spicelang"), + ("*.spice",), + ("text/x-spice",), + ), + "SqlJinjaLexer": ( + "pip._vendor.pygments.lexers.templates", + "SQL+Jinja", + ("sql+jinja",), + ("*.sql", "*.sql.j2", "*.sql.jinja2"), + (), + ), + "SqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "SQL", + ("sql",), + ("*.sql",), + ("text/x-sql",), + ), + "SqliteConsoleLexer": ( + "pip._vendor.pygments.lexers.sql", + "sqlite3con", + ("sqlite3",), + ("*.sqlite3-console",), + ("text/x-sqlite3-console",), + ), + "SquidConfLexer": ( + "pip._vendor.pygments.lexers.configs", + "SquidConf", + ("squidconf", "squid.conf", "squid"), + ("squid.conf",), + ("text/x-squidconf",), + ), + "SrcinfoLexer": ( + "pip._vendor.pygments.lexers.srcinfo", + "Srcinfo", + ("srcinfo",), + (".SRCINFO",), + (), + ), + "SspLexer": ( + "pip._vendor.pygments.lexers.templates", + "Scalate Server Page", + ("ssp",), + ("*.ssp",), + ("application/x-ssp",), + ), + "StanLexer": ( + "pip._vendor.pygments.lexers.modeling", + "Stan", + ("stan",), + ("*.stan",), + (), + ), + "StataLexer": ( + "pip._vendor.pygments.lexers.stata", + "Stata", + ("stata", "do"), + ("*.do", "*.ado"), + ("text/x-stata", "text/stata", "application/x-stata"), + ), + "SuperColliderLexer": ( + "pip._vendor.pygments.lexers.supercollider", + "SuperCollider", + ("supercollider", "sc"), + ("*.sc", "*.scd"), + ("application/supercollider", "text/supercollider"), + ), + "SwiftLexer": ( + "pip._vendor.pygments.lexers.objective", + "Swift", + ("swift",), + ("*.swift",), + ("text/x-swift",), + ), + "SwigLexer": ( + "pip._vendor.pygments.lexers.c_like", + "SWIG", + ("swig",), + ("*.swg", "*.i"), + ("text/swig",), + ), + "SystemVerilogLexer": ( + "pip._vendor.pygments.lexers.hdl", + "systemverilog", + ("systemverilog", "sv"), + ("*.sv", "*.svh"), + ("text/x-systemverilog",), + ), + "SystemdLexer": ( + "pip._vendor.pygments.lexers.configs", + "Systemd", + ("systemd",), + ( + "*.service", + "*.socket", + "*.device", + "*.mount", + "*.automount", + "*.swap", + "*.target", + "*.path", + "*.timer", + "*.slice", + "*.scope", + ), + (), + ), + "TAPLexer": ( + "pip._vendor.pygments.lexers.testing", + "TAP", + ("tap",), + ("*.tap",), + (), + ), + "TNTLexer": ( + "pip._vendor.pygments.lexers.tnt", + "Typographic Number Theory", + ("tnt",), + ("*.tnt",), + (), + ), + "TOMLLexer": ( + "pip._vendor.pygments.lexers.configs", + "TOML", + ("toml",), + ("*.toml", "Pipfile", "poetry.lock"), + ("application/toml",), + ), + "TableGenLexer": ( + "pip._vendor.pygments.lexers.tablegen", + "TableGen", + ("tablegen", "td"), + ("*.td",), + (), + ), + "TactLexer": ( + "pip._vendor.pygments.lexers.tact", + "Tact", + ("tact",), + ("*.tact",), + (), + ), + "Tads3Lexer": ( + "pip._vendor.pygments.lexers.int_fiction", + "TADS 3", + ("tads3",), + ("*.t",), + (), + ), + "TalLexer": ( + "pip._vendor.pygments.lexers.tal", + "Tal", + ("tal", "uxntal"), + ("*.tal",), + ("text/x-uxntal",), + ), + "TasmLexer": ( + "pip._vendor.pygments.lexers.asm", + "TASM", + ("tasm",), + ("*.asm", "*.ASM", "*.tasm"), + ("text/x-tasm",), + ), + "TclLexer": ( + "pip._vendor.pygments.lexers.tcl", + "Tcl", + ("tcl",), + ("*.tcl", "*.rvt"), + ("text/x-tcl", "text/x-script.tcl", "application/x-tcl"), + ), + "TcshLexer": ( + "pip._vendor.pygments.lexers.shell", + "Tcsh", + ("tcsh", "csh"), + ("*.tcsh", "*.csh"), + ("application/x-csh",), + ), + "TcshSessionLexer": ( + "pip._vendor.pygments.lexers.shell", + "Tcsh Session", + ("tcshcon",), + (), + (), + ), + "TeaTemplateLexer": ( + "pip._vendor.pygments.lexers.templates", + "Tea", + ("tea",), + ("*.tea",), + ("text/x-tea",), + ), + "TealLexer": ( + "pip._vendor.pygments.lexers.teal", + "teal", + ("teal",), + ("*.teal",), + (), + ), + "TeraTermLexer": ( + "pip._vendor.pygments.lexers.teraterm", + "Tera Term macro", + ("teratermmacro", "teraterm", "ttl"), + ("*.ttl",), + ("text/x-teratermmacro",), + ), + "TermcapLexer": ( + "pip._vendor.pygments.lexers.configs", + "Termcap", + ("termcap",), + ("termcap", "termcap.src"), + (), + ), + "TerminfoLexer": ( + "pip._vendor.pygments.lexers.configs", + "Terminfo", + ("terminfo",), + ("terminfo", "terminfo.src"), + (), + ), + "TerraformLexer": ( + "pip._vendor.pygments.lexers.configs", + "Terraform", + ("terraform", "tf", "hcl"), + ("*.tf", "*.hcl"), + ("application/x-tf", "application/x-terraform"), + ), + "TexLexer": ( + "pip._vendor.pygments.lexers.markup", + "TeX", + ("tex", "latex"), + ("*.tex", "*.aux", "*.toc"), + ("text/x-tex", "text/x-latex"), + ), + "TextLexer": ( + "pip._vendor.pygments.lexers.special", + "Text only", + ("text",), + ("*.txt",), + ("text/plain",), + ), + "ThingsDBLexer": ( + "pip._vendor.pygments.lexers.thingsdb", + "ThingsDB", + ("ti", "thingsdb"), + ("*.ti",), + (), + ), + "ThriftLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Thrift", + ("thrift",), + ("*.thrift",), + ("application/x-thrift",), + ), + "TiddlyWiki5Lexer": ( + "pip._vendor.pygments.lexers.markup", + "tiddler", + ("tid",), + ("*.tid",), + ("text/vnd.tiddlywiki",), + ), + "TlbLexer": ("pip._vendor.pygments.lexers.tlb", "Tl-b", ("tlb",), ("*.tlb",), ()), + "TlsLexer": ( + "pip._vendor.pygments.lexers.tls", + "TLS Presentation Language", + ("tls",), + (), + (), + ), + "TodotxtLexer": ( + "pip._vendor.pygments.lexers.textfmts", + "Todotxt", + ("todotxt",), + ("todo.txt", "*.todotxt"), + ("text/x-todo",), + ), + "TransactSqlLexer": ( + "pip._vendor.pygments.lexers.sql", + "Transact-SQL", + ("tsql", "t-sql"), + ("*.sql",), + ("text/x-tsql",), + ), + "TreetopLexer": ( + "pip._vendor.pygments.lexers.parsers", + "Treetop", + ("treetop",), + ("*.treetop", "*.tt"), + (), + ), + "TsxLexer": ( + "pip._vendor.pygments.lexers.jsx", + "TSX", + ("tsx",), + ("*.tsx",), + ("text/typescript-tsx",), + ), + "TurtleLexer": ( + "pip._vendor.pygments.lexers.rdf", + "Turtle", + ("turtle",), + ("*.ttl",), + ("text/turtle", "application/x-turtle"), + ), + "TwigHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Twig", + ("html+twig",), + ("*.twig",), + ("text/html+twig",), + ), + "TwigLexer": ( + "pip._vendor.pygments.lexers.templates", + "Twig", + ("twig",), + (), + ("application/x-twig",), + ), + "TypeScriptLexer": ( + "pip._vendor.pygments.lexers.javascript", + "TypeScript", + ("typescript", "ts"), + ("*.ts",), + ("application/x-typescript", "text/x-typescript"), + ), + "TypoScriptCssDataLexer": ( + "pip._vendor.pygments.lexers.typoscript", + "TypoScriptCssData", + ("typoscriptcssdata",), + (), + (), + ), + "TypoScriptHtmlDataLexer": ( + "pip._vendor.pygments.lexers.typoscript", + "TypoScriptHtmlData", + ("typoscripthtmldata",), + (), + (), + ), + "TypoScriptLexer": ( + "pip._vendor.pygments.lexers.typoscript", + "TypoScript", + ("typoscript",), + ("*.typoscript",), + ("text/x-typoscript",), + ), + "TypstLexer": ( + "pip._vendor.pygments.lexers.typst", + "Typst", + ("typst",), + ("*.typ",), + ("text/x-typst",), + ), + "UL4Lexer": ("pip._vendor.pygments.lexers.ul4", "UL4", ("ul4",), ("*.ul4",), ()), + "UcodeLexer": ( + "pip._vendor.pygments.lexers.unicon", + "ucode", + ("ucode",), + ("*.u", "*.u1", "*.u2"), + (), + ), + "UniconLexer": ( + "pip._vendor.pygments.lexers.unicon", + "Unicon", + ("unicon",), + ("*.icn",), + ("text/unicon",), + ), + "UnixConfigLexer": ( + "pip._vendor.pygments.lexers.configs", + "Unix/Linux config files", + ("unixconfig", "linuxconfig"), + (), + (), + ), + "UrbiscriptLexer": ( + "pip._vendor.pygments.lexers.urbi", + "UrbiScript", + ("urbiscript",), + ("*.u",), + ("application/x-urbiscript",), + ), + "UrlEncodedLexer": ( + "pip._vendor.pygments.lexers.html", + "urlencoded", + ("urlencoded",), + (), + ("application/x-www-form-urlencoded",), + ), + "UsdLexer": ( + "pip._vendor.pygments.lexers.usd", + "USD", + ("usd", "usda"), + ("*.usd", "*.usda"), + (), + ), + "VBScriptLexer": ( + "pip._vendor.pygments.lexers.basic", + "VBScript", + ("vbscript",), + ("*.vbs", "*.VBS"), + (), + ), + "VCLLexer": ( + "pip._vendor.pygments.lexers.varnish", + "VCL", + ("vcl",), + ("*.vcl",), + ("text/x-vclsrc",), + ), + "VCLSnippetLexer": ( + "pip._vendor.pygments.lexers.varnish", + "VCLSnippets", + ("vclsnippets", "vclsnippet"), + (), + ("text/x-vclsnippet",), + ), + "VCTreeStatusLexer": ( + "pip._vendor.pygments.lexers.console", + "VCTreeStatus", + ("vctreestatus",), + (), + (), + ), + "VGLLexer": ("pip._vendor.pygments.lexers.dsls", "VGL", ("vgl",), ("*.rpf",), ()), + "ValaLexer": ( + "pip._vendor.pygments.lexers.c_like", + "Vala", + ("vala", "vapi"), + ("*.vala", "*.vapi"), + ("text/x-vala",), + ), + "VbNetAspxLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "aspx-vb", + ("aspx-vb",), + ("*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"), + (), + ), + "VbNetLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "VB.net", + ("vb.net", "vbnet", "lobas", "oobas", "sobas", "visual-basic", "visualbasic"), + ("*.vb", "*.bas"), + ("text/x-vbnet", "text/x-vba"), + ), + "VelocityHtmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "HTML+Velocity", + ("html+velocity",), + (), + ("text/html+velocity",), + ), + "VelocityLexer": ( + "pip._vendor.pygments.lexers.templates", + "Velocity", + ("velocity",), + ("*.vm", "*.fhtml"), + (), + ), + "VelocityXmlLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Velocity", + ("xml+velocity",), + (), + ("application/xml+velocity",), + ), + "VerifpalLexer": ( + "pip._vendor.pygments.lexers.verifpal", + "Verifpal", + ("verifpal",), + ("*.vp",), + ("text/x-verifpal",), + ), + "VerilogLexer": ( + "pip._vendor.pygments.lexers.hdl", + "verilog", + ("verilog", "v"), + ("*.v",), + ("text/x-verilog",), + ), + "VhdlLexer": ( + "pip._vendor.pygments.lexers.hdl", + "vhdl", + ("vhdl",), + ("*.vhdl", "*.vhd"), + ("text/x-vhdl",), + ), + "VimLexer": ( + "pip._vendor.pygments.lexers.textedit", + "VimL", + ("vim",), + ( + "*.vim", + ".vimrc", + ".exrc", + ".gvimrc", + "_vimrc", + "_exrc", + "_gvimrc", + "vimrc", + "gvimrc", + ), + ("text/x-vim",), + ), + "VisualPrologGrammarLexer": ( + "pip._vendor.pygments.lexers.vip", + "Visual Prolog Grammar", + ("visualprologgrammar",), + ("*.vipgrm",), + (), + ), + "VisualPrologLexer": ( + "pip._vendor.pygments.lexers.vip", + "Visual Prolog", + ("visualprolog",), + ("*.pro", "*.cl", "*.i", "*.pack", "*.ph"), + (), + ), + "VueLexer": ("pip._vendor.pygments.lexers.html", "Vue", ("vue",), ("*.vue",), ()), + "VyperLexer": ( + "pip._vendor.pygments.lexers.vyper", + "Vyper", + ("vyper",), + ("*.vy",), + (), + ), + "WDiffLexer": ( + "pip._vendor.pygments.lexers.diff", + "WDiff", + ("wdiff",), + ("*.wdiff",), + (), + ), + "WatLexer": ( + "pip._vendor.pygments.lexers.webassembly", + "WebAssembly", + ("wast", "wat"), + ("*.wat", "*.wast"), + (), + ), + "WebIDLLexer": ( + "pip._vendor.pygments.lexers.webidl", + "Web IDL", + ("webidl",), + ("*.webidl",), + (), + ), + "WgslLexer": ( + "pip._vendor.pygments.lexers.wgsl", + "WebGPU Shading Language", + ("wgsl",), + ("*.wgsl",), + ("text/wgsl",), + ), + "WhileyLexer": ( + "pip._vendor.pygments.lexers.whiley", + "Whiley", + ("whiley",), + ("*.whiley",), + ("text/x-whiley",), + ), + "WikitextLexer": ( + "pip._vendor.pygments.lexers.markup", + "Wikitext", + ("wikitext", "mediawiki"), + (), + ("text/x-wiki",), + ), + "WoWTocLexer": ( + "pip._vendor.pygments.lexers.wowtoc", + "World of Warcraft TOC", + ("wowtoc",), + ("*.toc",), + (), + ), + "WrenLexer": ( + "pip._vendor.pygments.lexers.wren", + "Wren", + ("wren",), + ("*.wren",), + (), + ), + "X10Lexer": ( + "pip._vendor.pygments.lexers.x10", + "X10", + ("x10", "xten"), + ("*.x10",), + ("text/x-x10",), + ), + "XMLUL4Lexer": ( + "pip._vendor.pygments.lexers.ul4", + "XML+UL4", + ("xml+ul4",), + ("*.xmlul4",), + (), + ), + "XQueryLexer": ( + "pip._vendor.pygments.lexers.webmisc", + "XQuery", + ("xquery", "xqy", "xq", "xql", "xqm"), + ("*.xqy", "*.xquery", "*.xq", "*.xql", "*.xqm"), + ("text/xquery", "application/xquery"), + ), + "XmlDjangoLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Django/Jinja", + ("xml+django", "xml+jinja"), + ("*.xml.j2", "*.xml.jinja2"), + ("application/xml+django", "application/xml+jinja"), + ), + "XmlErbLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Ruby", + ("xml+ruby", "xml+erb"), + (), + ("application/xml+ruby",), + ), + "XmlLexer": ( + "pip._vendor.pygments.lexers.html", + "XML", + ("xml",), + ("*.xml", "*.xsl", "*.rss", "*.xslt", "*.xsd", "*.wsdl", "*.wsf"), + ( + "text/xml", + "application/xml", + "image/svg+xml", + "application/rss+xml", + "application/atom+xml", + ), + ), + "XmlPhpLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+PHP", + ("xml+php",), + (), + ("application/xml+php",), + ), + "XmlSmartyLexer": ( + "pip._vendor.pygments.lexers.templates", + "XML+Smarty", + ("xml+smarty",), + (), + ("application/xml+smarty",), + ), + "XorgLexer": ( + "pip._vendor.pygments.lexers.xorg", + "Xorg", + ("xorg.conf",), + ("xorg.conf",), + (), + ), + "XppLexer": ( + "pip._vendor.pygments.lexers.dotnet", + "X++", + ("xpp", "x++"), + ("*.xpp",), + (), + ), + "XsltLexer": ( + "pip._vendor.pygments.lexers.html", + "XSLT", + ("xslt",), + ("*.xsl", "*.xslt", "*.xpl"), + ("application/xsl+xml", "application/xslt+xml"), + ), + "XtendLexer": ( + "pip._vendor.pygments.lexers.jvm", + "Xtend", + ("xtend",), + ("*.xtend",), + ("text/x-xtend",), + ), + "XtlangLexer": ( + "pip._vendor.pygments.lexers.lisp", + "xtlang", + ("extempore",), + ("*.xtm",), + (), + ), + "YamlJinjaLexer": ( + "pip._vendor.pygments.lexers.templates", + "YAML+Jinja", + ("yaml+jinja", "salt", "sls"), + ("*.sls", "*.yaml.j2", "*.yml.j2", "*.yaml.jinja2", "*.yml.jinja2"), + ("text/x-yaml+jinja", "text/x-sls"), + ), + "YamlLexer": ( + "pip._vendor.pygments.lexers.data", + "YAML", + ("yaml",), + ("*.yaml", "*.yml"), + ("text/x-yaml",), + ), + "YangLexer": ( + "pip._vendor.pygments.lexers.yang", + "YANG", + ("yang",), + ("*.yang",), + ("application/yang",), + ), + "YaraLexer": ( + "pip._vendor.pygments.lexers.yara", + "YARA", + ("yara", "yar"), + ("*.yar",), + ("text/x-yara",), + ), + "ZeekLexer": ( + "pip._vendor.pygments.lexers.dsls", + "Zeek", + ("zeek", "bro"), + ("*.zeek", "*.bro"), + (), + ), + "ZephirLexer": ( + "pip._vendor.pygments.lexers.php", + "Zephir", + ("zephir",), + ("*.zep",), + (), + ), + "ZigLexer": ( + "pip._vendor.pygments.lexers.zig", + "Zig", + ("zig",), + ("*.zig",), + ("text/zig",), + ), + "apdlexer": ( + "pip._vendor.pygments.lexers.apdlexer", + "ANSYS parametric design language", + ("ansys", "apdl"), + ("*.ans",), + (), + ), } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py index 1b78829..b422854 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py @@ -1,25 +1,53 @@ """ - pygments.lexers.python - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.python +~~~~~~~~~~~~~~~~~~~~~~ - Lexers for Python and related languages. +Lexers for Python and related languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import keyword -from pip._vendor.pygments.lexer import DelegatingLexer, RegexLexer, include, \ - bygroups, using, default, words, combined, this +from pip._vendor.pygments.lexer import ( + DelegatingLexer, + RegexLexer, + include, + bygroups, + using, + default, + words, + combined, + this, +) from pip._vendor.pygments.util import get_bool_opt, shebang_matches -from pip._vendor.pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic, Other, Error, Whitespace +from pip._vendor.pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, + Other, + Error, + Whitespace, +) from pip._vendor.pygments import unistring as uni -__all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer', - 'Python2Lexer', 'Python2TracebackLexer', - 'CythonLexer', 'DgLexer', 'NumPyLexer'] +__all__ = [ + "PythonLexer", + "PythonConsoleLexer", + "PythonTracebackLexer", + "Python2Lexer", + "Python2TracebackLexer", + "CythonLexer", + "DgLexer", + "NumPyLexer", +] class PythonLexer(RegexLexer): @@ -31,54 +59,63 @@ class PythonLexer(RegexLexer): alias ``Python3Lexer``. """ - name = 'Python' - url = 'https://www.python.org' - aliases = ['python', 'py', 'sage', 'python3', 'py3', 'bazel', 'starlark', 'pyi'] + name = "Python" + url = "https://www.python.org" + aliases = ["python", "py", "sage", "python3", "py3", "bazel", "starlark", "pyi"] filenames = [ - '*.py', - '*.pyw', + "*.py", + "*.pyw", # Type stubs - '*.pyi', + "*.pyi", # Jython - '*.jy', + "*.jy", # Sage - '*.sage', + "*.sage", # SCons - '*.sc', - 'SConstruct', - 'SConscript', + "*.sc", + "SConstruct", + "SConscript", # Skylark/Starlark (used by Bazel, Buck, and Pants) - '*.bzl', - 'BUCK', - 'BUILD', - 'BUILD.bazel', - 'WORKSPACE', + "*.bzl", + "BUCK", + "BUILD", + "BUILD.bazel", + "WORKSPACE", # Twisted Application infrastructure - '*.tac', + "*.tac", ] - mimetypes = ['text/x-python', 'application/x-python', - 'text/x-python3', 'application/x-python3'] - version_added = '0.10' + mimetypes = [ + "text/x-python", + "application/x-python", + "text/x-python3", + "application/x-python3", + ] + version_added = "0.10" uni_name = f"[{uni.xid_start}][{uni.xid_continue}]*" def innerstring_rules(ttype): return [ # the old style '%s' % (...) string formatting (still valid in Py3) - (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' - '[hlL]?[E-GXc-giorsaux%]', String.Interpol), + ( + r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?" + "[hlL]?[E-GXc-giorsaux%]", + String.Interpol, + ), # the new style '{}'.format(...) string formatting - (r'\{' - r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?' # field name - r'(\![sra])?' # conversion - r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?' - r'\}', String.Interpol), - + ( + r"\{" + r"((\w+)((\.\w+)|(\[[^\]]+\]))*)?" # field name + r"(\![sra])?" # conversion + r"(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?" + r"\}", + String.Interpol, + ), # backslashes, quotes and formatting signs must be parsed one at a time (r'[^\\\'"%{\n]+', ttype), (r'[\'"\\]', ttype), # unhandled string formatting sign - (r'%|(\{{1,2})', ttype) + (r"%|(\{{1,2})", ttype), # newlines are an error (use "nl" state) ] @@ -88,8 +125,8 @@ class PythonLexer(RegexLexer): # Sadly, this means that we won't detect syntax error. But it's # more important to parse correct syntax correctly, than to # highlight invalid syntax. - (r'\}', String.Interpol), - (r'\{', String.Interpol, 'expr-inside-fstring'), + (r"\}", String.Interpol), + (r"\{", String.Interpol, "expr-inside-fstring"), # backslashes, quotes and formatting signs must be parsed one at a time (r'[^\\\'"{}\n]+', ttype), (r'[\'"\\]', ttype), @@ -97,317 +134,635 @@ class PythonLexer(RegexLexer): ] tokens = { - 'root': [ - (r'\n', Whitespace), - (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")', - bygroups(Whitespace, String.Affix, String.Doc)), - (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')", - bygroups(Whitespace, String.Affix, String.Doc)), - (r'\A#!.+$', Comment.Hashbang), - (r'#.*$', Comment.Single), - (r'\\\n', Text), - (r'\\', Text), - include('keywords'), - include('soft-keywords'), - (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'funcname'), - (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'classname'), - (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace), - 'fromimport'), - (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace), - 'import'), - include('expr'), + "root": [ + (r"\n", Whitespace), + ( + r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")', + bygroups(Whitespace, String.Affix, String.Doc), + ), + ( + r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')", + bygroups(Whitespace, String.Affix, String.Doc), + ), + (r"\A#!.+$", Comment.Hashbang), + (r"#.*$", Comment.Single), + (r"\\\n", Text), + (r"\\", Text), + include("keywords"), + include("soft-keywords"), + (r"(def)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "funcname"), + (r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "classname"), + ( + r"(from)((?:\s|\\\s)+)", + bygroups(Keyword.Namespace, Whitespace), + "fromimport", + ), + ( + r"(import)((?:\s|\\\s)+)", + bygroups(Keyword.Namespace, Whitespace), + "import", + ), + include("expr"), ], - 'expr': [ + "expr": [ # raw f-strings - ('(?i)(rf|fr)(""")', - bygroups(String.Affix, String.Double), - combined('rfstringescape', 'tdqf')), - ("(?i)(rf|fr)(''')", - bygroups(String.Affix, String.Single), - combined('rfstringescape', 'tsqf')), - ('(?i)(rf|fr)(")', - bygroups(String.Affix, String.Double), - combined('rfstringescape', 'dqf')), - ("(?i)(rf|fr)(')", - bygroups(String.Affix, String.Single), - combined('rfstringescape', 'sqf')), + ( + '(?i)(rf|fr)(""")', + bygroups(String.Affix, String.Double), + combined("rfstringescape", "tdqf"), + ), + ( + "(?i)(rf|fr)(''')", + bygroups(String.Affix, String.Single), + combined("rfstringescape", "tsqf"), + ), + ( + '(?i)(rf|fr)(")', + bygroups(String.Affix, String.Double), + combined("rfstringescape", "dqf"), + ), + ( + "(?i)(rf|fr)(')", + bygroups(String.Affix, String.Single), + combined("rfstringescape", "sqf"), + ), # non-raw f-strings - ('([fF])(""")', bygroups(String.Affix, String.Double), - combined('fstringescape', 'tdqf')), - ("([fF])(''')", bygroups(String.Affix, String.Single), - combined('fstringescape', 'tsqf')), - ('([fF])(")', bygroups(String.Affix, String.Double), - combined('fstringescape', 'dqf')), - ("([fF])(')", bygroups(String.Affix, String.Single), - combined('fstringescape', 'sqf')), + ( + '([fF])(""")', + bygroups(String.Affix, String.Double), + combined("fstringescape", "tdqf"), + ), + ( + "([fF])(''')", + bygroups(String.Affix, String.Single), + combined("fstringescape", "tsqf"), + ), + ( + '([fF])(")', + bygroups(String.Affix, String.Double), + combined("fstringescape", "dqf"), + ), + ( + "([fF])(')", + bygroups(String.Affix, String.Single), + combined("fstringescape", "sqf"), + ), # raw bytes and strings - ('(?i)(rb|br|r)(""")', - bygroups(String.Affix, String.Double), 'tdqs'), - ("(?i)(rb|br|r)(''')", - bygroups(String.Affix, String.Single), 'tsqs'), - ('(?i)(rb|br|r)(")', - bygroups(String.Affix, String.Double), 'dqs'), - ("(?i)(rb|br|r)(')", - bygroups(String.Affix, String.Single), 'sqs'), + ('(?i)(rb|br|r)(""")', bygroups(String.Affix, String.Double), "tdqs"), + ("(?i)(rb|br|r)(''')", bygroups(String.Affix, String.Single), "tsqs"), + ('(?i)(rb|br|r)(")', bygroups(String.Affix, String.Double), "dqs"), + ("(?i)(rb|br|r)(')", bygroups(String.Affix, String.Single), "sqs"), # non-raw strings - ('([uU]?)(""")', bygroups(String.Affix, String.Double), - combined('stringescape', 'tdqs')), - ("([uU]?)(''')", bygroups(String.Affix, String.Single), - combined('stringescape', 'tsqs')), - ('([uU]?)(")', bygroups(String.Affix, String.Double), - combined('stringescape', 'dqs')), - ("([uU]?)(')", bygroups(String.Affix, String.Single), - combined('stringescape', 'sqs')), + ( + '([uU]?)(""")', + bygroups(String.Affix, String.Double), + combined("stringescape", "tdqs"), + ), + ( + "([uU]?)(''')", + bygroups(String.Affix, String.Single), + combined("stringescape", "tsqs"), + ), + ( + '([uU]?)(")', + bygroups(String.Affix, String.Double), + combined("stringescape", "dqs"), + ), + ( + "([uU]?)(')", + bygroups(String.Affix, String.Single), + combined("stringescape", "sqs"), + ), # non-raw bytes - ('([bB])(""")', bygroups(String.Affix, String.Double), - combined('bytesescape', 'tdqs')), - ("([bB])(''')", bygroups(String.Affix, String.Single), - combined('bytesescape', 'tsqs')), - ('([bB])(")', bygroups(String.Affix, String.Double), - combined('bytesescape', 'dqs')), - ("([bB])(')", bygroups(String.Affix, String.Single), - combined('bytesescape', 'sqs')), - - (r'[^\S\n]+', Text), - include('numbers'), - (r'!=|==|<<|>>|:=|[-~+/*%=<>&^|.]', Operator), - (r'[]{}:(),;[]', Punctuation), - (r'(in|is|and|or|not)\b', Operator.Word), - include('expr-keywords'), - include('builtins'), - include('magicfuncs'), - include('magicvars'), - include('name'), + ( + '([bB])(""")', + bygroups(String.Affix, String.Double), + combined("bytesescape", "tdqs"), + ), + ( + "([bB])(''')", + bygroups(String.Affix, String.Single), + combined("bytesescape", "tsqs"), + ), + ( + '([bB])(")', + bygroups(String.Affix, String.Double), + combined("bytesescape", "dqs"), + ), + ( + "([bB])(')", + bygroups(String.Affix, String.Single), + combined("bytesescape", "sqs"), + ), + (r"[^\S\n]+", Text), + include("numbers"), + (r"!=|==|<<|>>|:=|[-~+/*%=<>&^|.]", Operator), + (r"[]{}:(),;[]", Punctuation), + (r"(in|is|and|or|not)\b", Operator.Word), + include("expr-keywords"), + include("builtins"), + include("magicfuncs"), + include("magicvars"), + include("name"), ], - 'expr-inside-fstring': [ - (r'[{([]', Punctuation, 'expr-inside-fstring-inner'), + "expr-inside-fstring": [ + (r"[{([]", Punctuation, "expr-inside-fstring-inner"), # without format specifier - (r'(=\s*)?' # debug (https://bugs.python.org/issue36817) - r'(\![sraf])?' # conversion - r'\}', String.Interpol, '#pop'), + ( + r"(=\s*)?" # debug (https://bugs.python.org/issue36817) + r"(\![sraf])?" # conversion + r"\}", + String.Interpol, + "#pop", + ), # with format specifier # we'll catch the remaining '}' in the outer scope - (r'(=\s*)?' # debug (https://bugs.python.org/issue36817) - r'(\![sraf])?' # conversion - r':', String.Interpol, '#pop'), - (r'\s+', Whitespace), # allow new lines - include('expr'), + ( + r"(=\s*)?" # debug (https://bugs.python.org/issue36817) + r"(\![sraf])?" # conversion + r":", + String.Interpol, + "#pop", + ), + (r"\s+", Whitespace), # allow new lines + include("expr"), ], - 'expr-inside-fstring-inner': [ - (r'[{([]', Punctuation, 'expr-inside-fstring-inner'), - (r'[])}]', Punctuation, '#pop'), - (r'\s+', Whitespace), # allow new lines - include('expr'), + "expr-inside-fstring-inner": [ + (r"[{([]", Punctuation, "expr-inside-fstring-inner"), + (r"[])}]", Punctuation, "#pop"), + (r"\s+", Whitespace), # allow new lines + include("expr"), ], - 'expr-keywords': [ + "expr-keywords": [ # Based on https://docs.python.org/3/reference/expressions.html - (words(( - 'async for', 'await', 'else', 'for', 'if', 'lambda', - 'yield', 'yield from'), suffix=r'\b'), - Keyword), - (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant), + ( + words( + ( + "async for", + "await", + "else", + "for", + "if", + "lambda", + "yield", + "yield from", + ), + suffix=r"\b", + ), + Keyword, + ), + (words(("True", "False", "None"), suffix=r"\b"), Keyword.Constant), ], - 'keywords': [ - (words(( - 'assert', 'async', 'await', 'break', 'continue', 'del', 'elif', - 'else', 'except', 'finally', 'for', 'global', 'if', 'lambda', - 'pass', 'raise', 'nonlocal', 'return', 'try', 'while', 'yield', - 'yield from', 'as', 'with'), suffix=r'\b'), - Keyword), - (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant), + "keywords": [ + ( + words( + ( + "assert", + "async", + "await", + "break", + "continue", + "del", + "elif", + "else", + "except", + "finally", + "for", + "global", + "if", + "lambda", + "pass", + "raise", + "nonlocal", + "return", + "try", + "while", + "yield", + "yield from", + "as", + "with", + ), + suffix=r"\b", + ), + Keyword, + ), + (words(("True", "False", "None"), suffix=r"\b"), Keyword.Constant), ], - 'soft-keywords': [ + "soft-keywords": [ # `match`, `case` and `_` soft keywords - (r'(^[ \t]*)' # at beginning of line + possible indentation - r'(match|case)\b' # a possible keyword - r'(?![ \t]*(?:' # not followed by... - r'[:,;=^&|@~)\]}]|(?:' + # characters and keywords that mean this isn't - # pattern matching (but None/True/False is ok) - r'|'.join(k for k in keyword.kwlist if k[0].islower()) + r')\b))', - bygroups(Text, Keyword), 'soft-keywords-inner'), + ( + r"(^[ \t]*)" # at beginning of line + possible indentation + r"(match|case)\b" # a possible keyword + r"(?![ \t]*(?:" # not followed by... + r"[:,;=^&|@~)\]}]|(?:" + # characters and keywords that mean this isn't + # pattern matching (but None/True/False is ok) + r"|".join(k for k in keyword.kwlist if k[0].islower()) + r")\b))", + bygroups(Text, Keyword), + "soft-keywords-inner", + ), ], - 'soft-keywords-inner': [ + "soft-keywords-inner": [ # optional `_` keyword - (r'(\s+)([^\n_]*)(_\b)', bygroups(Whitespace, using(this), Keyword)), - default('#pop') + (r"(\s+)([^\n_]*)(_\b)", bygroups(Whitespace, using(this), Keyword)), + default("#pop"), ], - 'builtins': [ - (words(( - '__import__', 'abs', 'aiter', 'all', 'any', 'bin', 'bool', 'bytearray', - 'breakpoint', 'bytes', 'callable', 'chr', 'classmethod', 'compile', - 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', - 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', - 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'isinstance', - 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max', - 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', - 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', - 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', - 'tuple', 'type', 'vars', 'zip'), prefix=r'(?>|[-~+/*%=<>&^|.]', Operator), - include('keywords'), - (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'funcname'), - (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'classname'), - (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace), - 'fromimport'), - (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace), - 'import'), - include('builtins'), - include('magicfuncs'), - include('magicvars'), - include('backtick'), - ('([rR]|[uUbB][rR]|[rR][uUbB])(""")', - bygroups(String.Affix, String.Double), 'tdqs'), - ("([rR]|[uUbB][rR]|[rR][uUbB])(''')", - bygroups(String.Affix, String.Single), 'tsqs'), - ('([rR]|[uUbB][rR]|[rR][uUbB])(")', - bygroups(String.Affix, String.Double), 'dqs'), - ("([rR]|[uUbB][rR]|[rR][uUbB])(')", - bygroups(String.Affix, String.Single), 'sqs'), - ('([uUbB]?)(""")', bygroups(String.Affix, String.Double), - combined('stringescape', 'tdqs')), - ("([uUbB]?)(''')", bygroups(String.Affix, String.Single), - combined('stringescape', 'tsqs')), - ('([uUbB]?)(")', bygroups(String.Affix, String.Double), - combined('stringescape', 'dqs')), - ("([uUbB]?)(')", bygroups(String.Affix, String.Single), - combined('stringescape', 'sqs')), - include('name'), - include('numbers'), + "root": [ + (r"\n", Whitespace), + ( + r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")', + bygroups(Whitespace, String.Affix, String.Doc), + ), + ( + r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')", + bygroups(Whitespace, String.Affix, String.Doc), + ), + (r"[^\S\n]+", Text), + (r"\A#!.+$", Comment.Hashbang), + (r"#.*$", Comment.Single), + (r"[]{}:(),;[]", Punctuation), + (r"\\\n", Text), + (r"\\", Text), + (r"(in|is|and|or|not)\b", Operator.Word), + (r"!=|==|<<|>>|[-~+/*%=<>&^|.]", Operator), + include("keywords"), + (r"(def)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "funcname"), + (r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "classname"), + ( + r"(from)((?:\s|\\\s)+)", + bygroups(Keyword.Namespace, Whitespace), + "fromimport", + ), + ( + r"(import)((?:\s|\\\s)+)", + bygroups(Keyword.Namespace, Whitespace), + "import", + ), + include("builtins"), + include("magicfuncs"), + include("magicvars"), + include("backtick"), + ( + '([rR]|[uUbB][rR]|[rR][uUbB])(""")', + bygroups(String.Affix, String.Double), + "tdqs", + ), + ( + "([rR]|[uUbB][rR]|[rR][uUbB])(''')", + bygroups(String.Affix, String.Single), + "tsqs", + ), + ( + '([rR]|[uUbB][rR]|[rR][uUbB])(")', + bygroups(String.Affix, String.Double), + "dqs", + ), + ( + "([rR]|[uUbB][rR]|[rR][uUbB])(')", + bygroups(String.Affix, String.Single), + "sqs", + ), + ( + '([uUbB]?)(""")', + bygroups(String.Affix, String.Double), + combined("stringescape", "tdqs"), + ), + ( + "([uUbB]?)(''')", + bygroups(String.Affix, String.Single), + combined("stringescape", "tsqs"), + ), + ( + '([uUbB]?)(")', + bygroups(String.Affix, String.Double), + combined("stringescape", "dqs"), + ), + ( + "([uUbB]?)(')", + bygroups(String.Affix, String.Single), + combined("stringescape", "sqs"), + ), + include("name"), + include("numbers"), ], - 'keywords': [ - (words(( - 'assert', 'break', 'continue', 'del', 'elif', 'else', 'except', - 'exec', 'finally', 'for', 'global', 'if', 'lambda', 'pass', - 'print', 'raise', 'return', 'try', 'while', 'yield', - 'yield from', 'as', 'with'), suffix=r'\b'), - Keyword), + "keywords": [ + ( + words( + ( + "assert", + "break", + "continue", + "del", + "elif", + "else", + "except", + "exec", + "finally", + "for", + "global", + "if", + "lambda", + "pass", + "print", + "raise", + "return", + "try", + "while", + "yield", + "yield from", + "as", + "with", + ), + suffix=r"\b", + ), + Keyword, + ), ], - 'builtins': [ - (words(( - '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', - 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', - 'cmp', 'coerce', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', - 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', - 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'hex', 'id', - 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', - 'list', 'locals', 'long', 'map', 'max', 'min', 'next', 'object', - 'oct', 'open', 'ord', 'pow', 'property', 'range', 'raw_input', 'reduce', - 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', - 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', - 'unichr', 'unicode', 'vars', 'xrange', 'zip'), - prefix=r'(?>> )(.*\n)', bygroups(Generic.Prompt, Other.Code), 'continuations'), + "root": [ + (r"(>>> )(.*\n)", bygroups(Generic.Prompt, Other.Code), "continuations"), # This happens, e.g., when tracebacks are embedded in documentation; # trailing whitespaces are often stripped in such contexts. - (r'(>>>)(\n)', bygroups(Generic.Prompt, Whitespace)), - (r'(\^C)?Traceback \(most recent call last\):\n', Other.Traceback, 'traceback'), + (r"(>>>)(\n)", bygroups(Generic.Prompt, Whitespace)), + ( + r"(\^C)?Traceback \(most recent call last\):\n", + Other.Traceback, + "traceback", + ), # SyntaxError starts with this - (r' File "[^"]+", line \d+', Other.Traceback, 'traceback'), - (r'.*\n', Generic.Output), + (r' File "[^"]+", line \d+', Other.Traceback, "traceback"), + (r".*\n", Generic.Output), ], - 'continuations': [ - (r'(\.\.\. )(.*\n)', bygroups(Generic.Prompt, Other.Code)), + "continuations": [ + (r"(\.\.\. )(.*\n)", bygroups(Generic.Prompt, Other.Code)), # See above. - (r'(\.\.\.)(\n)', bygroups(Generic.Prompt, Whitespace)), - default('#pop'), + (r"(\.\.\.)(\n)", bygroups(Generic.Prompt, Whitespace)), + default("#pop"), ], - 'traceback': [ + "traceback": [ # As soon as we see a traceback, consume everything until the next # >>> prompt. - (r'(?=>>>( |$))', Text, '#pop'), - (r'(KeyboardInterrupt)(\n)', bygroups(Name.Class, Whitespace)), - (r'.*\n', Other.Traceback), + (r"(?=>>>( |$))", Text, "#pop"), + (r"(KeyboardInterrupt)(\n)", bygroups(Name.Class, Whitespace)), + (r".*\n", Other.Traceback), ], } @@ -697,20 +1337,21 @@ class PythonConsoleLexer(DelegatingLexer): Now defaults to ``True``. """ - name = 'Python console session' - aliases = ['pycon', 'python-console'] - mimetypes = ['text/x-python-doctest'] - url = 'https://python.org' - version_added = '' + name = "Python console session" + aliases = ["pycon", "python-console"] + mimetypes = ["text/x-python-doctest"] + url = "https://python.org" + version_added = "" def __init__(self, **options): - python3 = get_bool_opt(options, 'python3', True) + python3 = get_bool_opt(options, "python3", True) if python3: pylexer = PythonLexer tblexer = PythonTracebackLexer else: pylexer = Python2Lexer tblexer = Python2TracebackLexer + # We have two auxiliary lexers. Use DelegatingLexer twice with # different tokens. TODO: DelegatingLexer should support this # directly, by accepting a tuplet of auxiliary lexers and a tuple of @@ -718,7 +1359,10 @@ class PythonConsoleLexer(DelegatingLexer): # class. class _ReplaceInnerCode(DelegatingLexer): def __init__(self, **options): - super().__init__(pylexer, _PythonConsoleLexerBase, Other.Code, **options) + super().__init__( + pylexer, _PythonConsoleLexerBase, Other.Code, **options + ) + super().__init__(tblexer, _ReplaceInnerCode, Other.Traceback, **options) @@ -731,47 +1375,70 @@ class PythonTracebackLexer(RegexLexer): as the alias ``Python3TracebackLexer``. """ - name = 'Python Traceback' - aliases = ['pytb', 'py3tb'] - filenames = ['*.pytb', '*.py3tb'] - mimetypes = ['text/x-python-traceback', 'text/x-python3-traceback'] - url = 'https://python.org' - version_added = '1.0' + name = "Python Traceback" + aliases = ["pytb", "py3tb"] + filenames = ["*.pytb", "*.py3tb"] + mimetypes = ["text/x-python-traceback", "text/x-python3-traceback"] + url = "https://python.org" + version_added = "1.0" tokens = { - 'root': [ - (r'\n', Whitespace), - (r'^(\^C)?Traceback \(most recent call last\):\n', Generic.Traceback, 'intb'), - (r'^During handling of the above exception, another ' - r'exception occurred:\n\n', Generic.Traceback), - (r'^The above exception was the direct cause of the ' - r'following exception:\n\n', Generic.Traceback), - (r'^(?= File "[^"]+", line \d+)', Generic.Traceback, 'intb'), - (r'^.*\n', Other), + "root": [ + (r"\n", Whitespace), + ( + r"^(\^C)?Traceback \(most recent call last\):\n", + Generic.Traceback, + "intb", + ), + ( + r"^During handling of the above exception, another " + r"exception occurred:\n\n", + Generic.Traceback, + ), + ( + r"^The above exception was the direct cause of the " + r"following exception:\n\n", + Generic.Traceback, + ), + (r'^(?= File "[^"]+", line \d+)', Generic.Traceback, "intb"), + (r"^.*\n", Other), ], - 'intb': [ - (r'^( File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)', - bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)), - (r'^( File )("[^"]+")(, line )(\d+)(\n)', - bygroups(Text, Name.Builtin, Text, Number, Whitespace)), - (r'^( )(.+)(\n)', - bygroups(Whitespace, using(PythonLexer), Whitespace), 'markers'), - (r'^([ \t]*)(\.\.\.)(\n)', - bygroups(Whitespace, Comment, Whitespace)), # for doctests... - (r'^([^:]+)(: )(.+)(\n)', - bygroups(Generic.Error, Text, Name, Whitespace), '#pop'), - (r'^([a-zA-Z_][\w.]*)(:?\n)', - bygroups(Generic.Error, Whitespace), '#pop'), - default('#pop'), + "intb": [ + ( + r'^( File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)', + bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace), + ), + ( + r'^( File )("[^"]+")(, line )(\d+)(\n)', + bygroups(Text, Name.Builtin, Text, Number, Whitespace), + ), + ( + r"^( )(.+)(\n)", + bygroups(Whitespace, using(PythonLexer), Whitespace), + "markers", + ), + ( + r"^([ \t]*)(\.\.\.)(\n)", + bygroups(Whitespace, Comment, Whitespace), + ), # for doctests... + ( + r"^([^:]+)(: )(.+)(\n)", + bygroups(Generic.Error, Text, Name, Whitespace), + "#pop", + ), + (r"^([a-zA-Z_][\w.]*)(:?\n)", bygroups(Generic.Error, Whitespace), "#pop"), + default("#pop"), ], - 'markers': [ + "markers": [ # Either `PEP 657 ` # error locations in Python 3.11+, or single-caret markers # for syntax errors before that. - (r'^( {4,})([~^]+)(\n)', - bygroups(Whitespace, Punctuation.Marker, Whitespace), - '#pop'), - default('#pop'), + ( + r"^( {4,})([~^]+)(\n)", + bygroups(Whitespace, Punctuation.Marker, Whitespace), + "#pop", + ), + default("#pop"), ], } @@ -788,41 +1455,51 @@ class Python2TracebackLexer(RegexLexer): ``PythonTracebackLexer`` now refers to the Python 3 variant. """ - name = 'Python 2.x Traceback' - aliases = ['py2tb'] - filenames = ['*.py2tb'] - mimetypes = ['text/x-python2-traceback'] - url = 'https://python.org' - version_added = '0.7' + name = "Python 2.x Traceback" + aliases = ["py2tb"] + filenames = ["*.py2tb"] + mimetypes = ["text/x-python2-traceback"] + url = "https://python.org" + version_added = "0.7" tokens = { - 'root': [ + "root": [ # Cover both (most recent call last) and (innermost last) # The optional ^C allows us to catch keyboard interrupt signals. - (r'^(\^C)?(Traceback.*\n)', - bygroups(Text, Generic.Traceback), 'intb'), + (r"^(\^C)?(Traceback.*\n)", bygroups(Text, Generic.Traceback), "intb"), # SyntaxError starts with this. - (r'^(?= File "[^"]+", line \d+)', Generic.Traceback, 'intb'), - (r'^.*\n', Other), + (r'^(?= File "[^"]+", line \d+)', Generic.Traceback, "intb"), + (r"^.*\n", Other), ], - 'intb': [ - (r'^( File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)', - bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)), - (r'^( File )("[^"]+")(, line )(\d+)(\n)', - bygroups(Text, Name.Builtin, Text, Number, Whitespace)), - (r'^( )(.+)(\n)', - bygroups(Text, using(Python2Lexer), Whitespace), 'marker'), - (r'^([ \t]*)(\.\.\.)(\n)', - bygroups(Text, Comment, Whitespace)), # for doctests... - (r'^([^:]+)(: )(.+)(\n)', - bygroups(Generic.Error, Text, Name, Whitespace), '#pop'), - (r'^([a-zA-Z_]\w*)(:?\n)', - bygroups(Generic.Error, Whitespace), '#pop') + "intb": [ + ( + r'^( File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)', + bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace), + ), + ( + r'^( File )("[^"]+")(, line )(\d+)(\n)', + bygroups(Text, Name.Builtin, Text, Number, Whitespace), + ), + ( + r"^( )(.+)(\n)", + bygroups(Text, using(Python2Lexer), Whitespace), + "marker", + ), + ( + r"^([ \t]*)(\.\.\.)(\n)", + bygroups(Text, Comment, Whitespace), + ), # for doctests... + ( + r"^([^:]+)(: )(.+)(\n)", + bygroups(Generic.Error, Text, Name, Whitespace), + "#pop", + ), + (r"^([a-zA-Z_]\w*)(:?\n)", bygroups(Generic.Error, Whitespace), "#pop"), ], - 'marker': [ + "marker": [ # For syntax errors. - (r'( {4,})(\^)', bygroups(Text, Punctuation.Marker), '#pop'), - default('#pop'), + (r"( {4,})(\^)", bygroups(Text, Punctuation.Marker), "#pop"), + default("#pop"), ], } @@ -832,177 +1509,337 @@ class CythonLexer(RegexLexer): For Pyrex and Cython source code. """ - name = 'Cython' - url = 'https://cython.org' - aliases = ['cython', 'pyx', 'pyrex'] - filenames = ['*.pyx', '*.pxd', '*.pxi'] - mimetypes = ['text/x-cython', 'application/x-cython'] - version_added = '1.1' + name = "Cython" + url = "https://cython.org" + aliases = ["cython", "pyx", "pyrex"] + filenames = ["*.pyx", "*.pxd", "*.pxi"] + mimetypes = ["text/x-cython", "application/x-cython"] + version_added = "1.1" tokens = { - 'root': [ - (r'\n', Whitespace), + "root": [ + (r"\n", Whitespace), (r'^(\s*)("""(?:.|\n)*?""")', bygroups(Whitespace, String.Doc)), (r"^(\s*)('''(?:.|\n)*?''')", bygroups(Whitespace, String.Doc)), - (r'[^\S\n]+', Text), - (r'#.*$', Comment), - (r'[]{}:(),;[]', Punctuation), - (r'\\\n', Whitespace), - (r'\\', Text), - (r'(in|is|and|or|not)\b', Operator.Word), - (r'(<)([a-zA-Z0-9.?]+)(>)', - bygroups(Punctuation, Keyword.Type, Punctuation)), - (r'!=|==|<<|>>|[-~+/*%=<>&^|.?]', Operator), - (r'(from)(\d+)(<=)(\s+)(<)(\d+)(:)', - bygroups(Keyword, Number.Integer, Operator, Whitespace, Operator, - Name, Punctuation)), - include('keywords'), - (r'(def|property)(\s+)', bygroups(Keyword, Whitespace), 'funcname'), - (r'(cp?def)(\s+)', bygroups(Keyword, Whitespace), 'cdef'), + (r"[^\S\n]+", Text), + (r"#.*$", Comment), + (r"[]{}:(),;[]", Punctuation), + (r"\\\n", Whitespace), + (r"\\", Text), + (r"(in|is|and|or|not)\b", Operator.Word), + ( + r"(<)([a-zA-Z0-9.?]+)(>)", + bygroups(Punctuation, Keyword.Type, Punctuation), + ), + (r"!=|==|<<|>>|[-~+/*%=<>&^|.?]", Operator), + ( + r"(from)(\d+)(<=)(\s+)(<)(\d+)(:)", + bygroups( + Keyword, + Number.Integer, + Operator, + Whitespace, + Operator, + Name, + Punctuation, + ), + ), + include("keywords"), + (r"(def|property)(\s+)", bygroups(Keyword, Whitespace), "funcname"), + (r"(cp?def)(\s+)", bygroups(Keyword, Whitespace), "cdef"), # (should actually start a block with only cdefs) - (r'(cdef)(:)', bygroups(Keyword, Punctuation)), - (r'(class|struct)(\s+)', bygroups(Keyword, Whitespace), 'classname'), - (r'(from)(\s+)', bygroups(Keyword, Whitespace), 'fromimport'), - (r'(c?import)(\s+)', bygroups(Keyword, Whitespace), 'import'), - include('builtins'), - include('backtick'), - ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, 'tdqs'), - ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, 'tsqs'), - ('(?:[rR]|[uU][rR]|[rR][uU])"', String, 'dqs'), - ("(?:[rR]|[uU][rR]|[rR][uU])'", String, 'sqs'), - ('[uU]?"""', String, combined('stringescape', 'tdqs')), - ("[uU]?'''", String, combined('stringescape', 'tsqs')), - ('[uU]?"', String, combined('stringescape', 'dqs')), - ("[uU]?'", String, combined('stringescape', 'sqs')), - include('name'), - include('numbers'), + (r"(cdef)(:)", bygroups(Keyword, Punctuation)), + (r"(class|struct)(\s+)", bygroups(Keyword, Whitespace), "classname"), + (r"(from)(\s+)", bygroups(Keyword, Whitespace), "fromimport"), + (r"(c?import)(\s+)", bygroups(Keyword, Whitespace), "import"), + include("builtins"), + include("backtick"), + ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, "tdqs"), + ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, "tsqs"), + ('(?:[rR]|[uU][rR]|[rR][uU])"', String, "dqs"), + ("(?:[rR]|[uU][rR]|[rR][uU])'", String, "sqs"), + ('[uU]?"""', String, combined("stringescape", "tdqs")), + ("[uU]?'''", String, combined("stringescape", "tsqs")), + ('[uU]?"', String, combined("stringescape", "dqs")), + ("[uU]?'", String, combined("stringescape", "sqs")), + include("name"), + include("numbers"), ], - 'keywords': [ - (words(( - 'assert', 'async', 'await', 'break', 'by', 'continue', 'ctypedef', 'del', 'elif', - 'else', 'except', 'except?', 'exec', 'finally', 'for', 'fused', 'gil', - 'global', 'if', 'include', 'lambda', 'nogil', 'pass', 'print', - 'raise', 'return', 'try', 'while', 'yield', 'as', 'with'), suffix=r'\b'), - Keyword), - (r'(DEF|IF|ELIF|ELSE)\b', Comment.Preproc), + "keywords": [ + ( + words( + ( + "assert", + "async", + "await", + "break", + "by", + "continue", + "ctypedef", + "del", + "elif", + "else", + "except", + "except?", + "exec", + "finally", + "for", + "fused", + "gil", + "global", + "if", + "include", + "lambda", + "nogil", + "pass", + "print", + "raise", + "return", + "try", + "while", + "yield", + "as", + "with", + ), + suffix=r"\b", + ), + Keyword, + ), + (r"(DEF|IF|ELIF|ELSE)\b", Comment.Preproc), ], - 'builtins': [ - (words(( - '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bint', - 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', - 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'delattr', - 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', - 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', - 'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', - 'issubclass', 'iter', 'len', 'list', 'locals', 'long', 'map', 'max', - 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'Py_ssize_t', - 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', - 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', - 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'unsigned', - 'vars', 'xrange', 'zip'), prefix=r'(?]? \d* )? : .* (?: ft | filetype | syn | syntax ) = ( [^:\s]+ ) -''', re.VERBOSE) +""", + re.VERBOSE, +) -def get_filetype_from_line(l): # noqa: E741 +def get_filetype_from_line(l): # noqa: E741 m = modeline_re.search(l) if m: return m.group(1) @@ -30,7 +33,7 @@ def get_filetype_from_buffer(buf, max_lines=5): Scan the buffer for modelines and return filetype if one is found. """ lines = buf.splitlines() - for line in lines[-1:-max_lines-1:-1]: + for line in lines[-1 : -max_lines - 1 : -1]: ret = get_filetype_from_line(line) if ret: return ret diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py index 498db42..f2a005a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py @@ -1,48 +1,49 @@ """ - pygments.plugin - ~~~~~~~~~~~~~~~ +pygments.plugin +~~~~~~~~~~~~~~~ - Pygments plugin interface. +Pygments plugin interface. - lexer plugins:: +lexer plugins:: - [pygments.lexers] - yourlexer = yourmodule:YourLexer + [pygments.lexers] + yourlexer = yourmodule:YourLexer - formatter plugins:: +formatter plugins:: - [pygments.formatters] - yourformatter = yourformatter:YourFormatter - /.ext = yourformatter:YourFormatter + [pygments.formatters] + yourformatter = yourformatter:YourFormatter + /.ext = yourformatter:YourFormatter - As you can see, you can define extensions for the formatter - with a leading slash. +As you can see, you can define extensions for the formatter +with a leading slash. - syntax plugins:: +syntax plugins:: - [pygments.styles] - yourstyle = yourstyle:YourStyle + [pygments.styles] + yourstyle = yourstyle:YourStyle - filter plugin:: +filter plugin:: - [pygments.filter] - yourfilter = yourfilter:YourFilter + [pygments.filter] + yourfilter = yourfilter:YourFilter - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ + from importlib.metadata import entry_points -LEXER_ENTRY_POINT = 'pygments.lexers' -FORMATTER_ENTRY_POINT = 'pygments.formatters' -STYLE_ENTRY_POINT = 'pygments.styles' -FILTER_ENTRY_POINT = 'pygments.filters' +LEXER_ENTRY_POINT = "pygments.lexers" +FORMATTER_ENTRY_POINT = "pygments.formatters" +STYLE_ENTRY_POINT = "pygments.styles" +FILTER_ENTRY_POINT = "pygments.filters" def iter_entry_points(group_name): groups = entry_points() - if hasattr(groups, 'select'): + if hasattr(groups, "select"): # New interface in Python 3.10 and newer versions of the # importlib_metadata backport. return groups.select(group=group_name) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py index cc8d2c3..d0051f1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py @@ -1,12 +1,12 @@ """ - pygments.regexopt - ~~~~~~~~~~~~~~~~~ +pygments.regexopt +~~~~~~~~~~~~~~~~~ - An algorithm that generates optimized regexes for matching long lists of - literal strings. +An algorithm that generates optimized regexes for matching long lists of +literal strings. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -15,29 +15,28 @@ from os.path import commonprefix from itertools import groupby from operator import itemgetter -CS_ESCAPE = re.compile(r'[\[\^\\\-\]]') +CS_ESCAPE = re.compile(r"[\[\^\\\-\]]") FIRST_ELEMENT = itemgetter(0) def make_charset(letters): - return '[' + CS_ESCAPE.sub(lambda m: '\\' + m.group(), ''.join(letters)) + ']' + return "[" + CS_ESCAPE.sub(lambda m: "\\" + m.group(), "".join(letters)) + "]" def regex_opt_inner(strings, open_paren): """Return a regex that matches any string in the sorted list of strings.""" - close_paren = open_paren and ')' or '' + close_paren = open_paren and ")" or "" # print strings, repr(open_paren) if not strings: # print '-> nothing left' - return '' + return "" first = strings[0] if len(strings) == 1: # print '-> only 1 string' return open_paren + escape(first) + close_paren if not first: # print '-> first string empty' - return open_paren + regex_opt_inner(strings[1:], '(?:') \ - + '?' + close_paren + return open_paren + regex_opt_inner(strings[1:], "(?:") + "?" + close_paren if len(first) == 1: # multiple one-char strings? make a charset oneletter = [] @@ -50,8 +49,13 @@ def regex_opt_inner(strings, open_paren): if len(oneletter) > 1: # do we have more than one oneletter string? if rest: # print '-> 1-character + rest' - return open_paren + regex_opt_inner(rest, '') + '|' \ - + make_charset(oneletter) + close_paren + return ( + open_paren + + regex_opt_inner(rest, "") + + "|" + + make_charset(oneletter) + + close_paren + ) # print '-> only 1-character' return open_paren + make_charset(oneletter) + close_paren prefix = commonprefix(strings) @@ -59,27 +63,37 @@ def regex_opt_inner(strings, open_paren): plen = len(prefix) # we have a prefix for all strings # print '-> prefix:', prefix - return open_paren + escape(prefix) \ - + regex_opt_inner([s[plen:] for s in strings], '(?:') \ + return ( + open_paren + + escape(prefix) + + regex_opt_inner([s[plen:] for s in strings], "(?:") + close_paren + ) # is there a suffix? strings_rev = [s[::-1] for s in strings] suffix = commonprefix(strings_rev) if suffix: slen = len(suffix) # print '-> suffix:', suffix[::-1] - return open_paren \ - + regex_opt_inner(sorted(s[:-slen] for s in strings), '(?:') \ - + escape(suffix[::-1]) + close_paren + return ( + open_paren + + regex_opt_inner(sorted(s[:-slen] for s in strings), "(?:") + + escape(suffix[::-1]) + + close_paren + ) # recurse on common 1-string prefixes # print '-> last resort' - return open_paren + \ - '|'.join(regex_opt_inner(list(group[1]), '') - for group in groupby(strings, lambda s: s[0] == first[0])) \ + return ( + open_paren + + "|".join( + regex_opt_inner(list(group[1]), "") + for group in groupby(strings, lambda s: s[0] == first[0]) + ) + close_paren + ) -def regex_opt(strings, prefix='', suffix=''): +def regex_opt(strings, prefix="", suffix=""): """Return a compiled regex that matches any string in the given list. The strings to match must be literal strings, not regexes. They will be @@ -88,4 +102,4 @@ def regex_opt(strings, prefix='', suffix=''): *prefix* and *suffix* are pre- and appended to the final regex. """ strings = sorted(strings) - return prefix + regex_opt_inner(strings, '(') + suffix + return prefix + regex_opt_inner(strings, "(") + suffix diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py index 3c8c848..979c5d2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py @@ -1,19 +1,20 @@ """ - pygments.scanner - ~~~~~~~~~~~~~~~~ +pygments.scanner +~~~~~~~~~~~~~~~~ - This library implements a regex based scanner. Some languages - like Pascal are easy to parse but have some keywords that - depend on the context. Because of this it's impossible to lex - that just by using a regular expression lexer like the - `RegexLexer`. +This library implements a regex based scanner. Some languages +like Pascal are easy to parse but have some keywords that +depend on the context. Because of this it's impossible to lex +that just by using a regular expression lexer like the +`RegexLexer`. - Have a look at the `DelphiLexer` to get an idea of how to use - this scanner. +Have a look at the `DelphiLexer` to get an idea of how to use +this scanner. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ + import re @@ -49,6 +50,7 @@ class Scanner: def eos(self): """`True` if the scanner reached the end of text.""" return self.pos >= self.data_length + eos = property(eos, eos.__doc__) def check(self, pattern): @@ -94,11 +96,7 @@ class Scanner: def get_char(self): """Scan exactly one char.""" - self.scan('.') + self.scan(".") def __repr__(self): - return '<%s %d/%d>' % ( - self.__class__.__name__, - self.pos, - self.data_length - ) + return "<%s %d/%d>" % (self.__class__.__name__, self.pos, self.data_length) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py index 955d958..548a632 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py @@ -1,12 +1,12 @@ """ - pygments.sphinxext - ~~~~~~~~~~~~~~~~~~ +pygments.sphinxext +~~~~~~~~~~~~~~~~~~ - Sphinx extension to generate automatic documentation of lexers, - formatters and filters. +Sphinx extension to generate automatic documentation of lexers, +formatters and filters. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import sys @@ -16,15 +16,14 @@ from docutils.statemachine import ViewList from docutils.parsers.rst import Directive from sphinx.util.nodes import nested_parse_with_titles - -MODULEDOC = ''' +MODULEDOC = """ .. module:: %s %s %s -''' +""" -LEXERDOC = ''' +LEXERDOC = """ .. class:: %s :Short names: %s @@ -35,9 +34,9 @@ LEXERDOC = ''' %s -''' +""" -FMTERDOC = ''' +FMTERDOC = """ .. class:: %s :Short names: %s @@ -45,16 +44,16 @@ FMTERDOC = ''' %s -''' +""" -FILTERDOC = ''' +FILTERDOC = """ .. class:: %s :Name: %s %s -''' +""" class PygmentsDoc(Directive): @@ -62,6 +61,7 @@ class PygmentsDoc(Directive): A directive to collect all lexers/formatters/filters and generate autoclass directives for them. """ + has_content = False required_arguments = 1 optional_arguments = 0 @@ -70,18 +70,18 @@ class PygmentsDoc(Directive): def run(self): self.filenames = set() - if self.arguments[0] == 'lexers': + if self.arguments[0] == "lexers": out = self.document_lexers() - elif self.arguments[0] == 'formatters': + elif self.arguments[0] == "formatters": out = self.document_formatters() - elif self.arguments[0] == 'filters': + elif self.arguments[0] == "filters": out = self.document_filters() - elif self.arguments[0] == 'lexers_overview': + elif self.arguments[0] == "lexers_overview": out = self.document_lexers_overview() else: raise Exception('invalid argument for "pygmentsdoc" directive') node = nodes.compound() - vl = ViewList(out.split('\n'), source='') + vl = ViewList(out.split("\n"), source="") nested_parse_with_titles(self.state, vl, node) for fn in self.filenames: self.state.document.settings.record_dependencies.add(fn) @@ -94,29 +94,37 @@ class PygmentsDoc(Directive): (or "None"), the aliases and a link to the lexer class.""" from pip._vendor.pygments.lexers._mapping import LEXERS from pip._vendor.pygments.lexers import find_lexer_class + out = [] table = [] def format_link(name, url): if url: - return f'`{name} <{url}>`_' + return f"`{name} <{url}>`_" return name for classname, data in sorted(LEXERS.items(), key=lambda x: x[1][1].lower()): lexer_cls = find_lexer_class(data[1]) extensions = lexer_cls.filenames + lexer_cls.alias_filenames - table.append({ - 'name': format_link(data[1], lexer_cls.url), - 'extensions': ', '.join(extensions).replace('*', '\\*').replace('_', '\\') or 'None', - 'aliases': ', '.join(data[2]), - 'class': f'{data[0]}.{classname}' - }) + table.append( + { + "name": format_link(data[1], lexer_cls.url), + "extensions": ", ".join(extensions) + .replace("*", "\\*") + .replace("_", "\\") + or "None", + "aliases": ", ".join(data[2]), + "class": f"{data[0]}.{classname}", + } + ) - column_names = ['name', 'extensions', 'aliases', 'class'] - column_lengths = [max([len(row[column]) for row in table if row[column]]) - for column in column_names] + column_names = ["name", "extensions", "aliases", "class"] + column_lengths = [ + max([len(row[column]) for row in table if row[column]]) + for column in column_names + ] def write_row(*columns): """Format a table row""" @@ -125,27 +133,30 @@ class PygmentsDoc(Directive): if col: out.append(col.ljust(length)) else: - out.append(' '*length) + out.append(" " * length) - return ' '.join(out) + return " ".join(out) def write_seperator(): """Write a table separator row""" - sep = ['='*c for c in column_lengths] + sep = ["=" * c for c in column_lengths] return write_row(*sep) out.append(write_seperator()) - out.append(write_row('Name', 'Extension(s)', 'Short name(s)', 'Lexer class')) + out.append(write_row("Name", "Extension(s)", "Short name(s)", "Lexer class")) out.append(write_seperator()) for row in table: - out.append(write_row( - row['name'], - row['extensions'], - row['aliases'], - f':class:`~{row["class"]}`')) + out.append( + write_row( + row["name"], + row["extensions"], + row["aliases"], + f':class:`~{row["class"]}`', + ) + ) out.append(write_seperator()) - return '\n'.join(out) + return "\n".join(out) def document_lexers(self): from pip._vendor.pygments.lexers._mapping import LEXERS @@ -165,52 +176,59 @@ class PygmentsDoc(Directive): print(f"Warning: {classname} does not have a docstring.") docstring = cls.__doc__ if isinstance(docstring, bytes): - docstring = docstring.decode('utf8') + docstring = docstring.decode("utf8") - example_file = getattr(cls, '_example', None) + example_file = getattr(cls, "_example", None) if example_file: - p = pathlib.Path(inspect.getabsfile(pygments)).parent.parent /\ - 'tests' / 'examplefiles' / example_file - content = p.read_text(encoding='utf-8') + p = ( + pathlib.Path(inspect.getabsfile(pygments)).parent.parent + / "tests" + / "examplefiles" + / example_file + ) + content = p.read_text(encoding="utf-8") if not content: raise Exception( - f"Empty example file '{example_file}' for lexer " - f"{classname}") + f"Empty example file '{example_file}' for lexer " f"{classname}" + ) if data[2]: lexer_name = data[2][0] - docstring += '\n\n .. admonition:: Example\n' - docstring += f'\n .. code-block:: {lexer_name}\n\n' + docstring += "\n\n .. admonition:: Example\n" + docstring += f"\n .. code-block:: {lexer_name}\n\n" for line in content.splitlines(): - docstring += f' {line}\n' + docstring += f" {line}\n" if cls.version_added: - version_line = f'.. versionadded:: {cls.version_added}' + version_line = f".. versionadded:: {cls.version_added}" else: - version_line = '' + version_line = "" - modules.setdefault(module, []).append(( - classname, - ', '.join(data[2]) or 'None', - ', '.join(data[3]).replace('*', '\\*').replace('_', '\\') or 'None', - ', '.join(data[4]) or 'None', - docstring, - version_line)) + modules.setdefault(module, []).append( + ( + classname, + ", ".join(data[2]) or "None", + ", ".join(data[3]).replace("*", "\\*").replace("_", "\\") or "None", + ", ".join(data[4]) or "None", + docstring, + version_line, + ) + ) if module not in moduledocstrings: moddoc = mod.__doc__ if isinstance(moddoc, bytes): - moddoc = moddoc.decode('utf8') + moddoc = moddoc.decode("utf8") moduledocstrings[module] = moddoc for module, lexers in sorted(modules.items(), key=lambda x: x[0]): if moduledocstrings[module] is None: raise Exception(f"Missing docstring for {module}") - heading = moduledocstrings[module].splitlines()[4].strip().rstrip('.') - out.append(MODULEDOC % (module, heading, '-'*len(heading))) + heading = moduledocstrings[module].splitlines()[4].strip().rstrip(".") + out.append(MODULEDOC % (module, heading, "-" * len(heading))) for data in lexers: out.append(LEXERDOC % data) - return ''.join(out) + return "".join(out) def document_formatters(self): from pip._vendor.pygments.formatters import FORMATTERS @@ -223,12 +241,18 @@ class PygmentsDoc(Directive): cls = getattr(mod, classname) docstring = cls.__doc__ if isinstance(docstring, bytes): - docstring = docstring.decode('utf8') + docstring = docstring.decode("utf8") heading = cls.__name__ - out.append(FMTERDOC % (heading, ', '.join(data[2]) or 'None', - ', '.join(data[3]).replace('*', '\\*') or 'None', - docstring)) - return ''.join(out) + out.append( + FMTERDOC + % ( + heading, + ", ".join(data[2]) or "None", + ", ".join(data[3]).replace("*", "\\*") or "None", + docstring, + ) + ) + return "".join(out) def document_filters(self): from pip._vendor.pygments.filters import FILTERS @@ -238,10 +262,10 @@ class PygmentsDoc(Directive): self.filenames.add(sys.modules[cls.__module__].__file__) docstring = cls.__doc__ if isinstance(docstring, bytes): - docstring = docstring.decode('utf8') + docstring = docstring.decode("utf8") out.append(FILTERDOC % (cls.__name__, name, docstring)) - return ''.join(out) + return "".join(out) def setup(app): - app.add_directive('pygmentsdoc', PygmentsDoc) + app.add_directive("pygmentsdoc", PygmentsDoc) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py index be5f832..a870705 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py @@ -1,11 +1,11 @@ """ - pygments.style - ~~~~~~~~~~~~~~ +pygments.style +~~~~~~~~~~~~~~ - Basic style object. +Basic style object. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pip._vendor.pygments.token import Token, STANDARD_TYPES @@ -13,44 +13,44 @@ from pip._vendor.pygments.token import Token, STANDARD_TYPES # Default mapping of ansixxx to RGB colors. _ansimap = { # dark - 'ansiblack': '000000', - 'ansired': '7f0000', - 'ansigreen': '007f00', - 'ansiyellow': '7f7fe0', - 'ansiblue': '00007f', - 'ansimagenta': '7f007f', - 'ansicyan': '007f7f', - 'ansigray': 'e5e5e5', + "ansiblack": "000000", + "ansired": "7f0000", + "ansigreen": "007f00", + "ansiyellow": "7f7fe0", + "ansiblue": "00007f", + "ansimagenta": "7f007f", + "ansicyan": "007f7f", + "ansigray": "e5e5e5", # normal - 'ansibrightblack': '555555', - 'ansibrightred': 'ff0000', - 'ansibrightgreen': '00ff00', - 'ansibrightyellow': 'ffff00', - 'ansibrightblue': '0000ff', - 'ansibrightmagenta': 'ff00ff', - 'ansibrightcyan': '00ffff', - 'ansiwhite': 'ffffff', + "ansibrightblack": "555555", + "ansibrightred": "ff0000", + "ansibrightgreen": "00ff00", + "ansibrightyellow": "ffff00", + "ansibrightblue": "0000ff", + "ansibrightmagenta": "ff00ff", + "ansibrightcyan": "00ffff", + "ansiwhite": "ffffff", } # mapping of deprecated #ansixxx colors to new color names _deprecated_ansicolors = { # dark - '#ansiblack': 'ansiblack', - '#ansidarkred': 'ansired', - '#ansidarkgreen': 'ansigreen', - '#ansibrown': 'ansiyellow', - '#ansidarkblue': 'ansiblue', - '#ansipurple': 'ansimagenta', - '#ansiteal': 'ansicyan', - '#ansilightgray': 'ansigray', + "#ansiblack": "ansiblack", + "#ansidarkred": "ansired", + "#ansidarkgreen": "ansigreen", + "#ansibrown": "ansiyellow", + "#ansidarkblue": "ansiblue", + "#ansipurple": "ansimagenta", + "#ansiteal": "ansicyan", + "#ansilightgray": "ansigray", # normal - '#ansidarkgray': 'ansibrightblack', - '#ansired': 'ansibrightred', - '#ansigreen': 'ansibrightgreen', - '#ansiyellow': 'ansibrightyellow', - '#ansiblue': 'ansibrightblue', - '#ansifuchsia': 'ansibrightmagenta', - '#ansiturquoise': 'ansibrightcyan', - '#ansiwhite': 'ansiwhite', + "#ansidarkgray": "ansibrightblack", + "#ansired": "ansibrightred", + "#ansigreen": "ansibrightgreen", + "#ansiyellow": "ansibrightyellow", + "#ansiblue": "ansibrightblue", + "#ansifuchsia": "ansibrightmagenta", + "#ansiturquoise": "ansibrightcyan", + "#ansiwhite": "ansiwhite", } ansicolors = set(_ansimap) @@ -61,20 +61,20 @@ class StyleMeta(type): obj = type.__new__(mcs, name, bases, dct) for token in STANDARD_TYPES: if token not in obj.styles: - obj.styles[token] = '' + obj.styles[token] = "" def colorformat(text): if text in ansicolors: return text - if text[0:1] == '#': + if text[0:1] == "#": col = text[1:] if len(col) == 6: return col elif len(col) == 3: return col[0] * 2 + col[1] * 2 + col[2] * 2 - elif text == '': - return '' - elif text.startswith('var') or text.startswith('calc'): + elif text == "": + return "" + elif text.startswith("var") or text.startswith("calc"): return text assert False, f"wrong color format {text!r}" @@ -85,38 +85,38 @@ class StyleMeta(type): if token in _styles: continue ndef = _styles.get(token.parent, None) - styledefs = obj.styles.get(token, '').split() + styledefs = obj.styles.get(token, "").split() if not ndef or token is None: - ndef = ['', 0, 0, 0, '', '', 0, 0, 0] - elif 'noinherit' in styledefs and token is not Token: + ndef = ["", 0, 0, 0, "", "", 0, 0, 0] + elif "noinherit" in styledefs and token is not Token: ndef = _styles[Token][:] else: ndef = ndef[:] _styles[token] = ndef - for styledef in obj.styles.get(token, '').split(): - if styledef == 'noinherit': + for styledef in obj.styles.get(token, "").split(): + if styledef == "noinherit": pass - elif styledef == 'bold': + elif styledef == "bold": ndef[1] = 1 - elif styledef == 'nobold': + elif styledef == "nobold": ndef[1] = 0 - elif styledef == 'italic': + elif styledef == "italic": ndef[2] = 1 - elif styledef == 'noitalic': + elif styledef == "noitalic": ndef[2] = 0 - elif styledef == 'underline': + elif styledef == "underline": ndef[3] = 1 - elif styledef == 'nounderline': + elif styledef == "nounderline": ndef[3] = 0 - elif styledef[:3] == 'bg:': + elif styledef[:3] == "bg:": ndef[4] = colorformat(styledef[3:]) - elif styledef[:7] == 'border:': + elif styledef[:7] == "border:": ndef[5] = colorformat(styledef[7:]) - elif styledef == 'roman': + elif styledef == "roman": ndef[6] = 1 - elif styledef == 'sans': + elif styledef == "sans": ndef[7] = 1 - elif styledef == 'mono': + elif styledef == "mono": ndef[8] = 1 else: ndef[0] = colorformat(styledef) @@ -140,17 +140,17 @@ class StyleMeta(type): bgcolor = _ansimap[bgcolor] return { - 'color': color or None, - 'bold': bool(t[1]), - 'italic': bool(t[2]), - 'underline': bool(t[3]), - 'bgcolor': bgcolor or None, - 'border': t[5] or None, - 'roman': bool(t[6]) or None, - 'sans': bool(t[7]) or None, - 'mono': bool(t[8]) or None, - 'ansicolor': ansicolor, - 'bgansicolor': bgansicolor, + "color": color or None, + "bold": bool(t[1]), + "italic": bool(t[2]), + "underline": bool(t[3]), + "bgcolor": bgcolor or None, + "border": t[5] or None, + "roman": bool(t[6]) or None, + "sans": bool(t[7]) or None, + "mono": bool(t[8]) or None, + "ansicolor": ansicolor, + "bgansicolor": bgansicolor, } def list_styles(cls): @@ -170,29 +170,29 @@ class StyleMeta(type): class Style(metaclass=StyleMeta): #: overall background color (``None`` means transparent) - background_color = '#ffffff' + background_color = "#ffffff" #: highlight background color - highlight_color = '#ffffcc' + highlight_color = "#ffffcc" #: line number font color - line_number_color = 'inherit' + line_number_color = "inherit" #: line number background color - line_number_background_color = 'transparent' + line_number_background_color = "transparent" #: special line number font color - line_number_special_color = '#000000' + line_number_special_color = "#000000" #: special line number background color - line_number_special_background_color = '#ffffc0' + line_number_special_background_color = "#ffffc0" #: Style definitions for individual token types. styles = {} #: user-friendly style name (used when selecting the style, so this # should be all-lowercase, no spaces, hyphens) - name = 'unnamed' + name = "unnamed" aliases = [] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py index 96d53dc..3b1ef93 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py @@ -1,11 +1,11 @@ """ - pygments.styles - ~~~~~~~~~~~~~~~ +pygments.styles +~~~~~~~~~~~~~~~ - Contains built-in styles. +Contains built-in styles. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pip._vendor.pygments.plugin import find_plugin_styles @@ -15,7 +15,7 @@ from pip._vendor.pygments.styles._mapping import STYLES #: A dictionary of built-in styles, mapping style names to #: ``'submodule::classname'`` strings. #: This list is deprecated. Use `pygments.styles.STYLES` instead -STYLE_MAP = {v[1]: v[0].split('.')[-1] + '::' + k for k, v in STYLES.items()} +STYLE_MAP = {v[1]: v[0].split(".")[-1] + "::" + k for k, v in STYLES.items()} #: Internal reverse mapping to make `get_style_by_name` more efficient _STYLE_NAME_TO_MODULE_MAP = {v[1]: (v[0], k) for k, v in STYLES.items()} @@ -38,15 +38,17 @@ def get_style_by_name(name): return style # perhaps it got dropped into our styles package builtin = "" - mod = 'pygments.styles.' + name + mod = "pygments.styles." + name cls = name.title() + "Style" try: mod = __import__(mod, None, None, [cls]) except ImportError: - raise ClassNotFound(f"Could not find style module {mod!r}" + - (builtin and ", though it should be builtin") - + ".") + raise ClassNotFound( + f"Could not find style module {mod!r}" + + (builtin and ", though it should be builtin") + + "." + ) try: return getattr(mod, cls) except AttributeError: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py index 49a7fae..a12252b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py @@ -2,53 +2,57 @@ # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead. STYLES = { - 'AbapStyle': ('pygments.styles.abap', 'abap', ()), - 'AlgolStyle': ('pygments.styles.algol', 'algol', ()), - 'Algol_NuStyle': ('pygments.styles.algol_nu', 'algol_nu', ()), - 'ArduinoStyle': ('pygments.styles.arduino', 'arduino', ()), - 'AutumnStyle': ('pygments.styles.autumn', 'autumn', ()), - 'BlackWhiteStyle': ('pygments.styles.bw', 'bw', ()), - 'BorlandStyle': ('pygments.styles.borland', 'borland', ()), - 'CoffeeStyle': ('pygments.styles.coffee', 'coffee', ()), - 'ColorfulStyle': ('pygments.styles.colorful', 'colorful', ()), - 'DefaultStyle': ('pygments.styles.default', 'default', ()), - 'DraculaStyle': ('pygments.styles.dracula', 'dracula', ()), - 'EmacsStyle': ('pygments.styles.emacs', 'emacs', ()), - 'FriendlyGrayscaleStyle': ('pygments.styles.friendly_grayscale', 'friendly_grayscale', ()), - 'FriendlyStyle': ('pygments.styles.friendly', 'friendly', ()), - 'FruityStyle': ('pygments.styles.fruity', 'fruity', ()), - 'GhDarkStyle': ('pygments.styles.gh_dark', 'github-dark', ()), - 'GruvboxDarkStyle': ('pygments.styles.gruvbox', 'gruvbox-dark', ()), - 'GruvboxLightStyle': ('pygments.styles.gruvbox', 'gruvbox-light', ()), - 'IgorStyle': ('pygments.styles.igor', 'igor', ()), - 'InkPotStyle': ('pygments.styles.inkpot', 'inkpot', ()), - 'LightbulbStyle': ('pygments.styles.lightbulb', 'lightbulb', ()), - 'LilyPondStyle': ('pygments.styles.lilypond', 'lilypond', ()), - 'LovelaceStyle': ('pygments.styles.lovelace', 'lovelace', ()), - 'ManniStyle': ('pygments.styles.manni', 'manni', ()), - 'MaterialStyle': ('pygments.styles.material', 'material', ()), - 'MonokaiStyle': ('pygments.styles.monokai', 'monokai', ()), - 'MurphyStyle': ('pygments.styles.murphy', 'murphy', ()), - 'NativeStyle': ('pygments.styles.native', 'native', ()), - 'NordDarkerStyle': ('pygments.styles.nord', 'nord-darker', ()), - 'NordStyle': ('pygments.styles.nord', 'nord', ()), - 'OneDarkStyle': ('pygments.styles.onedark', 'one-dark', ()), - 'ParaisoDarkStyle': ('pygments.styles.paraiso_dark', 'paraiso-dark', ()), - 'ParaisoLightStyle': ('pygments.styles.paraiso_light', 'paraiso-light', ()), - 'PastieStyle': ('pygments.styles.pastie', 'pastie', ()), - 'PerldocStyle': ('pygments.styles.perldoc', 'perldoc', ()), - 'RainbowDashStyle': ('pygments.styles.rainbow_dash', 'rainbow_dash', ()), - 'RrtStyle': ('pygments.styles.rrt', 'rrt', ()), - 'SasStyle': ('pygments.styles.sas', 'sas', ()), - 'SolarizedDarkStyle': ('pygments.styles.solarized', 'solarized-dark', ()), - 'SolarizedLightStyle': ('pygments.styles.solarized', 'solarized-light', ()), - 'StarofficeStyle': ('pygments.styles.staroffice', 'staroffice', ()), - 'StataDarkStyle': ('pygments.styles.stata_dark', 'stata-dark', ()), - 'StataLightStyle': ('pygments.styles.stata_light', 'stata-light', ()), - 'TangoStyle': ('pygments.styles.tango', 'tango', ()), - 'TracStyle': ('pygments.styles.trac', 'trac', ()), - 'VimStyle': ('pygments.styles.vim', 'vim', ()), - 'VisualStudioStyle': ('pygments.styles.vs', 'vs', ()), - 'XcodeStyle': ('pygments.styles.xcode', 'xcode', ()), - 'ZenburnStyle': ('pygments.styles.zenburn', 'zenburn', ()), + "AbapStyle": ("pygments.styles.abap", "abap", ()), + "AlgolStyle": ("pygments.styles.algol", "algol", ()), + "Algol_NuStyle": ("pygments.styles.algol_nu", "algol_nu", ()), + "ArduinoStyle": ("pygments.styles.arduino", "arduino", ()), + "AutumnStyle": ("pygments.styles.autumn", "autumn", ()), + "BlackWhiteStyle": ("pygments.styles.bw", "bw", ()), + "BorlandStyle": ("pygments.styles.borland", "borland", ()), + "CoffeeStyle": ("pygments.styles.coffee", "coffee", ()), + "ColorfulStyle": ("pygments.styles.colorful", "colorful", ()), + "DefaultStyle": ("pygments.styles.default", "default", ()), + "DraculaStyle": ("pygments.styles.dracula", "dracula", ()), + "EmacsStyle": ("pygments.styles.emacs", "emacs", ()), + "FriendlyGrayscaleStyle": ( + "pygments.styles.friendly_grayscale", + "friendly_grayscale", + (), + ), + "FriendlyStyle": ("pygments.styles.friendly", "friendly", ()), + "FruityStyle": ("pygments.styles.fruity", "fruity", ()), + "GhDarkStyle": ("pygments.styles.gh_dark", "github-dark", ()), + "GruvboxDarkStyle": ("pygments.styles.gruvbox", "gruvbox-dark", ()), + "GruvboxLightStyle": ("pygments.styles.gruvbox", "gruvbox-light", ()), + "IgorStyle": ("pygments.styles.igor", "igor", ()), + "InkPotStyle": ("pygments.styles.inkpot", "inkpot", ()), + "LightbulbStyle": ("pygments.styles.lightbulb", "lightbulb", ()), + "LilyPondStyle": ("pygments.styles.lilypond", "lilypond", ()), + "LovelaceStyle": ("pygments.styles.lovelace", "lovelace", ()), + "ManniStyle": ("pygments.styles.manni", "manni", ()), + "MaterialStyle": ("pygments.styles.material", "material", ()), + "MonokaiStyle": ("pygments.styles.monokai", "monokai", ()), + "MurphyStyle": ("pygments.styles.murphy", "murphy", ()), + "NativeStyle": ("pygments.styles.native", "native", ()), + "NordDarkerStyle": ("pygments.styles.nord", "nord-darker", ()), + "NordStyle": ("pygments.styles.nord", "nord", ()), + "OneDarkStyle": ("pygments.styles.onedark", "one-dark", ()), + "ParaisoDarkStyle": ("pygments.styles.paraiso_dark", "paraiso-dark", ()), + "ParaisoLightStyle": ("pygments.styles.paraiso_light", "paraiso-light", ()), + "PastieStyle": ("pygments.styles.pastie", "pastie", ()), + "PerldocStyle": ("pygments.styles.perldoc", "perldoc", ()), + "RainbowDashStyle": ("pygments.styles.rainbow_dash", "rainbow_dash", ()), + "RrtStyle": ("pygments.styles.rrt", "rrt", ()), + "SasStyle": ("pygments.styles.sas", "sas", ()), + "SolarizedDarkStyle": ("pygments.styles.solarized", "solarized-dark", ()), + "SolarizedLightStyle": ("pygments.styles.solarized", "solarized-light", ()), + "StarofficeStyle": ("pygments.styles.staroffice", "staroffice", ()), + "StataDarkStyle": ("pygments.styles.stata_dark", "stata-dark", ()), + "StataLightStyle": ("pygments.styles.stata_light", "stata-light", ()), + "TangoStyle": ("pygments.styles.tango", "tango", ()), + "TracStyle": ("pygments.styles.trac", "trac", ()), + "VimStyle": ("pygments.styles.vim", "vim", ()), + "VisualStudioStyle": ("pygments.styles.vs", "vs", ()), + "XcodeStyle": ("pygments.styles.xcode", "xcode", ()), + "ZenburnStyle": ("pygments.styles.zenburn", "zenburn", ()), } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py index 2f3b97e..c8bfec0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py @@ -1,11 +1,11 @@ """ - pygments.token - ~~~~~~~~~~~~~~ +pygments.token +~~~~~~~~~~~~~~ - Basic token types and the standard tokens. +Basic token types and the standard tokens. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ @@ -26,10 +26,7 @@ class _TokenType(tuple): self.subtypes = set() def __contains__(self, val): - return self is val or ( - type(val) is self.__class__ and - val[:len(self)] == self - ) + return self is val or (type(val) is self.__class__ and val[: len(self)] == self) def __getattr__(self, val): if not val or not val[0].isupper(): @@ -41,7 +38,7 @@ class _TokenType(tuple): return new def __repr__(self): - return 'Token' + (self and '.' or '') + '.'.join(self) + return "Token" + (self and "." or "") + ".".join(self) def __copy__(self): # These instances are supposed to be singletons @@ -112,7 +109,7 @@ def string_to_tokentype(s): if not s: return Token node = Token - for item in s.split('.'): + for item in s.split("."): node = getattr(node, item) return node @@ -121,94 +118,84 @@ def string_to_tokentype(s): # If you add a new item, please be sure to run this file to perform # a consistency check for duplicate values. STANDARD_TYPES = { - Token: '', - - Text: '', - Whitespace: 'w', - Escape: 'esc', - Error: 'err', - Other: 'x', - - Keyword: 'k', - Keyword.Constant: 'kc', - Keyword.Declaration: 'kd', - Keyword.Namespace: 'kn', - Keyword.Pseudo: 'kp', - Keyword.Reserved: 'kr', - Keyword.Type: 'kt', - - Name: 'n', - Name.Attribute: 'na', - Name.Builtin: 'nb', - Name.Builtin.Pseudo: 'bp', - Name.Class: 'nc', - Name.Constant: 'no', - Name.Decorator: 'nd', - Name.Entity: 'ni', - Name.Exception: 'ne', - Name.Function: 'nf', - Name.Function.Magic: 'fm', - Name.Property: 'py', - Name.Label: 'nl', - Name.Namespace: 'nn', - Name.Other: 'nx', - Name.Tag: 'nt', - Name.Variable: 'nv', - Name.Variable.Class: 'vc', - Name.Variable.Global: 'vg', - Name.Variable.Instance: 'vi', - Name.Variable.Magic: 'vm', - - Literal: 'l', - Literal.Date: 'ld', - - String: 's', - String.Affix: 'sa', - String.Backtick: 'sb', - String.Char: 'sc', - String.Delimiter: 'dl', - String.Doc: 'sd', - String.Double: 's2', - String.Escape: 'se', - String.Heredoc: 'sh', - String.Interpol: 'si', - String.Other: 'sx', - String.Regex: 'sr', - String.Single: 's1', - String.Symbol: 'ss', - - Number: 'm', - Number.Bin: 'mb', - Number.Float: 'mf', - Number.Hex: 'mh', - Number.Integer: 'mi', - Number.Integer.Long: 'il', - Number.Oct: 'mo', - - Operator: 'o', - Operator.Word: 'ow', - - Punctuation: 'p', - Punctuation.Marker: 'pm', - - Comment: 'c', - Comment.Hashbang: 'ch', - Comment.Multiline: 'cm', - Comment.Preproc: 'cp', - Comment.PreprocFile: 'cpf', - Comment.Single: 'c1', - Comment.Special: 'cs', - - Generic: 'g', - Generic.Deleted: 'gd', - Generic.Emph: 'ge', - Generic.Error: 'gr', - Generic.Heading: 'gh', - Generic.Inserted: 'gi', - Generic.Output: 'go', - Generic.Prompt: 'gp', - Generic.Strong: 'gs', - Generic.Subheading: 'gu', - Generic.EmphStrong: 'ges', - Generic.Traceback: 'gt', + Token: "", + Text: "", + Whitespace: "w", + Escape: "esc", + Error: "err", + Other: "x", + Keyword: "k", + Keyword.Constant: "kc", + Keyword.Declaration: "kd", + Keyword.Namespace: "kn", + Keyword.Pseudo: "kp", + Keyword.Reserved: "kr", + Keyword.Type: "kt", + Name: "n", + Name.Attribute: "na", + Name.Builtin: "nb", + Name.Builtin.Pseudo: "bp", + Name.Class: "nc", + Name.Constant: "no", + Name.Decorator: "nd", + Name.Entity: "ni", + Name.Exception: "ne", + Name.Function: "nf", + Name.Function.Magic: "fm", + Name.Property: "py", + Name.Label: "nl", + Name.Namespace: "nn", + Name.Other: "nx", + Name.Tag: "nt", + Name.Variable: "nv", + Name.Variable.Class: "vc", + Name.Variable.Global: "vg", + Name.Variable.Instance: "vi", + Name.Variable.Magic: "vm", + Literal: "l", + Literal.Date: "ld", + String: "s", + String.Affix: "sa", + String.Backtick: "sb", + String.Char: "sc", + String.Delimiter: "dl", + String.Doc: "sd", + String.Double: "s2", + String.Escape: "se", + String.Heredoc: "sh", + String.Interpol: "si", + String.Other: "sx", + String.Regex: "sr", + String.Single: "s1", + String.Symbol: "ss", + Number: "m", + Number.Bin: "mb", + Number.Float: "mf", + Number.Hex: "mh", + Number.Integer: "mi", + Number.Integer.Long: "il", + Number.Oct: "mo", + Operator: "o", + Operator.Word: "ow", + Punctuation: "p", + Punctuation.Marker: "pm", + Comment: "c", + Comment.Hashbang: "ch", + Comment.Multiline: "cm", + Comment.Preproc: "cp", + Comment.PreprocFile: "cpf", + Comment.Single: "c1", + Comment.Special: "cs", + Generic: "g", + Generic.Deleted: "gd", + Generic.Emph: "ge", + Generic.Error: "gr", + Generic.Heading: "gh", + Generic.Inserted: "gi", + Generic.Output: "go", + Generic.Prompt: "gp", + Generic.Strong: "gs", + Generic.Subheading: "gu", + Generic.EmphStrong: "ges", + Generic.Traceback: "gt", } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py index e3bd2e7..4b86b0f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py @@ -1,100 +1,132 @@ """ - pygments.unistring - ~~~~~~~~~~~~~~~~~~ +pygments.unistring +~~~~~~~~~~~~~~~~~~ - Strings of all Unicode characters of a certain category. - Used for matching in Unicode-aware languages. Run to regenerate. +Strings of all Unicode characters of a certain category. +Used for matching in Unicode-aware languages. Run to regenerate. - Inspired by chartypes_create.py from the MoinMoin project. +Inspired by chartypes_create.py from the MoinMoin project. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ -Cc = '\x00-\x1f\x7f-\x9f' +Cc = "\x00-\x1f\x7f-\x9f" -Cf = '\xad\u0600-\u0605\u061c\u06dd\u070f\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f' +Cf = "\xad\u0600-\u0605\u061c\u06dd\u070f\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f" -Cn = '\u0378-\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557-\u0558\u058b-\u058c\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u05ff\u061d\u070e\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f\u085c-\u085d\u085f\u086b-\u089f\u08b5\u08be-\u08d2\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d\u0c11\u0c29\u0c3a-\u0c3c\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b-\u0c5f\u0c64-\u0c65\u0c70-\u0c77\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce4-\u0ce5\u0cf0\u0cf3-\u0cff\u0d04\u0d0d\u0d11\u0d45\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80-\u0d81\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249\u124e-\u124f\u1257\u1259\u125e-\u125f\u1289\u128e-\u128f\u12b1\u12b6-\u12b7\u12bf\u12c1\u12c6-\u12c7\u12d7\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180f\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfa-\u1cff\u1dfa\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fc5\u1fd4-\u1fd5\u1fdc\u1ff0-\u1ff1\u1ff5\u1fff\u2065\u2072-\u2073\u208f\u209d-\u209f\u20c0-\u20cf\u20f1-\u20ff\u218c-\u218f\u2427-\u243f\u244b-\u245f\u2b74-\u2b75\u2b96-\u2b97\u2bc9\u2bff\u2c2f\u2c5f\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e4f-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040\u3097-\u3098\u3100-\u3104\u3130\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f\u32ff\u4db6-\u4dbf\u9ff0-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7ba-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27\uab2f\uab66-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdef\ufdfe-\ufdff\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\ufefe\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7\uffef-\ufff8\ufffe-\uffff\U0001000c\U00010027\U0001003b\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f\U0001019c-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U0001049f\U000104aa-\U000104af\U000104d4-\U000104d7\U000104fc-\U000104ff\U00010528-\U0001052f\U00010564-\U0001056e\U00010570-\U000105ff\U00010737-\U0001073f\U00010756-\U0001075f\U00010768-\U000107ff\U00010806-\U00010807\U00010809\U00010836\U00010839-\U0001083b\U0001083d-\U0001083e\U00010856\U0001089f-\U000108a6\U000108b0-\U000108df\U000108f3\U000108f6-\U000108fa\U0001091c-\U0001091e\U0001093a-\U0001093e\U00010940-\U0001097f\U000109b8-\U000109bb\U000109d0-\U000109d1\U00010a04\U00010a07-\U00010a0b\U00010a14\U00010a18\U00010a36-\U00010a37\U00010a3b-\U00010a3e\U00010a49-\U00010a4f\U00010a59-\U00010a5f\U00010aa0-\U00010abf\U00010ae7-\U00010aea\U00010af7-\U00010aff\U00010b36-\U00010b38\U00010b56-\U00010b57\U00010b73-\U00010b77\U00010b92-\U00010b98\U00010b9d-\U00010ba8\U00010bb0-\U00010bff\U00010c49-\U00010c7f\U00010cb3-\U00010cbf\U00010cf3-\U00010cf9\U00010d28-\U00010d2f\U00010d3a-\U00010e5f\U00010e7f-\U00010eff\U00010f28-\U00010f2f\U00010f5a-\U00010fff\U0001104e-\U00011051\U00011070-\U0001107e\U000110c2-\U000110cc\U000110ce-\U000110cf\U000110e9-\U000110ef\U000110fa-\U000110ff\U00011135\U00011147-\U0001114f\U00011177-\U0001117f\U000111ce-\U000111cf\U000111e0\U000111f5-\U000111ff\U00011212\U0001123f-\U0001127f\U00011287\U00011289\U0001128e\U0001129e\U000112aa-\U000112af\U000112eb-\U000112ef\U000112fa-\U000112ff\U00011304\U0001130d-\U0001130e\U00011311-\U00011312\U00011329\U00011331\U00011334\U0001133a\U00011345-\U00011346\U00011349-\U0001134a\U0001134e-\U0001134f\U00011351-\U00011356\U00011358-\U0001135c\U00011364-\U00011365\U0001136d-\U0001136f\U00011375-\U000113ff\U0001145a\U0001145c\U0001145f-\U0001147f\U000114c8-\U000114cf\U000114da-\U0001157f\U000115b6-\U000115b7\U000115de-\U000115ff\U00011645-\U0001164f\U0001165a-\U0001165f\U0001166d-\U0001167f\U000116b8-\U000116bf\U000116ca-\U000116ff\U0001171b-\U0001171c\U0001172c-\U0001172f\U00011740-\U000117ff\U0001183c-\U0001189f\U000118f3-\U000118fe\U00011900-\U000119ff\U00011a48-\U00011a4f\U00011a84-\U00011a85\U00011aa3-\U00011abf\U00011af9-\U00011bff\U00011c09\U00011c37\U00011c46-\U00011c4f\U00011c6d-\U00011c6f\U00011c90-\U00011c91\U00011ca8\U00011cb7-\U00011cff\U00011d07\U00011d0a\U00011d37-\U00011d39\U00011d3b\U00011d3e\U00011d48-\U00011d4f\U00011d5a-\U00011d5f\U00011d66\U00011d69\U00011d8f\U00011d92\U00011d99-\U00011d9f\U00011daa-\U00011edf\U00011ef9-\U00011fff\U0001239a-\U000123ff\U0001246f\U00012475-\U0001247f\U00012544-\U00012fff\U0001342f-\U000143ff\U00014647-\U000167ff\U00016a39-\U00016a3f\U00016a5f\U00016a6a-\U00016a6d\U00016a70-\U00016acf\U00016aee-\U00016aef\U00016af6-\U00016aff\U00016b46-\U00016b4f\U00016b5a\U00016b62\U00016b78-\U00016b7c\U00016b90-\U00016e3f\U00016e9b-\U00016eff\U00016f45-\U00016f4f\U00016f7f-\U00016f8e\U00016fa0-\U00016fdf\U00016fe2-\U00016fff\U000187f2-\U000187ff\U00018af3-\U0001afff\U0001b11f-\U0001b16f\U0001b2fc-\U0001bbff\U0001bc6b-\U0001bc6f\U0001bc7d-\U0001bc7f\U0001bc89-\U0001bc8f\U0001bc9a-\U0001bc9b\U0001bca4-\U0001cfff\U0001d0f6-\U0001d0ff\U0001d127-\U0001d128\U0001d1e9-\U0001d1ff\U0001d246-\U0001d2df\U0001d2f4-\U0001d2ff\U0001d357-\U0001d35f\U0001d379-\U0001d3ff\U0001d455\U0001d49d\U0001d4a0-\U0001d4a1\U0001d4a3-\U0001d4a4\U0001d4a7-\U0001d4a8\U0001d4ad\U0001d4ba\U0001d4bc\U0001d4c4\U0001d506\U0001d50b-\U0001d50c\U0001d515\U0001d51d\U0001d53a\U0001d53f\U0001d545\U0001d547-\U0001d549\U0001d551\U0001d6a6-\U0001d6a7\U0001d7cc-\U0001d7cd\U0001da8c-\U0001da9a\U0001daa0\U0001dab0-\U0001dfff\U0001e007\U0001e019-\U0001e01a\U0001e022\U0001e025\U0001e02b-\U0001e7ff\U0001e8c5-\U0001e8c6\U0001e8d7-\U0001e8ff\U0001e94b-\U0001e94f\U0001e95a-\U0001e95d\U0001e960-\U0001ec70\U0001ecb5-\U0001edff\U0001ee04\U0001ee20\U0001ee23\U0001ee25-\U0001ee26\U0001ee28\U0001ee33\U0001ee38\U0001ee3a\U0001ee3c-\U0001ee41\U0001ee43-\U0001ee46\U0001ee48\U0001ee4a\U0001ee4c\U0001ee50\U0001ee53\U0001ee55-\U0001ee56\U0001ee58\U0001ee5a\U0001ee5c\U0001ee5e\U0001ee60\U0001ee63\U0001ee65-\U0001ee66\U0001ee6b\U0001ee73\U0001ee78\U0001ee7d\U0001ee7f\U0001ee8a\U0001ee9c-\U0001eea0\U0001eea4\U0001eeaa\U0001eebc-\U0001eeef\U0001eef2-\U0001efff\U0001f02c-\U0001f02f\U0001f094-\U0001f09f\U0001f0af-\U0001f0b0\U0001f0c0\U0001f0d0\U0001f0f6-\U0001f0ff\U0001f10d-\U0001f10f\U0001f16c-\U0001f16f\U0001f1ad-\U0001f1e5\U0001f203-\U0001f20f\U0001f23c-\U0001f23f\U0001f249-\U0001f24f\U0001f252-\U0001f25f\U0001f266-\U0001f2ff\U0001f6d5-\U0001f6df\U0001f6ed-\U0001f6ef\U0001f6fa-\U0001f6ff\U0001f774-\U0001f77f\U0001f7d9-\U0001f7ff\U0001f80c-\U0001f80f\U0001f848-\U0001f84f\U0001f85a-\U0001f85f\U0001f888-\U0001f88f\U0001f8ae-\U0001f8ff\U0001f90c-\U0001f90f\U0001f93f\U0001f971-\U0001f972\U0001f977-\U0001f979\U0001f97b\U0001f9a3-\U0001f9af\U0001f9ba-\U0001f9bf\U0001f9c3-\U0001f9cf\U0001fa00-\U0001fa5f\U0001fa6e-\U0001ffff\U0002a6d7-\U0002a6ff\U0002b735-\U0002b73f\U0002b81e-\U0002b81f\U0002cea2-\U0002ceaf\U0002ebe1-\U0002f7ff\U0002fa1e-\U000e0000\U000e0002-\U000e001f\U000e0080-\U000e00ff\U000e01f0-\U000effff\U000ffffe-\U000fffff\U0010fffe-\U0010ffff' +Cn = "\u0378-\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557-\u0558\u058b-\u058c\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u05ff\u061d\u070e\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f\u085c-\u085d\u085f\u086b-\u089f\u08b5\u08be-\u08d2\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d\u0c11\u0c29\u0c3a-\u0c3c\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b-\u0c5f\u0c64-\u0c65\u0c70-\u0c77\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce4-\u0ce5\u0cf0\u0cf3-\u0cff\u0d04\u0d0d\u0d11\u0d45\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80-\u0d81\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249\u124e-\u124f\u1257\u1259\u125e-\u125f\u1289\u128e-\u128f\u12b1\u12b6-\u12b7\u12bf\u12c1\u12c6-\u12c7\u12d7\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180f\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfa-\u1cff\u1dfa\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fc5\u1fd4-\u1fd5\u1fdc\u1ff0-\u1ff1\u1ff5\u1fff\u2065\u2072-\u2073\u208f\u209d-\u209f\u20c0-\u20cf\u20f1-\u20ff\u218c-\u218f\u2427-\u243f\u244b-\u245f\u2b74-\u2b75\u2b96-\u2b97\u2bc9\u2bff\u2c2f\u2c5f\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e4f-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040\u3097-\u3098\u3100-\u3104\u3130\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f\u32ff\u4db6-\u4dbf\u9ff0-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7ba-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27\uab2f\uab66-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdef\ufdfe-\ufdff\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\ufefe\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7\uffef-\ufff8\ufffe-\uffff\U0001000c\U00010027\U0001003b\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f\U0001019c-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U0001049f\U000104aa-\U000104af\U000104d4-\U000104d7\U000104fc-\U000104ff\U00010528-\U0001052f\U00010564-\U0001056e\U00010570-\U000105ff\U00010737-\U0001073f\U00010756-\U0001075f\U00010768-\U000107ff\U00010806-\U00010807\U00010809\U00010836\U00010839-\U0001083b\U0001083d-\U0001083e\U00010856\U0001089f-\U000108a6\U000108b0-\U000108df\U000108f3\U000108f6-\U000108fa\U0001091c-\U0001091e\U0001093a-\U0001093e\U00010940-\U0001097f\U000109b8-\U000109bb\U000109d0-\U000109d1\U00010a04\U00010a07-\U00010a0b\U00010a14\U00010a18\U00010a36-\U00010a37\U00010a3b-\U00010a3e\U00010a49-\U00010a4f\U00010a59-\U00010a5f\U00010aa0-\U00010abf\U00010ae7-\U00010aea\U00010af7-\U00010aff\U00010b36-\U00010b38\U00010b56-\U00010b57\U00010b73-\U00010b77\U00010b92-\U00010b98\U00010b9d-\U00010ba8\U00010bb0-\U00010bff\U00010c49-\U00010c7f\U00010cb3-\U00010cbf\U00010cf3-\U00010cf9\U00010d28-\U00010d2f\U00010d3a-\U00010e5f\U00010e7f-\U00010eff\U00010f28-\U00010f2f\U00010f5a-\U00010fff\U0001104e-\U00011051\U00011070-\U0001107e\U000110c2-\U000110cc\U000110ce-\U000110cf\U000110e9-\U000110ef\U000110fa-\U000110ff\U00011135\U00011147-\U0001114f\U00011177-\U0001117f\U000111ce-\U000111cf\U000111e0\U000111f5-\U000111ff\U00011212\U0001123f-\U0001127f\U00011287\U00011289\U0001128e\U0001129e\U000112aa-\U000112af\U000112eb-\U000112ef\U000112fa-\U000112ff\U00011304\U0001130d-\U0001130e\U00011311-\U00011312\U00011329\U00011331\U00011334\U0001133a\U00011345-\U00011346\U00011349-\U0001134a\U0001134e-\U0001134f\U00011351-\U00011356\U00011358-\U0001135c\U00011364-\U00011365\U0001136d-\U0001136f\U00011375-\U000113ff\U0001145a\U0001145c\U0001145f-\U0001147f\U000114c8-\U000114cf\U000114da-\U0001157f\U000115b6-\U000115b7\U000115de-\U000115ff\U00011645-\U0001164f\U0001165a-\U0001165f\U0001166d-\U0001167f\U000116b8-\U000116bf\U000116ca-\U000116ff\U0001171b-\U0001171c\U0001172c-\U0001172f\U00011740-\U000117ff\U0001183c-\U0001189f\U000118f3-\U000118fe\U00011900-\U000119ff\U00011a48-\U00011a4f\U00011a84-\U00011a85\U00011aa3-\U00011abf\U00011af9-\U00011bff\U00011c09\U00011c37\U00011c46-\U00011c4f\U00011c6d-\U00011c6f\U00011c90-\U00011c91\U00011ca8\U00011cb7-\U00011cff\U00011d07\U00011d0a\U00011d37-\U00011d39\U00011d3b\U00011d3e\U00011d48-\U00011d4f\U00011d5a-\U00011d5f\U00011d66\U00011d69\U00011d8f\U00011d92\U00011d99-\U00011d9f\U00011daa-\U00011edf\U00011ef9-\U00011fff\U0001239a-\U000123ff\U0001246f\U00012475-\U0001247f\U00012544-\U00012fff\U0001342f-\U000143ff\U00014647-\U000167ff\U00016a39-\U00016a3f\U00016a5f\U00016a6a-\U00016a6d\U00016a70-\U00016acf\U00016aee-\U00016aef\U00016af6-\U00016aff\U00016b46-\U00016b4f\U00016b5a\U00016b62\U00016b78-\U00016b7c\U00016b90-\U00016e3f\U00016e9b-\U00016eff\U00016f45-\U00016f4f\U00016f7f-\U00016f8e\U00016fa0-\U00016fdf\U00016fe2-\U00016fff\U000187f2-\U000187ff\U00018af3-\U0001afff\U0001b11f-\U0001b16f\U0001b2fc-\U0001bbff\U0001bc6b-\U0001bc6f\U0001bc7d-\U0001bc7f\U0001bc89-\U0001bc8f\U0001bc9a-\U0001bc9b\U0001bca4-\U0001cfff\U0001d0f6-\U0001d0ff\U0001d127-\U0001d128\U0001d1e9-\U0001d1ff\U0001d246-\U0001d2df\U0001d2f4-\U0001d2ff\U0001d357-\U0001d35f\U0001d379-\U0001d3ff\U0001d455\U0001d49d\U0001d4a0-\U0001d4a1\U0001d4a3-\U0001d4a4\U0001d4a7-\U0001d4a8\U0001d4ad\U0001d4ba\U0001d4bc\U0001d4c4\U0001d506\U0001d50b-\U0001d50c\U0001d515\U0001d51d\U0001d53a\U0001d53f\U0001d545\U0001d547-\U0001d549\U0001d551\U0001d6a6-\U0001d6a7\U0001d7cc-\U0001d7cd\U0001da8c-\U0001da9a\U0001daa0\U0001dab0-\U0001dfff\U0001e007\U0001e019-\U0001e01a\U0001e022\U0001e025\U0001e02b-\U0001e7ff\U0001e8c5-\U0001e8c6\U0001e8d7-\U0001e8ff\U0001e94b-\U0001e94f\U0001e95a-\U0001e95d\U0001e960-\U0001ec70\U0001ecb5-\U0001edff\U0001ee04\U0001ee20\U0001ee23\U0001ee25-\U0001ee26\U0001ee28\U0001ee33\U0001ee38\U0001ee3a\U0001ee3c-\U0001ee41\U0001ee43-\U0001ee46\U0001ee48\U0001ee4a\U0001ee4c\U0001ee50\U0001ee53\U0001ee55-\U0001ee56\U0001ee58\U0001ee5a\U0001ee5c\U0001ee5e\U0001ee60\U0001ee63\U0001ee65-\U0001ee66\U0001ee6b\U0001ee73\U0001ee78\U0001ee7d\U0001ee7f\U0001ee8a\U0001ee9c-\U0001eea0\U0001eea4\U0001eeaa\U0001eebc-\U0001eeef\U0001eef2-\U0001efff\U0001f02c-\U0001f02f\U0001f094-\U0001f09f\U0001f0af-\U0001f0b0\U0001f0c0\U0001f0d0\U0001f0f6-\U0001f0ff\U0001f10d-\U0001f10f\U0001f16c-\U0001f16f\U0001f1ad-\U0001f1e5\U0001f203-\U0001f20f\U0001f23c-\U0001f23f\U0001f249-\U0001f24f\U0001f252-\U0001f25f\U0001f266-\U0001f2ff\U0001f6d5-\U0001f6df\U0001f6ed-\U0001f6ef\U0001f6fa-\U0001f6ff\U0001f774-\U0001f77f\U0001f7d9-\U0001f7ff\U0001f80c-\U0001f80f\U0001f848-\U0001f84f\U0001f85a-\U0001f85f\U0001f888-\U0001f88f\U0001f8ae-\U0001f8ff\U0001f90c-\U0001f90f\U0001f93f\U0001f971-\U0001f972\U0001f977-\U0001f979\U0001f97b\U0001f9a3-\U0001f9af\U0001f9ba-\U0001f9bf\U0001f9c3-\U0001f9cf\U0001fa00-\U0001fa5f\U0001fa6e-\U0001ffff\U0002a6d7-\U0002a6ff\U0002b735-\U0002b73f\U0002b81e-\U0002b81f\U0002cea2-\U0002ceaf\U0002ebe1-\U0002f7ff\U0002fa1e-\U000e0000\U000e0002-\U000e001f\U000e0080-\U000e00ff\U000e01f0-\U000effff\U000ffffe-\U000fffff\U0010fffe-\U0010ffff" -Co = '\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd' +Co = "\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd" -Cs = '\ud800-\udbff\\\udc00\udc01-\udfff' +Cs = "\ud800-\udbff\\\udc00\udc01-\udfff" -Ll = 'a-z\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0560-\u0588\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7af\ua7b5\ua7b7\ua7b9\ua7fa\uab30-\uab5a\uab60-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010cc0-\U00010cf2\U000118c0-\U000118df\U00016e60-\U00016e7f\U0001d41a-\U0001d433\U0001d44e-\U0001d454\U0001d456-\U0001d467\U0001d482-\U0001d49b\U0001d4b6-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d4cf\U0001d4ea-\U0001d503\U0001d51e-\U0001d537\U0001d552-\U0001d56b\U0001d586-\U0001d59f\U0001d5ba-\U0001d5d3\U0001d5ee-\U0001d607\U0001d622-\U0001d63b\U0001d656-\U0001d66f\U0001d68a-\U0001d6a5\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6e1\U0001d6fc-\U0001d714\U0001d716-\U0001d71b\U0001d736-\U0001d74e\U0001d750-\U0001d755\U0001d770-\U0001d788\U0001d78a-\U0001d78f\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7c9\U0001d7cb\U0001e922-\U0001e943' +Ll = "a-z\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0560-\u0588\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7af\ua7b5\ua7b7\ua7b9\ua7fa\uab30-\uab5a\uab60-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010cc0-\U00010cf2\U000118c0-\U000118df\U00016e60-\U00016e7f\U0001d41a-\U0001d433\U0001d44e-\U0001d454\U0001d456-\U0001d467\U0001d482-\U0001d49b\U0001d4b6-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d4cf\U0001d4ea-\U0001d503\U0001d51e-\U0001d537\U0001d552-\U0001d56b\U0001d586-\U0001d59f\U0001d5ba-\U0001d5d3\U0001d5ee-\U0001d607\U0001d622-\U0001d63b\U0001d656-\U0001d66f\U0001d68a-\U0001d6a5\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6e1\U0001d6fc-\U0001d714\U0001d716-\U0001d71b\U0001d736-\U0001d74e\U0001d750-\U0001d755\U0001d770-\U0001d788\U0001d78a-\U0001d78f\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7c9\U0001d7cb\U0001e922-\U0001e943" -Lm = '\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua69c-\ua69d\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\ua9e6\uaa70\uaadd\uaaf3-\uaaf4\uab5c-\uab5f\uff70\uff9e-\uff9f\U00016b40-\U00016b43\U00016f93-\U00016f9f\U00016fe0-\U00016fe1' +Lm = "\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua69c-\ua69d\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\ua9e6\uaa70\uaadd\uaaf3-\uaaf4\uab5c-\uab5f\uff70\uff9e-\uff9f\U00016b40-\U00016b43\U00016f93-\U00016f9f\U00016fe0-\U00016fe1" -Lo = '\xaa\xba\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05ef-\u05f2\u0620-\u063f\u0641-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a-\ua62b\ua66e\ua6a0-\ua6e5\ua78f\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadc\uaae0-\uaaea\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010450-\U0001049d\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016f00-\U00016f44\U00016f50\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001e800-\U0001e8c4\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d' +Lo = "\xaa\xba\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05ef-\u05f2\u0620-\u063f\u0641-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a-\ua62b\ua66e\ua6a0-\ua6e5\ua78f\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadc\uaae0-\uaaea\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010450-\U0001049d\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016f00-\U00016f44\U00016f50\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001e800-\U0001e8c4\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d" -Lt = '\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc' +Lt = "\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc" -Lu = 'A-Z\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010c80-\U00010cb2\U000118a0-\U000118bf\U00016e40-\U00016e5f\U0001d400-\U0001d419\U0001d434-\U0001d44d\U0001d468-\U0001d481\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b5\U0001d4d0-\U0001d4e9\U0001d504-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d538-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d56c-\U0001d585\U0001d5a0-\U0001d5b9\U0001d5d4-\U0001d5ed\U0001d608-\U0001d621\U0001d63c-\U0001d655\U0001d670-\U0001d689\U0001d6a8-\U0001d6c0\U0001d6e2-\U0001d6fa\U0001d71c-\U0001d734\U0001d756-\U0001d76e\U0001d790-\U0001d7a8\U0001d7ca\U0001e900-\U0001e921' +Lu = "A-Z\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010c80-\U00010cb2\U000118a0-\U000118bf\U00016e40-\U00016e5f\U0001d400-\U0001d419\U0001d434-\U0001d44d\U0001d468-\U0001d481\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b5\U0001d4d0-\U0001d4e9\U0001d504-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d538-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d56c-\U0001d585\U0001d5a0-\U0001d5b9\U0001d5d4-\U0001d5ed\U0001d608-\U0001d621\U0001d63c-\U0001d655\U0001d670-\U0001d689\U0001d6a8-\U0001d6c0\U0001d6e2-\U0001d6fa\U0001d71c-\U0001d734\U0001d756-\U0001d76e\U0001d790-\U0001d7a8\U0001d7ca\U0001e900-\U0001e921" -Mc = '\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf2-\u1cf3\u1cf7\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9bd-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaa7d\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec\U00011000\U00011002\U00011082\U000110b0-\U000110b2\U000110b7-\U000110b8\U0001112c\U00011145-\U00011146\U00011182\U000111b3-\U000111b5\U000111bf-\U000111c0\U0001122c-\U0001122e\U00011232-\U00011233\U00011235\U000112e0-\U000112e2\U00011302-\U00011303\U0001133e-\U0001133f\U00011341-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357\U00011362-\U00011363\U00011435-\U00011437\U00011440-\U00011441\U00011445\U000114b0-\U000114b2\U000114b9\U000114bb-\U000114be\U000114c1\U000115af-\U000115b1\U000115b8-\U000115bb\U000115be\U00011630-\U00011632\U0001163b-\U0001163c\U0001163e\U000116ac\U000116ae-\U000116af\U000116b6\U00011720-\U00011721\U00011726\U0001182c-\U0001182e\U00011838\U00011a39\U00011a57-\U00011a58\U00011a97\U00011c2f\U00011c3e\U00011ca9\U00011cb1\U00011cb4\U00011d8a-\U00011d8e\U00011d93-\U00011d94\U00011d96\U00011ef5-\U00011ef6\U00016f51-\U00016f7e\U0001d165-\U0001d166\U0001d16d-\U0001d172' +Mc = "\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf2-\u1cf3\u1cf7\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9bd-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaa7d\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec\U00011000\U00011002\U00011082\U000110b0-\U000110b2\U000110b7-\U000110b8\U0001112c\U00011145-\U00011146\U00011182\U000111b3-\U000111b5\U000111bf-\U000111c0\U0001122c-\U0001122e\U00011232-\U00011233\U00011235\U000112e0-\U000112e2\U00011302-\U00011303\U0001133e-\U0001133f\U00011341-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357\U00011362-\U00011363\U00011435-\U00011437\U00011440-\U00011441\U00011445\U000114b0-\U000114b2\U000114b9\U000114bb-\U000114be\U000114c1\U000115af-\U000115b1\U000115b8-\U000115bb\U000115be\U00011630-\U00011632\U0001163b-\U0001163c\U0001163e\U000116ac\U000116ae-\U000116af\U000116b6\U00011720-\U00011721\U00011726\U0001182c-\U0001182e\U00011838\U00011a39\U00011a57-\U00011a58\U00011a97\U00011c2f\U00011c3e\U00011ca9\U00011cb1\U00011cb4\U00011d8a-\U00011d8e\U00011d93-\U00011d94\U00011d96\U00011ef5-\U00011ef6\U00016f51-\U00016f7e\U0001d165-\U0001d166\U0001d16d-\U0001d172" -Me = '\u0488-\u0489\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672' +Me = "\u0488-\u0489\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672" -Mn = '\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c04\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010f46-\U00010f50\U00011001\U00011038-\U00011046\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U0001122f-\U00011231\U00011234\U00011236-\U00011237\U0001123e\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b3-\U000114b8\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b5\U000116b7\U0001171d-\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011ef3-\U00011ef4\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f8f-\U00016f92\U0001bc9d-\U0001bc9e\U0001d167-\U0001d169\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef' +Mn = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c04\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010f46-\U00010f50\U00011001\U00011038-\U00011046\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U0001122f-\U00011231\U00011234\U00011236-\U00011237\U0001123e\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b3-\U000114b8\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b5\U000116b7\U0001171d-\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011ef3-\U00011ef4\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f8f-\U00016f92\U0001bc9d-\U0001bc9e\U0001d167-\U0001d169\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef" -Nd = '0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U000104a0-\U000104a9\U00010d30-\U00010d39\U00011066-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U00011730-\U00011739\U000118e0-\U000118e9\U00011c50-\U00011c59\U00011d50-\U00011d59\U00011da0-\U00011da9\U00016a60-\U00016a69\U00016b50-\U00016b59\U0001d7ce-\U0001d7ff\U0001e950-\U0001e959' +Nd = "0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U000104a0-\U000104a9\U00010d30-\U00010d39\U00011066-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U00011730-\U00011739\U000118e0-\U000118e9\U00011c50-\U00011c59\U00011d50-\U00011d59\U00011da0-\U00011da9\U00016a60-\U00016a69\U00016b50-\U00016b59\U0001d7ce-\U0001d7ff\U0001e950-\U0001e959" -Nl = '\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef\U00010140-\U00010174\U00010341\U0001034a\U000103d1-\U000103d5\U00012400-\U0001246e' +Nl = "\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef\U00010140-\U00010174\U00010341\U0001034a\U000103d1-\U000103d5\U00012400-\U0001246e" -No = '\xb2-\xb3\xb9\xbc-\xbe\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835\U00010107-\U00010133\U00010175-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00011052-\U00011065\U000111e1-\U000111f4\U0001173a-\U0001173b\U000118ea-\U000118f2\U00011c5a-\U00011c6c\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001e8c7-\U0001e8cf\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001f100-\U0001f10c' +No = "\xb2-\xb3\xb9\xbc-\xbe\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835\U00010107-\U00010133\U00010175-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00011052-\U00011065\U000111e1-\U000111f4\U0001173a-\U0001173b\U000118ea-\U000118f2\U00011c5a-\U00011c6c\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001e8c7-\U0001e8cf\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001f100-\U0001f10c" -Pc = '_\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f' +Pc = "_\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f" -Pd = '\\-\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a-\u2e3b\u2e40\u301c\u3030\u30a0\ufe31-\ufe32\ufe58\ufe63\uff0d' +Pd = "\\-\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a-\u2e3b\u2e40\u301c\u3030\u30a0\ufe31-\ufe32\ufe58\ufe63\uff0d" -Pe = ')\\]}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u2309\u230b\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e-\u301f\ufd3e\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63' +Pe = ")\\]}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u2309\u230b\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e-\u301f\ufd3e\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63" -Pf = '\xbb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21' +Pf = "\xbb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21" -Pi = '\xab\u2018\u201b-\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20' +Pi = "\xab\u2018\u201b-\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20" Po = "!-#%-'*,.-/:-;?-@\\\\\xa1\xa7\xb6-\xb7\xbf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b\u061e-\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964-\u0965\u0970\u09fd\u0a76\u0af0\u0c84\u0df4\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166d-\u166e\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3\u2016-\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70\u2e00-\u2e01\u2e06-\u2e08\u2e0b\u2e0e-\u2e16\u2e18-\u2e19\u2e1b\u2e1e-\u2e1f\u2e2a-\u2e2e\u2e30-\u2e39\u2e3c-\u2e3f\u2e41\u2e43-\u2e4e\u3001-\u3003\u303d\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e-\ua92f\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45-\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3c\uff61\uff64-\uff65\U00010100-\U00010102\U0001039f\U000103d0\U0001056f\U00010857\U0001091f\U0001093f\U00010a50-\U00010a58\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010f55-\U00010f59\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9\U0001144b-\U0001144f\U0001145b\U0001145d\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U0001173c-\U0001173e\U0001183b\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00012470-\U00012474\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b3b\U00016b44\U00016e97-\U00016e9a\U0001bc9f\U0001da87-\U0001da8b\U0001e95e-\U0001e95f" -Ps = '(\\[{\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2308\u230a\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u2e42\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3f\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62' +Ps = "(\\[{\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2308\u230a\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u2e42\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3f\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62" -Sc = '$\xa2-\xa5\u058f\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20bf\ua838\ufdfc\ufe69\uff04\uffe0-\uffe1\uffe5-\uffe6\U0001ecb0' +Sc = "$\xa2-\xa5\u058f\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20bf\ua838\ufdfc\ufe69\uff04\uffe0-\uffe1\uffe5-\uffe6\U0001ecb0" -Sk = '\\^`\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384-\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u309b-\u309c\ua700-\ua716\ua720-\ua721\ua789-\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3\U0001f3fb-\U0001f3ff' +Sk = "\\^`\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384-\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u309b-\u309c\ua700-\ua716\ua720-\ua721\ua789-\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3\U0001f3fb-\U0001f3ff" -Sm = '+<->|~\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a-\u219b\u21a0\u21a3\u21a6\u21ae\u21ce-\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320-\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3\U0001eef0-\U0001eef1' +Sm = "+<->|~\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a-\u219b\u21a0\u21a3\u21a6\u21ae\u21ce-\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320-\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3\U0001eef0-\U0001eef1" -So = '\xa6\xa9\xae\xb0\u0482\u058d-\u058e\u060e-\u060f\u06de\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u214a\u214c-\u214d\u214f\u218a-\u218b\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0-\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45-\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bc8\u2bca-\u2bfe\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836-\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019b\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8\U0001173f\U00016b3c-\U00016b3f\U00016b45\U0001bc9c\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1e8\U0001d200-\U0001d241\U0001d245\U0001d300-\U0001d356\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001ecac\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f110-\U0001f16b\U0001f170-\U0001f1ac\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f3fa\U0001f400-\U0001f6d4\U0001f6e0-\U0001f6ec\U0001f6f0-\U0001f6f9\U0001f700-\U0001f773\U0001f780-\U0001f7d8\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f900-\U0001f90b\U0001f910-\U0001f93e\U0001f940-\U0001f970\U0001f973-\U0001f976\U0001f97a\U0001f97c-\U0001f9a2\U0001f9b0-\U0001f9b9\U0001f9c0-\U0001f9c2\U0001f9d0-\U0001f9ff\U0001fa60-\U0001fa6d' +So = "\xa6\xa9\xae\xb0\u0482\u058d-\u058e\u060e-\u060f\u06de\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u214a\u214c-\u214d\u214f\u218a-\u218b\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0-\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45-\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bc8\u2bca-\u2bfe\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836-\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019b\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8\U0001173f\U00016b3c-\U00016b3f\U00016b45\U0001bc9c\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1e8\U0001d200-\U0001d241\U0001d245\U0001d300-\U0001d356\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001ecac\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f110-\U0001f16b\U0001f170-\U0001f1ac\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f3fa\U0001f400-\U0001f6d4\U0001f6e0-\U0001f6ec\U0001f6f0-\U0001f6f9\U0001f700-\U0001f773\U0001f780-\U0001f7d8\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f900-\U0001f90b\U0001f910-\U0001f93e\U0001f940-\U0001f970\U0001f973-\U0001f976\U0001f97a\U0001f97c-\U0001f9a2\U0001f9b0-\U0001f9b9\U0001f9c0-\U0001f9c2\U0001f9d0-\U0001f9ff\U0001fa60-\U0001fa6d" -Zl = '\u2028' +Zl = "\u2028" -Zp = '\u2029' +Zp = "\u2029" -Zs = ' \xa0\u1680\u2000-\u200a\u202f\u205f\u3000' +Zs = " \xa0\u1680\u2000-\u200a\u202f\u205f\u3000" -xid_continue = '0-9A-Z_a-z\xaa\xb5\xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cf9\u1d00-\u1df9\u1dfb-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U000101fd\U00010280-\U0001029c\U000102a0-\U000102d0\U000102e0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U0001037a\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104a0-\U000104a9\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a38-\U00010a3a\U00010a3f\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae6\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d27\U00010d30-\U00010d39\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f50\U00011000-\U00011046\U00011066-\U0001106f\U0001107f-\U000110ba\U000110d0-\U000110e8\U000110f0-\U000110f9\U00011100-\U00011134\U00011136-\U0001113f\U00011144-\U00011146\U00011150-\U00011173\U00011176\U00011180-\U000111c4\U000111c9-\U000111cc\U000111d0-\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U00011237\U0001123e\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112ea\U000112f0-\U000112f9\U00011300-\U00011303\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133b-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011350\U00011357\U0001135d-\U00011363\U00011366-\U0001136c\U00011370-\U00011374\U00011400-\U0001144a\U00011450-\U00011459\U0001145e\U00011480-\U000114c5\U000114c7\U000114d0-\U000114d9\U00011580-\U000115b5\U000115b8-\U000115c0\U000115d8-\U000115dd\U00011600-\U00011640\U00011644\U00011650-\U00011659\U00011680-\U000116b7\U000116c0-\U000116c9\U00011700-\U0001171a\U0001171d-\U0001172b\U00011730-\U00011739\U00011800-\U0001183a\U000118a0-\U000118e9\U000118ff\U00011a00-\U00011a3e\U00011a47\U00011a50-\U00011a83\U00011a86-\U00011a99\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c36\U00011c38-\U00011c40\U00011c50-\U00011c59\U00011c72-\U00011c8f\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d47\U00011d50-\U00011d59\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d98\U00011da0-\U00011da9\U00011ee0-\U00011ef6\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016a60-\U00016a69\U00016ad0-\U00016aed\U00016af0-\U00016af4\U00016b00-\U00016b36\U00016b40-\U00016b43\U00016b50-\U00016b59\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50-\U00016f7e\U00016f8f-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001bc9d-\U0001bc9e\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001d7ce-\U0001d7ff\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e800-\U0001e8c4\U0001e8d0-\U0001e8d6\U0001e900-\U0001e94a\U0001e950-\U0001e959\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d\U000e0100-\U000e01ef' +xid_continue = "0-9A-Z_a-z\xaa\xb5\xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cf9\u1d00-\u1df9\u1dfb-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U000101fd\U00010280-\U0001029c\U000102a0-\U000102d0\U000102e0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U0001037a\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104a0-\U000104a9\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a38-\U00010a3a\U00010a3f\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae6\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d27\U00010d30-\U00010d39\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f50\U00011000-\U00011046\U00011066-\U0001106f\U0001107f-\U000110ba\U000110d0-\U000110e8\U000110f0-\U000110f9\U00011100-\U00011134\U00011136-\U0001113f\U00011144-\U00011146\U00011150-\U00011173\U00011176\U00011180-\U000111c4\U000111c9-\U000111cc\U000111d0-\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U00011237\U0001123e\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112ea\U000112f0-\U000112f9\U00011300-\U00011303\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133b-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011350\U00011357\U0001135d-\U00011363\U00011366-\U0001136c\U00011370-\U00011374\U00011400-\U0001144a\U00011450-\U00011459\U0001145e\U00011480-\U000114c5\U000114c7\U000114d0-\U000114d9\U00011580-\U000115b5\U000115b8-\U000115c0\U000115d8-\U000115dd\U00011600-\U00011640\U00011644\U00011650-\U00011659\U00011680-\U000116b7\U000116c0-\U000116c9\U00011700-\U0001171a\U0001171d-\U0001172b\U00011730-\U00011739\U00011800-\U0001183a\U000118a0-\U000118e9\U000118ff\U00011a00-\U00011a3e\U00011a47\U00011a50-\U00011a83\U00011a86-\U00011a99\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c36\U00011c38-\U00011c40\U00011c50-\U00011c59\U00011c72-\U00011c8f\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d47\U00011d50-\U00011d59\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d98\U00011da0-\U00011da9\U00011ee0-\U00011ef6\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016a60-\U00016a69\U00016ad0-\U00016aed\U00016af0-\U00016af4\U00016b00-\U00016b36\U00016b40-\U00016b43\U00016b50-\U00016b59\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50-\U00016f7e\U00016f8f-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001bc9d-\U0001bc9e\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001d7ce-\U0001d7ff\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e800-\U0001e8c4\U0001e8d0-\U0001e8d6\U0001e900-\U0001e94a\U0001e950-\U0001e959\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d\U000e0100-\U000e01ef" -xid_start = 'A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118a0-\U000118df\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b40-\U00016b43\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50\U00016f93-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001e800-\U0001e8c4\U0001e900-\U0001e943\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d' +xid_start = "A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118a0-\U000118df\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b40-\U00016b43\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50\U00016f93-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001e800-\U0001e8c4\U0001e900-\U0001e943\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d" -cats = ['Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu', 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf', 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs'] +cats = [ + "Cc", + "Cf", + "Cn", + "Co", + "Cs", + "Ll", + "Lm", + "Lo", + "Lt", + "Lu", + "Mc", + "Me", + "Mn", + "Nd", + "Nl", + "No", + "Pc", + "Pd", + "Pe", + "Pf", + "Pi", + "Po", + "Ps", + "Sc", + "Sk", + "Sm", + "So", + "Zl", + "Zp", + "Zs", +] # Generated from unidata 11.0.0 + def combine(*args): - return ''.join(globals()[cat] for cat in args) + return "".join(globals()[cat] for cat in args) def allexcept(*args): newcats = cats[:] for arg in args: newcats.remove(arg) - return ''.join(globals()[cat] for cat in newcats) + return "".join(globals()[cat] for cat in newcats) def _handle_runs(char_list): # pragma: no cover buf = [] for c in char_list: if len(c) == 1: - if buf and buf[-1][1] == chr(ord(c)-1): + if buf and buf[-1][1] == chr(ord(c) - 1): buf[-1] = (buf[-1][0], c) else: buf.append((c, c)) @@ -104,50 +136,50 @@ def _handle_runs(char_list): # pragma: no cover if a == b: yield a else: - yield f'{a}-{b}' + yield f"{a}-{b}" -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import unicodedata - categories = {'xid_start': [], 'xid_continue': []} + categories = {"xid_start": [], "xid_continue": []} - with open(__file__, encoding='utf-8') as fp: + with open(__file__, encoding="utf-8") as fp: content = fp.read() - header = content[:content.find('Cc =')] - footer = content[content.find("def combine("):] + header = content[: content.find("Cc =")] + footer = content[content.find("def combine(") :] for code in range(0x110000): c = chr(code) cat = unicodedata.category(c) - if ord(c) == 0xdc00: + if ord(c) == 0xDC00: # Hack to avoid combining this combining with the preceding high # surrogate, 0xdbff, when doing a repr. - c = '\\' + c - elif ord(c) in (0x2d, 0x5b, 0x5c, 0x5d, 0x5e): + c = "\\" + c + elif ord(c) in (0x2D, 0x5B, 0x5C, 0x5D, 0x5E): # Escape regex metachars. - c = '\\' + c + c = "\\" + c categories.setdefault(cat, []).append(c) # XID_START and XID_CONTINUE are special categories used for matching # identifiers in Python 3. if c.isidentifier(): - categories['xid_start'].append(c) - if ('a' + c).isidentifier(): - categories['xid_continue'].append(c) + categories["xid_start"].append(c) + if ("a" + c).isidentifier(): + categories["xid_continue"].append(c) - with open(__file__, 'w', encoding='utf-8') as fp: + with open(__file__, "w", encoding="utf-8") as fp: fp.write(header) for cat in sorted(categories): - val = ''.join(_handle_runs(categories[cat])) - fp.write(f'{cat} = {val!a}\n\n') + val = "".join(_handle_runs(categories[cat])) + fp.write(f"{cat} = {val!a}\n\n") cats = sorted(categories) - cats.remove('xid_start') - cats.remove('xid_continue') - fp.write(f'cats = {cats!r}\n\n') + cats.remove("xid_start") + cats.remove("xid_continue") + fp.write(f"cats = {cats!r}\n\n") - fp.write(f'# Generated from unidata {unicodedata.unidata_version}\n\n') + fp.write(f"# Generated from unidata {unicodedata.unidata_version}\n\n") fp.write(footer) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py index 71c5710..1c8b8cb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py @@ -1,19 +1,19 @@ """ - pygments.util - ~~~~~~~~~~~~~ +pygments.util +~~~~~~~~~~~~~ - Utility functions. +Utility functions. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from io import TextIOWrapper - -split_path_re = re.compile(r'[/\\ ]') -doctype_lookup_re = re.compile(r''' +split_path_re = re.compile(r"[/\\ ]") +doctype_lookup_re = re.compile( + r""" ]*> -''', re.DOTALL | re.MULTILINE | re.VERBOSE) -tag_re = re.compile(r'<(.+?)(\s.*?)?>.*?', - re.IGNORECASE | re.DOTALL | re.MULTILINE) -xml_decl_re = re.compile(r'\s*<\?xml[^>]*\?>', re.I) +""", + re.DOTALL | re.MULTILINE | re.VERBOSE, +) +tag_re = re.compile( + r"<(.+?)(\s.*?)?>.*?", re.IGNORECASE | re.DOTALL | re.MULTILINE +) +xml_decl_re = re.compile(r"\s*<\?xml[^>]*\?>", re.I) class ClassNotFound(ValueError): @@ -37,6 +40,7 @@ class OptionError(Exception): the type or value of the argument is not correct. """ + def get_choice_opt(options, optname, allowed, default=None, normcase=False): """ If the key `optname` from the dictionary is not in the sequence @@ -46,7 +50,11 @@ def get_choice_opt(options, optname, allowed, default=None, normcase=False): if normcase: string = string.lower() if string not in allowed: - raise OptionError('Value for option {} must be one of {}'.format(optname, ', '.join(map(str, allowed)))) + raise OptionError( + "Value for option {} must be one of {}".format( + optname, ", ".join(map(str, allowed)) + ) + ) return string @@ -68,15 +76,19 @@ def get_bool_opt(options, optname, default=None): elif isinstance(string, int): return bool(string) elif not isinstance(string, str): - raise OptionError(f'Invalid type {string!r} for option {optname}; use ' - '1/0, yes/no, true/false, on/off') - elif string.lower() in ('1', 'yes', 'true', 'on'): + raise OptionError( + f"Invalid type {string!r} for option {optname}; use " + "1/0, yes/no, true/false, on/off" + ) + elif string.lower() in ("1", "yes", "true", "on"): return True - elif string.lower() in ('0', 'no', 'false', 'off'): + elif string.lower() in ("0", "no", "false", "off"): return False else: - raise OptionError(f'Invalid value {string!r} for option {optname}; use ' - '1/0, yes/no, true/false, on/off') + raise OptionError( + f"Invalid value {string!r} for option {optname}; use " + "1/0, yes/no, true/false, on/off" + ) def get_int_opt(options, optname, default=None): @@ -85,11 +97,16 @@ def get_int_opt(options, optname, default=None): try: return int(string) except TypeError: - raise OptionError(f'Invalid type {string!r} for option {optname}; you ' - 'must give an integer value') + raise OptionError( + f"Invalid type {string!r} for option {optname}; you " + "must give an integer value" + ) except ValueError: - raise OptionError(f'Invalid value {string!r} for option {optname}; you ' - 'must give an integer value') + raise OptionError( + f"Invalid value {string!r} for option {optname}; you " + "must give an integer value" + ) + def get_list_opt(options, optname, default=None): """ @@ -103,24 +120,26 @@ def get_list_opt(options, optname, default=None): elif isinstance(val, (list, tuple)): return list(val) else: - raise OptionError(f'Invalid type {val!r} for option {optname}; you ' - 'must give a list value') + raise OptionError( + f"Invalid type {val!r} for option {optname}; you " "must give a list value" + ) def docstring_headline(obj): if not obj.__doc__: - return '' + return "" res = [] for line in obj.__doc__.strip().splitlines(): if line.strip(): res.append(" " + line.strip()) else: break - return ''.join(res).lstrip() + return "".join(res).lstrip() def make_analysator(f): """Return a static text analyser function that returns float values.""" + def text_analyse(text): try: rv = f(text) @@ -132,6 +151,7 @@ def make_analysator(f): return min(1.0, max(0.0, float(rv))) except (ValueError, TypeError): return 0.0 + text_analyse.__doc__ = f.__doc__ return staticmethod(text_analyse) @@ -164,18 +184,21 @@ def shebang_matches(text, regex): Note that this method automatically searches the whole string (eg: the regular expression is wrapped in ``'^$'``) """ - index = text.find('\n') + index = text.find("\n") if index >= 0: first_line = text[:index].lower() else: first_line = text.lower() - if first_line.startswith('#!'): + if first_line.startswith("#!"): try: - found = [x for x in split_path_re.split(first_line[2:].strip()) - if x and not x.startswith('-')][-1] + found = [ + x + for x in split_path_re.split(first_line[2:].strip()) + if x and not x.startswith("-") + ][-1] except IndexError: return False - regex = re.compile(rf'^{regex}(\.(exe|cmd|bat|bin))?$', re.IGNORECASE) + regex = re.compile(rf"^{regex}(\.(exe|cmd|bat|bin))?$", re.IGNORECASE) if regex.search(found) is not None: return True return False @@ -196,7 +219,7 @@ def doctype_matches(text, regex): def html_doctype_matches(text): """Check if the file looks like it has a html doctype.""" - return doctype_matches(text, r'html') + return doctype_matches(text, r"html") _looks_like_xml_cache = {} @@ -224,26 +247,26 @@ def surrogatepair(c): """ # From example D28 of: # http://www.unicode.org/book/ch03.pdf - return (0xd7c0 + (c >> 10), (0xdc00 + (c & 0x3ff))) + return (0xD7C0 + (c >> 10), (0xDC00 + (c & 0x3FF))) def format_lines(var_name, seq, raw=False, indent_level=0): """Formats a sequence of strings for output.""" lines = [] - base_indent = ' ' * indent_level * 4 - inner_indent = ' ' * (indent_level + 1) * 4 - lines.append(base_indent + var_name + ' = (') + base_indent = " " * indent_level * 4 + inner_indent = " " * (indent_level + 1) * 4 + lines.append(base_indent + var_name + " = (") if raw: # These should be preformatted reprs of, say, tuples. for i in seq: - lines.append(inner_indent + i + ',') + lines.append(inner_indent + i + ",") else: for i in seq: # Force use of single quotes r = repr(i + '"') - lines.append(inner_indent + r[:-2] + r[-1] + ',') - lines.append(base_indent + ')') - return '\n'.join(lines) + lines.append(inner_indent + r[:-2] + r[-1] + ",") + lines.append(base_indent + ")") + return "\n".join(lines) def duplicates_removed(it, already_seen=()): @@ -268,6 +291,7 @@ class Future: Handled specially in RegexLexerMeta, to support regex string construction at first use. """ + def get(self): raise NotImplementedError @@ -280,17 +304,18 @@ def guess_decode(text): Fall back to latin-1, which always works. """ try: - text = text.decode('utf-8') - return text, 'utf-8' + text = text.decode("utf-8") + return text, "utf-8" except UnicodeDecodeError: try: import locale + prefencoding = locale.getpreferredencoding() text = text.decode() return text, prefencoding except (UnicodeDecodeError, LookupError): - text = text.decode('latin1') - return text, 'latin1' + text = text.decode("latin1") + return text, "latin1" def guess_decode_from_terminal(text, term): @@ -300,7 +325,7 @@ def guess_decode_from_terminal(text, term): Then try UTF-8. Then try the preferred locale encoding. Fall back to latin-1, which always works. """ - if getattr(term, 'encoding', None): + if getattr(term, "encoding", None): try: text = text.decode(term.encoding) except UnicodeDecodeError: @@ -312,9 +337,10 @@ def guess_decode_from_terminal(text, term): def terminal_encoding(term): """Return our best guess of encoding for the given *term*.""" - if getattr(term, 'encoding', None): + if getattr(term, "encoding", None): return term.encoding import locale + return locale.getpreferredencoding() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py index 746b89f..b3ff56e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py @@ -1,5 +1,4 @@ -"""Wrappers to call pyproject.toml-based build backend hooks. -""" +"""Wrappers to call pyproject.toml-based build backend hooks.""" from typing import TYPE_CHECKING diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py index d1e9d7b..d6ba392 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py @@ -21,8 +21,7 @@ if TYPE_CHECKING: cmd: Sequence[str], cwd: Optional[str] = None, extra_environ: Optional[Mapping[str, str]] = None, - ) -> None: - ... + ) -> None: ... def write_json(obj: Mapping[str, Any], path: str, **kwargs) -> None: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py index d689bab..144d269 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py @@ -12,6 +12,7 @@ Results: - control_dir/output.json - {"return_val": ...} """ + import json import os import os.path diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py index 04230fc..a4218cf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py @@ -115,6 +115,7 @@ try: # Note: This logic prevents upgrading cryptography on Windows, if imported # as part of pip. from pip._internal.utils.compat import WINDOWS + if not WINDOWS: raise ImportError("pip internals: don't import cryptography on Windows") try: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py index f2cf635..8c7c051 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py @@ -5,6 +5,7 @@ requests._internal_utils Provides utility functions that are consumed internally by Requests which depend on extremely few external helpers (such as compat) """ + import re from .compat import builtin_str diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py index 2743144..c595348 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py @@ -11,6 +11,7 @@ If you are packaging Requests, e.g., for a Linux distribution or a managed environment, you can change the definition of where() to return a separately packaged CA bundle. """ + from pip._vendor.certifi import where if __name__ == "__main__": diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py index 7f3660f..d845048 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py @@ -4,6 +4,7 @@ requests.exceptions This module contains the set of Requests' exceptions. """ + from pip._vendor.urllib3.exceptions import HTTPError as BaseHTTPError from .compat import JSONDecodeError as CompatJSONDecodeError diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py index d181ba2..5976bc7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py @@ -9,6 +9,7 @@ Available hooks: ``response``: The response generated from a Request. """ + HOOKS = ["response"] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py index 22de95c..e3542dc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py @@ -163,9 +163,11 @@ class RequestEncodingMixin: new_fields.append( ( - field.decode("utf-8") - if isinstance(field, bytes) - else field, + ( + field.decode("utf-8") + if isinstance(field, bytes) + else field + ), v.encode("utf-8") if isinstance(v, str) else v, ) ) @@ -552,7 +554,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): else: # Multi-part file uploads. if files: - (body, content_type) = self._encode_files(files, data) + body, content_type = self._encode_files(files, data) else: if data: body = self._encode_params(data) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py index 200c382..e22ab06 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py @@ -11,9 +11,11 @@ for package in ("urllib3", "idna"): # This traversal is apparently necessary such that the identities are # preserved (requests.packages.urllib3.* is urllib3.*) for mod in list(sys.modules): - if mod == vendored_package or mod.startswith(vendored_package + '.'): - unprefixed_mod = mod[len("pip._vendor."):] - sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] + if mod == vendored_package or mod.startswith(vendored_package + "."): + unprefixed_mod = mod[len("pip._vendor.") :] + sys.modules["pip._vendor.requests.packages." + unprefixed_mod] = ( + sys.modules[mod] + ) if chardet is not None: target = chardet.__name__ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py index 731550d..7d34b29 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py @@ -5,6 +5,7 @@ requests.sessions This module provides a Session object to manage and persist settings across requests (cookies, auth, proxies). """ + import os import sys import time diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py index a583f1e..b731111 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py @@ -4,7 +4,13 @@ from time import process_time from pip._vendor.rich import box from pip._vendor.rich.color import Color -from pip._vendor.rich.console import Console, ConsoleOptions, Group, RenderableType, RenderResult +from pip._vendor.rich.console import ( + Console, + ConsoleOptions, + Group, + RenderableType, + RenderResult, +) from pip._vendor.rich.markdown import Markdown from pip._vendor.rich.measure import Measurement from pip._vendor.rich.pretty import Pretty diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py index bb2cafa..b6999bf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py @@ -3,7 +3,6 @@ import re from ._emoji_codes import EMOJI - _ReStringMatch = Match[str] # regex match object _ReSubCallable = Callable[[_ReStringMatch], str] # Callable invoked by re.sub _EmojiSubMethod = Callable[[_ReSubCallable, str], str] # Sub method of a compiled re @@ -16,7 +15,7 @@ def _emoji_replace( ) -> str: """Replace emoji code in text.""" get_emoji = EMOJI.__getitem__ - variants = {"text": "\uFE0E", "emoji": "\uFE0F"} + variants = {"text": "\ufe0e", "emoji": "\ufe0f"} get_variant = variants.get default_variant_code = variants.get(default_variant, "") if default_variant else "" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py index 3c748d3..5741f0d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py @@ -1,6 +1,5 @@ from .palette import Palette - # Taken from https://en.wikipedia.org/wiki/ANSI_escape_code (Windows 10 column) WINDOWS_PALETTE = Palette( [ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py index a854622..00fae60 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py @@ -167,8 +167,15 @@ def chop_cells( if __name__ == "__main__": # pragma: no cover print(get_character_cell_size("😽")) - for line in chop_cells("""这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。""", 8): + for line in chop_cells( + """这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。""", 8 + ): print(line) for n in range(80, 1, -1): - print(set_cell_size("""这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。""", n) + "|") + print( + set_cell_size( + """这是对亚洲语言支持的测试。面对模棱两可的想法,拒绝猜测的诱惑。""", n + ) + + "|" + ) print("x" * n) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py index 669a3a7..8a111ec 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py @@ -148,9 +148,11 @@ class Columns(JupyterMixin): ] if self.equal: _renderables = [ - None - if renderable is None - else Constrain(renderable, renderable_widths[0]) + ( + None + if renderable is None + else Constrain(renderable, renderable_widths[0]) + ) for renderable in _renderables ] if self.align: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py index db2ba55..589fc9b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py @@ -2064,8 +2064,12 @@ class Console: ) if use_legacy_windows_render: - from pip._vendor.rich._win32_console import LegacyWindowsTerm - from pip._vendor.rich._windows_renderer import legacy_windows_render + from pip._vendor.rich._win32_console import ( + LegacyWindowsTerm, + ) + from pip._vendor.rich._windows_renderer import ( + legacy_windows_render, + ) buffer = self._buffer[:] if self.no_color and self._color_system: @@ -2508,12 +2512,9 @@ class Console: x += cell_len(text) line_offsets = [line_no * line_height + 1.5 for line_no in range(y)] - lines = "\n".join( - f""" + lines = "\n".join(f""" {make_tag("rect", x=0, y=offset, width=char_width * width, height=line_height + 0.25)} - """ - for line_no, offset in enumerate(line_offsets) - ) + """ for line_no, offset in enumerate(line_offsets)) styles = "\n".join( f".{unique_id}-r{rule_no} {{ {css} }}" for css, rule_no in classes.items() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py index 901ff8b..8641ee3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py @@ -76,12 +76,10 @@ class Lines: return iter(self._lines) @overload - def __getitem__(self, index: int) -> "Text": - ... + def __getitem__(self, index: int) -> "Text": ... @overload - def __getitem__(self, index: slice) -> List["Text"]: - ... + def __getitem__(self, index: slice) -> List["Text"]: ... def __getitem__(self, index: Union[slice, int]) -> Union["Text", List["Text"]]: return self._lines[index] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py index 4a667ed..ce78d58 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py @@ -7,7 +7,6 @@ from .style import Style from ._emoji_codes import EMOJI from ._emoji_replace import _emoji_replace - if TYPE_CHECKING: from .console import Console, ConsoleOptions, RenderResult @@ -22,7 +21,7 @@ class NoEmoji(Exception): class Emoji(JupyterMixin): __slots__ = ["name", "style", "_char", "variant"] - VARIANTS = {"text": "\uFE0E", "emoji": "\uFE0F"} + VARIANTS = {"text": "\ufe0e", "emoji": "\ufe0f"} def __init__( self, @@ -82,7 +81,7 @@ if __name__ == "__main__": # pragma: no cover console = Console(record=True) columns = Columns( - (f":{name}: {name}" for name in sorted(EMOJI.keys()) if "\u200D" not in name), + (f":{name}: {name}" for name in sorted(EMOJI.keys()) if "\u200d" not in name), column_first=True, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py index a6f1a31..fdc825f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py @@ -335,7 +335,7 @@ class Layout: with self._lock: layout = self[layout_name] region, _lines = self._render_map[layout] - (x, y, width, height) = region + x, y, width, height = region lines = console.render_lines( layout, console.options.update_dimensions(width, height) ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py index f617187..83403c6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py @@ -200,9 +200,11 @@ def render( if handler_name: meta_params = ( handler_name, - meta_params - if isinstance(meta_params, tuple) - else (meta_params,), + ( + meta_params + if isinstance(meta_params, tuple) + else (meta_params,) + ), ) else: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py index fccb70d..932596c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py @@ -89,8 +89,7 @@ class PromptBase(Generic[PromptType]): show_choices: bool = True, default: DefaultType, stream: Optional[TextIO] = None, - ) -> Union[DefaultType, PromptType]: - ... + ) -> Union[DefaultType, PromptType]: ... @classmethod @overload @@ -105,8 +104,7 @@ class PromptBase(Generic[PromptType]): show_default: bool = True, show_choices: bool = True, stream: Optional[TextIO] = None, - ) -> PromptType: - ... + ) -> PromptType: ... @classmethod def ask( @@ -268,14 +266,12 @@ class PromptBase(Generic[PromptType]): """Hook to display something before the prompt.""" @overload - def __call__(self, *, stream: Optional[TextIO] = None) -> PromptType: - ... + def __call__(self, *, stream: Optional[TextIO] = None) -> PromptType: ... @overload def __call__( self, *, default: DefaultType, stream: Optional[TextIO] = None - ) -> Union[PromptType, DefaultType]: - ... + ) -> Union[PromptType, DefaultType]: ... def __call__(self, *, default: Any = ..., stream: Optional[TextIO] = None) -> Any: """Run the prompt loop. diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py index 10efc42..ce23119 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py @@ -25,13 +25,11 @@ class ReprError(Exception): @overload -def auto(cls: Optional[Type[T]]) -> Type[T]: - ... +def auto(cls: Optional[Type[T]]) -> Type[T]: ... @overload -def auto(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: - ... +def auto(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: ... def auto( @@ -102,13 +100,11 @@ def auto( @overload -def rich_repr(cls: Optional[Type[T]]) -> Type[T]: - ... +def rich_repr(cls: Optional[Type[T]]) -> Type[T]: ... @overload -def rich_repr(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: - ... +def rich_repr(*, angular: bool = False) -> Callable[[Type[T]], Type[T]]: ... def rich_repr( diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py index 7f416e1..b61184c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py @@ -4,7 +4,6 @@ from .segment import Segment from .style import StyleType from ._loop import loop_last - if TYPE_CHECKING: from .console import ( Console, diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py index bf6db10..4d3eb70 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py @@ -1,5 +1,4 @@ from .default_styles import DEFAULT_STYLES from .theme import Theme - DEFAULT = Theme(DEFAULT_STYLES) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py index 27c5cf7..2118caf 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py @@ -227,14 +227,12 @@ class Segment(NamedTuple): """ syntax = Syntax(code, "python", theme="monokai", line_numbers=True) - markdown = Markdown( - """\ + markdown = Markdown("""\ ### example.md > Hello, World! > > Markdown _all_ the things -""" - ) +""") root = Tree("🌲 [b green]Rich Tree", highlight=True, hide_root=True) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py index b1acd3f..fb4e5b8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py @@ -21,11 +21,11 @@ MAX_LINE_LENGTH = 100 COMPACT_ESCAPES = MappingProxyType( { "\u0008": "\\b", # backspace - "\u000A": "\\n", # linefeed - "\u000C": "\\f", # form feed - "\u000D": "\\r", # carriage return + "\u000a": "\\n", # linefeed + "\u000c": "\\f", # form feed + "\u000d": "\\r", # carriage return "\u0022": '\\"', # quote - "\u005C": "\\\\", # backslash + "\u005c": "\\\\", # backslash } ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py index c6fa382..3af353f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py @@ -1,6 +1,7 @@ """ Python HTTP library with thread-safe connection pooling, file post support, user friendly, and more """ + from __future__ import absolute_import # Set default logging handler to avoid "No handler found" warnings. diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py index 264d564..1b465c8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py @@ -29,6 +29,7 @@ license and by oscrypto's: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + from __future__ import absolute_import import platform @@ -416,7 +417,7 @@ try: CoreFoundation.CFStringRef = CFStringRef CoreFoundation.CFDictionaryRef = CFDictionaryRef -except (AttributeError): +except AttributeError: raise ImportError("Error initializing ctypes") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py index fa0b245..dce7a1f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py @@ -7,6 +7,7 @@ CoreFoundation messing about and memory management. The concerns in this module are almost entirely about trying to avoid memory leaks and providing appropriate and useful assistance to the higher-level code. """ + import base64 import ctypes import itertools @@ -138,8 +139,8 @@ def _assert_no_error(error, exception_class=None): output = _cf_string_to_unicode(cf_error_string) CoreFoundation.CFRelease(cf_error_string) - if output is None or output == u"": - output = u"OSStatus %s" % error + if output is None or output == "": + output = "OSStatus %s" % error if exception_class is None: exception_class = ssl.SSLError diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py index 4716657..a3aa3e5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py @@ -3,6 +3,7 @@ NTLM authenticating pool, contributed by erikcederstran Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10 """ + from __future__ import absolute_import import warnings diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py index 19e4aa9..424a172 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py @@ -45,6 +45,7 @@ compression in Python 2 (see `CRIME attack`_). .. _cryptography: https://cryptography.io .. _idna: https://github.com/kjd/idna """ + from __future__ import absolute_import import OpenSSL.crypto @@ -200,7 +201,7 @@ def _dnsname_to_stdlib(name): from pip._vendor import idna try: - for prefix in [u"*.", u"."]: + for prefix in ["*.", "."]: if name.startswith(prefix): name = name[len(prefix) :] return prefix.encode("ascii") + idna.encode(name) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py index 722ee4e..acf7799 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py @@ -51,6 +51,7 @@ license and by oscrypto's: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + from __future__ import absolute_import import contextlib @@ -243,7 +244,7 @@ def _read_callback(connection_id, data_buffer, data_length_pointer): if not read_count: return SecurityConst.errSSLClosedGraceful break - except (socket.error) as e: + except socket.error as e: error = e.errno if error is not None and error != errno.EAGAIN: @@ -294,7 +295,7 @@ def _write_callback(connection_id, data_buffer, data_length_pointer): # This has some needless copying here, but I'm not sure there's # much value in optimising this data path. data = data[chunk_sent:] - except (socket.error) as e: + except socket.error as e: error = e.errno if error is not None and error != errno.EAGAIN: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py index c326e80..b426440 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py @@ -38,6 +38,7 @@ with the proxy: proxy_url="socks5h://:@proxy-host" """ + from __future__ import absolute_import try: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py index 9d630f4..c5110fe 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py @@ -41,7 +41,7 @@ def format_header_param_rfc2231(name, value): value = value.decode("utf-8") if not any(ch in value for ch in '"\\\r\n'): - result = u'%s="%s"' % (name, value) + result = '%s="%s"' % (name, value) try: result.encode("ascii") except (UnicodeEncodeError, UnicodeDecodeError): @@ -64,15 +64,15 @@ def format_header_param_rfc2231(name, value): _HTML5_REPLACEMENTS = { - u"\u0022": u"%22", + "\u0022": "%22", # Replace "\" with "\\". - u"\u005C": u"\u005C\u005C", + "\u005c": "\u005c\u005c", } # All control characters from 0x00 to 0x1F *except* 0x1B. _HTML5_REPLACEMENTS.update( { - six.unichr(cc): u"%{:02X}".format(cc) + six.unichr(cc): "%{:02X}".format(cc) for cc in range(0x00, 0x1F + 1) if cc not in (0x1B,) } @@ -116,7 +116,7 @@ def format_header_param_html5(name, value): value = _replace_multiple(value, _HTML5_REPLACEMENTS) - return u'%s="%s"' % (name, value) + return '%s="%s"' % (name, value) # For backwards-compatibility. @@ -225,7 +225,7 @@ class RequestField(object): if value is not None: parts.append(self._render_part(name, value)) - return u"; ".join(parts) + return "; ".join(parts) def render_headers(self): """ @@ -236,15 +236,15 @@ class RequestField(object): sort_keys = ["Content-Disposition", "Content-Type", "Content-Location"] for sort_key in sort_keys: if self.headers.get(sort_key, False): - lines.append(u"%s: %s" % (sort_key, self.headers[sort_key])) + lines.append("%s: %s" % (sort_key, self.headers[sort_key])) for header_name, header_value in self.headers.items(): if header_name not in sort_keys: if header_value: - lines.append(u"%s: %s" % (header_name, header_value)) + lines.append("%s: %s" % (header_name, header_value)) - lines.append(u"\r\n") - return u"\r\n".join(lines) + lines.append("\r\n") + return "\r\n".join(lines) def make_multipart( self, content_disposition=None, content_type=None, content_location=None @@ -261,12 +261,12 @@ class RequestField(object): The 'Content-Location' of the request body. """ - self.headers["Content-Disposition"] = content_disposition or u"form-data" - self.headers["Content-Disposition"] += u"; ".join( + self.headers["Content-Disposition"] = content_disposition or "form-data" + self.headers["Content-Disposition"] += "; ".join( [ - u"", + "", self._render_parts( - ((u"name", self._name), (u"filename", self._filename)) + (("name", self._name), ("filename", self._filename)) ), ] ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc index 7aaf28b..354ee13 100644 Binary files a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc and b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc differ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py index b8fb215..882d582 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py @@ -6,6 +6,7 @@ backports.makefile Backports the Python 3 ``socket.makefile`` method for use with anything that wants to create a "fake" socket object. """ + import io from socket import SocketIO diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py index a2f2966..cf8f50b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py @@ -5,6 +5,7 @@ backports.weakref_finalize Backports the Python 3 ``weakref.finalize`` method. """ + from __future__ import absolute_import import itertools diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py index f099a3d..95a66c3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py @@ -163,7 +163,6 @@ class MovedAttribute(_LazyDescr): class _SixMetaPathImporter(object): - """ A meta path importer to import six.moves and its submodules. @@ -241,7 +240,6 @@ _importer = _SixMetaPathImporter(__name__) class _MovedItems(_LazyModule): - """Lazy loading of moved objects""" __path__ = [] # mark as package @@ -350,7 +348,6 @@ _importer._add_module(moves, "moves") class Module_six_moves_urllib_parse(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_parse""" @@ -397,7 +394,6 @@ _importer._add_module( class Module_six_moves_urllib_error(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_error""" @@ -420,7 +416,6 @@ _importer._add_module( class Module_six_moves_urllib_request(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_request""" @@ -475,7 +470,6 @@ _importer._add_module( class Module_six_moves_urllib_response(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_response""" @@ -499,7 +493,6 @@ _importer._add_module( class Module_six_moves_urllib_robotparser(_LazyModule): - """Lazy loading of moved objects in six.moves.urllib_robotparser""" @@ -522,7 +515,6 @@ _importer._add_module( class Module_six_moves_urllib(types.ModuleType): - """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" __path__ = [] # mark as package @@ -784,27 +776,23 @@ else: del frame elif _locs_ is None: _locs_ = _globs_ - exec ("""exec _code_ in _globs_, _locs_""") + exec("""exec _code_ in _globs_, _locs_""") - exec_( - """def reraise(tp, value, tb=None): + exec_("""def reraise(tp, value, tb=None): try: raise tp, value, tb finally: tb = None -""" - ) +""") if sys.version_info[:2] > (3,): - exec_( - """def raise_from(value, from_value): + exec_("""def raise_from(value, from_value): try: raise value from from_value finally: value = None -""" - ) +""") else: def raise_from(value, from_value): @@ -928,6 +916,7 @@ else: def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" + # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiation that replaces itself with # the actual metaclass. diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py index 8909f84..c94c231 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py @@ -493,7 +493,7 @@ class HTTPResponse(io.IOBase): * CPython < 3.10 only when `amt` does not fit 32-bit int. """ assert self._fp - c_int_max = 2 ** 31 - 1 + c_int_max = 2**31 - 1 if ( ( (amt and amt > c_int_max) @@ -509,7 +509,7 @@ class HTTPResponse(io.IOBase): # `c_int_max` equal to 2 GiB - 1 byte is the actual maximum # chunk size that does not lead to an overflow error, but # 256 MiB is a compromise. - max_chunk_amt = 2 ** 28 + max_chunk_amt = 2**28 while amt is None or amt != 0: if amt is not None: chunk_amt = min(amt, max_chunk_amt) @@ -598,7 +598,7 @@ class HTTPResponse(io.IOBase): return data - def stream(self, amt=2 ** 16, decode_content=None): + def stream(self, amt=2**16, decode_content=None): """ A generator wrapper for the read() method. A call will block until ``amt`` bytes have been read from the connection or until the diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py index 6af1138..3435bc3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py @@ -66,7 +66,7 @@ def create_connection( host.encode("idna") except UnicodeError: return six.raise_from( - LocationParseError(u"'%s', label empty or too long" % host), None + LocationParseError("'%s', label empty or too long" % host), None ) for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py index a960b2f..31474cc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py @@ -148,23 +148,23 @@ class Url(namedtuple("Url", url_attrs)): 'http://username:password@host.com:80/path?query#fragment' """ scheme, auth, host, port, path, query, fragment = self - url = u"" + url = "" # We use "is not None" we want things to happen with empty strings (or 0 port) if scheme is not None: - url += scheme + u"://" + url += scheme + "://" if auth is not None: - url += auth + u"@" + url += auth + "@" if host is not None: url += host if port is not None: - url += u":" + str(port) + url += ":" + str(port) if path is not None: url += path if query is not None: - url += u"?" + query + url += "?" + query if fragment is not None: - url += u"#" + fragment + url += "#" + fragment return url @@ -315,7 +315,7 @@ def _idna_encode(name): return idna.encode(name.lower(), strict=True, std3_rules=True) except idna.IDNAError: six.raise_from( - LocationParseError(u"Name '%s' is not a valid IDNA label" % name), None + LocationParseError("Name '%s' is not a valid IDNA label" % name), None ) return name.lower().encode("ascii") diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/_xdg.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/_xdg.py index c4aadd6..625a730 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/_xdg.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/_xdg.py @@ -20,7 +20,11 @@ class XDGMixin(PlatformDirsABC): @property def _site_data_dirs(self) -> list[str]: if xdg_dirs := os.environ.get("XDG_DATA_DIRS", "").strip(): - return [self._append_app_name_and_version(p) for p in xdg_dirs.split(os.pathsep) if p.strip()] + return [ + self._append_app_name_and_version(p) + for p in xdg_dirs.split(os.pathsep) + if p.strip() + ] return super()._site_data_dirs # type: ignore[misc] @property @@ -39,7 +43,11 @@ class XDGMixin(PlatformDirsABC): @property def _site_config_dirs(self) -> list[str]: if xdg_dirs := os.environ.get("XDG_CONFIG_DIRS", "").strip(): - return [self._append_app_name_and_version(p) for p in xdg_dirs.split(os.pathsep) if p.strip()] + return [ + self._append_app_name_and_version(p) + for p in xdg_dirs.split(os.pathsep) + if p.strip() + ] return super()._site_config_dirs # type: ignore[misc] @property @@ -122,13 +130,19 @@ class XDGMixin(PlatformDirsABC): def user_applications_dir(self) -> str: """:returns: applications directory tied to the user, from ``$XDG_DATA_HOME`` if set, else platform default""" if path := os.environ.get("XDG_DATA_HOME", "").strip(): - return os.path.join(os.path.expanduser(path), "applications") # noqa: PTH111, PTH118 + return os.path.join( + os.path.expanduser(path), "applications" + ) # noqa: PTH111, PTH118 return super().user_applications_dir @property def _site_applications_dirs(self) -> list[str]: if xdg_dirs := os.environ.get("XDG_DATA_DIRS", "").strip(): - return [os.path.join(p, "applications") for p in xdg_dirs.split(os.pathsep) if p.strip()] # noqa: PTH118 + return [ + os.path.join(p, "applications") + for p in xdg_dirs.split(os.pathsep) + if p.strip() + ] # noqa: PTH118 return super()._site_applications_dirs # type: ignore[misc] @property diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/android.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/android.py index 38243df..202d1f3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/android.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/android.py @@ -26,7 +26,9 @@ class Android(PlatformDirsABC): # noqa: PLR0904 @property def user_data_dir(self) -> str: """:returns: data directory tied to the user, e.g. ``/data/user///files/``""" - return self._append_app_name_and_version(cast("str", _android_folder()), "files") + return self._append_app_name_and_version( + cast("str", _android_folder()), "files" + ) @property def site_data_dir(self) -> str: @@ -36,7 +38,9 @@ class Android(PlatformDirsABC): # noqa: PLR0904 @property def user_config_dir(self) -> str: """:returns: config directory tied to the user, e.g. ``/data/user///shared_prefs/``""" - return self._append_app_name_and_version(cast("str", _android_folder()), "shared_prefs") + return self._append_app_name_and_version( + cast("str", _android_folder()), "shared_prefs" + ) @property def site_config_dir(self) -> str: @@ -46,7 +50,9 @@ class Android(PlatformDirsABC): # noqa: PLR0904 @property def user_cache_dir(self) -> str: """:returns: cache directory tied to the user, e.g.,``/data/user///cache/``""" - return self._append_app_name_and_version(cast("str", _android_folder()), "cache") + return self._append_app_name_and_version( + cast("str", _android_folder()), "cache" + ) @property def site_cache_dir(self) -> str: @@ -109,7 +115,9 @@ class Android(PlatformDirsABC): # noqa: PLR0904 @property def user_bin_dir(self) -> str: """:returns: bin directory tied to the user, e.g. ``/data/user///files/bin``""" - return os.path.join(cast("str", _android_folder()), "files", "bin") # noqa: PTH118 + return os.path.join( + cast("str", _android_folder()), "files", "bin" + ) # noqa: PTH118 @property def site_bin_dir(self) -> str: @@ -151,7 +159,9 @@ def _android_folder() -> str | None: # noqa: C901 # First try to get a path to android app using python4android (if available)... from android import mActivity # noqa: PLC0415 - context = cast("android.content.Context", mActivity.getApplicationContext()) # noqa: F821 + context = cast( + "android.content.Context", mActivity.getApplicationContext() + ) # noqa: F821 result = context.getFilesDir().getParentFile().getAbsolutePath() except Exception: # noqa: BLE001 result = None @@ -159,7 +169,9 @@ def _android_folder() -> str | None: # noqa: C901 try: # ...and fall back to using plain pyjnius, if python4android isn't available or doesn't deliver any useful # result... - from jnius import autoclass # noqa: PLC0415 # ty: ignore[unresolved-import] + from jnius import ( + autoclass, + ) # noqa: PLC0415 # ty: ignore[unresolved-import] context = autoclass("android.content.Context") result = context.getFilesDir().getParentFile().getAbsolutePath() @@ -197,7 +209,9 @@ def _android_documents_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - documents_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + documents_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DOCUMENTS + ).getAbsolutePath() except Exception: # noqa: BLE001 documents_dir = "/storage/emulated/0/Documents" @@ -213,7 +227,9 @@ def _android_downloads_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - downloads_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + downloads_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DOWNLOADS + ).getAbsolutePath() except Exception: # noqa: BLE001 downloads_dir = "/storage/emulated/0/Downloads" @@ -229,7 +245,9 @@ def _android_pictures_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - pictures_dir: str = context.getExternalFilesDir(environment.DIRECTORY_PICTURES).getAbsolutePath() + pictures_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_PICTURES + ).getAbsolutePath() except Exception: # noqa: BLE001 pictures_dir = "/storage/emulated/0/Pictures" @@ -245,7 +263,9 @@ def _android_videos_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - videos_dir: str = context.getExternalFilesDir(environment.DIRECTORY_DCIM).getAbsolutePath() + videos_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_DCIM + ).getAbsolutePath() except Exception: # noqa: BLE001 videos_dir = "/storage/emulated/0/DCIM/Camera" @@ -261,7 +281,9 @@ def _android_music_folder() -> str: context = autoclass("android.content.Context") environment = autoclass("android.os.Environment") - music_dir: str = context.getExternalFilesDir(environment.DIRECTORY_MUSIC).getAbsolutePath() + music_dir: str = context.getExternalFilesDir( + environment.DIRECTORY_MUSIC + ).getAbsolutePath() except Exception: # noqa: BLE001 music_dir = "/storage/emulated/0/Music" diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/macos.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/macos.py index 2493246..7c132db 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/macos.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/macos.py @@ -28,14 +28,22 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_data_dir(self) -> str: """:returns: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Application Support") + ) # noqa: PTH111 @property def _site_data_dirs(self) -> list[str]: is_homebrew = "/opt/python" in sys.prefix homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" - path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/share")] if is_homebrew else [] - path_list.append(self._append_app_name_and_version("/Library/Application Support")) + path_list = ( + [self._append_app_name_and_version(f"{homebrew_prefix}/share")] + if is_homebrew + else [] + ) + path_list.append( + self._append_app_name_and_version("/Library/Application Support") + ) return path_list @property @@ -55,14 +63,20 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_cache_dir(self) -> str: """:returns: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Caches") + ) # noqa: PTH111 @property def site_cache_dir(self) -> str: """:returns: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``. If we're using a Python binary managed by `Homebrew `_, the directory will be under the Homebrew prefix, e.g. ``$homebrew_prefix/var/cache/$appname/$version``. If `multipath ` is enabled, and we're in Homebrew, the response is a multi-path string separated by ":", e.g. ``$homebrew_prefix/var/cache/$appname/$version:/Library/Caches/$appname/$version``""" is_homebrew = "/opt/python" in sys.prefix homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else "" - path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/var/cache")] if is_homebrew else [] + path_list = ( + [self._append_app_name_and_version(f"{homebrew_prefix}/var/cache")] + if is_homebrew + else [] + ) path_list.append(self._append_app_name_and_version("/Library/Caches")) if self.multipath: return os.pathsep.join(path_list) @@ -86,7 +100,9 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_log_dir(self) -> str: """:returns: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Logs") + ) # noqa: PTH111 @property def site_log_dir(self) -> str: @@ -151,7 +167,9 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_runtime_dir(self) -> str: """:returns: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/Library/Caches/TemporaryItems") + ) # noqa: PTH111 @property def site_runtime_dir(self) -> str: diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/unix.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/unix.py index 53cba33..5f8b3d8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/unix.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/unix.py @@ -40,16 +40,23 @@ class _UnixDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_data_dir(self) -> str: """:returns: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/.local/share")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/.local/share") + ) # noqa: PTH111 @property def _site_data_dirs(self) -> list[str]: - return [self._append_app_name_and_version("/usr/local/share"), self._append_app_name_and_version("/usr/share")] + return [ + self._append_app_name_and_version("/usr/local/share"), + self._append_app_name_and_version("/usr/share"), + ] @property def user_config_dir(self) -> str: """:returns: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/.config")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/.config") + ) # noqa: PTH111 @property def _site_config_dirs(self) -> list[str]: @@ -58,7 +65,9 @@ class _UnixDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_cache_dir(self) -> str: """:returns: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``$XDG_CACHE_HOME/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/.cache")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/.cache") + ) # noqa: PTH111 @property def site_cache_dir(self) -> str: @@ -68,7 +77,9 @@ class _UnixDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_state_dir(self) -> str: """:returns: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version``""" - return self._append_app_name_and_version(os.path.expanduser("~/.local/state")) # noqa: PTH111 + return self._append_app_name_and_version( + os.path.expanduser("~/.local/state") + ) # noqa: PTH111 @property def site_state_dir(self) -> str: @@ -136,11 +147,15 @@ class _UnixDefaults(PlatformDirsABC): # noqa: PLR0904 @property def user_applications_dir(self) -> str: """:returns: applications directory tied to the user, e.g. ``~/.local/share/applications``""" - return os.path.join(os.path.expanduser("~/.local/share"), "applications") # noqa: PTH111, PTH118 + return os.path.join( + os.path.expanduser("~/.local/share"), "applications" + ) # noqa: PTH111, PTH118 @property def _site_applications_dirs(self) -> list[str]: - return [os.path.join(p, "applications") for p in ["/usr/local/share", "/usr/share"]] # noqa: PTH118 + return [ + os.path.join(p, "applications") for p in ["/usr/local/share", "/usr/share"] + ] # noqa: PTH118 @property def site_applications_dir(self) -> str: @@ -247,7 +262,11 @@ class Unix(XDGMixin, _UnixDefaults): @property def user_applications_dir(self) -> str: """:returns: applications directory tied to the user, or site equivalent when root with ``use_site_for_root``""" - return self.site_applications_dir if self._use_site else super().user_applications_dir + return ( + self.site_applications_dir + if self._use_site + else super().user_applications_dir + ) @property def user_runtime_dir(self) -> str: @@ -272,7 +291,9 @@ def _get_user_dirs_folder(key: str) -> str | None: See https://freedesktop.org/wiki/Software/xdg-user-dirs/. """ - user_dirs_config_path = Path(os.path.expanduser("~/.config")) / "user-dirs.dirs" # noqa: PTH111 + user_dirs_config_path = ( + Path(os.path.expanduser("~/.config")) / "user-dirs.dirs" + ) # noqa: PTH111 if user_dirs_config_path.exists(): parser = ConfigParser() diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/version.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/version.py index db2fb3f..044ee3c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/version.py @@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE commit_id: COMMIT_ID __commit_id__: COMMIT_ID -__version__ = version = '4.9.2' +__version__ = version = "4.9.2" __version_tuple__ = version_tuple = (4, 9, 2) __commit_id__ = commit_id = None diff --git a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/windows.py b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/windows.py index 47403de..36138d6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/platformdirs/windows.py +++ b/PPE2/.venv/lib/python3.12/site-packages/platformdirs/windows.py @@ -136,12 +136,16 @@ class Windows(PlatformDirsABC): # noqa: PLR0904 @property def user_bin_dir(self) -> str: r""":returns: bin directory tied to the user, e.g. ``%LOCALAPPDATA%\Programs``""" - return os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Programs")) # noqa: PTH118 + return os.path.normpath( + os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Programs") + ) # noqa: PTH118 @property def site_bin_dir(self) -> str: """:returns: bin directory shared by users, e.g. ``C:\\ProgramData\bin``""" - return os.path.normpath(os.path.join(get_win_folder("CSIDL_COMMON_APPDATA"), "bin")) # noqa: PTH118 + return os.path.normpath( + os.path.join(get_win_folder("CSIDL_COMMON_APPDATA"), "bin") + ) # noqa: PTH118 @property def user_applications_dir(self) -> str: @@ -156,7 +160,9 @@ class Windows(PlatformDirsABC): # noqa: PLR0904 @property def user_runtime_dir(self) -> str: r""":returns: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname``""" - path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) # noqa: PTH118 + path = os.path.normpath( + os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp") + ) # noqa: PTH118 return self._append_parts(path) @property @@ -186,22 +192,34 @@ def get_win_folder_from_env_vars(csidl_name: str) -> str: return result -def get_win_folder_if_csidl_name_not_env_var(csidl_name: str) -> str | None: # noqa: PLR0911 +def get_win_folder_if_csidl_name_not_env_var( + csidl_name: str, +) -> str | None: # noqa: PLR0911 """Get a folder for a CSIDL name that does not exist as an environment variable.""" if csidl_name == "CSIDL_PERSONAL": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Documents" + ) # noqa: PTH118 if csidl_name == "CSIDL_DOWNLOADS": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Downloads") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Downloads" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYPICTURES": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Pictures") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Pictures" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYVIDEO": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Videos") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Videos" + ) # noqa: PTH118 if csidl_name == "CSIDL_MYMUSIC": - return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Music") # noqa: PTH118 + return os.path.join( + os.path.normpath(os.environ["USERPROFILE"]), "Music" + ) # noqa: PTH118 if csidl_name == "CSIDL_PROGRAMS": return os.path.join( # noqa: PTH118 @@ -214,7 +232,11 @@ def get_win_folder_if_csidl_name_not_env_var(csidl_name: str) -> str | None: # if csidl_name == "CSIDL_COMMON_PROGRAMS": return os.path.join( # noqa: PTH118 - os.path.normpath(os.environ.get("PROGRAMDATA", os.environ.get("ALLUSERSPROFILE", "C:\\ProgramData"))), + os.path.normpath( + os.environ.get( + "PROGRAMDATA", os.environ.get("ALLUSERSPROFILE", "C:\\ProgramData") + ) + ), "Microsoft", "Windows", "Start Menu", @@ -249,14 +271,22 @@ def get_win_folder_from_registry(csidl_name: str) -> str: if shell_folder_name is None: msg = f"Unknown CSIDL name: {csidl_name}" raise ValueError(msg) - if sys.platform != "win32": # only needed for mypy type checker to know that this code runs only on Windows + if ( + sys.platform != "win32" + ): # only needed for mypy type checker to know that this code runs only on Windows raise NotImplementedError import winreg # noqa: PLC0415 # Use HKEY_LOCAL_MACHINE for system-wide folders, HKEY_CURRENT_USER for user-specific folders - hkey = winreg.HKEY_LOCAL_MACHINE if csidl_name in machine_names else winreg.HKEY_CURRENT_USER + hkey = ( + winreg.HKEY_LOCAL_MACHINE + if csidl_name in machine_names + else winreg.HKEY_CURRENT_USER + ) - key = winreg.OpenKey(hkey, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") + key = winreg.OpenKey( + hkey, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) directory, _ = winreg.QueryValueEx(key, shell_folder_name) return str(directory) @@ -282,9 +312,19 @@ def get_win_folder_via_ctypes(csidl_name: str) -> str: See https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath. """ - if sys.platform != "win32": # only needed for type checker to know that this code runs only on Windows + if ( + sys.platform != "win32" + ): # only needed for type checker to know that this code runs only on Windows raise NotImplementedError - from ctypes import HRESULT, POINTER, Structure, WinDLL, byref, create_unicode_buffer, wintypes # noqa: PLC0415 + from ctypes import ( + HRESULT, + POINTER, + Structure, + WinDLL, + byref, + create_unicode_buffer, + wintypes, + ) # noqa: PLC0415 class _GUID(Structure): _fields_ = [ @@ -302,11 +342,20 @@ def get_win_folder_via_ctypes(csidl_name: str) -> str: shell32 = WinDLL("shell32") shell32.SHGetKnownFolderPath.restype = HRESULT - shell32.SHGetKnownFolderPath.argtypes = [POINTER(_GUID), wintypes.DWORD, wintypes.HANDLE, POINTER(wintypes.LPWSTR)] + shell32.SHGetKnownFolderPath.argtypes = [ + POINTER(_GUID), + wintypes.DWORD, + wintypes.HANDLE, + POINTER(wintypes.LPWSTR), + ] kernel32 = WinDLL("kernel32") kernel32.GetShortPathNameW.restype = wintypes.DWORD - kernel32.GetShortPathNameW.argtypes = [wintypes.LPWSTR, wintypes.LPWSTR, wintypes.DWORD] + kernel32.GetShortPathNameW.argtypes = [ + wintypes.LPWSTR, + wintypes.LPWSTR, + wintypes.DWORD, + ] folder_guid = _KNOWN_FOLDER_GUIDS.get(csidl_name) if folder_guid is None: @@ -317,7 +366,9 @@ def get_win_folder_via_ctypes(csidl_name: str) -> str: ole32.CLSIDFromString(folder_guid, byref(guid)) path_ptr = wintypes.LPWSTR() - shell32.SHGetKnownFolderPath(byref(guid), _KF_FLAG_DONT_VERIFY, None, byref(path_ptr)) + shell32.SHGetKnownFolderPath( + byref(guid), _KF_FLAG_DONT_VERIFY, None, byref(path_ptr) + ) result = path_ptr.value ole32.CoTaskMemFree(path_ptr) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy-1.6.0.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/pluggy-1.6.0.dist-info/WHEEL index e9653ae..bcfeea1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy-1.6.0.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy-1.6.0.dist-info/WHEEL @@ -2,4 +2,3 @@ Wheel-Version: 1.0 Generator: setuptools (80.7.1) Root-Is-Purelib: true Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_callers.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_callers.py index 472d5dd..122d5d5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_callers.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_callers.py @@ -16,7 +16,6 @@ from ._result import HookCallError from ._result import Result from ._warnings import PluggyTeardownRaisedWarning - # Need to distinguish between old- and new-style hook wrappers. # Wrapping with a tuple is the fastest type-safe way I found to do it. Teardown = Generator[None, object, object] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_hooks.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_hooks.py index 97fef0d..eedda48 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_hooks.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_hooks.py @@ -25,7 +25,6 @@ import warnings from ._result import Result - _T = TypeVar("_T") _F = TypeVar("_F", bound=Callable[..., object]) _Namespace = Union[ModuleType, type] @@ -311,7 +310,7 @@ def varnames(func: object) -> tuple[tuple[str, ...], tuple[str, ...]]: try: # func MUST be a function or method here or we won't parse any args. sig = inspect.signature( - func.__func__ if inspect.ismethod(func) else func # type:ignore[arg-type] + func.__func__ if inspect.ismethod(func) else func # type: ignore[arg-type] ) except TypeError: # pragma: no cover return (), () @@ -503,9 +502,9 @@ class HookCaller: Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ - assert not self.is_historic(), ( - "Cannot directly call a historic hook - use call_historic instead." - ) + assert ( + not self.is_historic() + ), "Cannot directly call a historic hook - use call_historic instead." self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). @@ -544,9 +543,9 @@ class HookCaller: """Call the hook with some additional temporarily participating methods using the specified ``kwargs`` as call parameters, see :ref:`call_extra`.""" - assert not self.is_historic(), ( - "Cannot directly call a historic hook - use call_historic instead." - ) + assert ( + not self.is_historic() + ), "Cannot directly call a historic hook - use call_historic instead." self._verify_all_args_are_provided(kwargs) opts: HookimplOpts = { "wrapper": False, diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_manager.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_manager.py index ff1e3ce..acc3859 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_manager.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_manager.py @@ -26,7 +26,6 @@ from ._hooks import HookspecOpts from ._hooks import normalize_hookimpl_opts from ._result import Result - if TYPE_CHECKING: # importtlib.metadata import is slow, defer it. import importlib.metadata @@ -192,7 +191,7 @@ class PluginManager: res = {} # type: ignore[assignment] #pragma: no cover if res is not None and not isinstance(res, dict): # false positive - res = None # type:ignore[unreachable] #pragma: no cover + res = None # type: ignore[unreachable] #pragma: no cover return res def unregister( diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_result.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_result.py index 656a584..7ddd111 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_result.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_result.py @@ -12,7 +12,6 @@ from typing import Generic from typing import Optional from typing import TypeVar - _ExcInfo = tuple[type[BaseException], BaseException, Optional[TracebackType]] ResultType = TypeVar("ResultType") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_tracing.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_tracing.py index f0b36db..cf9adb7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_tracing.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_tracing.py @@ -8,7 +8,6 @@ from collections.abc import Sequence from typing import Any from typing import Callable - _Writer = Callable[[str], object] _Processor = Callable[[tuple[str, ...], tuple[Any, ...]], object] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_version.py b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_version.py index 6b8420c..aaf56e2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pluggy/_version.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pluggy/_version.py @@ -17,5 +17,5 @@ __version__: str __version_tuple__: VERSION_TUPLE version_tuple: VERSION_TUPLE -__version__ = version = '1.6.0' +__version__ = version = "1.6.0" __version_tuple__ = version_tuple = (1, 6, 0) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit-4.5.1.dist-info/WHEEL b/PPE2/.venv/lib/python3.12/site-packages/pre_commit-4.5.1.dist-info/WHEEL index d02d2a2..a1c809e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit-4.5.1.dist-info/WHEEL +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit-4.5.1.dist-info/WHEEL @@ -3,4 +3,3 @@ Generator: setuptools (75.5.0) Root-Is-Purelib: true Tag: py2-none-any Tag: py3-none-any - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/__main__.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/__main__.py index bda61ee..2531a39 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/__main__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/__main__.py @@ -2,6 +2,5 @@ from __future__ import annotations from pre_commit.main import main - -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/all_languages.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/all_languages.py index 166bc16..335322c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/all_languages.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/all_languages.py @@ -23,28 +23,27 @@ from pre_commit.languages import swift from pre_commit.languages import unsupported from pre_commit.languages import unsupported_script - languages: dict[str, Language] = { - 'conda': conda, - 'coursier': coursier, - 'dart': dart, - 'docker': docker, - 'docker_image': docker_image, - 'dotnet': dotnet, - 'fail': fail, - 'golang': golang, - 'haskell': haskell, - 'julia': julia, - 'lua': lua, - 'node': node, - 'perl': perl, - 'pygrep': pygrep, - 'python': python, - 'r': r, - 'ruby': ruby, - 'rust': rust, - 'swift': swift, - 'unsupported': unsupported, - 'unsupported_script': unsupported_script, + "conda": conda, + "coursier": coursier, + "dart": dart, + "docker": docker, + "docker_image": docker_image, + "dotnet": dotnet, + "fail": fail, + "golang": golang, + "haskell": haskell, + "julia": julia, + "lua": lua, + "node": node, + "perl": perl, + "pygrep": pygrep, + "python": python, + "r": r, + "ruby": ruby, + "rust": rust, + "swift": swift, + "unsupported": unsupported, + "unsupported_script": unsupported_script, } language_names = sorted(languages) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/clientlib.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/clientlib.py index 51f14d2..bd3b9eb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/clientlib.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/clientlib.py @@ -19,52 +19,52 @@ from pre_commit.all_languages import language_names from pre_commit.errors import FatalError from pre_commit.yaml import yaml_load -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") check_string_regex = cfgv.check_and(cfgv.check_string, cfgv.check_regex) HOOK_TYPES = ( - 'commit-msg', - 'post-checkout', - 'post-commit', - 'post-merge', - 'post-rewrite', - 'pre-commit', - 'pre-merge-commit', - 'pre-push', - 'pre-rebase', - 'prepare-commit-msg', + "commit-msg", + "post-checkout", + "post-commit", + "post-merge", + "post-rewrite", + "pre-commit", + "pre-merge-commit", + "pre-push", + "pre-rebase", + "prepare-commit-msg", ) # `manual` is not invoked by any installed git hook. See #719 -STAGES = (*HOOK_TYPES, 'manual') +STAGES = (*HOOK_TYPES, "manual") def check_type_tag(tag: str) -> None: if tag not in ALL_TAGS: raise cfgv.ValidationError( - f'Type tag {tag!r} is not recognized. ' - f'Try upgrading identify and pre-commit?', + f"Type tag {tag!r} is not recognized. " + f"Try upgrading identify and pre-commit?", ) def parse_version(s: str) -> tuple[int, ...]: """poor man's version comparison""" - return tuple(int(p) for p in s.split('.')) + return tuple(int(p) for p in s.split(".")) def check_min_version(version: str) -> None: if parse_version(version) > parse_version(C.VERSION): raise cfgv.ValidationError( - f'pre-commit version {version} is required but version ' - f'{C.VERSION} is installed. ' - f'Perhaps run `pip install --upgrade pre-commit`.', + f"pre-commit version {version} is required but version " + f"{C.VERSION} is installed. " + f"Perhaps run `pip install --upgrade pre-commit`.", ) _STAGES = { - 'commit': 'pre-commit', - 'merge-commit': 'pre-merge-commit', - 'push': 'pre-push', + "commit": "pre-commit", + "merge-commit": "pre-merge-commit", + "push": "pre-push", } @@ -74,9 +74,10 @@ def transform_stage(stage: str) -> str: MINIMAL_MANIFEST_SCHEMA = cfgv.Array( cfgv.Map( - 'Hook', 'id', - cfgv.Required('id', cfgv.check_string), - cfgv.Optional('stages', cfgv.check_array(cfgv.check_string), []), + "Hook", + "id", + cfgv.Required("id", cfgv.check_string), + cfgv.Optional("stages", cfgv.check_array(cfgv.check_string), []), ), ) @@ -94,18 +95,18 @@ def warn_for_stages_on_repo_init(repo: str, directory: str) -> None: legacy_stages = {} # sorted set for hook in manifest: - for stage in hook.get('stages', ()): + for stage in hook.get("stages", ()): if stage in _STAGES: legacy_stages[stage] = True if legacy_stages: logger.warning( - f'repo `{repo}` uses deprecated stage names ' + f"repo `{repo}` uses deprecated stage names " f'({", ".join(legacy_stages)}) which will be removed in a ' - f'future version. ' - f'Hint: often `pre-commit autoupdate --repo {shlex.quote(repo)}` ' - f'will fix this. ' - f'if it does not -- consider reporting an issue to that repo.', + f"future version. " + f"Hint: often `pre-commit autoupdate --repo {shlex.quote(repo)}` " + f"will fix this. " + f"if it does not -- consider reporting an issue to that repo.", ) @@ -117,7 +118,7 @@ class StagesMigrationNoDefault(NamedTuple): if self.key not in dct: return - with cfgv.validate_context(f'At key: {self.key}'): + with cfgv.validate_context(f"At key: {self.key}"): val = dct[self.key] cfgv.check_array(cfgv.check_any)(val) @@ -154,8 +155,8 @@ class DeprecatedStagesWarning(NamedTuple): logger.warning( f'hook id `{dct["id"]}` uses deprecated stage names ' f'({", ".join(legacy_stages)}) which will be removed in a ' - f'future version. ' - f'run: `pre-commit migrate-config` to automatically fix this.', + f"future version. " + f"run: `pre-commit migrate-config` to automatically fix this.", ) def apply_default(self, dct: dict[str, Any]) -> None: @@ -178,10 +179,10 @@ class DeprecatedDefaultStagesWarning(NamedTuple): legacy_stages = [stage for stage in val if stage in _STAGES] if legacy_stages: logger.warning( - f'top-level `default_stages` uses deprecated stage names ' + f"top-level `default_stages` uses deprecated stage names " f'({", ".join(legacy_stages)}) which will be removed in a ' - f'future version. ' - f'run: `pre-commit migrate-config` to automatically fix this.', + f"future version. " + f"run: `pre-commit migrate-config` to automatically fix this.", ) def apply_default(self, dct: dict[str, Any]) -> None: @@ -193,8 +194,8 @@ class DeprecatedDefaultStagesWarning(NamedTuple): def _translate_language(name: str) -> str: return { - 'system': 'unsupported', - 'script': 'unsupported_script', + "system": "unsupported", + "script": "unsupported_script", }.get(name, name) @@ -206,7 +207,7 @@ class LanguageMigration(NamedTuple): # remove if self.key not in dct: return - with cfgv.validate_context(f'At key: {self.key}'): + with cfgv.validate_context(f"At key: {self.key}"): self.check_fn(_translate_language(dct[self.key])) def apply_default(self, dct: dict[str, Any]) -> None: @@ -222,46 +223,45 @@ class LanguageMigration(NamedTuple): # remove class LanguageMigrationRequired(LanguageMigration): # replace with Required def check(self, dct: dict[str, Any]) -> None: if self.key not in dct: - raise cfgv.ValidationError(f'Missing required key: {self.key}') + raise cfgv.ValidationError(f"Missing required key: {self.key}") super().check(dct) MANIFEST_HOOK_DICT = cfgv.Map( - 'Hook', 'id', - + "Hook", + "id", # check first in case it uses some newer, incompatible feature cfgv.Optional( - 'minimum_pre_commit_version', + "minimum_pre_commit_version", cfgv.check_and(cfgv.check_string, check_min_version), - '0', + "0", ), - - cfgv.Required('id', cfgv.check_string), - cfgv.Required('name', cfgv.check_string), - cfgv.Required('entry', cfgv.check_string), - LanguageMigrationRequired('language', cfgv.check_one_of(language_names)), - cfgv.Optional('alias', cfgv.check_string, ''), - - cfgv.Optional('files', check_string_regex, ''), - cfgv.Optional('exclude', check_string_regex, '^$'), - cfgv.Optional('types', cfgv.check_array(check_type_tag), ['file']), - cfgv.Optional('types_or', cfgv.check_array(check_type_tag), []), - cfgv.Optional('exclude_types', cfgv.check_array(check_type_tag), []), - + cfgv.Required("id", cfgv.check_string), + cfgv.Required("name", cfgv.check_string), + cfgv.Required("entry", cfgv.check_string), + LanguageMigrationRequired("language", cfgv.check_one_of(language_names)), + cfgv.Optional("alias", cfgv.check_string, ""), + cfgv.Optional("files", check_string_regex, ""), + cfgv.Optional("exclude", check_string_regex, "^$"), + cfgv.Optional("types", cfgv.check_array(check_type_tag), ["file"]), + cfgv.Optional("types_or", cfgv.check_array(check_type_tag), []), + cfgv.Optional("exclude_types", cfgv.check_array(check_type_tag), []), cfgv.Optional( - 'additional_dependencies', cfgv.check_array(cfgv.check_string), [], + "additional_dependencies", + cfgv.check_array(cfgv.check_string), + [], ), - cfgv.Optional('args', cfgv.check_array(cfgv.check_string), []), - cfgv.Optional('always_run', cfgv.check_bool, False), - cfgv.Optional('fail_fast', cfgv.check_bool, False), - cfgv.Optional('pass_filenames', cfgv.check_bool, True), - cfgv.Optional('description', cfgv.check_string, ''), - cfgv.Optional('language_version', cfgv.check_string, C.DEFAULT), - cfgv.Optional('log_file', cfgv.check_string, ''), - cfgv.Optional('require_serial', cfgv.check_bool, False), - StagesMigration('stages', []), - cfgv.Optional('verbose', cfgv.check_bool, False), + cfgv.Optional("args", cfgv.check_array(cfgv.check_string), []), + cfgv.Optional("always_run", cfgv.check_bool, False), + cfgv.Optional("fail_fast", cfgv.check_bool, False), + cfgv.Optional("pass_filenames", cfgv.check_bool, True), + cfgv.Optional("description", cfgv.check_string, ""), + cfgv.Optional("language_version", cfgv.check_string, C.DEFAULT), + cfgv.Optional("log_file", cfgv.check_string, ""), + cfgv.Optional("require_serial", cfgv.check_bool, False), + StagesMigration("stages", []), + cfgv.Optional("verbose", cfgv.check_bool, False), ) MANIFEST_SCHEMA = cfgv.Array(MANIFEST_HOOK_DICT) @@ -273,8 +273,8 @@ class InvalidManifestError(FatalError): def _load_manifest_forward_compat(contents: str) -> object: obj = yaml_load(contents) if isinstance(obj, dict): - check_min_version('5') - raise AssertionError('unreachable') + check_min_version("5") + raise AssertionError("unreachable") else: return obj @@ -287,8 +287,8 @@ load_manifest = functools.partial( ) -LOCAL = 'local' -META = 'meta' +LOCAL = "local" +META = "meta" class WarnMutableRev(cfgv.Conditional): @@ -298,15 +298,15 @@ class WarnMutableRev(cfgv.Conditional): if self.key in dct: rev = dct[self.key] - if '.' not in rev and not re.match(r'^[a-fA-F0-9]+$', rev): + if "." not in rev and not re.match(r"^[a-fA-F0-9]+$", rev): logger.warning( f'The {self.key!r} field of repo {dct["repo"]!r} ' - f'appears to be a mutable reference ' - f'(moving tag / branch). Mutable references are never ' - f'updated after first install and are not supported. ' - f'See https://pre-commit.com/#using-the-latest-version-for-a-repository ' # noqa: E501 - f'for more details. ' - f'Hint: `pre-commit autoupdate` often fixes this.', + f"appears to be a mutable reference " + f"(moving tag / branch). Mutable references are never " + f"updated after first install and are not supported. " + f"See https://pre-commit.com/#using-the-latest-version-for-a-repository " # noqa: E501 + f"for more details. " + f"Hint: `pre-commit autoupdate` often fixes this.", ) @@ -314,18 +314,18 @@ class OptionalSensibleRegexAtHook(cfgv.OptionalNoDefault): def check(self, dct: dict[str, Any]) -> None: super().check(dct) - if '/*' in dct.get(self.key, ''): + if "/*" in dct.get(self.key, ""): logger.warning( f'The {self.key!r} field in hook {dct.get("id")!r} is a ' f"regex, not a glob -- matching '/*' probably isn't what you " - f'want here', + f"want here", ) - for fwd_slash_re in (r'[\\/]', r'[\/]', r'[/\\]'): - if fwd_slash_re in dct.get(self.key, ''): + for fwd_slash_re in (r"[\\/]", r"[\/]", r"[/\\]"): + if fwd_slash_re in dct.get(self.key, ""): logger.warning( - fr'pre-commit normalizes slashes in the {self.key!r} ' - fr'field in hook {dct.get("id")!r} to forward slashes, ' - fr'so you can use / instead of {fwd_slash_re}', + rf"pre-commit normalizes slashes in the {self.key!r} " + rf'field in hook {dct.get("id")!r} to forward slashes, ' + rf"so you can use / instead of {fwd_slash_re}", ) @@ -333,17 +333,17 @@ class OptionalSensibleRegexAtTop(cfgv.OptionalNoDefault): def check(self, dct: dict[str, Any]) -> None: super().check(dct) - if '/*' in dct.get(self.key, ''): + if "/*" in dct.get(self.key, ""): logger.warning( - f'The top-level {self.key!r} field is a regex, not a glob -- ' + f"The top-level {self.key!r} field is a regex, not a glob -- " f"matching '/*' probably isn't what you want here", ) - for fwd_slash_re in (r'[\\/]', r'[\/]', r'[/\\]'): - if fwd_slash_re in dct.get(self.key, ''): + for fwd_slash_re in (r"[\\/]", r"[\/]", r"[/\\]"): + if fwd_slash_re in dct.get(self.key, ""): logger.warning( - fr'pre-commit normalizes the slashes in the top-level ' - fr'{self.key!r} field to forward slashes, so you ' - fr'can use / instead of {fwd_slash_re}', + rf"pre-commit normalizes the slashes in the top-level " + rf"{self.key!r} field to forward slashes, so you " + rf"can use / instead of {fwd_slash_re}", ) @@ -352,21 +352,21 @@ def _entry(modname: str) -> str: runner, so to prevent issues with spaces and backslashes (on Windows) it must be quoted here. """ - return f'{shlex.quote(sys.executable)} -m pre_commit.meta_hooks.{modname}' + return f"{shlex.quote(sys.executable)} -m pre_commit.meta_hooks.{modname}" def warn_unknown_keys_root( - extra: Sequence[str], - orig_keys: Sequence[str], - dct: dict[str, str], + extra: Sequence[str], + orig_keys: Sequence[str], + dct: dict[str, str], ) -> None: logger.warning(f'Unexpected key(s) present at root: {", ".join(extra)}') def warn_unknown_keys_repo( - extra: Sequence[str], - orig_keys: Sequence[str], - dct: dict[str, str], + extra: Sequence[str], + orig_keys: Sequence[str], + dct: dict[str, str], ) -> None: logger.warning( f'Unexpected key(s) present on {dct["repo"]}: {", ".join(extra)}', @@ -375,24 +375,27 @@ def warn_unknown_keys_repo( _meta = ( ( - 'check-hooks-apply', ( - ('name', 'Check hooks apply to the repository'), - ('files', f'^{re.escape(C.CONFIG_FILE)}$'), - ('entry', _entry('check_hooks_apply')), + "check-hooks-apply", + ( + ("name", "Check hooks apply to the repository"), + ("files", f"^{re.escape(C.CONFIG_FILE)}$"), + ("entry", _entry("check_hooks_apply")), ), ), ( - 'check-useless-excludes', ( - ('name', 'Check for useless excludes'), - ('files', f'^{re.escape(C.CONFIG_FILE)}$'), - ('entry', _entry('check_useless_excludes')), + "check-useless-excludes", + ( + ("name", "Check for useless excludes"), + ("files", f"^{re.escape(C.CONFIG_FILE)}$"), + ("entry", _entry("check_useless_excludes")), ), ), ( - 'identity', ( - ('name', 'identity'), - ('verbose', True), - ('entry', _entry('identity')), + "identity", + ( + ("name", "identity"), + ("verbose", True), + ("entry", _entry("identity")), ), ), ) @@ -401,46 +404,50 @@ _meta = ( class NotAllowed(cfgv.OptionalNoDefault): def check(self, dct: dict[str, Any]) -> None: if self.key in dct: - raise cfgv.ValidationError(f'{self.key!r} cannot be overridden') + raise cfgv.ValidationError(f"{self.key!r} cannot be overridden") _COMMON_HOOK_WARNINGS = ( - OptionalSensibleRegexAtHook('files', cfgv.check_string), - OptionalSensibleRegexAtHook('exclude', cfgv.check_string), - DeprecatedStagesWarning('stages'), + OptionalSensibleRegexAtHook("files", cfgv.check_string), + OptionalSensibleRegexAtHook("exclude", cfgv.check_string), + DeprecatedStagesWarning("stages"), ) META_HOOK_DICT = cfgv.Map( - 'Hook', 'id', - cfgv.Required('id', cfgv.check_string), - cfgv.Required('id', cfgv.check_one_of(tuple(k for k, _ in _meta))), + "Hook", + "id", + cfgv.Required("id", cfgv.check_string), + cfgv.Required("id", cfgv.check_one_of(tuple(k for k, _ in _meta))), # language must be `unsupported` cfgv.Optional( - 'language', cfgv.check_one_of({'unsupported'}), 'unsupported', + "language", + cfgv.check_one_of({"unsupported"}), + "unsupported", ), # entry cannot be overridden - NotAllowed('entry', cfgv.check_any), + NotAllowed("entry", cfgv.check_any), *( # default to the hook definition for the meta hooks - cfgv.ConditionalOptional(key, cfgv.check_any, value, 'id', hook_id) + cfgv.ConditionalOptional(key, cfgv.check_any, value, "id", hook_id) for hook_id, values in _meta for key, value in values ), *( # default to the "manifest" parsing - cfgv.OptionalNoDefault(item.key, item.check_fn) - # these will always be defaulted above - if item.key in {'name', 'language', 'entry'} else - item + ( + cfgv.OptionalNoDefault(item.key, item.check_fn) + # these will always be defaulted above + if item.key in {"name", "language", "entry"} + else item + ) for item in MANIFEST_HOOK_DICT.items ), *_COMMON_HOOK_WARNINGS, ) CONFIG_HOOK_DICT = cfgv.Map( - 'Hook', 'id', - - cfgv.Required('id', cfgv.check_string), - + "Hook", + "id", + cfgv.Required("id", cfgv.check_string), # All keys in manifest hook dict are valid in a config hook dict, but # are optional. # No defaults are provided here as the config is merged on top of the @@ -448,94 +455,100 @@ CONFIG_HOOK_DICT = cfgv.Map( *( cfgv.OptionalNoDefault(item.key, item.check_fn) for item in MANIFEST_HOOK_DICT.items - if item.key != 'id' - if item.key != 'stages' - if item.key != 'language' # remove + if item.key != "id" + if item.key != "stages" + if item.key != "language" # remove ), - StagesMigrationNoDefault('stages', []), - LanguageMigration('language', cfgv.check_one_of(language_names)), # remove + StagesMigrationNoDefault("stages", []), + LanguageMigration("language", cfgv.check_one_of(language_names)), # remove *_COMMON_HOOK_WARNINGS, ) LOCAL_HOOK_DICT = cfgv.Map( - 'Hook', 'id', - + "Hook", + "id", *MANIFEST_HOOK_DICT.items, *_COMMON_HOOK_WARNINGS, ) CONFIG_REPO_DICT = cfgv.Map( - 'Repository', 'repo', - - cfgv.Required('repo', cfgv.check_string), - + "Repository", + "repo", + cfgv.Required("repo", cfgv.check_string), cfgv.ConditionalRecurse( - 'hooks', cfgv.Array(CONFIG_HOOK_DICT), - 'repo', cfgv.NotIn(LOCAL, META), + "hooks", + cfgv.Array(CONFIG_HOOK_DICT), + "repo", + cfgv.NotIn(LOCAL, META), ), cfgv.ConditionalRecurse( - 'hooks', cfgv.Array(LOCAL_HOOK_DICT), - 'repo', LOCAL, + "hooks", + cfgv.Array(LOCAL_HOOK_DICT), + "repo", + LOCAL, ), cfgv.ConditionalRecurse( - 'hooks', cfgv.Array(META_HOOK_DICT), - 'repo', META, + "hooks", + cfgv.Array(META_HOOK_DICT), + "repo", + META, ), - WarnMutableRev( - 'rev', cfgv.check_string, - condition_key='repo', + "rev", + cfgv.check_string, + condition_key="repo", condition_value=cfgv.NotIn(LOCAL, META), ensure_absent=True, ), - cfgv.WarnAdditionalKeys(('repo', 'rev', 'hooks'), warn_unknown_keys_repo), + cfgv.WarnAdditionalKeys(("repo", "rev", "hooks"), warn_unknown_keys_repo), ) DEFAULT_LANGUAGE_VERSION = cfgv.Map( - 'DefaultLanguageVersion', None, + "DefaultLanguageVersion", + None, cfgv.NoAdditionalKeys(language_names), *(cfgv.Optional(x, cfgv.check_string, C.DEFAULT) for x in language_names), ) CONFIG_SCHEMA = cfgv.Map( - 'Config', None, - + "Config", + None, # check first in case it uses some newer, incompatible feature cfgv.Optional( - 'minimum_pre_commit_version', + "minimum_pre_commit_version", cfgv.check_and(cfgv.check_string, check_min_version), - '0', + "0", ), - - cfgv.RequiredRecurse('repos', cfgv.Array(CONFIG_REPO_DICT)), + cfgv.RequiredRecurse("repos", cfgv.Array(CONFIG_REPO_DICT)), cfgv.Optional( - 'default_install_hook_types', + "default_install_hook_types", cfgv.check_array(cfgv.check_one_of(HOOK_TYPES)), - ['pre-commit'], + ["pre-commit"], ), cfgv.OptionalRecurse( - 'default_language_version', DEFAULT_LANGUAGE_VERSION, {}, + "default_language_version", + DEFAULT_LANGUAGE_VERSION, + {}, ), - StagesMigration('default_stages', STAGES), - DeprecatedDefaultStagesWarning('default_stages'), - cfgv.Optional('files', check_string_regex, ''), - cfgv.Optional('exclude', check_string_regex, '^$'), - cfgv.Optional('fail_fast', cfgv.check_bool, False), + StagesMigration("default_stages", STAGES), + DeprecatedDefaultStagesWarning("default_stages"), + cfgv.Optional("files", check_string_regex, ""), + cfgv.Optional("exclude", check_string_regex, "^$"), + cfgv.Optional("fail_fast", cfgv.check_bool, False), cfgv.WarnAdditionalKeys( ( - 'repos', - 'default_install_hook_types', - 'default_language_version', - 'default_stages', - 'files', - 'exclude', - 'fail_fast', - 'minimum_pre_commit_version', - 'ci', + "repos", + "default_install_hook_types", + "default_language_version", + "default_stages", + "files", + "exclude", + "fail_fast", + "minimum_pre_commit_version", + "ci", ), warn_unknown_keys_root, ), - OptionalSensibleRegexAtTop('files', cfgv.check_string), - OptionalSensibleRegexAtTop('exclude', cfgv.check_string), - + OptionalSensibleRegexAtTop("files", cfgv.check_string), + OptionalSensibleRegexAtTop("exclude", cfgv.check_string), # do not warn about configuration for pre-commit.ci - cfgv.OptionalNoDefault('ci', cfgv.check_type(dict)), + cfgv.OptionalNoDefault("ci", cfgv.check_type(dict)), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/color.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/color.py index 2d6f248..f52d09f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/color.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/color.py @@ -4,7 +4,8 @@ import argparse import os import sys -if sys.platform == 'win32': # pragma: no cover (windows) +if sys.platform == "win32": # pragma: no cover (windows) + def _enable() -> None: from ctypes import POINTER from ctypes import windll @@ -23,18 +24,19 @@ if sys.platform == 'win32': # pragma: no cover (windows) return args GetStdHandle = WINFUNCTYPE(HANDLE, DWORD)( - ('GetStdHandle', windll.kernel32), ((1, 'nStdHandle'),), + ("GetStdHandle", windll.kernel32), + ((1, "nStdHandle"),), ) GetConsoleMode = WINFUNCTYPE(BOOL, HANDLE, POINTER(DWORD))( - ('GetConsoleMode', windll.kernel32), - ((1, 'hConsoleHandle'), (2, 'lpMode')), + ("GetConsoleMode", windll.kernel32), + ((1, "hConsoleHandle"), (2, "lpMode")), ) GetConsoleMode.errcheck = bool_errcheck SetConsoleMode = WINFUNCTYPE(BOOL, HANDLE, DWORD)( - ('SetConsoleMode', windll.kernel32), - ((1, 'hConsoleHandle'), (1, 'dwMode')), + ("SetConsoleMode", windll.kernel32), + ((1, "hConsoleHandle"), (1, "dwMode")), ) SetConsoleMode.errcheck = bool_errcheck @@ -56,12 +58,12 @@ if sys.platform == 'win32': # pragma: no cover (windows) else: # pragma: win32 no cover terminal_supports_color = True -RED = '\033[41m' -GREEN = '\033[42m' -YELLOW = '\033[43;30m' -TURQUOISE = '\033[46;30m' -SUBTLE = '\033[2m' -NORMAL = '\033[m' +RED = "\033[41m" +GREEN = "\033[42m" +YELLOW = "\033[43;30m" +TURQUOISE = "\033[46;30m" +SUBTLE = "\033[2m" +NORMAL = "\033[m" def format_color(text: str, color: str, use_color_setting: bool) -> str: @@ -73,12 +75,12 @@ def format_color(text: str, color: str, use_color_setting: bool) -> str: use_color_setting - Whether or not to color """ if use_color_setting: - return f'{color}{text}{NORMAL}' + return f"{color}{text}{NORMAL}" else: return text -COLOR_CHOICES = ('auto', 'always', 'never') +COLOR_CHOICES = ("auto", "always", "never") def use_color(setting: str) -> bool: @@ -90,20 +92,19 @@ def use_color(setting: str) -> bool: if setting not in COLOR_CHOICES: raise ValueError(setting) - return ( - setting == 'always' or ( - setting == 'auto' and - sys.stderr.isatty() and - terminal_supports_color and - os.getenv('TERM') != 'dumb' - ) + return setting == "always" or ( + setting == "auto" + and sys.stderr.isatty() + and terminal_supports_color + and os.getenv("TERM") != "dumb" ) def add_color_option(parser: argparse.ArgumentParser) -> None: parser.add_argument( - '--color', default=os.environ.get('PRE_COMMIT_COLOR', 'auto'), + "--color", + default=os.environ.get("PRE_COMMIT_COLOR", "auto"), type=use_color, - metavar='{' + ','.join(COLOR_CHOICES) + '}', - help='Whether to use color in output. Defaults to `%(default)s`.', + metavar="{" + ",".join(COLOR_CHOICES) + "}", + help="Whether to use color in output. Defaults to `%(default)s`.", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/autoupdate.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/autoupdate.py index aa0c5e2..b195954 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/autoupdate.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/autoupdate.py @@ -33,51 +33,56 @@ class RevInfo(NamedTuple): @classmethod def from_config(cls, config: dict[str, Any]) -> RevInfo: - return cls(config['repo'], config['rev']) + return cls(config["repo"], config["rev"]) def update(self, tags_only: bool, freeze: bool) -> RevInfo: with tempfile.TemporaryDirectory() as tmp: - _git = ('git', *git.NO_FS_MONITOR, '-C', tmp) + _git = ("git", *git.NO_FS_MONITOR, "-C", tmp) if tags_only: - tag_opt = '--abbrev=0' + tag_opt = "--abbrev=0" else: - tag_opt = '--exact' - tag_cmd = (*_git, 'describe', 'FETCH_HEAD', '--tags', tag_opt) + tag_opt = "--exact" + tag_cmd = (*_git, "describe", "FETCH_HEAD", "--tags", tag_opt) git.init_repo(tmp, self.repo) - cmd_output_b(*_git, 'config', 'extensions.partialClone', 'true') + cmd_output_b(*_git, "config", "extensions.partialClone", "true") cmd_output_b( - *_git, 'fetch', 'origin', 'HEAD', - '--quiet', '--filter=blob:none', '--tags', + *_git, + "fetch", + "origin", + "HEAD", + "--quiet", + "--filter=blob:none", + "--tags", ) try: rev = cmd_output(*tag_cmd)[1].strip() except CalledProcessError: - rev = cmd_output(*_git, 'rev-parse', 'FETCH_HEAD')[1].strip() + rev = cmd_output(*_git, "rev-parse", "FETCH_HEAD")[1].strip() else: if tags_only: rev = git.get_best_candidate_tag(rev, tmp) frozen = None if freeze: - exact = cmd_output(*_git, 'rev-parse', rev)[1].strip() + exact = cmd_output(*_git, "rev-parse", rev)[1].strip() if exact != rev: rev, frozen = exact, rev try: # workaround for windows -- see #2865 - cmd_output_b(*_git, 'show', f'{rev}:{C.MANIFEST_FILE}') - cmd_output(*_git, 'checkout', rev, '--', C.MANIFEST_FILE) + cmd_output_b(*_git, "show", f"{rev}:{C.MANIFEST_FILE}") + cmd_output(*_git, "checkout", rev, "--", C.MANIFEST_FILE) except CalledProcessError: pass # this will be caught by manifest validating code try: manifest = load_manifest(os.path.join(tmp, C.MANIFEST_FILE)) except InvalidManifestError as e: - raise RepositoryCannotBeUpdatedError(f'[{self.repo}] {e}') + raise RepositoryCannotBeUpdatedError(f"[{self.repo}] {e}") else: - hook_ids = frozenset(hook['id'] for hook in manifest) + hook_ids = frozenset(hook["id"] for hook in manifest) return self._replace(rev=rev, frozen=frozen, hook_ids=hook_ids) @@ -87,25 +92,25 @@ class RepositoryCannotBeUpdatedError(RuntimeError): def _check_hooks_still_exist_at_rev( - repo_config: dict[str, Any], - info: RevInfo, + repo_config: dict[str, Any], + info: RevInfo, ) -> None: # See if any of our hooks were deleted with the new commits - hooks = {hook['id'] for hook in repo_config['hooks']} + hooks = {hook["id"] for hook in repo_config["hooks"]} hooks_missing = hooks - info.hook_ids if hooks_missing: raise RepositoryCannotBeUpdatedError( - f'[{info.repo}] Cannot update because the update target is ' + f"[{info.repo}] Cannot update because the update target is " f'missing these hooks: {", ".join(sorted(hooks_missing))}', ) def _update_one( - i: int, - repo: dict[str, Any], - *, - tags_only: bool, - freeze: bool, + i: int, + repo: dict[str, Any], + *, + tags_only: bool, + freeze: bool, ) -> tuple[int, RevInfo, RevInfo]: old = RevInfo.from_config(repo) new = old.update(tags_only=tags_only, freeze=freeze) @@ -117,12 +122,12 @@ REV_LINE_RE = re.compile(r'^(\s+)rev:(\s*)([\'"]?)([^\s#]+)(.*)(\r?\n)$') def _original_lines( - path: str, - rev_infos: list[RevInfo | None], - retry: bool = False, + path: str, + rev_infos: list[RevInfo | None], + retry: bool = False, ) -> tuple[list[str], list[int]]: """detect `rev:` lines or reformat the file""" - with open(path, newline='') as f: + with open(path, newline="") as f: original = f.read() lines = original.splitlines(True) @@ -130,9 +135,9 @@ def _original_lines( if len(idxs) == len(rev_infos): return lines, idxs elif retry: - raise AssertionError('could not find rev lines') + raise AssertionError("could not find rev lines") else: - with open(path, 'w') as f: + with open(path, "w") as f: f.write(yaml_dump(yaml_load(original))) return _original_lines(path, rev_infos, retry=True) @@ -145,26 +150,26 @@ def _write_new_config(path: str, rev_infos: list[RevInfo | None]) -> None: continue match = REV_LINE_RE.match(lines[idx]) assert match is not None - new_rev_s = yaml_dump({'rev': rev_info.rev}, default_style=match[3]) - new_rev = new_rev_s.split(':', 1)[1].strip() + new_rev_s = yaml_dump({"rev": rev_info.rev}, default_style=match[3]) + new_rev = new_rev_s.split(":", 1)[1].strip() if rev_info.frozen is not None: - comment = f' # frozen: {rev_info.frozen}' - elif match[5].strip().startswith('# frozen:'): - comment = '' + comment = f" # frozen: {rev_info.frozen}" + elif match[5].strip().startswith("# frozen:"): + comment = "" else: comment = match[5] - lines[idx] = f'{match[1]}rev:{match[2]}{new_rev}{comment}{match[6]}' + lines[idx] = f"{match[1]}rev:{match[2]}{new_rev}{comment}{match[6]}" - with open(path, 'w', newline='') as f: - f.write(''.join(lines)) + with open(path, "w", newline="") as f: + f.write("".join(lines)) def autoupdate( - config_file: str, - tags_only: bool, - freeze: bool, - repos: Sequence[str] = (), - jobs: int = 1, + config_file: str, + tags_only: bool, + freeze: bool, + repos: Sequence[str] = (), + jobs: int = 1, ) -> int: """Auto-update the pre-commit config to the latest versions of repos.""" migrate_config(config_file, quiet=True) @@ -172,8 +177,9 @@ def autoupdate( retv = 0 config_repos = [ - repo for repo in load_config(config_file)['repos'] - if repo['repo'] not in {LOCAL, META} + repo + for repo in load_config(config_file)["repos"] + if repo["repo"] not in {LOCAL, META} ] rev_infos: list[RevInfo | None] = [None] * len(config_repos) @@ -184,10 +190,13 @@ def autoupdate( futures = [ exe.submit( _update_one, - i, repo, tags_only=tags_only, freeze=freeze, + i, + repo, + tags_only=tags_only, + freeze=freeze, ) for i, repo in enumerate(config_repos) - if not repos or repo['repo'] in repos + if not repos or repo["repo"] in repos ] for future in concurrent.futures.as_completed(futures): try: @@ -199,15 +208,15 @@ def autoupdate( if new.rev != old.rev: changed = True if new.frozen: - new_s = f'{new.frozen} (frozen)' + new_s = f"{new.frozen} (frozen)" else: new_s = new.rev - msg = f'updating {old.rev} -> {new_s}' + msg = f"updating {old.rev} -> {new_s}" rev_infos[i] = new else: - msg = 'already up to date!' + msg = "already up to date!" - output.write_line(f'[{old.repo}] {msg}') + output.write_line(f"[{old.repo}] {msg}") if changed: _write_new_config(config_file, rev_infos) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/clean.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/clean.py index 5119f64..75c28d0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/clean.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/clean.py @@ -8,9 +8,9 @@ from pre_commit.util import rmtree def clean(store: Store) -> int: - legacy_path = os.path.expanduser('~/.pre-commit') + legacy_path = os.path.expanduser("~/.pre-commit") for directory in (store.directory, legacy_path): if os.path.exists(directory): rmtree(directory) - output.write_line(f'Cleaned {directory}.') + output.write_line(f"Cleaned {directory}.") return 0 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/gc.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/gc.py index 975d5e4..83706b9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/gc.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/gc.py @@ -16,22 +16,24 @@ from pre_commit.util import rmtree def _mark_used_repos( - store: Store, - all_repos: dict[tuple[str, str], str], - unused_repos: set[tuple[str, str]], - repo: dict[str, Any], + store: Store, + all_repos: dict[tuple[str, str], str], + unused_repos: set[tuple[str, str]], + repo: dict[str, Any], ) -> None: - if repo['repo'] == META: + if repo["repo"] == META: return - elif repo['repo'] == LOCAL: - for hook in repo['hooks']: - deps = hook.get('additional_dependencies') - unused_repos.discard(( - store.db_repo_name(repo['repo'], deps), - C.LOCAL_REPO_VERSION, - )) + elif repo["repo"] == LOCAL: + for hook in repo["hooks"]: + deps = hook.get("additional_dependencies") + unused_repos.discard( + ( + store.db_repo_name(repo["repo"], deps), + C.LOCAL_REPO_VERSION, + ) + ) else: - key = (repo['repo'], repo['rev']) + key = (repo["repo"], repo["rev"]) path = all_repos.get(key) # can't inspect manifest if it isn't cloned if path is None: @@ -43,30 +45,33 @@ def _mark_used_repos( return else: unused_repos.discard(key) - by_id = {hook['id']: hook for hook in manifest} + by_id = {hook["id"]: hook for hook in manifest} - for hook in repo['hooks']: - if hook['id'] not in by_id: + for hook in repo["hooks"]: + if hook["id"] not in by_id: continue deps = hook.get( - 'additional_dependencies', - by_id[hook['id']]['additional_dependencies'], + "additional_dependencies", + by_id[hook["id"]]["additional_dependencies"], + ) + unused_repos.discard( + ( + store.db_repo_name(repo["repo"], deps), + repo["rev"], + ) ) - unused_repos.discard(( - store.db_repo_name(repo['repo'], deps), repo['rev'], - )) def _gc(store: Store) -> int: with store.exclusive_lock(), store.connect() as db: store._create_configs_table(db) - repos = db.execute('SELECT repo, ref, path FROM repos').fetchall() + repos = db.execute("SELECT repo, ref, path FROM repos").fetchall() all_repos = {(repo, ref): path for repo, ref, path in repos} unused_repos = set(all_repos) - configs_rows = db.execute('SELECT path FROM configs').fetchall() + configs_rows = db.execute("SELECT path FROM configs").fetchall() configs = [path for path, in configs_rows] dead_configs = [] @@ -77,14 +82,14 @@ def _gc(store: Store) -> int: dead_configs.append(config_path) continue else: - for repo in config['repos']: + for repo in config["repos"]: _mark_used_repos(store, all_repos, unused_repos, repo) paths = [(path,) for path in dead_configs] - db.executemany('DELETE FROM configs WHERE path = ?', paths) + db.executemany("DELETE FROM configs WHERE path = ?", paths) db.executemany( - 'DELETE FROM repos WHERE repo = ? and ref = ?', + "DELETE FROM repos WHERE repo = ? and ref = ?", sorted(unused_repos), ) for k in unused_repos: @@ -94,5 +99,5 @@ def _gc(store: Store) -> int: def gc(store: Store) -> int: - output.write_line(f'{_gc(store)} repo(s) removed.') + output.write_line(f"{_gc(store)} repo(s) removed.") return 0 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hazmat.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hazmat.py index 01b27ce..c9bf719 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hazmat.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hazmat.py @@ -8,23 +8,26 @@ from pre_commit.parse_shebang import normalize_cmd def add_parsers(parser: argparse.ArgumentParser) -> None: - subparsers = parser.add_subparsers(dest='tool') + subparsers = parser.add_subparsers(dest="tool") cd_parser = subparsers.add_parser( - 'cd', help='cd to a subdir and run the command', + "cd", + help="cd to a subdir and run the command", ) - cd_parser.add_argument('subdir') - cd_parser.add_argument('cmd', nargs=argparse.REMAINDER) + cd_parser.add_argument("subdir") + cd_parser.add_argument("cmd", nargs=argparse.REMAINDER) ignore_exit_code_parser = subparsers.add_parser( - 'ignore-exit-code', help='run the command but ignore the exit code', + "ignore-exit-code", + help="run the command but ignore the exit code", ) - ignore_exit_code_parser.add_argument('cmd', nargs=argparse.REMAINDER) + ignore_exit_code_parser.add_argument("cmd", nargs=argparse.REMAINDER) n1_parser = subparsers.add_parser( - 'n1', help='run the command once per filename', + "n1", + help="run the command once per filename", ) - n1_parser.add_argument('cmd', nargs=argparse.REMAINDER) + n1_parser.add_argument("cmd", nargs=argparse.REMAINDER) def _cmd_filenames(cmd: tuple[str, ...]) -> tuple[ @@ -32,23 +35,23 @@ def _cmd_filenames(cmd: tuple[str, ...]) -> tuple[ tuple[str, ...], ]: for idx, val in enumerate(reversed(cmd)): - if val == '--': + if val == "--": split = len(cmd) - idx break else: - raise SystemExit('hazmat entry must end with `--`') + raise SystemExit("hazmat entry must end with `--`") - return cmd[:split - 1], cmd[split:] + return cmd[: split - 1], cmd[split:] def cd(subdir: str, cmd: tuple[str, ...]) -> int: cmd, filenames = _cmd_filenames(cmd) - prefix = f'{subdir}/' + prefix = f"{subdir}/" new_filenames = [] for filename in filenames: if not filename.startswith(prefix): - raise SystemExit(f'unexpected file without {prefix=}: {filename}') + raise SystemExit(f"unexpected file without {prefix=}: {filename}") else: new_filenames.append(filename.removeprefix(prefix)) @@ -73,14 +76,14 @@ def n1(cmd: tuple[str, ...]) -> int: def impl(args: argparse.Namespace) -> int: args.cmd = tuple(args.cmd) - if args.tool == 'cd': + if args.tool == "cd": return cd(args.subdir, args.cmd) - elif args.tool == 'ignore-exit-code': + elif args.tool == "ignore-exit-code": return ignore_exit_code(args.cmd) - elif args.tool == 'n1': + elif args.tool == "n1": return n1(args.cmd) else: - raise NotImplementedError(f'unexpected tool: {args.tool}') + raise NotImplementedError(f"unexpected tool: {args.tool}") def main(argv: Sequence[str] | None = None) -> int: @@ -91,5 +94,5 @@ def main(argv: Sequence[str] | None = None) -> int: return impl(args) -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hook_impl.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hook_impl.py index de5c8f3..813f4fd 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hook_impl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/hook_impl.py @@ -11,78 +11,78 @@ from pre_commit.envcontext import envcontext from pre_commit.parse_shebang import normalize_cmd from pre_commit.store import Store -Z40 = '0' * 40 +Z40 = "0" * 40 def _run_legacy( - hook_type: str, - hook_dir: str, - args: Sequence[str], + hook_type: str, + hook_dir: str, + args: Sequence[str], ) -> tuple[int, bytes]: - if os.environ.get('PRE_COMMIT_RUNNING_LEGACY'): + if os.environ.get("PRE_COMMIT_RUNNING_LEGACY"): raise SystemExit( f"bug: pre-commit's script is installed in migration mode\n" - f'run `pre-commit install -f --hook-type {hook_type}` to fix ' - f'this\n\n' - f'Please report this bug at ' - f'https://github.com/pre-commit/pre-commit/issues', + f"run `pre-commit install -f --hook-type {hook_type}` to fix " + f"this\n\n" + f"Please report this bug at " + f"https://github.com/pre-commit/pre-commit/issues", ) - if hook_type == 'pre-push': + if hook_type == "pre-push": stdin = sys.stdin.buffer.read() else: - stdin = b'' + stdin = b"" # not running in legacy mode - legacy_hook = os.path.join(hook_dir, f'{hook_type}.legacy') + legacy_hook = os.path.join(hook_dir, f"{hook_type}.legacy") if not os.access(legacy_hook, os.X_OK): return 0, stdin - with envcontext((('PRE_COMMIT_RUNNING_LEGACY', '1'),)): + with envcontext((("PRE_COMMIT_RUNNING_LEGACY", "1"),)): cmd = normalize_cmd((legacy_hook, *args)) return subprocess.run(cmd, input=stdin).returncode, stdin def _validate_config( - retv: int, - config: str, - skip_on_missing_config: bool, + retv: int, + config: str, + skip_on_missing_config: bool, ) -> None: if not os.path.isfile(config): - if skip_on_missing_config or os.getenv('PRE_COMMIT_ALLOW_NO_CONFIG'): - print(f'`{config}` config file not found. Skipping `pre-commit`.') + if skip_on_missing_config or os.getenv("PRE_COMMIT_ALLOW_NO_CONFIG"): + print(f"`{config}` config file not found. Skipping `pre-commit`.") raise SystemExit(retv) else: print( - f'No {config} file was found\n' - f'- To temporarily silence this, run ' - f'`PRE_COMMIT_ALLOW_NO_CONFIG=1 git ...`\n' - f'- To permanently silence this, install pre-commit with the ' - f'--allow-missing-config option\n' - f'- To uninstall pre-commit run `pre-commit uninstall`', + f"No {config} file was found\n" + f"- To temporarily silence this, run " + f"`PRE_COMMIT_ALLOW_NO_CONFIG=1 git ...`\n" + f"- To permanently silence this, install pre-commit with the " + f"--allow-missing-config option\n" + f"- To uninstall pre-commit run `pre-commit uninstall`", ) raise SystemExit(1) def _ns( - hook_type: str, - color: bool, - *, - all_files: bool = False, - remote_branch: str | None = None, - local_branch: str | None = None, - from_ref: str | None = None, - to_ref: str | None = None, - pre_rebase_upstream: str | None = None, - pre_rebase_branch: str | None = None, - remote_name: str | None = None, - remote_url: str | None = None, - commit_msg_filename: str | None = None, - prepare_commit_message_source: str | None = None, - commit_object_name: str | None = None, - checkout_type: str | None = None, - is_squash_merge: str | None = None, - rewrite_command: str | None = None, + hook_type: str, + color: bool, + *, + all_files: bool = False, + remote_branch: str | None = None, + local_branch: str | None = None, + from_ref: str | None = None, + to_ref: str | None = None, + pre_rebase_upstream: str | None = None, + pre_rebase_branch: str | None = None, + remote_name: str | None = None, + remote_url: str | None = None, + commit_msg_filename: str | None = None, + prepare_commit_message_source: str | None = None, + commit_object_name: str | None = None, + checkout_type: str | None = None, + is_squash_merge: str | None = None, + rewrite_command: str | None = None, ) -> argparse.Namespace: return argparse.Namespace( color=color, @@ -111,13 +111,13 @@ def _ns( def _rev_exists(rev: str) -> bool: - return not subprocess.call(('git', 'rev-list', '--quiet', rev)) + return not subprocess.call(("git", "rev-list", "--quiet", rev)) def _pre_push_ns( - color: bool, - args: Sequence[str], - stdin: bytes, + color: bool, + args: Sequence[str], + stdin: bytes, ) -> argparse.Namespace | None: remote_name = args[0] remote_url = args[1] @@ -129,40 +129,59 @@ def _pre_push_ns( continue elif remote_sha != Z40 and _rev_exists(remote_sha): return _ns( - 'pre-push', color, - from_ref=remote_sha, to_ref=local_sha, + "pre-push", + color, + from_ref=remote_sha, + to_ref=local_sha, remote_branch=remote_branch, local_branch=local_branch, - remote_name=remote_name, remote_url=remote_url, + remote_name=remote_name, + remote_url=remote_url, ) else: # ancestors not found in remote - ancestors = subprocess.check_output(( - 'git', 'rev-list', local_sha, '--topo-order', '--reverse', - '--not', f'--remotes={remote_name}', - )).decode().strip() + ancestors = ( + subprocess.check_output( + ( + "git", + "rev-list", + local_sha, + "--topo-order", + "--reverse", + "--not", + f"--remotes={remote_name}", + ) + ) + .decode() + .strip() + ) if not ancestors: continue else: first_ancestor = ancestors.splitlines()[0] - cmd = ('git', 'rev-list', '--max-parents=0', local_sha) + cmd = ("git", "rev-list", "--max-parents=0", local_sha) roots = set(subprocess.check_output(cmd).decode().splitlines()) if first_ancestor in roots: # pushing the whole tree including root commit return _ns( - 'pre-push', color, + "pre-push", + color, all_files=True, - remote_name=remote_name, remote_url=remote_url, + remote_name=remote_name, + remote_url=remote_url, remote_branch=remote_branch, local_branch=local_branch, ) else: - rev_cmd = ('git', 'rev-parse', f'{first_ancestor}^') + rev_cmd = ("git", "rev-parse", f"{first_ancestor}^") source = subprocess.check_output(rev_cmd).decode().strip() return _ns( - 'pre-push', color, - from_ref=source, to_ref=local_sha, - remote_name=remote_name, remote_url=remote_url, + "pre-push", + color, + from_ref=source, + to_ref=local_sha, + remote_name=remote_name, + remote_url=remote_url, remote_branch=remote_branch, local_branch=local_branch, ) @@ -172,96 +191,106 @@ def _pre_push_ns( _EXPECTED_ARG_LENGTH_BY_HOOK = { - 'commit-msg': 1, - 'post-checkout': 3, - 'post-commit': 0, - 'pre-commit': 0, - 'pre-merge-commit': 0, - 'post-merge': 1, - 'post-rewrite': 1, - 'pre-push': 2, + "commit-msg": 1, + "post-checkout": 3, + "post-commit": 0, + "pre-commit": 0, + "pre-merge-commit": 0, + "post-merge": 1, + "post-rewrite": 1, + "pre-push": 2, } def _check_args_length(hook_type: str, args: Sequence[str]) -> None: - if hook_type == 'prepare-commit-msg': + if hook_type == "prepare-commit-msg": if len(args) < 1 or len(args) > 3: raise SystemExit( - f'hook-impl for {hook_type} expected 1, 2, or 3 arguments ' - f'but got {len(args)}: {args}', + f"hook-impl for {hook_type} expected 1, 2, or 3 arguments " + f"but got {len(args)}: {args}", ) - elif hook_type == 'pre-rebase': + elif hook_type == "pre-rebase": if len(args) < 1 or len(args) > 2: raise SystemExit( - f'hook-impl for {hook_type} expected 1 or 2 arguments ' - f'but got {len(args)}: {args}', + f"hook-impl for {hook_type} expected 1 or 2 arguments " + f"but got {len(args)}: {args}", ) elif hook_type in _EXPECTED_ARG_LENGTH_BY_HOOK: expected = _EXPECTED_ARG_LENGTH_BY_HOOK[hook_type] if len(args) != expected: - arguments_s = 'argument' if expected == 1 else 'arguments' + arguments_s = "argument" if expected == 1 else "arguments" raise SystemExit( - f'hook-impl for {hook_type} expected {expected} {arguments_s} ' - f'but got {len(args)}: {args}', + f"hook-impl for {hook_type} expected {expected} {arguments_s} " + f"but got {len(args)}: {args}", ) else: - raise AssertionError(f'unexpected hook type: {hook_type}') + raise AssertionError(f"unexpected hook type: {hook_type}") def _run_ns( - hook_type: str, - color: bool, - args: Sequence[str], - stdin: bytes, + hook_type: str, + color: bool, + args: Sequence[str], + stdin: bytes, ) -> argparse.Namespace | None: _check_args_length(hook_type, args) - if hook_type == 'pre-push': + if hook_type == "pre-push": return _pre_push_ns(color, args, stdin) - elif hook_type in 'commit-msg': + elif hook_type in "commit-msg": return _ns(hook_type, color, commit_msg_filename=args[0]) - elif hook_type == 'prepare-commit-msg' and len(args) == 1: + elif hook_type == "prepare-commit-msg" and len(args) == 1: return _ns(hook_type, color, commit_msg_filename=args[0]) - elif hook_type == 'prepare-commit-msg' and len(args) == 2: + elif hook_type == "prepare-commit-msg" and len(args) == 2: return _ns( - hook_type, color, commit_msg_filename=args[0], + hook_type, + color, + commit_msg_filename=args[0], prepare_commit_message_source=args[1], ) - elif hook_type == 'prepare-commit-msg' and len(args) == 3: + elif hook_type == "prepare-commit-msg" and len(args) == 3: return _ns( - hook_type, color, commit_msg_filename=args[0], - prepare_commit_message_source=args[1], commit_object_name=args[2], + hook_type, + color, + commit_msg_filename=args[0], + prepare_commit_message_source=args[1], + commit_object_name=args[2], ) - elif hook_type in {'post-commit', 'pre-merge-commit', 'pre-commit'}: + elif hook_type in {"post-commit", "pre-merge-commit", "pre-commit"}: return _ns(hook_type, color) - elif hook_type == 'post-checkout': + elif hook_type == "post-checkout": return _ns( - hook_type, color, - from_ref=args[0], to_ref=args[1], checkout_type=args[2], + hook_type, + color, + from_ref=args[0], + to_ref=args[1], + checkout_type=args[2], ) - elif hook_type == 'post-merge': + elif hook_type == "post-merge": return _ns(hook_type, color, is_squash_merge=args[0]) - elif hook_type == 'post-rewrite': + elif hook_type == "post-rewrite": return _ns(hook_type, color, rewrite_command=args[0]) - elif hook_type == 'pre-rebase' and len(args) == 1: + elif hook_type == "pre-rebase" and len(args) == 1: return _ns(hook_type, color, pre_rebase_upstream=args[0]) - elif hook_type == 'pre-rebase' and len(args) == 2: + elif hook_type == "pre-rebase" and len(args) == 2: return _ns( - hook_type, color, pre_rebase_upstream=args[0], + hook_type, + color, + pre_rebase_upstream=args[0], pre_rebase_branch=args[1], ) else: - raise AssertionError(f'unexpected hook type: {hook_type}') + raise AssertionError(f"unexpected hook type: {hook_type}") def hook_impl( - store: Store, - *, - config: str, - color: bool, - hook_type: str, - hook_dir: str, - skip_on_missing_config: bool, - args: Sequence[str], + store: Store, + *, + config: str, + color: bool, + hook_type: str, + hook_dir: str, + skip_on_missing_config: bool, + args: Sequence[str], ) -> int: retv, stdin = _run_legacy(hook_type, hook_dir, args) _validate_config(retv, config, skip_on_missing_config) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/init_templatedir.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/init_templatedir.py index 08af656..d330c6b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/init_templatedir.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/init_templatedir.py @@ -8,15 +8,15 @@ from pre_commit.store import Store from pre_commit.util import CalledProcessError from pre_commit.util import cmd_output -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") def init_templatedir( - config_file: str, - store: Store, - directory: str, - hook_types: list[str] | None, - skip_on_missing_config: bool = True, + config_file: str, + store: Store, + directory: str, + hook_types: list[str] | None, + skip_on_missing_config: bool = True, ) -> int: install( config_file, @@ -27,13 +27,13 @@ def init_templatedir( git_dir=directory, ) try: - _, out, _ = cmd_output('git', 'config', 'init.templateDir') + _, out, _ = cmd_output("git", "config", "init.templateDir") except CalledProcessError: configured_path = None else: configured_path = os.path.realpath(os.path.expanduser(out.strip())) dest = os.path.realpath(directory) if configured_path != dest: - logger.warning('`init.templateDir` not set to the target directory') - logger.warning(f'maybe `git config --global init.templateDir {dest}`?') + logger.warning("`init.templateDir` not set to the target directory") + logger.warning(f"maybe `git config --global init.templateDir {dest}`?") return 0 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/install_uninstall.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/install_uninstall.py index d19e0d4..c34e752 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/install_uninstall.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/install_uninstall.py @@ -16,20 +16,19 @@ from pre_commit.store import Store from pre_commit.util import make_executable from pre_commit.util import resource_text - logger = logging.getLogger(__name__) # This is used to identify the hook file we install PRIOR_HASHES = ( - b'4d9958c90bc262f47553e2c073f14cfe', - b'd8ee923c46731b42cd95cc869add4062', - b'49fd668cb42069aa1b6048464be5d395', - b'79f09a650522a87b0da915d0d983b2de', - b'e358c9dae00eac5d06b38dfdb1e33a8c', + b"4d9958c90bc262f47553e2c073f14cfe", + b"d8ee923c46731b42cd95cc869add4062", + b"49fd668cb42069aa1b6048464be5d395", + b"79f09a650522a87b0da915d0d983b2de", + b"e358c9dae00eac5d06b38dfdb1e33a8c", ) -CURRENT_HASH = b'138fd403232d2ddd5efb44317e38bf03' -TEMPLATE_START = '# start templated\n' -TEMPLATE_END = '# end templated\n' +CURRENT_HASH = b"138fd403232d2ddd5efb44317e38bf03" +TEMPLATE_START = "# start templated\n" +TEMPLATE_END = "# end templated\n" def _hook_types(cfg_filename: str, hook_types: list[str] | None) -> list[str]: @@ -39,34 +38,34 @@ def _hook_types(cfg_filename: str, hook_types: list[str] | None) -> list[str]: try: cfg = load_config(cfg_filename) except InvalidConfigError: - return ['pre-commit'] + return ["pre-commit"] else: - return cfg['default_install_hook_types'] + return cfg["default_install_hook_types"] def _hook_paths( - hook_type: str, - git_dir: str | None = None, + hook_type: str, + git_dir: str | None = None, ) -> tuple[str, str]: git_dir = git_dir if git_dir is not None else git.get_git_common_dir() - pth = os.path.join(git_dir, 'hooks', hook_type) - return pth, f'{pth}.legacy' + pth = os.path.join(git_dir, "hooks", hook_type) + return pth, f"{pth}.legacy" def is_our_script(filename: str) -> bool: if not os.path.exists(filename): # pragma: win32 no cover (symlink) return False - with open(filename, 'rb') as f: + with open(filename, "rb") as f: contents = f.read() return any(h in contents for h in (CURRENT_HASH,) + PRIOR_HASHES) def _install_hook_script( - config_file: str, - hook_type: str, - overwrite: bool = False, - skip_on_missing_config: bool = False, - git_dir: str | None = None, + config_file: str, + hook_type: str, + overwrite: bool = False, + skip_on_missing_config: bool = False, + git_dir: str | None = None, ) -> None: hook_path, legacy_path = _hook_paths(hook_type, git_dir=git_dir) @@ -81,16 +80,16 @@ def _install_hook_script( os.remove(legacy_path) elif os.path.exists(legacy_path): output.write_line( - f'Running in migration mode with existing hooks at {legacy_path}\n' - f'Use -f to use only pre-commit.', + f"Running in migration mode with existing hooks at {legacy_path}\n" + f"Use -f to use only pre-commit.", ) - args = ['hook-impl', f'--config={config_file}', f'--hook-type={hook_type}'] + args = ["hook-impl", f"--config={config_file}", f"--hook-type={hook_type}"] if skip_on_missing_config: - args.append('--skip-on-missing-config') + args.append("--skip-on-missing-config") - with open(hook_path, 'w') as hook_file: - contents = resource_text('hook-tmpl') + with open(hook_path, "w") as hook_file: + contents = resource_text("hook-tmpl") before, rest = contents.split(TEMPLATE_START) _, after = rest.split(TEMPLATE_END) @@ -98,38 +97,39 @@ def _install_hook_script( # though we use bash-specific features `sh` on windows is actually # bash in "POSIXLY_CORRECT" mode which still supports the features we # use: subshells / arrays - if sys.platform == 'win32': # pragma: win32 cover - hook_file.write('#!/bin/sh\n') + if sys.platform == "win32": # pragma: win32 cover + hook_file.write("#!/bin/sh\n") hook_file.write(before + TEMPLATE_START) - hook_file.write(f'INSTALL_PYTHON={shlex.quote(sys.executable)}\n') + hook_file.write(f"INSTALL_PYTHON={shlex.quote(sys.executable)}\n") args_s = shlex.join(args) - hook_file.write(f'ARGS=({args_s})\n') + hook_file.write(f"ARGS=({args_s})\n") hook_file.write(TEMPLATE_END + after) make_executable(hook_path) - output.write_line(f'pre-commit installed at {hook_path}') + output.write_line(f"pre-commit installed at {hook_path}") def install( - config_file: str, - store: Store, - hook_types: list[str] | None, - overwrite: bool = False, - hooks: bool = False, - skip_on_missing_config: bool = False, - git_dir: str | None = None, + config_file: str, + store: Store, + hook_types: list[str] | None, + overwrite: bool = False, + hooks: bool = False, + skip_on_missing_config: bool = False, + git_dir: str | None = None, ) -> int: if git_dir is None and git.has_core_hookpaths_set(): logger.error( - 'Cowardly refusing to install hooks with `core.hooksPath` set.\n' - 'hint: `git config --unset-all core.hooksPath`', + "Cowardly refusing to install hooks with `core.hooksPath` set.\n" + "hint: `git config --unset-all core.hooksPath`", ) return 1 for hook_type in _hook_types(config_file, hook_types): _install_hook_script( - config_file, hook_type, + config_file, + hook_type, overwrite=overwrite, skip_on_missing_config=skip_on_missing_config, git_dir=git_dir, @@ -154,11 +154,11 @@ def _uninstall_hook_script(hook_type: str) -> None: return os.remove(hook_path) - output.write_line(f'{hook_type} uninstalled') + output.write_line(f"{hook_type} uninstalled") if os.path.exists(legacy_path): os.replace(legacy_path, hook_path) - output.write_line(f'Restored previous hooks to {hook_path}') + output.write_line(f"Restored previous hooks to {hook_path}") def uninstall(config_file: str, hook_types: list[str] | None) -> int: diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/migrate_config.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/migrate_config.py index b04c53a..1c77308 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/migrate_config.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/migrate_config.py @@ -19,7 +19,7 @@ from pre_commit.yaml_rewrite import SequenceItem def _is_header_line(line: str) -> bool: - return line.startswith(('#', '---')) or not line.strip() + return line.startswith(("#", "---")) or not line.strip() def _migrate_map(contents: str) -> str: @@ -31,13 +31,13 @@ def _migrate_map(contents: str) -> str: while i < len(lines) and _is_header_line(lines[i]): i += 1 - header = ''.join(lines[:i]) - rest = ''.join(lines[i:]) + header = "".join(lines[:i]) + rest = "".join(lines[i:]) # If they are using the "default" flow style of yaml, this operation # will yield a valid configuration try: - trial_contents = f'{header}repos:\n{rest}' + trial_contents = f"{header}repos:\n{rest}" yaml_load(trial_contents) contents = trial_contents except yaml.YAMLError: @@ -47,12 +47,12 @@ def _migrate_map(contents: str) -> str: def _preserve_style(n: ScalarNode, *, s: str) -> str: - style = n.style or '' - return f'{style}{s}{style}' + style = n.style or "" + return f"{style}{s}{style}" def _fix_stage(n: ScalarNode) -> str: - return _preserve_style(n, s=f'pre-{n.value}') + return _preserve_style(n, s=f"pre-{n.value}") def _migrate_composed(contents: str) -> str: @@ -60,42 +60,42 @@ def _migrate_composed(contents: str) -> str: rewrites: list[tuple[ScalarNode, Callable[[ScalarNode], str]]] = [] # sha -> rev - sha_to_rev_replace = functools.partial(_preserve_style, s='rev') + sha_to_rev_replace = functools.partial(_preserve_style, s="rev") sha_to_rev_matcher = ( - MappingValue('repos'), + MappingValue("repos"), SequenceItem(), - MappingKey('sha'), + MappingKey("sha"), ) for node in match(tree, sha_to_rev_matcher): rewrites.append((node, sha_to_rev_replace)) # python_venv -> python language_matcher = ( - MappingValue('repos'), + MappingValue("repos"), SequenceItem(), - MappingValue('hooks'), + MappingValue("hooks"), SequenceItem(), - MappingValue('language'), + MappingValue("language"), ) - python_venv_replace = functools.partial(_preserve_style, s='python') + python_venv_replace = functools.partial(_preserve_style, s="python") for node in match(tree, language_matcher): - if node.value == 'python_venv': + if node.value == "python_venv": rewrites.append((node, python_venv_replace)) # stages rewrites - default_stages_matcher = (MappingValue('default_stages'), SequenceItem()) + default_stages_matcher = (MappingValue("default_stages"), SequenceItem()) default_stages_match = match(tree, default_stages_matcher) hook_stages_matcher = ( - MappingValue('repos'), + MappingValue("repos"), SequenceItem(), - MappingValue('hooks'), + MappingValue("hooks"), SequenceItem(), - MappingValue('stages'), + MappingValue("stages"), SequenceItem(), ) hook_stages_match = match(tree, hook_stages_matcher) for node in itertools.chain(default_stages_match, hook_stages_match): - if node.value in {'commit', 'push', 'merge-commit'}: + if node.value in {"commit", "push", "merge-commit"}: rewrites.append((node, _fix_stage)) rewrites.sort(reverse=True, key=lambda nf: nf[0].start_mark.index) @@ -103,12 +103,12 @@ def _migrate_composed(contents: str) -> str: src_parts = [] end: int | None = None for node, func in rewrites: - src_parts.append(contents[node.end_mark.index:end]) + src_parts.append(contents[node.end_mark.index : end]) src_parts.append(func(node)) end = node.start_mark.index src_parts.append(contents[:end]) src_parts.reverse() - return ''.join(src_parts) + return "".join(src_parts) def migrate_config(config_file: str, quiet: bool = False) -> int: @@ -116,7 +116,7 @@ def migrate_config(config_file: str, quiet: bool = False) -> int: orig_contents = contents = f.read() with cfgv.reraise_as(InvalidConfigError): - with cfgv.validate_context(f'File {config_file}'): + with cfgv.validate_context(f"File {config_file}"): try: yaml_load(orig_contents) except Exception as e: @@ -126,10 +126,10 @@ def migrate_config(config_file: str, quiet: bool = False) -> int: contents = _migrate_composed(contents) if contents != orig_contents: - with open(config_file, 'w') as f: + with open(config_file, "w") as f: f.write(contents) - print('Configuration has been migrated.') + print("Configuration has been migrated.") elif not quiet: - print('Configuration is already migrated.') + print("Configuration is already migrated.") return 0 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/run.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/run.py index 8ab505f..2d57614 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/run.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/run.py @@ -29,42 +29,42 @@ from pre_commit.staged_files_only import staged_files_only from pre_commit.store import Store from pre_commit.util import cmd_output_b - -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") def _len_cjk(msg: str) -> int: - widths = {'A': 1, 'F': 2, 'H': 1, 'N': 1, 'Na': 1, 'W': 2} + widths = {"A": 1, "F": 2, "H": 1, "N": 1, "Na": 1, "W": 2} return sum(widths[unicodedata.east_asian_width(c)] for c in msg) def _start_msg(*, start: str, cols: int, end_len: int) -> str: - dots = '.' * (cols - _len_cjk(start) - end_len - 1) - return f'{start}{dots}' + dots = "." * (cols - _len_cjk(start) - end_len - 1) + return f"{start}{dots}" def _full_msg( - *, - start: str, - cols: int, - end_msg: str, - end_color: str, - use_color: bool, - postfix: str = '', + *, + start: str, + cols: int, + end_msg: str, + end_color: str, + use_color: bool, + postfix: str = "", ) -> str: - dots = '.' * (cols - _len_cjk(start) - len(postfix) - len(end_msg) - 1) + dots = "." * (cols - _len_cjk(start) - len(postfix) - len(end_msg) - 1) end = color.format_color(end_msg, end_color, use_color) - return f'{start}{dots}{postfix}{end}\n' + return f"{start}{dots}{postfix}{end}\n" def filter_by_include_exclude( - names: Iterable[str], - include: str, - exclude: str, + names: Iterable[str], + include: str, + exclude: str, ) -> Generator[str]: include_re, exclude_re = re.compile(include), re.compile(exclude) return ( - filename for filename in names + filename + for filename in names if include_re.search(filename) if not exclude_re.search(filename) ) @@ -79,11 +79,11 @@ class Classifier: return tags_from_path(filename) def by_types( - self, - names: Iterable[str], - types: Iterable[str], - types_or: Iterable[str], - exclude_types: Iterable[str], + self, + names: Iterable[str], + types: Iterable[str], + types_or: Iterable[str], + exclude_types: Iterable[str], ) -> Generator[str]: types = frozenset(types) types_or = frozenset(types_or) @@ -91,9 +91,9 @@ class Classifier: for filename in names: tags = self._types_for_file(filename) if ( - tags >= types and - (not types_or or tags & types_or) and - not tags & exclude_types + tags >= types + and (not types_or or tags & types_or) + and not tags & exclude_types ): yield filename @@ -111,28 +111,28 @@ class Classifier: @classmethod def from_config( - cls, - filenames: Iterable[str], - include: str, - exclude: str, + cls, + filenames: Iterable[str], + include: str, + exclude: str, ) -> Classifier: # on windows we normalize all filenames to use forward slashes # this makes it easier to filter using the `files:` regex # this also makes improperly quoted shell-based hooks work better # see #1173 - if os.altsep == '/' and os.sep == '\\': + if os.altsep == "/" and os.sep == "\\": filenames = (f.replace(os.sep, os.altsep) for f in filenames) filenames = filter_by_include_exclude(filenames, include, exclude) return Classifier(filenames) def _get_skips(environ: MutableMapping[str, str]) -> set[str]: - skips = environ.get('SKIP', '') - return {skip.strip() for skip in skips.split(',') if skip.strip()} + skips = environ.get("SKIP", "") + return {skip.strip() for skip in skips.split(",") if skip.strip()} -SKIPPED = 'Skipped' -NO_FILES = '(no files to check)' +SKIPPED = "Skipped" +NO_FILES = "(no files to check)" def _subtle_line(s: str, use_color: bool) -> None: @@ -140,13 +140,13 @@ def _subtle_line(s: str, use_color: bool) -> None: def _run_single_hook( - classifier: Classifier, - hook: Hook, - skips: set[str], - cols: int, - diff_before: bytes, - verbose: bool, - use_color: bool, + classifier: Classifier, + hook: Hook, + skips: set[str], + cols: int, + diff_before: bytes, + verbose: bool, + use_color: bool, ) -> tuple[bool, bytes]: filenames = tuple(classifier.filenames_for_hook(hook)) @@ -164,7 +164,7 @@ def _run_single_hook( retcode = 0 diff_after = diff_before files_modified = False - out = b'' + out = b"" elif not filenames and not hook.always_run: output.write( _full_msg( @@ -180,7 +180,7 @@ def _run_single_hook( retcode = 0 diff_after = diff_before files_modified = False - out = b'' + out = b"" else: # print hook and dots first in case the hook takes a while to run output.write(_start_msg(start=hook.name, end_len=6, cols=cols)) @@ -195,7 +195,7 @@ def _run_single_hook( hook.entry, hook.args, filenames, - is_local=hook.src == 'local', + is_local=hook.src == "local", require_serial=hook.require_serial, color=use_color, ) @@ -207,25 +207,25 @@ def _run_single_hook( if retcode or files_modified: print_color = color.RED - status = 'Failed' + status = "Failed" else: print_color = color.GREEN - status = 'Passed' + status = "Passed" output.write_line(color.format_color(status, print_color, use_color)) if verbose or hook.verbose or retcode or files_modified: - _subtle_line(f'- hook id: {hook.id}', use_color) + _subtle_line(f"- hook id: {hook.id}", use_color) if (verbose or hook.verbose) and duration is not None: - _subtle_line(f'- duration: {duration}s', use_color) + _subtle_line(f"- duration: {duration}s", use_color) if retcode: - _subtle_line(f'- exit code: {retcode}', use_color) + _subtle_line(f"- exit code: {retcode}", use_color) # Print a message if failing due to file modifications if files_modified: - _subtle_line('- files were modified by this hook', use_color) + _subtle_line("- files were modified by this hook", use_color) if out.strip(): output.write_line() @@ -253,11 +253,14 @@ def _compute_cols(hooks: Sequence[Hook]) -> int: def _all_filenames(args: argparse.Namespace) -> Iterable[str]: # these hooks do not operate on files if args.hook_stage in { - 'post-checkout', 'post-commit', 'post-merge', 'post-rewrite', - 'pre-rebase', + "post-checkout", + "post-commit", + "post-merge", + "post-rewrite", + "pre-rebase", }: return () - elif args.hook_stage in {'prepare-commit-msg', 'commit-msg'}: + elif args.hook_stage in {"prepare-commit-msg", "commit-msg"}: return (args.commit_msg_filename,) elif args.from_ref and args.to_ref: return git.get_changed_files(args.from_ref, args.to_ref) @@ -273,148 +276,168 @@ def _all_filenames(args: argparse.Namespace) -> Iterable[str]: def _get_diff() -> bytes: _, out, _ = cmd_output_b( - 'git', 'diff', '--no-ext-diff', '--no-textconv', '--ignore-submodules', + "git", + "diff", + "--no-ext-diff", + "--no-textconv", + "--ignore-submodules", check=False, ) return out def _run_hooks( - config: dict[str, Any], - hooks: Sequence[Hook], - skips: set[str], - args: argparse.Namespace, + config: dict[str, Any], + hooks: Sequence[Hook], + skips: set[str], + args: argparse.Namespace, ) -> int: """Actually run the hooks.""" cols = _compute_cols(hooks) classifier = Classifier.from_config( - _all_filenames(args), config['files'], config['exclude'], + _all_filenames(args), + config["files"], + config["exclude"], ) retval = 0 prior_diff = _get_diff() for hook in hooks: current_retval, prior_diff = _run_single_hook( - classifier, hook, skips, cols, prior_diff, - verbose=args.verbose, use_color=args.color, + classifier, + hook, + skips, + cols, + prior_diff, + verbose=args.verbose, + use_color=args.color, ) retval |= current_retval - fail_fast = (config['fail_fast'] or hook.fail_fast or args.fail_fast) + fail_fast = config["fail_fast"] or hook.fail_fast or args.fail_fast if current_retval and fail_fast: break if retval and args.show_diff_on_failure and prior_diff: if args.all_files: output.write_line( - 'pre-commit hook(s) made changes.\n' - 'If you are seeing this message in CI, ' - 'reproduce locally with: `pre-commit run --all-files`.\n' - 'To run `pre-commit` as part of git workflow, use ' - '`pre-commit install`.', + "pre-commit hook(s) made changes.\n" + "If you are seeing this message in CI, " + "reproduce locally with: `pre-commit run --all-files`.\n" + "To run `pre-commit` as part of git workflow, use " + "`pre-commit install`.", ) - output.write_line('All changes made by hooks:') + output.write_line("All changes made by hooks:") # args.color is a boolean. # See user_color function in color.py - git_color_opt = 'always' if args.color else 'never' - subprocess.call(( - 'git', '--no-pager', 'diff', '--no-ext-diff', - f'--color={git_color_opt}', - )) + git_color_opt = "always" if args.color else "never" + subprocess.call( + ( + "git", + "--no-pager", + "diff", + "--no-ext-diff", + f"--color={git_color_opt}", + ) + ) return retval def _has_unmerged_paths() -> bool: - _, stdout, _ = cmd_output_b('git', 'ls-files', '--unmerged') + _, stdout, _ = cmd_output_b("git", "ls-files", "--unmerged") return bool(stdout.strip()) def _has_unstaged_config(config_file: str) -> bool: retcode, _, _ = cmd_output_b( - 'git', 'diff', '--quiet', '--no-ext-diff', config_file, check=False, + "git", + "diff", + "--quiet", + "--no-ext-diff", + config_file, + check=False, ) # be explicit, other git errors don't mean it has an unstaged config. return retcode == 1 def run( - config_file: str, - store: Store, - args: argparse.Namespace, - environ: MutableMapping[str, str] = os.environ, + config_file: str, + store: Store, + args: argparse.Namespace, + environ: MutableMapping[str, str] = os.environ, ) -> int: stash = not args.all_files and not args.files # Check if we have unresolved merge conflict files and fail fast. if stash and _has_unmerged_paths(): - logger.error('Unmerged files. Resolve before committing.') + logger.error("Unmerged files. Resolve before committing.") return 1 if bool(args.from_ref) != bool(args.to_ref): - logger.error('Specify both --from-ref and --to-ref.') + logger.error("Specify both --from-ref and --to-ref.") return 1 if stash and _has_unstaged_config(config_file): logger.error( - f'Your pre-commit configuration is unstaged.\n' - f'`git add {config_file}` to fix this.', + f"Your pre-commit configuration is unstaged.\n" + f"`git add {config_file}` to fix this.", ) return 1 if ( - args.hook_stage in {'prepare-commit-msg', 'commit-msg'} and - not args.commit_msg_filename + args.hook_stage in {"prepare-commit-msg", "commit-msg"} + and not args.commit_msg_filename ): logger.error( - f'`--commit-msg-filename` is required for ' - f'`--hook-stage {args.hook_stage}`', + f"`--commit-msg-filename` is required for " + f"`--hook-stage {args.hook_stage}`", ) return 1 # prevent recursive post-checkout hooks (#1418) - if ( - args.hook_stage == 'post-checkout' and - environ.get('_PRE_COMMIT_SKIP_POST_CHECKOUT') + if args.hook_stage == "post-checkout" and environ.get( + "_PRE_COMMIT_SKIP_POST_CHECKOUT" ): return 0 # Expose prepare_commit_message_source / commit_object_name # as environment variables for the hooks if args.prepare_commit_message_source: - environ['PRE_COMMIT_COMMIT_MSG_SOURCE'] = ( - args.prepare_commit_message_source - ) + environ["PRE_COMMIT_COMMIT_MSG_SOURCE"] = args.prepare_commit_message_source if args.commit_object_name: - environ['PRE_COMMIT_COMMIT_OBJECT_NAME'] = args.commit_object_name + environ["PRE_COMMIT_COMMIT_OBJECT_NAME"] = args.commit_object_name # Expose from-ref / to-ref as environment variables for hooks to consume if args.from_ref and args.to_ref: # legacy names - environ['PRE_COMMIT_ORIGIN'] = args.from_ref - environ['PRE_COMMIT_SOURCE'] = args.to_ref + environ["PRE_COMMIT_ORIGIN"] = args.from_ref + environ["PRE_COMMIT_SOURCE"] = args.to_ref # new names - environ['PRE_COMMIT_FROM_REF'] = args.from_ref - environ['PRE_COMMIT_TO_REF'] = args.to_ref + environ["PRE_COMMIT_FROM_REF"] = args.from_ref + environ["PRE_COMMIT_TO_REF"] = args.to_ref if args.pre_rebase_upstream and args.pre_rebase_branch: - environ['PRE_COMMIT_PRE_REBASE_UPSTREAM'] = args.pre_rebase_upstream - environ['PRE_COMMIT_PRE_REBASE_BRANCH'] = args.pre_rebase_branch + environ["PRE_COMMIT_PRE_REBASE_UPSTREAM"] = args.pre_rebase_upstream + environ["PRE_COMMIT_PRE_REBASE_BRANCH"] = args.pre_rebase_branch if ( - args.remote_name and args.remote_url and - args.remote_branch and args.local_branch + args.remote_name + and args.remote_url + and args.remote_branch + and args.local_branch ): - environ['PRE_COMMIT_LOCAL_BRANCH'] = args.local_branch - environ['PRE_COMMIT_REMOTE_BRANCH'] = args.remote_branch - environ['PRE_COMMIT_REMOTE_NAME'] = args.remote_name - environ['PRE_COMMIT_REMOTE_URL'] = args.remote_url + environ["PRE_COMMIT_LOCAL_BRANCH"] = args.local_branch + environ["PRE_COMMIT_REMOTE_BRANCH"] = args.remote_branch + environ["PRE_COMMIT_REMOTE_NAME"] = args.remote_name + environ["PRE_COMMIT_REMOTE_URL"] = args.remote_url if args.checkout_type: - environ['PRE_COMMIT_CHECKOUT_TYPE'] = args.checkout_type + environ["PRE_COMMIT_CHECKOUT_TYPE"] = args.checkout_type if args.is_squash_merge: - environ['PRE_COMMIT_IS_SQUASH_MERGE'] = args.is_squash_merge + environ["PRE_COMMIT_IS_SQUASH_MERGE"] = args.is_squash_merge if args.rewrite_command: - environ['PRE_COMMIT_REWRITE_COMMAND'] = args.rewrite_command + environ["PRE_COMMIT_REWRITE_COMMAND"] = args.rewrite_command # Set pre_commit flag - environ['PRE_COMMIT'] = '1' + environ["PRE_COMMIT"] = "1" with contextlib.ExitStack() as exit_stack: if stash: @@ -430,19 +453,17 @@ def run( if args.hook and not hooks: output.write_line( - f'No hook with id `{args.hook}` in stage `{args.hook_stage}`', + f"No hook with id `{args.hook}` in stage `{args.hook_stage}`", ) return 1 skips = _get_skips(environ) to_install = [ - hook - for hook in hooks - if hook.id not in skips and hook.alias not in skips + hook for hook in hooks if hook.id not in skips and hook.alias not in skips ] install_hook_envs(to_install, store) return _run_hooks(config, hooks, skips, args) # https://github.com/python/mypy/issues/7726 - raise AssertionError('unreachable') + raise AssertionError("unreachable") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/sample_config.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/sample_config.py index ce22f65..bf0d214 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/sample_config.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/sample_config.py @@ -1,5 +1,6 @@ from __future__ import annotations -SAMPLE_CONFIG = '''\ + +SAMPLE_CONFIG = """\ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: @@ -10,9 +11,9 @@ repos: - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files -''' +""" def sample_config() -> int: - print(SAMPLE_CONFIG, end='') + print(SAMPLE_CONFIG, end="") return 0 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/try_repo.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/try_repo.py index 539ed3c..3560a07 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/try_repo.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/commands/try_repo.py @@ -25,22 +25,22 @@ def _repo_ref(tmpdir: str, repo: str, ref: str | None) -> tuple[str, str]: ref = git.head_rev(repo) # if it exists on disk, we'll try and clone it with the local changes - if os.path.exists(repo) and git.has_diff('HEAD', repo=repo): - logger.warning('Creating temporary repo with uncommitted changes...') + if os.path.exists(repo) and git.has_diff("HEAD", repo=repo): + logger.warning("Creating temporary repo with uncommitted changes...") - shadow = os.path.join(tmpdir, 'shadow-repo') - cmd_output_b('git', 'clone', repo, shadow) - cmd_output_b('git', 'checkout', ref, '-b', '_pc_tmp', cwd=shadow) + shadow = os.path.join(tmpdir, "shadow-repo") + cmd_output_b("git", "clone", repo, shadow) + cmd_output_b("git", "checkout", ref, "-b", "_pc_tmp", cwd=shadow) - idx = git.git_path('index', repo=shadow) - objs = git.git_path('objects', repo=shadow) + idx = git.git_path("index", repo=shadow) + objs = git.git_path("objects", repo=shadow) env = dict(os.environ, GIT_INDEX_FILE=idx, GIT_OBJECT_DIRECTORY=objs) staged_files = git.get_staged_files(cwd=repo) if staged_files: - xargs(('git', 'add', '--'), staged_files, cwd=repo, env=env) + xargs(("git", "add", "--"), staged_files, cwd=repo, env=env) - cmd_output_b('git', 'add', '-u', cwd=repo, env=env) + cmd_output_b("git", "add", "-u", cwd=repo, env=env) git.commit(repo=shadow) return shadow, git.head_rev(shadow) @@ -54,24 +54,24 @@ def try_repo(args: argparse.Namespace) -> int: store = Store(tempdir) if args.hook: - hooks = [{'id': args.hook}] + hooks = [{"id": args.hook}] else: repo_path = store.clone(repo, ref) manifest = load_manifest(os.path.join(repo_path, C.MANIFEST_FILE)) - manifest = sorted(manifest, key=lambda hook: hook['id']) - hooks = [{'id': hook['id']} for hook in manifest] + manifest = sorted(manifest, key=lambda hook: hook["id"]) + hooks = [{"id": hook["id"]} for hook in manifest] - config = {'repos': [{'repo': repo, 'rev': ref, 'hooks': hooks}]} + config = {"repos": [{"repo": repo, "rev": ref, "hooks": hooks}]} config_s = yaml_dump(config) config_filename = os.path.join(tempdir, C.CONFIG_FILE) - with open(config_filename, 'w') as cfg: + with open(config_filename, "w") as cfg: cfg.write(config_s) - output.write_line('=' * 79) - output.write_line('Using config:') - output.write_line('=' * 79) + output.write_line("=" * 79) + output.write_line("Using config:") + output.write_line("=" * 79) output.write(config_s) - output.write_line('=' * 79) + output.write_line("=" * 79) return run(config_filename, store, args) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/constants.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/constants.py index 79a9bb6..44d5aa8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/constants.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/constants.py @@ -2,12 +2,12 @@ from __future__ import annotations import importlib.metadata -CONFIG_FILE = '.pre-commit-config.yaml' -MANIFEST_FILE = '.pre-commit-hooks.yaml' +CONFIG_FILE = ".pre-commit-config.yaml" +MANIFEST_FILE = ".pre-commit-hooks.yaml" # Bump when modifying `empty_template` -LOCAL_REPO_VERSION = '1' +LOCAL_REPO_VERSION = "1" -VERSION = importlib.metadata.version('pre_commit') +VERSION = importlib.metadata.version("pre_commit") -DEFAULT = 'default' +DEFAULT = "default" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/envcontext.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/envcontext.py index d4d2411..9508dd3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/envcontext.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/envcontext.py @@ -8,13 +8,13 @@ from collections.abc import MutableMapping from typing import NamedTuple from typing import Union -_Unset = enum.Enum('_Unset', 'UNSET') +_Unset = enum.Enum("_Unset", "UNSET") UNSET = _Unset.UNSET class Var(NamedTuple): name: str - default: str = '' + default: str = "" SubstitutionT = tuple[Union[str, Var], ...] @@ -23,7 +23,7 @@ PatchesT = tuple[tuple[str, ValueT], ...] def format_env(parts: SubstitutionT, env: MutableMapping[str, str]) -> str: - return ''.join( + return "".join( env.get(part.name, part.default) if isinstance(part, Var) else part for part in parts ) @@ -31,8 +31,8 @@ def format_env(parts: SubstitutionT, env: MutableMapping[str, str]) -> str: @contextlib.contextmanager def envcontext( - patch: PatchesT, - _env: MutableMapping[str, str] | None = None, + patch: PatchesT, + _env: MutableMapping[str, str] | None = None, ) -> Generator[None]: """In this context, `os.environ` is modified according to `patch`. diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/error_handler.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/error_handler.py index 4f0e057..7094229 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/error_handler.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/error_handler.py @@ -22,48 +22,48 @@ def _log_and_exit( exc: BaseException, formatted: str, ) -> None: - error_msg = f'{msg}: {type(exc).__name__}: '.encode() + force_bytes(exc) + error_msg = f"{msg}: {type(exc).__name__}: ".encode() + force_bytes(exc) output.write_line_b(error_msg) - _, git_version_b, _ = cmd_output_b('git', '--version', check=False) - git_version = git_version_b.decode(errors='backslashreplace').rstrip() + _, git_version_b, _ = cmd_output_b("git", "--version", check=False) + git_version = git_version_b.decode(errors="backslashreplace").rstrip() storedir = Store().directory - log_path = os.path.join(storedir, 'pre-commit.log') + log_path = os.path.join(storedir, "pre-commit.log") with contextlib.ExitStack() as ctx: if os.access(storedir, os.W_OK): - output.write_line(f'Check the log at {log_path}') - log: IO[bytes] = ctx.enter_context(open(log_path, 'wb')) + output.write_line(f"Check the log at {log_path}") + log: IO[bytes] = ctx.enter_context(open(log_path, "wb")) else: # pragma: win32 no cover - output.write_line(f'Failed to write to log at {log_path}') + output.write_line(f"Failed to write to log at {log_path}") log = sys.stdout.buffer _log_line = functools.partial(output.write_line, stream=log) _log_line_b = functools.partial(output.write_line_b, stream=log) - _log_line('### version information') + _log_line("### version information") _log_line() - _log_line('```') - _log_line(f'pre-commit version: {C.VERSION}') - _log_line(f'git --version: {git_version}') - _log_line('sys.version:') + _log_line("```") + _log_line(f"pre-commit version: {C.VERSION}") + _log_line(f"git --version: {git_version}") + _log_line("sys.version:") for line in sys.version.splitlines(): - _log_line(f' {line}') - _log_line(f'sys.executable: {sys.executable}') - _log_line(f'os.name: {os.name}') - _log_line(f'sys.platform: {sys.platform}') - _log_line('```') + _log_line(f" {line}") + _log_line(f"sys.executable: {sys.executable}") + _log_line(f"os.name: {os.name}") + _log_line(f"sys.platform: {sys.platform}") + _log_line("```") _log_line() - _log_line('### error information') + _log_line("### error information") _log_line() - _log_line('```') + _log_line("```") _log_line_b(error_msg) - _log_line('```') + _log_line("```") _log_line() - _log_line('```') + _log_line("```") _log_line(formatted.rstrip()) - _log_line('```') + _log_line("```") raise SystemExit(ret_code) @@ -73,9 +73,9 @@ def error_handler() -> Generator[None]: yield except (Exception, KeyboardInterrupt) as e: if isinstance(e, FatalError): - msg, ret_code = 'An error has occurred', 1 + msg, ret_code = "An error has occurred", 1 elif isinstance(e, KeyboardInterrupt): - msg, ret_code = 'Interrupted (^C)', 130 + msg, ret_code = "Interrupted (^C)", 130 else: - msg, ret_code = 'An unexpected error has occurred', 3 + msg, ret_code = "An unexpected error has occurred", 3 _log_and_exit(msg, ret_code, e, traceback.format_exc()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/file_lock.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/file_lock.py index 6223f86..e16df43 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/file_lock.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/file_lock.py @@ -6,20 +6,19 @@ import sys from collections.abc import Callable from collections.abc import Generator - -if sys.platform == 'win32': # pragma: no cover (windows) +if sys.platform == "win32": # pragma: no cover (windows) import msvcrt # https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/locking # on windows we lock "regions" of files, we don't care about the actual # byte region so we'll just pick *some* number here. - _region = 0xffff + _region = 0xFFFF @contextlib.contextmanager def _locked( - fileno: int, - blocked_cb: Callable[[], None], + fileno: int, + blocked_cb: Callable[[], None], ) -> Generator[None]: try: msvcrt.locking(fileno, msvcrt.LK_NBLCK, _region) @@ -46,13 +45,14 @@ if sys.platform == 'win32': # pragma: no cover (windows) # "Regions should be locked only briefly and should be unlocked # before closing a file or exiting the program." msvcrt.locking(fileno, msvcrt.LK_UNLCK, _region) + else: # pragma: win32 no cover import fcntl @contextlib.contextmanager def _locked( - fileno: int, - blocked_cb: Callable[[], None], + fileno: int, + blocked_cb: Callable[[], None], ) -> Generator[None]: try: fcntl.flock(fileno, fcntl.LOCK_EX | fcntl.LOCK_NB) @@ -67,9 +67,9 @@ else: # pragma: win32 no cover @contextlib.contextmanager def lock( - path: str, - blocked_cb: Callable[[], None], + path: str, + blocked_cb: Callable[[], None], ) -> Generator[None]: - with open(path, 'a+') as f: + with open(path, "a+") as f: with _locked(f.fileno(), blocked_cb): yield diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/git.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/git.py index ec1928f..2eb0d94 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/git.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/git.py @@ -13,13 +13,13 @@ from pre_commit.util import cmd_output_b logger = logging.getLogger(__name__) # see #2046 -NO_FS_MONITOR = ('-c', 'core.useBuiltinFSMonitor=false') +NO_FS_MONITOR = ("-c", "core.useBuiltinFSMonitor=false") def zsplit(s: str) -> list[str]: - s = s.strip('\0') + s = s.strip("\0") if s: - return s.split('\0') + return s.split("\0") else: return [] @@ -35,15 +35,21 @@ def no_git_env(_env: Mapping[str, str] | None = None) -> dict[str, str]: # GIT_INDEX_FILE: Causes 'error invalid object ...' during commit _env = _env if _env is not None else os.environ return { - k: v for k, v in _env.items() - if not k.startswith('GIT_') or - k.startswith(('GIT_CONFIG_KEY_', 'GIT_CONFIG_VALUE_')) or - k in { - 'GIT_EXEC_PATH', 'GIT_SSH', 'GIT_SSH_COMMAND', 'GIT_SSL_CAINFO', - 'GIT_SSL_NO_VERIFY', 'GIT_CONFIG_COUNT', - 'GIT_HTTP_PROXY_AUTHMETHOD', - 'GIT_ALLOW_PROTOCOL', - 'GIT_ASKPASS', + k: v + for k, v in _env.items() + if not k.startswith("GIT_") + or k.startswith(("GIT_CONFIG_KEY_", "GIT_CONFIG_VALUE_")) + or k + in { + "GIT_EXEC_PATH", + "GIT_SSH", + "GIT_SSH_COMMAND", + "GIT_SSL_CAINFO", + "GIT_SSL_NO_VERIFY", + "GIT_CONFIG_COUNT", + "GIT_HTTP_PROXY_AUTHMETHOD", + "GIT_ALLOW_PROTOCOL", + "GIT_ASKPASS", } } @@ -55,37 +61,39 @@ def get_root() -> str: # an extra check to see if we are in the .git directory. try: root = os.path.abspath( - cmd_output('git', 'rev-parse', '--show-cdup')[1].strip(), + cmd_output("git", "rev-parse", "--show-cdup")[1].strip(), ) inside_git_dir = cmd_output( - 'git', 'rev-parse', '--is-inside-git-dir', + "git", + "rev-parse", + "--is-inside-git-dir", )[1].strip() except CalledProcessError: raise FatalError( - 'git failed. Is it installed, and are you in a Git repository ' - 'directory?', + "git failed. Is it installed, and are you in a Git repository " + "directory?", ) - if inside_git_dir != 'false': + if inside_git_dir != "false": raise FatalError( - 'git toplevel unexpectedly empty! make sure you are not ' - 'inside the `.git` directory of your repository.', + "git toplevel unexpectedly empty! make sure you are not " + "inside the `.git` directory of your repository.", ) return root -def get_git_dir(git_root: str = '.') -> str: - opt = '--git-dir' - _, out, _ = cmd_output('git', 'rev-parse', opt, cwd=git_root) +def get_git_dir(git_root: str = ".") -> str: + opt = "--git-dir" + _, out, _ = cmd_output("git", "rev-parse", opt, cwd=git_root) git_dir = out.strip() if git_dir != opt: return os.path.normpath(os.path.join(git_root, git_dir)) else: - raise AssertionError('unreachable: no git dir') + raise AssertionError("unreachable: no git dir") -def get_git_common_dir(git_root: str = '.') -> str: - opt = '--git-common-dir' - _, out, _ = cmd_output('git', 'rev-parse', opt, cwd=git_root) +def get_git_common_dir(git_root: str = ".") -> str: + opt = "--git-common-dir" + _, out, _ = cmd_output("git", "rev-parse", opt, cwd=git_root) git_common_dir = out.strip() if git_common_dir != opt: return os.path.normpath(os.path.join(git_root, git_common_dir)) @@ -94,39 +102,46 @@ def get_git_common_dir(git_root: str = '.') -> str: def is_in_merge_conflict() -> bool: - git_dir = get_git_dir('.') - return ( - os.path.exists(os.path.join(git_dir, 'MERGE_MSG')) and - os.path.exists(os.path.join(git_dir, 'MERGE_HEAD')) + git_dir = get_git_dir(".") + return os.path.exists(os.path.join(git_dir, "MERGE_MSG")) and os.path.exists( + os.path.join(git_dir, "MERGE_HEAD") ) def parse_merge_msg_for_conflicts(merge_msg: bytes) -> list[str]: # Conflicted files start with tabs return [ - line.lstrip(b'#').strip().decode() + line.lstrip(b"#").strip().decode() for line in merge_msg.splitlines() # '#\t' for git 2.4.1 - if line.startswith((b'\t', b'#\t')) + if line.startswith((b"\t", b"#\t")) ] def get_conflicted_files() -> set[str]: - logger.info('Checking merge-conflict files only.') + logger.info("Checking merge-conflict files only.") # Need to get the conflicted files from the MERGE_MSG because they could # have resolved the conflict by choosing one side or the other - with open(os.path.join(get_git_dir('.'), 'MERGE_MSG'), 'rb') as f: + with open(os.path.join(get_git_dir("."), "MERGE_MSG"), "rb") as f: merge_msg = f.read() merge_conflict_filenames = parse_merge_msg_for_conflicts(merge_msg) # This will get the rest of the changes made after the merge. # If they resolved the merge conflict by choosing a mesh of both sides # this will also include the conflicted files - tree_hash = cmd_output('git', 'write-tree')[1].strip() + tree_hash = cmd_output("git", "write-tree")[1].strip() merge_diff_filenames = zsplit( cmd_output( - 'git', 'diff', '--name-only', '--no-ext-diff', '-z', - '-m', tree_hash, 'HEAD', 'MERGE_HEAD', '--', + "git", + "diff", + "--name-only", + "--no-ext-diff", + "-z", + "-m", + tree_hash, + "HEAD", + "MERGE_HEAD", + "--", )[1], ) return set(merge_conflict_filenames) | set(merge_diff_filenames) @@ -135,9 +150,14 @@ def get_conflicted_files() -> set[str]: def get_staged_files(cwd: str | None = None) -> list[str]: return zsplit( cmd_output( - 'git', 'diff', '--staged', '--name-only', '--no-ext-diff', '-z', + "git", + "diff", + "--staged", + "--name-only", + "--no-ext-diff", + "-z", # Everything except for D - '--diff-filter=ACMRTUXB', + "--diff-filter=ACMRTUXB", cwd=cwd, )[1], ) @@ -145,40 +165,45 @@ def get_staged_files(cwd: str | None = None) -> list[str]: def intent_to_add_files() -> list[str]: _, stdout, _ = cmd_output( - 'git', 'diff', '--no-ext-diff', '--ignore-submodules', - '--diff-filter=A', '--name-only', '-z', + "git", + "diff", + "--no-ext-diff", + "--ignore-submodules", + "--diff-filter=A", + "--name-only", + "-z", ) return zsplit(stdout) def get_all_files() -> list[str]: - return zsplit(cmd_output('git', 'ls-files', '-z')[1]) + return zsplit(cmd_output("git", "ls-files", "-z")[1]) def get_changed_files(old: str, new: str) -> list[str]: - diff_cmd = ('git', 'diff', '--name-only', '--no-ext-diff', '-z') + diff_cmd = ("git", "diff", "--name-only", "--no-ext-diff", "-z") try: - _, out, _ = cmd_output(*diff_cmd, f'{old}...{new}') + _, out, _ = cmd_output(*diff_cmd, f"{old}...{new}") except CalledProcessError: # pragma: no cover (new git) # on newer git where old and new do not have a merge base git fails # so we try a full diff (this is what old git did for us!) - _, out, _ = cmd_output(*diff_cmd, f'{old}..{new}') + _, out, _ = cmd_output(*diff_cmd, f"{old}..{new}") return zsplit(out) def head_rev(remote: str) -> str: - _, out, _ = cmd_output('git', 'ls-remote', '--exit-code', remote, 'HEAD') + _, out, _ = cmd_output("git", "ls-remote", "--exit-code", remote, "HEAD") return out.split()[0] -def has_diff(*args: str, repo: str = '.') -> bool: - cmd = ('git', 'diff', '--quiet', '--no-ext-diff', *args) +def has_diff(*args: str, repo: str = ".") -> bool: + cmd = ("git", "diff", "--quiet", "--no-ext-diff", *args) return cmd_output_b(*cmd, cwd=repo, check=False)[0] == 1 def has_core_hookpaths_set() -> bool: - _, out, _ = cmd_output_b('git', 'config', 'core.hooksPath', check=False) + _, out, _ = cmd_output_b("git", "config", "core.hooksPath", check=False) return bool(out.strip()) @@ -186,47 +211,47 @@ def init_repo(path: str, remote: str) -> None: if os.path.isdir(remote): remote = os.path.abspath(remote) - git = ('git', *NO_FS_MONITOR) + git = ("git", *NO_FS_MONITOR) env = no_git_env() # avoid the user's template so that hooks do not recurse - cmd_output_b(*git, 'init', '--template=', path, env=env) - cmd_output_b(*git, 'remote', 'add', 'origin', remote, cwd=path, env=env) + cmd_output_b(*git, "init", "--template=", path, env=env) + cmd_output_b(*git, "remote", "add", "origin", remote, cwd=path, env=env) -def commit(repo: str = '.') -> None: +def commit(repo: str = ".") -> None: env = no_git_env() - name, email = 'pre-commit', 'asottile+pre-commit@umich.edu' - env['GIT_AUTHOR_NAME'] = env['GIT_COMMITTER_NAME'] = name - env['GIT_AUTHOR_EMAIL'] = env['GIT_COMMITTER_EMAIL'] = email - cmd = ('git', 'commit', '--no-edit', '--no-gpg-sign', '-n', '-minit') + name, email = "pre-commit", "asottile+pre-commit@umich.edu" + env["GIT_AUTHOR_NAME"] = env["GIT_COMMITTER_NAME"] = name + env["GIT_AUTHOR_EMAIL"] = env["GIT_COMMITTER_EMAIL"] = email + cmd = ("git", "commit", "--no-edit", "--no-gpg-sign", "-n", "-minit") cmd_output_b(*cmd, cwd=repo, env=env) -def git_path(name: str, repo: str = '.') -> str: - _, out, _ = cmd_output('git', 'rev-parse', '--git-path', name, cwd=repo) +def git_path(name: str, repo: str = ".") -> str: + _, out, _ = cmd_output("git", "rev-parse", "--git-path", name, cwd=repo) return os.path.join(repo, out.strip()) def check_for_cygwin_mismatch() -> None: """See https://github.com/pre-commit/pre-commit/issues/354""" - if sys.platform in ('cygwin', 'win32'): # pragma: no cover (windows) - is_cygwin_python = sys.platform == 'cygwin' + if sys.platform in ("cygwin", "win32"): # pragma: no cover (windows) + is_cygwin_python = sys.platform == "cygwin" try: toplevel = get_root() except FatalError: # skip the check if we're not in a git repo return - is_cygwin_git = toplevel.startswith('/') + is_cygwin_git = toplevel.startswith("/") if is_cygwin_python ^ is_cygwin_git: - exe_type = {True: '(cygwin)', False: '(windows)'} + exe_type = {True: "(cygwin)", False: "(windows)"} logger.warning( - f'pre-commit has detected a mix of cygwin python / git\n' - f'This combination is not supported, it is likely you will ' - f'receive an error later in the program.\n' - f'Make sure to use cygwin git+python while using cygwin\n' - f'These can be installed through the cygwin installer.\n' - f' - python {exe_type[is_cygwin_python]}\n' - f' - git {exe_type[is_cygwin_git]}\n', + f"pre-commit has detected a mix of cygwin python / git\n" + f"This combination is not supported, it is likely you will " + f"receive an error later in the program.\n" + f"Make sure to use cygwin git+python while using cygwin\n" + f"These can be installed through the cygwin installer.\n" + f" - python {exe_type[is_cygwin_python]}\n" + f" - git {exe_type[is_cygwin_git]}\n", ) @@ -237,9 +262,14 @@ def get_best_candidate_tag(rev: str, git_repo: str) -> str: to a version tag. Try to pick the tag that looks like a version. """ tags = cmd_output( - 'git', *NO_FS_MONITOR, 'tag', '--points-at', rev, cwd=git_repo, + "git", + *NO_FS_MONITOR, + "tag", + "--points-at", + rev, + cwd=git_repo, )[1].splitlines() for tag in tags: - if '.' in tag: + if "." in tag: return tag return rev diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/hook.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/hook.py index 309cd5b..dd0a98f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/hook.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/hook.py @@ -7,7 +7,7 @@ from typing import NamedTuple from pre_commit.prefix import Prefix -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") class Hook(NamedTuple): @@ -57,4 +57,4 @@ class Hook(NamedTuple): return cls(src=src, prefix=prefix, **{k: dct[k] for k in _KEYS}) -_KEYS = frozenset(set(Hook._fields) - {'src', 'prefix'}) +_KEYS = frozenset(set(Hook._fields) - {"src", "prefix"}) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/lang_base.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/lang_base.py index 198e936..3acb852 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/lang_base.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/lang_base.py @@ -21,43 +21,43 @@ from pre_commit.util import cmd_output_b FIXED_RANDOM_SEED = 1542676187 -SHIMS_RE = re.compile(r'[/\\]shims[/\\]') +SHIMS_RE = re.compile(r"[/\\]shims[/\\]") class Language(Protocol): # Use `None` for no installation / environment @property def ENVIRONMENT_DIR(self) -> str | None: ... + # return a value to replace `'default` for `language_version` def get_default_version(self) -> str: ... + # return whether the environment is healthy (or should be rebuilt) def health_check(self, prefix: Prefix, version: str) -> str | None: ... # install a repository for the given language and language_version def install_environment( - self, - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], - ) -> None: - ... + self, + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], + ) -> None: ... # modify the environment for hook execution def in_env(self, prefix: Prefix, version: str) -> ContextManager[None]: ... # execute a hook and return the exit code and output def run_hook( - self, - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, - ) -> tuple[int, bytes]: - ... + self, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, + ) -> tuple[int, bytes]: ... def exe_exists(exe: str) -> bool: @@ -65,7 +65,7 @@ def exe_exists(exe: str) -> bool: if found is None: # exe exists return False - homedir = os.path.expanduser('~') + homedir = os.path.expanduser("~") try: common: str | None = os.path.commonpath((found, homedir)) except ValueError: # on windows, different drives raises ValueError @@ -73,10 +73,11 @@ def exe_exists(exe: str) -> bool: return ( # it is not in a /shims/ directory - not SHIMS_RE.search(found) and - ( + not SHIMS_RE.search(found) + and ( # the homedir is / (docker, service user, etc.) - os.path.dirname(homedir) == homedir or + os.path.dirname(homedir) == homedir + or # the exe is not contained in the home directory common != homedir ) @@ -88,26 +89,26 @@ def setup_cmd(prefix: Prefix, cmd: tuple[str, ...], **kwargs: Any) -> None: def environment_dir(prefix: Prefix, d: str, language_version: str) -> str: - return prefix.path(f'{d}-{language_version}') + return prefix.path(f"{d}-{language_version}") def assert_version_default(binary: str, version: str) -> None: if version != C.DEFAULT: raise AssertionError( - f'for now, pre-commit requires system-installed {binary} -- ' - f'you selected `language_version: {version}`', + f"for now, pre-commit requires system-installed {binary} -- " + f"you selected `language_version: {version}`", ) def assert_no_additional_deps( - lang: str, - additional_deps: Sequence[str], + lang: str, + additional_deps: Sequence[str], ) -> None: if additional_deps: raise AssertionError( - f'for now, pre-commit does not support ' - f'additional_dependencies for {lang} -- ' - f'you selected `additional_dependencies: {additional_deps}`', + f"for now, pre-commit does not support " + f"additional_dependencies for {lang} -- " + f"you selected `additional_dependencies: {additional_deps}`", ) @@ -120,11 +121,11 @@ def basic_health_check(prefix: Prefix, language_version: str) -> str | None: def no_install( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> NoReturn: - raise AssertionError('This language is not installable') + raise AssertionError("This language is not installable") @contextlib.contextmanager @@ -133,11 +134,11 @@ def no_env(prefix: Prefix, version: str) -> Generator[None]: def target_concurrency() -> int: - if 'PRE_COMMIT_NO_CONCURRENCY' in os.environ: + if "PRE_COMMIT_NO_CONCURRENCY" in os.environ: return 1 else: # Travis appears to have a bunch of CPUs, but we can't use them all. - if 'TRAVIS' in os.environ: + if "TRAVIS" in os.environ: return 2 else: return xargs.cpu_count() @@ -154,11 +155,11 @@ def _shuffled(seq: Sequence[str]) -> list[str]: def run_xargs( - cmd: tuple[str, ...], - file_args: Sequence[str], - *, - require_serial: bool, - color: bool, + cmd: tuple[str, ...], + file_args: Sequence[str], + *, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: if require_serial: jobs = 1 @@ -173,20 +174,20 @@ def run_xargs( def hook_cmd(entry: str, args: Sequence[str]) -> tuple[str, ...]: cmd = shlex.split(entry) - if cmd[:2] == ['pre-commit', 'hazmat']: - cmd = [sys.executable, '-m', 'pre_commit.commands.hazmat', *cmd[2:]] + if cmd[:2] == ["pre-commit", "hazmat"]: + cmd = [sys.executable, "-m", "pre_commit.commands.hazmat", *cmd[2:]] return (*cmd, *args) def basic_run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: return run_xargs( hook_cmd(entry, args), diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/conda.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/conda.py index d397ebe..65cd87d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/conda.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/conda.py @@ -15,7 +15,7 @@ from pre_commit.envcontext import Var from pre_commit.prefix import Prefix from pre_commit.util import cmd_output_b -ENVIRONMENT_DIR = 'conda' +ENVIRONMENT_DIR = "conda" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook @@ -26,17 +26,17 @@ def get_env_patch(env: str) -> PatchesT: # they can be in $CONDA_PREFIX/bin, $CONDA_PREFIX/Library/bin, # $CONDA_PREFIX/Scripts and $CONDA_PREFIX. Whereas the latter only # seems to be used for python.exe. - path: SubstitutionT = (os.path.join(env, 'bin'), os.pathsep, Var('PATH')) - if sys.platform == 'win32': # pragma: win32 cover + path: SubstitutionT = (os.path.join(env, "bin"), os.pathsep, Var("PATH")) + if sys.platform == "win32": # pragma: win32 cover path = (env, os.pathsep, *path) - path = (os.path.join(env, 'Scripts'), os.pathsep, *path) - path = (os.path.join(env, 'Library', 'bin'), os.pathsep, *path) + path = (os.path.join(env, "Scripts"), os.pathsep, *path) + path = (os.path.join(env, "Library", "bin"), os.pathsep, *path) return ( - ('PYTHONHOME', UNSET), - ('VIRTUAL_ENV', UNSET), - ('CONDA_PREFIX', env), - ('PATH', path), + ("PYTHONHOME", UNSET), + ("VIRTUAL_ENV", UNSET), + ("CONDA_PREFIX", env), + ("PATH", path), ) @@ -48,30 +48,40 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def _conda_exe() -> str: - if os.environ.get('PRE_COMMIT_USE_MICROMAMBA'): - return 'micromamba' - elif os.environ.get('PRE_COMMIT_USE_MAMBA'): - return 'mamba' + if os.environ.get("PRE_COMMIT_USE_MICROMAMBA"): + return "micromamba" + elif os.environ.get("PRE_COMMIT_USE_MAMBA"): + return "mamba" else: - return 'conda' + return "conda" def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('conda', version) + lang_base.assert_version_default("conda", version) conda_exe = _conda_exe() env_dir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) cmd_output_b( - conda_exe, 'env', 'create', '-p', env_dir, '--file', - 'environment.yml', cwd=prefix.prefix_dir, + conda_exe, + "env", + "create", + "-p", + env_dir, + "--file", + "environment.yml", + cwd=prefix.prefix_dir, ) if additional_dependencies: cmd_output_b( - conda_exe, 'install', '-p', env_dir, *additional_dependencies, + conda_exe, + "install", + "-p", + env_dir, + *additional_dependencies, cwd=prefix.prefix_dir, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/coursier.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/coursier.py index 08f9a95..bce700f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/coursier.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/coursier.py @@ -13,7 +13,7 @@ from pre_commit.errors import FatalError from pre_commit.parse_shebang import find_executable from pre_commit.prefix import Prefix -ENVIRONMENT_DIR = 'coursier' +ENVIRONMENT_DIR = "coursier" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check @@ -21,41 +21,42 @@ run_hook = lang_base.basic_run_hook def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('coursier', version) + lang_base.assert_version_default("coursier", version) # Support both possible executable names (either "cs" or "coursier") - cs = find_executable('cs') or find_executable('coursier') + cs = find_executable("cs") or find_executable("coursier") if cs is None: raise AssertionError( 'pre-commit requires system-installed "cs" or "coursier" ' - 'executables in the application search path', + "executables in the application search path", ) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) def _install(*opts: str) -> None: assert cs is not None - lang_base.setup_cmd(prefix, (cs, 'fetch', *opts)) - lang_base.setup_cmd(prefix, (cs, 'install', '--dir', envdir, *opts)) + lang_base.setup_cmd(prefix, (cs, "fetch", *opts)) + lang_base.setup_cmd(prefix, (cs, "install", "--dir", envdir, *opts)) with in_env(prefix, version): - channel = prefix.path('.pre-commit-channel') + channel = prefix.path(".pre-commit-channel") if os.path.isdir(channel): for app_descriptor in os.listdir(channel): _, app_file = os.path.split(app_descriptor) app, _ = os.path.splitext(app_file) _install( - '--default-channels=false', - '--channel', channel, + "--default-channels=false", + "--channel", + channel, app, ) elif not additional_dependencies: raise FatalError( - 'expected .pre-commit-channel dir or additional_dependencies', + "expected .pre-commit-channel dir or additional_dependencies", ) if additional_dependencies: @@ -64,8 +65,8 @@ def install_environment( def get_env_patch(target_dir: str) -> PatchesT: return ( - ('PATH', (target_dir, os.pathsep, Var('PATH'))), - ('COURSIER_CACHE', os.path.join(target_dir, '.cs-cache')), + ("PATH", (target_dir, os.pathsep, Var("PATH"))), + ("COURSIER_CACHE", os.path.join(target_dir, ".cs-cache")), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dart.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dart.py index 52a229e..5c257c4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dart.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dart.py @@ -15,7 +15,7 @@ from pre_commit.prefix import Prefix from pre_commit.util import win_exe from pre_commit.yaml import yaml_load -ENVIRONMENT_DIR = 'dartenv' +ENVIRONMENT_DIR = "dartenv" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check @@ -23,9 +23,7 @@ run_hook = lang_base.basic_run_hook def get_env_patch(venv: str) -> PatchesT: - return ( - ('PATH', (os.path.join(venv, 'bin'), os.pathsep, Var('PATH'))), - ) + return (("PATH", (os.path.join(venv, "bin"), os.pathsep, Var("PATH"))),) @contextlib.contextmanager @@ -36,30 +34,33 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('dart', version) + lang_base.assert_version_default("dart", version) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - bin_dir = os.path.join(envdir, 'bin') + bin_dir = os.path.join(envdir, "bin") def _install_dir(prefix_p: Prefix, pub_cache: str) -> None: - dart_env = {**os.environ, 'PUB_CACHE': pub_cache} + dart_env = {**os.environ, "PUB_CACHE": pub_cache} - with open(prefix_p.path('pubspec.yaml')) as f: + with open(prefix_p.path("pubspec.yaml")) as f: pubspec_contents = yaml_load(f) - lang_base.setup_cmd(prefix_p, ('dart', 'pub', 'get'), env=dart_env) + lang_base.setup_cmd(prefix_p, ("dart", "pub", "get"), env=dart_env) - for executable in pubspec_contents['executables']: + for executable in pubspec_contents["executables"]: lang_base.setup_cmd( prefix_p, ( - 'dart', 'compile', 'exe', - '--output', os.path.join(bin_dir, win_exe(executable)), - prefix_p.path('bin', f'{executable}.dart'), + "dart", + "compile", + "exe", + "--output", + os.path.join(bin_dir, win_exe(executable)), + prefix_p.path("bin", f"{executable}.dart"), ), env=dart_env, ) @@ -71,27 +72,27 @@ def install_environment( for dep_s in additional_dependencies: with tempfile.TemporaryDirectory() as dep_tmp: - dep, _, version = dep_s.partition(':') + dep, _, version = dep_s.partition(":") if version: - dep_cmd: tuple[str, ...] = (dep, '--version', version) + dep_cmd: tuple[str, ...] = (dep, "--version", version) else: dep_cmd = (dep,) lang_base.setup_cmd( prefix, - ('dart', 'pub', 'cache', 'add', *dep_cmd), - env={**os.environ, 'PUB_CACHE': dep_tmp}, + ("dart", "pub", "cache", "add", *dep_cmd), + env={**os.environ, "PUB_CACHE": dep_tmp}, ) # try and find the 'pubspec.yaml' that just got added for root, _, filenames in os.walk(dep_tmp): - if 'pubspec.yaml' in filenames: + if "pubspec.yaml" in filenames: with tempfile.TemporaryDirectory() as copied: - pkg = os.path.join(copied, 'pkg') + pkg = os.path.join(copied, "pkg") shutil.copytree(root, pkg) _install_dir(Prefix(pkg), dep_tmp) break else: raise AssertionError( - f'could not find pubspec.yaml for {dep_s}', + f"could not find pubspec.yaml for {dep_s}", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker.py index 7f45ac8..76c542b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker.py @@ -13,8 +13,8 @@ from pre_commit.prefix import Prefix from pre_commit.util import CalledProcessError from pre_commit.util import cmd_output_b -ENVIRONMENT_DIR = 'docker' -PRE_COMMIT_LABEL = 'PRE_COMMIT' +ENVIRONMENT_DIR = "docker" +PRE_COMMIT_LABEL = "PRE_COMMIT" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check in_env = lang_base.no_env # no special environment for docker @@ -33,7 +33,7 @@ _HOSTNAME_MOUNT_RE = re.compile( def _get_container_id() -> str | None: with contextlib.suppress(FileNotFoundError): - with open('/proc/1/mountinfo', 'rb') as f: + with open("/proc/1/mountinfo", "rb") as f: for line in f: m = _HOSTNAME_MOUNT_RE.search(line) if m: @@ -48,15 +48,15 @@ def _get_docker_path(path: str) -> str: return path try: - _, out, _ = cmd_output_b('docker', 'inspect', container_id) + _, out, _ = cmd_output_b("docker", "inspect", container_id) except CalledProcessError: # self-container was not visible from here (perhaps docker-in-docker) return path - container, = json.loads(out) - for mount in container['Mounts']: - src_path = mount['Source'] - to_path = mount['Destination'] + (container,) = json.loads(out) + for mount in container["Mounts"]: + src_path = mount["Source"] + to_path = mount["Destination"] if os.path.commonpath((path, to_path)) == to_path: # So there is something in common, # and we can proceed remapping it @@ -72,31 +72,36 @@ def md5(s: str) -> str: # pragma: win32 no cover def docker_tag(prefix: Prefix) -> str: # pragma: win32 no cover md5sum = md5(os.path.basename(prefix.prefix_dir)).lower() - return f'pre-commit-{md5sum}' + return f"pre-commit-{md5sum}" def build_docker_image( - prefix: Prefix, - *, - pull: bool, + prefix: Prefix, + *, + pull: bool, ) -> None: # pragma: win32 no cover cmd: tuple[str, ...] = ( - 'docker', 'build', - '--tag', docker_tag(prefix), - '--label', PRE_COMMIT_LABEL, + "docker", + "build", + "--tag", + docker_tag(prefix), + "--label", + PRE_COMMIT_LABEL, ) if pull: - cmd += ('--pull',) + cmd += ("--pull",) # This must come last for old versions of docker. See #477 - cmd += ('.',) + cmd += (".",) lang_base.setup_cmd(prefix, cmd) def install_environment( - prefix: Prefix, version: str, additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: # pragma: win32 no cover - lang_base.assert_version_default('docker', version) - lang_base.assert_no_additional_deps('docker', additional_dependencies) + lang_base.assert_version_default("docker", version) + lang_base.assert_no_additional_deps("docker", additional_dependencies) directory = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) @@ -109,7 +114,11 @@ def install_environment( @functools.lru_cache(maxsize=1) def _is_rootless() -> bool: # pragma: win32 no cover retcode, out, _ = cmd_output_b( - 'docker', 'system', 'info', '--format', '{{ json . }}', + "docker", + "system", + "info", + "--format", + "{{ json . }}", ) if retcode != 0: return False @@ -119,10 +128,11 @@ def _is_rootless() -> bool: # pragma: win32 no cover return ( # docker: # https://docs.docker.com/reference/api/engine/version/v1.48/#tag/System/operation/SystemInfo - 'name=rootless' in (info.get('SecurityOptions') or ()) or + "name=rootless" in (info.get("SecurityOptions") or ()) + or # podman: # https://docs.podman.io/en/latest/_static/api.html?version=v5.4#tag/system/operation/SystemInfoLibpod - info['host']['security']['rootless'] + info["host"]["security"]["rootless"] ) except KeyError: return False @@ -133,38 +143,43 @@ def get_docker_user() -> tuple[str, ...]: # pragma: win32 no cover return () try: - return ('-u', f'{os.getuid()}:{os.getgid()}') + return ("-u", f"{os.getuid()}:{os.getgid()}") except AttributeError: return () -def get_docker_tty(*, color: bool) -> tuple[str, ...]: # pragma: win32 no cover # noqa: E501 - return (('--tty',) if color else ()) +def get_docker_tty( + *, color: bool +) -> tuple[str, ...]: # pragma: win32 no cover # noqa: E501 + return ("--tty",) if color else () def docker_cmd(*, color: bool) -> tuple[str, ...]: # pragma: win32 no cover return ( - 'docker', 'run', - '--rm', + "docker", + "run", + "--rm", *get_docker_tty(color=color), *get_docker_user(), # https://docs.docker.com/engine/reference/commandline/run/#mount-volumes-from-container-volumes-from # The `Z` option tells Docker to label the content with a private # unshared label. Only the current container can use a private volume. - '-v', f'{_get_docker_path(os.getcwd())}:/src:rw,Z', - '--workdir', '/src', + "-v", + f"{_get_docker_path(os.getcwd())}:/src:rw,Z", + "--workdir", + "/src", ) def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: # pragma: win32 no cover # Rebuild the docker image in case it has gone missing, as many people do # automated cleanup of docker images. @@ -172,7 +187,7 @@ def run_hook( entry_exe, *cmd_rest = lang_base.hook_cmd(entry, args) - entry_tag = ('--entrypoint', entry_exe, docker_tag(prefix)) + entry_tag = ("--entrypoint", entry_exe, docker_tag(prefix)) return lang_base.run_xargs( (*docker_cmd(color=color), *entry_tag, *cmd_rest), file_args, diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker_image.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker_image.py index 60caa10..03c38f6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker_image.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/docker_image.py @@ -14,14 +14,14 @@ in_env = lang_base.no_env def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: # pragma: win32 no cover cmd = docker_cmd(color=color) + lang_base.hook_cmd(entry, args) return lang_base.run_xargs( diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dotnet.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dotnet.py index ffc65d1..fb3add7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dotnet.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/dotnet.py @@ -15,8 +15,8 @@ from pre_commit.envcontext import PatchesT from pre_commit.envcontext import Var from pre_commit.prefix import Prefix -ENVIRONMENT_DIR = 'dotnetenv' -BIN_DIR = 'bin' +ENVIRONMENT_DIR = "dotnetenv" +BIN_DIR = "bin" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check @@ -24,9 +24,7 @@ run_hook = lang_base.basic_run_hook def get_env_patch(venv: str) -> PatchesT: - return ( - ('PATH', (os.path.join(venv, BIN_DIR), os.pathsep, Var('PATH'))), - ) + return (("PATH", (os.path.join(venv, BIN_DIR), os.pathsep, Var("PATH"))),) @contextlib.contextmanager @@ -39,57 +37,60 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: @contextlib.contextmanager def _nuget_config_no_sources() -> Generator[str]: with tempfile.TemporaryDirectory() as tmpdir: - nuget_config = os.path.join(tmpdir, 'nuget.config') - with open(nuget_config, 'w') as f: + nuget_config = os.path.join(tmpdir, "nuget.config") + with open(nuget_config, "w") as f: f.write( '' - '' - ' ' - ' ' - ' ' - '', + "" + " " + " " + " " + "", ) yield nuget_config def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('dotnet', version) - lang_base.assert_no_additional_deps('dotnet', additional_dependencies) + lang_base.assert_version_default("dotnet", version) + lang_base.assert_no_additional_deps("dotnet", additional_dependencies) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - build_dir = prefix.path('pre-commit-build') + build_dir = prefix.path("pre-commit-build") # Build & pack nupkg file lang_base.setup_cmd( prefix, ( - 'dotnet', 'pack', - '--configuration', 'Release', - '--property', f'PackageOutputPath={build_dir}', + "dotnet", + "pack", + "--configuration", + "Release", + "--property", + f"PackageOutputPath={build_dir}", ), ) nupkg_dir = prefix.path(build_dir) - nupkgs = [x for x in os.listdir(nupkg_dir) if x.endswith('.nupkg')] + nupkgs = [x for x in os.listdir(nupkg_dir) if x.endswith(".nupkg")] if not nupkgs: - raise AssertionError('could not find any build outputs to install') + raise AssertionError("could not find any build outputs to install") for nupkg in nupkgs: with zipfile.ZipFile(os.path.join(nupkg_dir, nupkg)) as f: - nuspec, = (x for x in f.namelist() if x.endswith('.nuspec')) + (nuspec,) = (x for x in f.namelist() if x.endswith(".nuspec")) with f.open(nuspec) as spec: tree = xml.etree.ElementTree.parse(spec) - namespace = re.match(r'{.*}', tree.getroot().tag) + namespace = re.match(r"{.*}", tree.getroot().tag) if not namespace: - raise AssertionError('could not parse namespace from nuspec') + raise AssertionError("could not parse namespace from nuspec") - tool_id_element = tree.find(f'.//{namespace[0]}id') + tool_id_element = tree.find(f".//{namespace[0]}id") if tool_id_element is None: raise AssertionError('expected to find an "id" element') @@ -102,10 +103,15 @@ def install_environment( lang_base.setup_cmd( prefix, ( - 'dotnet', 'tool', 'install', - '--configfile', nuget_config, - '--tool-path', os.path.join(envdir, BIN_DIR), - '--add-source', build_dir, + "dotnet", + "tool", + "install", + "--configfile", + nuget_config, + "--tool-path", + os.path.join(envdir, BIN_DIR), + "--add-source", + build_dir, tool_id, ), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/fail.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/fail.py index 6ac4d76..fb205d4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/fail.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/fail.py @@ -13,15 +13,15 @@ in_env = lang_base.no_env def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: - out = f'{entry}\n\n'.encode() - out += b'\n'.join(f.encode() for f in file_args) + b'\n' + out = f"{entry}\n\n".encode() + out += b"\n".join(f.encode() for f in file_args) + b"\n" return 1, out diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/golang.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/golang.py index bedbd11..5d188b8 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/golang.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/golang.py @@ -28,16 +28,16 @@ from pre_commit.prefix import Prefix from pre_commit.util import cmd_output from pre_commit.util import rmtree -ENVIRONMENT_DIR = 'golangenv' +ENVIRONMENT_DIR = "golangenv" health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook _ARCH_ALIASES = { - 'x86_64': 'amd64', - 'i386': '386', - 'aarch64': 'arm64', - 'armv8': 'arm64', - 'armv7l': 'armv6l', + "x86_64": "amd64", + "i386": "386", + "aarch64": "arm64", + "armv8": "arm64", + "armv7l": "armv6l", } _ARCH = platform.machine().lower() _ARCH = _ARCH_ALIASES.get(_ARCH, _ARCH) @@ -47,13 +47,14 @@ class ExtractAll(Protocol): def extractall(self, path: str) -> None: ... -if sys.platform == 'win32': # pragma: win32 cover - _EXT = 'zip' +if sys.platform == "win32": # pragma: win32 cover + _EXT = "zip" def _open_archive(bio: IO[bytes]) -> ContextManager[ExtractAll]: return zipfile.ZipFile(bio) + else: # pragma: win32 no cover - _EXT = 'tar.gz' + _EXT = "tar.gz" def _open_archive(bio: IO[bytes]) -> ContextManager[ExtractAll]: return tarfile.open(fileobj=bio) @@ -61,25 +62,27 @@ else: # pragma: win32 no cover @functools.lru_cache(maxsize=1) def get_default_version() -> str: - if lang_base.exe_exists('go'): - return 'system' + if lang_base.exe_exists("go"): + return "system" else: return C.DEFAULT def get_env_patch(venv: str, version: str) -> PatchesT: - if version == 'system': - return ( - ('PATH', (os.path.join(venv, 'bin'), os.pathsep, Var('PATH'))), - ) + if version == "system": + return (("PATH", (os.path.join(venv, "bin"), os.pathsep, Var("PATH"))),) return ( - ('GOROOT', os.path.join(venv, '.go')), - ('GOTOOLCHAIN', 'local'), + ("GOROOT", os.path.join(venv, ".go")), + ("GOTOOLCHAIN", "local"), ( - 'PATH', ( - os.path.join(venv, 'bin'), os.pathsep, - os.path.join(venv, '.go', 'bin'), os.pathsep, Var('PATH'), + "PATH", + ( + os.path.join(venv, "bin"), + os.pathsep, + os.path.join(venv, ".go", "bin"), + os.pathsep, + Var("PATH"), ), ), ) @@ -89,14 +92,14 @@ def get_env_patch(venv: str, version: str) -> PatchesT: def _infer_go_version(version: str) -> str: if version != C.DEFAULT: return version - resp = urllib.request.urlopen('https://go.dev/dl/?mode=json') - return json.load(resp)[0]['version'].removeprefix('go') + resp = urllib.request.urlopen("https://go.dev/dl/?mode=json") + return json.load(resp)[0]["version"].removeprefix("go") def _get_url(version: str) -> str: os_name = platform.system().lower() version = _infer_go_version(version) - return f'https://dl.google.com/go/go{version}.{os_name}-{_ARCH}.{_EXT}' + return f"https://dl.google.com/go/go{version}.{os_name}-{_ARCH}.{_EXT}" def _install_go(version: str, dest: str) -> None: @@ -105,8 +108,8 @@ def _install_go(version: str, dest: str) -> None: except urllib.error.HTTPError as e: # pragma: no cover if e.code == 404: raise ValueError( - f'Could not find a version matching your system requirements ' - f'(os={platform.system().lower()}; arch={_ARCH})', + f"Could not find a version matching your system requirements " + f"(os={platform.system().lower()}; arch={_ARCH})", ) from e else: raise @@ -117,7 +120,7 @@ def _install_go(version: str, dest: str) -> None: with _open_archive(f) as archive: archive.extractall(dest) - shutil.move(os.path.join(dest, 'go'), os.path.join(dest, '.go')) + shutil.move(os.path.join(dest, "go"), os.path.join(dest, ".go")) @contextlib.contextmanager @@ -128,34 +131,37 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: env_dir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - if version != 'system': + if version != "system": _install_go(version, env_dir) - if sys.platform == 'cygwin': # pragma: no cover - gopath = cmd_output('cygpath', '-w', env_dir)[1].strip() + if sys.platform == "cygwin": # pragma: no cover + gopath = cmd_output("cygpath", "-w", env_dir)[1].strip() else: gopath = env_dir env = no_git_env(dict(os.environ, GOPATH=gopath)) - env.pop('GOBIN', None) - if version != 'system': - env['GOTOOLCHAIN'] = 'local' - env['GOROOT'] = os.path.join(env_dir, '.go') - env['PATH'] = os.pathsep.join(( - os.path.join(env_dir, '.go', 'bin'), os.environ['PATH'], - )) + env.pop("GOBIN", None) + if version != "system": + env["GOTOOLCHAIN"] = "local" + env["GOROOT"] = os.path.join(env_dir, ".go") + env["PATH"] = os.pathsep.join( + ( + os.path.join(env_dir, ".go", "bin"), + os.environ["PATH"], + ) + ) - lang_base.setup_cmd(prefix, ('go', 'install', './...'), env=env) + lang_base.setup_cmd(prefix, ("go", "install", "./..."), env=env) for dependency in additional_dependencies: - lang_base.setup_cmd(prefix, ('go', 'install', dependency), env=env) + lang_base.setup_cmd(prefix, ("go", "install", dependency), env=env) # save some disk space -- we don't need this after installation - pkgdir = os.path.join(env_dir, 'pkg') + pkgdir = os.path.join(env_dir, "pkg") if os.path.exists(pkgdir): # pragma: no branch (always true on windows?) rmtree(pkgdir) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/haskell.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/haskell.py index 28bca08..ee37dfa 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/haskell.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/haskell.py @@ -12,15 +12,15 @@ from pre_commit.envcontext import Var from pre_commit.errors import FatalError from pre_commit.prefix import Prefix -ENVIRONMENT_DIR = 'hs_env' +ENVIRONMENT_DIR = "hs_env" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook def get_env_patch(target_dir: str) -> PatchesT: - bin_path = os.path.join(target_dir, 'bin') - return (('PATH', (bin_path, os.pathsep, Var('PATH'))),) + bin_path = os.path.join(target_dir, "bin") + return (("PATH", (bin_path, os.pathsep, Var("PATH"))),) @contextlib.contextmanager @@ -35,22 +35,25 @@ def install_environment( version: str, additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('haskell', version) + lang_base.assert_version_default("haskell", version) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - pkgs = [*prefix.star('.cabal'), *additional_dependencies] + pkgs = [*prefix.star(".cabal"), *additional_dependencies] if not pkgs: - raise FatalError('Expected .cabal files or additional_dependencies') + raise FatalError("Expected .cabal files or additional_dependencies") - bindir = os.path.join(envdir, 'bin') + bindir = os.path.join(envdir, "bin") os.makedirs(bindir, exist_ok=True) - lang_base.setup_cmd(prefix, ('cabal', 'update')) + lang_base.setup_cmd(prefix, ("cabal", "update")) lang_base.setup_cmd( prefix, ( - 'cabal', 'install', - '--install-method', 'copy', - '--installdir', bindir, + "cabal", + "install", + "--install-method", + "copy", + "--installdir", + bindir, *pkgs, ), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/julia.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/julia.py index 7559b5b..3517e4b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/julia.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/julia.py @@ -13,20 +13,20 @@ from pre_commit.envcontext import UNSET from pre_commit.prefix import Prefix from pre_commit.util import cmd_output_b -ENVIRONMENT_DIR = 'juliaenv' +ENVIRONMENT_DIR = "juliaenv" health_check = lang_base.basic_health_check get_default_version = lang_base.basic_get_default_version def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: # `entry` is a (hook-repo relative) file followed by (optional) args, e.g. # `bin/id.jl` or `bin/hook.jl --arg1 --arg2` so we @@ -37,7 +37,7 @@ def run_hook( cmd = lang_base.hook_cmd(entry, args) script = cmd[0] if is_local else prefix.path(cmd[0]) - cmd = ('julia', '--startup-file=no', script, *cmd[1:]) + cmd = ("julia", "--startup-file=no", script, *cmd[1:]) return lang_base.run_xargs( cmd, file_args, @@ -48,9 +48,9 @@ def run_hook( def get_env_patch(target_dir: str, version: str) -> PatchesT: return ( - ('JULIA_LOAD_PATH', target_dir), + ("JULIA_LOAD_PATH", target_dir), # May be set, remove it to not interfer with LOAD_PATH - ('JULIA_PROJECT', UNSET), + ("JULIA_PROJECT", UNSET), ) @@ -62,9 +62,9 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) with in_env(prefix, version): @@ -75,7 +75,7 @@ def install_environment( # Copy Project.toml to hook env if it exist os.makedirs(envdir, exist_ok=True) - project_names = ('JuliaProject.toml', 'Project.toml') + project_names = ("JuliaProject.toml", "Project.toml") project_found = False for project_name in project_names: project_file = prefix.path(project_name) @@ -88,10 +88,10 @@ def install_environment( # If no project file was found we create an empty one so that the # package manager doesn't error if not project_found: - open(os.path.join(envdir, 'Project.toml'), 'a').close() + open(os.path.join(envdir, "Project.toml"), "a").close() # Copy Manifest.toml to hook env if it exists - manifest_names = ('JuliaManifest.toml', 'Manifest.toml') + manifest_names = ("JuliaManifest.toml", "Manifest.toml") for manifest_name in manifest_names: manifest_file = prefix.path(manifest_name) if not os.path.isfile(manifest_file): @@ -127,7 +127,12 @@ def install_environment( end """ cmd_output_b( - 'julia', '--startup-file=no', '-e', julia_code, '--', envdir, + "julia", + "--startup-file=no", + "-e", + julia_code, + "--", + envdir, *additional_dependencies, cwd=prefix.prefix_dir, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/lua.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/lua.py index 15ac1a2..93d362a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/lua.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/lua.py @@ -13,7 +13,7 @@ from pre_commit.envcontext import Var from pre_commit.prefix import Prefix from pre_commit.util import cmd_output -ENVIRONMENT_DIR = 'lua_env' +ENVIRONMENT_DIR = "lua_env" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook @@ -21,24 +21,25 @@ run_hook = lang_base.basic_run_hook def _get_lua_version() -> str: # pragma: win32 no cover """Get the Lua version used in file paths.""" - _, stdout, _ = cmd_output('luarocks', 'config', '--lua-ver') + _, stdout, _ = cmd_output("luarocks", "config", "--lua-ver") return stdout.strip() def get_env_patch(d: str) -> PatchesT: # pragma: win32 no cover version = _get_lua_version() - so_ext = 'dll' if sys.platform == 'win32' else 'so' + so_ext = "dll" if sys.platform == "win32" else "so" return ( - ('PATH', (os.path.join(d, 'bin'), os.pathsep, Var('PATH'))), + ("PATH", (os.path.join(d, "bin"), os.pathsep, Var("PATH"))), ( - 'LUA_PATH', ( - os.path.join(d, 'share', 'lua', version, '?.lua;'), - os.path.join(d, 'share', 'lua', version, '?', 'init.lua;;'), + "LUA_PATH", + ( + os.path.join(d, "share", "lua", version, "?.lua;"), + os.path.join(d, "share", "lua", version, "?", "init.lua;;"), ), ), ( - 'LUA_CPATH', - (os.path.join(d, 'lib', 'lua', version, f'?.{so_ext};;'),), + "LUA_CPATH", + (os.path.join(d, "lib", "lua", version, f"?.{so_ext};;"),), ), ) @@ -55,7 +56,7 @@ def install_environment( version: str, additional_dependencies: Sequence[str], ) -> None: # pragma: win32 no cover - lang_base.assert_version_default('lua', version) + lang_base.assert_version_default("lua", version) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) with in_env(prefix, version): @@ -64,12 +65,12 @@ def install_environment( os.makedirs(envdir, exist_ok=True) # Older luarocks (e.g., 2.4.2) expect the rockspec as an arg - for rockspec in prefix.star('.rockspec'): - make_cmd = ('luarocks', '--tree', envdir, 'make', rockspec) + for rockspec in prefix.star(".rockspec"): + make_cmd = ("luarocks", "--tree", envdir, "make", rockspec) lang_base.setup_cmd(prefix, make_cmd) # luarocks can't install multiple packages at once # so install them individually. for dependency in additional_dependencies: - cmd = ('luarocks', '--tree', envdir, 'install', dependency) + cmd = ("luarocks", "--tree", envdir, "install", dependency) lang_base.setup_cmd(prefix, cmd) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/node.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/node.py index af7dc6f..06acbce 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/node.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/node.py @@ -19,42 +19,42 @@ from pre_commit.util import cmd_output from pre_commit.util import cmd_output_b from pre_commit.util import rmtree -ENVIRONMENT_DIR = 'node_env' +ENVIRONMENT_DIR = "node_env" run_hook = lang_base.basic_run_hook @functools.lru_cache(maxsize=1) def get_default_version() -> str: # nodeenv does not yet support `-n system` on windows - if sys.platform == 'win32': + if sys.platform == "win32": return C.DEFAULT # if node is already installed, we can save a bunch of setup time by # using the installed version - elif all(lang_base.exe_exists(exe) for exe in ('node', 'npm')): - return 'system' + elif all(lang_base.exe_exists(exe) for exe in ("node", "npm")): + return "system" else: return C.DEFAULT def get_env_patch(venv: str) -> PatchesT: - if sys.platform == 'cygwin': # pragma: no cover - _, win_venv, _ = cmd_output('cygpath', '-w', venv) - install_prefix = fr'{win_venv.strip()}\bin' - lib_dir = 'lib' - elif sys.platform == 'win32': # pragma: no cover + if sys.platform == "cygwin": # pragma: no cover + _, win_venv, _ = cmd_output("cygpath", "-w", venv) + install_prefix = rf"{win_venv.strip()}\bin" + lib_dir = "lib" + elif sys.platform == "win32": # pragma: no cover install_prefix = bin_dir(venv) - lib_dir = 'Scripts' + lib_dir = "Scripts" else: # pragma: win32 no cover install_prefix = venv - lib_dir = 'lib' + lib_dir = "lib" return ( - ('NODE_VIRTUAL_ENV', venv), - ('NPM_CONFIG_PREFIX', install_prefix), - ('npm_config_prefix', install_prefix), - ('NPM_CONFIG_USERCONFIG', UNSET), - ('npm_config_userconfig', UNSET), - ('NODE_PATH', os.path.join(venv, lib_dir, 'node_modules')), - ('PATH', (bin_dir(venv), os.pathsep, Var('PATH'))), + ("NODE_VIRTUAL_ENV", venv), + ("NPM_CONFIG_PREFIX", install_prefix), + ("npm_config_prefix", install_prefix), + ("NPM_CONFIG_USERCONFIG", UNSET), + ("npm_config_userconfig", UNSET), + ("NODE_PATH", os.path.join(venv, lib_dir, "node_modules")), + ("PATH", (bin_dir(venv), os.pathsep, Var("PATH"))), ) @@ -67,25 +67,27 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def health_check(prefix: Prefix, version: str) -> str | None: with in_env(prefix, version): - retcode, _, _ = cmd_output_b('node', '--version', check=False) + retcode, _, _ = cmd_output_b("node", "--version", check=False) if retcode != 0: # pragma: win32 no cover - return f'`node --version` returned {retcode}' + return f"`node --version` returned {retcode}" else: return None def install_environment( - prefix: Prefix, version: str, additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - assert prefix.exists('package.json') + assert prefix.exists("package.json") envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx?f=255&MSPPError=-2147217396#maxpath - if sys.platform == 'win32': # pragma: no cover - envdir = fr'\\?\{os.path.normpath(envdir)}' - cmd = [sys.executable, '-mnodeenv', '--prebuilt', '--clean-src', envdir] + if sys.platform == "win32": # pragma: no cover + envdir = rf"\\?\{os.path.normpath(envdir)}" + cmd = [sys.executable, "-mnodeenv", "--prebuilt", "--clean-src", envdir] if version != C.DEFAULT: - cmd.extend(['-n', version]) + cmd.extend(["-n", version]) cmd_output_b(*cmd) with in_env(prefix, version): @@ -93,18 +95,23 @@ def install_environment( # install as if we installed from git local_install_cmd = ( - 'npm', 'install', '--include=dev', '--include=prod', - '--ignore-prepublish', '--no-progress', '--no-save', + "npm", + "install", + "--include=dev", + "--include=prod", + "--ignore-prepublish", + "--no-progress", + "--no-save", ) lang_base.setup_cmd(prefix, local_install_cmd) - _, pkg, _ = cmd_output('npm', 'pack', cwd=prefix.prefix_dir) + _, pkg, _ = cmd_output("npm", "pack", cwd=prefix.prefix_dir) pkg = prefix.path(pkg.strip()) - install = ('npm', 'install', '-g', pkg, *additional_dependencies) + install = ("npm", "install", "-g", pkg, *additional_dependencies) lang_base.setup_cmd(prefix, install) # clean these up after installation - if prefix.exists('node_modules'): # pragma: win32 no cover - rmtree(prefix.path('node_modules')) + if prefix.exists("node_modules"): # pragma: win32 no cover + rmtree(prefix.path("node_modules")) os.remove(pkg) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/perl.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/perl.py index a07d442..1c53401 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/perl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/perl.py @@ -12,7 +12,7 @@ from pre_commit.envcontext import PatchesT from pre_commit.envcontext import Var from pre_commit.prefix import Prefix -ENVIRONMENT_DIR = 'perl_env' +ENVIRONMENT_DIR = "perl_env" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook @@ -20,13 +20,14 @@ run_hook = lang_base.basic_run_hook def get_env_patch(venv: str) -> PatchesT: return ( - ('PATH', (os.path.join(venv, 'bin'), os.pathsep, Var('PATH'))), - ('PERL5LIB', os.path.join(venv, 'lib', 'perl5')), - ('PERL_MB_OPT', f'--install_base {shlex.quote(venv)}'), + ("PATH", (os.path.join(venv, "bin"), os.pathsep, Var("PATH"))), + ("PERL5LIB", os.path.join(venv, "lib", "perl5")), + ("PERL_MB_OPT", f"--install_base {shlex.quote(venv)}"), ( - 'PERL_MM_OPT', ( - f'INSTALL_BASE={shlex.quote(venv)} ' - f'INSTALLSITEMAN1DIR=none INSTALLSITEMAN3DIR=none' + "PERL_MM_OPT", + ( + f"INSTALL_BASE={shlex.quote(venv)} " + f"INSTALLSITEMAN1DIR=none INSTALLSITEMAN3DIR=none" ), ), ) @@ -40,11 +41,14 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def install_environment( - prefix: Prefix, version: str, additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('perl', version) + lang_base.assert_version_default("perl", version) with in_env(prefix, version): lang_base.setup_cmd( - prefix, ('cpan', '-T', '.', *additional_dependencies), + prefix, + ("cpan", "-T", ".", *additional_dependencies), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/pygrep.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/pygrep.py index 72a9345..0966281 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/pygrep.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/pygrep.py @@ -21,37 +21,37 @@ in_env = lang_base.no_env def _process_filename_by_line(pattern: Pattern[bytes], filename: str) -> int: retv = 0 - with open(filename, 'rb') as f: + with open(filename, "rb") as f: for line_no, line in enumerate(f, start=1): if pattern.search(line): retv = 1 - output.write(f'{filename}:{line_no}:') - output.write_line_b(line.rstrip(b'\r\n')) + output.write(f"{filename}:{line_no}:") + output.write_line_b(line.rstrip(b"\r\n")) return retv def _process_filename_at_once(pattern: Pattern[bytes], filename: str) -> int: retv = 0 - with open(filename, 'rb') as f: + with open(filename, "rb") as f: contents = f.read() match = pattern.search(contents) if match: retv = 1 - line_no = contents[:match.start()].count(b'\n') - output.write(f'{filename}:{line_no + 1}:') + line_no = contents[: match.start()].count(b"\n") + output.write(f"{filename}:{line_no + 1}:") - matched_lines = match[0].split(b'\n') - matched_lines[0] = contents.split(b'\n')[line_no] + matched_lines = match[0].split(b"\n") + matched_lines[0] = contents.split(b"\n")[line_no] - output.write_line_b(b'\n'.join(matched_lines)) + output.write_line_b(b"\n".join(matched_lines)) return retv def _process_filename_by_line_negated( - pattern: Pattern[bytes], - filename: str, + pattern: Pattern[bytes], + filename: str, ) -> int: - with open(filename, 'rb') as f: + with open(filename, "rb") as f: for line in f: if pattern.search(line): return 0 @@ -61,10 +61,10 @@ def _process_filename_by_line_negated( def _process_filename_at_once_negated( - pattern: Pattern[bytes], - filename: str, + pattern: Pattern[bytes], + filename: str, ) -> int: - with open(filename, 'rb') as f: + with open(filename, "rb") as f: contents = f.read() match = pattern.search(contents) if match: @@ -88,32 +88,32 @@ FNS = { def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: - cmd = (sys.executable, '-m', __name__, *args, entry) + cmd = (sys.executable, "-m", __name__, *args, entry) return xargs(cmd, file_args, color=color) def main(argv: Sequence[str] | None = None) -> int: parser = argparse.ArgumentParser( description=( - 'grep-like finder using python regexes. Unlike grep, this tool ' - 'returns nonzero when it finds a match and zero otherwise. The ' + "grep-like finder using python regexes. Unlike grep, this tool " + "returns nonzero when it finds a match and zero otherwise. The " 'idea here being that matches are "problems".' ), ) - parser.add_argument('-i', '--ignore-case', action='store_true') - parser.add_argument('--multiline', action='store_true') - parser.add_argument('--negate', action='store_true') - parser.add_argument('pattern', help='python regex pattern.') - parser.add_argument('filenames', nargs='*') + parser.add_argument("-i", "--ignore-case", action="store_true") + parser.add_argument("--multiline", action="store_true") + parser.add_argument("--negate", action="store_true") + parser.add_argument("pattern", help="python regex pattern.") + parser.add_argument("filenames", nargs="*") args = parser.parse_args(argv) flags = re.IGNORECASE if args.ignore_case else 0 @@ -129,5 +129,5 @@ def main(argv: Sequence[str] | None = None) -> int: return retv -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/python.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/python.py index 88ececc..f39b2be 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/python.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/python.py @@ -20,7 +20,7 @@ from pre_commit.util import cmd_output from pre_commit.util import cmd_output_b from pre_commit.util import win_exe -ENVIRONMENT_DIR = 'py_env' +ENVIRONMENT_DIR = "py_env" run_hook = lang_base.basic_run_hook @@ -28,17 +28,17 @@ run_hook = lang_base.basic_run_hook def _version_info(exe: str) -> str: prog = 'import sys;print(".".join(str(p) for p in sys.version_info))' try: - return cmd_output(exe, '-S', '-c', prog)[1].strip() + return cmd_output(exe, "-S", "-c", prog)[1].strip() except CalledProcessError: - return f'<>' + return f"<>" def _read_pyvenv_cfg(filename: str) -> dict[str, str]: ret = {} - with open(filename, encoding='UTF-8') as f: + with open(filename, encoding="UTF-8") as f: for line in f: try: - k, v = line.split('=') + k, v = line.split("=") except ValueError: # blank line / comment / etc. continue else: @@ -48,26 +48,26 @@ def _read_pyvenv_cfg(filename: str) -> dict[str, str]: def bin_dir(venv: str) -> str: """On windows there's a different directory for the virtualenv""" - bin_part = 'Scripts' if sys.platform == 'win32' else 'bin' + bin_part = "Scripts" if sys.platform == "win32" else "bin" return os.path.join(venv, bin_part) def get_env_patch(venv: str) -> PatchesT: return ( - ('PIP_DISABLE_PIP_VERSION_CHECK', '1'), - ('PYTHONHOME', UNSET), - ('VIRTUAL_ENV', venv), - ('PATH', (bin_dir(venv), os.pathsep, Var('PATH'))), + ("PIP_DISABLE_PIP_VERSION_CHECK", "1"), + ("PYTHONHOME", UNSET), + ("VIRTUAL_ENV", venv), + ("PATH", (bin_dir(venv), os.pathsep, Var("PATH"))), ) def _find_by_py_launcher( - version: str, + version: str, ) -> str | None: # pragma: no cover (windows only) - if version.startswith('python'): - num = version.removeprefix('python') - cmd = ('py', f'-{num}', '-c', 'import sys; print(sys.executable)') - env = dict(os.environ, PYTHONIOENCODING='UTF-8') + if version.startswith("python"): + num = version.removeprefix("python") + cmd = ("py", f"-{num}", "-c", "import sys; print(sys.executable)") + env = dict(os.environ, PYTHONIOENCODING="UTF-8") try: return cmd_output(*cmd, env=env)[1].strip() except CalledProcessError: @@ -76,8 +76,8 @@ def _find_by_py_launcher( def _impl_exe_name() -> str: - if sys.implementation.name == 'cpython': # pragma: cpython cover - return 'python' + if sys.implementation.name == "cpython": # pragma: cpython cover + return "python" else: # pragma: cpython no cover return sys.implementation.name # pypy mostly @@ -85,8 +85,8 @@ def _impl_exe_name() -> str: def _find_by_sys_executable() -> str | None: def _norm(path: str) -> str | None: _, exe = os.path.split(path.lower()) - exe, _, _ = exe.partition('.exe') - if exe not in {'python', 'pythonw'} and find_executable(exe): + exe, _, _ = exe.partition(".exe") + if exe not in {"python", "pythonw"} and find_executable(exe): return exe return None @@ -107,12 +107,12 @@ def _find_by_sys_executable() -> str | None: @functools.lru_cache(maxsize=1) def get_default_version() -> str: # pragma: no cover (platform dependent) - v_major = f'{sys.version_info[0]}' - v_minor = f'{sys.version_info[0]}.{sys.version_info[1]}' + v_major = f"{sys.version_info[0]}" + v_minor = f"{sys.version_info[0]}.{sys.version_info[1]}" # attempt the likely implementation exe for potential in (v_minor, v_major): - exe = f'{_impl_exe_name()}{potential}' + exe = f"{_impl_exe_name()}{potential}" if find_executable(exe): return exe @@ -122,8 +122,8 @@ def get_default_version() -> str: # pragma: no cover (platform dependent) return maybe_exe # maybe on windows we can find it via py launcher? - if sys.platform == 'win32': # pragma: win32 cover - exe = f'python{v_minor}' + if sys.platform == "win32": # pragma: win32 cover + exe = f"python{v_minor}" if _find_by_py_launcher(exe): return exe @@ -132,17 +132,17 @@ def get_default_version() -> str: # pragma: no cover (platform dependent) def _sys_executable_matches(version: str) -> bool: - if version == 'python': + if version == "python": return True - elif not version.startswith('python'): + elif not version.startswith("python"): return False try: - info = tuple(int(p) for p in version.removeprefix('python').split('.')) + info = tuple(int(p) for p in version.removeprefix("python").split(".")) except ValueError: return False - return sys.version_info[:len(info)] == info + return sys.version_info[: len(info)] == info def norm_version(version: str) -> str | None: @@ -151,7 +151,7 @@ def norm_version(version: str) -> str | None: elif _sys_executable_matches(version): # virtualenv defaults to our exe return None - if sys.platform == 'win32': # pragma: no cover (windows) + if sys.platform == "win32": # pragma: no cover (windows) version_exec = _find_by_py_launcher(version) if version_exec: return version_exec @@ -174,37 +174,37 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def health_check(prefix: Prefix, version: str) -> str | None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - pyvenv_cfg = os.path.join(envdir, 'pyvenv.cfg') + pyvenv_cfg = os.path.join(envdir, "pyvenv.cfg") # created with "old" virtualenv if not os.path.exists(pyvenv_cfg): - return 'pyvenv.cfg does not exist (old virtualenv?)' + return "pyvenv.cfg does not exist (old virtualenv?)" - exe_name = win_exe('python') + exe_name = win_exe("python") py_exe = prefix.path(bin_dir(envdir), exe_name) cfg = _read_pyvenv_cfg(pyvenv_cfg) - if 'version_info' not in cfg: + if "version_info" not in cfg: return "created virtualenv's pyvenv.cfg is missing `version_info`" # always use uncached lookup here in case we replaced an unhealthy env virtualenv_version = _version_info.__wrapped__(py_exe) - if virtualenv_version != cfg['version_info']: + if virtualenv_version != cfg["version_info"]: return ( - f'virtualenv python version did not match created version:\n' - f'- actual version: {virtualenv_version}\n' + f"virtualenv python version did not match created version:\n" + f"- actual version: {virtualenv_version}\n" f'- expected version: {cfg["version_info"]}\n' ) # made with an older version of virtualenv? skip `base-executable` check - if 'base-executable' not in cfg: + if "base-executable" not in cfg: return None - base_exe_version = _version_info(cfg['base-executable']) - if base_exe_version != cfg['version_info']: + base_exe_version = _version_info(cfg["base-executable"]) + if base_exe_version != cfg["version_info"]: return ( - f'base executable python version does not match created version:\n' - f'- base-executable version: {base_exe_version}\n' + f"base executable python version does not match created version:\n" + f"- base-executable version: {base_exe_version}\n" f'- expected version: {cfg["version_info"]}\n' ) else: @@ -212,17 +212,17 @@ def health_check(prefix: Prefix, version: str) -> str | None: def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - venv_cmd = [sys.executable, '-mvirtualenv', envdir] + venv_cmd = [sys.executable, "-mvirtualenv", envdir] python = norm_version(version) if python is not None: - venv_cmd.extend(('-p', python)) - install_cmd = ('python', '-mpip', 'install', '.', *additional_dependencies) + venv_cmd.extend(("-p", python)) + install_cmd = ("python", "-mpip", "install", ".", *additional_dependencies) - cmd_output_b(*venv_cmd, cwd='/') + cmd_output_b(*venv_cmd, cwd="/") with in_env(prefix, version): lang_base.setup_cmd(prefix, install_cmd) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/r.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/r.py index f70d2fd..4af0d5d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/r.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/r.py @@ -17,68 +17,100 @@ from pre_commit.prefix import Prefix from pre_commit.util import cmd_output from pre_commit.util import win_exe -ENVIRONMENT_DIR = 'renv' +ENVIRONMENT_DIR = "renv" get_default_version = lang_base.basic_get_default_version _RENV_ACTIVATED_OPTS = ( - '--no-save', '--no-restore', '--no-site-file', '--no-environ', + "--no-save", + "--no-restore", + "--no-site-file", + "--no-environ", ) def _execute_r( - code: str, *, - prefix: Prefix, version: str, args: Sequence[str] = (), cwd: str, - cli_opts: Sequence[str], + code: str, + *, + prefix: Prefix, + version: str, + args: Sequence[str] = (), + cwd: str, + cli_opts: Sequence[str], ) -> str: with in_env(prefix, version), _r_code_in_tempfile(code) as f: _, out, _ = cmd_output( - _rscript_exec(), *cli_opts, f, *args, cwd=cwd, + _rscript_exec(), + *cli_opts, + f, + *args, + cwd=cwd, ) - return out.rstrip('\n') + return out.rstrip("\n") def _execute_r_in_renv( - code: str, *, - prefix: Prefix, version: str, args: Sequence[str] = (), cwd: str, + code: str, + *, + prefix: Prefix, + version: str, + args: Sequence[str] = (), + cwd: str, ) -> str: return _execute_r( - code=code, prefix=prefix, version=version, args=args, cwd=cwd, + code=code, + prefix=prefix, + version=version, + args=args, + cwd=cwd, cli_opts=_RENV_ACTIVATED_OPTS, ) def _execute_vanilla_r( - code: str, *, - prefix: Prefix, version: str, args: Sequence[str] = (), cwd: str, + code: str, + *, + prefix: Prefix, + version: str, + args: Sequence[str] = (), + cwd: str, ) -> str: return _execute_r( - code=code, prefix=prefix, version=version, args=args, cwd=cwd, - cli_opts=('--vanilla',), + code=code, + prefix=prefix, + version=version, + args=args, + cwd=cwd, + cli_opts=("--vanilla",), ) def _read_installed_version(envdir: str, prefix: Prefix, version: str) -> str: return _execute_r_in_renv( - 'cat(renv::settings$r.version())', - prefix=prefix, version=version, + "cat(renv::settings$r.version())", + prefix=prefix, + version=version, cwd=envdir, ) def _read_executable_version(envdir: str, prefix: Prefix, version: str) -> str: return _execute_r_in_renv( - 'cat(as.character(getRversion()))', - prefix=prefix, version=version, + "cat(as.character(getRversion()))", + prefix=prefix, + version=version, cwd=envdir, ) def _write_current_r_version( - envdir: str, prefix: Prefix, version: str, + envdir: str, + prefix: Prefix, + version: str, ) -> None: _execute_r_in_renv( - 'renv::settings$r.version(as.character(getRversion()))', - prefix=prefix, version=version, + "renv::settings$r.version(as.character(getRversion()))", + prefix=prefix, + version=version, cwd=envdir, ) @@ -87,21 +119,25 @@ def health_check(prefix: Prefix, version: str) -> str | None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) r_version_installation = _read_installed_version( - envdir=envdir, prefix=prefix, version=version, + envdir=envdir, + prefix=prefix, + version=version, ) r_version_current_executable = _read_executable_version( - envdir=envdir, prefix=prefix, version=version, + envdir=envdir, + prefix=prefix, + version=version, ) - if r_version_installation in {'NULL', ''}: + if r_version_installation in {"NULL", ""}: return ( - f'Hooks were installed with an unknown R version. R version for ' - f'hook repo now set to {r_version_current_executable}' + f"Hooks were installed with an unknown R version. R version for " + f"hook repo now set to {r_version_current_executable}" ) elif r_version_installation != r_version_current_executable: return ( - f'Hooks were installed for R version {r_version_installation}, ' - f'but current R executable has version ' - f'{r_version_current_executable}' + f"Hooks were installed for R version {r_version_installation}, " + f"but current R executable has version " + f"{r_version_current_executable}" ) return None @@ -114,16 +150,16 @@ def _r_code_in_tempfile(code: str) -> Generator[str]: but use `Rscript [options] path/to/file_with_expr.R` """ with tempfile.TemporaryDirectory() as tmpdir: - fname = os.path.join(tmpdir, 'script.R') - with open(fname, 'w') as f: + fname = os.path.join(tmpdir, "script.R") + with open(fname, "w") as f: f.write(_inline_r_setup(textwrap.dedent(code))) yield fname def get_env_patch(venv: str) -> PatchesT: return ( - ('R_PROFILE_USER', os.path.join(venv, 'activate.R')), - ('RENV_PROJECT', UNSET), + ("R_PROFILE_USER", os.path.join(venv, "activate.R")), + ("RENV_PROJECT", UNSET), ) @@ -135,23 +171,23 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def _prefix_if_file_entry( - entry: list[str], - prefix: Prefix, - *, - is_local: bool, + entry: list[str], + prefix: Prefix, + *, + is_local: bool, ) -> Sequence[str]: - if entry[1] == '-e' or is_local: + if entry[1] == "-e" or is_local: return entry[1:] else: return (prefix.path(entry[1]),) def _rscript_exec() -> str: - r_home = os.environ.get('R_HOME') + r_home = os.environ.get("R_HOME") if r_home is None: - return 'Rscript' + return "Rscript" else: - return os.path.join(r_home, 'bin', win_exe('Rscript')) + return os.path.join(r_home, "bin", win_exe("Rscript")) def _entry_validate(entry: list[str]) -> None: @@ -160,25 +196,25 @@ def _entry_validate(entry: list[str]) -> None: # Rscript -e expr # Rscript path/to/file """ - if entry[0] != 'Rscript': - raise ValueError('entry must start with `Rscript`.') + if entry[0] != "Rscript": + raise ValueError("entry must start with `Rscript`.") - if entry[1] == '-e': + if entry[1] == "-e": if len(entry) > 3: - raise ValueError('You can supply at most one expression.') + raise ValueError("You can supply at most one expression.") elif len(entry) > 2: raise ValueError( - 'The only valid syntax is `Rscript -e {expr}`' - 'or `Rscript path/to/hook/script`', + "The only valid syntax is `Rscript -e {expr}`" + "or `Rscript path/to/hook/script`", ) def _cmd_from_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - *, - is_local: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + *, + is_local: bool, ) -> tuple[str, ...]: cmd = shlex.split(entry) _entry_validate(cmd) @@ -188,16 +224,16 @@ def _cmd_from_hook( def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: - lang_base.assert_version_default('r', version) + lang_base.assert_version_default("r", version) env_dir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) os.makedirs(env_dir, exist_ok=True) - shutil.copy(prefix.path('renv.lock'), env_dir) - shutil.copytree(prefix.path('renv'), os.path.join(env_dir, 'renv')) + shutil.copy(prefix.path("renv.lock"), env_dir) + shutil.copytree(prefix.path("renv"), os.path.join(env_dir, "renv")) r_code_inst_environment = f"""\ prefix_dir <- {prefix.prefix_dir!r} @@ -229,14 +265,18 @@ def install_environment( """ _execute_vanilla_r( r_code_inst_environment, - prefix=prefix, version=version, cwd=env_dir, + prefix=prefix, + version=version, + cwd=env_dir, ) _write_current_r_version(envdir=env_dir, prefix=prefix, version=version) if additional_dependencies: - r_code_inst_add = 'renv::install(commandArgs(trailingOnly = TRUE))' + r_code_inst_add = "renv::install(commandArgs(trailingOnly = TRUE))" _execute_r_in_renv( - code=r_code_inst_add, prefix=prefix, version=version, + code=r_code_inst_add, + prefix=prefix, + version=version, args=additional_dependencies, cwd=env_dir, ) @@ -256,18 +296,18 @@ def _inline_r_setup(code: str) -> str: """), code, ] - return '\n'.join(with_option) + return "\n".join(with_option) def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: cmd = _cmd_from_hook(prefix, entry, args, is_local=is_local) return lang_base.run_xargs( diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/ruby.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/ruby.py index f32fea3..39a5fd0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/ruby.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/ruby.py @@ -19,55 +19,62 @@ from pre_commit.envcontext import Var from pre_commit.prefix import Prefix from pre_commit.util import CalledProcessError -ENVIRONMENT_DIR = 'rbenv' +ENVIRONMENT_DIR = "rbenv" health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook def _resource_bytesio(filename: str) -> IO[bytes]: - files = importlib.resources.files('pre_commit.resources') - return files.joinpath(filename).open('rb') + files = importlib.resources.files("pre_commit.resources") + return files.joinpath(filename).open("rb") @functools.lru_cache(maxsize=1) def get_default_version() -> str: - if all(lang_base.exe_exists(exe) for exe in ('ruby', 'gem')): - return 'system' + if all(lang_base.exe_exists(exe) for exe in ("ruby", "gem")): + return "system" else: return C.DEFAULT def get_env_patch( - venv: str, - language_version: str, + venv: str, + language_version: str, ) -> PatchesT: patches: PatchesT = ( - ('GEM_HOME', os.path.join(venv, 'gems')), - ('GEM_PATH', UNSET), - ('BUNDLE_IGNORE_CONFIG', '1'), + ("GEM_HOME", os.path.join(venv, "gems")), + ("GEM_PATH", UNSET), + ("BUNDLE_IGNORE_CONFIG", "1"), ) - if language_version == 'system': + if language_version == "system": patches += ( ( - 'PATH', ( - os.path.join(venv, 'gems', 'bin'), os.pathsep, - Var('PATH'), + "PATH", + ( + os.path.join(venv, "gems", "bin"), + os.pathsep, + Var("PATH"), ), ), ) else: # pragma: win32 no cover patches += ( - ('RBENV_ROOT', venv), + ("RBENV_ROOT", venv), ( - 'PATH', ( - os.path.join(venv, 'gems', 'bin'), os.pathsep, - os.path.join(venv, 'shims'), os.pathsep, - os.path.join(venv, 'bin'), os.pathsep, Var('PATH'), + "PATH", + ( + os.path.join(venv, "gems", "bin"), + os.pathsep, + os.path.join(venv, "shims"), + os.pathsep, + os.path.join(venv, "bin"), + os.pathsep, + Var("PATH"), ), ), ) - if language_version not in {'system', 'default'}: # pragma: win32 no cover - patches += (('RBENV_VERSION', language_version),) + if language_version not in {"system", "default"}: # pragma: win32 no cover + patches += (("RBENV_VERSION", language_version),) return patches @@ -86,60 +93,68 @@ def _extract_resource(filename: str, dest: str) -> None: def _install_rbenv( - prefix: Prefix, - version: str, + prefix: Prefix, + version: str, ) -> None: # pragma: win32 no cover envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - _extract_resource('rbenv.tar.gz', prefix.path('.')) - shutil.move(prefix.path('rbenv'), envdir) + _extract_resource("rbenv.tar.gz", prefix.path(".")) + shutil.move(prefix.path("rbenv"), envdir) # Only install ruby-build if the version is specified if version != C.DEFAULT: - plugins_dir = os.path.join(envdir, 'plugins') - _extract_resource('ruby-download.tar.gz', plugins_dir) - _extract_resource('ruby-build.tar.gz', plugins_dir) + plugins_dir = os.path.join(envdir, "plugins") + _extract_resource("ruby-download.tar.gz", plugins_dir) + _extract_resource("ruby-build.tar.gz", plugins_dir) def _install_ruby( - prefix: Prefix, - version: str, + prefix: Prefix, + version: str, ) -> None: # pragma: win32 no cover try: - lang_base.setup_cmd(prefix, ('rbenv', 'download', version)) + lang_base.setup_cmd(prefix, ("rbenv", "download", version)) except CalledProcessError: # pragma: no cover (usually find with download) # Failed to download from mirror for some reason, build it instead - lang_base.setup_cmd(prefix, ('rbenv', 'install', version)) + lang_base.setup_cmd(prefix, ("rbenv", "install", version)) def install_environment( - prefix: Prefix, version: str, additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) - if version != 'system': # pragma: win32 no cover + if version != "system": # pragma: win32 no cover _install_rbenv(prefix, version) with in_env(prefix, version): # Need to call this before installing so rbenv's directories # are set up - lang_base.setup_cmd(prefix, ('rbenv', 'init', '-')) + lang_base.setup_cmd(prefix, ("rbenv", "init", "-")) if version != C.DEFAULT: _install_ruby(prefix, version) # Need to call this after installing to set up the shims - lang_base.setup_cmd(prefix, ('rbenv', 'rehash')) + lang_base.setup_cmd(prefix, ("rbenv", "rehash")) with in_env(prefix, version): lang_base.setup_cmd( - prefix, ('gem', 'build', *prefix.star('.gemspec')), + prefix, + ("gem", "build", *prefix.star(".gemspec")), ) lang_base.setup_cmd( prefix, ( - 'gem', 'install', - '--no-document', '--no-format-executable', - '--no-user-install', - '--install-dir', os.path.join(envdir, 'gems'), - '--bindir', os.path.join(envdir, 'gems', 'bin'), - *prefix.star('.gem'), *additional_dependencies, + "gem", + "install", + "--no-document", + "--no-format-executable", + "--no-user-install", + "--install-dir", + os.path.join(envdir, "gems"), + "--bindir", + os.path.join(envdir, "gems", "bin"), + *prefix.star(".gem"), + *additional_dependencies, ), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/rust.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/rust.py index fd77a9d..93a7d2c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/rust.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/rust.py @@ -21,7 +21,7 @@ from pre_commit.util import cmd_output_b from pre_commit.util import make_executable from pre_commit.util import win_exe -ENVIRONMENT_DIR = 'rustenv' +ENVIRONMENT_DIR = "rustenv" health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook @@ -34,8 +34,8 @@ def get_default_version() -> str: # Just detecting the executable does not suffice, because if rustup is # installed but no toolchain is available, then `cargo` exists but # cannot be used without installing a toolchain first. - if cmd_output_b('cargo', '--version', check=False, cwd='/')[0] == 0: - return 'system' + if cmd_output_b("cargo", "--version", check=False, cwd="/")[0] == 0: + return "system" else: return C.DEFAULT @@ -43,19 +43,20 @@ def get_default_version() -> str: def _rust_toolchain(language_version: str) -> str: """Transform the language version into a rust toolchain version.""" if language_version == C.DEFAULT: - return 'stable' + return "stable" else: return language_version def get_env_patch(target_dir: str, version: str) -> PatchesT: return ( - ('PATH', (os.path.join(target_dir, 'bin'), os.pathsep, Var('PATH'))), + ("PATH", (os.path.join(target_dir, "bin"), os.pathsep, Var("PATH"))), # Only set RUSTUP_TOOLCHAIN if we don't want use the system's default # toolchain *( - (('RUSTUP_TOOLCHAIN', _rust_toolchain(version)),) - if version != 'system' else () + (("RUSTUP_TOOLCHAIN", _rust_toolchain(version)),) + if version != "system" + else () ), ) @@ -68,52 +69,59 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def _add_dependencies( - prefix: Prefix, - additional_dependencies: set[str], + prefix: Prefix, + additional_dependencies: set[str], ) -> None: crates = [] for dep in additional_dependencies: - name, _, spec = dep.partition(':') + name, _, spec = dep.partition(":") crate = f'{name}@{spec or "*"}' crates.append(crate) - lang_base.setup_cmd(prefix, ('cargo', 'add', *crates)) + lang_base.setup_cmd(prefix, ("cargo", "add", *crates)) def install_rust_with_toolchain(toolchain: str, envdir: str) -> None: with tempfile.TemporaryDirectory() as rustup_dir: - with envcontext((('CARGO_HOME', envdir), ('RUSTUP_HOME', rustup_dir))): + with envcontext((("CARGO_HOME", envdir), ("RUSTUP_HOME", rustup_dir))): # acquire `rustup` if not present - if parse_shebang.find_executable('rustup') is None: + if parse_shebang.find_executable("rustup") is None: # We did not detect rustup and need to download it first. - if sys.platform == 'win32': # pragma: win32 cover - url = 'https://win.rustup.rs/x86_64' + if sys.platform == "win32": # pragma: win32 cover + url = "https://win.rustup.rs/x86_64" else: # pragma: win32 no cover - url = 'https://sh.rustup.rs' + url = "https://sh.rustup.rs" resp = urllib.request.urlopen(url) - rustup_init = os.path.join(rustup_dir, win_exe('rustup-init')) - with open(rustup_init, 'wb') as f: + rustup_init = os.path.join(rustup_dir, win_exe("rustup-init")) + with open(rustup_init, "wb") as f: shutil.copyfileobj(resp, f) make_executable(rustup_init) # install rustup into `$CARGO_HOME/bin` cmd_output_b( - rustup_init, '-y', '--quiet', '--no-modify-path', - '--default-toolchain', 'none', + rustup_init, + "-y", + "--quiet", + "--no-modify-path", + "--default-toolchain", + "none", ) cmd_output_b( - 'rustup', 'toolchain', 'install', '--no-self-update', + "rustup", + "toolchain", + "install", + "--no-self-update", toolchain, ) def install_environment( - prefix: Prefix, - version: str, - additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) @@ -127,34 +135,37 @@ def install_environment( # # Because of this, we allow specifying "cli" dependencies by prefixing # with 'cli:'. - cli_deps = { - dep for dep in additional_dependencies if dep.startswith('cli:') - } + cli_deps = {dep for dep in additional_dependencies if dep.startswith("cli:")} lib_deps = set(additional_dependencies) - cli_deps - packages_to_install: set[tuple[str, ...]] = {('--path', '.')} + packages_to_install: set[tuple[str, ...]] = {("--path", ".")} for cli_dep in cli_deps: - cli_dep = cli_dep.removeprefix('cli:') - package, _, crate_version = cli_dep.partition(':') - if crate_version != '': - packages_to_install.add((package, '--version', crate_version)) + cli_dep = cli_dep.removeprefix("cli:") + package, _, crate_version = cli_dep.partition(":") + if crate_version != "": + packages_to_install.add((package, "--version", crate_version)) else: packages_to_install.add((package,)) with contextlib.ExitStack() as ctx: ctx.enter_context(in_env(prefix, version)) - if version != 'system': + if version != "system": install_rust_with_toolchain(_rust_toolchain(version), envdir) tmpdir = ctx.enter_context(tempfile.TemporaryDirectory()) - ctx.enter_context(envcontext((('RUSTUP_HOME', tmpdir),))) + ctx.enter_context(envcontext((("RUSTUP_HOME", tmpdir),))) if len(lib_deps) > 0: _add_dependencies(prefix, lib_deps) for args in packages_to_install: cmd_output_b( - 'cargo', 'install', '--bins', '--root', envdir, *args, + "cargo", + "install", + "--bins", + "--root", + envdir, + *args, cwd=prefix.prefix_dir, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/swift.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/swift.py index 08a9c39..16d6d41 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/swift.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/swift.py @@ -12,10 +12,10 @@ from pre_commit.envcontext import Var from pre_commit.prefix import Prefix from pre_commit.util import cmd_output_b -BUILD_DIR = '.build' -BUILD_CONFIG = 'release' +BUILD_DIR = ".build" +BUILD_CONFIG = "release" -ENVIRONMENT_DIR = 'swift_env' +ENVIRONMENT_DIR = "swift_env" get_default_version = lang_base.basic_get_default_version health_check = lang_base.basic_health_check run_hook = lang_base.basic_run_hook @@ -23,7 +23,7 @@ run_hook = lang_base.basic_run_hook def get_env_patch(venv: str) -> PatchesT: # pragma: win32 no cover bin_path = os.path.join(venv, BUILD_DIR, BUILD_CONFIG) - return (('PATH', (bin_path, os.pathsep, Var('PATH'))),) + return (("PATH", (bin_path, os.pathsep, Var("PATH"))),) @contextlib.contextmanager # pragma: win32 no cover @@ -34,17 +34,23 @@ def in_env(prefix: Prefix, version: str) -> Generator[None]: def install_environment( - prefix: Prefix, version: str, additional_dependencies: Sequence[str], + prefix: Prefix, + version: str, + additional_dependencies: Sequence[str], ) -> None: # pragma: win32 no cover - lang_base.assert_version_default('swift', version) - lang_base.assert_no_additional_deps('swift', additional_dependencies) + lang_base.assert_version_default("swift", version) + lang_base.assert_no_additional_deps("swift", additional_dependencies) envdir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version) # Build the swift package os.mkdir(envdir) cmd_output_b( - 'swift', 'build', - '--package-path', prefix.prefix_dir, - '-c', BUILD_CONFIG, - '--build-path', os.path.join(envdir, BUILD_DIR), + "swift", + "build", + "--package-path", + prefix.prefix_dir, + "-c", + BUILD_CONFIG, + "--build-path", + os.path.join(envdir, BUILD_DIR), ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/unsupported_script.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/unsupported_script.py index 1eaa1e2..8e0cd80 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/unsupported_script.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/languages/unsupported_script.py @@ -13,14 +13,14 @@ in_env = lang_base.no_env def run_hook( - prefix: Prefix, - entry: str, - args: Sequence[str], - file_args: Sequence[str], - *, - is_local: bool, - require_serial: bool, - color: bool, + prefix: Prefix, + entry: str, + args: Sequence[str], + file_args: Sequence[str], + *, + is_local: bool, + require_serial: bool, + color: bool, ) -> tuple[int, bytes]: cmd = lang_base.hook_cmd(entry, args) cmd = (prefix.path(cmd[0]), *cmd[1:]) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/logging_handler.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/logging_handler.py index 74772be..af38710 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/logging_handler.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/logging_handler.py @@ -7,13 +7,13 @@ from collections.abc import Generator from pre_commit import color from pre_commit import output -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") LOG_LEVEL_COLORS = { - 'DEBUG': '', - 'INFO': '', - 'WARNING': color.YELLOW, - 'ERROR': color.RED, + "DEBUG": "", + "INFO": "", + "WARNING": color.YELLOW, + "ERROR": color.RED, } @@ -24,11 +24,11 @@ class LoggingHandler(logging.Handler): def emit(self, record: logging.LogRecord) -> None: level_msg = color.format_color( - f'[{record.levelname}]', + f"[{record.levelname}]", LOG_LEVEL_COLORS[record.levelname], self.use_color, ) - output.write_line(f'{level_msg} {record.getMessage()}') + output.write_line(f"{level_msg} {record.getMessage()}") @contextlib.contextmanager diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/main.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/main.py index 0c3eefd..ffbc64f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/main.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/main.py @@ -29,145 +29,167 @@ from pre_commit.error_handler import error_handler from pre_commit.logging_handler import logging_handler from pre_commit.store import Store - -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") # https://github.com/pre-commit/pre-commit/issues/217 # On OSX, making a virtualenv using pyvenv at . causes `virtualenv` and `pip` # to install packages to the wrong place. We don't want anything to deal with # pyvenv -os.environ.pop('__PYVENV_LAUNCHER__', None) +os.environ.pop("__PYVENV_LAUNCHER__", None) # https://github.com/getsentry/snuba/pull/5388 -os.environ.pop('PYTHONEXECUTABLE', None) +os.environ.pop("PYTHONEXECUTABLE", None) COMMANDS_NO_GIT = { - 'clean', 'gc', 'hazmat', 'init-templatedir', 'sample-config', - 'validate-config', 'validate-manifest', + "clean", + "gc", + "hazmat", + "init-templatedir", + "sample-config", + "validate-config", + "validate-manifest", } def _add_config_option(parser: argparse.ArgumentParser) -> None: parser.add_argument( - '-c', '--config', default=C.CONFIG_FILE, - help='Path to alternate config file', + "-c", + "--config", + default=C.CONFIG_FILE, + help="Path to alternate config file", ) def _add_hook_type_option(parser: argparse.ArgumentParser) -> None: parser.add_argument( - '-t', '--hook-type', - choices=clientlib.HOOK_TYPES, action='append', dest='hook_types', + "-t", + "--hook-type", + choices=clientlib.HOOK_TYPES, + action="append", + dest="hook_types", ) def _add_run_options(parser: argparse.ArgumentParser) -> None: - parser.add_argument('hook', nargs='?', help='A single hook-id to run') - parser.add_argument('--verbose', '-v', action='store_true') + parser.add_argument("hook", nargs="?", help="A single hook-id to run") + parser.add_argument("--verbose", "-v", action="store_true") mutex_group = parser.add_mutually_exclusive_group(required=False) mutex_group.add_argument( - '--all-files', '-a', action='store_true', - help='Run on all the files in the repo.', + "--all-files", + "-a", + action="store_true", + help="Run on all the files in the repo.", ) mutex_group.add_argument( - '--files', nargs='*', default=[], - help='Specific filenames to run hooks on.', + "--files", + nargs="*", + default=[], + help="Specific filenames to run hooks on.", ) parser.add_argument( - '--show-diff-on-failure', action='store_true', - help='When hooks fail, run `git diff` directly afterward.', + "--show-diff-on-failure", + action="store_true", + help="When hooks fail, run `git diff` directly afterward.", ) parser.add_argument( - '--fail-fast', action='store_true', - help='Stop after the first failing hook.', + "--fail-fast", + action="store_true", + help="Stop after the first failing hook.", ) parser.add_argument( - '--hook-stage', + "--hook-stage", choices=clientlib.STAGES, type=clientlib.transform_stage, - default='pre-commit', - help='The stage during which the hook is fired. One of %(choices)s', + default="pre-commit", + help="The stage during which the hook is fired. One of %(choices)s", ) parser.add_argument( - '--remote-branch', help='Remote branch ref used by `git push`.', + "--remote-branch", + help="Remote branch ref used by `git push`.", ) parser.add_argument( - '--local-branch', help='Local branch ref used by `git push`.', + "--local-branch", + help="Local branch ref used by `git push`.", ) parser.add_argument( - '--from-ref', '--source', '-s', + "--from-ref", + "--source", + "-s", help=( - '(for usage with `--to-ref`) -- this option represents the ' - 'original ref in a `from_ref...to_ref` diff expression. ' - 'For `pre-push` hooks, this represents the branch you are pushing ' - 'to. ' - 'For `post-checkout` hooks, this represents the branch that was ' - 'previously checked out.' + "(for usage with `--to-ref`) -- this option represents the " + "original ref in a `from_ref...to_ref` diff expression. " + "For `pre-push` hooks, this represents the branch you are pushing " + "to. " + "For `post-checkout` hooks, this represents the branch that was " + "previously checked out." ), ) parser.add_argument( - '--to-ref', '--origin', '-o', + "--to-ref", + "--origin", + "-o", help=( - '(for usage with `--from-ref`) -- this option represents the ' - 'destination ref in a `from_ref...to_ref` diff expression. ' - 'For `pre-push` hooks, this represents the branch being pushed. ' - 'For `post-checkout` hooks, this represents the branch that is ' - 'now checked out.' + "(for usage with `--from-ref`) -- this option represents the " + "destination ref in a `from_ref...to_ref` diff expression. " + "For `pre-push` hooks, this represents the branch being pushed. " + "For `post-checkout` hooks, this represents the branch that is " + "now checked out." ), ) parser.add_argument( - '--pre-rebase-upstream', help=( - 'The upstream from which the series was forked.' - ), + "--pre-rebase-upstream", + help=("The upstream from which the series was forked."), ) parser.add_argument( - '--pre-rebase-branch', help=( - 'The branch being rebased, and is not set when ' - 'rebasing the current branch.' - ), - ) - parser.add_argument( - '--commit-msg-filename', - help='Filename to check when running during `commit-msg`', - ) - parser.add_argument( - '--prepare-commit-message-source', + "--pre-rebase-branch", help=( - 'Source of the commit message ' - '(typically the second argument to .git/hooks/prepare-commit-msg)' + "The branch being rebased, and is not set when " + "rebasing the current branch." ), ) parser.add_argument( - '--commit-object-name', + "--commit-msg-filename", + help="Filename to check when running during `commit-msg`", + ) + parser.add_argument( + "--prepare-commit-message-source", help=( - 'Commit object name ' - '(typically the third argument to .git/hooks/prepare-commit-msg)' + "Source of the commit message " + "(typically the second argument to .git/hooks/prepare-commit-msg)" ), ) parser.add_argument( - '--remote-name', help='Remote name used by `git push`.', - ) - parser.add_argument('--remote-url', help='Remote url used by `git push`.') - parser.add_argument( - '--checkout-type', + "--commit-object-name", help=( - 'Indicates whether the checkout was a branch checkout ' - '(changing branches, flag=1) or a file checkout (retrieving a ' - 'file from the index, flag=0).' + "Commit object name " + "(typically the third argument to .git/hooks/prepare-commit-msg)" ), ) parser.add_argument( - '--is-squash-merge', + "--remote-name", + help="Remote name used by `git push`.", + ) + parser.add_argument("--remote-url", help="Remote url used by `git push`.") + parser.add_argument( + "--checkout-type", help=( - 'During a post-merge hook, indicates whether the merge was a ' - 'squash merge' + "Indicates whether the checkout was a branch checkout " + "(changing branches, flag=1) or a file checkout (retrieving a " + "file from the index, flag=0)." ), ) parser.add_argument( - '--rewrite-command', + "--is-squash-merge", help=( - 'During a post-rewrite hook, specifies the command that invoked ' - 'the rewrite' + "During a post-merge hook, indicates whether the merge was a " + "squash merge" + ), + ) + parser.add_argument( + "--rewrite-command", + help=( + "During a post-rewrite hook, specifies the command that invoked " + "the rewrite" ), ) @@ -176,41 +198,42 @@ def _adjust_args_and_chdir(args: argparse.Namespace) -> None: # `--config` was specified relative to the non-root working directory if os.path.exists(args.config): args.config = os.path.abspath(args.config) - if args.command in {'run', 'try-repo'}: + if args.command in {"run", "try-repo"}: args.files = [os.path.abspath(filename) for filename in args.files] if args.commit_msg_filename is not None: args.commit_msg_filename = os.path.abspath( args.commit_msg_filename, ) - if args.command == 'try-repo' and os.path.exists(args.repo): + if args.command == "try-repo" and os.path.exists(args.repo): args.repo = os.path.abspath(args.repo) toplevel = git.get_root() os.chdir(toplevel) args.config = os.path.relpath(args.config) - if args.command in {'run', 'try-repo'}: + if args.command in {"run", "try-repo"}: args.files = [os.path.relpath(filename) for filename in args.files] if args.commit_msg_filename is not None: args.commit_msg_filename = os.path.relpath( args.commit_msg_filename, ) - if args.command == 'try-repo' and os.path.exists(args.repo): + if args.command == "try-repo" and os.path.exists(args.repo): args.repo = os.path.relpath(args.repo) def main(argv: Sequence[str] | None = None) -> int: argv = argv if argv is not None else sys.argv[1:] - parser = argparse.ArgumentParser(prog='pre-commit') + parser = argparse.ArgumentParser(prog="pre-commit") # https://stackoverflow.com/a/8521644/812183 parser.add_argument( - '-V', '--version', - action='version', - version=f'%(prog)s {C.VERSION}', + "-V", + "--version", + action="version", + version=f"%(prog)s {C.VERSION}", ) - subparsers = parser.add_subparsers(dest='command') + subparsers = parser.add_subparsers(dest="command") def _add_cmd(name: str, *, help: str) -> argparse.ArgumentParser: parser = subparsers.add_parser(name, help=help) @@ -218,161 +241,183 @@ def main(argv: Sequence[str] | None = None) -> int: return parser autoupdate_parser = _add_cmd( - 'autoupdate', + "autoupdate", help="Auto-update pre-commit config to the latest repos' versions.", ) _add_config_option(autoupdate_parser) autoupdate_parser.add_argument( - '--bleeding-edge', action='store_true', + "--bleeding-edge", + action="store_true", help=( - 'Update to the bleeding edge of `HEAD` instead of the latest ' - 'tagged version (the default behavior).' + "Update to the bleeding edge of `HEAD` instead of the latest " + "tagged version (the default behavior)." ), ) autoupdate_parser.add_argument( - '--freeze', action='store_true', + "--freeze", + action="store_true", help='Store "frozen" hashes in `rev` instead of tag names', ) autoupdate_parser.add_argument( - '--repo', dest='repos', action='append', metavar='REPO', default=[], - help='Only update this repository -- may be specified multiple times.', + "--repo", + dest="repos", + action="append", + metavar="REPO", + default=[], + help="Only update this repository -- may be specified multiple times.", ) autoupdate_parser.add_argument( - '-j', '--jobs', type=int, default=1, - help='Number of threads to use. (default %(default)s).', + "-j", + "--jobs", + type=int, + default=1, + help="Number of threads to use. (default %(default)s).", ) - _add_cmd('clean', help='Clean out pre-commit files.') + _add_cmd("clean", help="Clean out pre-commit files.") - _add_cmd('gc', help='Clean unused cached repos.') + _add_cmd("gc", help="Clean unused cached repos.") hazmat_parser = _add_cmd( - 'hazmat', help='Composable tools for rare use in hook `entry`.', + "hazmat", + help="Composable tools for rare use in hook `entry`.", ) hazmat.add_parsers(hazmat_parser) init_templatedir_parser = _add_cmd( - 'init-templatedir', + "init-templatedir", help=( - 'Install hook script in a directory intended for use with ' - '`git config init.templateDir`.' + "Install hook script in a directory intended for use with " + "`git config init.templateDir`." ), ) _add_config_option(init_templatedir_parser) init_templatedir_parser.add_argument( - 'directory', help='The directory in which to write the hook script.', + "directory", + help="The directory in which to write the hook script.", ) init_templatedir_parser.add_argument( - '--no-allow-missing-config', - action='store_false', - dest='allow_missing_config', - help='Assume cloned repos should have a `pre-commit` config.', + "--no-allow-missing-config", + action="store_false", + dest="allow_missing_config", + help="Assume cloned repos should have a `pre-commit` config.", ) _add_hook_type_option(init_templatedir_parser) - install_parser = _add_cmd('install', help='Install the pre-commit script.') + install_parser = _add_cmd("install", help="Install the pre-commit script.") _add_config_option(install_parser) install_parser.add_argument( - '-f', '--overwrite', action='store_true', - help='Overwrite existing hooks / remove migration mode.', + "-f", + "--overwrite", + action="store_true", + help="Overwrite existing hooks / remove migration mode.", ) install_parser.add_argument( - '--install-hooks', action='store_true', + "--install-hooks", + action="store_true", help=( - 'Whether to install hook environments for all environments ' - 'in the config file.' + "Whether to install hook environments for all environments " + "in the config file." ), ) _add_hook_type_option(install_parser) install_parser.add_argument( - '--allow-missing-config', action='store_true', + "--allow-missing-config", + action="store_true", help=( - 'Whether to allow a missing `pre-commit` configuration file ' - 'or exit with a failure code.' + "Whether to allow a missing `pre-commit` configuration file " + "or exit with a failure code." ), ) install_hooks_parser = _add_cmd( - 'install-hooks', + "install-hooks", help=( - 'Install hook environments for all environments in the config ' - 'file. You may find `pre-commit install --install-hooks` more ' - 'useful.' + "Install hook environments for all environments in the config " + "file. You may find `pre-commit install --install-hooks` more " + "useful." ), ) _add_config_option(install_hooks_parser) migrate_config_parser = _add_cmd( - 'migrate-config', - help='Migrate list configuration to new map configuration.', + "migrate-config", + help="Migrate list configuration to new map configuration.", ) _add_config_option(migrate_config_parser) - run_parser = _add_cmd('run', help='Run hooks.') + run_parser = _add_cmd("run", help="Run hooks.") _add_config_option(run_parser) _add_run_options(run_parser) - _add_cmd('sample-config', help=f'Produce a sample {C.CONFIG_FILE} file') + _add_cmd("sample-config", help=f"Produce a sample {C.CONFIG_FILE} file") try_repo_parser = _add_cmd( - 'try-repo', - help='Try the hooks in a repository, useful for developing new hooks.', + "try-repo", + help="Try the hooks in a repository, useful for developing new hooks.", ) _add_config_option(try_repo_parser) try_repo_parser.add_argument( - 'repo', help='Repository to source hooks from.', + "repo", + help="Repository to source hooks from.", ) try_repo_parser.add_argument( - '--ref', '--rev', + "--ref", + "--rev", help=( - 'Manually select a rev to run against, otherwise the `HEAD` ' - 'revision will be used.' + "Manually select a rev to run against, otherwise the `HEAD` " + "revision will be used." ), ) _add_run_options(try_repo_parser) uninstall_parser = _add_cmd( - 'uninstall', help='Uninstall the pre-commit script.', + "uninstall", + help="Uninstall the pre-commit script.", ) _add_config_option(uninstall_parser) _add_hook_type_option(uninstall_parser) validate_config_parser = _add_cmd( - 'validate-config', help='Validate .pre-commit-config.yaml files', + "validate-config", + help="Validate .pre-commit-config.yaml files", ) - validate_config_parser.add_argument('filenames', nargs='*') + validate_config_parser.add_argument("filenames", nargs="*") validate_manifest_parser = _add_cmd( - 'validate-manifest', help='Validate .pre-commit-hooks.yaml files', + "validate-manifest", + help="Validate .pre-commit-hooks.yaml files", ) - validate_manifest_parser.add_argument('filenames', nargs='*') + validate_manifest_parser.add_argument("filenames", nargs="*") # does not use `_add_cmd` because it doesn't use `--color` help = subparsers.add_parser( - 'help', help='Show help for a specific command.', + "help", + help="Show help for a specific command.", ) - help.add_argument('help_cmd', nargs='?', help='Command to show help for.') + help.add_argument("help_cmd", nargs="?", help="Command to show help for.") # not intended for users to call this directly - hook_impl_parser = subparsers.add_parser('hook-impl') + hook_impl_parser = subparsers.add_parser("hook-impl") add_color_option(hook_impl_parser) _add_config_option(hook_impl_parser) - hook_impl_parser.add_argument('--hook-type') - hook_impl_parser.add_argument('--hook-dir') + hook_impl_parser.add_argument("--hook-type") + hook_impl_parser.add_argument("--hook-dir") hook_impl_parser.add_argument( - '--skip-on-missing-config', action='store_true', + "--skip-on-missing-config", + action="store_true", ) - hook_impl_parser.add_argument(dest='rest', nargs=argparse.REMAINDER) + hook_impl_parser.add_argument(dest="rest", nargs=argparse.REMAINDER) # argparse doesn't really provide a way to use a `default` subparser if len(argv) == 0: - argv = ['run'] + argv = ["run"] args = parser.parse_args(argv) - if args.command == 'help' and args.help_cmd: - parser.parse_args([args.help_cmd, '--help']) - elif args.command == 'help': - parser.parse_args(['--help']) + if args.command == "help" and args.help_cmd: + parser.parse_args([args.help_cmd, "--help"]) + elif args.command == "help": + parser.parse_args(["--help"]) with error_handler(), logging_handler(args.color): git.check_for_cygwin_mismatch() @@ -383,7 +428,7 @@ def main(argv: Sequence[str] | None = None) -> int: _adjust_args_and_chdir(args) store.mark_config_used(args.config) - if args.command == 'autoupdate': + if args.command == "autoupdate": return autoupdate( args.config, tags_only=not args.bleeding_edge, @@ -391,13 +436,13 @@ def main(argv: Sequence[str] | None = None) -> int: repos=args.repos, jobs=args.jobs, ) - elif args.command == 'clean': + elif args.command == "clean": return clean(store) - elif args.command == 'gc': + elif args.command == "gc": return gc(store) - elif args.command == 'hazmat': + elif args.command == "hazmat": return hazmat.impl(args) - elif args.command == 'hook-impl': + elif args.command == "hook-impl": return hook_impl( store, config=args.config, @@ -407,48 +452,51 @@ def main(argv: Sequence[str] | None = None) -> int: skip_on_missing_config=args.skip_on_missing_config, args=args.rest[1:], ) - elif args.command == 'install': + elif args.command == "install": return install( - args.config, store, + args.config, + store, hook_types=args.hook_types, overwrite=args.overwrite, hooks=args.install_hooks, skip_on_missing_config=args.allow_missing_config, ) - elif args.command == 'init-templatedir': + elif args.command == "init-templatedir": return init_templatedir( - args.config, store, args.directory, + args.config, + store, + args.directory, hook_types=args.hook_types, skip_on_missing_config=args.allow_missing_config, ) - elif args.command == 'install-hooks': + elif args.command == "install-hooks": return install_hooks(args.config, store) - elif args.command == 'migrate-config': + elif args.command == "migrate-config": return migrate_config(args.config) - elif args.command == 'run': + elif args.command == "run": return run(args.config, store, args) - elif args.command == 'sample-config': + elif args.command == "sample-config": return sample_config() - elif args.command == 'try-repo': + elif args.command == "try-repo": return try_repo(args) - elif args.command == 'uninstall': + elif args.command == "uninstall": return uninstall( config_file=args.config, hook_types=args.hook_types, ) - elif args.command == 'validate-config': + elif args.command == "validate-config": return validate_config(args.filenames) - elif args.command == 'validate-manifest': + elif args.command == "validate-manifest": return validate_manifest(args.filenames) else: raise NotImplementedError( - f'Command {args.command} not implemented.', + f"Command {args.command} not implemented.", ) raise AssertionError( - f'Command {args.command} failed to exit with a returncode', + f"Command {args.command} failed to exit with a returncode", ) -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_hooks_apply.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_hooks_apply.py index 84c142b..be15833 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_hooks_apply.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_hooks_apply.py @@ -14,15 +14,17 @@ from pre_commit.store import Store def check_all_hooks_match_files(config_file: str) -> int: config = load_config(config_file) classifier = Classifier.from_config( - git.get_all_files(), config['files'], config['exclude'], + git.get_all_files(), + config["files"], + config["exclude"], ) retv = 0 for hook in all_hooks(config, Store()): - if hook.always_run or hook.language == 'fail': + if hook.always_run or hook.language == "fail": continue elif not any(classifier.filenames_for_hook(hook)): - print(f'{hook.id} does not apply to this repository') + print(f"{hook.id} does not apply to this repository") retv = 1 return retv @@ -30,7 +32,7 @@ def check_all_hooks_match_files(config_file: str) -> int: def main(argv: Sequence[str] | None = None) -> int: parser = argparse.ArgumentParser() - parser.add_argument('filenames', nargs='*', default=[C.CONFIG_FILE]) + parser.add_argument("filenames", nargs="*", default=[C.CONFIG_FILE]) args = parser.parse_args(argv) retv = 0 @@ -39,5 +41,5 @@ def main(argv: Sequence[str] | None = None) -> int: return retv -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_useless_excludes.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_useless_excludes.py index 664251a..6e0806f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_useless_excludes.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/check_useless_excludes.py @@ -15,11 +15,11 @@ from pre_commit.commands.run import Classifier def exclude_matches_any( - filenames: Iterable[str], - include: str, - exclude: str, + filenames: Iterable[str], + include: str, + exclude: str, ) -> bool: - if exclude == '^$': + if exclude == "^$": return True include_re, exclude_re = re.compile(include), re.compile(exclude) for filename in filenames: @@ -32,36 +32,38 @@ def check_useless_excludes(config_file: str) -> int: config = load_config(config_file) filenames = git.get_all_files() classifier = Classifier.from_config( - filenames, config['files'], config['exclude'], + filenames, + config["files"], + config["exclude"], ) retv = 0 - exclude = config['exclude'] - if not exclude_matches_any(filenames, '', exclude): + exclude = config["exclude"] + if not exclude_matches_any(filenames, "", exclude): print( - f'The global exclude pattern {exclude!r} does not match any files', + f"The global exclude pattern {exclude!r} does not match any files", ) retv = 1 - for repo in config['repos']: - for hook in repo['hooks']: + for repo in config["repos"]: + for hook in repo["hooks"]: # the default of manifest hooks is `types: [file]` but we may # be configuring a symlink hook while there's a broken symlink - hook.setdefault('types', []) + hook.setdefault("types", []) # Not actually a manifest dict, but this more accurately reflects # the defaults applied during runtime hook = apply_defaults(hook, MANIFEST_HOOK_DICT) names = classifier.by_types( classifier.filenames, - hook['types'], - hook['types_or'], - hook['exclude_types'], + hook["types"], + hook["types_or"], + hook["exclude_types"], ) - include, exclude = hook['files'], hook['exclude'] + include, exclude = hook["files"], hook["exclude"] if not exclude_matches_any(names, include, exclude): print( f'The exclude pattern {exclude!r} for {hook["id"]} does ' - f'not match any files', + f"not match any files", ) retv = 1 @@ -70,7 +72,7 @@ def check_useless_excludes(config_file: str) -> int: def main(argv: Sequence[str] | None = None) -> int: parser = argparse.ArgumentParser() - parser.add_argument('filenames', nargs='*', default=[C.CONFIG_FILE]) + parser.add_argument("filenames", nargs="*", default=[C.CONFIG_FILE]) args = parser.parse_args(argv) retv = 0 @@ -79,5 +81,5 @@ def main(argv: Sequence[str] | None = None) -> int: return retv -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/identity.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/identity.py index 3e20bbc..ed4d2be 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/identity.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/meta_hooks/identity.py @@ -13,5 +13,5 @@ def main(argv: Sequence[str] | None = None) -> int: return 0 -if __name__ == '__main__': +if __name__ == "__main__": raise SystemExit(main()) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/output.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/output.py index 4bcf27f..703f3c2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/output.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/output.py @@ -12,20 +12,20 @@ def write(s: str, stream: IO[bytes] = sys.stdout.buffer) -> None: def write_line_b( - s: bytes | None = None, - stream: IO[bytes] = sys.stdout.buffer, - logfile_name: str | None = None, + s: bytes | None = None, + stream: IO[bytes] = sys.stdout.buffer, + logfile_name: str | None = None, ) -> None: with contextlib.ExitStack() as exit_stack: output_streams = [stream] if logfile_name: - stream = exit_stack.enter_context(open(logfile_name, 'ab')) + stream = exit_stack.enter_context(open(logfile_name, "ab")) output_streams.append(stream) for output_stream in output_streams: if s is not None: output_stream.write(s) - output_stream.write(b'\n') + output_stream.write(b"\n") output_stream.flush() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/parse_shebang.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/parse_shebang.py index 043a9b5..a5edc84 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/parse_shebang.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/parse_shebang.py @@ -20,7 +20,9 @@ def parse_filename(filename: str) -> tuple[str, ...]: def find_executable( - exe: str, *, env: Mapping[str, str] | None = None, + exe: str, + *, + env: Mapping[str, str] | None = None, ) -> str | None: exe = os.path.normpath(exe) if os.sep in exe: @@ -28,13 +30,13 @@ def find_executable( environ = env if env is not None else os.environ - if 'PATHEXT' in environ: - exts = environ['PATHEXT'].split(os.pathsep) - possible_exe_names = tuple(f'{exe}{ext}' for ext in exts) + (exe,) + if "PATHEXT" in environ: + exts = environ["PATHEXT"].split(os.pathsep) + possible_exe_names = tuple(f"{exe}{ext}" for ext in exts) + (exe,) else: possible_exe_names = (exe,) - for path in environ.get('PATH', '').split(os.pathsep): + for path in environ.get("PATH", "").split(os.pathsep): for possible_exe_name in possible_exe_names: joined = os.path.join(path, possible_exe_name) if os.path.isfile(joined) and os.access(joined, os.X_OK): @@ -45,27 +47,27 @@ def find_executable( def normexe(orig: str, *, env: Mapping[str, str] | None = None) -> str: def _error(msg: str) -> NoReturn: - raise ExecutableNotFoundError(f'Executable `{orig}` {msg}') + raise ExecutableNotFoundError(f"Executable `{orig}` {msg}") if os.sep not in orig and (not os.altsep or os.altsep not in orig): exe = find_executable(orig, env=env) if exe is None: - _error('not found') + _error("not found") return exe elif os.path.isdir(orig): - _error('is a directory') + _error("is a directory") elif not os.path.isfile(orig): - _error('not found') + _error("not found") elif not os.access(orig, os.X_OK): # pragma: win32 no cover - _error('is not executable') + _error("is not executable") else: return orig def normalize_cmd( - cmd: tuple[str, ...], - *, - env: Mapping[str, str] | None = None, + cmd: tuple[str, ...], + *, + env: Mapping[str, str] | None = None, ) -> tuple[str, ...]: """Fixes for the following issues on windows - https://bugs.python.org/issue8557 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/repository.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/repository.py index a9461ab..c46a795 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/repository.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/repository.py @@ -18,20 +18,19 @@ from pre_commit.store import Store from pre_commit.util import clean_path_on_failure from pre_commit.util import rmtree - -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") def _state_filename_v1(venv: str) -> str: - return os.path.join(venv, '.install_state_v1') + return os.path.join(venv, ".install_state_v1") def _state_filename_v2(venv: str) -> str: - return os.path.join(venv, '.install_state_v2') + return os.path.join(venv, ".install_state_v2") def _state(additional_deps: Sequence[str]) -> object: - return {'additional_dependencies': additional_deps} + return {"additional_dependencies": additional_deps} def _read_state(venv: str) -> object | None: @@ -54,18 +53,15 @@ def _hook_installed(hook: Hook) -> bool: hook.language_version, ) return ( - ( - os.path.exists(_state_filename_v2(venv)) or - _read_state(venv) == _state(hook.additional_dependencies) - ) and - not lang.health_check(hook.prefix, hook.language_version) - ) + os.path.exists(_state_filename_v2(venv)) + or _read_state(venv) == _state(hook.additional_dependencies) + ) and not lang.health_check(hook.prefix, hook.language_version) def _hook_install(hook: Hook) -> None: - logger.info(f'Installing environment for {hook.src}.') - logger.info('Once installed this environment will be reused.') - logger.info('This may take a few minutes...') + logger.info(f"Installing environment for {hook.src}.") + logger.info("Once installed this environment will be reused.") + logger.info("This may take a few minutes...") lang = languages[hook.language] assert lang.ENVIRONMENT_DIR is not None @@ -83,61 +79,63 @@ def _hook_install(hook: Hook) -> None: with clean_path_on_failure(venv): lang.install_environment( - hook.prefix, hook.language_version, hook.additional_dependencies, + hook.prefix, + hook.language_version, + hook.additional_dependencies, ) health_error = lang.health_check(hook.prefix, hook.language_version) if health_error: raise AssertionError( - f'BUG: expected environment for {hook.language} to be healthy ' - f'immediately after install, please open an issue describing ' - f'your environment\n\n' - f'more info:\n\n{health_error}', + f"BUG: expected environment for {hook.language} to be healthy " + f"immediately after install, please open an issue describing " + f"your environment\n\n" + f"more info:\n\n{health_error}", ) # TODO: remove v1 state writing, no longer needed after pre-commit 3.0 # Write our state to indicate we're installed state_filename = _state_filename_v1(venv) - staging = f'{state_filename}staging' - with open(staging, 'w') as state_file: + staging = f"{state_filename}staging" + with open(staging, "w") as state_file: state_file.write(json.dumps(_state(hook.additional_dependencies))) # Move the file into place atomically to indicate we've installed os.replace(staging, state_filename) - open(_state_filename_v2(venv), 'a+').close() + open(_state_filename_v2(venv), "a+").close() def _hook( - *hook_dicts: dict[str, Any], - root_config: dict[str, Any], + *hook_dicts: dict[str, Any], + root_config: dict[str, Any], ) -> dict[str, Any]: ret, rest = dict(hook_dicts[0]), hook_dicts[1:] for dct in rest: ret.update(dct) - lang = ret['language'] - if ret['language_version'] == C.DEFAULT: - ret['language_version'] = root_config['default_language_version'][lang] - if ret['language_version'] == C.DEFAULT: - ret['language_version'] = languages[lang].get_default_version() + lang = ret["language"] + if ret["language_version"] == C.DEFAULT: + ret["language_version"] = root_config["default_language_version"][lang] + if ret["language_version"] == C.DEFAULT: + ret["language_version"] = languages[lang].get_default_version() - if not ret['stages']: - ret['stages'] = root_config['default_stages'] + if not ret["stages"]: + ret["stages"] = root_config["default_stages"] if languages[lang].ENVIRONMENT_DIR is None: - if ret['language_version'] != C.DEFAULT: + if ret["language_version"] != C.DEFAULT: logger.error( f'The hook `{ret["id"]}` specifies `language_version` but is ' - f'using language `{lang}` which does not install an ' - f'environment. ' - f'Perhaps you meant to use a specific language?', + f"using language `{lang}` which does not install an " + f"environment. " + f"Perhaps you meant to use a specific language?", ) exit(1) - if ret['additional_dependencies']: + if ret["additional_dependencies"]: logger.error( f'The hook `{ret["id"]}` specifies `additional_dependencies` ' - f'but is using language `{lang}` which does not install an ' - f'environment. ' - f'Perhaps you meant to use a specific language?', + f"but is using language `{lang}` which does not install an " + f"environment. " + f"Perhaps you meant to use a specific language?", ) exit(1) @@ -145,9 +143,9 @@ def _hook( def _non_cloned_repository_hooks( - repo_config: dict[str, Any], - store: Store, - root_config: dict[str, Any], + repo_config: dict[str, Any], + store: Store, + root_config: dict[str, Any], ) -> tuple[Hook, ...]: def _prefix(language_name: str, deps: Sequence[str]) -> Prefix: language = languages[language_name] @@ -160,40 +158,40 @@ def _non_cloned_repository_hooks( return tuple( Hook.create( - repo_config['repo'], - _prefix(hook['language'], hook['additional_dependencies']), + repo_config["repo"], + _prefix(hook["language"], hook["additional_dependencies"]), _hook(hook, root_config=root_config), ) - for hook in repo_config['hooks'] + for hook in repo_config["hooks"] ) def _cloned_repository_hooks( - repo_config: dict[str, Any], - store: Store, - root_config: dict[str, Any], + repo_config: dict[str, Any], + store: Store, + root_config: dict[str, Any], ) -> tuple[Hook, ...]: - repo, rev = repo_config['repo'], repo_config['rev'] + repo, rev = repo_config["repo"], repo_config["rev"] manifest_path = os.path.join(store.clone(repo, rev), C.MANIFEST_FILE) - by_id = {hook['id']: hook for hook in load_manifest(manifest_path)} + by_id = {hook["id"]: hook for hook in load_manifest(manifest_path)} - for hook in repo_config['hooks']: - if hook['id'] not in by_id: + for hook in repo_config["hooks"]: + if hook["id"] not in by_id: logger.error( f'`{hook["id"]}` is not present in repository {repo}. ' - f'Typo? Perhaps it is introduced in a newer version? ' - f'Often `pre-commit autoupdate` fixes this.', + f"Typo? Perhaps it is introduced in a newer version? " + f"Often `pre-commit autoupdate` fixes this.", ) exit(1) hook_dcts = [ - _hook(by_id[hook['id']], hook, root_config=root_config) - for hook in repo_config['hooks'] + _hook(by_id[hook["id"]], hook, root_config=root_config) + for hook in repo_config["hooks"] ] return tuple( Hook.create( - repo_config['repo'], - Prefix(store.clone(repo, rev, hook['additional_dependencies'])), + repo_config["repo"], + Prefix(store.clone(repo, rev, hook["additional_dependencies"])), hook, ) for hook in hook_dcts @@ -201,11 +199,11 @@ def _cloned_repository_hooks( def _repository_hooks( - repo_config: dict[str, Any], - store: Store, - root_config: dict[str, Any], + repo_config: dict[str, Any], + store: Store, + root_config: dict[str, Any], ) -> tuple[Hook, ...]: - if repo_config['repo'] in {LOCAL, META}: + if repo_config["repo"] in {LOCAL, META}: return _non_cloned_repository_hooks(repo_config, store, root_config) else: return _cloned_repository_hooks(repo_config, store, root_config) @@ -232,6 +230,6 @@ def install_hook_envs(hooks: Sequence[Hook], store: Store) -> None: def all_hooks(root_config: dict[str, Any], store: Store) -> tuple[Hook, ...]: return tuple( hook - for repo in root_config['repos'] + for repo in root_config["repos"] for hook in _repository_hooks(repo, store, root_config) ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/resources/empty_template_setup.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/resources/empty_template_setup.py index e8b1ff0..271efc6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/resources/empty_template_setup.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/resources/empty_template_setup.py @@ -1,4 +1,3 @@ from setuptools import setup - -setup(name='pre-commit-placeholder-package', version='0.0.0', py_modules=[]) +setup(name="pre-commit-placeholder-package", version="0.0.0", py_modules=[]) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/staged_files_only.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/staged_files_only.py index 99ea097..9688f05 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/staged_files_only.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/staged_files_only.py @@ -13,46 +13,52 @@ from pre_commit.util import cmd_output from pre_commit.util import cmd_output_b from pre_commit.xargs import xargs - -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") # without forcing submodule.recurse=0, changes in nested submodules will be # discarded if `submodule.recurse=1` is configured # we choose this instead of `--no-recurse-submodules` because it works on # versions of git before that option was added to `git checkout` -_CHECKOUT_CMD = ('git', '-c', 'submodule.recurse=0', 'checkout', '--', '.') +_CHECKOUT_CMD = ("git", "-c", "submodule.recurse=0", "checkout", "--", ".") def _git_apply(patch: str) -> None: - args = ('apply', '--whitespace=nowarn', patch) + args = ("apply", "--whitespace=nowarn", patch) try: - cmd_output_b('git', *args) + cmd_output_b("git", *args) except CalledProcessError: # Retry with autocrlf=false -- see #570 - cmd_output_b('git', '-c', 'core.autocrlf=false', *args) + cmd_output_b("git", "-c", "core.autocrlf=false", *args) @contextlib.contextmanager def _intent_to_add_cleared() -> Generator[None]: intent_to_add = git.intent_to_add_files() if intent_to_add: - logger.warning('Unstaged intent-to-add files detected.') + logger.warning("Unstaged intent-to-add files detected.") - xargs(('git', 'rm', '--cached', '--'), intent_to_add) + xargs(("git", "rm", "--cached", "--"), intent_to_add) try: yield finally: - xargs(('git', 'add', '--intent-to-add', '--'), intent_to_add) + xargs(("git", "add", "--intent-to-add", "--"), intent_to_add) else: yield @contextlib.contextmanager def _unstaged_changes_cleared(patch_dir: str) -> Generator[None]: - tree = cmd_output('git', 'write-tree')[1].strip() + tree = cmd_output("git", "write-tree")[1].strip() diff_cmd = ( - 'git', 'diff-index', '--ignore-submodules', '--binary', - '--exit-code', '--no-color', '--no-ext-diff', tree, '--', + "git", + "diff-index", + "--ignore-submodules", + "--binary", + "--exit-code", + "--no-color", + "--no-ext-diff", + tree, + "--", ) retcode, diff_stdout, diff_stderr = cmd_output_b(*diff_cmd, check=False) if retcode == 0: @@ -65,17 +71,17 @@ def _unstaged_changes_cleared(patch_dir: str) -> Generator[None]: # to show a crlf-only diff to us :( yield elif retcode == 1 and diff_stdout.strip(): - patch_filename = f'patch{int(time.time())}-{os.getpid()}' + patch_filename = f"patch{int(time.time())}-{os.getpid()}" patch_filename = os.path.join(patch_dir, patch_filename) - logger.warning('Unstaged files detected.') - logger.info(f'Stashing unstaged files to {patch_filename}.') + logger.warning("Unstaged files detected.") + logger.info(f"Stashing unstaged files to {patch_filename}.") # Save the current unstaged changes as a patch os.makedirs(patch_dir, exist_ok=True) - with open(patch_filename, 'wb') as patch_file: + with open(patch_filename, "wb") as patch_file: patch_file.write(diff_stdout) # prevent recursive post-checkout hooks (#1418) - no_checkout_env = dict(os.environ, _PRE_COMMIT_SKIP_POST_CHECKOUT='1') + no_checkout_env = dict(os.environ, _PRE_COMMIT_SKIP_POST_CHECKOUT="1") try: cmd_output_b(*_CHECKOUT_CMD, env=no_checkout_env) @@ -86,8 +92,8 @@ def _unstaged_changes_cleared(patch_dir: str) -> Generator[None]: _git_apply(patch_filename) except CalledProcessError: logger.warning( - 'Stashed changes conflicted with hook auto-fixes... ' - 'Rolling back fixes...', + "Stashed changes conflicted with hook auto-fixes... " + "Rolling back fixes...", ) # We failed to apply the patch, presumably due to fixes made # by hooks. @@ -95,12 +101,12 @@ def _unstaged_changes_cleared(patch_dir: str) -> Generator[None]: cmd_output_b(*_CHECKOUT_CMD, env=no_checkout_env) _git_apply(patch_filename) - logger.info(f'Restored changes from {patch_filename}.') + logger.info(f"Restored changes from {patch_filename}.") else: # pragma: win32 no cover # some error occurred while requesting the diff - e = CalledProcessError(retcode, diff_cmd, b'', diff_stderr) + e = CalledProcessError(retcode, diff_cmd, b"", diff_stderr) raise FatalError( - f'pre-commit failed to diff -- perhaps due to permissions?\n\n{e}', + f"pre-commit failed to diff -- perhaps due to permissions?\n\n{e}", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/store.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/store.py index dc90c05..3582c1d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/store.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/store.py @@ -18,8 +18,7 @@ from pre_commit.util import clean_path_on_failure from pre_commit.util import cmd_output_b from pre_commit.util import resource_text - -logger = logging.getLogger('pre_commit') +logger = logging.getLogger("pre_commit") def _get_default_directory() -> str: @@ -29,30 +28,40 @@ def _get_default_directory() -> str: `Store.get_default_directory` can be mocked in tests and `_get_default_directory` can be tested. """ - ret = os.environ.get('PRE_COMMIT_HOME') or os.path.join( - os.environ.get('XDG_CACHE_HOME') or os.path.expanduser('~/.cache'), - 'pre-commit', + ret = os.environ.get("PRE_COMMIT_HOME") or os.path.join( + os.environ.get("XDG_CACHE_HOME") or os.path.expanduser("~/.cache"), + "pre-commit", ) return os.path.realpath(ret) _LOCAL_RESOURCES = ( - 'Cargo.toml', 'main.go', 'go.mod', 'main.rs', '.npmignore', - 'package.json', 'pre-commit-package-dev-1.rockspec', - 'pre_commit_placeholder_package.gemspec', 'setup.py', - 'environment.yml', 'Makefile.PL', 'pubspec.yaml', - 'renv.lock', 'renv/activate.R', 'renv/LICENSE.renv', + "Cargo.toml", + "main.go", + "go.mod", + "main.rs", + ".npmignore", + "package.json", + "pre-commit-package-dev-1.rockspec", + "pre_commit_placeholder_package.gemspec", + "setup.py", + "environment.yml", + "Makefile.PL", + "pubspec.yaml", + "renv.lock", + "renv/activate.R", + "renv/LICENSE.renv", ) def _make_local_repo(directory: str) -> None: for resource in _LOCAL_RESOURCES: resource_dirname, resource_basename = os.path.split(resource) - contents = resource_text(f'empty_template_{resource_basename}') + contents = resource_text(f"empty_template_{resource_basename}") target_dir = os.path.join(directory, resource_dirname) target_file = os.path.join(target_dir, resource_basename) os.makedirs(target_dir, exist_ok=True) - with open(target_file, 'w') as f: + with open(target_file, "w") as f: f.write(contents) @@ -61,18 +70,17 @@ class Store: def __init__(self, directory: str | None = None) -> None: self.directory = directory or Store.get_default_directory() - self.db_path = os.path.join(self.directory, 'db.db') - self.readonly = ( - os.path.exists(self.directory) and - not os.access(self.directory, os.W_OK) + self.db_path = os.path.join(self.directory, "db.db") + self.readonly = os.path.exists(self.directory) and not os.access( + self.directory, os.W_OK ) if not os.path.exists(self.directory): os.makedirs(self.directory, exist_ok=True) - with open(os.path.join(self.directory, 'README'), 'w') as f: + with open(os.path.join(self.directory, "README"), "w") as f: f.write( - 'This directory is maintained by the pre-commit project.\n' - 'Learn more: https://github.com/pre-commit/pre-commit\n', + "This directory is maintained by the pre-commit project.\n" + "Learn more: https://github.com/pre-commit/pre-commit\n", ) if os.path.exists(self.db_path): @@ -88,12 +96,12 @@ class Store: os.close(fd) with self.connect(db_path=tmpfile) as db: db.executescript( - 'CREATE TABLE repos (' - ' repo TEXT NOT NULL,' - ' ref TEXT NOT NULL,' - ' path TEXT NOT NULL,' - ' PRIMARY KEY (repo, ref)' - ');', + "CREATE TABLE repos (" + " repo TEXT NOT NULL," + " ref TEXT NOT NULL," + " path TEXT NOT NULL," + " PRIMARY KEY (repo, ref)" + ");", ) self._create_configs_table(db) @@ -103,15 +111,15 @@ class Store: @contextlib.contextmanager def exclusive_lock(self) -> Generator[None]: def blocked_cb() -> None: # pragma: no cover (tests are in-process) - logger.info('Locking pre-commit directory') + logger.info("Locking pre-commit directory") - with file_lock.lock(os.path.join(self.directory, '.lock'), blocked_cb): + with file_lock.lock(os.path.join(self.directory, ".lock"), blocked_cb): yield @contextlib.contextmanager def connect( - self, - db_path: str | None = None, + self, + db_path: str | None = None, ) -> Generator[sqlite3.Connection]: db_path = db_path or self.db_path # sqlite doesn't close its fd with its contextmanager >.< @@ -130,11 +138,11 @@ class Store: return repo def _new_repo( - self, - repo: str, - ref: str, - deps: Sequence[str], - make_strategy: Callable[[str], None], + self, + repo: str, + ref: str, + deps: Sequence[str], + make_strategy: Callable[[str], None], ) -> str: original_repo = repo repo = self.db_repo_name(repo, deps) @@ -143,7 +151,7 @@ class Store: # Check if we already exist with self.connect() as db: result = db.execute( - 'SELECT path FROM repos WHERE repo = ? AND ref = ?', + "SELECT path FROM repos WHERE repo = ? AND ref = ?", (repo, ref), ).fetchone() return result[0] if result else None @@ -157,16 +165,16 @@ class Store: if result: # pragma: no cover (race) return result - logger.info(f'Initializing environment for {repo}.') + logger.info(f"Initializing environment for {repo}.") - directory = tempfile.mkdtemp(prefix='repo', dir=self.directory) + directory = tempfile.mkdtemp(prefix="repo", dir=self.directory) with clean_path_on_failure(directory): make_strategy(directory) # Update our db with the created repo with self.connect() as db: db.execute( - 'INSERT INTO repos (repo, ref, path) VALUES (?, ?, ?)', + "INSERT INTO repos (repo, ref, path) VALUES (?, ?, ?)", [repo, ref, directory], ) @@ -175,21 +183,26 @@ class Store: return directory def _complete_clone(self, ref: str, git_cmd: Callable[..., None]) -> None: - """Perform a complete clone of a repository and its submodules """ + """Perform a complete clone of a repository and its submodules""" - git_cmd('fetch', 'origin', '--tags') - git_cmd('checkout', ref) - git_cmd('submodule', 'update', '--init', '--recursive') + git_cmd("fetch", "origin", "--tags") + git_cmd("checkout", ref) + git_cmd("submodule", "update", "--init", "--recursive") def _shallow_clone(self, ref: str, git_cmd: Callable[..., None]) -> None: - """Perform a shallow clone of a repository and its submodules """ + """Perform a shallow clone of a repository and its submodules""" - git_config = 'protocol.version=2' - git_cmd('-c', git_config, 'fetch', 'origin', ref, '--depth=1') - git_cmd('checkout', 'FETCH_HEAD') + git_config = "protocol.version=2" + git_cmd("-c", git_config, "fetch", "origin", ref, "--depth=1") + git_cmd("checkout", "FETCH_HEAD") git_cmd( - '-c', git_config, 'submodule', 'update', '--init', '--recursive', - '--depth=1', + "-c", + git_config, + "submodule", + "update", + "--init", + "--recursive", + "--depth=1", ) def clone(self, repo: str, ref: str, deps: Sequence[str] = ()) -> str: @@ -200,7 +213,7 @@ class Store: env = git.no_git_env() def _git_cmd(*args: str) -> None: - cmd_output_b('git', *args, cwd=directory, env=env) + cmd_output_b("git", *args, cwd=directory, env=env) try: self._shallow_clone(ref, _git_cmd) @@ -211,15 +224,18 @@ class Store: def make_local(self, deps: Sequence[str]) -> str: return self._new_repo( - 'local', C.LOCAL_REPO_VERSION, deps, _make_local_repo, + "local", + C.LOCAL_REPO_VERSION, + deps, + _make_local_repo, ) def _create_configs_table(self, db: sqlite3.Connection) -> None: db.executescript( - 'CREATE TABLE IF NOT EXISTS configs (' - ' path TEXT NOT NULL,' - ' PRIMARY KEY (path)' - ');', + "CREATE TABLE IF NOT EXISTS configs (" + " path TEXT NOT NULL," + " PRIMARY KEY (path)" + ");", ) def mark_config_used(self, path: str) -> None: @@ -232,4 +248,4 @@ class Store: with self.connect() as db: # TODO: eventually remove this and only create in _create self._create_configs_table(db) - db.execute('INSERT OR IGNORE INTO configs VALUES (?)', (path,)) + db.execute("INSERT OR IGNORE INTO configs VALUES (?)", (path,)) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/util.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/util.py index 19b1880..e76c176 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/util.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/util.py @@ -21,7 +21,7 @@ def force_bytes(exc: Any) -> bytes: return bytes(exc) with contextlib.suppress(Exception): return str(exc).encode() - return f''.encode() + return f"".encode() @contextlib.contextmanager @@ -36,7 +36,7 @@ def clean_path_on_failure(path: str) -> Generator[None]: def resource_text(filename: str) -> str: - files = importlib.resources.files('pre_commit.resources') + files = importlib.resources.files("pre_commit.resources") return files.joinpath(filename).read_text() @@ -48,11 +48,11 @@ def make_executable(filename: str) -> None: class CalledProcessError(RuntimeError): def __init__( - self, - returncode: int, - cmd: tuple[str, ...], - stdout: bytes, - stderr: bytes | None, + self, + returncode: int, + cmd: tuple[str, ...], + stdout: bytes, + stderr: bytes | None, ) -> None: super().__init__(returncode, cmd, stdout, stderr) self.returncode = returncode @@ -63,39 +63,44 @@ class CalledProcessError(RuntimeError): def __bytes__(self) -> bytes: def _indent_or_none(part: bytes | None) -> bytes: if part: - return b'\n ' + part.replace(b'\n', b'\n ').rstrip() + return b"\n " + part.replace(b"\n", b"\n ").rstrip() else: - return b' (none)' + return b" (none)" - return b''.join(( - f'command: {self.cmd!r}\n'.encode(), - f'return code: {self.returncode}\n'.encode(), - b'stdout:', _indent_or_none(self.stdout), b'\n', - b'stderr:', _indent_or_none(self.stderr), - )) + return b"".join( + ( + f"command: {self.cmd!r}\n".encode(), + f"return code: {self.returncode}\n".encode(), + b"stdout:", + _indent_or_none(self.stdout), + b"\n", + b"stderr:", + _indent_or_none(self.stderr), + ) + ) def __str__(self) -> str: return self.__bytes__().decode() def _setdefault_kwargs(kwargs: dict[str, Any]) -> None: - for arg in ('stdin', 'stdout', 'stderr'): + for arg in ("stdin", "stdout", "stderr"): kwargs.setdefault(arg, subprocess.PIPE) def _oserror_to_output(e: OSError) -> tuple[int, bytes, None]: - return 1, force_bytes(e).rstrip(b'\n') + b'\n', None + return 1, force_bytes(e).rstrip(b"\n") + b"\n", None def cmd_output_b( - *cmd: str, - check: bool = True, - **kwargs: Any, + *cmd: str, + check: bool = True, + **kwargs: Any, ) -> tuple[int, bytes, bytes | None]: _setdefault_kwargs(kwargs) try: - cmd = parse_shebang.normalize_cmd(cmd, env=kwargs.get('env')) + cmd = parse_shebang.normalize_cmd(cmd, env=kwargs.get("env")) except parse_shebang.ExecutableNotFoundError as e: returncode, stdout_b, stderr_b = e.to_output() else: @@ -120,7 +125,7 @@ def cmd_output(*cmd: str, **kwargs: Any) -> tuple[int, str, str | None]: return returncode, stdout, stderr -if sys.platform != 'win32': # pragma: win32 no cover +if sys.platform != "win32": # pragma: win32 no cover from os import openpty import termios @@ -151,21 +156,21 @@ if sys.platform != 'win32': # pragma: win32 no cover self.r = None def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + traceback: TracebackType | None, ) -> None: self.close_w() self.close_r() def cmd_output_p( - *cmd: str, - check: bool = True, - **kwargs: Any, + *cmd: str, + check: bool = True, + **kwargs: Any, ) -> tuple[int, bytes, bytes | None]: assert check is False - assert kwargs['stderr'] == subprocess.STDOUT, kwargs['stderr'] + assert kwargs["stderr"] == subprocess.STDOUT, kwargs["stderr"] _setdefault_kwargs(kwargs) try: @@ -175,7 +180,7 @@ if sys.platform != 'win32': # pragma: win32 no cover with open(os.devnull) as devnull, Pty() as pty: assert pty.r is not None - kwargs.update({'stdin': devnull, 'stdout': pty.w, 'stderr': pty.w}) + kwargs.update({"stdin": devnull, "stdout": pty.w, "stderr": pty.w}) try: proc = subprocess.Popen(cmd, **kwargs) except OSError as e: @@ -183,13 +188,13 @@ if sys.platform != 'win32': # pragma: win32 no cover pty.close_w() - buf = b'' + buf = b"" while True: try: bts = os.read(pty.r, 4096) except OSError as e: if e.errno == errno.EIO: - bts = b'' + bts = b"" else: raise else: @@ -198,19 +203,20 @@ if sys.platform != 'win32': # pragma: win32 no cover break return proc.wait(), buf, None + else: # pragma: no cover cmd_output_p = cmd_output_b def _handle_readonly( - func: Callable[[str], object], - path: str, - exc: BaseException, + func: Callable[[str], object], + path: str, + exc: BaseException, ) -> None: if ( - func in (os.rmdir, os.remove, os.unlink) and - isinstance(exc, OSError) and - exc.errno in {errno.EACCES, errno.EPERM} + func in (os.rmdir, os.remove, os.unlink) + and isinstance(exc, OSError) + and exc.errno in {errno.EACCES, errno.EPERM} ): for p in (path, os.path.dirname(path)): os.chmod(p, os.stat(p).st_mode | stat.S_IWUSR) @@ -220,6 +226,7 @@ def _handle_readonly( if sys.version_info < (3, 12): # pragma: <3.12 cover + def _handle_readonly_old( func: Callable[[str], object], path: str, @@ -229,11 +236,13 @@ if sys.version_info < (3, 12): # pragma: <3.12 cover def rmtree(path: str) -> None: shutil.rmtree(path, ignore_errors=False, onerror=_handle_readonly_old) + else: # pragma: >=3.12 cover + def rmtree(path: str) -> None: """On windows, rmtree fails for readonly dirs.""" shutil.rmtree(path, ignore_errors=False, onexc=_handle_readonly) def win_exe(s: str) -> str: - return s if sys.platform != 'win32' else f'{s}.exe' + return s if sys.platform != "win32" else f"{s}.exe" diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/xargs.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/xargs.py index 7c98d16..9671239 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/xargs.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/xargs.py @@ -19,8 +19,8 @@ from pre_commit import parse_shebang from pre_commit.util import cmd_output_b from pre_commit.util import cmd_output_p -TArg = TypeVar('TArg') -TRet = TypeVar('TRet') +TArg = TypeVar("TArg") +TRet = TypeVar("TRet") def cpu_count() -> int: @@ -39,7 +39,7 @@ def cpu_count() -> int: def _environ_size(_env: MutableMapping[str, str] | None = None) -> int: - environ = _env if _env is not None else getattr(os, 'environb', os.environ) + environ = _env if _env is not None else getattr(os, "environb", os.environ) size = 8 * len(environ) # number of pointers in `envp` for k, v in environ.items(): size += len(k) + len(v) + 2 # c strings in `envp` @@ -47,24 +47,24 @@ def _environ_size(_env: MutableMapping[str, str] | None = None) -> int: def _get_platform_max_length() -> int: # pragma: no cover (platform specific) - if os.name == 'posix': - maximum = os.sysconf('SC_ARG_MAX') - 2048 - _environ_size() - maximum = max(min(maximum, 2 ** 17), 2 ** 12) + if os.name == "posix": + maximum = os.sysconf("SC_ARG_MAX") - 2048 - _environ_size() + maximum = max(min(maximum, 2**17), 2**12) return maximum - elif os.name == 'nt': - return 2 ** 15 - 2048 # UNICODE_STRING max - headroom + elif os.name == "nt": + return 2**15 - 2048 # UNICODE_STRING max - headroom else: # posix minimum - return 2 ** 12 + return 2**12 def _command_length(*cmd: str) -> int: - full_cmd = ' '.join(cmd) + full_cmd = " ".join(cmd) # win32 uses the amount of characters, more details at: # https://github.com/pre-commit/pre-commit/pull/839 - if sys.platform == 'win32': - return len(full_cmd.encode('utf-16le')) // 2 + if sys.platform == "win32": + return len(full_cmd.encode("utf-16le")) // 2 else: return len(full_cmd.encode(sys.getfilesystemencoding())) @@ -74,10 +74,10 @@ class ArgumentTooLongError(RuntimeError): def partition( - cmd: Sequence[str], - varargs: Sequence[str], - target_concurrency: int, - _max_length: int | None = None, + cmd: Sequence[str], + varargs: Sequence[str], + target_concurrency: int, + _max_length: int | None = None, ) -> tuple[tuple[str, ...], ...]: _max_length = _max_length or _get_platform_max_length() @@ -97,10 +97,7 @@ def partition( arg = varargs.pop() arg_length = _command_length(arg) + 1 - if ( - total_length + arg_length <= _max_length and - len(ret_cmd) < max_args - ): + if total_length + arg_length <= _max_length and len(ret_cmd) < max_args: ret_cmd.append(arg) total_length += arg_length elif not ret_cmd: @@ -118,9 +115,9 @@ def partition( @contextlib.contextmanager -def _thread_mapper(maxsize: int) -> Generator[ - Callable[[Callable[[TArg], TRet], Iterable[TArg]], Iterable[TRet]], -]: +def _thread_mapper( + maxsize: int, +) -> Generator[Callable[[Callable[[TArg], TRet], Iterable[TArg]], Iterable[TRet]],]: if maxsize == 1: yield map else: @@ -129,13 +126,13 @@ def _thread_mapper(maxsize: int) -> Generator[ def xargs( - cmd: tuple[str, ...], - varargs: Sequence[str], - *, - color: bool = False, - target_concurrency: int = 1, - _max_length: int = _get_platform_max_length(), - **kwargs: Any, + cmd: tuple[str, ...], + varargs: Sequence[str], + *, + color: bool = False, + target_concurrency: int = 1, + _max_length: int = _get_platform_max_length(), + **kwargs: Any, ) -> tuple[int, bytes]: """A simplified implementation of xargs. @@ -144,7 +141,7 @@ def xargs( """ cmd_fn = cmd_output_p if color else cmd_output_b retcode = 0 - stdout = b'' + stdout = b"" try: cmd = parse_shebang.normalize_cmd(cmd) @@ -152,24 +149,26 @@ def xargs( return e.to_output()[:2] # on windows, batch files have a separate length limit than windows itself - if ( - sys.platform == 'win32' and - cmd[0].lower().endswith(('.bat', '.cmd')) + if sys.platform == "win32" and cmd[0].lower().endswith( + (".bat", ".cmd") ): # pragma: win32 cover # this is implementation details but the command gets translated into # full/path/to/cmd.exe /c *cmd - cmd_exe = parse_shebang.find_executable('cmd.exe') + cmd_exe = parse_shebang.find_executable("cmd.exe") # 1024 is additionally subtracted to give headroom for further # expansion inside the batch file - _max_length = 8192 - len(cmd_exe) - len(' /c ') - 1024 + _max_length = 8192 - len(cmd_exe) - len(" /c ") - 1024 partitions = partition(cmd, varargs, target_concurrency, _max_length) def run_cmd_partition( - run_cmd: tuple[str, ...], + run_cmd: tuple[str, ...], ) -> tuple[int, bytes, bytes | None]: return cmd_fn( - *run_cmd, check=False, stderr=subprocess.STDOUT, **kwargs, + *run_cmd, + check=False, + stderr=subprocess.STDOUT, + **kwargs, ) threads = min(len(partitions), target_concurrency) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/yaml.py b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/yaml.py index a5bbbc9..e9188ae 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pre_commit/yaml.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pre_commit/yaml.py @@ -5,15 +5,19 @@ from typing import Any import yaml -Loader = getattr(yaml, 'CSafeLoader', yaml.SafeLoader) +Loader = getattr(yaml, "CSafeLoader", yaml.SafeLoader) yaml_compose = functools.partial(yaml.compose, Loader=Loader) yaml_load = functools.partial(yaml.load, Loader=Loader) -Dumper = getattr(yaml, 'CSafeDumper', yaml.SafeDumper) +Dumper = getattr(yaml, "CSafeDumper", yaml.SafeDumper) def yaml_dump(o: Any, **kwargs: Any) -> str: # when python/mypy#1484 is solved, this can be `functools.partial` return yaml.dump( - o, Dumper=Dumper, default_flow_style=False, indent=4, sort_keys=False, + o, + Dumper=Dumper, + default_flow_style=False, + indent=4, + sort_keys=False, **kwargs, ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/py.py b/PPE2/.venv/lib/python3.12/site-packages/py.py index 5c661e6..09be63b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/py.py +++ b/PPE2/.venv/lib/python3.12/site-packages/py.py @@ -8,7 +8,6 @@ import sys import _pytest._py.error as error import _pytest._py.path as path - sys.modules["py.error"] = error sys.modules["py.path"] = path diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS b/PPE2/.venv/lib/python3.12/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS index 811c66a..f8a07ca 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments-2.19.2.dist-info/licenses/AUTHORS @@ -120,7 +120,7 @@ Other contributors, listed alphabetically, are: MSDOS session, BC, WDiff * Brian R. Jackson -- Tea lexer * Christian Jann -- ShellSession lexer -* Jonas Camillus Jeppesen -- Line numbers and line highlighting for +* Jonas Camillus Jeppesen -- Line numbers and line highlighting for RTF-formatter * Dennis Kaarsemaker -- sources.list lexer * Dmitri Kabak -- Inferno Limbo lexer diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/__init__.py index 2a391c3..29bf8b9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/__init__.py @@ -1,35 +1,36 @@ """ - Pygments - ~~~~~~~~ +Pygments +~~~~~~~~ - Pygments is a syntax highlighting package written in Python. +Pygments is a syntax highlighting package written in Python. - It is a generic syntax highlighter for general use in all kinds of software - such as forum systems, wikis or other applications that need to prettify - source code. Highlights are: +It is a generic syntax highlighter for general use in all kinds of software +such as forum systems, wikis or other applications that need to prettify +source code. Highlights are: - * a wide range of common languages and markup formats is supported - * special attention is paid to details, increasing quality by a fair amount - * support for new languages and formats are added easily - * a number of output formats, presently HTML, LaTeX, RTF, SVG, all image - formats that PIL supports, and ANSI sequences - * it is usable as a command-line tool and as a library - * ... and it highlights even Brainfuck! +* a wide range of common languages and markup formats is supported +* special attention is paid to details, increasing quality by a fair amount +* support for new languages and formats are added easily +* a number of output formats, presently HTML, LaTeX, RTF, SVG, all image + formats that PIL supports, and ANSI sequences +* it is usable as a command-line tool and as a library +* ... and it highlights even Brainfuck! - The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``. +The `Pygments master branch`_ is installable with ``easy_install Pygments==dev``. - .. _Pygments master branch: - https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev +.. _Pygments master branch: + https://github.com/pygments/pygments/archive/master.zip#egg=Pygments-dev - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ + from io import StringIO, BytesIO -__version__ = '2.19.2' -__docformat__ = 'restructuredtext' +__version__ = "2.19.2" +__docformat__ = "restructuredtext" -__all__ = ['lex', 'format', 'highlight'] +__all__ = ["lex", "format", "highlight"] def lex(code, lexer): @@ -43,9 +44,9 @@ def lex(code, lexer): except TypeError: # Heuristic to catch a common mistake. from pygments.lexer import RegexLexer + if isinstance(lexer, type) and issubclass(lexer, RegexLexer): - raise TypeError('lex() argument must be a lexer instance, ' - 'not a class') + raise TypeError("lex() argument must be a lexer instance, " "not a class") raise @@ -60,7 +61,9 @@ def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builti """ try: if not outfile: - realoutfile = getattr(formatter, 'encoding', None) and BytesIO() or StringIO() + realoutfile = ( + getattr(formatter, "encoding", None) and BytesIO() or StringIO() + ) formatter.format(tokens, realoutfile) return realoutfile.getvalue() else: @@ -68,9 +71,11 @@ def format(tokens, formatter, outfile=None): # pylint: disable=redefined-builti except TypeError: # Heuristic to catch a common mistake. from pygments.formatter import Formatter + if isinstance(formatter, type) and issubclass(formatter, Formatter): - raise TypeError('format() argument must be a formatter instance, ' - 'not a class') + raise TypeError( + "format() argument must be a formatter instance, " "not a class" + ) raise diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/__main__.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/__main__.py index 4890a6c..752546c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/__main__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/__main__.py @@ -1,11 +1,11 @@ """ - pygments.__main__ - ~~~~~~~~~~~~~~~~~ +pygments.__main__ +~~~~~~~~~~~~~~~~~ - Main entry point for ``python -m pygments``. +Main entry point for ``python -m pygments``. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import sys diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/cmdline.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/cmdline.py index 2878fd5..a19ebc1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/cmdline.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/cmdline.py @@ -1,11 +1,11 @@ """ - pygments.cmdline - ~~~~~~~~~~~~~~~~ +pygments.cmdline +~~~~~~~~~~~~~~~~ - Command line interface. +Command line interface. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import os @@ -15,17 +15,37 @@ import argparse from textwrap import dedent from pygments import __version__, highlight -from pygments.util import ClassNotFound, OptionError, docstring_headline, \ - guess_decode, guess_decode_from_terminal, terminal_encoding, \ - UnclosingTextIOWrapper -from pygments.lexers import get_all_lexers, get_lexer_by_name, guess_lexer, \ - load_lexer_from_file, get_lexer_for_filename, find_lexer_class_for_filename +from pygments.util import ( + ClassNotFound, + OptionError, + docstring_headline, + guess_decode, + guess_decode_from_terminal, + terminal_encoding, + UnclosingTextIOWrapper, +) +from pygments.lexers import ( + get_all_lexers, + get_lexer_by_name, + guess_lexer, + load_lexer_from_file, + get_lexer_for_filename, + find_lexer_class_for_filename, +) from pygments.lexers.special import TextLexer from pygments.formatters.latex import LatexEmbeddedLexer, LatexFormatter -from pygments.formatters import get_all_formatters, get_formatter_by_name, \ - load_formatter_from_file, get_formatter_for_filename, find_formatter_class +from pygments.formatters import ( + get_all_formatters, + get_formatter_by_name, + load_formatter_from_file, + get_formatter_for_filename, + find_formatter_class, +) from pygments.formatters.terminal import TerminalFormatter -from pygments.formatters.terminal256 import Terminal256Formatter, TerminalTrueColorFormatter +from pygments.formatters.terminal256 import ( + Terminal256Formatter, + TerminalTrueColorFormatter, +) from pygments.filters import get_all_filters, find_filter_class from pygments.styles import get_all_styles, get_style_by_name @@ -37,11 +57,11 @@ def _parse_options(o_strs): for o_str in o_strs: if not o_str.strip(): continue - o_args = o_str.split(',') + o_args = o_str.split(",") for o_arg in o_args: o_arg = o_arg.strip() try: - o_key, o_val = o_arg.split('=', 1) + o_key, o_val = o_arg.split("=", 1) o_key = o_key.strip() o_val = o_val.strip() except ValueError: @@ -56,8 +76,8 @@ def _parse_filters(f_strs): if not f_strs: return filters for f_str in f_strs: - if ':' in f_str: - fname, fopts = f_str.split(':', 1) + if ":" in f_str: + fname, fopts = f_str.split(":", 1) filters.append((fname, _parse_options([fopts]))) else: filters.append((f_str, {})) @@ -66,15 +86,15 @@ def _parse_filters(f_strs): def _print_help(what, name): try: - if what == 'lexer': + if what == "lexer": cls = get_lexer_by_name(name) print(f"Help on the {cls.name} lexer:") print(dedent(cls.__doc__)) - elif what == 'formatter': + elif what == "formatter": cls = find_formatter_class(name) print(f"Help on the {cls.name} formatter:") print(dedent(cls.__doc__)) - elif what == 'filter': + elif what == "filter": cls = find_filter_class(name) print(f"Help on the {name} filter:") print(dedent(cls.__doc__)) @@ -85,21 +105,24 @@ def _print_help(what, name): def _print_list(what): - if what == 'lexer': + if what == "lexer": print() print("Lexers:") print("~~~~~~~") info = [] for fullname, names, exts, _ in get_all_lexers(): - tup = (', '.join(names)+':', fullname, - exts and '(filenames ' + ', '.join(exts) + ')' or '') + tup = ( + ", ".join(names) + ":", + fullname, + exts and "(filenames " + ", ".join(exts) + ")" or "", + ) info.append(tup) info.sort() for i in info: - print(('* {}\n {} {}').format(*i)) + print(("* {}\n {} {}").format(*i)) - elif what == 'formatter': + elif what == "formatter": print() print("Formatters:") print("~~~~~~~~~~~") @@ -107,86 +130,89 @@ def _print_list(what): info = [] for cls in get_all_formatters(): doc = docstring_headline(cls) - tup = (', '.join(cls.aliases) + ':', doc, cls.filenames and - '(filenames ' + ', '.join(cls.filenames) + ')' or '') + tup = ( + ", ".join(cls.aliases) + ":", + doc, + cls.filenames and "(filenames " + ", ".join(cls.filenames) + ")" or "", + ) info.append(tup) info.sort() for i in info: - print(('* {}\n {} {}').format(*i)) + print(("* {}\n {} {}").format(*i)) - elif what == 'filter': + elif what == "filter": print() print("Filters:") print("~~~~~~~~") for name in get_all_filters(): cls = find_filter_class(name) - print("* " + name + ':') + print("* " + name + ":") print(f" {docstring_headline(cls)}") - elif what == 'style': + elif what == "style": print() print("Styles:") print("~~~~~~~") for name in get_all_styles(): cls = get_style_by_name(name) - print("* " + name + ':') + print("* " + name + ":") print(f" {docstring_headline(cls)}") def _print_list_as_json(requested_items): import json + result = {} - if 'lexer' in requested_items: + if "lexer" in requested_items: info = {} for fullname, names, filenames, mimetypes in get_all_lexers(): info[fullname] = { - 'aliases': names, - 'filenames': filenames, - 'mimetypes': mimetypes + "aliases": names, + "filenames": filenames, + "mimetypes": mimetypes, } - result['lexers'] = info + result["lexers"] = info - if 'formatter' in requested_items: + if "formatter" in requested_items: info = {} for cls in get_all_formatters(): doc = docstring_headline(cls) info[cls.name] = { - 'aliases': cls.aliases, - 'filenames': cls.filenames, - 'doc': doc + "aliases": cls.aliases, + "filenames": cls.filenames, + "doc": doc, } - result['formatters'] = info + result["formatters"] = info - if 'filter' in requested_items: + if "filter" in requested_items: info = {} for name in get_all_filters(): cls = find_filter_class(name) - info[name] = { - 'doc': docstring_headline(cls) - } - result['filters'] = info + info[name] = {"doc": docstring_headline(cls)} + result["filters"] = info - if 'style' in requested_items: + if "style" in requested_items: info = {} for name in get_all_styles(): cls = get_style_by_name(name) - info[name] = { - 'doc': docstring_headline(cls) - } - result['styles'] = info + info[name] = {"doc": docstring_headline(cls)} + result["styles"] = info json.dump(result, sys.stdout) + def main_inner(parser, argns): if argns.help: parser.print_help() return 0 if argns.V: - print(f'Pygments version {__version__}, (c) 2006-2024 by Georg Brandl, Matthäus ' - 'Chajdas and contributors.') + print( + f"Pygments version {__version__}, (c) 2006-2024 by Georg Brandl, Matthäus " + "Chajdas and contributors." + ) return 0 def is_only_option(opt): @@ -199,8 +225,8 @@ def main_inner(parser, argns): if v: arg_set.add(k) - arg_set.discard('L') - arg_set.discard('json') + arg_set.discard("L") + arg_set.discard("json") if arg_set: parser.print_help(sys.stderr) @@ -208,9 +234,9 @@ def main_inner(parser, argns): # print version if not argns.json: - main(['', '-V']) - allowed_types = {'lexer', 'formatter', 'filter', 'style'} - largs = [arg.rstrip('s') for arg in argns.L] + main(["", "-V"]) + allowed_types = {"lexer", "formatter", "filter", "style"} + largs = [arg.rstrip("s") for arg in argns.L] if any(arg not in allowed_types for arg in largs): parser.print_help(sys.stderr) return 0 @@ -225,11 +251,11 @@ def main_inner(parser, argns): # handle ``pygmentize -H`` if argns.H: - if not is_only_option('H'): + if not is_only_option("H"): parser.print_help(sys.stderr) return 2 what, name = argns.H - if what not in ('lexer', 'formatter', 'filter'): + if what not in ("lexer", "formatter", "filter"): parser.print_help(sys.stderr) return 2 return _print_help(what, name) @@ -240,15 +266,15 @@ def main_inner(parser, argns): # parse -P options for p_opt in argns.P or []: try: - name, value = p_opt.split('=', 1) + name, value = p_opt.split("=", 1) except ValueError: parsed_opts[p_opt] = True else: parsed_opts[name] = value # encodings - inencoding = parsed_opts.get('inencoding', parsed_opts.get('encoding')) - outencoding = parsed_opts.get('outencoding', parsed_opts.get('encoding')) + inencoding = parsed_opts.get("inencoding", parsed_opts.get("encoding")) + outencoding = parsed_opts.get("outencoding", parsed_opts.get("encoding")) # handle ``pygmentize -N`` if argns.N: @@ -283,13 +309,13 @@ def main_inner(parser, argns): return 2 try: - parsed_opts['style'] = S_opt + parsed_opts["style"] = S_opt fmter = get_formatter_by_name(f_opt, **parsed_opts) except ClassNotFound as err: print(err, file=sys.stderr) return 1 - print(fmter.get_style_defs(a_opt or '')) + print(fmter.get_style_defs(a_opt or "")) return 0 # if no -S is given, -a is not allowed @@ -310,31 +336,30 @@ def main_inner(parser, argns): lexername = argns.l if lexername: # custom lexer, located relative to user's cwd - if allow_custom_lexer_formatter and '.py' in lexername: + if allow_custom_lexer_formatter and ".py" in lexername: try: filename = None name = None - if ':' in lexername: - filename, name = lexername.rsplit(':', 1) + if ":" in lexername: + filename, name = lexername.rsplit(":", 1) - if '.py' in name: + if ".py" in name: # This can happen on Windows: If the lexername is # C:\lexer.py -- return to normal load path in that case name = None if filename and name: - lexer = load_lexer_from_file(filename, name, - **parsed_opts) + lexer = load_lexer_from_file(filename, name, **parsed_opts) else: lexer = load_lexer_from_file(lexername, **parsed_opts) except ClassNotFound as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 else: try: lexer = get_lexer_by_name(lexername, **parsed_opts) except (OptionError, ClassNotFound) as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 # read input code @@ -342,16 +367,17 @@ def main_inner(parser, argns): if argns.INPUTFILE: if argns.s: - print('Error: -s option not usable when input file specified', - file=sys.stderr) + print( + "Error: -s option not usable when input file specified", file=sys.stderr + ) return 2 infn = argns.INPUTFILE try: - with open(infn, 'rb') as infp: + with open(infn, "rb") as infp: code = infp.read() except Exception as err: - print('Error: cannot read infile:', err, file=sys.stderr) + print("Error: cannot read infile:", err, file=sys.stderr) return 1 if not inencoding: code, inencoding = guess_decode(code) @@ -367,10 +393,10 @@ def main_inner(parser, argns): except ClassNotFound: lexer = TextLexer(**parsed_opts) else: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 except OptionError as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 elif not argns.s: # treat stdin as full file (-s support is later) @@ -388,8 +414,10 @@ def main_inner(parser, argns): else: # -s option needs a lexer with -l if not lexer: - print('Error: when using -s a lexer has to be selected with -l', - file=sys.stderr) + print( + "Error: when using -s a lexer has to be selected with -l", + file=sys.stderr, + ) return 2 # process filters @@ -397,7 +425,7 @@ def main_inner(parser, argns): try: lexer.add_filter(fname, **fopts) except ClassNotFound as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 # select formatter @@ -405,30 +433,29 @@ def main_inner(parser, argns): fmter = argns.f if fmter: # custom formatter, located relative to user's cwd - if allow_custom_lexer_formatter and '.py' in fmter: + if allow_custom_lexer_formatter and ".py" in fmter: try: filename = None name = None - if ':' in fmter: + if ":" in fmter: # Same logic as above for custom lexer - filename, name = fmter.rsplit(':', 1) + filename, name = fmter.rsplit(":", 1) - if '.py' in name: + if ".py" in name: name = None if filename and name: - fmter = load_formatter_from_file(filename, name, - **parsed_opts) + fmter = load_formatter_from_file(filename, name, **parsed_opts) else: fmter = load_formatter_from_file(fmter, **parsed_opts) except ClassNotFound as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 else: try: fmter = get_formatter_by_name(fmter, **parsed_opts) except (OptionError, ClassNotFound) as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 if outfn: @@ -436,18 +463,18 @@ def main_inner(parser, argns): try: fmter = get_formatter_for_filename(outfn, **parsed_opts) except (OptionError, ClassNotFound) as err: - print('Error:', err, file=sys.stderr) + print("Error:", err, file=sys.stderr) return 1 try: - outfile = open(outfn, 'wb') + outfile = open(outfn, "wb") except Exception as err: - print('Error: cannot open outfile:', err, file=sys.stderr) + print("Error: cannot open outfile:", err, file=sys.stderr) return 1 else: if not fmter: - if os.environ.get('COLORTERM','') in ('truecolor', '24bit'): + if os.environ.get("COLORTERM", "") in ("truecolor", "24bit"): fmter = TerminalTrueColorFormatter(**parsed_opts) - elif '256' in os.environ.get('TERM', ''): + elif "256" in os.environ.get("TERM", ""): fmter = Terminal256Formatter(**parsed_opts) else: fmter = TerminalFormatter(**parsed_opts) @@ -463,8 +490,11 @@ def main_inner(parser, argns): fmter.encoding = terminal_encoding(sys.stdout) # provide coloring under Windows, if possible - if not outfn and sys.platform in ('win32', 'cygwin') and \ - fmter.name in ('Terminal', 'Terminal256'): # pragma: no cover + if ( + not outfn + and sys.platform in ("win32", "cygwin") + and fmter.name in ("Terminal", "Terminal256") + ): # pragma: no cover # unfortunately colorama doesn't support binary streams on Py3 outfile = UnclosingTextIOWrapper(outfile, encoding=fmter.encoding) fmter.encoding = None @@ -474,12 +504,13 @@ def main_inner(parser, argns): pass else: outfile = colorama.initialise.wrap_stream( - outfile, convert=None, strip=None, autoreset=False, wrap=True) + outfile, convert=None, strip=None, autoreset=False, wrap=True + ) # When using the LaTeX formatter and the option `escapeinside` is # specified, we need a special lexer which collects escaped text # before running the chosen language lexer. - escapeinside = parsed_opts.get('escapeinside', '') + escapeinside = parsed_opts.get("escapeinside", "") if len(escapeinside) == 2 and isinstance(fmter, LatexFormatter): left = escapeinside[0] right = escapeinside[1] @@ -504,7 +535,7 @@ def main_inner(parser, argns): if not inencoding: line = guess_decode_from_terminal(line, sys.stdin)[0] highlight(line, lexer, fmter, outfile) - if hasattr(outfile, 'flush'): + if hasattr(outfile, "flush"): outfile.flush() return 0 except KeyboardInterrupt: # pragma: no cover @@ -521,8 +552,9 @@ class HelpFormatter(argparse.HelpFormatter): width = shutil.get_terminal_size().columns - 2 except Exception: pass - argparse.HelpFormatter.__init__(self, prog, indent_increment, - max_help_position, width) + argparse.HelpFormatter.__init__( + self, prog, indent_increment, max_help_position, width + ) def main(args=sys.argv): @@ -530,109 +562,153 @@ def main(args=sys.argv): Main command line entry point. """ desc = "Highlight an input file and write the result to an output file." - parser = argparse.ArgumentParser(description=desc, add_help=False, - formatter_class=HelpFormatter) + parser = argparse.ArgumentParser( + description=desc, add_help=False, formatter_class=HelpFormatter + ) - operation = parser.add_argument_group('Main operation') + operation = parser.add_argument_group("Main operation") lexersel = operation.add_mutually_exclusive_group() lexersel.add_argument( - '-l', metavar='LEXER', - help='Specify the lexer to use. (Query names with -L.) If not ' - 'given and -g is not present, the lexer is guessed from the filename.') + "-l", + metavar="LEXER", + help="Specify the lexer to use. (Query names with -L.) If not " + "given and -g is not present, the lexer is guessed from the filename.", + ) lexersel.add_argument( - '-g', action='store_true', - help='Guess the lexer from the file contents, or pass through ' - 'as plain text if nothing can be guessed.') + "-g", + action="store_true", + help="Guess the lexer from the file contents, or pass through " + "as plain text if nothing can be guessed.", + ) operation.add_argument( - '-F', metavar='FILTER[:options]', action='append', - help='Add a filter to the token stream. (Query names with -L.) ' - 'Filter options are given after a colon if necessary.') + "-F", + metavar="FILTER[:options]", + action="append", + help="Add a filter to the token stream. (Query names with -L.) " + "Filter options are given after a colon if necessary.", + ) operation.add_argument( - '-f', metavar='FORMATTER', - help='Specify the formatter to use. (Query names with -L.) ' - 'If not given, the formatter is guessed from the output filename, ' - 'and defaults to the terminal formatter if the output is to the ' - 'terminal or an unknown file extension.') + "-f", + metavar="FORMATTER", + help="Specify the formatter to use. (Query names with -L.) " + "If not given, the formatter is guessed from the output filename, " + "and defaults to the terminal formatter if the output is to the " + "terminal or an unknown file extension.", + ) operation.add_argument( - '-O', metavar='OPTION=value[,OPTION=value,...]', action='append', - help='Give options to the lexer and formatter as a comma-separated ' - 'list of key-value pairs. ' - 'Example: `-O bg=light,python=cool`.') + "-O", + metavar="OPTION=value[,OPTION=value,...]", + action="append", + help="Give options to the lexer and formatter as a comma-separated " + "list of key-value pairs. " + "Example: `-O bg=light,python=cool`.", + ) operation.add_argument( - '-P', metavar='OPTION=value', action='append', - help='Give a single option to the lexer and formatter - with this ' - 'you can pass options whose value contains commas and equal signs. ' - 'Example: `-P "heading=Pygments, the Python highlighter"`.') + "-P", + metavar="OPTION=value", + action="append", + help="Give a single option to the lexer and formatter - with this " + "you can pass options whose value contains commas and equal signs. " + 'Example: `-P "heading=Pygments, the Python highlighter"`.', + ) operation.add_argument( - '-o', metavar='OUTPUTFILE', - help='Where to write the output. Defaults to standard output.') + "-o", + metavar="OUTPUTFILE", + help="Where to write the output. Defaults to standard output.", + ) operation.add_argument( - 'INPUTFILE', nargs='?', - help='Where to read the input. Defaults to standard input.') + "INPUTFILE", + nargs="?", + help="Where to read the input. Defaults to standard input.", + ) - flags = parser.add_argument_group('Operation flags') + flags = parser.add_argument_group("Operation flags") flags.add_argument( - '-v', action='store_true', - help='Print a detailed traceback on unhandled exceptions, which ' - 'is useful for debugging and bug reports.') + "-v", + action="store_true", + help="Print a detailed traceback on unhandled exceptions, which " + "is useful for debugging and bug reports.", + ) flags.add_argument( - '-s', action='store_true', - help='Process lines one at a time until EOF, rather than waiting to ' - 'process the entire file. This only works for stdin, only for lexers ' - 'with no line-spanning constructs, and is intended for streaming ' - 'input such as you get from `tail -f`. ' - 'Example usage: `tail -f sql.log | pygmentize -s -l sql`.') + "-s", + action="store_true", + help="Process lines one at a time until EOF, rather than waiting to " + "process the entire file. This only works for stdin, only for lexers " + "with no line-spanning constructs, and is intended for streaming " + "input such as you get from `tail -f`. " + "Example usage: `tail -f sql.log | pygmentize -s -l sql`.", + ) flags.add_argument( - '-x', action='store_true', - help='Allow custom lexers and formatters to be loaded from a .py file ' - 'relative to the current working directory. For example, ' - '`-l ./customlexer.py -x`. By default, this option expects a file ' - 'with a class named CustomLexer or CustomFormatter; you can also ' - 'specify your own class name with a colon (`-l ./lexer.py:MyLexer`). ' - 'Users should be very careful not to use this option with untrusted ' - 'files, because it will import and run them.') - flags.add_argument('--json', help='Output as JSON. This can ' - 'be only used in conjunction with -L.', + "-x", + action="store_true", + help="Allow custom lexers and formatters to be loaded from a .py file " + "relative to the current working directory. For example, " + "`-l ./customlexer.py -x`. By default, this option expects a file " + "with a class named CustomLexer or CustomFormatter; you can also " + "specify your own class name with a colon (`-l ./lexer.py:MyLexer`). " + "Users should be very careful not to use this option with untrusted " + "files, because it will import and run them.", + ) + flags.add_argument( + "--json", + help="Output as JSON. This can " "be only used in conjunction with -L.", default=False, - action='store_true') + action="store_true", + ) special_modes_group = parser.add_argument_group( - 'Special modes - do not do any highlighting') + "Special modes - do not do any highlighting" + ) special_modes = special_modes_group.add_mutually_exclusive_group() special_modes.add_argument( - '-S', metavar='STYLE -f formatter', - help='Print style definitions for STYLE for a formatter ' - 'given with -f. The argument given by -a is formatter ' - 'dependent.') + "-S", + metavar="STYLE -f formatter", + help="Print style definitions for STYLE for a formatter " + "given with -f. The argument given by -a is formatter " + "dependent.", + ) special_modes.add_argument( - '-L', nargs='*', metavar='WHAT', - help='List lexers, formatters, styles or filters -- ' - 'give additional arguments for the thing(s) you want to list ' - '(e.g. "styles"), or omit them to list everything.') + "-L", + nargs="*", + metavar="WHAT", + help="List lexers, formatters, styles or filters -- " + "give additional arguments for the thing(s) you want to list " + '(e.g. "styles"), or omit them to list everything.', + ) special_modes.add_argument( - '-N', metavar='FILENAME', - help='Guess and print out a lexer name based solely on the given ' - 'filename. Does not take input or highlight anything. If no specific ' - 'lexer can be determined, "text" is printed.') + "-N", + metavar="FILENAME", + help="Guess and print out a lexer name based solely on the given " + "filename. Does not take input or highlight anything. If no specific " + 'lexer can be determined, "text" is printed.', + ) special_modes.add_argument( - '-C', action='store_true', - help='Like -N, but print out a lexer name based solely on ' - 'a given content from standard input.') + "-C", + action="store_true", + help="Like -N, but print out a lexer name based solely on " + "a given content from standard input.", + ) special_modes.add_argument( - '-H', action='store', nargs=2, metavar=('NAME', 'TYPE'), - help='Print detailed help for the object of type , ' - 'where is one of "lexer", "formatter" or "filter".') + "-H", + action="store", + nargs=2, + metavar=("NAME", "TYPE"), + help="Print detailed help for the object of type , " + 'where is one of "lexer", "formatter" or "filter".', + ) special_modes.add_argument( - '-V', action='store_true', - help='Print the package version.') + "-V", action="store_true", help="Print the package version." + ) special_modes.add_argument( - '-h', '--help', action='store_true', - help='Print this help.') + "-h", "--help", action="store_true", help="Print this help." + ) special_modes_group.add_argument( - '-a', metavar='ARG', - help='Formatter-specific additional argument for the -S (print ' - 'style sheet) mode.') + "-a", + metavar="ARG", + help="Formatter-specific additional argument for the -S (print " + "style sheet) mode.", + ) argns = parser.parse_args(args[1:]) @@ -644,25 +720,30 @@ def main(args=sys.argv): except Exception: if argns.v: print(file=sys.stderr) - print('*' * 65, file=sys.stderr) - print('An unhandled exception occurred while highlighting.', - file=sys.stderr) - print('Please report the whole traceback to the issue tracker at', - file=sys.stderr) - print('.', - file=sys.stderr) - print('*' * 65, file=sys.stderr) + print("*" * 65, file=sys.stderr) + print( + "An unhandled exception occurred while highlighting.", file=sys.stderr + ) + print( + "Please report the whole traceback to the issue tracker at", + file=sys.stderr, + ) + print(".", file=sys.stderr) + print("*" * 65, file=sys.stderr) print(file=sys.stderr) raise import traceback + info = traceback.format_exception(*sys.exc_info()) msg = info[-1].strip() if len(info) >= 3: # extract relevant file and position info - msg += '\n (f{})'.format(info[-2].split('\n')[0].strip()[1:]) + msg += "\n (f{})".format(info[-2].split("\n")[0].strip()[1:]) print(file=sys.stderr) - print('*** Error while highlighting:', file=sys.stderr) + print("*** Error while highlighting:", file=sys.stderr) print(msg, file=sys.stderr) - print('*** If this is a bug you want to report, please rerun with -v.', - file=sys.stderr) + print( + "*** If this is a bug you want to report, please rerun with -v.", + file=sys.stderr, + ) return 1 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/console.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/console.py index ee1ac27..d7793ee 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/console.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/console.py @@ -1,11 +1,11 @@ """ - pygments.console - ~~~~~~~~~~~~~~~~ +pygments.console +~~~~~~~~~~~~~~~~ - Format colored console output. +Format colored console output. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ esc = "\x1b[" @@ -21,10 +21,17 @@ codes["underline"] = esc + "04m" codes["blink"] = esc + "05m" codes["overline"] = esc + "06m" -dark_colors = ["black", "red", "green", "yellow", "blue", - "magenta", "cyan", "gray"] -light_colors = ["brightblack", "brightred", "brightgreen", "brightyellow", "brightblue", - "brightmagenta", "brightcyan", "white"] +dark_colors = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "gray"] +light_colors = [ + "brightblack", + "brightred", + "brightgreen", + "brightyellow", + "brightblue", + "brightmagenta", + "brightcyan", + "white", +] x = 30 for dark, light in zip(dark_colors, light_colors): @@ -55,16 +62,16 @@ def ansiformat(attr, text): +color+ blinking color """ result = [] - if attr[:1] == attr[-1:] == '+': - result.append(codes['blink']) + if attr[:1] == attr[-1:] == "+": + result.append(codes["blink"]) attr = attr[1:-1] - if attr[:1] == attr[-1:] == '*': - result.append(codes['bold']) + if attr[:1] == attr[-1:] == "*": + result.append(codes["bold"]) attr = attr[1:-1] - if attr[:1] == attr[-1:] == '_': - result.append(codes['underline']) + if attr[:1] == attr[-1:] == "_": + result.append(codes["underline"]) attr = attr[1:-1] result.append(codes[attr]) result.append(text) - result.append(codes['reset']) - return ''.join(result) + result.append(codes["reset"]) + return "".join(result) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/filter.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/filter.py index 5efff43..fba8610 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/filter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/filter.py @@ -1,11 +1,11 @@ """ - pygments.filter - ~~~~~~~~~~~~~~~ +pygments.filter +~~~~~~~~~~~~~~~ - Module that implements the default filter. +Module that implements the default filter. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ @@ -15,8 +15,10 @@ def apply_filters(stream, filters, lexer=None): a stream. If lexer is given it's forwarded to the filter, otherwise the filter receives `None`. """ + def _apply(filter_, stream): yield from filter_.filter(lexer, stream) + for filter_ in filters: stream = _apply(filter_, stream) return stream @@ -31,11 +33,15 @@ def simplefilter(f): for ttype, value in stream: yield ttype, value.lower() """ - return type(f.__name__, (FunctionFilter,), { - '__module__': getattr(f, '__module__'), - '__doc__': f.__doc__, - 'function': f, - }) + return type( + f.__name__, + (FunctionFilter,), + { + "__module__": getattr(f, "__module__"), + "__doc__": f.__doc__, + "function": f, + }, + ) class Filter: @@ -58,11 +64,12 @@ class FunctionFilter(Filter): automatically creates subclasses of this class for functions passed to it. """ + function = None def __init__(self, **options): - if not hasattr(self, 'function'): - raise TypeError(f'{self.__class__.__name__!r} used without bound function') + if not hasattr(self, "function"): + raise TypeError(f"{self.__class__.__name__!r} used without bound function") Filter.__init__(self, **options) def filter(self, lexer, stream): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/filters/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/filters/__init__.py index 2fed761..31d79d2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/filters/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/filters/__init__.py @@ -1,21 +1,34 @@ """ - pygments.filters - ~~~~~~~~~~~~~~~~ +pygments.filters +~~~~~~~~~~~~~~~~ - Module containing filter lookup functions and default - filters. +Module containing filter lookup functions and default +filters. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.token import String, Comment, Keyword, Name, Error, Whitespace, \ - string_to_tokentype +from pygments.token import ( + String, + Comment, + Keyword, + Name, + Error, + Whitespace, + string_to_tokentype, +) from pygments.filter import Filter -from pygments.util import get_list_opt, get_int_opt, get_bool_opt, \ - get_choice_opt, ClassNotFound, OptionError +from pygments.util import ( + get_list_opt, + get_int_opt, + get_bool_opt, + get_choice_opt, + ClassNotFound, + OptionError, +) from pygments.plugin import find_plugin_filters @@ -39,7 +52,7 @@ def get_filter_by_name(filtername, **options): if cls: return cls(**options) else: - raise ClassNotFound(f'filter {filtername!r} not found') + raise ClassNotFound(f"filter {filtername!r} not found") def get_all_filters(): @@ -49,8 +62,7 @@ def get_all_filters(): yield name -def _replace_special(ttype, value, regex, specialttype, - replacefunc=lambda x: x): +def _replace_special(ttype, value, regex, specialttype, replacefunc=lambda x: x): last = 0 for match in regex.finditer(value): start, end = match.start(), match.end() @@ -77,18 +89,17 @@ class CodeTagFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - tags = get_list_opt(options, 'codetags', - ['XXX', 'TODO', 'FIXME', 'BUG', 'NOTE']) - self.tag_re = re.compile(r'\b({})\b'.format('|'.join([ - re.escape(tag) for tag in tags if tag - ]))) + tags = get_list_opt( + options, "codetags", ["XXX", "TODO", "FIXME", "BUG", "NOTE"] + ) + self.tag_re = re.compile( + r"\b({})\b".format("|".join([re.escape(tag) for tag in tags if tag])) + ) def filter(self, lexer, stream): regex = self.tag_re for ttype, value in stream: - if ttype in String.Doc or \ - ttype in Comment and \ - ttype not in Comment.Preproc: + if ttype in String.Doc or ttype in Comment and ttype not in Comment.Preproc: yield from _replace_special(ttype, value, regex, Comment.Special) else: yield ttype, value @@ -109,571 +120,570 @@ class SymbolFilter(Filter): """ latex_symbols = { - '\\alpha' : '\U000003b1', - '\\beta' : '\U000003b2', - '\\gamma' : '\U000003b3', - '\\delta' : '\U000003b4', - '\\varepsilon' : '\U000003b5', - '\\zeta' : '\U000003b6', - '\\eta' : '\U000003b7', - '\\vartheta' : '\U000003b8', - '\\iota' : '\U000003b9', - '\\kappa' : '\U000003ba', - '\\lambda' : '\U000003bb', - '\\mu' : '\U000003bc', - '\\nu' : '\U000003bd', - '\\xi' : '\U000003be', - '\\pi' : '\U000003c0', - '\\varrho' : '\U000003c1', - '\\sigma' : '\U000003c3', - '\\tau' : '\U000003c4', - '\\upsilon' : '\U000003c5', - '\\varphi' : '\U000003c6', - '\\chi' : '\U000003c7', - '\\psi' : '\U000003c8', - '\\omega' : '\U000003c9', - '\\Gamma' : '\U00000393', - '\\Delta' : '\U00000394', - '\\Theta' : '\U00000398', - '\\Lambda' : '\U0000039b', - '\\Xi' : '\U0000039e', - '\\Pi' : '\U000003a0', - '\\Sigma' : '\U000003a3', - '\\Upsilon' : '\U000003a5', - '\\Phi' : '\U000003a6', - '\\Psi' : '\U000003a8', - '\\Omega' : '\U000003a9', - '\\leftarrow' : '\U00002190', - '\\longleftarrow' : '\U000027f5', - '\\rightarrow' : '\U00002192', - '\\longrightarrow' : '\U000027f6', - '\\Leftarrow' : '\U000021d0', - '\\Longleftarrow' : '\U000027f8', - '\\Rightarrow' : '\U000021d2', - '\\Longrightarrow' : '\U000027f9', - '\\leftrightarrow' : '\U00002194', - '\\longleftrightarrow' : '\U000027f7', - '\\Leftrightarrow' : '\U000021d4', - '\\Longleftrightarrow' : '\U000027fa', - '\\mapsto' : '\U000021a6', - '\\longmapsto' : '\U000027fc', - '\\relbar' : '\U00002500', - '\\Relbar' : '\U00002550', - '\\hookleftarrow' : '\U000021a9', - '\\hookrightarrow' : '\U000021aa', - '\\leftharpoondown' : '\U000021bd', - '\\rightharpoondown' : '\U000021c1', - '\\leftharpoonup' : '\U000021bc', - '\\rightharpoonup' : '\U000021c0', - '\\rightleftharpoons' : '\U000021cc', - '\\leadsto' : '\U0000219d', - '\\downharpoonleft' : '\U000021c3', - '\\downharpoonright' : '\U000021c2', - '\\upharpoonleft' : '\U000021bf', - '\\upharpoonright' : '\U000021be', - '\\restriction' : '\U000021be', - '\\uparrow' : '\U00002191', - '\\Uparrow' : '\U000021d1', - '\\downarrow' : '\U00002193', - '\\Downarrow' : '\U000021d3', - '\\updownarrow' : '\U00002195', - '\\Updownarrow' : '\U000021d5', - '\\langle' : '\U000027e8', - '\\rangle' : '\U000027e9', - '\\lceil' : '\U00002308', - '\\rceil' : '\U00002309', - '\\lfloor' : '\U0000230a', - '\\rfloor' : '\U0000230b', - '\\flqq' : '\U000000ab', - '\\frqq' : '\U000000bb', - '\\bot' : '\U000022a5', - '\\top' : '\U000022a4', - '\\wedge' : '\U00002227', - '\\bigwedge' : '\U000022c0', - '\\vee' : '\U00002228', - '\\bigvee' : '\U000022c1', - '\\forall' : '\U00002200', - '\\exists' : '\U00002203', - '\\nexists' : '\U00002204', - '\\neg' : '\U000000ac', - '\\Box' : '\U000025a1', - '\\Diamond' : '\U000025c7', - '\\vdash' : '\U000022a2', - '\\models' : '\U000022a8', - '\\dashv' : '\U000022a3', - '\\surd' : '\U0000221a', - '\\le' : '\U00002264', - '\\ge' : '\U00002265', - '\\ll' : '\U0000226a', - '\\gg' : '\U0000226b', - '\\lesssim' : '\U00002272', - '\\gtrsim' : '\U00002273', - '\\lessapprox' : '\U00002a85', - '\\gtrapprox' : '\U00002a86', - '\\in' : '\U00002208', - '\\notin' : '\U00002209', - '\\subset' : '\U00002282', - '\\supset' : '\U00002283', - '\\subseteq' : '\U00002286', - '\\supseteq' : '\U00002287', - '\\sqsubset' : '\U0000228f', - '\\sqsupset' : '\U00002290', - '\\sqsubseteq' : '\U00002291', - '\\sqsupseteq' : '\U00002292', - '\\cap' : '\U00002229', - '\\bigcap' : '\U000022c2', - '\\cup' : '\U0000222a', - '\\bigcup' : '\U000022c3', - '\\sqcup' : '\U00002294', - '\\bigsqcup' : '\U00002a06', - '\\sqcap' : '\U00002293', - '\\Bigsqcap' : '\U00002a05', - '\\setminus' : '\U00002216', - '\\propto' : '\U0000221d', - '\\uplus' : '\U0000228e', - '\\bigplus' : '\U00002a04', - '\\sim' : '\U0000223c', - '\\doteq' : '\U00002250', - '\\simeq' : '\U00002243', - '\\approx' : '\U00002248', - '\\asymp' : '\U0000224d', - '\\cong' : '\U00002245', - '\\equiv' : '\U00002261', - '\\Join' : '\U000022c8', - '\\bowtie' : '\U00002a1d', - '\\prec' : '\U0000227a', - '\\succ' : '\U0000227b', - '\\preceq' : '\U0000227c', - '\\succeq' : '\U0000227d', - '\\parallel' : '\U00002225', - '\\mid' : '\U000000a6', - '\\pm' : '\U000000b1', - '\\mp' : '\U00002213', - '\\times' : '\U000000d7', - '\\div' : '\U000000f7', - '\\cdot' : '\U000022c5', - '\\star' : '\U000022c6', - '\\circ' : '\U00002218', - '\\dagger' : '\U00002020', - '\\ddagger' : '\U00002021', - '\\lhd' : '\U000022b2', - '\\rhd' : '\U000022b3', - '\\unlhd' : '\U000022b4', - '\\unrhd' : '\U000022b5', - '\\triangleleft' : '\U000025c3', - '\\triangleright' : '\U000025b9', - '\\triangle' : '\U000025b3', - '\\triangleq' : '\U0000225c', - '\\oplus' : '\U00002295', - '\\bigoplus' : '\U00002a01', - '\\otimes' : '\U00002297', - '\\bigotimes' : '\U00002a02', - '\\odot' : '\U00002299', - '\\bigodot' : '\U00002a00', - '\\ominus' : '\U00002296', - '\\oslash' : '\U00002298', - '\\dots' : '\U00002026', - '\\cdots' : '\U000022ef', - '\\sum' : '\U00002211', - '\\prod' : '\U0000220f', - '\\coprod' : '\U00002210', - '\\infty' : '\U0000221e', - '\\int' : '\U0000222b', - '\\oint' : '\U0000222e', - '\\clubsuit' : '\U00002663', - '\\diamondsuit' : '\U00002662', - '\\heartsuit' : '\U00002661', - '\\spadesuit' : '\U00002660', - '\\aleph' : '\U00002135', - '\\emptyset' : '\U00002205', - '\\nabla' : '\U00002207', - '\\partial' : '\U00002202', - '\\flat' : '\U0000266d', - '\\natural' : '\U0000266e', - '\\sharp' : '\U0000266f', - '\\angle' : '\U00002220', - '\\copyright' : '\U000000a9', - '\\textregistered' : '\U000000ae', - '\\textonequarter' : '\U000000bc', - '\\textonehalf' : '\U000000bd', - '\\textthreequarters' : '\U000000be', - '\\textordfeminine' : '\U000000aa', - '\\textordmasculine' : '\U000000ba', - '\\euro' : '\U000020ac', - '\\pounds' : '\U000000a3', - '\\yen' : '\U000000a5', - '\\textcent' : '\U000000a2', - '\\textcurrency' : '\U000000a4', - '\\textdegree' : '\U000000b0', + "\\alpha": "\U000003b1", + "\\beta": "\U000003b2", + "\\gamma": "\U000003b3", + "\\delta": "\U000003b4", + "\\varepsilon": "\U000003b5", + "\\zeta": "\U000003b6", + "\\eta": "\U000003b7", + "\\vartheta": "\U000003b8", + "\\iota": "\U000003b9", + "\\kappa": "\U000003ba", + "\\lambda": "\U000003bb", + "\\mu": "\U000003bc", + "\\nu": "\U000003bd", + "\\xi": "\U000003be", + "\\pi": "\U000003c0", + "\\varrho": "\U000003c1", + "\\sigma": "\U000003c3", + "\\tau": "\U000003c4", + "\\upsilon": "\U000003c5", + "\\varphi": "\U000003c6", + "\\chi": "\U000003c7", + "\\psi": "\U000003c8", + "\\omega": "\U000003c9", + "\\Gamma": "\U00000393", + "\\Delta": "\U00000394", + "\\Theta": "\U00000398", + "\\Lambda": "\U0000039b", + "\\Xi": "\U0000039e", + "\\Pi": "\U000003a0", + "\\Sigma": "\U000003a3", + "\\Upsilon": "\U000003a5", + "\\Phi": "\U000003a6", + "\\Psi": "\U000003a8", + "\\Omega": "\U000003a9", + "\\leftarrow": "\U00002190", + "\\longleftarrow": "\U000027f5", + "\\rightarrow": "\U00002192", + "\\longrightarrow": "\U000027f6", + "\\Leftarrow": "\U000021d0", + "\\Longleftarrow": "\U000027f8", + "\\Rightarrow": "\U000021d2", + "\\Longrightarrow": "\U000027f9", + "\\leftrightarrow": "\U00002194", + "\\longleftrightarrow": "\U000027f7", + "\\Leftrightarrow": "\U000021d4", + "\\Longleftrightarrow": "\U000027fa", + "\\mapsto": "\U000021a6", + "\\longmapsto": "\U000027fc", + "\\relbar": "\U00002500", + "\\Relbar": "\U00002550", + "\\hookleftarrow": "\U000021a9", + "\\hookrightarrow": "\U000021aa", + "\\leftharpoondown": "\U000021bd", + "\\rightharpoondown": "\U000021c1", + "\\leftharpoonup": "\U000021bc", + "\\rightharpoonup": "\U000021c0", + "\\rightleftharpoons": "\U000021cc", + "\\leadsto": "\U0000219d", + "\\downharpoonleft": "\U000021c3", + "\\downharpoonright": "\U000021c2", + "\\upharpoonleft": "\U000021bf", + "\\upharpoonright": "\U000021be", + "\\restriction": "\U000021be", + "\\uparrow": "\U00002191", + "\\Uparrow": "\U000021d1", + "\\downarrow": "\U00002193", + "\\Downarrow": "\U000021d3", + "\\updownarrow": "\U00002195", + "\\Updownarrow": "\U000021d5", + "\\langle": "\U000027e8", + "\\rangle": "\U000027e9", + "\\lceil": "\U00002308", + "\\rceil": "\U00002309", + "\\lfloor": "\U0000230a", + "\\rfloor": "\U0000230b", + "\\flqq": "\U000000ab", + "\\frqq": "\U000000bb", + "\\bot": "\U000022a5", + "\\top": "\U000022a4", + "\\wedge": "\U00002227", + "\\bigwedge": "\U000022c0", + "\\vee": "\U00002228", + "\\bigvee": "\U000022c1", + "\\forall": "\U00002200", + "\\exists": "\U00002203", + "\\nexists": "\U00002204", + "\\neg": "\U000000ac", + "\\Box": "\U000025a1", + "\\Diamond": "\U000025c7", + "\\vdash": "\U000022a2", + "\\models": "\U000022a8", + "\\dashv": "\U000022a3", + "\\surd": "\U0000221a", + "\\le": "\U00002264", + "\\ge": "\U00002265", + "\\ll": "\U0000226a", + "\\gg": "\U0000226b", + "\\lesssim": "\U00002272", + "\\gtrsim": "\U00002273", + "\\lessapprox": "\U00002a85", + "\\gtrapprox": "\U00002a86", + "\\in": "\U00002208", + "\\notin": "\U00002209", + "\\subset": "\U00002282", + "\\supset": "\U00002283", + "\\subseteq": "\U00002286", + "\\supseteq": "\U00002287", + "\\sqsubset": "\U0000228f", + "\\sqsupset": "\U00002290", + "\\sqsubseteq": "\U00002291", + "\\sqsupseteq": "\U00002292", + "\\cap": "\U00002229", + "\\bigcap": "\U000022c2", + "\\cup": "\U0000222a", + "\\bigcup": "\U000022c3", + "\\sqcup": "\U00002294", + "\\bigsqcup": "\U00002a06", + "\\sqcap": "\U00002293", + "\\Bigsqcap": "\U00002a05", + "\\setminus": "\U00002216", + "\\propto": "\U0000221d", + "\\uplus": "\U0000228e", + "\\bigplus": "\U00002a04", + "\\sim": "\U0000223c", + "\\doteq": "\U00002250", + "\\simeq": "\U00002243", + "\\approx": "\U00002248", + "\\asymp": "\U0000224d", + "\\cong": "\U00002245", + "\\equiv": "\U00002261", + "\\Join": "\U000022c8", + "\\bowtie": "\U00002a1d", + "\\prec": "\U0000227a", + "\\succ": "\U0000227b", + "\\preceq": "\U0000227c", + "\\succeq": "\U0000227d", + "\\parallel": "\U00002225", + "\\mid": "\U000000a6", + "\\pm": "\U000000b1", + "\\mp": "\U00002213", + "\\times": "\U000000d7", + "\\div": "\U000000f7", + "\\cdot": "\U000022c5", + "\\star": "\U000022c6", + "\\circ": "\U00002218", + "\\dagger": "\U00002020", + "\\ddagger": "\U00002021", + "\\lhd": "\U000022b2", + "\\rhd": "\U000022b3", + "\\unlhd": "\U000022b4", + "\\unrhd": "\U000022b5", + "\\triangleleft": "\U000025c3", + "\\triangleright": "\U000025b9", + "\\triangle": "\U000025b3", + "\\triangleq": "\U0000225c", + "\\oplus": "\U00002295", + "\\bigoplus": "\U00002a01", + "\\otimes": "\U00002297", + "\\bigotimes": "\U00002a02", + "\\odot": "\U00002299", + "\\bigodot": "\U00002a00", + "\\ominus": "\U00002296", + "\\oslash": "\U00002298", + "\\dots": "\U00002026", + "\\cdots": "\U000022ef", + "\\sum": "\U00002211", + "\\prod": "\U0000220f", + "\\coprod": "\U00002210", + "\\infty": "\U0000221e", + "\\int": "\U0000222b", + "\\oint": "\U0000222e", + "\\clubsuit": "\U00002663", + "\\diamondsuit": "\U00002662", + "\\heartsuit": "\U00002661", + "\\spadesuit": "\U00002660", + "\\aleph": "\U00002135", + "\\emptyset": "\U00002205", + "\\nabla": "\U00002207", + "\\partial": "\U00002202", + "\\flat": "\U0000266d", + "\\natural": "\U0000266e", + "\\sharp": "\U0000266f", + "\\angle": "\U00002220", + "\\copyright": "\U000000a9", + "\\textregistered": "\U000000ae", + "\\textonequarter": "\U000000bc", + "\\textonehalf": "\U000000bd", + "\\textthreequarters": "\U000000be", + "\\textordfeminine": "\U000000aa", + "\\textordmasculine": "\U000000ba", + "\\euro": "\U000020ac", + "\\pounds": "\U000000a3", + "\\yen": "\U000000a5", + "\\textcent": "\U000000a2", + "\\textcurrency": "\U000000a4", + "\\textdegree": "\U000000b0", } isabelle_symbols = { - '\\' : '\U0001d7ec', - '\\' : '\U0001d7ed', - '\\' : '\U0001d7ee', - '\\' : '\U0001d7ef', - '\\' : '\U0001d7f0', - '\\' : '\U0001d7f1', - '\\' : '\U0001d7f2', - '\\' : '\U0001d7f3', - '\\' : '\U0001d7f4', - '\\' : '\U0001d7f5', - '\\' : '\U0001d49c', - '\\' : '\U0000212c', - '\\' : '\U0001d49e', - '\\' : '\U0001d49f', - '\\' : '\U00002130', - '\\' : '\U00002131', - '\\' : '\U0001d4a2', - '\\' : '\U0000210b', - '\\' : '\U00002110', - '\\' : '\U0001d4a5', - '\\' : '\U0001d4a6', - '\\' : '\U00002112', - '\\' : '\U00002133', - '\\' : '\U0001d4a9', - '\\' : '\U0001d4aa', - '\\

' : '\U0001d5c9', - '\\' : '\U0001d5ca', - '\\' : '\U0001d5cb', - '\\' : '\U0001d5cc', - '\\' : '\U0001d5cd', - '\\' : '\U0001d5ce', - '\\' : '\U0001d5cf', - '\\' : '\U0001d5d0', - '\\' : '\U0001d5d1', - '\\' : '\U0001d5d2', - '\\' : '\U0001d5d3', - '\\' : '\U0001d504', - '\\' : '\U0001d505', - '\\' : '\U0000212d', - '\\

' : '\U0001d507', - '\\' : '\U0001d508', - '\\' : '\U0001d509', - '\\' : '\U0001d50a', - '\\' : '\U0000210c', - '\\' : '\U00002111', - '\\' : '\U0001d50d', - '\\' : '\U0001d50e', - '\\' : '\U0001d50f', - '\\' : '\U0001d510', - '\\' : '\U0001d511', - '\\' : '\U0001d512', - '\\' : '\U0001d513', - '\\' : '\U0001d514', - '\\' : '\U0000211c', - '\\' : '\U0001d516', - '\\' : '\U0001d517', - '\\' : '\U0001d518', - '\\' : '\U0001d519', - '\\' : '\U0001d51a', - '\\' : '\U0001d51b', - '\\' : '\U0001d51c', - '\\' : '\U00002128', - '\\' : '\U0001d51e', - '\\' : '\U0001d51f', - '\\' : '\U0001d520', - '\\

' : '\U0001d4ab', - '\\' : '\U0001d4ac', - '\\' : '\U0000211b', - '\\' : '\U0001d4ae', - '\\' : '\U0001d4af', - '\\' : '\U0001d4b0', - '\\' : '\U0001d4b1', - '\\' : '\U0001d4b2', - '\\' : '\U0001d4b3', - '\\' : '\U0001d4b4', - '\\' : '\U0001d4b5', - '\\' : '\U0001d5ba', - '\\' : '\U0001d5bb', - '\\' : '\U0001d5bc', - '\\' : '\U0001d5bd', - '\\' : '\U0001d5be', - '\\' : '\U0001d5bf', - '\\' : '\U0001d5c0', - '\\' : '\U0001d5c1', - '\\' : '\U0001d5c2', - '\\' : '\U0001d5c3', - '\\' : '\U0001d5c4', - '\\' : '\U0001d5c5', - '\\' : '\U0001d5c6', - '\\' : '\U0001d5c7', - '\\' : '\U0001d5c8', - '\\

' : '\U0001d521', - '\\' : '\U0001d522', - '\\' : '\U0001d523', - '\\' : '\U0001d524', - '\\' : '\U0001d525', - '\\' : '\U0001d526', - '\\' : '\U0001d527', - '\\' : '\U0001d528', - '\\' : '\U0001d529', - '\\' : '\U0001d52a', - '\\' : '\U0001d52b', - '\\' : '\U0001d52c', - '\\' : '\U0001d52d', - '\\' : '\U0001d52e', - '\\' : '\U0001d52f', - '\\' : '\U0001d530', - '\\' : '\U0001d531', - '\\' : '\U0001d532', - '\\' : '\U0001d533', - '\\' : '\U0001d534', - '\\' : '\U0001d535', - '\\' : '\U0001d536', - '\\' : '\U0001d537', - '\\' : '\U000003b1', - '\\' : '\U000003b2', - '\\' : '\U000003b3', - '\\' : '\U000003b4', - '\\' : '\U000003b5', - '\\' : '\U000003b6', - '\\' : '\U000003b7', - '\\' : '\U000003b8', - '\\' : '\U000003b9', - '\\' : '\U000003ba', - '\\' : '\U000003bb', - '\\' : '\U000003bc', - '\\' : '\U000003bd', - '\\' : '\U000003be', - '\\' : '\U000003c0', - '\\' : '\U000003c1', - '\\' : '\U000003c3', - '\\' : '\U000003c4', - '\\' : '\U000003c5', - '\\' : '\U000003c6', - '\\' : '\U000003c7', - '\\' : '\U000003c8', - '\\' : '\U000003c9', - '\\' : '\U00000393', - '\\' : '\U00000394', - '\\' : '\U00000398', - '\\' : '\U0000039b', - '\\' : '\U0000039e', - '\\' : '\U000003a0', - '\\' : '\U000003a3', - '\\' : '\U000003a5', - '\\' : '\U000003a6', - '\\' : '\U000003a8', - '\\' : '\U000003a9', - '\\' : '\U0001d539', - '\\' : '\U00002102', - '\\' : '\U00002115', - '\\' : '\U0000211a', - '\\' : '\U0000211d', - '\\' : '\U00002124', - '\\' : '\U00002190', - '\\' : '\U000027f5', - '\\' : '\U00002192', - '\\' : '\U000027f6', - '\\' : '\U000021d0', - '\\' : '\U000027f8', - '\\' : '\U000021d2', - '\\' : '\U000027f9', - '\\' : '\U00002194', - '\\' : '\U000027f7', - '\\' : '\U000021d4', - '\\' : '\U000027fa', - '\\' : '\U000021a6', - '\\' : '\U000027fc', - '\\' : '\U00002500', - '\\' : '\U00002550', - '\\' : '\U000021a9', - '\\' : '\U000021aa', - '\\' : '\U000021bd', - '\\' : '\U000021c1', - '\\' : '\U000021bc', - '\\' : '\U000021c0', - '\\' : '\U000021cc', - '\\' : '\U0000219d', - '\\' : '\U000021c3', - '\\' : '\U000021c2', - '\\' : '\U000021bf', - '\\' : '\U000021be', - '\\' : '\U000021be', - '\\' : '\U00002237', - '\\' : '\U00002191', - '\\' : '\U000021d1', - '\\' : '\U00002193', - '\\' : '\U000021d3', - '\\' : '\U00002195', - '\\' : '\U000021d5', - '\\' : '\U000027e8', - '\\' : '\U000027e9', - '\\' : '\U00002308', - '\\' : '\U00002309', - '\\' : '\U0000230a', - '\\' : '\U0000230b', - '\\' : '\U00002987', - '\\' : '\U00002988', - '\\' : '\U000027e6', - '\\' : '\U000027e7', - '\\' : '\U00002983', - '\\' : '\U00002984', - '\\' : '\U000000ab', - '\\' : '\U000000bb', - '\\' : '\U000022a5', - '\\' : '\U000022a4', - '\\' : '\U00002227', - '\\' : '\U000022c0', - '\\' : '\U00002228', - '\\' : '\U000022c1', - '\\' : '\U00002200', - '\\' : '\U00002203', - '\\' : '\U00002204', - '\\' : '\U000000ac', - '\\' : '\U000025a1', - '\\' : '\U000025c7', - '\\' : '\U000022a2', - '\\' : '\U000022a8', - '\\' : '\U000022a9', - '\\' : '\U000022ab', - '\\' : '\U000022a3', - '\\' : '\U0000221a', - '\\' : '\U00002264', - '\\' : '\U00002265', - '\\' : '\U0000226a', - '\\' : '\U0000226b', - '\\' : '\U00002272', - '\\' : '\U00002273', - '\\' : '\U00002a85', - '\\' : '\U00002a86', - '\\' : '\U00002208', - '\\' : '\U00002209', - '\\' : '\U00002282', - '\\' : '\U00002283', - '\\' : '\U00002286', - '\\' : '\U00002287', - '\\' : '\U0000228f', - '\\' : '\U00002290', - '\\' : '\U00002291', - '\\' : '\U00002292', - '\\' : '\U00002229', - '\\' : '\U000022c2', - '\\' : '\U0000222a', - '\\' : '\U000022c3', - '\\' : '\U00002294', - '\\' : '\U00002a06', - '\\' : '\U00002293', - '\\' : '\U00002a05', - '\\' : '\U00002216', - '\\' : '\U0000221d', - '\\' : '\U0000228e', - '\\' : '\U00002a04', - '\\' : '\U00002260', - '\\' : '\U0000223c', - '\\' : '\U00002250', - '\\' : '\U00002243', - '\\' : '\U00002248', - '\\' : '\U0000224d', - '\\' : '\U00002245', - '\\' : '\U00002323', - '\\' : '\U00002261', - '\\' : '\U00002322', - '\\' : '\U000022c8', - '\\' : '\U00002a1d', - '\\' : '\U0000227a', - '\\' : '\U0000227b', - '\\' : '\U0000227c', - '\\' : '\U0000227d', - '\\' : '\U00002225', - '\\' : '\U000000a6', - '\\' : '\U000000b1', - '\\' : '\U00002213', - '\\' : '\U000000d7', - '\\
' : '\U000000f7', - '\\' : '\U000022c5', - '\\' : '\U000022c6', - '\\' : '\U00002219', - '\\' : '\U00002218', - '\\' : '\U00002020', - '\\' : '\U00002021', - '\\' : '\U000022b2', - '\\' : '\U000022b3', - '\\' : '\U000022b4', - '\\' : '\U000022b5', - '\\' : '\U000025c3', - '\\' : '\U000025b9', - '\\' : '\U000025b3', - '\\' : '\U0000225c', - '\\' : '\U00002295', - '\\' : '\U00002a01', - '\\' : '\U00002297', - '\\' : '\U00002a02', - '\\' : '\U00002299', - '\\' : '\U00002a00', - '\\' : '\U00002296', - '\\' : '\U00002298', - '\\' : '\U00002026', - '\\' : '\U000022ef', - '\\' : '\U00002211', - '\\' : '\U0000220f', - '\\' : '\U00002210', - '\\' : '\U0000221e', - '\\' : '\U0000222b', - '\\' : '\U0000222e', - '\\' : '\U00002663', - '\\' : '\U00002662', - '\\' : '\U00002661', - '\\' : '\U00002660', - '\\' : '\U00002135', - '\\' : '\U00002205', - '\\' : '\U00002207', - '\\' : '\U00002202', - '\\' : '\U0000266d', - '\\' : '\U0000266e', - '\\' : '\U0000266f', - '\\' : '\U00002220', - '\\' : '\U000000a9', - '\\' : '\U000000ae', - '\\' : '\U000000ad', - '\\' : '\U000000af', - '\\' : '\U000000bc', - '\\' : '\U000000bd', - '\\' : '\U000000be', - '\\' : '\U000000aa', - '\\' : '\U000000ba', - '\\
' : '\U000000a7', - '\\' : '\U000000b6', - '\\' : '\U000000a1', - '\\' : '\U000000bf', - '\\' : '\U000020ac', - '\\' : '\U000000a3', - '\\' : '\U000000a5', - '\\' : '\U000000a2', - '\\' : '\U000000a4', - '\\' : '\U000000b0', - '\\' : '\U00002a3f', - '\\' : '\U00002127', - '\\' : '\U000025ca', - '\\' : '\U00002118', - '\\' : '\U00002240', - '\\' : '\U000022c4', - '\\' : '\U000000b4', - '\\' : '\U00000131', - '\\' : '\U000000a8', - '\\' : '\U000000b8', - '\\' : '\U000002dd', - '\\' : '\U000003f5', - '\\' : '\U000023ce', - '\\' : '\U00002039', - '\\' : '\U0000203a', - '\\' : '\U00002302', - '\\<^sub>' : '\U000021e9', - '\\<^sup>' : '\U000021e7', - '\\<^bold>' : '\U00002759', - '\\<^bsub>' : '\U000021d8', - '\\<^esub>' : '\U000021d9', - '\\<^bsup>' : '\U000021d7', - '\\<^esup>' : '\U000021d6', + "\\": "\U0001d7ec", + "\\": "\U0001d7ed", + "\\": "\U0001d7ee", + "\\": "\U0001d7ef", + "\\": "\U0001d7f0", + "\\": "\U0001d7f1", + "\\": "\U0001d7f2", + "\\": "\U0001d7f3", + "\\": "\U0001d7f4", + "\\": "\U0001d7f5", + "\\": "\U0001d49c", + "\\": "\U0000212c", + "\\": "\U0001d49e", + "\\": "\U0001d49f", + "\\": "\U00002130", + "\\": "\U00002131", + "\\": "\U0001d4a2", + "\\": "\U0000210b", + "\\": "\U00002110", + "\\": "\U0001d4a5", + "\\": "\U0001d4a6", + "\\": "\U00002112", + "\\": "\U00002133", + "\\": "\U0001d4a9", + "\\": "\U0001d4aa", + "\\

": "\U0001d5c9", + "\\": "\U0001d5ca", + "\\": "\U0001d5cb", + "\\": "\U0001d5cc", + "\\": "\U0001d5cd", + "\\": "\U0001d5ce", + "\\": "\U0001d5cf", + "\\": "\U0001d5d0", + "\\": "\U0001d5d1", + "\\": "\U0001d5d2", + "\\": "\U0001d5d3", + "\\": "\U0001d504", + "\\": "\U0001d505", + "\\": "\U0000212d", + "\\

": "\U0001d507", + "\\": "\U0001d508", + "\\": "\U0001d509", + "\\": "\U0001d50a", + "\\": "\U0000210c", + "\\": "\U00002111", + "\\": "\U0001d50d", + "\\": "\U0001d50e", + "\\": "\U0001d50f", + "\\": "\U0001d510", + "\\": "\U0001d511", + "\\": "\U0001d512", + "\\": "\U0001d513", + "\\": "\U0001d514", + "\\": "\U0000211c", + "\\": "\U0001d516", + "\\": "\U0001d517", + "\\": "\U0001d518", + "\\": "\U0001d519", + "\\": "\U0001d51a", + "\\": "\U0001d51b", + "\\": "\U0001d51c", + "\\": "\U00002128", + "\\": "\U0001d51e", + "\\": "\U0001d51f", + "\\": "\U0001d520", + "\\

": "\U0001d4ab", + "\\": "\U0001d4ac", + "\\": "\U0000211b", + "\\": "\U0001d4ae", + "\\": "\U0001d4af", + "\\": "\U0001d4b0", + "\\": "\U0001d4b1", + "\\": "\U0001d4b2", + "\\": "\U0001d4b3", + "\\": "\U0001d4b4", + "\\": "\U0001d4b5", + "\\": "\U0001d5ba", + "\\": "\U0001d5bb", + "\\": "\U0001d5bc", + "\\": "\U0001d5bd", + "\\": "\U0001d5be", + "\\": "\U0001d5bf", + "\\": "\U0001d5c0", + "\\": "\U0001d5c1", + "\\": "\U0001d5c2", + "\\": "\U0001d5c3", + "\\": "\U0001d5c4", + "\\": "\U0001d5c5", + "\\": "\U0001d5c6", + "\\": "\U0001d5c7", + "\\": "\U0001d5c8", + "\\

": "\U0001d521", + "\\": "\U0001d522", + "\\": "\U0001d523", + "\\": "\U0001d524", + "\\": "\U0001d525", + "\\": "\U0001d526", + "\\": "\U0001d527", + "\\": "\U0001d528", + "\\": "\U0001d529", + "\\": "\U0001d52a", + "\\": "\U0001d52b", + "\\": "\U0001d52c", + "\\": "\U0001d52d", + "\\": "\U0001d52e", + "\\": "\U0001d52f", + "\\": "\U0001d530", + "\\": "\U0001d531", + "\\": "\U0001d532", + "\\": "\U0001d533", + "\\": "\U0001d534", + "\\": "\U0001d535", + "\\": "\U0001d536", + "\\": "\U0001d537", + "\\": "\U000003b1", + "\\": "\U000003b2", + "\\": "\U000003b3", + "\\": "\U000003b4", + "\\": "\U000003b5", + "\\": "\U000003b6", + "\\": "\U000003b7", + "\\": "\U000003b8", + "\\": "\U000003b9", + "\\": "\U000003ba", + "\\": "\U000003bb", + "\\": "\U000003bc", + "\\": "\U000003bd", + "\\": "\U000003be", + "\\": "\U000003c0", + "\\": "\U000003c1", + "\\": "\U000003c3", + "\\": "\U000003c4", + "\\": "\U000003c5", + "\\": "\U000003c6", + "\\": "\U000003c7", + "\\": "\U000003c8", + "\\": "\U000003c9", + "\\": "\U00000393", + "\\": "\U00000394", + "\\": "\U00000398", + "\\": "\U0000039b", + "\\": "\U0000039e", + "\\": "\U000003a0", + "\\": "\U000003a3", + "\\": "\U000003a5", + "\\": "\U000003a6", + "\\": "\U000003a8", + "\\": "\U000003a9", + "\\": "\U0001d539", + "\\": "\U00002102", + "\\": "\U00002115", + "\\": "\U0000211a", + "\\": "\U0000211d", + "\\": "\U00002124", + "\\": "\U00002190", + "\\": "\U000027f5", + "\\": "\U00002192", + "\\": "\U000027f6", + "\\": "\U000021d0", + "\\": "\U000027f8", + "\\": "\U000021d2", + "\\": "\U000027f9", + "\\": "\U00002194", + "\\": "\U000027f7", + "\\": "\U000021d4", + "\\": "\U000027fa", + "\\": "\U000021a6", + "\\": "\U000027fc", + "\\": "\U00002500", + "\\": "\U00002550", + "\\": "\U000021a9", + "\\": "\U000021aa", + "\\": "\U000021bd", + "\\": "\U000021c1", + "\\": "\U000021bc", + "\\": "\U000021c0", + "\\": "\U000021cc", + "\\": "\U0000219d", + "\\": "\U000021c3", + "\\": "\U000021c2", + "\\": "\U000021bf", + "\\": "\U000021be", + "\\": "\U000021be", + "\\": "\U00002237", + "\\": "\U00002191", + "\\": "\U000021d1", + "\\": "\U00002193", + "\\": "\U000021d3", + "\\": "\U00002195", + "\\": "\U000021d5", + "\\": "\U000027e8", + "\\": "\U000027e9", + "\\": "\U00002308", + "\\": "\U00002309", + "\\": "\U0000230a", + "\\": "\U0000230b", + "\\": "\U00002987", + "\\": "\U00002988", + "\\": "\U000027e6", + "\\": "\U000027e7", + "\\": "\U00002983", + "\\": "\U00002984", + "\\": "\U000000ab", + "\\": "\U000000bb", + "\\": "\U000022a5", + "\\": "\U000022a4", + "\\": "\U00002227", + "\\": "\U000022c0", + "\\": "\U00002228", + "\\": "\U000022c1", + "\\": "\U00002200", + "\\": "\U00002203", + "\\": "\U00002204", + "\\": "\U000000ac", + "\\": "\U000025a1", + "\\": "\U000025c7", + "\\": "\U000022a2", + "\\": "\U000022a8", + "\\": "\U000022a9", + "\\": "\U000022ab", + "\\": "\U000022a3", + "\\": "\U0000221a", + "\\": "\U00002264", + "\\": "\U00002265", + "\\": "\U0000226a", + "\\": "\U0000226b", + "\\": "\U00002272", + "\\": "\U00002273", + "\\": "\U00002a85", + "\\": "\U00002a86", + "\\": "\U00002208", + "\\": "\U00002209", + "\\": "\U00002282", + "\\": "\U00002283", + "\\": "\U00002286", + "\\": "\U00002287", + "\\": "\U0000228f", + "\\": "\U00002290", + "\\": "\U00002291", + "\\": "\U00002292", + "\\": "\U00002229", + "\\": "\U000022c2", + "\\": "\U0000222a", + "\\": "\U000022c3", + "\\": "\U00002294", + "\\": "\U00002a06", + "\\": "\U00002293", + "\\": "\U00002a05", + "\\": "\U00002216", + "\\": "\U0000221d", + "\\": "\U0000228e", + "\\": "\U00002a04", + "\\": "\U00002260", + "\\": "\U0000223c", + "\\": "\U00002250", + "\\": "\U00002243", + "\\": "\U00002248", + "\\": "\U0000224d", + "\\": "\U00002245", + "\\": "\U00002323", + "\\": "\U00002261", + "\\": "\U00002322", + "\\": "\U000022c8", + "\\": "\U00002a1d", + "\\": "\U0000227a", + "\\": "\U0000227b", + "\\": "\U0000227c", + "\\": "\U0000227d", + "\\": "\U00002225", + "\\": "\U000000a6", + "\\": "\U000000b1", + "\\": "\U00002213", + "\\": "\U000000d7", + "\\
": "\U000000f7", + "\\": "\U000022c5", + "\\": "\U000022c6", + "\\": "\U00002219", + "\\": "\U00002218", + "\\": "\U00002020", + "\\": "\U00002021", + "\\": "\U000022b2", + "\\": "\U000022b3", + "\\": "\U000022b4", + "\\": "\U000022b5", + "\\": "\U000025c3", + "\\": "\U000025b9", + "\\": "\U000025b3", + "\\": "\U0000225c", + "\\": "\U00002295", + "\\": "\U00002a01", + "\\": "\U00002297", + "\\": "\U00002a02", + "\\": "\U00002299", + "\\": "\U00002a00", + "\\": "\U00002296", + "\\": "\U00002298", + "\\": "\U00002026", + "\\": "\U000022ef", + "\\": "\U00002211", + "\\": "\U0000220f", + "\\": "\U00002210", + "\\": "\U0000221e", + "\\": "\U0000222b", + "\\": "\U0000222e", + "\\": "\U00002663", + "\\": "\U00002662", + "\\": "\U00002661", + "\\": "\U00002660", + "\\": "\U00002135", + "\\": "\U00002205", + "\\": "\U00002207", + "\\": "\U00002202", + "\\": "\U0000266d", + "\\": "\U0000266e", + "\\": "\U0000266f", + "\\": "\U00002220", + "\\": "\U000000a9", + "\\": "\U000000ae", + "\\": "\U000000ad", + "\\": "\U000000af", + "\\": "\U000000bc", + "\\": "\U000000bd", + "\\": "\U000000be", + "\\": "\U000000aa", + "\\": "\U000000ba", + "\\
": "\U000000a7", + "\\": "\U000000b6", + "\\": "\U000000a1", + "\\": "\U000000bf", + "\\": "\U000020ac", + "\\": "\U000000a3", + "\\": "\U000000a5", + "\\": "\U000000a2", + "\\": "\U000000a4", + "\\": "\U000000b0", + "\\": "\U00002a3f", + "\\": "\U00002127", + "\\": "\U000025ca", + "\\": "\U00002118", + "\\": "\U00002240", + "\\": "\U000022c4", + "\\": "\U000000b4", + "\\": "\U00000131", + "\\": "\U000000a8", + "\\": "\U000000b8", + "\\": "\U000002dd", + "\\": "\U000003f5", + "\\": "\U000023ce", + "\\": "\U00002039", + "\\": "\U0000203a", + "\\": "\U00002302", + "\\<^sub>": "\U000021e9", + "\\<^sup>": "\U000021e7", + "\\<^bold>": "\U00002759", + "\\<^bsub>": "\U000021d8", + "\\<^esub>": "\U000021d9", + "\\<^bsup>": "\U000021d7", + "\\<^esup>": "\U000021d6", } - lang_map = {'isabelle' : isabelle_symbols, 'latex' : latex_symbols} + lang_map = {"isabelle": isabelle_symbols, "latex": latex_symbols} def __init__(self, **options): Filter.__init__(self, **options) - lang = get_choice_opt(options, 'lang', - ['isabelle', 'latex'], 'isabelle') + lang = get_choice_opt(options, "lang", ["isabelle", "latex"], "isabelle") self.symbols = self.lang_map[lang] def filter(self, lexer, stream): @@ -700,8 +710,9 @@ class KeywordCaseFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - case = get_choice_opt(options, 'case', - ['lower', 'upper', 'capitalize'], 'lower') + case = get_choice_opt( + options, "case", ["lower", "upper", "capitalize"], "lower" + ) self.convert = getattr(str, case) def filter(self, lexer, stream): @@ -738,8 +749,8 @@ class NameHighlightFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - self.names = set(get_list_opt(options, 'names', [])) - tokentype = options.get('tokentype') + self.names = set(get_list_opt(options, "names", [])) + tokentype = options.get("tokentype") if tokentype: self.tokentype = string_to_tokentype(tokentype) else: @@ -771,13 +782,13 @@ class RaiseOnErrorTokenFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - self.exception = options.get('excclass', ErrorToken) + self.exception = options.get("excclass", ErrorToken) try: # issubclass() will raise TypeError if first argument is not a class if not issubclass(self.exception, Exception): raise TypeError except TypeError: - raise OptionError('excclass option is not an exception class') + raise OptionError("excclass option is not an exception class") def filter(self, lexer, stream): for ttype, value in stream: @@ -818,50 +829,49 @@ class VisibleWhitespaceFilter(Filter): def __init__(self, **options): Filter.__init__(self, **options) - for name, default in [('spaces', '·'), - ('tabs', '»'), - ('newlines', '¶')]: + for name, default in [("spaces", "·"), ("tabs", "»"), ("newlines", "¶")]: opt = options.get(name, False) if isinstance(opt, str) and len(opt) == 1: setattr(self, name, opt) else: - setattr(self, name, (opt and default or '')) - tabsize = get_int_opt(options, 'tabsize', 8) + setattr(self, name, (opt and default or "")) + tabsize = get_int_opt(options, "tabsize", 8) if self.tabs: - self.tabs += ' ' * (tabsize - 1) + self.tabs += " " * (tabsize - 1) if self.newlines: - self.newlines += '\n' - self.wstt = get_bool_opt(options, 'wstokentype', True) + self.newlines += "\n" + self.wstt = get_bool_opt(options, "wstokentype", True) def filter(self, lexer, stream): if self.wstt: - spaces = self.spaces or ' ' - tabs = self.tabs or '\t' - newlines = self.newlines or '\n' - regex = re.compile(r'\s') + spaces = self.spaces or " " + tabs = self.tabs or "\t" + newlines = self.newlines or "\n" + regex = re.compile(r"\s") def replacefunc(wschar): - if wschar == ' ': + if wschar == " ": return spaces - elif wschar == '\t': + elif wschar == "\t": return tabs - elif wschar == '\n': + elif wschar == "\n": return newlines return wschar for ttype, value in stream: - yield from _replace_special(ttype, value, regex, Whitespace, - replacefunc) + yield from _replace_special( + ttype, value, regex, Whitespace, replacefunc + ) else: spaces, tabs, newlines = self.spaces, self.tabs, self.newlines # simpler processing for ttype, value in stream: if spaces: - value = value.replace(' ', spaces) + value = value.replace(" ", spaces) if tabs: - value = value.replace('\t', tabs) + value = value.replace("\t", tabs) if newlines: - value = value.replace('\n', newlines) + value = value.replace("\n", newlines) yield ttype, value @@ -879,28 +889,29 @@ class GobbleFilter(Filter): .. versionadded:: 1.2 """ + def __init__(self, **options): Filter.__init__(self, **options) - self.n = get_int_opt(options, 'n', 0) + self.n = get_int_opt(options, "n", 0) def gobble(self, value, left): if left < len(value): return value[left:], 0 else: - return '', left - len(value) + return "", left - len(value) def filter(self, lexer, stream): n = self.n left = n # How many characters left to gobble. for ttype, value in stream: # Remove ``left`` tokens from first line, ``n`` from all others. - parts = value.split('\n') - (parts[0], left) = self.gobble(parts[0], left) + parts = value.split("\n") + parts[0], left = self.gobble(parts[0], left) for i in range(1, len(parts)): - (parts[i], left) = self.gobble(parts[i], n) - value = '\n'.join(parts) + parts[i], left = self.gobble(parts[i], n) + value = "\n".join(parts) - if value != '': + if value != "": yield ttype, value @@ -910,6 +921,7 @@ class TokenMergeFilter(Filter): .. versionadded:: 1.2 """ + def __init__(self, **options): Filter.__init__(self, **options) @@ -929,12 +941,12 @@ class TokenMergeFilter(Filter): FILTERS = { - 'codetagify': CodeTagFilter, - 'keywordcase': KeywordCaseFilter, - 'highlight': NameHighlightFilter, - 'raiseonerror': RaiseOnErrorTokenFilter, - 'whitespace': VisibleWhitespaceFilter, - 'gobble': GobbleFilter, - 'tokenmerge': TokenMergeFilter, - 'symbols': SymbolFilter, + "codetagify": CodeTagFilter, + "keywordcase": KeywordCaseFilter, + "highlight": NameHighlightFilter, + "raiseonerror": RaiseOnErrorTokenFilter, + "whitespace": VisibleWhitespaceFilter, + "gobble": GobbleFilter, + "tokenmerge": TokenMergeFilter, + "symbols": SymbolFilter, } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatter.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatter.py index a20d303..21f3838 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatter.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatter.py @@ -1,11 +1,11 @@ """ - pygments.formatter - ~~~~~~~~~~~~~~~~~~ +pygments.formatter +~~~~~~~~~~~~~~~~~~ - Base formatter class. +Base formatter class. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import codecs @@ -13,7 +13,7 @@ import codecs from pygments.util import get_bool_opt from pygments.styles import get_style_by_name -__all__ = ['Formatter'] +__all__ = ["Formatter"] def _lookup_style(style): @@ -86,17 +86,17 @@ class Formatter: and if you override it, you should first process your own options, then call the base class implementation. """ - self.style = _lookup_style(options.get('style', 'default')) - self.full = get_bool_opt(options, 'full', False) - self.title = options.get('title', '') - self.encoding = options.get('encoding', None) or None - if self.encoding in ('guess', 'chardet'): + self.style = _lookup_style(options.get("style", "default")) + self.full = get_bool_opt(options, "full", False) + self.title = options.get("title", "") + self.encoding = options.get("encoding", None) or None + if self.encoding in ("guess", "chardet"): # can happen for e.g. pygmentize -O encoding=guess - self.encoding = 'utf-8' - self.encoding = options.get('outencoding') or self.encoding + self.encoding = "utf-8" + self.encoding = options.get("outencoding") or self.encoding self.options = options - def get_style_defs(self, arg=''): + def get_style_defs(self, arg=""): """ This method must return statements or declarations suitable to define the current style for subsequent highlighted text (e.g. CSS classes @@ -109,7 +109,7 @@ class Formatter: This method is called by the ``-S`` :doc:`command-line option `, the `arg` is then given by the ``-a`` option. """ - return '' + return "" def format(self, tokensource, outfile): """ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/__init__.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/__init__.py index b24931c..6fb35f6 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/__init__.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/__init__.py @@ -1,11 +1,11 @@ """ - pygments.formatters - ~~~~~~~~~~~~~~~~~~~ +pygments.formatters +~~~~~~~~~~~~~~~~~~~ - Pygments formatters. +Pygments formatters. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -18,8 +18,12 @@ from pygments.formatters._mapping import FORMATTERS from pygments.plugin import find_plugin_formatters from pygments.util import ClassNotFound -__all__ = ['get_formatter_by_name', 'get_formatter_for_filename', - 'get_all_formatters', 'load_formatter_from_file'] + list(FORMATTERS) +__all__ = [ + "get_formatter_by_name", + "get_formatter_for_filename", + "get_all_formatters", + "load_formatter_from_file", +] + list(FORMATTERS) _formatter_cache = {} # classes by name _pattern_cache = {} @@ -35,7 +39,7 @@ def _fn_matches(fn, glob): def _load_formatters(module_name): """Load a formatter (and all others in the module too).""" - mod = __import__(module_name, None, None, ['__all__']) + mod = __import__(module_name, None, None, ["__all__"]) for formatter_name in mod.__all__: cls = getattr(mod, formatter_name) _formatter_cache[cls.name] = cls @@ -99,20 +103,20 @@ def load_formatter_from_file(filename, formattername="CustomFormatter", **option try: # This empty dict will contain the namespace for the exec'd file custom_namespace = {} - with open(filename, 'rb') as f: + with open(filename, "rb") as f: exec(f.read(), custom_namespace) # Retrieve the class `formattername` from that namespace if formattername not in custom_namespace: - raise ClassNotFound(f'no valid {formattername} class found in {filename}') + raise ClassNotFound(f"no valid {formattername} class found in {filename}") formatter_class = custom_namespace[formattername] # And finally instantiate it with the options return formatter_class(**options) except OSError as err: - raise ClassNotFound(f'cannot read {filename}: {err}') + raise ClassNotFound(f"cannot read {filename}: {err}") except ClassNotFound: raise except Exception as err: - raise ClassNotFound(f'error when loading custom formatter: {err}') + raise ClassNotFound(f"error when loading custom formatter: {err}") def get_formatter_for_filename(fn, **options): diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/_mapping.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/_mapping.py index 72ca840..80188ab 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/_mapping.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/_mapping.py @@ -2,22 +2,130 @@ # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead. FORMATTERS = { - 'BBCodeFormatter': ('pygments.formatters.bbcode', 'BBCode', ('bbcode', 'bb'), (), 'Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.'), - 'BmpImageFormatter': ('pygments.formatters.img', 'img_bmp', ('bmp', 'bitmap'), ('*.bmp',), 'Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'GifImageFormatter': ('pygments.formatters.img', 'img_gif', ('gif',), ('*.gif',), 'Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'GroffFormatter': ('pygments.formatters.groff', 'groff', ('groff', 'troff', 'roff'), (), 'Format tokens with groff escapes to change their color and font style.'), - 'HtmlFormatter': ('pygments.formatters.html', 'HTML', ('html',), ('*.html', '*.htm'), "Format tokens as HTML 4 ```` tags. By default, the content is enclosed in a ``
`` tag, itself wrapped in a ``
`` tag (but see the `nowrap` option). The ``
``'s CSS class can be set by the `cssclass` option."), - 'IRCFormatter': ('pygments.formatters.irc', 'IRC', ('irc', 'IRC'), (), 'Format tokens with IRC color sequences'), - 'ImageFormatter': ('pygments.formatters.img', 'img', ('img', 'IMG', 'png'), ('*.png',), 'Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'JpgImageFormatter': ('pygments.formatters.img', 'img_jpg', ('jpg', 'jpeg'), ('*.jpg',), 'Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.'), - 'LatexFormatter': ('pygments.formatters.latex', 'LaTeX', ('latex', 'tex'), ('*.tex',), 'Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.'), - 'NullFormatter': ('pygments.formatters.other', 'Text only', ('text', 'null'), ('*.txt',), 'Output the text unchanged without any formatting.'), - 'PangoMarkupFormatter': ('pygments.formatters.pangomarkup', 'Pango Markup', ('pango', 'pangomarkup'), (), 'Format tokens as Pango Markup code. It can then be rendered to an SVG.'), - 'RawTokenFormatter': ('pygments.formatters.other', 'Raw tokens', ('raw', 'tokens'), ('*.raw',), 'Format tokens as a raw representation for storing token streams.'), - 'RtfFormatter': ('pygments.formatters.rtf', 'RTF', ('rtf',), ('*.rtf',), 'Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.'), - 'SvgFormatter': ('pygments.formatters.svg', 'SVG', ('svg',), ('*.svg',), 'Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ```` element with explicit ``x`` and ``y`` coordinates containing ```` elements with the individual token styles.'), - 'Terminal256Formatter': ('pygments.formatters.terminal256', 'Terminal256', ('terminal256', 'console256', '256'), (), 'Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TerminalFormatter': ('pygments.formatters.terminal', 'Terminal', ('terminal', 'console'), (), 'Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TerminalTrueColorFormatter': ('pygments.formatters.terminal256', 'TerminalTrueColor', ('terminal16m', 'console16m', '16m'), (), 'Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.'), - 'TestcaseFormatter': ('pygments.formatters.other', 'Testcase', ('testcase',), (), 'Format tokens as appropriate for a new testcase.'), + "BBCodeFormatter": ( + "pygments.formatters.bbcode", + "BBCode", + ("bbcode", "bb"), + (), + "Format tokens with BBcodes. These formatting codes are used by many bulletin boards, so you can highlight your sourcecode with pygments before posting it there.", + ), + "BmpImageFormatter": ( + "pygments.formatters.img", + "img_bmp", + ("bmp", "bitmap"), + ("*.bmp",), + "Create a bitmap image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "GifImageFormatter": ( + "pygments.formatters.img", + "img_gif", + ("gif",), + ("*.gif",), + "Create a GIF image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "GroffFormatter": ( + "pygments.formatters.groff", + "groff", + ("groff", "troff", "roff"), + (), + "Format tokens with groff escapes to change their color and font style.", + ), + "HtmlFormatter": ( + "pygments.formatters.html", + "HTML", + ("html",), + ("*.html", "*.htm"), + "Format tokens as HTML 4 ```` tags. By default, the content is enclosed in a ``
`` tag, itself wrapped in a ``
`` tag (but see the `nowrap` option). The ``
``'s CSS class can be set by the `cssclass` option.", + ), + "IRCFormatter": ( + "pygments.formatters.irc", + "IRC", + ("irc", "IRC"), + (), + "Format tokens with IRC color sequences", + ), + "ImageFormatter": ( + "pygments.formatters.img", + "img", + ("img", "IMG", "png"), + ("*.png",), + "Create a PNG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "JpgImageFormatter": ( + "pygments.formatters.img", + "img_jpg", + ("jpg", "jpeg"), + ("*.jpg",), + "Create a JPEG image from source code. This uses the Python Imaging Library to generate a pixmap from the source code.", + ), + "LatexFormatter": ( + "pygments.formatters.latex", + "LaTeX", + ("latex", "tex"), + ("*.tex",), + "Format tokens as LaTeX code. This needs the `fancyvrb` and `color` standard packages.", + ), + "NullFormatter": ( + "pygments.formatters.other", + "Text only", + ("text", "null"), + ("*.txt",), + "Output the text unchanged without any formatting.", + ), + "PangoMarkupFormatter": ( + "pygments.formatters.pangomarkup", + "Pango Markup", + ("pango", "pangomarkup"), + (), + "Format tokens as Pango Markup code. It can then be rendered to an SVG.", + ), + "RawTokenFormatter": ( + "pygments.formatters.other", + "Raw tokens", + ("raw", "tokens"), + ("*.raw",), + "Format tokens as a raw representation for storing token streams.", + ), + "RtfFormatter": ( + "pygments.formatters.rtf", + "RTF", + ("rtf",), + ("*.rtf",), + "Format tokens as RTF markup. This formatter automatically outputs full RTF documents with color information and other useful stuff. Perfect for Copy and Paste into Microsoft(R) Word(R) documents.", + ), + "SvgFormatter": ( + "pygments.formatters.svg", + "SVG", + ("svg",), + ("*.svg",), + "Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ```` element with explicit ``x`` and ``y`` coordinates containing ```` elements with the individual token styles.", + ), + "Terminal256Formatter": ( + "pygments.formatters.terminal256", + "Terminal256", + ("terminal256", "console256", "256"), + (), + "Format tokens with ANSI color sequences, for output in a 256-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TerminalFormatter": ( + "pygments.formatters.terminal", + "Terminal", + ("terminal", "console"), + (), + "Format tokens with ANSI color sequences, for output in a text console. Color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TerminalTrueColorFormatter": ( + "pygments.formatters.terminal256", + "TerminalTrueColor", + ("terminal16m", "console16m", "16m"), + (), + "Format tokens with ANSI color sequences, for output in a true-color terminal or console. Like in `TerminalFormatter` color sequences are terminated at newlines, so that paging the output works correctly.", + ), + "TestcaseFormatter": ( + "pygments.formatters.other", + "Testcase", + ("testcase",), + (), + "Format tokens as appropriate for a new testcase.", + ), } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/bbcode.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/bbcode.py index 339edf9..195788f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/bbcode.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/bbcode.py @@ -1,18 +1,17 @@ """ - pygments.formatters.bbcode - ~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.formatters.bbcode +~~~~~~~~~~~~~~~~~~~~~~~~~~ - BBcode formatter. +BBcode formatter. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ - from pygments.formatter import Formatter from pygments.util import get_bool_opt -__all__ = ['BBCodeFormatter'] +__all__ = ["BBCodeFormatter"] class BBCodeFormatter(Formatter): @@ -44,44 +43,45 @@ class BBCodeFormatter(Formatter): If set to true, add a tag to show the code with a monospace font (default: ``false``). """ - name = 'BBCode' - aliases = ['bbcode', 'bb'] + + name = "BBCode" + aliases = ["bbcode", "bb"] filenames = [] def __init__(self, **options): Formatter.__init__(self, **options) - self._code = get_bool_opt(options, 'codetag', False) - self._mono = get_bool_opt(options, 'monofont', False) + self._code = get_bool_opt(options, "codetag", False) + self._mono = get_bool_opt(options, "monofont", False) self.styles = {} self._make_styles() def _make_styles(self): for ttype, ndef in self.style: - start = end = '' - if ndef['color']: - start += '[color=#{}]'.format(ndef['color']) - end = '[/color]' + end - if ndef['bold']: - start += '[b]' - end = '[/b]' + end - if ndef['italic']: - start += '[i]' - end = '[/i]' + end - if ndef['underline']: - start += '[u]' - end = '[/u]' + end + start = end = "" + if ndef["color"]: + start += "[color=#{}]".format(ndef["color"]) + end = "[/color]" + end + if ndef["bold"]: + start += "[b]" + end = "[/b]" + end + if ndef["italic"]: + start += "[i]" + end = "[/i]" + end + if ndef["underline"]: + start += "[u]" + end = "[/u]" + end # there are no common BBcodes for background-color and border self.styles[ttype] = start, end def format_unencoded(self, tokensource, outfile): if self._code: - outfile.write('[code]') + outfile.write("[code]") if self._mono: - outfile.write('[font=monospace]') + outfile.write("[font=monospace]") - lastval = '' + lastval = "" lasttype = None for ttype, value in tokensource: @@ -92,17 +92,17 @@ class BBCodeFormatter(Formatter): else: if lastval: start, end = self.styles[lasttype] - outfile.write(''.join((start, lastval, end))) + outfile.write("".join((start, lastval, end))) lastval = value lasttype = ttype if lastval: start, end = self.styles[lasttype] - outfile.write(''.join((start, lastval, end))) + outfile.write("".join((start, lastval, end))) if self._mono: - outfile.write('[/font]') + outfile.write("[/font]") if self._code: - outfile.write('[/code]') + outfile.write("[/code]") if self._code or self._mono: - outfile.write('\n') + outfile.write("\n") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/groff.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/groff.py index 028fec4..2e413fc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/groff.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/groff.py @@ -1,18 +1,18 @@ """ - pygments.formatters.groff - ~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.formatters.groff +~~~~~~~~~~~~~~~~~~~~~~~~~ - Formatter for groff output. +Formatter for groff output. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import math from pygments.formatter import Formatter from pygments.util import get_bool_opt, get_int_opt -__all__ = ['GroffFormatter'] +__all__ = ["GroffFormatter"] class GroffFormatter(Formatter): @@ -38,76 +38,72 @@ class GroffFormatter(Formatter): (default: ``0``). """ - name = 'groff' - aliases = ['groff','troff','roff'] + name = "groff" + aliases = ["groff", "troff", "roff"] filenames = [] def __init__(self, **options): Formatter.__init__(self, **options) - self.monospaced = get_bool_opt(options, 'monospaced', True) - self.linenos = get_bool_opt(options, 'linenos', False) + self.monospaced = get_bool_opt(options, "monospaced", True) + self.linenos = get_bool_opt(options, "linenos", False) self._lineno = 0 - self.wrap = get_int_opt(options, 'wrap', 0) + self.wrap = get_int_opt(options, "wrap", 0) self._linelen = 0 self.styles = {} self._make_styles() - def _make_styles(self): - regular = '\\f[CR]' if self.monospaced else '\\f[R]' - bold = '\\f[CB]' if self.monospaced else '\\f[B]' - italic = '\\f[CI]' if self.monospaced else '\\f[I]' + regular = "\\f[CR]" if self.monospaced else "\\f[R]" + bold = "\\f[CB]" if self.monospaced else "\\f[B]" + italic = "\\f[CI]" if self.monospaced else "\\f[I]" for ttype, ndef in self.style: - start = end = '' - if ndef['color']: - start += '\\m[{}]'.format(ndef['color']) - end = '\\m[]' + end - if ndef['bold']: + start = end = "" + if ndef["color"]: + start += "\\m[{}]".format(ndef["color"]) + end = "\\m[]" + end + if ndef["bold"]: start += bold end = regular + end - if ndef['italic']: + if ndef["italic"]: start += italic end = regular + end - if ndef['bgcolor']: - start += '\\M[{}]'.format(ndef['bgcolor']) - end = '\\M[]' + end + if ndef["bgcolor"]: + start += "\\M[{}]".format(ndef["bgcolor"]) + end = "\\M[]" + end self.styles[ttype] = start, end - def _define_colors(self, outfile): colors = set() for _, ndef in self.style: - if ndef['color'] is not None: - colors.add(ndef['color']) + if ndef["color"] is not None: + colors.add(ndef["color"]) for color in sorted(colors): - outfile.write('.defcolor ' + color + ' rgb #' + color + '\n') - + outfile.write(".defcolor " + color + " rgb #" + color + "\n") def _write_lineno(self, outfile): self._lineno += 1 - outfile.write("%s% 4d " % (self._lineno != 1 and '\n' or '', self._lineno)) - + outfile.write("%s% 4d " % (self._lineno != 1 and "\n" or "", self._lineno)) def _wrap_line(self, line): - length = len(line.rstrip('\n')) - space = ' ' if self.linenos else '' - newline = '' + length = len(line.rstrip("\n")) + space = " " if self.linenos else "" + newline = "" if length > self.wrap: for i in range(0, math.floor(length / self.wrap)): - chunk = line[i*self.wrap:i*self.wrap+self.wrap] - newline += (chunk + '\n' + space) + chunk = line[i * self.wrap : i * self.wrap + self.wrap] + newline += chunk + "\n" + space remainder = length % self.wrap if remainder > 0: - newline += line[-remainder-1:] + newline += line[-remainder - 1 :] self._linelen = remainder elif self._linelen + length > self.wrap: - newline = ('\n' + space) + line + newline = ("\n" + space) + line self._linelen = length else: newline = line @@ -115,30 +111,32 @@ class GroffFormatter(Formatter): return newline - def _escape_chars(self, text): - text = text.replace('\\', '\\[u005C]'). \ - replace('.', '\\[char46]'). \ - replace('\'', '\\[u0027]'). \ - replace('`', '\\[u0060]'). \ - replace('~', '\\[u007E]') + text = ( + text.replace("\\", "\\[u005C]") + .replace(".", "\\[char46]") + .replace("'", "\\[u0027]") + .replace("`", "\\[u0060]") + .replace("~", "\\[u007E]") + ) copy = text for char in copy: if len(char) != len(char.encode()): - uni = char.encode('unicode_escape') \ - .decode()[1:] \ - .replace('x', 'u00') \ + uni = ( + char.encode("unicode_escape") + .decode()[1:] + .replace("x", "u00") .upper() - text = text.replace(char, '\\[u' + uni[1:] + ']') + ) + text = text.replace(char, "\\[u" + uni[1:] + "]") return text - def format_unencoded(self, tokensource, outfile): self._define_colors(outfile) - outfile.write('.nf\n\\f[CR]\n') + outfile.write(".nf\n\\f[CR]\n") if self.linenos: self._write_lineno(outfile) @@ -153,18 +151,18 @@ class GroffFormatter(Formatter): line = self._wrap_line(line) if start and end: - text = self._escape_chars(line.rstrip('\n')) - if text != '': - outfile.write(''.join((start, text, end))) + text = self._escape_chars(line.rstrip("\n")) + if text != "": + outfile.write("".join((start, text, end))) else: - outfile.write(self._escape_chars(line.rstrip('\n'))) + outfile.write(self._escape_chars(line.rstrip("\n"))) - if line.endswith('\n'): + if line.endswith("\n"): if self.linenos: self._write_lineno(outfile) self._linelen = 0 else: - outfile.write('\n') + outfile.write("\n") self._linelen = 0 - outfile.write('\n.fi') + outfile.write("\n.fi") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/html.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/html.py index 4ef1836..f7f2517 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/html.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/formatters/html.py @@ -1,11 +1,11 @@ """ - pygments.formatters.html - ~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.formatters.html +~~~~~~~~~~~~~~~~~~~~~~~~ - Formatter for HTML output. +Formatter for HTML output. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import functools @@ -23,15 +23,15 @@ try: except ImportError: ctags = None -__all__ = ['HtmlFormatter'] +__all__ = ["HtmlFormatter"] _escape_html_table = { - ord('&'): '&', - ord('<'): '<', - ord('>'): '>', - ord('"'): '"', - ord("'"): ''', + ord("&"): "&", + ord("<"): "<", + ord(">"): ">", + ord('"'): """, + ord("'"): "'", } @@ -41,42 +41,42 @@ def escape_html(text, table=_escape_html_table): def webify(color): - if color.startswith('calc') or color.startswith('var'): + if color.startswith("calc") or color.startswith("var"): return color else: # Check if the color can be shortened from 6 to 3 characters color = color.upper() - if (len(color) == 6 and - ( color[0] == color[1] - and color[2] == color[3] - and color[4] == color[5])): - return f'#{color[0]}{color[2]}{color[4]}' + if len(color) == 6 and ( + color[0] == color[1] and color[2] == color[3] and color[4] == color[5] + ): + return f"#{color[0]}{color[2]}{color[4]}" else: - return f'#{color}' + return f"#{color}" def _get_ttype_class(ttype): fname = STANDARD_TYPES.get(ttype) if fname: return fname - aname = '' + aname = "" while fname is None: - aname = '-' + ttype[-1] + aname + aname = "-" + ttype[-1] + aname ttype = ttype.parent fname = STANDARD_TYPES.get(ttype) return fname + aname -CSSFILE_TEMPLATE = '''\ +CSSFILE_TEMPLATE = """\ /* generated by Pygments Copyright 2006-2025 by the Pygments team. Licensed under the BSD license, see LICENSE for details. */ %(styledefs)s -''' +""" -DOC_HEADER = '''\ +DOC_HEADER = ( + """\ ', r'<--', r'<-->', + r"→", + r"↔", + r"↚", + r"↛", + r"↞", + r"↠", + r"↢", + r"↣", + r"↦", + r"↤", + r"↮", + r"⇎", + r"⇍", + r"⇏", + r"⇐", + r"⇒", + r"⇔", + r"⇴", + r"⇶", + r"⇷", + r"⇸", + r"⇹", + r"⇺", + r"⇻", + r"⇼", + r"⇽", + r"⇾", + r"⇿", + r"⟵", + r"⟶", + r"⟷", + r"⟹", + r"⟺", + r"⟻", + r"⟼", + r"⟽", + r"⟾", + r"⟿", + r"⤀", + r"⤁", + r"⤂", + r"⤃", + r"⤄", + r"⤅", + r"⤆", + r"⤇", + r"⤌", + r"⤍", + r"⤎", + r"⤏", + r"⤐", + r"⤑", + r"⤔", + r"⤕", + r"⤖", + r"⤗", + r"⤘", + r"⤝", + r"⤞", + r"⤟", + r"⤠", + r"⥄", + r"⥅", + r"⥆", + r"⥇", + r"⥈", + r"⥊", + r"⥋", + r"⥎", + r"⥐", + r"⥒", + r"⥓", + r"⥖", + r"⥗", + r"⥚", + r"⥛", + r"⥞", + r"⥟", + r"⥢", + r"⥤", + r"⥦", + r"⥧", + r"⥨", + r"⥩", + r"⥪", + r"⥫", + r"⥬", + r"⥭", + r"⥰", + r"⧴", + r"⬱", + r"⬰", + r"⬲", + r"⬳", + r"⬴", + r"⬵", + r"⬶", + r"⬷", + r"⬸", + r"⬹", + r"⬺", + r"⬻", + r"⬼", + r"⬽", + r"⬾", + r"⬿", + r"⭀", + r"⭁", + r"⭂", + r"⭃", + r"⭄", + r"⭇", + r"⭈", + r"⭉", + r"⭊", + r"⭋", + r"⭌", + r"←", + r"→", + r"⇜", + r"⇝", + r"↜", + r"↝", + r"↩", + r"↪", + r"↫", + r"↬", + r"↼", + r"↽", + r"⇀", + r"⇁", + r"⇄", + r"⇆", + r"⇇", + r"⇉", + r"⇋", + r"⇌", + r"⇚", + r"⇛", + r"⇠", + r"⇢", + r"↷", + r"↶", + r"↺", + r"↻", + r"-->", + r"<--", + r"<-->", # prec-comparison - r'>', r'<', r'>=', r'≥', r'<=', r'≤', r'==', r'===', r'≡', r'!=', r'≠', r'!==', - r'≢', r'∈', r'∉', r'∋', r'∌', r'⊆', r'⊈', r'⊂', r'⊄', r'⊊', r'∝', r'∊', r'∍', r'∥', - r'∦', r'∷', r'∺', r'∻', r'∽', r'∾', r'≁', r'≃', r'≂', r'≄', r'≅', r'≆', r'≇', r'≈', - r'≉', r'≊', r'≋', r'≌', r'≍', r'≎', r'≐', r'≑', r'≒', r'≓', r'≖', r'≗', r'≘', r'≙', - r'≚', r'≛', r'≜', r'≝', r'≞', r'≟', r'≣', r'≦', r'≧', r'≨', r'≩', r'≪', r'≫', r'≬', - r'≭', r'≮', r'≯', r'≰', r'≱', r'≲', r'≳', r'≴', r'≵', r'≶', r'≷', r'≸', r'≹', r'≺', - r'≻', r'≼', r'≽', r'≾', r'≿', r'⊀', r'⊁', r'⊃', r'⊅', r'⊇', r'⊉', r'⊋', r'⊏', r'⊐', - r'⊑', r'⊒', r'⊜', r'⊩', r'⊬', r'⊮', r'⊰', r'⊱', r'⊲', r'⊳', r'⊴', r'⊵', r'⊶', r'⊷', - r'⋍', r'⋐', r'⋑', r'⋕', r'⋖', r'⋗', r'⋘', r'⋙', r'⋚', r'⋛', r'⋜', r'⋝', r'⋞', r'⋟', - r'⋠', r'⋡', r'⋢', r'⋣', r'⋤', r'⋥', r'⋦', r'⋧', r'⋨', r'⋩', r'⋪', r'⋫', r'⋬', r'⋭', - r'⋲', r'⋳', r'⋴', r'⋵', r'⋶', r'⋷', r'⋸', r'⋹', r'⋺', r'⋻', r'⋼', r'⋽', r'⋾', r'⋿', - r'⟈', r'⟉', r'⟒', r'⦷', r'⧀', r'⧁', r'⧡', r'⧣', r'⧤', r'⧥', r'⩦', r'⩧', r'⩪', r'⩫', - r'⩬', r'⩭', r'⩮', r'⩯', r'⩰', r'⩱', r'⩲', r'⩳', r'⩵', r'⩶', r'⩷', r'⩸', r'⩹', r'⩺', - r'⩻', r'⩼', r'⩽', r'⩾', r'⩿', r'⪀', r'⪁', r'⪂', r'⪃', r'⪄', r'⪅', r'⪆', r'⪇', r'⪈', - r'⪉', r'⪊', r'⪋', r'⪌', r'⪍', r'⪎', r'⪏', r'⪐', r'⪑', r'⪒', r'⪓', r'⪔', r'⪕', r'⪖', - r'⪗', r'⪘', r'⪙', r'⪚', r'⪛', r'⪜', r'⪝', r'⪞', r'⪟', r'⪠', r'⪡', r'⪢', r'⪣', r'⪤', - r'⪥', r'⪦', r'⪧', r'⪨', r'⪩', r'⪪', r'⪫', r'⪬', r'⪭', r'⪮', r'⪯', r'⪰', r'⪱', r'⪲', - r'⪳', r'⪴', r'⪵', r'⪶', r'⪷', r'⪸', r'⪹', r'⪺', r'⪻', r'⪼', r'⪽', r'⪾', r'⪿', r'⫀', - r'⫁', r'⫂', r'⫃', r'⫄', r'⫅', r'⫆', r'⫇', r'⫈', r'⫉', r'⫊', r'⫋', r'⫌', r'⫍', r'⫎', - r'⫏', r'⫐', r'⫑', r'⫒', r'⫓', r'⫔', r'⫕', r'⫖', r'⫗', r'⫘', r'⫙', r'⫷', r'⫸', r'⫹', - r'⫺', r'⊢', r'⊣', r'⟂', r'<:', r'>:', + r">", + r"<", + r">=", + r"≥", + r"<=", + r"≤", + r"==", + r"===", + r"≡", + r"!=", + r"≠", + r"!==", + r"≢", + r"∈", + r"∉", + r"∋", + r"∌", + r"⊆", + r"⊈", + r"⊂", + r"⊄", + r"⊊", + r"∝", + r"∊", + r"∍", + r"∥", + r"∦", + r"∷", + r"∺", + r"∻", + r"∽", + r"∾", + r"≁", + r"≃", + r"≂", + r"≄", + r"≅", + r"≆", + r"≇", + r"≈", + r"≉", + r"≊", + r"≋", + r"≌", + r"≍", + r"≎", + r"≐", + r"≑", + r"≒", + r"≓", + r"≖", + r"≗", + r"≘", + r"≙", + r"≚", + r"≛", + r"≜", + r"≝", + r"≞", + r"≟", + r"≣", + r"≦", + r"≧", + r"≨", + r"≩", + r"≪", + r"≫", + r"≬", + r"≭", + r"≮", + r"≯", + r"≰", + r"≱", + r"≲", + r"≳", + r"≴", + r"≵", + r"≶", + r"≷", + r"≸", + r"≹", + r"≺", + r"≻", + r"≼", + r"≽", + r"≾", + r"≿", + r"⊀", + r"⊁", + r"⊃", + r"⊅", + r"⊇", + r"⊉", + r"⊋", + r"⊏", + r"⊐", + r"⊑", + r"⊒", + r"⊜", + r"⊩", + r"⊬", + r"⊮", + r"⊰", + r"⊱", + r"⊲", + r"⊳", + r"⊴", + r"⊵", + r"⊶", + r"⊷", + r"⋍", + r"⋐", + r"⋑", + r"⋕", + r"⋖", + r"⋗", + r"⋘", + r"⋙", + r"⋚", + r"⋛", + r"⋜", + r"⋝", + r"⋞", + r"⋟", + r"⋠", + r"⋡", + r"⋢", + r"⋣", + r"⋤", + r"⋥", + r"⋦", + r"⋧", + r"⋨", + r"⋩", + r"⋪", + r"⋫", + r"⋬", + r"⋭", + r"⋲", + r"⋳", + r"⋴", + r"⋵", + r"⋶", + r"⋷", + r"⋸", + r"⋹", + r"⋺", + r"⋻", + r"⋼", + r"⋽", + r"⋾", + r"⋿", + r"⟈", + r"⟉", + r"⟒", + r"⦷", + r"⧀", + r"⧁", + r"⧡", + r"⧣", + r"⧤", + r"⧥", + r"⩦", + r"⩧", + r"⩪", + r"⩫", + r"⩬", + r"⩭", + r"⩮", + r"⩯", + r"⩰", + r"⩱", + r"⩲", + r"⩳", + r"⩵", + r"⩶", + r"⩷", + r"⩸", + r"⩹", + r"⩺", + r"⩻", + r"⩼", + r"⩽", + r"⩾", + r"⩿", + r"⪀", + r"⪁", + r"⪂", + r"⪃", + r"⪄", + r"⪅", + r"⪆", + r"⪇", + r"⪈", + r"⪉", + r"⪊", + r"⪋", + r"⪌", + r"⪍", + r"⪎", + r"⪏", + r"⪐", + r"⪑", + r"⪒", + r"⪓", + r"⪔", + r"⪕", + r"⪖", + r"⪗", + r"⪘", + r"⪙", + r"⪚", + r"⪛", + r"⪜", + r"⪝", + r"⪞", + r"⪟", + r"⪠", + r"⪡", + r"⪢", + r"⪣", + r"⪤", + r"⪥", + r"⪦", + r"⪧", + r"⪨", + r"⪩", + r"⪪", + r"⪫", + r"⪬", + r"⪭", + r"⪮", + r"⪯", + r"⪰", + r"⪱", + r"⪲", + r"⪳", + r"⪴", + r"⪵", + r"⪶", + r"⪷", + r"⪸", + r"⪹", + r"⪺", + r"⪻", + r"⪼", + r"⪽", + r"⪾", + r"⪿", + r"⫀", + r"⫁", + r"⫂", + r"⫃", + r"⫄", + r"⫅", + r"⫆", + r"⫇", + r"⫈", + r"⫉", + r"⫊", + r"⫋", + r"⫌", + r"⫍", + r"⫎", + r"⫏", + r"⫐", + r"⫑", + r"⫒", + r"⫓", + r"⫔", + r"⫕", + r"⫖", + r"⫗", + r"⫘", + r"⫙", + r"⫷", + r"⫸", + r"⫹", + r"⫺", + r"⊢", + r"⊣", + r"⟂", + r"<:", + r">:", # prec-pipe - '<|', '|>', + "<|", + "|>", # prec-colon - r'…', r'⁝', r'⋮', r'⋱', r'⋰', r'⋯', + r"…", + r"⁝", + r"⋮", + r"⋱", + r"⋰", + r"⋯", # prec-plus - r'+', r'-', r'¦', r'|', r'⊕', r'⊖', r'⊞', r'⊟', r'++', r'∪', r'∨', r'⊔', r'±', r'∓', - r'∔', r'∸', r'≏', r'⊎', r'⊻', r'⊽', r'⋎', r'⋓', r'⧺', r'⧻', r'⨈', r'⨢', r'⨣', r'⨤', - r'⨥', r'⨦', r'⨧', r'⨨', r'⨩', r'⨪', r'⨫', r'⨬', r'⨭', r'⨮', r'⨹', r'⨺', r'⩁', r'⩂', - r'⩅', r'⩊', r'⩌', r'⩏', r'⩐', r'⩒', r'⩔', r'⩖', r'⩗', r'⩛', r'⩝', r'⩡', r'⩢', r'⩣', + r"+", + r"-", + r"¦", + r"|", + r"⊕", + r"⊖", + r"⊞", + r"⊟", + r"++", + r"∪", + r"∨", + r"⊔", + r"±", + r"∓", + r"∔", + r"∸", + r"≏", + r"⊎", + r"⊻", + r"⊽", + r"⋎", + r"⋓", + r"⧺", + r"⧻", + r"⨈", + r"⨢", + r"⨣", + r"⨤", + r"⨥", + r"⨦", + r"⨧", + r"⨨", + r"⨩", + r"⨪", + r"⨫", + r"⨬", + r"⨭", + r"⨮", + r"⨹", + r"⨺", + r"⩁", + r"⩂", + r"⩅", + r"⩊", + r"⩌", + r"⩏", + r"⩐", + r"⩒", + r"⩔", + r"⩖", + r"⩗", + r"⩛", + r"⩝", + r"⩡", + r"⩢", + r"⩣", # prec-times - r'*', r'/', r'⌿', r'÷', r'%', r'&', r'⋅', r'∘', r'×', '\\', r'∩', r'∧', r'⊗', r'⊘', - r'⊙', r'⊚', r'⊛', r'⊠', r'⊡', r'⊓', r'∗', r'∙', r'∤', r'⅋', r'≀', r'⊼', r'⋄', r'⋆', - r'⋇', r'⋉', r'⋊', r'⋋', r'⋌', r'⋏', r'⋒', r'⟑', r'⦸', r'⦼', r'⦾', r'⦿', r'⧶', r'⧷', - r'⨇', r'⨰', r'⨱', r'⨲', r'⨳', r'⨴', r'⨵', r'⨶', r'⨷', r'⨸', r'⨻', r'⨼', r'⨽', r'⩀', - r'⩃', r'⩄', r'⩋', r'⩍', r'⩎', r'⩑', r'⩓', r'⩕', r'⩘', r'⩚', r'⩜', r'⩞', r'⩟', r'⩠', - r'⫛', r'⊍', r'▷', r'⨝', r'⟕', r'⟖', r'⟗', r'⨟', + r"*", + r"/", + r"⌿", + r"÷", + r"%", + r"&", + r"⋅", + r"∘", + r"×", + "\\", + r"∩", + r"∧", + r"⊗", + r"⊘", + r"⊙", + r"⊚", + r"⊛", + r"⊠", + r"⊡", + r"⊓", + r"∗", + r"∙", + r"∤", + r"⅋", + r"≀", + r"⊼", + r"⋄", + r"⋆", + r"⋇", + r"⋉", + r"⋊", + r"⋋", + r"⋌", + r"⋏", + r"⋒", + r"⟑", + r"⦸", + r"⦼", + r"⦾", + r"⦿", + r"⧶", + r"⧷", + r"⨇", + r"⨰", + r"⨱", + r"⨲", + r"⨳", + r"⨴", + r"⨵", + r"⨶", + r"⨷", + r"⨸", + r"⨻", + r"⨼", + r"⨽", + r"⩀", + r"⩃", + r"⩄", + r"⩋", + r"⩍", + r"⩎", + r"⩑", + r"⩓", + r"⩕", + r"⩘", + r"⩚", + r"⩜", + r"⩞", + r"⩟", + r"⩠", + r"⫛", + r"⊍", + r"▷", + r"⨝", + r"⟕", + r"⟖", + r"⟗", + r"⨟", # prec-rational, prec-bitshift - '//', '>>', '<<', '>>>', + "//", + ">>", + "<<", + ">>>", # prec-power - r'^', r'↑', r'↓', r'⇵', r'⟰', r'⟱', r'⤈', r'⤉', r'⤊', r'⤋', r'⤒', r'⤓', r'⥉', r'⥌', - r'⥍', r'⥏', r'⥑', r'⥔', r'⥕', r'⥘', r'⥙', r'⥜', r'⥝', r'⥠', r'⥡', r'⥣', r'⥥', r'⥮', - r'⥯', r'↑', r'↓', + r"^", + r"↑", + r"↓", + r"⇵", + r"⟰", + r"⟱", + r"⤈", + r"⤉", + r"⤊", + r"⤋", + r"⤒", + r"⤓", + r"⥉", + r"⥌", + r"⥍", + r"⥏", + r"⥑", + r"⥔", + r"⥕", + r"⥘", + r"⥙", + r"⥜", + r"⥝", + r"⥠", + r"⥡", + r"⥣", + r"⥥", + r"⥮", + r"⥯", + r"↑", + r"↓", # unary-ops, excluding unary-and-binary-ops - '!', r'¬', r'√', r'∛', r'∜' + "!", + r"¬", + r"√", + r"∛", + r"∜", ] # Generated with the following in Julia v1.6.0-rc1 -''' +""" #!/usr/bin/env julia import REPL.REPLCompletions @@ -104,42 +690,42 @@ for kw in collect(x.keyword for x in REPLCompletions.complete_keyword("")) end sort!(unique!(setdiff!(res, ["true", "false"]))) foreach(x -> println("\'", x, "\',"), res) -''' +""" KEYWORD_LIST = ( - 'baremodule', - 'begin', - 'break', - 'catch', - 'ccall', - 'const', - 'continue', - 'do', - 'else', - 'elseif', - 'end', - 'export', - 'finally', - 'for', - 'function', - 'global', - 'if', - 'import', - 'in', - 'isa', - 'let', - 'local', - 'macro', - 'module', - 'quote', - 'return', - 'try', - 'using', - 'where', - 'while', + "baremodule", + "begin", + "break", + "catch", + "ccall", + "const", + "continue", + "do", + "else", + "elseif", + "end", + "export", + "finally", + "for", + "function", + "global", + "if", + "import", + "in", + "isa", + "let", + "local", + "macro", + "module", + "quote", + "return", + "try", + "using", + "where", + "while", ) # Generated with the following in Julia v1.6.0-rc1 -''' +""" #!/usr/bin/env julia import REPL.REPLCompletions @@ -156,201 +742,201 @@ for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent end sort!(unique!(res)) foreach(x -> println("\'", x, "\',"), res) -''' +""" BUILTIN_LIST = ( - 'AbstractArray', - 'AbstractChannel', - 'AbstractChar', - 'AbstractDict', - 'AbstractDisplay', - 'AbstractFloat', - 'AbstractIrrational', - 'AbstractMatch', - 'AbstractMatrix', - 'AbstractPattern', - 'AbstractRange', - 'AbstractSet', - 'AbstractString', - 'AbstractUnitRange', - 'AbstractVecOrMat', - 'AbstractVector', - 'Any', - 'ArgumentError', - 'Array', - 'AssertionError', - 'BigFloat', - 'BigInt', - 'BitArray', - 'BitMatrix', - 'BitSet', - 'BitVector', - 'Bool', - 'BoundsError', - 'CapturedException', - 'CartesianIndex', - 'CartesianIndices', - 'Cchar', - 'Cdouble', - 'Cfloat', - 'Channel', - 'Char', - 'Cint', - 'Cintmax_t', - 'Clong', - 'Clonglong', - 'Cmd', - 'Colon', - 'Complex', - 'ComplexF16', - 'ComplexF32', - 'ComplexF64', - 'ComposedFunction', - 'CompositeException', - 'Condition', - 'Cptrdiff_t', - 'Cshort', - 'Csize_t', - 'Cssize_t', - 'Cstring', - 'Cuchar', - 'Cuint', - 'Cuintmax_t', - 'Culong', - 'Culonglong', - 'Cushort', - 'Cvoid', - 'Cwchar_t', - 'Cwstring', - 'DataType', - 'DenseArray', - 'DenseMatrix', - 'DenseVecOrMat', - 'DenseVector', - 'Dict', - 'DimensionMismatch', - 'Dims', - 'DivideError', - 'DomainError', - 'EOFError', - 'Enum', - 'ErrorException', - 'Exception', - 'ExponentialBackOff', - 'Expr', - 'Float16', - 'Float32', - 'Float64', - 'Function', - 'GlobalRef', - 'HTML', - 'IO', - 'IOBuffer', - 'IOContext', - 'IOStream', - 'IdDict', - 'IndexCartesian', - 'IndexLinear', - 'IndexStyle', - 'InexactError', - 'InitError', - 'Int', - 'Int128', - 'Int16', - 'Int32', - 'Int64', - 'Int8', - 'Integer', - 'InterruptException', - 'InvalidStateException', - 'Irrational', - 'KeyError', - 'LinRange', - 'LineNumberNode', - 'LinearIndices', - 'LoadError', - 'MIME', - 'Matrix', - 'Method', - 'MethodError', - 'Missing', - 'MissingException', - 'Module', - 'NTuple', - 'NamedTuple', - 'Nothing', - 'Number', - 'OrdinalRange', - 'OutOfMemoryError', - 'OverflowError', - 'Pair', - 'PartialQuickSort', - 'PermutedDimsArray', - 'Pipe', - 'ProcessFailedException', - 'Ptr', - 'QuoteNode', - 'Rational', - 'RawFD', - 'ReadOnlyMemoryError', - 'Real', - 'ReentrantLock', - 'Ref', - 'Regex', - 'RegexMatch', - 'RoundingMode', - 'SegmentationFault', - 'Set', - 'Signed', - 'Some', - 'StackOverflowError', - 'StepRange', - 'StepRangeLen', - 'StridedArray', - 'StridedMatrix', - 'StridedVecOrMat', - 'StridedVector', - 'String', - 'StringIndexError', - 'SubArray', - 'SubString', - 'SubstitutionString', - 'Symbol', - 'SystemError', - 'Task', - 'TaskFailedException', - 'Text', - 'TextDisplay', - 'Timer', - 'Tuple', - 'Type', - 'TypeError', - 'TypeVar', - 'UInt', - 'UInt128', - 'UInt16', - 'UInt32', - 'UInt64', - 'UInt8', - 'UndefInitializer', - 'UndefKeywordError', - 'UndefRefError', - 'UndefVarError', - 'Union', - 'UnionAll', - 'UnitRange', - 'Unsigned', - 'Val', - 'Vararg', - 'VecElement', - 'VecOrMat', - 'Vector', - 'VersionNumber', - 'WeakKeyDict', - 'WeakRef', + "AbstractArray", + "AbstractChannel", + "AbstractChar", + "AbstractDict", + "AbstractDisplay", + "AbstractFloat", + "AbstractIrrational", + "AbstractMatch", + "AbstractMatrix", + "AbstractPattern", + "AbstractRange", + "AbstractSet", + "AbstractString", + "AbstractUnitRange", + "AbstractVecOrMat", + "AbstractVector", + "Any", + "ArgumentError", + "Array", + "AssertionError", + "BigFloat", + "BigInt", + "BitArray", + "BitMatrix", + "BitSet", + "BitVector", + "Bool", + "BoundsError", + "CapturedException", + "CartesianIndex", + "CartesianIndices", + "Cchar", + "Cdouble", + "Cfloat", + "Channel", + "Char", + "Cint", + "Cintmax_t", + "Clong", + "Clonglong", + "Cmd", + "Colon", + "Complex", + "ComplexF16", + "ComplexF32", + "ComplexF64", + "ComposedFunction", + "CompositeException", + "Condition", + "Cptrdiff_t", + "Cshort", + "Csize_t", + "Cssize_t", + "Cstring", + "Cuchar", + "Cuint", + "Cuintmax_t", + "Culong", + "Culonglong", + "Cushort", + "Cvoid", + "Cwchar_t", + "Cwstring", + "DataType", + "DenseArray", + "DenseMatrix", + "DenseVecOrMat", + "DenseVector", + "Dict", + "DimensionMismatch", + "Dims", + "DivideError", + "DomainError", + "EOFError", + "Enum", + "ErrorException", + "Exception", + "ExponentialBackOff", + "Expr", + "Float16", + "Float32", + "Float64", + "Function", + "GlobalRef", + "HTML", + "IO", + "IOBuffer", + "IOContext", + "IOStream", + "IdDict", + "IndexCartesian", + "IndexLinear", + "IndexStyle", + "InexactError", + "InitError", + "Int", + "Int128", + "Int16", + "Int32", + "Int64", + "Int8", + "Integer", + "InterruptException", + "InvalidStateException", + "Irrational", + "KeyError", + "LinRange", + "LineNumberNode", + "LinearIndices", + "LoadError", + "MIME", + "Matrix", + "Method", + "MethodError", + "Missing", + "MissingException", + "Module", + "NTuple", + "NamedTuple", + "Nothing", + "Number", + "OrdinalRange", + "OutOfMemoryError", + "OverflowError", + "Pair", + "PartialQuickSort", + "PermutedDimsArray", + "Pipe", + "ProcessFailedException", + "Ptr", + "QuoteNode", + "Rational", + "RawFD", + "ReadOnlyMemoryError", + "Real", + "ReentrantLock", + "Ref", + "Regex", + "RegexMatch", + "RoundingMode", + "SegmentationFault", + "Set", + "Signed", + "Some", + "StackOverflowError", + "StepRange", + "StepRangeLen", + "StridedArray", + "StridedMatrix", + "StridedVecOrMat", + "StridedVector", + "String", + "StringIndexError", + "SubArray", + "SubString", + "SubstitutionString", + "Symbol", + "SystemError", + "Task", + "TaskFailedException", + "Text", + "TextDisplay", + "Timer", + "Tuple", + "Type", + "TypeError", + "TypeVar", + "UInt", + "UInt128", + "UInt16", + "UInt32", + "UInt64", + "UInt8", + "UndefInitializer", + "UndefKeywordError", + "UndefRefError", + "UndefVarError", + "Union", + "UnionAll", + "UnitRange", + "Unsigned", + "Val", + "Vararg", + "VecElement", + "VecOrMat", + "Vector", + "VersionNumber", + "WeakKeyDict", + "WeakRef", ) # Generated with the following in Julia v1.6.0-rc1 -''' +""" #!/usr/bin/env julia import REPL.REPLCompletions @@ -367,45 +953,45 @@ for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent end sort!(unique!(res)) foreach(x -> println("\'", x, "\',"), res) -''' +""" LITERAL_LIST = ( - 'ARGS', - 'C_NULL', - 'DEPOT_PATH', - 'ENDIAN_BOM', - 'ENV', - 'Inf', - 'Inf16', - 'Inf32', - 'Inf64', - 'InsertionSort', - 'LOAD_PATH', - 'MergeSort', - 'NaN', - 'NaN16', - 'NaN32', - 'NaN64', - 'PROGRAM_FILE', - 'QuickSort', - 'RoundDown', - 'RoundFromZero', - 'RoundNearest', - 'RoundNearestTiesAway', - 'RoundNearestTiesUp', - 'RoundToZero', - 'RoundUp', - 'VERSION', - 'devnull', - 'false', - 'im', - 'missing', - 'nothing', - 'pi', - 'stderr', - 'stdin', - 'stdout', - 'true', - 'undef', - 'π', - 'ℯ', + "ARGS", + "C_NULL", + "DEPOT_PATH", + "ENDIAN_BOM", + "ENV", + "Inf", + "Inf16", + "Inf32", + "Inf64", + "InsertionSort", + "LOAD_PATH", + "MergeSort", + "NaN", + "NaN16", + "NaN32", + "NaN64", + "PROGRAM_FILE", + "QuickSort", + "RoundDown", + "RoundFromZero", + "RoundNearest", + "RoundNearestTiesAway", + "RoundNearestTiesUp", + "RoundToZero", + "RoundUp", + "VERSION", + "devnull", + "false", + "im", + "missing", + "nothing", + "pi", + "stderr", + "stdin", + "stdout", + "true", + "undef", + "π", + "ℯ", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lasso_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lasso_builtins.py index a559847..a6e9d0d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lasso_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lasso_builtins.py @@ -1,5326 +1,5326 @@ """ - pygments.lexers._lasso_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._lasso_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Built-in Lasso types, traits, methods, and members. +Built-in Lasso types, traits, methods, and members. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ BUILTINS = { - 'Types': ( - 'array', - 'atbegin', - 'boolean', - 'bson_iter', - 'bson', - 'bytes_document_body', - 'bytes', - 'cache_server_element', - 'cache_server', - 'capture', - 'client_address', - 'client_ip', - 'component_container', - 'component_render_state', - 'component', - 'curl', - 'curltoken', - 'currency', - 'custom', - 'data_document', - 'database_registry', - 'date', - 'dateandtime', - 'dbgp_packet', - 'dbgp_server', - 'debugging_stack', - 'decimal', - 'delve', - 'dir', - 'dirdesc', - 'dns_response', - 'document_base', - 'document_body', - 'document_header', - 'dsinfo', - 'duration', - 'eacher', - 'email_compose', - 'email_parse', - 'email_pop', - 'email_queue_impl_base', - 'email_queue_impl', - 'email_smtp', - 'email_stage_impl_base', - 'email_stage_impl', - 'fastcgi_each_fcgi_param', - 'fastcgi_server', - 'fcgi_record', - 'fcgi_request', - 'file', - 'filedesc', - 'filemaker_datasource', - 'generateforeachkeyed', - 'generateforeachunkeyed', - 'generateseries', - 'hash_map', - 'html_atomic_element', - 'html_attr', - 'html_base', - 'html_binary', - 'html_br', - 'html_cdata', - 'html_container_element', - 'html_div', - 'html_document_body', - 'html_document_head', - 'html_eol', - 'html_fieldset', - 'html_form', - 'html_h1', - 'html_h2', - 'html_h3', - 'html_h4', - 'html_h5', - 'html_h6', - 'html_hr', - 'html_img', - 'html_input', - 'html_json', - 'html_label', - 'html_legend', - 'html_link', - 'html_meta', - 'html_object', - 'html_option', - 'html_raw', - 'html_script', - 'html_select', - 'html_span', - 'html_style', - 'html_table', - 'html_td', - 'html_text', - 'html_th', - 'html_tr', - 'http_document_header', - 'http_document', - 'http_error', - 'http_header_field', - 'http_server_connection_handler_globals', - 'http_server_connection_handler', - 'http_server_request_logger_thread', - 'http_server_web_connection', - 'http_server', - 'image', - 'include_cache', - 'inline_type', - 'integer', - 'java_jnienv', - 'jbyte', - 'jbytearray', - 'jchar', - 'jchararray', - 'jfieldid', - 'jfloat', - 'jint', - 'jmethodid', - 'jobject', - 'jshort', - 'json_decode', - 'json_encode', - 'json_literal', - 'json_object', - 'keyword', - 'lassoapp_compiledsrc_appsource', - 'lassoapp_compiledsrc_fileresource', - 'lassoapp_content_rep_halt', - 'lassoapp_dirsrc_appsource', - 'lassoapp_dirsrc_fileresource', - 'lassoapp_installer', - 'lassoapp_livesrc_appsource', - 'lassoapp_livesrc_fileresource', - 'lassoapp_long_expiring_bytes', - 'lassoapp_manualsrc_appsource', - 'lassoapp_zip_file_server', - 'lassoapp_zipsrc_appsource', - 'lassoapp_zipsrc_fileresource', - 'ldap', - 'library_thread_loader', - 'list_node', - 'list', - 'locale', - 'log_impl_base', - 'log_impl', - 'magick_image', - 'map_node', - 'map', - 'memberstream', - 'memory_session_driver_impl_entry', - 'memory_session_driver_impl', - 'memory_session_driver', - 'mime_reader', - 'mongo_client', - 'mongo_collection', - 'mongo_cursor', - 'mustache_ctx', - 'mysql_session_driver_impl', - 'mysql_session_driver', - 'net_named_pipe', - 'net_tcp_ssl', - 'net_tcp', - 'net_udp_packet', - 'net_udp', - 'null', - 'odbc_session_driver_impl', - 'odbc_session_driver', - 'opaque', - 'os_process', - 'pair_compare', - 'pair', - 'pairup', - 'pdf_barcode', - 'pdf_chunk', - 'pdf_color', - 'pdf_doc', - 'pdf_font', - 'pdf_hyphenator', - 'pdf_image', - 'pdf_list', - 'pdf_paragraph', - 'pdf_phrase', - 'pdf_read', - 'pdf_table', - 'pdf_text', - 'pdf_typebase', - 'percent', - 'portal_impl', - 'queriable_groupby', - 'queriable_grouping', - 'queriable_groupjoin', - 'queriable_join', - 'queriable_orderby', - 'queriable_orderbydescending', - 'queriable_select', - 'queriable_selectmany', - 'queriable_skip', - 'queriable_take', - 'queriable_thenby', - 'queriable_thenbydescending', - 'queriable_where', - 'queue', - 'raw_document_body', - 'regexp', - 'repeat', - 'scientific', - 'security_registry', - 'serialization_element', - 'serialization_object_identity_compare', - 'serialization_reader', - 'serialization_writer_ref', - 'serialization_writer_standin', - 'serialization_writer', - 'session_delete_expired_thread', - 'set', - 'signature', - 'sourcefile', - 'sqlite_column', - 'sqlite_currentrow', - 'sqlite_db', - 'sqlite_results', - 'sqlite_session_driver_impl_entry', - 'sqlite_session_driver_impl', - 'sqlite_session_driver', - 'sqlite_table', - 'sqlite3_stmt', - 'sqlite3', - 'staticarray', - 'string', - 'sys_process', - 'tag', - 'text_document', - 'tie', - 'timeonly', - 'trait', - 'tree_base', - 'tree_node', - 'tree_nullnode', - 'ucal', - 'usgcpu', - 'usgvm', - 'void', - 'web_error_atend', - 'web_node_base', - 'web_node_content_representation_css_specialized', - 'web_node_content_representation_html_specialized', - 'web_node_content_representation_js_specialized', - 'web_node_content_representation_xhr_container', - 'web_node_echo', - 'web_node_root', - 'web_request_impl', - 'web_request', - 'web_response_impl', - 'web_response', - 'web_router', - 'websocket_handler', - 'worker_pool', - 'xml_attr', - 'xml_cdatasection', - 'xml_characterdata', - 'xml_comment', - 'xml_document', - 'xml_documentfragment', - 'xml_documenttype', - 'xml_domimplementation', - 'xml_element', - 'xml_entity', - 'xml_entityreference', - 'xml_namednodemap_attr', - 'xml_namednodemap_ht', - 'xml_namednodemap', - 'xml_node', - 'xml_nodelist', - 'xml_notation', - 'xml_processinginstruction', - 'xml_text', - 'xmlstream', - 'zip_file_impl', - 'zip_file', - 'zip_impl', - 'zip', + "Types": ( + "array", + "atbegin", + "boolean", + "bson_iter", + "bson", + "bytes_document_body", + "bytes", + "cache_server_element", + "cache_server", + "capture", + "client_address", + "client_ip", + "component_container", + "component_render_state", + "component", + "curl", + "curltoken", + "currency", + "custom", + "data_document", + "database_registry", + "date", + "dateandtime", + "dbgp_packet", + "dbgp_server", + "debugging_stack", + "decimal", + "delve", + "dir", + "dirdesc", + "dns_response", + "document_base", + "document_body", + "document_header", + "dsinfo", + "duration", + "eacher", + "email_compose", + "email_parse", + "email_pop", + "email_queue_impl_base", + "email_queue_impl", + "email_smtp", + "email_stage_impl_base", + "email_stage_impl", + "fastcgi_each_fcgi_param", + "fastcgi_server", + "fcgi_record", + "fcgi_request", + "file", + "filedesc", + "filemaker_datasource", + "generateforeachkeyed", + "generateforeachunkeyed", + "generateseries", + "hash_map", + "html_atomic_element", + "html_attr", + "html_base", + "html_binary", + "html_br", + "html_cdata", + "html_container_element", + "html_div", + "html_document_body", + "html_document_head", + "html_eol", + "html_fieldset", + "html_form", + "html_h1", + "html_h2", + "html_h3", + "html_h4", + "html_h5", + "html_h6", + "html_hr", + "html_img", + "html_input", + "html_json", + "html_label", + "html_legend", + "html_link", + "html_meta", + "html_object", + "html_option", + "html_raw", + "html_script", + "html_select", + "html_span", + "html_style", + "html_table", + "html_td", + "html_text", + "html_th", + "html_tr", + "http_document_header", + "http_document", + "http_error", + "http_header_field", + "http_server_connection_handler_globals", + "http_server_connection_handler", + "http_server_request_logger_thread", + "http_server_web_connection", + "http_server", + "image", + "include_cache", + "inline_type", + "integer", + "java_jnienv", + "jbyte", + "jbytearray", + "jchar", + "jchararray", + "jfieldid", + "jfloat", + "jint", + "jmethodid", + "jobject", + "jshort", + "json_decode", + "json_encode", + "json_literal", + "json_object", + "keyword", + "lassoapp_compiledsrc_appsource", + "lassoapp_compiledsrc_fileresource", + "lassoapp_content_rep_halt", + "lassoapp_dirsrc_appsource", + "lassoapp_dirsrc_fileresource", + "lassoapp_installer", + "lassoapp_livesrc_appsource", + "lassoapp_livesrc_fileresource", + "lassoapp_long_expiring_bytes", + "lassoapp_manualsrc_appsource", + "lassoapp_zip_file_server", + "lassoapp_zipsrc_appsource", + "lassoapp_zipsrc_fileresource", + "ldap", + "library_thread_loader", + "list_node", + "list", + "locale", + "log_impl_base", + "log_impl", + "magick_image", + "map_node", + "map", + "memberstream", + "memory_session_driver_impl_entry", + "memory_session_driver_impl", + "memory_session_driver", + "mime_reader", + "mongo_client", + "mongo_collection", + "mongo_cursor", + "mustache_ctx", + "mysql_session_driver_impl", + "mysql_session_driver", + "net_named_pipe", + "net_tcp_ssl", + "net_tcp", + "net_udp_packet", + "net_udp", + "null", + "odbc_session_driver_impl", + "odbc_session_driver", + "opaque", + "os_process", + "pair_compare", + "pair", + "pairup", + "pdf_barcode", + "pdf_chunk", + "pdf_color", + "pdf_doc", + "pdf_font", + "pdf_hyphenator", + "pdf_image", + "pdf_list", + "pdf_paragraph", + "pdf_phrase", + "pdf_read", + "pdf_table", + "pdf_text", + "pdf_typebase", + "percent", + "portal_impl", + "queriable_groupby", + "queriable_grouping", + "queriable_groupjoin", + "queriable_join", + "queriable_orderby", + "queriable_orderbydescending", + "queriable_select", + "queriable_selectmany", + "queriable_skip", + "queriable_take", + "queriable_thenby", + "queriable_thenbydescending", + "queriable_where", + "queue", + "raw_document_body", + "regexp", + "repeat", + "scientific", + "security_registry", + "serialization_element", + "serialization_object_identity_compare", + "serialization_reader", + "serialization_writer_ref", + "serialization_writer_standin", + "serialization_writer", + "session_delete_expired_thread", + "set", + "signature", + "sourcefile", + "sqlite_column", + "sqlite_currentrow", + "sqlite_db", + "sqlite_results", + "sqlite_session_driver_impl_entry", + "sqlite_session_driver_impl", + "sqlite_session_driver", + "sqlite_table", + "sqlite3_stmt", + "sqlite3", + "staticarray", + "string", + "sys_process", + "tag", + "text_document", + "tie", + "timeonly", + "trait", + "tree_base", + "tree_node", + "tree_nullnode", + "ucal", + "usgcpu", + "usgvm", + "void", + "web_error_atend", + "web_node_base", + "web_node_content_representation_css_specialized", + "web_node_content_representation_html_specialized", + "web_node_content_representation_js_specialized", + "web_node_content_representation_xhr_container", + "web_node_echo", + "web_node_root", + "web_request_impl", + "web_request", + "web_response_impl", + "web_response", + "web_router", + "websocket_handler", + "worker_pool", + "xml_attr", + "xml_cdatasection", + "xml_characterdata", + "xml_comment", + "xml_document", + "xml_documentfragment", + "xml_documenttype", + "xml_domimplementation", + "xml_element", + "xml_entity", + "xml_entityreference", + "xml_namednodemap_attr", + "xml_namednodemap_ht", + "xml_namednodemap", + "xml_node", + "xml_nodelist", + "xml_notation", + "xml_processinginstruction", + "xml_text", + "xmlstream", + "zip_file_impl", + "zip_file", + "zip_impl", + "zip", ), - 'Traits': ( - 'any', - 'formattingbase', - 'html_attributed', - 'html_element_coreattrs', - 'html_element_eventsattrs', - 'html_element_i18nattrs', - 'lassoapp_capabilities', - 'lassoapp_resource', - 'lassoapp_source', - 'queriable_asstring', - 'session_driver', - 'trait_array', - 'trait_asstring', - 'trait_backcontractible', - 'trait_backended', - 'trait_backexpandable', - 'trait_close', - 'trait_contractible', - 'trait_decompose_assignment', - 'trait_doubleended', - 'trait_each_sub', - 'trait_encodeurl', - 'trait_endedfullymutable', - 'trait_expandable', - 'trait_file', - 'trait_finite', - 'trait_finiteforeach', - 'trait_foreach', - 'trait_foreachtextelement', - 'trait_frontcontractible', - 'trait_frontended', - 'trait_frontexpandable', - 'trait_fullymutable', - 'trait_generator', - 'trait_generatorcentric', - 'trait_hashable', - 'trait_json_serialize', - 'trait_keyed', - 'trait_keyedfinite', - 'trait_keyedforeach', - 'trait_keyedmutable', - 'trait_list', - 'trait_map', - 'trait_net', - 'trait_pathcomponents', - 'trait_positionallykeyed', - 'trait_positionallysearchable', - 'trait_queriable', - 'trait_queriablelambda', - 'trait_readbytes', - 'trait_readstring', - 'trait_scalar', - 'trait_searchable', - 'trait_serializable', - 'trait_setencoding', - 'trait_setoperations', - 'trait_stack', - 'trait_treenode', - 'trait_writebytes', - 'trait_writestring', - 'trait_xml_elementcompat', - 'trait_xml_nodecompat', - 'web_connection', - 'web_node_container', - 'web_node_content_css_specialized', - 'web_node_content_document', - 'web_node_content_html_specialized', - 'web_node_content_js_specialized', - 'web_node_content_json_specialized', - 'web_node_content_representation', - 'web_node_content', - 'web_node_postable', - 'web_node', + "Traits": ( + "any", + "formattingbase", + "html_attributed", + "html_element_coreattrs", + "html_element_eventsattrs", + "html_element_i18nattrs", + "lassoapp_capabilities", + "lassoapp_resource", + "lassoapp_source", + "queriable_asstring", + "session_driver", + "trait_array", + "trait_asstring", + "trait_backcontractible", + "trait_backended", + "trait_backexpandable", + "trait_close", + "trait_contractible", + "trait_decompose_assignment", + "trait_doubleended", + "trait_each_sub", + "trait_encodeurl", + "trait_endedfullymutable", + "trait_expandable", + "trait_file", + "trait_finite", + "trait_finiteforeach", + "trait_foreach", + "trait_foreachtextelement", + "trait_frontcontractible", + "trait_frontended", + "trait_frontexpandable", + "trait_fullymutable", + "trait_generator", + "trait_generatorcentric", + "trait_hashable", + "trait_json_serialize", + "trait_keyed", + "trait_keyedfinite", + "trait_keyedforeach", + "trait_keyedmutable", + "trait_list", + "trait_map", + "trait_net", + "trait_pathcomponents", + "trait_positionallykeyed", + "trait_positionallysearchable", + "trait_queriable", + "trait_queriablelambda", + "trait_readbytes", + "trait_readstring", + "trait_scalar", + "trait_searchable", + "trait_serializable", + "trait_setencoding", + "trait_setoperations", + "trait_stack", + "trait_treenode", + "trait_writebytes", + "trait_writestring", + "trait_xml_elementcompat", + "trait_xml_nodecompat", + "web_connection", + "web_node_container", + "web_node_content_css_specialized", + "web_node_content_document", + "web_node_content_html_specialized", + "web_node_content_js_specialized", + "web_node_content_json_specialized", + "web_node_content_representation", + "web_node_content", + "web_node_postable", + "web_node", ), - 'Unbound Methods': ( - 'abort_clear', - 'abort_now', - 'abort', - 'action_param', - 'action_params', - 'action_statement', - 'admin_authorization', - 'admin_currentgroups', - 'admin_currentuserid', - 'admin_currentusername', - 'admin_getpref', - 'admin_initialize', - 'admin_lassoservicepath', - 'admin_removepref', - 'admin_setpref', - 'admin_userexists', - 'all', - 'auth_admin', - 'auth_check', - 'auth_custom', - 'auth_group', - 'auth_prompt', - 'auth_user', - 'bom_utf16be', - 'bom_utf16le', - 'bom_utf32be', - 'bom_utf32le', - 'bom_utf8', - 'bw', - 'capture_nearestloopabort', - 'capture_nearestloopcontinue', - 'capture_nearestloopcount', - 'checked', - 'cipher_decrypt_private', - 'cipher_decrypt_public', - 'cipher_decrypt', - 'cipher_digest', - 'cipher_encrypt_private', - 'cipher_encrypt_public', - 'cipher_encrypt', - 'cipher_generate_key', - 'cipher_hmac', - 'cipher_keylength', - 'cipher_list', - 'cipher_open', - 'cipher_seal', - 'cipher_sign', - 'cipher_verify', - 'client_addr', - 'client_authorization', - 'client_browser', - 'client_contentlength', - 'client_contenttype', - 'client_cookielist', - 'client_cookies', - 'client_encoding', - 'client_formmethod', - 'client_getargs', - 'client_getparam', - 'client_getparams', - 'client_headers', - 'client_integertoip', - 'client_iptointeger', - 'client_password', - 'client_postargs', - 'client_postparam', - 'client_postparams', - 'client_type', - 'client_url', - 'client_username', - 'cn', - 'column_name', - 'column_names', - 'column_type', - 'column', - 'compress', - 'content_addheader', - 'content_body', - 'content_encoding', - 'content_header', - 'content_replaceheader', - 'content_type', - 'cookie_set', - 'cookie', - 'curl_easy_cleanup', - 'curl_easy_duphandle', - 'curl_easy_getinfo', - 'curl_easy_init', - 'curl_easy_reset', - 'curl_easy_setopt', - 'curl_easy_strerror', - 'curl_getdate', - 'curl_http_version_1_0', - 'curl_http_version_1_1', - 'curl_http_version_none', - 'curl_ipresolve_v4', - 'curl_ipresolve_v6', - 'curl_ipresolve_whatever', - 'curl_multi_perform', - 'curl_multi_result', - 'curl_netrc_ignored', - 'curl_netrc_optional', - 'curl_netrc_required', - 'curl_sslversion_default', - 'curl_sslversion_sslv2', - 'curl_sslversion_sslv3', - 'curl_sslversion_tlsv1', - 'curl_version_asynchdns', - 'curl_version_debug', - 'curl_version_gssnegotiate', - 'curl_version_idn', - 'curl_version_info', - 'curl_version_ipv6', - 'curl_version_kerberos4', - 'curl_version_largefile', - 'curl_version_libz', - 'curl_version_ntlm', - 'curl_version_spnego', - 'curl_version_ssl', - 'curl_version', - 'curlauth_any', - 'curlauth_anysafe', - 'curlauth_basic', - 'curlauth_digest', - 'curlauth_gssnegotiate', - 'curlauth_none', - 'curlauth_ntlm', - 'curle_aborted_by_callback', - 'curle_bad_calling_order', - 'curle_bad_content_encoding', - 'curle_bad_download_resume', - 'curle_bad_function_argument', - 'curle_bad_password_entered', - 'curle_couldnt_connect', - 'curle_couldnt_resolve_host', - 'curle_couldnt_resolve_proxy', - 'curle_failed_init', - 'curle_file_couldnt_read_file', - 'curle_filesize_exceeded', - 'curle_ftp_access_denied', - 'curle_ftp_cant_get_host', - 'curle_ftp_cant_reconnect', - 'curle_ftp_couldnt_get_size', - 'curle_ftp_couldnt_retr_file', - 'curle_ftp_couldnt_set_ascii', - 'curle_ftp_couldnt_set_binary', - 'curle_ftp_couldnt_use_rest', - 'curle_ftp_port_failed', - 'curle_ftp_quote_error', - 'curle_ftp_ssl_failed', - 'curle_ftp_user_password_incorrect', - 'curle_ftp_weird_227_format', - 'curle_ftp_weird_pass_reply', - 'curle_ftp_weird_pasv_reply', - 'curle_ftp_weird_server_reply', - 'curle_ftp_weird_user_reply', - 'curle_ftp_write_error', - 'curle_function_not_found', - 'curle_got_nothing', - 'curle_http_post_error', - 'curle_http_range_error', - 'curle_http_returned_error', - 'curle_interface_failed', - 'curle_ldap_cannot_bind', - 'curle_ldap_invalid_url', - 'curle_ldap_search_failed', - 'curle_library_not_found', - 'curle_login_denied', - 'curle_malformat_user', - 'curle_obsolete', - 'curle_ok', - 'curle_operation_timeouted', - 'curle_out_of_memory', - 'curle_partial_file', - 'curle_read_error', - 'curle_recv_error', - 'curle_send_error', - 'curle_send_fail_rewind', - 'curle_share_in_use', - 'curle_ssl_cacert', - 'curle_ssl_certproblem', - 'curle_ssl_cipher', - 'curle_ssl_connect_error', - 'curle_ssl_engine_initfailed', - 'curle_ssl_engine_notfound', - 'curle_ssl_engine_setfailed', - 'curle_ssl_peer_certificate', - 'curle_telnet_option_syntax', - 'curle_too_many_redirects', - 'curle_unknown_telnet_option', - 'curle_unsupported_protocol', - 'curle_url_malformat_user', - 'curle_url_malformat', - 'curle_write_error', - 'curlftpauth_default', - 'curlftpauth_ssl', - 'curlftpauth_tls', - 'curlftpssl_all', - 'curlftpssl_control', - 'curlftpssl_last', - 'curlftpssl_none', - 'curlftpssl_try', - 'curlinfo_connect_time', - 'curlinfo_content_length_download', - 'curlinfo_content_length_upload', - 'curlinfo_content_type', - 'curlinfo_effective_url', - 'curlinfo_filetime', - 'curlinfo_header_size', - 'curlinfo_http_connectcode', - 'curlinfo_httpauth_avail', - 'curlinfo_namelookup_time', - 'curlinfo_num_connects', - 'curlinfo_os_errno', - 'curlinfo_pretransfer_time', - 'curlinfo_proxyauth_avail', - 'curlinfo_redirect_count', - 'curlinfo_redirect_time', - 'curlinfo_request_size', - 'curlinfo_response_code', - 'curlinfo_size_download', - 'curlinfo_size_upload', - 'curlinfo_speed_download', - 'curlinfo_speed_upload', - 'curlinfo_ssl_engines', - 'curlinfo_ssl_verifyresult', - 'curlinfo_starttransfer_time', - 'curlinfo_total_time', - 'curlmsg_done', - 'curlopt_autoreferer', - 'curlopt_buffersize', - 'curlopt_cainfo', - 'curlopt_capath', - 'curlopt_connecttimeout', - 'curlopt_cookie', - 'curlopt_cookiefile', - 'curlopt_cookiejar', - 'curlopt_cookiesession', - 'curlopt_crlf', - 'curlopt_customrequest', - 'curlopt_dns_use_global_cache', - 'curlopt_egdsocket', - 'curlopt_encoding', - 'curlopt_failonerror', - 'curlopt_filetime', - 'curlopt_followlocation', - 'curlopt_forbid_reuse', - 'curlopt_fresh_connect', - 'curlopt_ftp_account', - 'curlopt_ftp_create_missing_dirs', - 'curlopt_ftp_response_timeout', - 'curlopt_ftp_ssl', - 'curlopt_ftp_use_eprt', - 'curlopt_ftp_use_epsv', - 'curlopt_ftpappend', - 'curlopt_ftplistonly', - 'curlopt_ftpport', - 'curlopt_ftpsslauth', - 'curlopt_header', - 'curlopt_http_version', - 'curlopt_http200aliases', - 'curlopt_httpauth', - 'curlopt_httpget', - 'curlopt_httpheader', - 'curlopt_httppost', - 'curlopt_httpproxytunnel', - 'curlopt_infilesize_large', - 'curlopt_infilesize', - 'curlopt_interface', - 'curlopt_ipresolve', - 'curlopt_krb4level', - 'curlopt_low_speed_limit', - 'curlopt_low_speed_time', - 'curlopt_mail_from', - 'curlopt_mail_rcpt', - 'curlopt_maxconnects', - 'curlopt_maxfilesize_large', - 'curlopt_maxfilesize', - 'curlopt_maxredirs', - 'curlopt_netrc_file', - 'curlopt_netrc', - 'curlopt_nobody', - 'curlopt_noprogress', - 'curlopt_port', - 'curlopt_post', - 'curlopt_postfields', - 'curlopt_postfieldsize_large', - 'curlopt_postfieldsize', - 'curlopt_postquote', - 'curlopt_prequote', - 'curlopt_proxy', - 'curlopt_proxyauth', - 'curlopt_proxyport', - 'curlopt_proxytype', - 'curlopt_proxyuserpwd', - 'curlopt_put', - 'curlopt_quote', - 'curlopt_random_file', - 'curlopt_range', - 'curlopt_readdata', - 'curlopt_referer', - 'curlopt_resume_from_large', - 'curlopt_resume_from', - 'curlopt_ssl_cipher_list', - 'curlopt_ssl_verifyhost', - 'curlopt_ssl_verifypeer', - 'curlopt_sslcert', - 'curlopt_sslcerttype', - 'curlopt_sslengine_default', - 'curlopt_sslengine', - 'curlopt_sslkey', - 'curlopt_sslkeypasswd', - 'curlopt_sslkeytype', - 'curlopt_sslversion', - 'curlopt_tcp_nodelay', - 'curlopt_timecondition', - 'curlopt_timeout', - 'curlopt_timevalue', - 'curlopt_transfertext', - 'curlopt_unrestricted_auth', - 'curlopt_upload', - 'curlopt_url', - 'curlopt_use_ssl', - 'curlopt_useragent', - 'curlopt_userpwd', - 'curlopt_verbose', - 'curlopt_writedata', - 'curlproxy_http', - 'curlproxy_socks4', - 'curlproxy_socks5', - 'database_adddefaultsqlitehost', - 'database_database', - 'database_initialize', - 'database_name', - 'database_qs', - 'database_table_database_tables', - 'database_table_datasource_databases', - 'database_table_datasource_hosts', - 'database_table_datasources', - 'database_table_table_fields', - 'database_util_cleanpath', - 'dbgp_stop_stack_name', - 'debugging_break', - 'debugging_breakpoint_get', - 'debugging_breakpoint_list', - 'debugging_breakpoint_remove', - 'debugging_breakpoint_set', - 'debugging_breakpoint_update', - 'debugging_context_locals', - 'debugging_context_self', - 'debugging_context_vars', - 'debugging_detach', - 'debugging_enabled', - 'debugging_get_context', - 'debugging_get_stack', - 'debugging_run', - 'debugging_step_in', - 'debugging_step_out', - 'debugging_step_over', - 'debugging_stop', - 'debugging_terminate', - 'decimal_random', - 'decompress', - 'decrypt_blowfish', - 'define_atbegin', - 'define_atend', - 'dns_default', - 'dns_lookup', - 'document', - 'email_attachment_mime_type', - 'email_batch', - 'email_digestchallenge', - 'email_digestresponse', - 'email_extract', - 'email_findemails', - 'email_fix_address_list', - 'email_fix_address', - 'email_fs_error_clean', - 'email_immediate', - 'email_initialize', - 'email_merge', - 'email_mxlookup', - 'email_pop_priv_extract', - 'email_pop_priv_quote', - 'email_pop_priv_substring', - 'email_queue', - 'email_result', - 'email_safeemail', - 'email_send', - 'email_status', - 'email_token', - 'email_translatebreakstocrlf', - 'encode_qheader', - 'encoding_iso88591', - 'encoding_utf8', - 'encrypt_blowfish', - 'encrypt_crammd5', - 'encrypt_hmac', - 'encrypt_md5', - 'eol', - 'eq', - 'error_code_aborted', - 'error_code_dividebyzero', - 'error_code_filenotfound', - 'error_code_invalidparameter', - 'error_code_methodnotfound', - 'error_code_networkerror', - 'error_code_noerror', - 'error_code_resnotfound', - 'error_code_runtimeassertion', - 'error_code', - 'error_msg_aborted', - 'error_msg_dividebyzero', - 'error_msg_filenotfound', - 'error_msg_invalidparameter', - 'error_msg_methodnotfound', - 'error_msg_networkerror', - 'error_msg_noerror', - 'error_msg_resnotfound', - 'error_msg_runtimeassertion', - 'error_msg', - 'error_obj', - 'error_pop', - 'error_push', - 'error_reset', - 'error_stack', - 'escape_tag', - 'evdns_resolve_ipv4', - 'evdns_resolve_ipv6', - 'evdns_resolve_reverse_ipv6', - 'evdns_resolve_reverse', - 'ew', - 'fail_if', - 'fail_ifnot', - 'fail_now', - 'fail', - 'failure_clear', - 'fastcgi_createfcgirequest', - 'fastcgi_handlecon', - 'fastcgi_handlereq', - 'fastcgi_initialize', - 'fastcgi_initiate_request', - 'fcgi_abort_request', - 'fcgi_authorize', - 'fcgi_begin_request', - 'fcgi_bodychunksize', - 'fcgi_cant_mpx_conn', - 'fcgi_data', - 'fcgi_end_request', - 'fcgi_filter', - 'fcgi_get_values_result', - 'fcgi_get_values', - 'fcgi_keep_conn', - 'fcgi_makeendrequestbody', - 'fcgi_makestdoutbody', - 'fcgi_max_conns', - 'fcgi_max_reqs', - 'fcgi_mpxs_conns', - 'fcgi_null_request_id', - 'fcgi_overloaded', - 'fcgi_params', - 'fcgi_read_timeout_seconds', - 'fcgi_readparam', - 'fcgi_request_complete', - 'fcgi_responder', - 'fcgi_stderr', - 'fcgi_stdin', - 'fcgi_stdout', - 'fcgi_unknown_role', - 'fcgi_unknown_type', - 'fcgi_version_1', - 'fcgi_x_stdin', - 'field_name', - 'field_names', - 'field', - 'file_copybuffersize', - 'file_defaultencoding', - 'file_forceroot', - 'file_modechar', - 'file_modeline', - 'file_stderr', - 'file_stdin', - 'file_stdout', - 'file_tempfile', - 'filemakerds_initialize', - 'filemakerds', - 'found_count', - 'ft', - 'ftp_deletefile', - 'ftp_getdata', - 'ftp_getfile', - 'ftp_getlisting', - 'ftp_putdata', - 'ftp_putfile', - 'full', - 'generateforeach', - 'gt', - 'gte', - 'handle_failure', - 'handle', - 'hash_primes', - 'html_comment', - 'http_char_colon', - 'http_char_cr', - 'http_char_htab', - 'http_char_lf', - 'http_char_question', - 'http_char_space', - 'http_default_files', - 'http_read_headers', - 'http_read_timeout_secs', - 'http_server_apps_path', - 'http_server_request_logger', - 'if_empty', - 'if_false', - 'if_null', - 'if_true', - 'include_cache_compare', - 'include_currentpath', - 'include_filepath', - 'include_localpath', - 'include_once', - 'include_path', - 'include_raw', - 'include_url', - 'include', - 'includes', - 'inline_colinfo_name_pos', - 'inline_colinfo_type_pos', - 'inline_colinfo_valuelist_pos', - 'inline_columninfo_pos', - 'inline_foundcount_pos', - 'inline_namedget', - 'inline_namedput', - 'inline_resultrows_pos', - 'inline_scopeget', - 'inline_scopepop', - 'inline_scopepush', - 'inline', - 'integer_bitor', - 'integer_random', - 'io_dir_dt_blk', - 'io_dir_dt_chr', - 'io_dir_dt_dir', - 'io_dir_dt_fifo', - 'io_dir_dt_lnk', - 'io_dir_dt_reg', - 'io_dir_dt_sock', - 'io_dir_dt_unknown', - 'io_dir_dt_wht', - 'io_file_access', - 'io_file_chdir', - 'io_file_chmod', - 'io_file_chown', - 'io_file_dirname', - 'io_file_f_dupfd', - 'io_file_f_getfd', - 'io_file_f_getfl', - 'io_file_f_getlk', - 'io_file_f_rdlck', - 'io_file_f_setfd', - 'io_file_f_setfl', - 'io_file_f_setlk', - 'io_file_f_setlkw', - 'io_file_f_test', - 'io_file_f_tlock', - 'io_file_f_ulock', - 'io_file_f_unlck', - 'io_file_f_wrlck', - 'io_file_fd_cloexec', - 'io_file_fioasync', - 'io_file_fioclex', - 'io_file_fiodtype', - 'io_file_fiogetown', - 'io_file_fionbio', - 'io_file_fionclex', - 'io_file_fionread', - 'io_file_fiosetown', - 'io_file_getcwd', - 'io_file_lchown', - 'io_file_link', - 'io_file_lockf', - 'io_file_lstat_atime', - 'io_file_lstat_mode', - 'io_file_lstat_mtime', - 'io_file_lstat_size', - 'io_file_mkdir', - 'io_file_mkfifo', - 'io_file_mkstemp', - 'io_file_o_append', - 'io_file_o_async', - 'io_file_o_creat', - 'io_file_o_excl', - 'io_file_o_exlock', - 'io_file_o_fsync', - 'io_file_o_nofollow', - 'io_file_o_nonblock', - 'io_file_o_rdonly', - 'io_file_o_rdwr', - 'io_file_o_shlock', - 'io_file_o_sync', - 'io_file_o_trunc', - 'io_file_o_wronly', - 'io_file_pipe', - 'io_file_readlink', - 'io_file_realpath', - 'io_file_remove', - 'io_file_rename', - 'io_file_rmdir', - 'io_file_s_ifblk', - 'io_file_s_ifchr', - 'io_file_s_ifdir', - 'io_file_s_ififo', - 'io_file_s_iflnk', - 'io_file_s_ifmt', - 'io_file_s_ifreg', - 'io_file_s_ifsock', - 'io_file_s_irgrp', - 'io_file_s_iroth', - 'io_file_s_irusr', - 'io_file_s_irwxg', - 'io_file_s_irwxo', - 'io_file_s_irwxu', - 'io_file_s_isgid', - 'io_file_s_isuid', - 'io_file_s_isvtx', - 'io_file_s_iwgrp', - 'io_file_s_iwoth', - 'io_file_s_iwusr', - 'io_file_s_ixgrp', - 'io_file_s_ixoth', - 'io_file_s_ixusr', - 'io_file_seek_cur', - 'io_file_seek_end', - 'io_file_seek_set', - 'io_file_stat_atime', - 'io_file_stat_mode', - 'io_file_stat_mtime', - 'io_file_stat_size', - 'io_file_stderr', - 'io_file_stdin', - 'io_file_stdout', - 'io_file_symlink', - 'io_file_tempnam', - 'io_file_truncate', - 'io_file_umask', - 'io_file_unlink', - 'io_net_accept', - 'io_net_af_inet', - 'io_net_af_inet6', - 'io_net_af_unix', - 'io_net_bind', - 'io_net_connect', - 'io_net_getpeername', - 'io_net_getsockname', - 'io_net_ipproto_ip', - 'io_net_ipproto_udp', - 'io_net_listen', - 'io_net_msg_oob', - 'io_net_msg_peek', - 'io_net_msg_waitall', - 'io_net_recv', - 'io_net_recvfrom', - 'io_net_send', - 'io_net_sendto', - 'io_net_shut_rd', - 'io_net_shut_rdwr', - 'io_net_shut_wr', - 'io_net_shutdown', - 'io_net_so_acceptconn', - 'io_net_so_broadcast', - 'io_net_so_debug', - 'io_net_so_dontroute', - 'io_net_so_error', - 'io_net_so_keepalive', - 'io_net_so_linger', - 'io_net_so_oobinline', - 'io_net_so_rcvbuf', - 'io_net_so_rcvlowat', - 'io_net_so_rcvtimeo', - 'io_net_so_reuseaddr', - 'io_net_so_sndbuf', - 'io_net_so_sndlowat', - 'io_net_so_sndtimeo', - 'io_net_so_timestamp', - 'io_net_so_type', - 'io_net_so_useloopback', - 'io_net_sock_dgram', - 'io_net_sock_raw', - 'io_net_sock_rdm', - 'io_net_sock_seqpacket', - 'io_net_sock_stream', - 'io_net_socket', - 'io_net_sol_socket', - 'io_net_ssl_accept', - 'io_net_ssl_begin', - 'io_net_ssl_connect', - 'io_net_ssl_end', - 'io_net_ssl_error', - 'io_net_ssl_errorstring', - 'io_net_ssl_funcerrorstring', - 'io_net_ssl_liberrorstring', - 'io_net_ssl_read', - 'io_net_ssl_reasonerrorstring', - 'io_net_ssl_setacceptstate', - 'io_net_ssl_setconnectstate', - 'io_net_ssl_setverifylocations', - 'io_net_ssl_shutdown', - 'io_net_ssl_usecertificatechainfile', - 'io_net_ssl_useprivatekeyfile', - 'io_net_ssl_write', - 'java_jvm_create', - 'java_jvm_getenv', - 'jdbc_initialize', - 'json_back_slash', - 'json_back_space', - 'json_close_array', - 'json_close_object', - 'json_colon', - 'json_comma', - 'json_consume_array', - 'json_consume_object', - 'json_consume_string', - 'json_consume_token', - 'json_cr', - 'json_debug', - 'json_deserialize', - 'json_e_lower', - 'json_e_upper', - 'json_f_lower', - 'json_form_feed', - 'json_forward_slash', - 'json_lf', - 'json_n_lower', - 'json_negative', - 'json_open_array', - 'json_open_object', - 'json_period', - 'json_positive', - 'json_quote_double', - 'json_rpccall', - 'json_serialize', - 'json_t_lower', - 'json_tab', - 'json_white_space', - 'keycolumn_name', - 'keycolumn_value', - 'keyfield_name', - 'keyfield_value', - 'lasso_currentaction', - 'lasso_errorreporting', - 'lasso_executiontimelimit', - 'lasso_methodexists', - 'lasso_tagexists', - 'lasso_uniqueid', - 'lasso_version', - 'lassoapp_current_app', - 'lassoapp_current_include', - 'lassoapp_do_with_include', - 'lassoapp_exists', - 'lassoapp_find_missing_file', - 'lassoapp_format_mod_date', - 'lassoapp_get_capabilities_name', - 'lassoapp_include_current', - 'lassoapp_include', - 'lassoapp_initialize_db', - 'lassoapp_initialize', - 'lassoapp_invoke_resource', - 'lassoapp_issourcefileextension', - 'lassoapp_link', - 'lassoapp_load_module', - 'lassoapp_mime_get', - 'lassoapp_mime_type_appcache', - 'lassoapp_mime_type_css', - 'lassoapp_mime_type_csv', - 'lassoapp_mime_type_doc', - 'lassoapp_mime_type_docx', - 'lassoapp_mime_type_eof', - 'lassoapp_mime_type_eot', - 'lassoapp_mime_type_gif', - 'lassoapp_mime_type_html', - 'lassoapp_mime_type_ico', - 'lassoapp_mime_type_jpg', - 'lassoapp_mime_type_js', - 'lassoapp_mime_type_lasso', - 'lassoapp_mime_type_map', - 'lassoapp_mime_type_pdf', - 'lassoapp_mime_type_png', - 'lassoapp_mime_type_ppt', - 'lassoapp_mime_type_rss', - 'lassoapp_mime_type_svg', - 'lassoapp_mime_type_swf', - 'lassoapp_mime_type_tif', - 'lassoapp_mime_type_ttf', - 'lassoapp_mime_type_txt', - 'lassoapp_mime_type_woff', - 'lassoapp_mime_type_xaml', - 'lassoapp_mime_type_xap', - 'lassoapp_mime_type_xbap', - 'lassoapp_mime_type_xhr', - 'lassoapp_mime_type_xml', - 'lassoapp_mime_type_zip', - 'lassoapp_path_to_method_name', - 'lassoapp_settingsdb', - 'layout_name', - 'lcapi_datasourceadd', - 'lcapi_datasourcecloseconnection', - 'lcapi_datasourcedelete', - 'lcapi_datasourceduplicate', - 'lcapi_datasourceexecsql', - 'lcapi_datasourcefindall', - 'lcapi_datasourceimage', - 'lcapi_datasourceinfo', - 'lcapi_datasourceinit', - 'lcapi_datasourcematchesname', - 'lcapi_datasourcenames', - 'lcapi_datasourcenothing', - 'lcapi_datasourceopand', - 'lcapi_datasourceopany', - 'lcapi_datasourceopbw', - 'lcapi_datasourceopct', - 'lcapi_datasourceopeq', - 'lcapi_datasourceopew', - 'lcapi_datasourceopft', - 'lcapi_datasourceopgt', - 'lcapi_datasourceopgteq', - 'lcapi_datasourceopin', - 'lcapi_datasourceoplt', - 'lcapi_datasourceoplteq', - 'lcapi_datasourceopnbw', - 'lcapi_datasourceopnct', - 'lcapi_datasourceopneq', - 'lcapi_datasourceopnew', - 'lcapi_datasourceopnin', - 'lcapi_datasourceopno', - 'lcapi_datasourceopnot', - 'lcapi_datasourceopnrx', - 'lcapi_datasourceopor', - 'lcapi_datasourceoprx', - 'lcapi_datasourcepreparesql', - 'lcapi_datasourceprotectionnone', - 'lcapi_datasourceprotectionreadonly', - 'lcapi_datasourcerandom', - 'lcapi_datasourceschemanames', - 'lcapi_datasourcescripts', - 'lcapi_datasourcesearch', - 'lcapi_datasourcesortascending', - 'lcapi_datasourcesortcustom', - 'lcapi_datasourcesortdescending', - 'lcapi_datasourcetablenames', - 'lcapi_datasourceterm', - 'lcapi_datasourcetickle', - 'lcapi_datasourcetypeblob', - 'lcapi_datasourcetypeboolean', - 'lcapi_datasourcetypedate', - 'lcapi_datasourcetypedecimal', - 'lcapi_datasourcetypeinteger', - 'lcapi_datasourcetypestring', - 'lcapi_datasourceunpreparesql', - 'lcapi_datasourceupdate', - 'lcapi_fourchartointeger', - 'lcapi_listdatasources', - 'lcapi_loadmodule', - 'lcapi_loadmodules', - 'lcapi_updatedatasourceslist', - 'ldap_scope_base', - 'ldap_scope_children', - 'ldap_scope_onelevel', - 'ldap_scope_subtree', - 'library_once', - 'library', - 'ljapi_initialize', - 'locale_availablelocales', - 'locale_canada', - 'locale_canadafrench', - 'locale_china', - 'locale_chinese', - 'locale_default', - 'locale_english', - 'locale_format_style_date_time', - 'locale_format_style_default', - 'locale_format_style_full', - 'locale_format_style_long', - 'locale_format_style_medium', - 'locale_format_style_none', - 'locale_format_style_short', - 'locale_format', - 'locale_france', - 'locale_french', - 'locale_german', - 'locale_germany', - 'locale_isocountries', - 'locale_isolanguages', - 'locale_italian', - 'locale_italy', - 'locale_japan', - 'locale_japanese', - 'locale_korea', - 'locale_korean', - 'locale_prc', - 'locale_setdefault', - 'locale_simplifiedchinese', - 'locale_taiwan', - 'locale_traditionalchinese', - 'locale_uk', - 'locale_us', - 'log_always', - 'log_critical', - 'log_deprecated', - 'log_destination_console', - 'log_destination_database', - 'log_destination_file', - 'log_detail', - 'log_initialize', - 'log_level_critical', - 'log_level_deprecated', - 'log_level_detail', - 'log_level_sql', - 'log_level_warning', - 'log_max_file_size', - 'log_setdestination', - 'log_sql', - 'log_trim_file_size', - 'log_warning', - 'log', - 'loop_abort', - 'loop_continue', - 'loop_count', - 'loop_key_pop', - 'loop_key_push', - 'loop_key', - 'loop_pop', - 'loop_push', - 'loop_value_pop', - 'loop_value_push', - 'loop_value', - 'loop', - 'lt', - 'lte', - 'main_thread_only', - 'max', - 'maxrecords_value', - 'median', - 'method_name', - 'micros', - 'millis', - 'min', - 'minimal', - 'mongo_insert_continue_on_error', - 'mongo_insert_no_validate', - 'mongo_insert_none', - 'mongo_query_await_data', - 'mongo_query_exhaust', - 'mongo_query_no_cursor_timeout', - 'mongo_query_none', - 'mongo_query_oplog_replay', - 'mongo_query_partial', - 'mongo_query_slave_ok', - 'mongo_query_tailable_cursor', - 'mongo_remove_none', - 'mongo_remove_single_remove', - 'mongo_update_multi_update', - 'mongo_update_no_validate', - 'mongo_update_none', - 'mongo_update_upsert', - 'mustache_compile_file', - 'mustache_compile_string', - 'mustache_include', - 'mysqlds', - 'namespace_global', - 'namespace_import', - 'namespace_using', - 'nbw', - 'ncn', - 'neq', - 'net_connectinprogress', - 'net_connectok', - 'net_typessl', - 'net_typessltcp', - 'net_typessludp', - 'net_typetcp', - 'net_typeudp', - 'net_waitread', - 'net_waittimeout', - 'net_waitwrite', - 'new', - 'none', - 'nrx', - 'nslookup', - 'odbc_session_driver_mssql', - 'odbc', - 'output_none', - 'output', - 'pdf_package', - 'pdf_rectangle', - 'pdf_serve', - 'pi', - 'portal', - 'postgresql', - 'process', - 'protect_now', - 'protect', - 'queriable_average', - 'queriable_defaultcompare', - 'queriable_do', - 'queriable_internal_combinebindings', - 'queriable_max', - 'queriable_min', - 'queriable_qsort', - 'queriable_reversecompare', - 'queriable_sum', - 'random_seed', - 'range', - 'records_array', - 'records_map', - 'records', - 'redirect_url', - 'referer_url', - 'referrer_url', - 'register_thread', - 'register', - 'response_filepath', - 'response_localpath', - 'response_path', - 'response_realm', - 'response_root', - 'resultset_count', - 'resultset', - 'resultsets', - 'rows_array', - 'rows_impl', - 'rows', - 'rx', - 'schema_name', - 'security_database', - 'security_default_realm', - 'security_initialize', - 'security_table_groups', - 'security_table_ug_map', - 'security_table_users', - 'selected', - 'series', - 'server_admin', - 'server_ip', - 'server_name', - 'server_port', - 'server_protocol', - 'server_push', - 'server_signature', - 'server_software', - 'session_abort', - 'session_addvar', - 'session_decorate', - 'session_deleteexpired', - 'session_end', - 'session_getdefaultdriver', - 'session_id', - 'session_initialize', - 'session_removevar', - 'session_result', - 'session_setdefaultdriver', - 'session_start', - 'shown_count', - 'shown_first', - 'shown_last', - 'site_id', - 'site_name', - 'skiprecords_value', - 'sleep', - 'split_thread', - 'sqlite_abort', - 'sqlite_auth', - 'sqlite_blob', - 'sqlite_busy', - 'sqlite_cantopen', - 'sqlite_constraint', - 'sqlite_corrupt', - 'sqlite_createdb', - 'sqlite_done', - 'sqlite_empty', - 'sqlite_error', - 'sqlite_float', - 'sqlite_format', - 'sqlite_full', - 'sqlite_integer', - 'sqlite_internal', - 'sqlite_interrupt', - 'sqlite_ioerr', - 'sqlite_locked', - 'sqlite_mismatch', - 'sqlite_misuse', - 'sqlite_nolfs', - 'sqlite_nomem', - 'sqlite_notadb', - 'sqlite_notfound', - 'sqlite_null', - 'sqlite_ok', - 'sqlite_perm', - 'sqlite_protocol', - 'sqlite_range', - 'sqlite_readonly', - 'sqlite_row', - 'sqlite_schema', - 'sqlite_setsleepmillis', - 'sqlite_setsleeptries', - 'sqlite_text', - 'sqlite_toobig', - 'sqliteconnector', - 'staticarray_join', - 'stdout', - 'stdoutnl', - 'string_validcharset', - 'suspend', - 'sys_appspath', - 'sys_chroot', - 'sys_clock', - 'sys_clockspersec', - 'sys_credits', - 'sys_databasespath', - 'sys_detach_exec', - 'sys_difftime', - 'sys_dll_ext', - 'sys_drand48', - 'sys_environ', - 'sys_eol', - 'sys_erand48', - 'sys_errno', - 'sys_exec_pid_to_os_pid', - 'sys_exec', - 'sys_exit', - 'sys_fork', - 'sys_garbagecollect', - 'sys_getbytessincegc', - 'sys_getchar', - 'sys_getegid', - 'sys_getenv', - 'sys_geteuid', - 'sys_getgid', - 'sys_getgrnam', - 'sys_getheapfreebytes', - 'sys_getheapsize', - 'sys_getlogin', - 'sys_getpid', - 'sys_getppid', - 'sys_getpwnam', - 'sys_getpwuid', - 'sys_getstartclock', - 'sys_getthreadcount', - 'sys_getuid', - 'sys_growheapby', - 'sys_homepath', - 'sys_is_full_path', - 'sys_is_windows', - 'sys_isfullpath', - 'sys_iswindows', - 'sys_iterate', - 'sys_jrand48', - 'sys_kill_exec', - 'sys_kill', - 'sys_lcong48', - 'sys_librariespath', - 'sys_listtraits', - 'sys_listtypes', - 'sys_listunboundmethods', - 'sys_loadlibrary', - 'sys_lrand48', - 'sys_masterhomepath', - 'sys_mrand48', - 'sys_nrand48', - 'sys_pid_exec', - 'sys_pointersize', - 'sys_rand', - 'sys_random', - 'sys_seed48', - 'sys_setenv', - 'sys_setgid', - 'sys_setsid', - 'sys_setuid', - 'sys_sigabrt', - 'sys_sigalrm', - 'sys_sigbus', - 'sys_sigchld', - 'sys_sigcont', - 'sys_sigfpe', - 'sys_sighup', - 'sys_sigill', - 'sys_sigint', - 'sys_sigkill', - 'sys_sigpipe', - 'sys_sigprof', - 'sys_sigquit', - 'sys_sigsegv', - 'sys_sigstop', - 'sys_sigsys', - 'sys_sigterm', - 'sys_sigtrap', - 'sys_sigtstp', - 'sys_sigttin', - 'sys_sigttou', - 'sys_sigurg', - 'sys_sigusr1', - 'sys_sigusr2', - 'sys_sigvtalrm', - 'sys_sigxcpu', - 'sys_sigxfsz', - 'sys_srand', - 'sys_srand48', - 'sys_srandom', - 'sys_strerror', - 'sys_supportpath', - 'sys_test_exec', - 'sys_time', - 'sys_uname', - 'sys_unsetenv', - 'sys_usercapimodulepath', - 'sys_userstartuppath', - 'sys_version', - 'sys_wait_exec', - 'sys_waitpid', - 'sys_wcontinued', - 'sys_while', - 'sys_wnohang', - 'sys_wuntraced', - 'table_name', - 'tag_exists', - 'tag_name', - 'thread_var_get', - 'thread_var_pop', - 'thread_var_push', - 'threadvar_find', - 'threadvar_get', - 'threadvar_set_asrt', - 'threadvar_set', - 'timer', - 'token_value', - 'treemap', - 'u_lb_alphabetic', - 'u_lb_ambiguous', - 'u_lb_break_after', - 'u_lb_break_before', - 'u_lb_break_both', - 'u_lb_break_symbols', - 'u_lb_carriage_return', - 'u_lb_close_punctuation', - 'u_lb_combining_mark', - 'u_lb_complex_context', - 'u_lb_contingent_break', - 'u_lb_exclamation', - 'u_lb_glue', - 'u_lb_h2', - 'u_lb_h3', - 'u_lb_hyphen', - 'u_lb_ideographic', - 'u_lb_infix_numeric', - 'u_lb_inseparable', - 'u_lb_jl', - 'u_lb_jt', - 'u_lb_jv', - 'u_lb_line_feed', - 'u_lb_mandatory_break', - 'u_lb_next_line', - 'u_lb_nonstarter', - 'u_lb_numeric', - 'u_lb_open_punctuation', - 'u_lb_postfix_numeric', - 'u_lb_prefix_numeric', - 'u_lb_quotation', - 'u_lb_space', - 'u_lb_surrogate', - 'u_lb_unknown', - 'u_lb_word_joiner', - 'u_lb_zwspace', - 'u_nt_decimal', - 'u_nt_digit', - 'u_nt_none', - 'u_nt_numeric', - 'u_sb_aterm', - 'u_sb_close', - 'u_sb_format', - 'u_sb_lower', - 'u_sb_numeric', - 'u_sb_oletter', - 'u_sb_other', - 'u_sb_sep', - 'u_sb_sp', - 'u_sb_sterm', - 'u_sb_upper', - 'u_wb_aletter', - 'u_wb_extendnumlet', - 'u_wb_format', - 'u_wb_katakana', - 'u_wb_midletter', - 'u_wb_midnum', - 'u_wb_numeric', - 'u_wb_other', - 'ucal_ampm', - 'ucal_dayofmonth', - 'ucal_dayofweek', - 'ucal_dayofweekinmonth', - 'ucal_dayofyear', - 'ucal_daysinfirstweek', - 'ucal_dowlocal', - 'ucal_dstoffset', - 'ucal_era', - 'ucal_extendedyear', - 'ucal_firstdayofweek', - 'ucal_hour', - 'ucal_hourofday', - 'ucal_julianday', - 'ucal_lenient', - 'ucal_listtimezones', - 'ucal_millisecond', - 'ucal_millisecondsinday', - 'ucal_minute', - 'ucal_month', - 'ucal_second', - 'ucal_weekofmonth', - 'ucal_weekofyear', - 'ucal_year', - 'ucal_yearwoy', - 'ucal_zoneoffset', - 'uchar_age', - 'uchar_alphabetic', - 'uchar_ascii_hex_digit', - 'uchar_bidi_class', - 'uchar_bidi_control', - 'uchar_bidi_mirrored', - 'uchar_bidi_mirroring_glyph', - 'uchar_block', - 'uchar_canonical_combining_class', - 'uchar_case_folding', - 'uchar_case_sensitive', - 'uchar_dash', - 'uchar_decomposition_type', - 'uchar_default_ignorable_code_point', - 'uchar_deprecated', - 'uchar_diacritic', - 'uchar_east_asian_width', - 'uchar_extender', - 'uchar_full_composition_exclusion', - 'uchar_general_category_mask', - 'uchar_general_category', - 'uchar_grapheme_base', - 'uchar_grapheme_cluster_break', - 'uchar_grapheme_extend', - 'uchar_grapheme_link', - 'uchar_hangul_syllable_type', - 'uchar_hex_digit', - 'uchar_hyphen', - 'uchar_id_continue', - 'uchar_ideographic', - 'uchar_ids_binary_operator', - 'uchar_ids_trinary_operator', - 'uchar_iso_comment', - 'uchar_join_control', - 'uchar_joining_group', - 'uchar_joining_type', - 'uchar_lead_canonical_combining_class', - 'uchar_line_break', - 'uchar_logical_order_exception', - 'uchar_lowercase_mapping', - 'uchar_lowercase', - 'uchar_math', - 'uchar_name', - 'uchar_nfc_inert', - 'uchar_nfc_quick_check', - 'uchar_nfd_inert', - 'uchar_nfd_quick_check', - 'uchar_nfkc_inert', - 'uchar_nfkc_quick_check', - 'uchar_nfkd_inert', - 'uchar_nfkd_quick_check', - 'uchar_noncharacter_code_point', - 'uchar_numeric_type', - 'uchar_numeric_value', - 'uchar_pattern_syntax', - 'uchar_pattern_white_space', - 'uchar_posix_alnum', - 'uchar_posix_blank', - 'uchar_posix_graph', - 'uchar_posix_print', - 'uchar_posix_xdigit', - 'uchar_quotation_mark', - 'uchar_radical', - 'uchar_s_term', - 'uchar_script', - 'uchar_segment_starter', - 'uchar_sentence_break', - 'uchar_simple_case_folding', - 'uchar_simple_lowercase_mapping', - 'uchar_simple_titlecase_mapping', - 'uchar_simple_uppercase_mapping', - 'uchar_soft_dotted', - 'uchar_terminal_punctuation', - 'uchar_titlecase_mapping', - 'uchar_trail_canonical_combining_class', - 'uchar_unicode_1_name', - 'uchar_unified_ideograph', - 'uchar_uppercase_mapping', - 'uchar_uppercase', - 'uchar_variation_selector', - 'uchar_white_space', - 'uchar_word_break', - 'uchar_xid_continue', - 'uncompress', - 'usage', - 'uuid_compare', - 'uuid_copy', - 'uuid_generate_random', - 'uuid_generate_time', - 'uuid_generate', - 'uuid_is_null', - 'uuid_parse', - 'uuid_unparse_lower', - 'uuid_unparse_upper', - 'uuid_unparse', - 'value_list', - 'value_listitem', - 'valuelistitem', - 'var_keys', - 'var_values', - 'wap_isenabled', - 'wap_maxbuttons', - 'wap_maxcolumns', - 'wap_maxhorzpixels', - 'wap_maxrows', - 'wap_maxvertpixels', - 'web_handlefcgirequest', - 'web_node_content_representation_css', - 'web_node_content_representation_html', - 'web_node_content_representation_js', - 'web_node_content_representation_xhr', - 'web_node_forpath', - 'web_nodes_initialize', - 'web_nodes_normalizeextension', - 'web_nodes_processcontentnode', - 'web_nodes_requesthandler', - 'web_response_nodesentry', - 'web_router_database', - 'web_router_initialize', - 'websocket_handler_timeout', - 'wexitstatus', - 'wifcontinued', - 'wifexited', - 'wifsignaled', - 'wifstopped', - 'wstopsig', - 'wtermsig', - 'xml_transform', - 'xml', - 'zip_add_dir', - 'zip_add', - 'zip_checkcons', - 'zip_close', - 'zip_cm_bzip2', - 'zip_cm_default', - 'zip_cm_deflate', - 'zip_cm_deflate64', - 'zip_cm_implode', - 'zip_cm_pkware_implode', - 'zip_cm_reduce_1', - 'zip_cm_reduce_2', - 'zip_cm_reduce_3', - 'zip_cm_reduce_4', - 'zip_cm_shrink', - 'zip_cm_store', - 'zip_create', - 'zip_delete', - 'zip_em_3des_112', - 'zip_em_3des_168', - 'zip_em_aes_128', - 'zip_em_aes_192', - 'zip_em_aes_256', - 'zip_em_des', - 'zip_em_none', - 'zip_em_rc2_old', - 'zip_em_rc2', - 'zip_em_rc4', - 'zip_em_trad_pkware', - 'zip_em_unknown', - 'zip_er_changed', - 'zip_er_close', - 'zip_er_compnotsupp', - 'zip_er_crc', - 'zip_er_deleted', - 'zip_er_eof', - 'zip_er_exists', - 'zip_er_incons', - 'zip_er_internal', - 'zip_er_inval', - 'zip_er_memory', - 'zip_er_multidisk', - 'zip_er_noent', - 'zip_er_nozip', - 'zip_er_ok', - 'zip_er_open', - 'zip_er_read', - 'zip_er_remove', - 'zip_er_rename', - 'zip_er_seek', - 'zip_er_tmpopen', - 'zip_er_write', - 'zip_er_zipclosed', - 'zip_er_zlib', - 'zip_error_get_sys_type', - 'zip_error_get', - 'zip_error_to_str', - 'zip_et_none', - 'zip_et_sys', - 'zip_et_zlib', - 'zip_excl', - 'zip_fclose', - 'zip_file_error_get', - 'zip_file_strerror', - 'zip_fl_compressed', - 'zip_fl_nocase', - 'zip_fl_nodir', - 'zip_fl_unchanged', - 'zip_fopen_index', - 'zip_fopen', - 'zip_fread', - 'zip_get_archive_comment', - 'zip_get_file_comment', - 'zip_get_name', - 'zip_get_num_files', - 'zip_name_locate', - 'zip_open', - 'zip_rename', - 'zip_replace', - 'zip_set_archive_comment', - 'zip_set_file_comment', - 'zip_stat_index', - 'zip_stat', - 'zip_strerror', - 'zip_unchange_all', - 'zip_unchange_archive', - 'zip_unchange', - 'zlib_version', + "Unbound Methods": ( + "abort_clear", + "abort_now", + "abort", + "action_param", + "action_params", + "action_statement", + "admin_authorization", + "admin_currentgroups", + "admin_currentuserid", + "admin_currentusername", + "admin_getpref", + "admin_initialize", + "admin_lassoservicepath", + "admin_removepref", + "admin_setpref", + "admin_userexists", + "all", + "auth_admin", + "auth_check", + "auth_custom", + "auth_group", + "auth_prompt", + "auth_user", + "bom_utf16be", + "bom_utf16le", + "bom_utf32be", + "bom_utf32le", + "bom_utf8", + "bw", + "capture_nearestloopabort", + "capture_nearestloopcontinue", + "capture_nearestloopcount", + "checked", + "cipher_decrypt_private", + "cipher_decrypt_public", + "cipher_decrypt", + "cipher_digest", + "cipher_encrypt_private", + "cipher_encrypt_public", + "cipher_encrypt", + "cipher_generate_key", + "cipher_hmac", + "cipher_keylength", + "cipher_list", + "cipher_open", + "cipher_seal", + "cipher_sign", + "cipher_verify", + "client_addr", + "client_authorization", + "client_browser", + "client_contentlength", + "client_contenttype", + "client_cookielist", + "client_cookies", + "client_encoding", + "client_formmethod", + "client_getargs", + "client_getparam", + "client_getparams", + "client_headers", + "client_integertoip", + "client_iptointeger", + "client_password", + "client_postargs", + "client_postparam", + "client_postparams", + "client_type", + "client_url", + "client_username", + "cn", + "column_name", + "column_names", + "column_type", + "column", + "compress", + "content_addheader", + "content_body", + "content_encoding", + "content_header", + "content_replaceheader", + "content_type", + "cookie_set", + "cookie", + "curl_easy_cleanup", + "curl_easy_duphandle", + "curl_easy_getinfo", + "curl_easy_init", + "curl_easy_reset", + "curl_easy_setopt", + "curl_easy_strerror", + "curl_getdate", + "curl_http_version_1_0", + "curl_http_version_1_1", + "curl_http_version_none", + "curl_ipresolve_v4", + "curl_ipresolve_v6", + "curl_ipresolve_whatever", + "curl_multi_perform", + "curl_multi_result", + "curl_netrc_ignored", + "curl_netrc_optional", + "curl_netrc_required", + "curl_sslversion_default", + "curl_sslversion_sslv2", + "curl_sslversion_sslv3", + "curl_sslversion_tlsv1", + "curl_version_asynchdns", + "curl_version_debug", + "curl_version_gssnegotiate", + "curl_version_idn", + "curl_version_info", + "curl_version_ipv6", + "curl_version_kerberos4", + "curl_version_largefile", + "curl_version_libz", + "curl_version_ntlm", + "curl_version_spnego", + "curl_version_ssl", + "curl_version", + "curlauth_any", + "curlauth_anysafe", + "curlauth_basic", + "curlauth_digest", + "curlauth_gssnegotiate", + "curlauth_none", + "curlauth_ntlm", + "curle_aborted_by_callback", + "curle_bad_calling_order", + "curle_bad_content_encoding", + "curle_bad_download_resume", + "curle_bad_function_argument", + "curle_bad_password_entered", + "curle_couldnt_connect", + "curle_couldnt_resolve_host", + "curle_couldnt_resolve_proxy", + "curle_failed_init", + "curle_file_couldnt_read_file", + "curle_filesize_exceeded", + "curle_ftp_access_denied", + "curle_ftp_cant_get_host", + "curle_ftp_cant_reconnect", + "curle_ftp_couldnt_get_size", + "curle_ftp_couldnt_retr_file", + "curle_ftp_couldnt_set_ascii", + "curle_ftp_couldnt_set_binary", + "curle_ftp_couldnt_use_rest", + "curle_ftp_port_failed", + "curle_ftp_quote_error", + "curle_ftp_ssl_failed", + "curle_ftp_user_password_incorrect", + "curle_ftp_weird_227_format", + "curle_ftp_weird_pass_reply", + "curle_ftp_weird_pasv_reply", + "curle_ftp_weird_server_reply", + "curle_ftp_weird_user_reply", + "curle_ftp_write_error", + "curle_function_not_found", + "curle_got_nothing", + "curle_http_post_error", + "curle_http_range_error", + "curle_http_returned_error", + "curle_interface_failed", + "curle_ldap_cannot_bind", + "curle_ldap_invalid_url", + "curle_ldap_search_failed", + "curle_library_not_found", + "curle_login_denied", + "curle_malformat_user", + "curle_obsolete", + "curle_ok", + "curle_operation_timeouted", + "curle_out_of_memory", + "curle_partial_file", + "curle_read_error", + "curle_recv_error", + "curle_send_error", + "curle_send_fail_rewind", + "curle_share_in_use", + "curle_ssl_cacert", + "curle_ssl_certproblem", + "curle_ssl_cipher", + "curle_ssl_connect_error", + "curle_ssl_engine_initfailed", + "curle_ssl_engine_notfound", + "curle_ssl_engine_setfailed", + "curle_ssl_peer_certificate", + "curle_telnet_option_syntax", + "curle_too_many_redirects", + "curle_unknown_telnet_option", + "curle_unsupported_protocol", + "curle_url_malformat_user", + "curle_url_malformat", + "curle_write_error", + "curlftpauth_default", + "curlftpauth_ssl", + "curlftpauth_tls", + "curlftpssl_all", + "curlftpssl_control", + "curlftpssl_last", + "curlftpssl_none", + "curlftpssl_try", + "curlinfo_connect_time", + "curlinfo_content_length_download", + "curlinfo_content_length_upload", + "curlinfo_content_type", + "curlinfo_effective_url", + "curlinfo_filetime", + "curlinfo_header_size", + "curlinfo_http_connectcode", + "curlinfo_httpauth_avail", + "curlinfo_namelookup_time", + "curlinfo_num_connects", + "curlinfo_os_errno", + "curlinfo_pretransfer_time", + "curlinfo_proxyauth_avail", + "curlinfo_redirect_count", + "curlinfo_redirect_time", + "curlinfo_request_size", + "curlinfo_response_code", + "curlinfo_size_download", + "curlinfo_size_upload", + "curlinfo_speed_download", + "curlinfo_speed_upload", + "curlinfo_ssl_engines", + "curlinfo_ssl_verifyresult", + "curlinfo_starttransfer_time", + "curlinfo_total_time", + "curlmsg_done", + "curlopt_autoreferer", + "curlopt_buffersize", + "curlopt_cainfo", + "curlopt_capath", + "curlopt_connecttimeout", + "curlopt_cookie", + "curlopt_cookiefile", + "curlopt_cookiejar", + "curlopt_cookiesession", + "curlopt_crlf", + "curlopt_customrequest", + "curlopt_dns_use_global_cache", + "curlopt_egdsocket", + "curlopt_encoding", + "curlopt_failonerror", + "curlopt_filetime", + "curlopt_followlocation", + "curlopt_forbid_reuse", + "curlopt_fresh_connect", + "curlopt_ftp_account", + "curlopt_ftp_create_missing_dirs", + "curlopt_ftp_response_timeout", + "curlopt_ftp_ssl", + "curlopt_ftp_use_eprt", + "curlopt_ftp_use_epsv", + "curlopt_ftpappend", + "curlopt_ftplistonly", + "curlopt_ftpport", + "curlopt_ftpsslauth", + "curlopt_header", + "curlopt_http_version", + "curlopt_http200aliases", + "curlopt_httpauth", + "curlopt_httpget", + "curlopt_httpheader", + "curlopt_httppost", + "curlopt_httpproxytunnel", + "curlopt_infilesize_large", + "curlopt_infilesize", + "curlopt_interface", + "curlopt_ipresolve", + "curlopt_krb4level", + "curlopt_low_speed_limit", + "curlopt_low_speed_time", + "curlopt_mail_from", + "curlopt_mail_rcpt", + "curlopt_maxconnects", + "curlopt_maxfilesize_large", + "curlopt_maxfilesize", + "curlopt_maxredirs", + "curlopt_netrc_file", + "curlopt_netrc", + "curlopt_nobody", + "curlopt_noprogress", + "curlopt_port", + "curlopt_post", + "curlopt_postfields", + "curlopt_postfieldsize_large", + "curlopt_postfieldsize", + "curlopt_postquote", + "curlopt_prequote", + "curlopt_proxy", + "curlopt_proxyauth", + "curlopt_proxyport", + "curlopt_proxytype", + "curlopt_proxyuserpwd", + "curlopt_put", + "curlopt_quote", + "curlopt_random_file", + "curlopt_range", + "curlopt_readdata", + "curlopt_referer", + "curlopt_resume_from_large", + "curlopt_resume_from", + "curlopt_ssl_cipher_list", + "curlopt_ssl_verifyhost", + "curlopt_ssl_verifypeer", + "curlopt_sslcert", + "curlopt_sslcerttype", + "curlopt_sslengine_default", + "curlopt_sslengine", + "curlopt_sslkey", + "curlopt_sslkeypasswd", + "curlopt_sslkeytype", + "curlopt_sslversion", + "curlopt_tcp_nodelay", + "curlopt_timecondition", + "curlopt_timeout", + "curlopt_timevalue", + "curlopt_transfertext", + "curlopt_unrestricted_auth", + "curlopt_upload", + "curlopt_url", + "curlopt_use_ssl", + "curlopt_useragent", + "curlopt_userpwd", + "curlopt_verbose", + "curlopt_writedata", + "curlproxy_http", + "curlproxy_socks4", + "curlproxy_socks5", + "database_adddefaultsqlitehost", + "database_database", + "database_initialize", + "database_name", + "database_qs", + "database_table_database_tables", + "database_table_datasource_databases", + "database_table_datasource_hosts", + "database_table_datasources", + "database_table_table_fields", + "database_util_cleanpath", + "dbgp_stop_stack_name", + "debugging_break", + "debugging_breakpoint_get", + "debugging_breakpoint_list", + "debugging_breakpoint_remove", + "debugging_breakpoint_set", + "debugging_breakpoint_update", + "debugging_context_locals", + "debugging_context_self", + "debugging_context_vars", + "debugging_detach", + "debugging_enabled", + "debugging_get_context", + "debugging_get_stack", + "debugging_run", + "debugging_step_in", + "debugging_step_out", + "debugging_step_over", + "debugging_stop", + "debugging_terminate", + "decimal_random", + "decompress", + "decrypt_blowfish", + "define_atbegin", + "define_atend", + "dns_default", + "dns_lookup", + "document", + "email_attachment_mime_type", + "email_batch", + "email_digestchallenge", + "email_digestresponse", + "email_extract", + "email_findemails", + "email_fix_address_list", + "email_fix_address", + "email_fs_error_clean", + "email_immediate", + "email_initialize", + "email_merge", + "email_mxlookup", + "email_pop_priv_extract", + "email_pop_priv_quote", + "email_pop_priv_substring", + "email_queue", + "email_result", + "email_safeemail", + "email_send", + "email_status", + "email_token", + "email_translatebreakstocrlf", + "encode_qheader", + "encoding_iso88591", + "encoding_utf8", + "encrypt_blowfish", + "encrypt_crammd5", + "encrypt_hmac", + "encrypt_md5", + "eol", + "eq", + "error_code_aborted", + "error_code_dividebyzero", + "error_code_filenotfound", + "error_code_invalidparameter", + "error_code_methodnotfound", + "error_code_networkerror", + "error_code_noerror", + "error_code_resnotfound", + "error_code_runtimeassertion", + "error_code", + "error_msg_aborted", + "error_msg_dividebyzero", + "error_msg_filenotfound", + "error_msg_invalidparameter", + "error_msg_methodnotfound", + "error_msg_networkerror", + "error_msg_noerror", + "error_msg_resnotfound", + "error_msg_runtimeassertion", + "error_msg", + "error_obj", + "error_pop", + "error_push", + "error_reset", + "error_stack", + "escape_tag", + "evdns_resolve_ipv4", + "evdns_resolve_ipv6", + "evdns_resolve_reverse_ipv6", + "evdns_resolve_reverse", + "ew", + "fail_if", + "fail_ifnot", + "fail_now", + "fail", + "failure_clear", + "fastcgi_createfcgirequest", + "fastcgi_handlecon", + "fastcgi_handlereq", + "fastcgi_initialize", + "fastcgi_initiate_request", + "fcgi_abort_request", + "fcgi_authorize", + "fcgi_begin_request", + "fcgi_bodychunksize", + "fcgi_cant_mpx_conn", + "fcgi_data", + "fcgi_end_request", + "fcgi_filter", + "fcgi_get_values_result", + "fcgi_get_values", + "fcgi_keep_conn", + "fcgi_makeendrequestbody", + "fcgi_makestdoutbody", + "fcgi_max_conns", + "fcgi_max_reqs", + "fcgi_mpxs_conns", + "fcgi_null_request_id", + "fcgi_overloaded", + "fcgi_params", + "fcgi_read_timeout_seconds", + "fcgi_readparam", + "fcgi_request_complete", + "fcgi_responder", + "fcgi_stderr", + "fcgi_stdin", + "fcgi_stdout", + "fcgi_unknown_role", + "fcgi_unknown_type", + "fcgi_version_1", + "fcgi_x_stdin", + "field_name", + "field_names", + "field", + "file_copybuffersize", + "file_defaultencoding", + "file_forceroot", + "file_modechar", + "file_modeline", + "file_stderr", + "file_stdin", + "file_stdout", + "file_tempfile", + "filemakerds_initialize", + "filemakerds", + "found_count", + "ft", + "ftp_deletefile", + "ftp_getdata", + "ftp_getfile", + "ftp_getlisting", + "ftp_putdata", + "ftp_putfile", + "full", + "generateforeach", + "gt", + "gte", + "handle_failure", + "handle", + "hash_primes", + "html_comment", + "http_char_colon", + "http_char_cr", + "http_char_htab", + "http_char_lf", + "http_char_question", + "http_char_space", + "http_default_files", + "http_read_headers", + "http_read_timeout_secs", + "http_server_apps_path", + "http_server_request_logger", + "if_empty", + "if_false", + "if_null", + "if_true", + "include_cache_compare", + "include_currentpath", + "include_filepath", + "include_localpath", + "include_once", + "include_path", + "include_raw", + "include_url", + "include", + "includes", + "inline_colinfo_name_pos", + "inline_colinfo_type_pos", + "inline_colinfo_valuelist_pos", + "inline_columninfo_pos", + "inline_foundcount_pos", + "inline_namedget", + "inline_namedput", + "inline_resultrows_pos", + "inline_scopeget", + "inline_scopepop", + "inline_scopepush", + "inline", + "integer_bitor", + "integer_random", + "io_dir_dt_blk", + "io_dir_dt_chr", + "io_dir_dt_dir", + "io_dir_dt_fifo", + "io_dir_dt_lnk", + "io_dir_dt_reg", + "io_dir_dt_sock", + "io_dir_dt_unknown", + "io_dir_dt_wht", + "io_file_access", + "io_file_chdir", + "io_file_chmod", + "io_file_chown", + "io_file_dirname", + "io_file_f_dupfd", + "io_file_f_getfd", + "io_file_f_getfl", + "io_file_f_getlk", + "io_file_f_rdlck", + "io_file_f_setfd", + "io_file_f_setfl", + "io_file_f_setlk", + "io_file_f_setlkw", + "io_file_f_test", + "io_file_f_tlock", + "io_file_f_ulock", + "io_file_f_unlck", + "io_file_f_wrlck", + "io_file_fd_cloexec", + "io_file_fioasync", + "io_file_fioclex", + "io_file_fiodtype", + "io_file_fiogetown", + "io_file_fionbio", + "io_file_fionclex", + "io_file_fionread", + "io_file_fiosetown", + "io_file_getcwd", + "io_file_lchown", + "io_file_link", + "io_file_lockf", + "io_file_lstat_atime", + "io_file_lstat_mode", + "io_file_lstat_mtime", + "io_file_lstat_size", + "io_file_mkdir", + "io_file_mkfifo", + "io_file_mkstemp", + "io_file_o_append", + "io_file_o_async", + "io_file_o_creat", + "io_file_o_excl", + "io_file_o_exlock", + "io_file_o_fsync", + "io_file_o_nofollow", + "io_file_o_nonblock", + "io_file_o_rdonly", + "io_file_o_rdwr", + "io_file_o_shlock", + "io_file_o_sync", + "io_file_o_trunc", + "io_file_o_wronly", + "io_file_pipe", + "io_file_readlink", + "io_file_realpath", + "io_file_remove", + "io_file_rename", + "io_file_rmdir", + "io_file_s_ifblk", + "io_file_s_ifchr", + "io_file_s_ifdir", + "io_file_s_ififo", + "io_file_s_iflnk", + "io_file_s_ifmt", + "io_file_s_ifreg", + "io_file_s_ifsock", + "io_file_s_irgrp", + "io_file_s_iroth", + "io_file_s_irusr", + "io_file_s_irwxg", + "io_file_s_irwxo", + "io_file_s_irwxu", + "io_file_s_isgid", + "io_file_s_isuid", + "io_file_s_isvtx", + "io_file_s_iwgrp", + "io_file_s_iwoth", + "io_file_s_iwusr", + "io_file_s_ixgrp", + "io_file_s_ixoth", + "io_file_s_ixusr", + "io_file_seek_cur", + "io_file_seek_end", + "io_file_seek_set", + "io_file_stat_atime", + "io_file_stat_mode", + "io_file_stat_mtime", + "io_file_stat_size", + "io_file_stderr", + "io_file_stdin", + "io_file_stdout", + "io_file_symlink", + "io_file_tempnam", + "io_file_truncate", + "io_file_umask", + "io_file_unlink", + "io_net_accept", + "io_net_af_inet", + "io_net_af_inet6", + "io_net_af_unix", + "io_net_bind", + "io_net_connect", + "io_net_getpeername", + "io_net_getsockname", + "io_net_ipproto_ip", + "io_net_ipproto_udp", + "io_net_listen", + "io_net_msg_oob", + "io_net_msg_peek", + "io_net_msg_waitall", + "io_net_recv", + "io_net_recvfrom", + "io_net_send", + "io_net_sendto", + "io_net_shut_rd", + "io_net_shut_rdwr", + "io_net_shut_wr", + "io_net_shutdown", + "io_net_so_acceptconn", + "io_net_so_broadcast", + "io_net_so_debug", + "io_net_so_dontroute", + "io_net_so_error", + "io_net_so_keepalive", + "io_net_so_linger", + "io_net_so_oobinline", + "io_net_so_rcvbuf", + "io_net_so_rcvlowat", + "io_net_so_rcvtimeo", + "io_net_so_reuseaddr", + "io_net_so_sndbuf", + "io_net_so_sndlowat", + "io_net_so_sndtimeo", + "io_net_so_timestamp", + "io_net_so_type", + "io_net_so_useloopback", + "io_net_sock_dgram", + "io_net_sock_raw", + "io_net_sock_rdm", + "io_net_sock_seqpacket", + "io_net_sock_stream", + "io_net_socket", + "io_net_sol_socket", + "io_net_ssl_accept", + "io_net_ssl_begin", + "io_net_ssl_connect", + "io_net_ssl_end", + "io_net_ssl_error", + "io_net_ssl_errorstring", + "io_net_ssl_funcerrorstring", + "io_net_ssl_liberrorstring", + "io_net_ssl_read", + "io_net_ssl_reasonerrorstring", + "io_net_ssl_setacceptstate", + "io_net_ssl_setconnectstate", + "io_net_ssl_setverifylocations", + "io_net_ssl_shutdown", + "io_net_ssl_usecertificatechainfile", + "io_net_ssl_useprivatekeyfile", + "io_net_ssl_write", + "java_jvm_create", + "java_jvm_getenv", + "jdbc_initialize", + "json_back_slash", + "json_back_space", + "json_close_array", + "json_close_object", + "json_colon", + "json_comma", + "json_consume_array", + "json_consume_object", + "json_consume_string", + "json_consume_token", + "json_cr", + "json_debug", + "json_deserialize", + "json_e_lower", + "json_e_upper", + "json_f_lower", + "json_form_feed", + "json_forward_slash", + "json_lf", + "json_n_lower", + "json_negative", + "json_open_array", + "json_open_object", + "json_period", + "json_positive", + "json_quote_double", + "json_rpccall", + "json_serialize", + "json_t_lower", + "json_tab", + "json_white_space", + "keycolumn_name", + "keycolumn_value", + "keyfield_name", + "keyfield_value", + "lasso_currentaction", + "lasso_errorreporting", + "lasso_executiontimelimit", + "lasso_methodexists", + "lasso_tagexists", + "lasso_uniqueid", + "lasso_version", + "lassoapp_current_app", + "lassoapp_current_include", + "lassoapp_do_with_include", + "lassoapp_exists", + "lassoapp_find_missing_file", + "lassoapp_format_mod_date", + "lassoapp_get_capabilities_name", + "lassoapp_include_current", + "lassoapp_include", + "lassoapp_initialize_db", + "lassoapp_initialize", + "lassoapp_invoke_resource", + "lassoapp_issourcefileextension", + "lassoapp_link", + "lassoapp_load_module", + "lassoapp_mime_get", + "lassoapp_mime_type_appcache", + "lassoapp_mime_type_css", + "lassoapp_mime_type_csv", + "lassoapp_mime_type_doc", + "lassoapp_mime_type_docx", + "lassoapp_mime_type_eof", + "lassoapp_mime_type_eot", + "lassoapp_mime_type_gif", + "lassoapp_mime_type_html", + "lassoapp_mime_type_ico", + "lassoapp_mime_type_jpg", + "lassoapp_mime_type_js", + "lassoapp_mime_type_lasso", + "lassoapp_mime_type_map", + "lassoapp_mime_type_pdf", + "lassoapp_mime_type_png", + "lassoapp_mime_type_ppt", + "lassoapp_mime_type_rss", + "lassoapp_mime_type_svg", + "lassoapp_mime_type_swf", + "lassoapp_mime_type_tif", + "lassoapp_mime_type_ttf", + "lassoapp_mime_type_txt", + "lassoapp_mime_type_woff", + "lassoapp_mime_type_xaml", + "lassoapp_mime_type_xap", + "lassoapp_mime_type_xbap", + "lassoapp_mime_type_xhr", + "lassoapp_mime_type_xml", + "lassoapp_mime_type_zip", + "lassoapp_path_to_method_name", + "lassoapp_settingsdb", + "layout_name", + "lcapi_datasourceadd", + "lcapi_datasourcecloseconnection", + "lcapi_datasourcedelete", + "lcapi_datasourceduplicate", + "lcapi_datasourceexecsql", + "lcapi_datasourcefindall", + "lcapi_datasourceimage", + "lcapi_datasourceinfo", + "lcapi_datasourceinit", + "lcapi_datasourcematchesname", + "lcapi_datasourcenames", + "lcapi_datasourcenothing", + "lcapi_datasourceopand", + "lcapi_datasourceopany", + "lcapi_datasourceopbw", + "lcapi_datasourceopct", + "lcapi_datasourceopeq", + "lcapi_datasourceopew", + "lcapi_datasourceopft", + "lcapi_datasourceopgt", + "lcapi_datasourceopgteq", + "lcapi_datasourceopin", + "lcapi_datasourceoplt", + "lcapi_datasourceoplteq", + "lcapi_datasourceopnbw", + "lcapi_datasourceopnct", + "lcapi_datasourceopneq", + "lcapi_datasourceopnew", + "lcapi_datasourceopnin", + "lcapi_datasourceopno", + "lcapi_datasourceopnot", + "lcapi_datasourceopnrx", + "lcapi_datasourceopor", + "lcapi_datasourceoprx", + "lcapi_datasourcepreparesql", + "lcapi_datasourceprotectionnone", + "lcapi_datasourceprotectionreadonly", + "lcapi_datasourcerandom", + "lcapi_datasourceschemanames", + "lcapi_datasourcescripts", + "lcapi_datasourcesearch", + "lcapi_datasourcesortascending", + "lcapi_datasourcesortcustom", + "lcapi_datasourcesortdescending", + "lcapi_datasourcetablenames", + "lcapi_datasourceterm", + "lcapi_datasourcetickle", + "lcapi_datasourcetypeblob", + "lcapi_datasourcetypeboolean", + "lcapi_datasourcetypedate", + "lcapi_datasourcetypedecimal", + "lcapi_datasourcetypeinteger", + "lcapi_datasourcetypestring", + "lcapi_datasourceunpreparesql", + "lcapi_datasourceupdate", + "lcapi_fourchartointeger", + "lcapi_listdatasources", + "lcapi_loadmodule", + "lcapi_loadmodules", + "lcapi_updatedatasourceslist", + "ldap_scope_base", + "ldap_scope_children", + "ldap_scope_onelevel", + "ldap_scope_subtree", + "library_once", + "library", + "ljapi_initialize", + "locale_availablelocales", + "locale_canada", + "locale_canadafrench", + "locale_china", + "locale_chinese", + "locale_default", + "locale_english", + "locale_format_style_date_time", + "locale_format_style_default", + "locale_format_style_full", + "locale_format_style_long", + "locale_format_style_medium", + "locale_format_style_none", + "locale_format_style_short", + "locale_format", + "locale_france", + "locale_french", + "locale_german", + "locale_germany", + "locale_isocountries", + "locale_isolanguages", + "locale_italian", + "locale_italy", + "locale_japan", + "locale_japanese", + "locale_korea", + "locale_korean", + "locale_prc", + "locale_setdefault", + "locale_simplifiedchinese", + "locale_taiwan", + "locale_traditionalchinese", + "locale_uk", + "locale_us", + "log_always", + "log_critical", + "log_deprecated", + "log_destination_console", + "log_destination_database", + "log_destination_file", + "log_detail", + "log_initialize", + "log_level_critical", + "log_level_deprecated", + "log_level_detail", + "log_level_sql", + "log_level_warning", + "log_max_file_size", + "log_setdestination", + "log_sql", + "log_trim_file_size", + "log_warning", + "log", + "loop_abort", + "loop_continue", + "loop_count", + "loop_key_pop", + "loop_key_push", + "loop_key", + "loop_pop", + "loop_push", + "loop_value_pop", + "loop_value_push", + "loop_value", + "loop", + "lt", + "lte", + "main_thread_only", + "max", + "maxrecords_value", + "median", + "method_name", + "micros", + "millis", + "min", + "minimal", + "mongo_insert_continue_on_error", + "mongo_insert_no_validate", + "mongo_insert_none", + "mongo_query_await_data", + "mongo_query_exhaust", + "mongo_query_no_cursor_timeout", + "mongo_query_none", + "mongo_query_oplog_replay", + "mongo_query_partial", + "mongo_query_slave_ok", + "mongo_query_tailable_cursor", + "mongo_remove_none", + "mongo_remove_single_remove", + "mongo_update_multi_update", + "mongo_update_no_validate", + "mongo_update_none", + "mongo_update_upsert", + "mustache_compile_file", + "mustache_compile_string", + "mustache_include", + "mysqlds", + "namespace_global", + "namespace_import", + "namespace_using", + "nbw", + "ncn", + "neq", + "net_connectinprogress", + "net_connectok", + "net_typessl", + "net_typessltcp", + "net_typessludp", + "net_typetcp", + "net_typeudp", + "net_waitread", + "net_waittimeout", + "net_waitwrite", + "new", + "none", + "nrx", + "nslookup", + "odbc_session_driver_mssql", + "odbc", + "output_none", + "output", + "pdf_package", + "pdf_rectangle", + "pdf_serve", + "pi", + "portal", + "postgresql", + "process", + "protect_now", + "protect", + "queriable_average", + "queriable_defaultcompare", + "queriable_do", + "queriable_internal_combinebindings", + "queriable_max", + "queriable_min", + "queriable_qsort", + "queriable_reversecompare", + "queriable_sum", + "random_seed", + "range", + "records_array", + "records_map", + "records", + "redirect_url", + "referer_url", + "referrer_url", + "register_thread", + "register", + "response_filepath", + "response_localpath", + "response_path", + "response_realm", + "response_root", + "resultset_count", + "resultset", + "resultsets", + "rows_array", + "rows_impl", + "rows", + "rx", + "schema_name", + "security_database", + "security_default_realm", + "security_initialize", + "security_table_groups", + "security_table_ug_map", + "security_table_users", + "selected", + "series", + "server_admin", + "server_ip", + "server_name", + "server_port", + "server_protocol", + "server_push", + "server_signature", + "server_software", + "session_abort", + "session_addvar", + "session_decorate", + "session_deleteexpired", + "session_end", + "session_getdefaultdriver", + "session_id", + "session_initialize", + "session_removevar", + "session_result", + "session_setdefaultdriver", + "session_start", + "shown_count", + "shown_first", + "shown_last", + "site_id", + "site_name", + "skiprecords_value", + "sleep", + "split_thread", + "sqlite_abort", + "sqlite_auth", + "sqlite_blob", + "sqlite_busy", + "sqlite_cantopen", + "sqlite_constraint", + "sqlite_corrupt", + "sqlite_createdb", + "sqlite_done", + "sqlite_empty", + "sqlite_error", + "sqlite_float", + "sqlite_format", + "sqlite_full", + "sqlite_integer", + "sqlite_internal", + "sqlite_interrupt", + "sqlite_ioerr", + "sqlite_locked", + "sqlite_mismatch", + "sqlite_misuse", + "sqlite_nolfs", + "sqlite_nomem", + "sqlite_notadb", + "sqlite_notfound", + "sqlite_null", + "sqlite_ok", + "sqlite_perm", + "sqlite_protocol", + "sqlite_range", + "sqlite_readonly", + "sqlite_row", + "sqlite_schema", + "sqlite_setsleepmillis", + "sqlite_setsleeptries", + "sqlite_text", + "sqlite_toobig", + "sqliteconnector", + "staticarray_join", + "stdout", + "stdoutnl", + "string_validcharset", + "suspend", + "sys_appspath", + "sys_chroot", + "sys_clock", + "sys_clockspersec", + "sys_credits", + "sys_databasespath", + "sys_detach_exec", + "sys_difftime", + "sys_dll_ext", + "sys_drand48", + "sys_environ", + "sys_eol", + "sys_erand48", + "sys_errno", + "sys_exec_pid_to_os_pid", + "sys_exec", + "sys_exit", + "sys_fork", + "sys_garbagecollect", + "sys_getbytessincegc", + "sys_getchar", + "sys_getegid", + "sys_getenv", + "sys_geteuid", + "sys_getgid", + "sys_getgrnam", + "sys_getheapfreebytes", + "sys_getheapsize", + "sys_getlogin", + "sys_getpid", + "sys_getppid", + "sys_getpwnam", + "sys_getpwuid", + "sys_getstartclock", + "sys_getthreadcount", + "sys_getuid", + "sys_growheapby", + "sys_homepath", + "sys_is_full_path", + "sys_is_windows", + "sys_isfullpath", + "sys_iswindows", + "sys_iterate", + "sys_jrand48", + "sys_kill_exec", + "sys_kill", + "sys_lcong48", + "sys_librariespath", + "sys_listtraits", + "sys_listtypes", + "sys_listunboundmethods", + "sys_loadlibrary", + "sys_lrand48", + "sys_masterhomepath", + "sys_mrand48", + "sys_nrand48", + "sys_pid_exec", + "sys_pointersize", + "sys_rand", + "sys_random", + "sys_seed48", + "sys_setenv", + "sys_setgid", + "sys_setsid", + "sys_setuid", + "sys_sigabrt", + "sys_sigalrm", + "sys_sigbus", + "sys_sigchld", + "sys_sigcont", + "sys_sigfpe", + "sys_sighup", + "sys_sigill", + "sys_sigint", + "sys_sigkill", + "sys_sigpipe", + "sys_sigprof", + "sys_sigquit", + "sys_sigsegv", + "sys_sigstop", + "sys_sigsys", + "sys_sigterm", + "sys_sigtrap", + "sys_sigtstp", + "sys_sigttin", + "sys_sigttou", + "sys_sigurg", + "sys_sigusr1", + "sys_sigusr2", + "sys_sigvtalrm", + "sys_sigxcpu", + "sys_sigxfsz", + "sys_srand", + "sys_srand48", + "sys_srandom", + "sys_strerror", + "sys_supportpath", + "sys_test_exec", + "sys_time", + "sys_uname", + "sys_unsetenv", + "sys_usercapimodulepath", + "sys_userstartuppath", + "sys_version", + "sys_wait_exec", + "sys_waitpid", + "sys_wcontinued", + "sys_while", + "sys_wnohang", + "sys_wuntraced", + "table_name", + "tag_exists", + "tag_name", + "thread_var_get", + "thread_var_pop", + "thread_var_push", + "threadvar_find", + "threadvar_get", + "threadvar_set_asrt", + "threadvar_set", + "timer", + "token_value", + "treemap", + "u_lb_alphabetic", + "u_lb_ambiguous", + "u_lb_break_after", + "u_lb_break_before", + "u_lb_break_both", + "u_lb_break_symbols", + "u_lb_carriage_return", + "u_lb_close_punctuation", + "u_lb_combining_mark", + "u_lb_complex_context", + "u_lb_contingent_break", + "u_lb_exclamation", + "u_lb_glue", + "u_lb_h2", + "u_lb_h3", + "u_lb_hyphen", + "u_lb_ideographic", + "u_lb_infix_numeric", + "u_lb_inseparable", + "u_lb_jl", + "u_lb_jt", + "u_lb_jv", + "u_lb_line_feed", + "u_lb_mandatory_break", + "u_lb_next_line", + "u_lb_nonstarter", + "u_lb_numeric", + "u_lb_open_punctuation", + "u_lb_postfix_numeric", + "u_lb_prefix_numeric", + "u_lb_quotation", + "u_lb_space", + "u_lb_surrogate", + "u_lb_unknown", + "u_lb_word_joiner", + "u_lb_zwspace", + "u_nt_decimal", + "u_nt_digit", + "u_nt_none", + "u_nt_numeric", + "u_sb_aterm", + "u_sb_close", + "u_sb_format", + "u_sb_lower", + "u_sb_numeric", + "u_sb_oletter", + "u_sb_other", + "u_sb_sep", + "u_sb_sp", + "u_sb_sterm", + "u_sb_upper", + "u_wb_aletter", + "u_wb_extendnumlet", + "u_wb_format", + "u_wb_katakana", + "u_wb_midletter", + "u_wb_midnum", + "u_wb_numeric", + "u_wb_other", + "ucal_ampm", + "ucal_dayofmonth", + "ucal_dayofweek", + "ucal_dayofweekinmonth", + "ucal_dayofyear", + "ucal_daysinfirstweek", + "ucal_dowlocal", + "ucal_dstoffset", + "ucal_era", + "ucal_extendedyear", + "ucal_firstdayofweek", + "ucal_hour", + "ucal_hourofday", + "ucal_julianday", + "ucal_lenient", + "ucal_listtimezones", + "ucal_millisecond", + "ucal_millisecondsinday", + "ucal_minute", + "ucal_month", + "ucal_second", + "ucal_weekofmonth", + "ucal_weekofyear", + "ucal_year", + "ucal_yearwoy", + "ucal_zoneoffset", + "uchar_age", + "uchar_alphabetic", + "uchar_ascii_hex_digit", + "uchar_bidi_class", + "uchar_bidi_control", + "uchar_bidi_mirrored", + "uchar_bidi_mirroring_glyph", + "uchar_block", + "uchar_canonical_combining_class", + "uchar_case_folding", + "uchar_case_sensitive", + "uchar_dash", + "uchar_decomposition_type", + "uchar_default_ignorable_code_point", + "uchar_deprecated", + "uchar_diacritic", + "uchar_east_asian_width", + "uchar_extender", + "uchar_full_composition_exclusion", + "uchar_general_category_mask", + "uchar_general_category", + "uchar_grapheme_base", + "uchar_grapheme_cluster_break", + "uchar_grapheme_extend", + "uchar_grapheme_link", + "uchar_hangul_syllable_type", + "uchar_hex_digit", + "uchar_hyphen", + "uchar_id_continue", + "uchar_ideographic", + "uchar_ids_binary_operator", + "uchar_ids_trinary_operator", + "uchar_iso_comment", + "uchar_join_control", + "uchar_joining_group", + "uchar_joining_type", + "uchar_lead_canonical_combining_class", + "uchar_line_break", + "uchar_logical_order_exception", + "uchar_lowercase_mapping", + "uchar_lowercase", + "uchar_math", + "uchar_name", + "uchar_nfc_inert", + "uchar_nfc_quick_check", + "uchar_nfd_inert", + "uchar_nfd_quick_check", + "uchar_nfkc_inert", + "uchar_nfkc_quick_check", + "uchar_nfkd_inert", + "uchar_nfkd_quick_check", + "uchar_noncharacter_code_point", + "uchar_numeric_type", + "uchar_numeric_value", + "uchar_pattern_syntax", + "uchar_pattern_white_space", + "uchar_posix_alnum", + "uchar_posix_blank", + "uchar_posix_graph", + "uchar_posix_print", + "uchar_posix_xdigit", + "uchar_quotation_mark", + "uchar_radical", + "uchar_s_term", + "uchar_script", + "uchar_segment_starter", + "uchar_sentence_break", + "uchar_simple_case_folding", + "uchar_simple_lowercase_mapping", + "uchar_simple_titlecase_mapping", + "uchar_simple_uppercase_mapping", + "uchar_soft_dotted", + "uchar_terminal_punctuation", + "uchar_titlecase_mapping", + "uchar_trail_canonical_combining_class", + "uchar_unicode_1_name", + "uchar_unified_ideograph", + "uchar_uppercase_mapping", + "uchar_uppercase", + "uchar_variation_selector", + "uchar_white_space", + "uchar_word_break", + "uchar_xid_continue", + "uncompress", + "usage", + "uuid_compare", + "uuid_copy", + "uuid_generate_random", + "uuid_generate_time", + "uuid_generate", + "uuid_is_null", + "uuid_parse", + "uuid_unparse_lower", + "uuid_unparse_upper", + "uuid_unparse", + "value_list", + "value_listitem", + "valuelistitem", + "var_keys", + "var_values", + "wap_isenabled", + "wap_maxbuttons", + "wap_maxcolumns", + "wap_maxhorzpixels", + "wap_maxrows", + "wap_maxvertpixels", + "web_handlefcgirequest", + "web_node_content_representation_css", + "web_node_content_representation_html", + "web_node_content_representation_js", + "web_node_content_representation_xhr", + "web_node_forpath", + "web_nodes_initialize", + "web_nodes_normalizeextension", + "web_nodes_processcontentnode", + "web_nodes_requesthandler", + "web_response_nodesentry", + "web_router_database", + "web_router_initialize", + "websocket_handler_timeout", + "wexitstatus", + "wifcontinued", + "wifexited", + "wifsignaled", + "wifstopped", + "wstopsig", + "wtermsig", + "xml_transform", + "xml", + "zip_add_dir", + "zip_add", + "zip_checkcons", + "zip_close", + "zip_cm_bzip2", + "zip_cm_default", + "zip_cm_deflate", + "zip_cm_deflate64", + "zip_cm_implode", + "zip_cm_pkware_implode", + "zip_cm_reduce_1", + "zip_cm_reduce_2", + "zip_cm_reduce_3", + "zip_cm_reduce_4", + "zip_cm_shrink", + "zip_cm_store", + "zip_create", + "zip_delete", + "zip_em_3des_112", + "zip_em_3des_168", + "zip_em_aes_128", + "zip_em_aes_192", + "zip_em_aes_256", + "zip_em_des", + "zip_em_none", + "zip_em_rc2_old", + "zip_em_rc2", + "zip_em_rc4", + "zip_em_trad_pkware", + "zip_em_unknown", + "zip_er_changed", + "zip_er_close", + "zip_er_compnotsupp", + "zip_er_crc", + "zip_er_deleted", + "zip_er_eof", + "zip_er_exists", + "zip_er_incons", + "zip_er_internal", + "zip_er_inval", + "zip_er_memory", + "zip_er_multidisk", + "zip_er_noent", + "zip_er_nozip", + "zip_er_ok", + "zip_er_open", + "zip_er_read", + "zip_er_remove", + "zip_er_rename", + "zip_er_seek", + "zip_er_tmpopen", + "zip_er_write", + "zip_er_zipclosed", + "zip_er_zlib", + "zip_error_get_sys_type", + "zip_error_get", + "zip_error_to_str", + "zip_et_none", + "zip_et_sys", + "zip_et_zlib", + "zip_excl", + "zip_fclose", + "zip_file_error_get", + "zip_file_strerror", + "zip_fl_compressed", + "zip_fl_nocase", + "zip_fl_nodir", + "zip_fl_unchanged", + "zip_fopen_index", + "zip_fopen", + "zip_fread", + "zip_get_archive_comment", + "zip_get_file_comment", + "zip_get_name", + "zip_get_num_files", + "zip_name_locate", + "zip_open", + "zip_rename", + "zip_replace", + "zip_set_archive_comment", + "zip_set_file_comment", + "zip_stat_index", + "zip_stat", + "zip_strerror", + "zip_unchange_all", + "zip_unchange_archive", + "zip_unchange", + "zlib_version", + ), + "Lasso 8 Tags": ( + "__char", + "__sync_timestamp__", + "_admin_addgroup", + "_admin_adduser", + "_admin_defaultconnector", + "_admin_defaultconnectornames", + "_admin_defaultdatabase", + "_admin_defaultfield", + "_admin_defaultgroup", + "_admin_defaulthost", + "_admin_defaulttable", + "_admin_defaultuser", + "_admin_deleteconnector", + "_admin_deletedatabase", + "_admin_deletefield", + "_admin_deletegroup", + "_admin_deletehost", + "_admin_deletetable", + "_admin_deleteuser", + "_admin_duplicategroup", + "_admin_internaldatabase", + "_admin_listconnectors", + "_admin_listdatabases", + "_admin_listfields", + "_admin_listgroups", + "_admin_listhosts", + "_admin_listtables", + "_admin_listusers", + "_admin_refreshconnector", + "_admin_refreshsecurity", + "_admin_servicepath", + "_admin_updateconnector", + "_admin_updatedatabase", + "_admin_updatefield", + "_admin_updategroup", + "_admin_updatehost", + "_admin_updatetable", + "_admin_updateuser", + "_chartfx_activation_string", + "_chartfx_getchallengestring", + "_chop_args", + "_chop_mimes", + "_client_addr_old", + "_client_address_old", + "_client_ip_old", + "_database_names", + "_datasource_reload", + "_date_current", + "_date_format", + "_date_msec", + "_date_parse", + "_execution_timelimit", + "_file_chmod", + "_initialize", + "_jdbc_acceptsurl", + "_jdbc_debug", + "_jdbc_deletehost", + "_jdbc_driverclasses", + "_jdbc_driverinfo", + "_jdbc_metainfo", + "_jdbc_propertyinfo", + "_jdbc_setdriver", + "_lasso_param", + "_log_helper", + "_proc_noparam", + "_proc_withparam", + "_recursion_limit", + "_request_param", + "_security_binaryexpiration", + "_security_flushcaches", + "_security_isserialized", + "_security_serialexpiration", + "_srand", + "_strict_literals", + "_substring", + "_xmlrpc_exconverter", + "_xmlrpc_inconverter", + "_xmlrpc_xmlinconverter", + "abort", + "action_addinfo", + "action_addrecord", + "action_param", + "action_params", + "action_setfoundcount", + "action_setrecordid", + "action_settotalcount", + "action_statement", + "admin_allowedfileroots", + "admin_changeuser", + "admin_createuser", + "admin_currentgroups", + "admin_currentuserid", + "admin_currentusername", + "admin_getpref", + "admin_groupassignuser", + "admin_grouplistusers", + "admin_groupremoveuser", + "admin_lassoservicepath", + "admin_listgroups", + "admin_refreshlicensing", + "admin_refreshsecurity", + "admin_reloaddatasource", + "admin_removepref", + "admin_setpref", + "admin_userexists", + "admin_userlistgroups", + "all", + "and", + "array", + "array_iterator", + "auth", + "auth_admin", + "auth_auth", + "auth_custom", + "auth_group", + "auth_prompt", + "auth_user", + "base64", + "bean", + "bigint", + "bom_utf16be", + "bom_utf16le", + "bom_utf32be", + "bom_utf32le", + "bom_utf8", + "boolean", + "bw", + "bytes", + "cache", + "cache_delete", + "cache_empty", + "cache_exists", + "cache_fetch", + "cache_internal", + "cache_maintenance", + "cache_object", + "cache_preferences", + "cache_store", + "case", + "chartfx", + "chartfx_records", + "chartfx_serve", + "checked", + "choice_list", + "choice_listitem", + "choicelistitem", + "cipher_decrypt", + "cipher_digest", + "cipher_encrypt", + "cipher_hmac", + "cipher_keylength", + "cipher_list", + "click_text", + "client_addr", + "client_address", + "client_authorization", + "client_browser", + "client_contentlength", + "client_contenttype", + "client_cookielist", + "client_cookies", + "client_encoding", + "client_formmethod", + "client_getargs", + "client_getparams", + "client_headers", + "client_ip", + "client_ipfrominteger", + "client_iptointeger", + "client_password", + "client_postargs", + "client_postparams", + "client_type", + "client_url", + "client_username", + "cn", + "column", + "column_name", + "column_names", + "compare_beginswith", + "compare_contains", + "compare_endswith", + "compare_equalto", + "compare_greaterthan", + "compare_greaterthanorequals", + "compare_greaterthanorequls", + "compare_lessthan", + "compare_lessthanorequals", + "compare_notbeginswith", + "compare_notcontains", + "compare_notendswith", + "compare_notequalto", + "compare_notregexp", + "compare_regexp", + "compare_strictequalto", + "compare_strictnotequalto", + "compiler_removecacheddoc", + "compiler_setdefaultparserflags", + "compress", + "content_body", + "content_encoding", + "content_header", + "content_type", + "cookie", + "cookie_set", + "curl_ftp_getfile", + "curl_ftp_getlisting", + "curl_ftp_putfile", + "curl_include_url", + "currency", + "database_changecolumn", + "database_changefield", + "database_createcolumn", + "database_createfield", + "database_createtable", + "database_fmcontainer", + "database_hostinfo", + "database_inline", + "database_name", + "database_nameitem", + "database_names", + "database_realname", + "database_removecolumn", + "database_removefield", + "database_removetable", + "database_repeating", + "database_repeating_valueitem", + "database_repeatingvalueitem", + "database_schemanameitem", + "database_schemanames", + "database_tablecolumn", + "database_tablenameitem", + "database_tablenames", + "datasource_name", + "datasource_register", + "date", + "date__date_current", + "date__date_format", + "date__date_msec", + "date__date_parse", + "date_add", + "date_date", + "date_difference", + "date_duration", + "date_format", + "date_getcurrentdate", + "date_getday", + "date_getdayofweek", + "date_gethour", + "date_getlocaltimezone", + "date_getminute", + "date_getmonth", + "date_getsecond", + "date_gettime", + "date_getyear", + "date_gmttolocal", + "date_localtogmt", + "date_maximum", + "date_minimum", + "date_msec", + "date_setformat", + "date_subtract", + "db_layoutnameitem", + "db_layoutnames", + "db_nameitem", + "db_names", + "db_tablenameitem", + "db_tablenames", + "dbi_column_names", + "dbi_field_names", + "decimal", + "decimal_setglobaldefaultprecision", + "decode_base64", + "decode_bheader", + "decode_hex", + "decode_html", + "decode_json", + "decode_qheader", + "decode_quotedprintable", + "decode_quotedprintablebytes", + "decode_url", + "decode_xml", + "decompress", + "decrypt_blowfish", + "decrypt_blowfish2", + "default", + "define_atbegin", + "define_atend", + "define_constant", + "define_prototype", + "define_tag", + "define_tagp", + "define_type", + "define_typep", + "deserialize", + "directory_directorynameitem", + "directory_lister", + "directory_nameitem", + "directorynameitem", + "dns_default", + "dns_lookup", + "dns_response", + "duration", + "else", + "email_batch", + "email_compose", + "email_digestchallenge", + "email_digestresponse", + "email_extract", + "email_findemails", + "email_immediate", + "email_merge", + "email_mxerror", + "email_mxlookup", + "email_parse", + "email_pop", + "email_queue", + "email_result", + "email_safeemail", + "email_send", + "email_smtp", + "email_status", + "email_token", + "email_translatebreakstocrlf", + "encode_base64", + "encode_bheader", + "encode_break", + "encode_breaks", + "encode_crc32", + "encode_hex", + "encode_html", + "encode_htmltoxml", + "encode_json", + "encode_qheader", + "encode_quotedprintable", + "encode_quotedprintablebytes", + "encode_set", + "encode_smart", + "encode_sql", + "encode_sql92", + "encode_stricturl", + "encode_url", + "encode_xml", + "encrypt_blowfish", + "encrypt_blowfish2", + "encrypt_crammd5", + "encrypt_hmac", + "encrypt_md5", + "eq", + "error_adderror", + "error_code", + "error_code_aborted", + "error_code_assert", + "error_code_bof", + "error_code_connectioninvalid", + "error_code_couldnotclosefile", + "error_code_couldnotcreateoropenfile", + "error_code_couldnotdeletefile", + "error_code_couldnotdisposememory", + "error_code_couldnotlockmemory", + "error_code_couldnotreadfromfile", + "error_code_couldnotunlockmemory", + "error_code_couldnotwritetofile", + "error_code_criterianotmet", + "error_code_datasourceerror", + "error_code_directoryfull", + "error_code_diskfull", + "error_code_dividebyzero", + "error_code_eof", + "error_code_failure", + "error_code_fieldrestriction", + "error_code_file", + "error_code_filealreadyexists", + "error_code_filecorrupt", + "error_code_fileinvalid", + "error_code_fileinvalidaccessmode", + "error_code_fileisclosed", + "error_code_fileisopen", + "error_code_filelocked", + "error_code_filenotfound", + "error_code_fileunlocked", + "error_code_httpfilenotfound", + "error_code_illegalinstruction", + "error_code_illegaluseoffrozeninstance", + "error_code_invaliddatabase", + "error_code_invalidfilename", + "error_code_invalidmemoryobject", + "error_code_invalidparameter", + "error_code_invalidpassword", + "error_code_invalidpathname", + "error_code_invalidusername", + "error_code_ioerror", + "error_code_loopaborted", + "error_code_memory", + "error_code_network", + "error_code_nilpointer", + "error_code_noerr", + "error_code_nopermission", + "error_code_outofmemory", + "error_code_outofstackspace", + "error_code_overflow", + "error_code_postconditionfailed", + "error_code_preconditionfailed", + "error_code_resnotfound", + "error_code_resource", + "error_code_streamreaderror", + "error_code_streamwriteerror", + "error_code_syntaxerror", + "error_code_tagnotfound", + "error_code_unknownerror", + "error_code_varnotfound", + "error_code_volumedoesnotexist", + "error_code_webactionnotsupported", + "error_code_webadderror", + "error_code_webdeleteerror", + "error_code_webmodulenotfound", + "error_code_webnosuchobject", + "error_code_webrepeatingrelatedfield", + "error_code_webrequiredfieldmissing", + "error_code_webtimeout", + "error_code_webupdateerror", + "error_columnrestriction", + "error_currenterror", + "error_databaseconnectionunavailable", + "error_databasetimeout", + "error_deleteerror", + "error_fieldrestriction", + "error_filenotfound", + "error_invaliddatabase", + "error_invalidpassword", + "error_invalidusername", + "error_modulenotfound", + "error_msg", + "error_msg_aborted", + "error_msg_assert", + "error_msg_bof", + "error_msg_connectioninvalid", + "error_msg_couldnotclosefile", + "error_msg_couldnotcreateoropenfile", + "error_msg_couldnotdeletefile", + "error_msg_couldnotdisposememory", + "error_msg_couldnotlockmemory", + "error_msg_couldnotreadfromfile", + "error_msg_couldnotunlockmemory", + "error_msg_couldnotwritetofile", + "error_msg_criterianotmet", + "error_msg_datasourceerror", + "error_msg_directoryfull", + "error_msg_diskfull", + "error_msg_dividebyzero", + "error_msg_eof", + "error_msg_failure", + "error_msg_fieldrestriction", + "error_msg_file", + "error_msg_filealreadyexists", + "error_msg_filecorrupt", + "error_msg_fileinvalid", + "error_msg_fileinvalidaccessmode", + "error_msg_fileisclosed", + "error_msg_fileisopen", + "error_msg_filelocked", + "error_msg_filenotfound", + "error_msg_fileunlocked", + "error_msg_httpfilenotfound", + "error_msg_illegalinstruction", + "error_msg_illegaluseoffrozeninstance", + "error_msg_invaliddatabase", + "error_msg_invalidfilename", + "error_msg_invalidmemoryobject", + "error_msg_invalidparameter", + "error_msg_invalidpassword", + "error_msg_invalidpathname", + "error_msg_invalidusername", + "error_msg_ioerror", + "error_msg_loopaborted", + "error_msg_memory", + "error_msg_network", + "error_msg_nilpointer", + "error_msg_noerr", + "error_msg_nopermission", + "error_msg_outofmemory", + "error_msg_outofstackspace", + "error_msg_overflow", + "error_msg_postconditionfailed", + "error_msg_preconditionfailed", + "error_msg_resnotfound", + "error_msg_resource", + "error_msg_streamreaderror", + "error_msg_streamwriteerror", + "error_msg_syntaxerror", + "error_msg_tagnotfound", + "error_msg_unknownerror", + "error_msg_varnotfound", + "error_msg_volumedoesnotexist", + "error_msg_webactionnotsupported", + "error_msg_webadderror", + "error_msg_webdeleteerror", + "error_msg_webmodulenotfound", + "error_msg_webnosuchobject", + "error_msg_webrepeatingrelatedfield", + "error_msg_webrequiredfieldmissing", + "error_msg_webtimeout", + "error_msg_webupdateerror", + "error_noerror", + "error_nopermission", + "error_norecordsfound", + "error_outofmemory", + "error_pop", + "error_push", + "error_reqcolumnmissing", + "error_reqfieldmissing", + "error_requiredcolumnmissing", + "error_requiredfieldmissing", + "error_reset", + "error_seterrorcode", + "error_seterrormessage", + "error_updateerror", + "euro", + "event_schedule", + "ew", + "fail", + "fail_if", + "false", + "field", + "field_name", + "field_names", + "file", + "file_autoresolvefullpaths", + "file_chmod", + "file_control", + "file_copy", + "file_create", + "file_creationdate", + "file_currenterror", + "file_delete", + "file_exists", + "file_getlinecount", + "file_getsize", + "file_isdirectory", + "file_listdirectory", + "file_moddate", + "file_modechar", + "file_modeline", + "file_move", + "file_openread", + "file_openreadwrite", + "file_openwrite", + "file_openwriteappend", + "file_openwritetruncate", + "file_probeeol", + "file_processuploads", + "file_read", + "file_readline", + "file_rename", + "file_serve", + "file_setsize", + "file_stream", + "file_streamcopy", + "file_uploads", + "file_waitread", + "file_waittimeout", + "file_waitwrite", + "file_write", + "find_soap_ops", + "form_param", + "found_count", + "ft", + "ftp_getfile", + "ftp_getlisting", + "ftp_putfile", + "full", + "global", + "global_defined", + "global_remove", + "global_reset", + "globals", + "gt", + "gte", + "handle", + "handle_error", + "header", + "html_comment", + "http_getfile", + "ical_alarm", + "ical_attribute", + "ical_calendar", + "ical_daylight", + "ical_event", + "ical_freebusy", + "ical_item", + "ical_journal", + "ical_parse", + "ical_standard", + "ical_timezone", + "ical_todo", + "if", + "if_empty", + "if_false", + "if_null", + "if_true", + "image", + "image_url", + "img", + "include", + "include_cgi", + "include_currentpath", + "include_once", + "include_raw", + "include_url", + "inline", + "integer", + "iterate", + "iterator", + "java", + "java_bean", + "json_records", + "json_rpccall", + "keycolumn_name", + "keycolumn_value", + "keyfield_name", + "keyfield_value", + "lasso_comment", + "lasso_currentaction", + "lasso_datasourceis", + "lasso_datasourceis4d", + "lasso_datasourceisfilemaker", + "lasso_datasourceisfilemaker7", + "lasso_datasourceisfilemaker9", + "lasso_datasourceisfilemakersa", + "lasso_datasourceisjdbc", + "lasso_datasourceislassomysql", + "lasso_datasourceismysql", + "lasso_datasourceisodbc", + "lasso_datasourceisopenbase", + "lasso_datasourceisoracle", + "lasso_datasourceispostgresql", + "lasso_datasourceisspotlight", + "lasso_datasourceissqlite", + "lasso_datasourceissqlserver", + "lasso_datasourcemodulename", + "lasso_datatype", + "lasso_disableondemand", + "lasso_errorreporting", + "lasso_executiontimelimit", + "lasso_parser", + "lasso_process", + "lasso_sessionid", + "lasso_siteid", + "lasso_siteisrunning", + "lasso_sitename", + "lasso_siterestart", + "lasso_sitestart", + "lasso_sitestop", + "lasso_tagexists", + "lasso_tagmodulename", + "lasso_uniqueid", + "lasso_updatecheck", + "lasso_uptime", + "lasso_version", + "lassoapp_create", + "lassoapp_dump", + "lassoapp_flattendir", + "lassoapp_getappdata", + "lassoapp_link", + "lassoapp_list", + "lassoapp_process", + "lassoapp_unitize", + "layout_name", + "ldap", + "ldap_scope_base", + "ldap_scope_onelevel", + "ldap_scope_subtree", + "ldml", + "ldml_ldml", + "library", + "library_once", + "link", + "link_currentaction", + "link_currentactionparams", + "link_currentactionurl", + "link_currentgroup", + "link_currentgroupparams", + "link_currentgroupurl", + "link_currentrecord", + "link_currentrecordparams", + "link_currentrecordurl", + "link_currentsearch", + "link_currentsearchparams", + "link_currentsearchurl", + "link_detail", + "link_detailparams", + "link_detailurl", + "link_firstgroup", + "link_firstgroupparams", + "link_firstgroupurl", + "link_firstrecord", + "link_firstrecordparams", + "link_firstrecordurl", + "link_lastgroup", + "link_lastgroupparams", + "link_lastgroupurl", + "link_lastrecord", + "link_lastrecordparams", + "link_lastrecordurl", + "link_nextgroup", + "link_nextgroupparams", + "link_nextgroupurl", + "link_nextrecord", + "link_nextrecordparams", + "link_nextrecordurl", + "link_params", + "link_prevgroup", + "link_prevgroupparams", + "link_prevgroupurl", + "link_prevrecord", + "link_prevrecordparams", + "link_prevrecordurl", + "link_setformat", + "link_url", + "list", + "list_additem", + "list_fromlist", + "list_fromstring", + "list_getitem", + "list_itemcount", + "list_iterator", + "list_removeitem", + "list_replaceitem", + "list_reverseiterator", + "list_tostring", + "literal", + "ljax_end", + "ljax_hastarget", + "ljax_include", + "ljax_start", + "ljax_target", + "local", + "local_defined", + "local_remove", + "local_reset", + "locale_format", + "locals", + "log", + "log_always", + "log_critical", + "log_deprecated", + "log_destination_console", + "log_destination_database", + "log_destination_file", + "log_detail", + "log_level_critical", + "log_level_deprecated", + "log_level_detail", + "log_level_sql", + "log_level_warning", + "log_setdestination", + "log_sql", + "log_warning", + "logicalop_value", + "logicaloperator_value", + "loop", + "loop_abort", + "loop_continue", + "loop_count", + "lt", + "lte", + "magick_image", + "map", + "map_iterator", + "match_comparator", + "match_notrange", + "match_notregexp", + "match_range", + "match_regexp", + "math_abs", + "math_acos", + "math_add", + "math_asin", + "math_atan", + "math_atan2", + "math_ceil", + "math_converteuro", + "math_cos", + "math_div", + "math_exp", + "math_floor", + "math_internal_rand", + "math_internal_randmax", + "math_internal_srand", + "math_ln", + "math_log", + "math_log10", + "math_max", + "math_min", + "math_mod", + "math_mult", + "math_pow", + "math_random", + "math_range", + "math_rint", + "math_roman", + "math_round", + "math_sin", + "math_sqrt", + "math_sub", + "math_tan", + "maxrecords_value", + "memory_session_driver", + "mime_type", + "minimal", + "misc__srand", + "misc_randomnumber", + "misc_roman", + "misc_valid_creditcard", + "mysql_session_driver", + "named_param", + "namespace_current", + "namespace_delimiter", + "namespace_exists", + "namespace_file_fullpathexists", + "namespace_global", + "namespace_import", + "namespace_load", + "namespace_page", + "namespace_unload", + "namespace_using", + "neq", + "net", + "net_connectinprogress", + "net_connectok", + "net_typessl", + "net_typessltcp", + "net_typessludp", + "net_typetcp", + "net_typeudp", + "net_waitread", + "net_waittimeout", + "net_waitwrite", + "no_default_output", + "none", + "noprocess", + "not", + "nrx", + "nslookup", + "null", + "object", + "once", + "oneoff", + "op_logicalvalue", + "operator_logicalvalue", + "option", + "or", + "os_process", + "output", + "output_none", + "pair", + "params_up", + "pdf_barcode", + "pdf_color", + "pdf_doc", + "pdf_font", + "pdf_image", + "pdf_list", + "pdf_read", + "pdf_serve", + "pdf_table", + "pdf_text", + "percent", + "portal", + "postcondition", + "precondition", + "prettyprintingnsmap", + "prettyprintingtypemap", + "priorityqueue", + "private", + "proc_convert", + "proc_convertbody", + "proc_convertone", + "proc_extract", + "proc_extractone", + "proc_find", + "proc_first", + "proc_foreach", + "proc_get", + "proc_join", + "proc_lasso", + "proc_last", + "proc_map_entry", + "proc_null", + "proc_regexp", + "proc_xml", + "proc_xslt", + "process", + "protect", + "queue", + "rand", + "randomnumber", + "raw", + "recid_value", + "record_count", + "recordcount", + "recordid_value", + "records", + "records_array", + "records_map", + "redirect_url", + "reference", + "referer", + "referer_url", + "referrer", + "referrer_url", + "regexp", + "repeating", + "repeating_valueitem", + "repeatingvalueitem", + "repetition", + "req_column", + "req_field", + "required_column", + "required_field", + "response_fileexists", + "response_filepath", + "response_localpath", + "response_path", + "response_realm", + "resultset", + "resultset_count", + "return", + "return_value", + "reverseiterator", + "roman", + "row_count", + "rows", + "rows_array", + "run_children", + "rx", + "schema_name", + "scientific", + "search_args", + "search_arguments", + "search_columnitem", + "search_fielditem", + "search_operatoritem", + "search_opitem", + "search_valueitem", + "searchfielditem", + "searchoperatoritem", + "searchopitem", + "searchvalueitem", + "select", + "selected", + "self", + "serialize", + "series", + "server_date", + "server_day", + "server_ip", + "server_name", + "server_port", + "server_push", + "server_siteisrunning", + "server_sitestart", + "server_sitestop", + "server_time", + "session_abort", + "session_addoutputfilter", + "session_addvar", + "session_addvariable", + "session_deleteexpired", + "session_driver", + "session_end", + "session_id", + "session_removevar", + "session_removevariable", + "session_result", + "session_setdriver", + "session_start", + "set", + "set_iterator", + "set_reverseiterator", + "shown_count", + "shown_first", + "shown_last", + "site_atbegin", + "site_id", + "site_name", + "site_restart", + "skiprecords_value", + "sleep", + "soap_convertpartstopairs", + "soap_definetag", + "soap_info", + "soap_lastrequest", + "soap_lastresponse", + "soap_stub", + "sort_args", + "sort_arguments", + "sort_columnitem", + "sort_fielditem", + "sort_orderitem", + "sortcolumnitem", + "sortfielditem", + "sortorderitem", + "sqlite_createdb", + "sqlite_session_driver", + "sqlite_setsleepmillis", + "sqlite_setsleeptries", + "srand", + "stack", + "stock_quote", + "string", + "string_charfromname", + "string_concatenate", + "string_countfields", + "string_endswith", + "string_extract", + "string_findposition", + "string_findregexp", + "string_fordigit", + "string_getfield", + "string_getunicodeversion", + "string_insert", + "string_isalpha", + "string_isalphanumeric", + "string_isdigit", + "string_ishexdigit", + "string_islower", + "string_isnumeric", + "string_ispunctuation", + "string_isspace", + "string_isupper", + "string_length", + "string_lowercase", + "string_remove", + "string_removeleading", + "string_removetrailing", + "string_replace", + "string_replaceregexp", + "string_todecimal", + "string_tointeger", + "string_uppercase", + "string_validcharset", + "table_name", + "table_realname", + "tag", + "tag_name", + "tags", + "tags_find", + "tags_list", + "tcp_close", + "tcp_open", + "tcp_send", + "tcp_tcp_close", + "tcp_tcp_open", + "tcp_tcp_send", + "thread_abort", + "thread_atomic", + "thread_event", + "thread_exists", + "thread_getcurrentid", + "thread_getpriority", + "thread_info", + "thread_list", + "thread_lock", + "thread_pipe", + "thread_priority_default", + "thread_priority_high", + "thread_priority_low", + "thread_rwlock", + "thread_semaphore", + "thread_setpriority", + "token_value", + "total_records", + "treemap", + "treemap_iterator", + "true", + "url_rewrite", + "valid_creditcard", + "valid_date", + "valid_email", + "valid_url", + "value_list", + "value_listitem", + "valuelistitem", + "var", + "var_defined", + "var_remove", + "var_reset", + "var_set", + "variable", + "variable_defined", + "variable_set", + "variables", + "variant_count", + "vars", + "wap_isenabled", + "wap_maxbuttons", + "wap_maxcolumns", + "wap_maxhorzpixels", + "wap_maxrows", + "wap_maxvertpixels", + "while", + "wsdl_extract", + "wsdl_getbinding", + "wsdl_getbindingforoperation", + "wsdl_getbindingoperations", + "wsdl_getmessagenamed", + "wsdl_getmessageparts", + "wsdl_getmessagetriofromporttype", + "wsdl_getopbodystyle", + "wsdl_getopbodyuse", + "wsdl_getoperation", + "wsdl_getoplocation", + "wsdl_getopmessagetypes", + "wsdl_getopsoapaction", + "wsdl_getportaddress", + "wsdl_getportsforservice", + "wsdl_getporttype", + "wsdl_getporttypeoperation", + "wsdl_getservicedocumentation", + "wsdl_getservices", + "wsdl_gettargetnamespace", + "wsdl_issoapoperation", + "wsdl_listoperations", + "wsdl_maketest", + "xml", + "xml_extract", + "xml_rpc", + "xml_rpccall", + "xml_rw", + "xml_serve", + "xml_transform", + "xml_xml", + "xml_xmlstream", + "xmlstream", + "xsd_attribute", + "xsd_blankarraybase", + "xsd_blankbase", + "xsd_buildtype", + "xsd_cache", + "xsd_checkcardinality", + "xsd_continueall", + "xsd_continueannotation", + "xsd_continueany", + "xsd_continueanyattribute", + "xsd_continueattribute", + "xsd_continueattributegroup", + "xsd_continuechoice", + "xsd_continuecomplexcontent", + "xsd_continuecomplextype", + "xsd_continuedocumentation", + "xsd_continueextension", + "xsd_continuegroup", + "xsd_continuekey", + "xsd_continuelist", + "xsd_continuerestriction", + "xsd_continuesequence", + "xsd_continuesimplecontent", + "xsd_continuesimpletype", + "xsd_continueunion", + "xsd_deserialize", + "xsd_fullyqualifyname", + "xsd_generate", + "xsd_generateblankfromtype", + "xsd_generateblanksimpletype", + "xsd_generatetype", + "xsd_getschematype", + "xsd_issimpletype", + "xsd_loadschema", + "xsd_lookupnamespaceuri", + "xsd_lookuptype", + "xsd_processany", + "xsd_processattribute", + "xsd_processattributegroup", + "xsd_processcomplextype", + "xsd_processelement", + "xsd_processgroup", + "xsd_processimport", + "xsd_processinclude", + "xsd_processschema", + "xsd_processsimpletype", + "xsd_ref", + "xsd_type", ), - 'Lasso 8 Tags': ( - '__char', - '__sync_timestamp__', - '_admin_addgroup', - '_admin_adduser', - '_admin_defaultconnector', - '_admin_defaultconnectornames', - '_admin_defaultdatabase', - '_admin_defaultfield', - '_admin_defaultgroup', - '_admin_defaulthost', - '_admin_defaulttable', - '_admin_defaultuser', - '_admin_deleteconnector', - '_admin_deletedatabase', - '_admin_deletefield', - '_admin_deletegroup', - '_admin_deletehost', - '_admin_deletetable', - '_admin_deleteuser', - '_admin_duplicategroup', - '_admin_internaldatabase', - '_admin_listconnectors', - '_admin_listdatabases', - '_admin_listfields', - '_admin_listgroups', - '_admin_listhosts', - '_admin_listtables', - '_admin_listusers', - '_admin_refreshconnector', - '_admin_refreshsecurity', - '_admin_servicepath', - '_admin_updateconnector', - '_admin_updatedatabase', - '_admin_updatefield', - '_admin_updategroup', - '_admin_updatehost', - '_admin_updatetable', - '_admin_updateuser', - '_chartfx_activation_string', - '_chartfx_getchallengestring', - '_chop_args', - '_chop_mimes', - '_client_addr_old', - '_client_address_old', - '_client_ip_old', - '_database_names', - '_datasource_reload', - '_date_current', - '_date_format', - '_date_msec', - '_date_parse', - '_execution_timelimit', - '_file_chmod', - '_initialize', - '_jdbc_acceptsurl', - '_jdbc_debug', - '_jdbc_deletehost', - '_jdbc_driverclasses', - '_jdbc_driverinfo', - '_jdbc_metainfo', - '_jdbc_propertyinfo', - '_jdbc_setdriver', - '_lasso_param', - '_log_helper', - '_proc_noparam', - '_proc_withparam', - '_recursion_limit', - '_request_param', - '_security_binaryexpiration', - '_security_flushcaches', - '_security_isserialized', - '_security_serialexpiration', - '_srand', - '_strict_literals', - '_substring', - '_xmlrpc_exconverter', - '_xmlrpc_inconverter', - '_xmlrpc_xmlinconverter', - 'abort', - 'action_addinfo', - 'action_addrecord', - 'action_param', - 'action_params', - 'action_setfoundcount', - 'action_setrecordid', - 'action_settotalcount', - 'action_statement', - 'admin_allowedfileroots', - 'admin_changeuser', - 'admin_createuser', - 'admin_currentgroups', - 'admin_currentuserid', - 'admin_currentusername', - 'admin_getpref', - 'admin_groupassignuser', - 'admin_grouplistusers', - 'admin_groupremoveuser', - 'admin_lassoservicepath', - 'admin_listgroups', - 'admin_refreshlicensing', - 'admin_refreshsecurity', - 'admin_reloaddatasource', - 'admin_removepref', - 'admin_setpref', - 'admin_userexists', - 'admin_userlistgroups', - 'all', - 'and', - 'array', - 'array_iterator', - 'auth', - 'auth_admin', - 'auth_auth', - 'auth_custom', - 'auth_group', - 'auth_prompt', - 'auth_user', - 'base64', - 'bean', - 'bigint', - 'bom_utf16be', - 'bom_utf16le', - 'bom_utf32be', - 'bom_utf32le', - 'bom_utf8', - 'boolean', - 'bw', - 'bytes', - 'cache', - 'cache_delete', - 'cache_empty', - 'cache_exists', - 'cache_fetch', - 'cache_internal', - 'cache_maintenance', - 'cache_object', - 'cache_preferences', - 'cache_store', - 'case', - 'chartfx', - 'chartfx_records', - 'chartfx_serve', - 'checked', - 'choice_list', - 'choice_listitem', - 'choicelistitem', - 'cipher_decrypt', - 'cipher_digest', - 'cipher_encrypt', - 'cipher_hmac', - 'cipher_keylength', - 'cipher_list', - 'click_text', - 'client_addr', - 'client_address', - 'client_authorization', - 'client_browser', - 'client_contentlength', - 'client_contenttype', - 'client_cookielist', - 'client_cookies', - 'client_encoding', - 'client_formmethod', - 'client_getargs', - 'client_getparams', - 'client_headers', - 'client_ip', - 'client_ipfrominteger', - 'client_iptointeger', - 'client_password', - 'client_postargs', - 'client_postparams', - 'client_type', - 'client_url', - 'client_username', - 'cn', - 'column', - 'column_name', - 'column_names', - 'compare_beginswith', - 'compare_contains', - 'compare_endswith', - 'compare_equalto', - 'compare_greaterthan', - 'compare_greaterthanorequals', - 'compare_greaterthanorequls', - 'compare_lessthan', - 'compare_lessthanorequals', - 'compare_notbeginswith', - 'compare_notcontains', - 'compare_notendswith', - 'compare_notequalto', - 'compare_notregexp', - 'compare_regexp', - 'compare_strictequalto', - 'compare_strictnotequalto', - 'compiler_removecacheddoc', - 'compiler_setdefaultparserflags', - 'compress', - 'content_body', - 'content_encoding', - 'content_header', - 'content_type', - 'cookie', - 'cookie_set', - 'curl_ftp_getfile', - 'curl_ftp_getlisting', - 'curl_ftp_putfile', - 'curl_include_url', - 'currency', - 'database_changecolumn', - 'database_changefield', - 'database_createcolumn', - 'database_createfield', - 'database_createtable', - 'database_fmcontainer', - 'database_hostinfo', - 'database_inline', - 'database_name', - 'database_nameitem', - 'database_names', - 'database_realname', - 'database_removecolumn', - 'database_removefield', - 'database_removetable', - 'database_repeating', - 'database_repeating_valueitem', - 'database_repeatingvalueitem', - 'database_schemanameitem', - 'database_schemanames', - 'database_tablecolumn', - 'database_tablenameitem', - 'database_tablenames', - 'datasource_name', - 'datasource_register', - 'date', - 'date__date_current', - 'date__date_format', - 'date__date_msec', - 'date__date_parse', - 'date_add', - 'date_date', - 'date_difference', - 'date_duration', - 'date_format', - 'date_getcurrentdate', - 'date_getday', - 'date_getdayofweek', - 'date_gethour', - 'date_getlocaltimezone', - 'date_getminute', - 'date_getmonth', - 'date_getsecond', - 'date_gettime', - 'date_getyear', - 'date_gmttolocal', - 'date_localtogmt', - 'date_maximum', - 'date_minimum', - 'date_msec', - 'date_setformat', - 'date_subtract', - 'db_layoutnameitem', - 'db_layoutnames', - 'db_nameitem', - 'db_names', - 'db_tablenameitem', - 'db_tablenames', - 'dbi_column_names', - 'dbi_field_names', - 'decimal', - 'decimal_setglobaldefaultprecision', - 'decode_base64', - 'decode_bheader', - 'decode_hex', - 'decode_html', - 'decode_json', - 'decode_qheader', - 'decode_quotedprintable', - 'decode_quotedprintablebytes', - 'decode_url', - 'decode_xml', - 'decompress', - 'decrypt_blowfish', - 'decrypt_blowfish2', - 'default', - 'define_atbegin', - 'define_atend', - 'define_constant', - 'define_prototype', - 'define_tag', - 'define_tagp', - 'define_type', - 'define_typep', - 'deserialize', - 'directory_directorynameitem', - 'directory_lister', - 'directory_nameitem', - 'directorynameitem', - 'dns_default', - 'dns_lookup', - 'dns_response', - 'duration', - 'else', - 'email_batch', - 'email_compose', - 'email_digestchallenge', - 'email_digestresponse', - 'email_extract', - 'email_findemails', - 'email_immediate', - 'email_merge', - 'email_mxerror', - 'email_mxlookup', - 'email_parse', - 'email_pop', - 'email_queue', - 'email_result', - 'email_safeemail', - 'email_send', - 'email_smtp', - 'email_status', - 'email_token', - 'email_translatebreakstocrlf', - 'encode_base64', - 'encode_bheader', - 'encode_break', - 'encode_breaks', - 'encode_crc32', - 'encode_hex', - 'encode_html', - 'encode_htmltoxml', - 'encode_json', - 'encode_qheader', - 'encode_quotedprintable', - 'encode_quotedprintablebytes', - 'encode_set', - 'encode_smart', - 'encode_sql', - 'encode_sql92', - 'encode_stricturl', - 'encode_url', - 'encode_xml', - 'encrypt_blowfish', - 'encrypt_blowfish2', - 'encrypt_crammd5', - 'encrypt_hmac', - 'encrypt_md5', - 'eq', - 'error_adderror', - 'error_code', - 'error_code_aborted', - 'error_code_assert', - 'error_code_bof', - 'error_code_connectioninvalid', - 'error_code_couldnotclosefile', - 'error_code_couldnotcreateoropenfile', - 'error_code_couldnotdeletefile', - 'error_code_couldnotdisposememory', - 'error_code_couldnotlockmemory', - 'error_code_couldnotreadfromfile', - 'error_code_couldnotunlockmemory', - 'error_code_couldnotwritetofile', - 'error_code_criterianotmet', - 'error_code_datasourceerror', - 'error_code_directoryfull', - 'error_code_diskfull', - 'error_code_dividebyzero', - 'error_code_eof', - 'error_code_failure', - 'error_code_fieldrestriction', - 'error_code_file', - 'error_code_filealreadyexists', - 'error_code_filecorrupt', - 'error_code_fileinvalid', - 'error_code_fileinvalidaccessmode', - 'error_code_fileisclosed', - 'error_code_fileisopen', - 'error_code_filelocked', - 'error_code_filenotfound', - 'error_code_fileunlocked', - 'error_code_httpfilenotfound', - 'error_code_illegalinstruction', - 'error_code_illegaluseoffrozeninstance', - 'error_code_invaliddatabase', - 'error_code_invalidfilename', - 'error_code_invalidmemoryobject', - 'error_code_invalidparameter', - 'error_code_invalidpassword', - 'error_code_invalidpathname', - 'error_code_invalidusername', - 'error_code_ioerror', - 'error_code_loopaborted', - 'error_code_memory', - 'error_code_network', - 'error_code_nilpointer', - 'error_code_noerr', - 'error_code_nopermission', - 'error_code_outofmemory', - 'error_code_outofstackspace', - 'error_code_overflow', - 'error_code_postconditionfailed', - 'error_code_preconditionfailed', - 'error_code_resnotfound', - 'error_code_resource', - 'error_code_streamreaderror', - 'error_code_streamwriteerror', - 'error_code_syntaxerror', - 'error_code_tagnotfound', - 'error_code_unknownerror', - 'error_code_varnotfound', - 'error_code_volumedoesnotexist', - 'error_code_webactionnotsupported', - 'error_code_webadderror', - 'error_code_webdeleteerror', - 'error_code_webmodulenotfound', - 'error_code_webnosuchobject', - 'error_code_webrepeatingrelatedfield', - 'error_code_webrequiredfieldmissing', - 'error_code_webtimeout', - 'error_code_webupdateerror', - 'error_columnrestriction', - 'error_currenterror', - 'error_databaseconnectionunavailable', - 'error_databasetimeout', - 'error_deleteerror', - 'error_fieldrestriction', - 'error_filenotfound', - 'error_invaliddatabase', - 'error_invalidpassword', - 'error_invalidusername', - 'error_modulenotfound', - 'error_msg', - 'error_msg_aborted', - 'error_msg_assert', - 'error_msg_bof', - 'error_msg_connectioninvalid', - 'error_msg_couldnotclosefile', - 'error_msg_couldnotcreateoropenfile', - 'error_msg_couldnotdeletefile', - 'error_msg_couldnotdisposememory', - 'error_msg_couldnotlockmemory', - 'error_msg_couldnotreadfromfile', - 'error_msg_couldnotunlockmemory', - 'error_msg_couldnotwritetofile', - 'error_msg_criterianotmet', - 'error_msg_datasourceerror', - 'error_msg_directoryfull', - 'error_msg_diskfull', - 'error_msg_dividebyzero', - 'error_msg_eof', - 'error_msg_failure', - 'error_msg_fieldrestriction', - 'error_msg_file', - 'error_msg_filealreadyexists', - 'error_msg_filecorrupt', - 'error_msg_fileinvalid', - 'error_msg_fileinvalidaccessmode', - 'error_msg_fileisclosed', - 'error_msg_fileisopen', - 'error_msg_filelocked', - 'error_msg_filenotfound', - 'error_msg_fileunlocked', - 'error_msg_httpfilenotfound', - 'error_msg_illegalinstruction', - 'error_msg_illegaluseoffrozeninstance', - 'error_msg_invaliddatabase', - 'error_msg_invalidfilename', - 'error_msg_invalidmemoryobject', - 'error_msg_invalidparameter', - 'error_msg_invalidpassword', - 'error_msg_invalidpathname', - 'error_msg_invalidusername', - 'error_msg_ioerror', - 'error_msg_loopaborted', - 'error_msg_memory', - 'error_msg_network', - 'error_msg_nilpointer', - 'error_msg_noerr', - 'error_msg_nopermission', - 'error_msg_outofmemory', - 'error_msg_outofstackspace', - 'error_msg_overflow', - 'error_msg_postconditionfailed', - 'error_msg_preconditionfailed', - 'error_msg_resnotfound', - 'error_msg_resource', - 'error_msg_streamreaderror', - 'error_msg_streamwriteerror', - 'error_msg_syntaxerror', - 'error_msg_tagnotfound', - 'error_msg_unknownerror', - 'error_msg_varnotfound', - 'error_msg_volumedoesnotexist', - 'error_msg_webactionnotsupported', - 'error_msg_webadderror', - 'error_msg_webdeleteerror', - 'error_msg_webmodulenotfound', - 'error_msg_webnosuchobject', - 'error_msg_webrepeatingrelatedfield', - 'error_msg_webrequiredfieldmissing', - 'error_msg_webtimeout', - 'error_msg_webupdateerror', - 'error_noerror', - 'error_nopermission', - 'error_norecordsfound', - 'error_outofmemory', - 'error_pop', - 'error_push', - 'error_reqcolumnmissing', - 'error_reqfieldmissing', - 'error_requiredcolumnmissing', - 'error_requiredfieldmissing', - 'error_reset', - 'error_seterrorcode', - 'error_seterrormessage', - 'error_updateerror', - 'euro', - 'event_schedule', - 'ew', - 'fail', - 'fail_if', - 'false', - 'field', - 'field_name', - 'field_names', - 'file', - 'file_autoresolvefullpaths', - 'file_chmod', - 'file_control', - 'file_copy', - 'file_create', - 'file_creationdate', - 'file_currenterror', - 'file_delete', - 'file_exists', - 'file_getlinecount', - 'file_getsize', - 'file_isdirectory', - 'file_listdirectory', - 'file_moddate', - 'file_modechar', - 'file_modeline', - 'file_move', - 'file_openread', - 'file_openreadwrite', - 'file_openwrite', - 'file_openwriteappend', - 'file_openwritetruncate', - 'file_probeeol', - 'file_processuploads', - 'file_read', - 'file_readline', - 'file_rename', - 'file_serve', - 'file_setsize', - 'file_stream', - 'file_streamcopy', - 'file_uploads', - 'file_waitread', - 'file_waittimeout', - 'file_waitwrite', - 'file_write', - 'find_soap_ops', - 'form_param', - 'found_count', - 'ft', - 'ftp_getfile', - 'ftp_getlisting', - 'ftp_putfile', - 'full', - 'global', - 'global_defined', - 'global_remove', - 'global_reset', - 'globals', - 'gt', - 'gte', - 'handle', - 'handle_error', - 'header', - 'html_comment', - 'http_getfile', - 'ical_alarm', - 'ical_attribute', - 'ical_calendar', - 'ical_daylight', - 'ical_event', - 'ical_freebusy', - 'ical_item', - 'ical_journal', - 'ical_parse', - 'ical_standard', - 'ical_timezone', - 'ical_todo', - 'if', - 'if_empty', - 'if_false', - 'if_null', - 'if_true', - 'image', - 'image_url', - 'img', - 'include', - 'include_cgi', - 'include_currentpath', - 'include_once', - 'include_raw', - 'include_url', - 'inline', - 'integer', - 'iterate', - 'iterator', - 'java', - 'java_bean', - 'json_records', - 'json_rpccall', - 'keycolumn_name', - 'keycolumn_value', - 'keyfield_name', - 'keyfield_value', - 'lasso_comment', - 'lasso_currentaction', - 'lasso_datasourceis', - 'lasso_datasourceis4d', - 'lasso_datasourceisfilemaker', - 'lasso_datasourceisfilemaker7', - 'lasso_datasourceisfilemaker9', - 'lasso_datasourceisfilemakersa', - 'lasso_datasourceisjdbc', - 'lasso_datasourceislassomysql', - 'lasso_datasourceismysql', - 'lasso_datasourceisodbc', - 'lasso_datasourceisopenbase', - 'lasso_datasourceisoracle', - 'lasso_datasourceispostgresql', - 'lasso_datasourceisspotlight', - 'lasso_datasourceissqlite', - 'lasso_datasourceissqlserver', - 'lasso_datasourcemodulename', - 'lasso_datatype', - 'lasso_disableondemand', - 'lasso_errorreporting', - 'lasso_executiontimelimit', - 'lasso_parser', - 'lasso_process', - 'lasso_sessionid', - 'lasso_siteid', - 'lasso_siteisrunning', - 'lasso_sitename', - 'lasso_siterestart', - 'lasso_sitestart', - 'lasso_sitestop', - 'lasso_tagexists', - 'lasso_tagmodulename', - 'lasso_uniqueid', - 'lasso_updatecheck', - 'lasso_uptime', - 'lasso_version', - 'lassoapp_create', - 'lassoapp_dump', - 'lassoapp_flattendir', - 'lassoapp_getappdata', - 'lassoapp_link', - 'lassoapp_list', - 'lassoapp_process', - 'lassoapp_unitize', - 'layout_name', - 'ldap', - 'ldap_scope_base', - 'ldap_scope_onelevel', - 'ldap_scope_subtree', - 'ldml', - 'ldml_ldml', - 'library', - 'library_once', - 'link', - 'link_currentaction', - 'link_currentactionparams', - 'link_currentactionurl', - 'link_currentgroup', - 'link_currentgroupparams', - 'link_currentgroupurl', - 'link_currentrecord', - 'link_currentrecordparams', - 'link_currentrecordurl', - 'link_currentsearch', - 'link_currentsearchparams', - 'link_currentsearchurl', - 'link_detail', - 'link_detailparams', - 'link_detailurl', - 'link_firstgroup', - 'link_firstgroupparams', - 'link_firstgroupurl', - 'link_firstrecord', - 'link_firstrecordparams', - 'link_firstrecordurl', - 'link_lastgroup', - 'link_lastgroupparams', - 'link_lastgroupurl', - 'link_lastrecord', - 'link_lastrecordparams', - 'link_lastrecordurl', - 'link_nextgroup', - 'link_nextgroupparams', - 'link_nextgroupurl', - 'link_nextrecord', - 'link_nextrecordparams', - 'link_nextrecordurl', - 'link_params', - 'link_prevgroup', - 'link_prevgroupparams', - 'link_prevgroupurl', - 'link_prevrecord', - 'link_prevrecordparams', - 'link_prevrecordurl', - 'link_setformat', - 'link_url', - 'list', - 'list_additem', - 'list_fromlist', - 'list_fromstring', - 'list_getitem', - 'list_itemcount', - 'list_iterator', - 'list_removeitem', - 'list_replaceitem', - 'list_reverseiterator', - 'list_tostring', - 'literal', - 'ljax_end', - 'ljax_hastarget', - 'ljax_include', - 'ljax_start', - 'ljax_target', - 'local', - 'local_defined', - 'local_remove', - 'local_reset', - 'locale_format', - 'locals', - 'log', - 'log_always', - 'log_critical', - 'log_deprecated', - 'log_destination_console', - 'log_destination_database', - 'log_destination_file', - 'log_detail', - 'log_level_critical', - 'log_level_deprecated', - 'log_level_detail', - 'log_level_sql', - 'log_level_warning', - 'log_setdestination', - 'log_sql', - 'log_warning', - 'logicalop_value', - 'logicaloperator_value', - 'loop', - 'loop_abort', - 'loop_continue', - 'loop_count', - 'lt', - 'lte', - 'magick_image', - 'map', - 'map_iterator', - 'match_comparator', - 'match_notrange', - 'match_notregexp', - 'match_range', - 'match_regexp', - 'math_abs', - 'math_acos', - 'math_add', - 'math_asin', - 'math_atan', - 'math_atan2', - 'math_ceil', - 'math_converteuro', - 'math_cos', - 'math_div', - 'math_exp', - 'math_floor', - 'math_internal_rand', - 'math_internal_randmax', - 'math_internal_srand', - 'math_ln', - 'math_log', - 'math_log10', - 'math_max', - 'math_min', - 'math_mod', - 'math_mult', - 'math_pow', - 'math_random', - 'math_range', - 'math_rint', - 'math_roman', - 'math_round', - 'math_sin', - 'math_sqrt', - 'math_sub', - 'math_tan', - 'maxrecords_value', - 'memory_session_driver', - 'mime_type', - 'minimal', - 'misc__srand', - 'misc_randomnumber', - 'misc_roman', - 'misc_valid_creditcard', - 'mysql_session_driver', - 'named_param', - 'namespace_current', - 'namespace_delimiter', - 'namespace_exists', - 'namespace_file_fullpathexists', - 'namespace_global', - 'namespace_import', - 'namespace_load', - 'namespace_page', - 'namespace_unload', - 'namespace_using', - 'neq', - 'net', - 'net_connectinprogress', - 'net_connectok', - 'net_typessl', - 'net_typessltcp', - 'net_typessludp', - 'net_typetcp', - 'net_typeudp', - 'net_waitread', - 'net_waittimeout', - 'net_waitwrite', - 'no_default_output', - 'none', - 'noprocess', - 'not', - 'nrx', - 'nslookup', - 'null', - 'object', - 'once', - 'oneoff', - 'op_logicalvalue', - 'operator_logicalvalue', - 'option', - 'or', - 'os_process', - 'output', - 'output_none', - 'pair', - 'params_up', - 'pdf_barcode', - 'pdf_color', - 'pdf_doc', - 'pdf_font', - 'pdf_image', - 'pdf_list', - 'pdf_read', - 'pdf_serve', - 'pdf_table', - 'pdf_text', - 'percent', - 'portal', - 'postcondition', - 'precondition', - 'prettyprintingnsmap', - 'prettyprintingtypemap', - 'priorityqueue', - 'private', - 'proc_convert', - 'proc_convertbody', - 'proc_convertone', - 'proc_extract', - 'proc_extractone', - 'proc_find', - 'proc_first', - 'proc_foreach', - 'proc_get', - 'proc_join', - 'proc_lasso', - 'proc_last', - 'proc_map_entry', - 'proc_null', - 'proc_regexp', - 'proc_xml', - 'proc_xslt', - 'process', - 'protect', - 'queue', - 'rand', - 'randomnumber', - 'raw', - 'recid_value', - 'record_count', - 'recordcount', - 'recordid_value', - 'records', - 'records_array', - 'records_map', - 'redirect_url', - 'reference', - 'referer', - 'referer_url', - 'referrer', - 'referrer_url', - 'regexp', - 'repeating', - 'repeating_valueitem', - 'repeatingvalueitem', - 'repetition', - 'req_column', - 'req_field', - 'required_column', - 'required_field', - 'response_fileexists', - 'response_filepath', - 'response_localpath', - 'response_path', - 'response_realm', - 'resultset', - 'resultset_count', - 'return', - 'return_value', - 'reverseiterator', - 'roman', - 'row_count', - 'rows', - 'rows_array', - 'run_children', - 'rx', - 'schema_name', - 'scientific', - 'search_args', - 'search_arguments', - 'search_columnitem', - 'search_fielditem', - 'search_operatoritem', - 'search_opitem', - 'search_valueitem', - 'searchfielditem', - 'searchoperatoritem', - 'searchopitem', - 'searchvalueitem', - 'select', - 'selected', - 'self', - 'serialize', - 'series', - 'server_date', - 'server_day', - 'server_ip', - 'server_name', - 'server_port', - 'server_push', - 'server_siteisrunning', - 'server_sitestart', - 'server_sitestop', - 'server_time', - 'session_abort', - 'session_addoutputfilter', - 'session_addvar', - 'session_addvariable', - 'session_deleteexpired', - 'session_driver', - 'session_end', - 'session_id', - 'session_removevar', - 'session_removevariable', - 'session_result', - 'session_setdriver', - 'session_start', - 'set', - 'set_iterator', - 'set_reverseiterator', - 'shown_count', - 'shown_first', - 'shown_last', - 'site_atbegin', - 'site_id', - 'site_name', - 'site_restart', - 'skiprecords_value', - 'sleep', - 'soap_convertpartstopairs', - 'soap_definetag', - 'soap_info', - 'soap_lastrequest', - 'soap_lastresponse', - 'soap_stub', - 'sort_args', - 'sort_arguments', - 'sort_columnitem', - 'sort_fielditem', - 'sort_orderitem', - 'sortcolumnitem', - 'sortfielditem', - 'sortorderitem', - 'sqlite_createdb', - 'sqlite_session_driver', - 'sqlite_setsleepmillis', - 'sqlite_setsleeptries', - 'srand', - 'stack', - 'stock_quote', - 'string', - 'string_charfromname', - 'string_concatenate', - 'string_countfields', - 'string_endswith', - 'string_extract', - 'string_findposition', - 'string_findregexp', - 'string_fordigit', - 'string_getfield', - 'string_getunicodeversion', - 'string_insert', - 'string_isalpha', - 'string_isalphanumeric', - 'string_isdigit', - 'string_ishexdigit', - 'string_islower', - 'string_isnumeric', - 'string_ispunctuation', - 'string_isspace', - 'string_isupper', - 'string_length', - 'string_lowercase', - 'string_remove', - 'string_removeleading', - 'string_removetrailing', - 'string_replace', - 'string_replaceregexp', - 'string_todecimal', - 'string_tointeger', - 'string_uppercase', - 'string_validcharset', - 'table_name', - 'table_realname', - 'tag', - 'tag_name', - 'tags', - 'tags_find', - 'tags_list', - 'tcp_close', - 'tcp_open', - 'tcp_send', - 'tcp_tcp_close', - 'tcp_tcp_open', - 'tcp_tcp_send', - 'thread_abort', - 'thread_atomic', - 'thread_event', - 'thread_exists', - 'thread_getcurrentid', - 'thread_getpriority', - 'thread_info', - 'thread_list', - 'thread_lock', - 'thread_pipe', - 'thread_priority_default', - 'thread_priority_high', - 'thread_priority_low', - 'thread_rwlock', - 'thread_semaphore', - 'thread_setpriority', - 'token_value', - 'total_records', - 'treemap', - 'treemap_iterator', - 'true', - 'url_rewrite', - 'valid_creditcard', - 'valid_date', - 'valid_email', - 'valid_url', - 'value_list', - 'value_listitem', - 'valuelistitem', - 'var', - 'var_defined', - 'var_remove', - 'var_reset', - 'var_set', - 'variable', - 'variable_defined', - 'variable_set', - 'variables', - 'variant_count', - 'vars', - 'wap_isenabled', - 'wap_maxbuttons', - 'wap_maxcolumns', - 'wap_maxhorzpixels', - 'wap_maxrows', - 'wap_maxvertpixels', - 'while', - 'wsdl_extract', - 'wsdl_getbinding', - 'wsdl_getbindingforoperation', - 'wsdl_getbindingoperations', - 'wsdl_getmessagenamed', - 'wsdl_getmessageparts', - 'wsdl_getmessagetriofromporttype', - 'wsdl_getopbodystyle', - 'wsdl_getopbodyuse', - 'wsdl_getoperation', - 'wsdl_getoplocation', - 'wsdl_getopmessagetypes', - 'wsdl_getopsoapaction', - 'wsdl_getportaddress', - 'wsdl_getportsforservice', - 'wsdl_getporttype', - 'wsdl_getporttypeoperation', - 'wsdl_getservicedocumentation', - 'wsdl_getservices', - 'wsdl_gettargetnamespace', - 'wsdl_issoapoperation', - 'wsdl_listoperations', - 'wsdl_maketest', - 'xml', - 'xml_extract', - 'xml_rpc', - 'xml_rpccall', - 'xml_rw', - 'xml_serve', - 'xml_transform', - 'xml_xml', - 'xml_xmlstream', - 'xmlstream', - 'xsd_attribute', - 'xsd_blankarraybase', - 'xsd_blankbase', - 'xsd_buildtype', - 'xsd_cache', - 'xsd_checkcardinality', - 'xsd_continueall', - 'xsd_continueannotation', - 'xsd_continueany', - 'xsd_continueanyattribute', - 'xsd_continueattribute', - 'xsd_continueattributegroup', - 'xsd_continuechoice', - 'xsd_continuecomplexcontent', - 'xsd_continuecomplextype', - 'xsd_continuedocumentation', - 'xsd_continueextension', - 'xsd_continuegroup', - 'xsd_continuekey', - 'xsd_continuelist', - 'xsd_continuerestriction', - 'xsd_continuesequence', - 'xsd_continuesimplecontent', - 'xsd_continuesimpletype', - 'xsd_continueunion', - 'xsd_deserialize', - 'xsd_fullyqualifyname', - 'xsd_generate', - 'xsd_generateblankfromtype', - 'xsd_generateblanksimpletype', - 'xsd_generatetype', - 'xsd_getschematype', - 'xsd_issimpletype', - 'xsd_loadschema', - 'xsd_lookupnamespaceuri', - 'xsd_lookuptype', - 'xsd_processany', - 'xsd_processattribute', - 'xsd_processattributegroup', - 'xsd_processcomplextype', - 'xsd_processelement', - 'xsd_processgroup', - 'xsd_processimport', - 'xsd_processinclude', - 'xsd_processschema', - 'xsd_processsimpletype', - 'xsd_ref', - 'xsd_type', - ) } MEMBERS = { - 'Member Methods': ( - 'abort', - 'abs', - 'accept_charset', - 'accept', - 'acceptconnections', - 'acceptdeserializedelement', - 'acceptnossl', - 'acceptpost', - 'accesskey', - 'acos', - 'acosh', - 'action', - 'actionparams', - 'active_tick', - 'add', - 'addatend', - 'addattachment', - 'addbarcode', - 'addchapter', - 'addcheckbox', - 'addcolumninfo', - 'addcombobox', - 'addcomment', - 'addcomponent', - 'addcomponents', - 'addcss', - 'adddatabasetable', - 'adddatasource', - 'adddatasourcedatabase', - 'adddatasourcehost', - 'adddir', - 'adddirpath', - 'addendjs', - 'addendjstext', - 'adderror', - 'addfavicon', - 'addfile', - 'addgroup', - 'addheader', - 'addhiddenfield', - 'addhtmlpart', - 'addimage', - 'addjavascript', - 'addjs', - 'addjstext', - 'addlist', - 'addmathfunctions', - 'addmember', - 'addoneheaderline', - 'addpage', - 'addparagraph', - 'addpart', - 'addpasswordfield', - 'addphrase', - 'addpostdispatch', - 'addpredispatch', - 'addradiobutton', - 'addradiogroup', - 'addresetbutton', - 'addrow', - 'addsection', - 'addselectlist', - 'addset', - 'addsubmitbutton', - 'addsubnode', - 'addtable', - 'addtask', - 'addtext', - 'addtextarea', - 'addtextfield', - 'addtextpart', - 'addtobuffer', - 'addtrait', - 'adduser', - 'addusertogroup', - 'addwarning', - 'addzip', - 'allocobject', - 'am', - 'ampm', - 'annotate', - 'answer', - 'apop', - 'append', - 'appendarray', - 'appendarraybegin', - 'appendarrayend', - 'appendbool', - 'appendbytes', - 'appendchar', - 'appendchild', - 'appendcolon', - 'appendcomma', - 'appenddata', - 'appenddatetime', - 'appenddbpointer', - 'appenddecimal', - 'appenddocument', - 'appendimagetolist', - 'appendinteger', - 'appendnowutc', - 'appendnull', - 'appendoid', - 'appendregex', - 'appendreplacement', - 'appendstring', - 'appendtail', - 'appendtime', - 'applyheatcolors', - 'appmessage', - 'appname', - 'appprefix', - 'appstatus', - 'arc', - 'archive', - 'arguments', - 'argumentvalue', - 'asarray', - 'asarraystring', - 'asasync', - 'asbytes', - 'ascopy', - 'ascopydeep', - 'asdecimal', - 'asgenerator', - 'asin', - 'asinh', - 'asinteger', - 'askeyedgenerator', - 'aslazystring', - 'aslist', - 'asraw', - 'asstaticarray', - 'asstring', - 'asstringhex', - 'asstringoct', - 'asxml', - 'atan', - 'atan2', - 'atanh', - 'atend', - 'atends', - 'atime', - 'attributecount', - 'attributes', - 'attrs', - 'auth', - 'authenticate', - 'authorize', - 'autocollectbuffer', - 'average', - 'back', - 'basename', - 'basepaths', - 'baseuri', - 'bcc', - 'beginssl', - 'beginswith', - 'begintls', - 'bestcharset', - 'bind_blob', - 'bind_double', - 'bind_int', - 'bind_null', - 'bind_parameter_index', - 'bind_text', - 'bind', - 'bindcount', - 'bindone', - 'bindparam', - 'bitand', - 'bitclear', - 'bitflip', - 'bitformat', - 'bitnot', - 'bitor', - 'bitset', - 'bitshiftleft', - 'bitshiftright', - 'bittest', - 'bitxor', - 'blur', - 'body', - 'bodybytes', - 'boundary', - 'bptoxml', - 'bptypetostr', - 'bucketnumber', - 'buff', - 'buildquery', - 'businessdaysbetween', - 'by', - 'bytes', - 'cachedappprefix', - 'cachedroot', - 'callboolean', - 'callbooleanmethod', - 'callbytemethod', - 'callcharmethod', - 'calldoublemethod', - 'calledname', - 'callfirst', - 'callfloat', - 'callfloatmethod', - 'callint', - 'callintmethod', - 'calllongmethod', - 'callnonvirtualbooleanmethod', - 'callnonvirtualbytemethod', - 'callnonvirtualcharmethod', - 'callnonvirtualdoublemethod', - 'callnonvirtualfloatmethod', - 'callnonvirtualintmethod', - 'callnonvirtuallongmethod', - 'callnonvirtualobjectmethod', - 'callnonvirtualshortmethod', - 'callnonvirtualvoidmethod', - 'callobject', - 'callobjectmethod', - 'callshortmethod', - 'callsite_col', - 'callsite_file', - 'callsite_line', - 'callstack', - 'callstaticboolean', - 'callstaticbooleanmethod', - 'callstaticbytemethod', - 'callstaticcharmethod', - 'callstaticdoublemethod', - 'callstaticfloatmethod', - 'callstaticint', - 'callstaticintmethod', - 'callstaticlongmethod', - 'callstaticobject', - 'callstaticobjectmethod', - 'callstaticshortmethod', - 'callstaticstring', - 'callstaticvoidmethod', - 'callstring', - 'callvoid', - 'callvoidmethod', - 'cancel', - 'cap', - 'capa', - 'capabilities', - 'capi', - 'cbrt', - 'cc', - 'ceil', - 'chardigitvalue', - 'charname', - 'charset', - 'chartype', - 'checkdebugging', - 'checked', - 'checkuser', - 'childnodes', - 'chk', - 'chmod', - 'choosecolumntype', - 'chown', - 'chunked', - 'circle', - 'class', - 'classid', - 'clear', - 'clonenode', - 'close', - 'closepath', - 'closeprepared', - 'closewrite', - 'code', - 'codebase', - 'codetype', - 'colmap', - 'colorspace', - 'column_blob', - 'column_count', - 'column_decltype', - 'column_double', - 'column_int64', - 'column_name', - 'column_text', - 'column_type', - 'command', - 'comments', - 'compare', - 'comparecodepointorder', - 'componentdelimiter', - 'components', - 'composite', - 'compress', - 'concat', - 'condtoint', - 'configureds', - 'configuredskeys', - 'connect', - 'connection', - 'connectionhandler', - 'connhandler', - 'consume_domain', - 'consume_label', - 'consume_message', - 'consume_rdata', - 'consume_string', - 'contains', - 'content_disposition', - 'content_transfer_encoding', - 'content_type', - 'content', - 'contentlength', - 'contents', - 'contenttype', - 'continuation', - 'continuationpacket', - 'continuationpoint', - 'continuationstack', - 'continue', - 'contrast', - 'conventionaltop', - 'convert', - 'cookie', - 'cookies', - 'cookiesarray', - 'cookiesary', - 'copyto', - 'cos', - 'cosh', - 'count', - 'countkeys', - 'country', - 'countusersbygroup', - 'crc', - 'create', - 'createattribute', - 'createattributens', - 'createcdatasection', - 'createcomment', - 'createdocument', - 'createdocumentfragment', - 'createdocumenttype', - 'createelement', - 'createelementns', - 'createentityreference', - 'createindex', - 'createprocessinginstruction', - 'createtable', - 'createtextnode', - 'criteria', - 'crop', - 'csscontent', - 'curl', - 'current', - 'currentfile', - 'curveto', - 'd', - 'data', - 'databasecolumnnames', - 'databasecolumns', - 'databasemap', - 'databasename', - 'datasourcecolumnnames', - 'datasourcecolumns', - 'datasourcemap', - 'date', - 'day', - 'dayofmonth', - 'dayofweek', - 'dayofweekinmonth', - 'dayofyear', - 'days', - 'daysbetween', - 'db', - 'dbtablestable', - 'debug', - 'declare', - 'decodebase64', - 'decodehex', - 'decodehtml', - 'decodeqp', - 'decodeurl', - 'decodexml', - 'decompose', - 'decomposeassignment', - 'defaultcontentrepresentation', - 'defer', - 'deg2rad', - 'dele', - 'delete', - 'deletedata', - 'deleteglobalref', - 'deletelocalref', - 'delim', - 'depth', - 'dereferencepointer', - 'describe', - 'description', - 'deserialize', - 'detach', - 'detectcharset', - 'didinclude', - 'difference', - 'digit', - 'dir', - 'displaycountry', - 'displaylanguage', - 'displayname', - 'displayscript', - 'displayvariant', - 'div', - 'dns_response', - 'do', - 'doatbegins', - 'doatends', - 'doccomment', - 'doclose', - 'doctype', - 'document', - 'documentelement', - 'documentroot', - 'domainbody', - 'done', - 'dosessions', - 'dowithclose', - 'dowlocal', - 'download', - 'drawtext', - 'drop', - 'dropindex', - 'dsdbtable', - 'dshoststable', - 'dsinfo', - 'dst', - 'dstable', - 'dstoffset', - 'dtdid', - 'dup', - 'dup2', - 'each', - 'eachbyte', - 'eachcharacter', - 'eachchild', - 'eachcomponent', - 'eachdir', - 'eachdirpath', - 'eachdirpathrecursive', - 'eachentry', - 'eachfile', - 'eachfilename', - 'eachfilepath', - 'eachfilepathrecursive', - 'eachkey', - 'eachline', - 'eachlinebreak', - 'eachmatch', - 'eachnode', - 'eachpair', - 'eachpath', - 'eachpathrecursive', - 'eachrow', - 'eachsub', - 'eachword', - 'eachwordbreak', - 'element', - 'eligiblepath', - 'eligiblepaths', - 'encodebase64', - 'encodehex', - 'encodehtml', - 'encodehtmltoxml', - 'encodemd5', - 'encodepassword', - 'encodeqp', - 'encodesql', - 'encodesql92', - 'encodeurl', - 'encodevalue', - 'encodexml', - 'encoding', - 'enctype', - 'end', - 'endjs', - 'endssl', - 'endswith', - 'endtls', - 'enhance', - 'ensurestopped', - 'entities', - 'entry', - 'env', - 'equals', - 'era', - 'erf', - 'erfc', - 'err', - 'errcode', - 'errmsg', - 'error', - 'errors', - 'errstack', - 'escape_member', - 'establisherrorstate', - 'exceptioncheck', - 'exceptionclear', - 'exceptiondescribe', - 'exceptionoccurred', - 'exchange', - 'execinits', - 'execinstalls', - 'execute', - 'executelazy', - 'executenow', - 'exists', - 'exit', - 'exitcode', - 'exp', - 'expire', - 'expireminutes', - 'expiresminutes', - 'expm1', - 'export16bits', - 'export32bits', - 'export64bits', - 'export8bits', - 'exportas', - 'exportbytes', - 'exportfdf', - 'exportpointerbits', - 'exportsigned16bits', - 'exportsigned32bits', - 'exportsigned64bits', - 'exportsigned8bits', - 'exportstring', - 'expose', - 'extendedyear', - 'extensiondelimiter', - 'extensions', - 'extract', - 'extractfast', - 'extractfastone', - 'extractimage', - 'extractone', - 'f', - 'fabs', - 'fail', - 'failnoconnectionhandler', - 'family', - 'fatalerror', - 'fcgireq', - 'fchdir', - 'fchmod', - 'fchown', - 'fd', - 'features', - 'fetchdata', - 'fieldnames', - 'fieldposition', - 'fieldstable', - 'fieldtype', - 'fieldvalue', - 'file', - 'filename', - 'filenames', - 'filequeue', - 'fileuploads', - 'fileuploadsary', - 'filterinputcolumn', - 'finalize', - 'find', - 'findall', - 'findandmodify', - 'findbucket', - 'findcase', - 'findclass', - 'findcount', - 'finddescendant', - 'findfirst', - 'findinclude', - 'findinctx', - 'findindex', - 'findlast', - 'findpattern', - 'findposition', - 'findsymbols', - 'first', - 'firstchild', - 'firstcomponent', - 'firstdayofweek', - 'firstnode', - 'fixformat', - 'flags', - 'fliph', - 'flipv', - 'floor', - 'flush', - 'foldcase', - 'foo', - 'for', - 'forcedrowid', - 'foreach', - 'foreachaccept', - 'foreachbyte', - 'foreachcharacter', - 'foreachchild', - 'foreachday', - 'foreachentry', - 'foreachfile', - 'foreachfilename', - 'foreachkey', - 'foreachline', - 'foreachlinebreak', - 'foreachmatch', - 'foreachnode', - 'foreachpair', - 'foreachpathcomponent', - 'foreachrow', - 'foreachspool', - 'foreachsub', - 'foreachwordbreak', - 'form', - 'format', - 'formatas', - 'formatcontextelement', - 'formatcontextelements', - 'formatnumber', - 'free', - 'frexp', - 'from', - 'fromname', - 'fromport', - 'fromreflectedfield', - 'fromreflectedmethod', - 'front', - 'fsync', - 'ftpdeletefile', - 'ftpgetlisting', - 'ftruncate', - 'fullpath', - 'fx', - 'gamma', - 'gatewayinterface', - 'gen', - 'generatechecksum', - 'get', - 'getabswidth', - 'getalignment', - 'getappsource', - 'getarraylength', - 'getattr', - 'getattribute', - 'getattributenamespace', - 'getattributenode', - 'getattributenodens', - 'getattributens', - 'getbarheight', - 'getbarmultiplier', - 'getbarwidth', - 'getbaseline', - 'getbold', - 'getbooleanarrayelements', - 'getbooleanarrayregion', - 'getbooleanfield', - 'getbordercolor', - 'getborderwidth', - 'getbytearrayelements', - 'getbytearrayregion', - 'getbytefield', - 'getchararrayelements', - 'getchararrayregion', - 'getcharfield', - 'getclass', - 'getcode', - 'getcolor', - 'getcolumn', - 'getcolumncount', - 'getcolumns', - 'getdatabasebyalias', - 'getdatabasebyid', - 'getdatabasebyname', - 'getdatabasehost', - 'getdatabasetable', - 'getdatabasetablebyalias', - 'getdatabasetablebyid', - 'getdatabasetablepart', - 'getdatasource', - 'getdatasourcedatabase', - 'getdatasourcedatabasebyid', - 'getdatasourcehost', - 'getdatasourceid', - 'getdatasourcename', - 'getdefaultstorage', - 'getdoublearrayelements', - 'getdoublearrayregion', - 'getdoublefield', - 'getelementbyid', - 'getelementsbytagname', - 'getelementsbytagnamens', - 'getencoding', - 'getface', - 'getfield', - 'getfieldid', - 'getfile', - 'getfloatarrayelements', - 'getfloatarrayregion', - 'getfloatfield', - 'getfont', - 'getformat', - 'getfullfontname', - 'getgroup', - 'getgroupid', - 'getheader', - 'getheaders', - 'gethostdatabase', - 'gethtmlattr', - 'gethtmlattrstring', - 'getinclude', - 'getintarrayelements', - 'getintarrayregion', - 'getintfield', - 'getisocomment', - 'getitalic', - 'getlasterror', - 'getlcapitype', - 'getlibrary', - 'getlongarrayelements', - 'getlongarrayregion', - 'getlongfield', - 'getmargins', - 'getmethodid', - 'getmode', - 'getnameditem', - 'getnameditemns', - 'getnode', - 'getnumericvalue', - 'getobjectarrayelement', - 'getobjectclass', - 'getobjectfield', - 'getpadding', - 'getpagenumber', - 'getparts', - 'getprefs', - 'getpropertyvalue', - 'getprowcount', - 'getpsfontname', - 'getrange', - 'getrowcount', - 'getset', - 'getshortarrayelements', - 'getshortarrayregion', - 'getshortfield', - 'getsize', - 'getsortfieldspart', - 'getspacing', - 'getstaticbooleanfield', - 'getstaticbytefield', - 'getstaticcharfield', - 'getstaticdoublefield', - 'getstaticfieldid', - 'getstaticfloatfield', - 'getstaticintfield', - 'getstaticlongfield', - 'getstaticmethodid', - 'getstaticobjectfield', - 'getstaticshortfield', - 'getstatus', - 'getstringchars', - 'getstringlength', - 'getstyle', - 'getsupportedencodings', - 'gettablebyid', - 'gettext', - 'gettextalignment', - 'gettextsize', - 'gettrigger', - 'gettype', - 'getunderline', - 'getuniquealiasname', - 'getuser', - 'getuserbykey', - 'getuserid', - 'getversion', - 'getzipfilebytes', - 'givenblock', - 'gmt', - 'gotconnection', - 'gotfileupload', - 'groupby', - 'groupcolumns', - 'groupcount', - 'groupjoin', - 'handlebreakpointget', - 'handlebreakpointlist', - 'handlebreakpointremove', - 'handlebreakpointset', - 'handlebreakpointupdate', - 'handlecontextget', - 'handlecontextnames', - 'handlecontinuation', - 'handledefinitionbody', - 'handledefinitionhead', - 'handledefinitionresource', - 'handledevconnection', - 'handleevalexpired', - 'handlefeatureget', - 'handlefeatureset', - 'handlelassoappcontent', - 'handlelassoappresponse', - 'handlenested', - 'handlenormalconnection', - 'handlepop', - 'handleresource', - 'handlesource', - 'handlestackget', - 'handlestderr', - 'handlestdin', - 'handlestdout', - 'handshake', - 'hasattribute', - 'hasattributens', - 'hasattributes', - 'hasbinaryproperty', - 'haschildnodes', - 'hasexpired', - 'hasfeature', - 'hasfield', - 'hash', - 'hashtmlattr', - 'hasmethod', - 'hastable', - 'hastrailingcomponent', - 'hasvalue', - 'head', - 'header', - 'headerbytes', - 'headers', - 'headersarray', - 'headersmap', - 'height', - 'histogram', - 'home', - 'host', - 'hostcolumnnames', - 'hostcolumnnames2', - 'hostcolumns', - 'hostcolumns2', - 'hostdatasource', - 'hostextra', - 'hostid', - 'hostisdynamic', - 'hostmap', - 'hostmap2', - 'hostname', - 'hostpassword', - 'hostport', - 'hostschema', - 'hosttableencoding', - 'hosttonet16', - 'hosttonet32', - 'hosttonet64', - 'hostusername', - 'hour', - 'hourofampm', - 'hourofday', - 'hoursbetween', - 'href', - 'hreflang', - 'htmlcontent', - 'htmlizestacktrace', - 'htmlizestacktracelink', - 'httpaccept', - 'httpacceptencoding', - 'httpacceptlanguage', - 'httpauthorization', - 'httpcachecontrol', - 'httpconnection', - 'httpcookie', - 'httpequiv', - 'httphost', - 'httpreferer', - 'httpreferrer', - 'httpuseragent', - 'hypot', - 'id', - 'idealinmemory', - 'idle', - 'idmap', - 'ifempty', - 'ifkey', - 'ifnotempty', - 'ifnotkey', - 'ignorecase', - 'ilogb', - 'imgptr', - 'implementation', - 'import16bits', - 'import32bits', - 'import64bits', - 'import8bits', - 'importas', - 'importbytes', - 'importfdf', - 'importnode', - 'importpointer', - 'importstring', - 'in', - 'include', - 'includebytes', - 'includelibrary', - 'includelibraryonce', - 'includeonce', - 'includes', - 'includestack', - 'indaylighttime', - 'index', - 'init', - 'initialize', - 'initrequest', - 'inits', - 'inneroncompare', - 'input', - 'inputcolumns', - 'inputtype', - 'insert', - 'insertback', - 'insertbefore', - 'insertdata', - 'insertfirst', - 'insertfrom', - 'insertfront', - 'insertinternal', - 'insertlast', - 'insertpage', - 'install', - 'installs', - 'integer', - 'internalsubset', - 'interrupt', - 'intersection', - 'inttocond', - 'invoke', - 'invokeautocollect', - 'invokeuntil', - 'invokewhile', - 'ioctl', - 'isa', - 'isalive', - 'isallof', - 'isalnum', - 'isalpha', - 'isanyof', - 'isbase', - 'isblank', - 'iscntrl', - 'isdigit', - 'isdir', - 'isdirectory', - 'isempty', - 'isemptyelement', - 'isfirststep', - 'isfullpath', - 'isgraph', - 'ishttps', - 'isidle', - 'isinstanceof', - 'islink', - 'islower', - 'ismultipart', - 'isnan', - 'isnota', - 'isnotempty', - 'isnothing', - 'iso3country', - 'iso3language', - 'isopen', - 'isprint', - 'ispunct', - 'issameobject', - 'isset', - 'issourcefile', - 'isspace', - 'isssl', - 'issupported', - 'istitle', - 'istruetype', - 'istype', - 'isualphabetic', - 'isulowercase', - 'isupper', - 'isuuppercase', - 'isuwhitespace', - 'isvalid', - 'iswhitespace', - 'isxdigit', - 'isxhr', - 'item', - 'j0', - 'j1', - 'javascript', - 'jbarcode', - 'jcolor', - 'jfont', - 'jimage', - 'jlist', - 'jn', - 'jobjectisa', - 'join', - 'jread', - 'jscontent', - 'jsonfornode', - 'jsonhtml', - 'jsonisleaf', - 'jsonlabel', - 'jtable', - 'jtext', - 'julianday', - 'kernel', - 'key', - 'keycolumns', - 'keys', - 'keywords', - 'kill', - 'label', - 'lang', - 'language', - 'last_insert_rowid', - 'last', - 'lastaccessdate', - 'lastaccesstime', - 'lastchild', - 'lastcomponent', - 'lasterror', - 'lastinsertid', - 'lastnode', - 'lastpoint', - 'lasttouched', - 'lazyvalue', - 'ldexp', - 'leaveopen', - 'left', - 'length', - 'lgamma', - 'line', - 'linediffers', - 'linkto', - 'linktype', - 'list', - 'listactivedatasources', - 'listalldatabases', - 'listalltables', - 'listdatabasetables', - 'listdatasourcedatabases', - 'listdatasourcehosts', - 'listdatasources', - 'listen', - 'listgroups', - 'listgroupsbyuser', - 'listhostdatabases', - 'listhosts', - 'listmethods', - 'listnode', - 'listusers', - 'listusersbygroup', - 'loadcerts', - 'loaddatasourcehostinfo', - 'loaddatasourceinfo', - 'loadlibrary', - 'localaddress', - 'localname', - 'locals', - 'lock', - 'log', - 'log10', - 'log1p', - 'logb', - 'lookupnamespace', - 'lop', - 'lowagiefont', - 'lowercase', - 'makecolor', - 'makecolumnlist', - 'makecolumnmap', - 'makecookieyumyum', - 'makefullpath', - 'makeinheritedcopy', - 'makenonrelative', - 'makeurl', - 'map', - 'marker', - 'matches', - 'matchesstart', - 'matchposition', - 'matchstring', - 'matchtriggers', - 'max', - 'maxinmemory', - 'maxlength', - 'maxrows', - 'maxworkers', - 'maybeslash', - 'maybevalue', - 'md5hex', - 'media', - 'members', - 'merge', - 'meta', - 'method', - 'methodname', - 'millisecond', - 'millisecondsinday', - 'mime_boundary', - 'mime_contenttype', - 'mime_hdrs', - 'mime', - 'mimes', - 'min', - 'minute', - 'minutesbetween', - 'moddatestr', - 'mode', - 'modf', - 'modificationdate', - 'modificationtime', - 'modulate', - 'monitorenter', - 'monitorexit', - 'month', - 'moveto', - 'movetoattribute', - 'movetoattributenamespace', - 'movetoelement', - 'movetofirstattribute', - 'movetonextattribute', - 'msg', - 'mtime', - 'multiple', - 'n', - 'name', - 'named', - 'namespaceuri', - 'needinitialization', - 'net', - 'nettohost16', - 'nettohost32', - 'nettohost64', - 'new', - 'newbooleanarray', - 'newbytearray', - 'newchararray', - 'newdoublearray', - 'newfloatarray', - 'newglobalref', - 'newintarray', - 'newlongarray', - 'newobject', - 'newobjectarray', - 'newshortarray', - 'newstring', - 'next', - 'nextafter', - 'nextnode', - 'nextprime', - 'nextprune', - 'nextprunedelta', - 'nextsibling', - 'nodeforpath', - 'nodelist', - 'nodename', - 'nodetype', - 'nodevalue', - 'noop', - 'normalize', - 'notationname', - 'notations', - 'novaluelists', - 'numsets', - 'object', - 'objects', - 'objecttype', - 'onclick', - 'oncompare', - 'oncomparestrict', - 'onconvert', - 'oncreate', - 'ondblclick', - 'onkeydown', - 'onkeypress', - 'onkeyup', - 'onmousedown', - 'onmousemove', - 'onmouseout', - 'onmouseover', - 'onmouseup', - 'onreset', - 'onsubmit', - 'ontop', - 'open', - 'openappend', - 'openread', - 'opentruncate', - 'openwith', - 'openwrite', - 'openwriteonly', - 'orderby', - 'orderbydescending', - 'out', - 'output', - 'outputencoding', - 'ownerdocument', - 'ownerelement', - 'padleading', - 'padtrailing', - 'padzero', - 'pagecount', - 'pagerotation', - 'pagesize', - 'param', - 'paramdescs', - 'params', - 'parent', - 'parentdir', - 'parentnode', - 'parse_body', - 'parse_boundary', - 'parse_charset', - 'parse_content_disposition', - 'parse_content_transfer_encoding', - 'parse_content_type', - 'parse_hdrs', - 'parse_mode', - 'parse_msg', - 'parse_parts', - 'parse_rawhdrs', - 'parse', - 'parseas', - 'parsedocument', - 'parsenumber', - 'parseoneheaderline', - 'pass', - 'path', - 'pathinfo', - 'pathtouri', - 'pathtranslated', - 'pause', - 'payload', - 'pdifference', - 'perform', - 'performonce', - 'perms', - 'pid', - 'pixel', - 'pm', - 'polldbg', - 'pollide', - 'pop_capa', - 'pop_cmd', - 'pop_debug', - 'pop_err', - 'pop_get', - 'pop_ids', - 'pop_index', - 'pop_log', - 'pop_mode', - 'pop_net', - 'pop_res', - 'pop_server', - 'pop_timeout', - 'pop_token', - 'pop', - 'popctx', - 'popinclude', - 'populate', - 'port', - 'position', - 'postdispatch', - 'postparam', - 'postparams', - 'postparamsary', - 'poststring', - 'pow', - 'predispatch', - 'prefix', - 'preflight', - 'prepare', - 'prepared', - 'pretty', - 'prev', - 'previoussibling', - 'printsimplemsg', - 'private_compare', - 'private_find', - 'private_findlast', - 'private_merge', - 'private_rebalanceforinsert', - 'private_rebalanceforremove', - 'private_replaceall', - 'private_replacefirst', - 'private_rotateleft', - 'private_rotateright', - 'private_setrange', - 'private_split', - 'probemimetype', - 'provides', - 'proxying', - 'prune', - 'publicid', - 'pullhttpheader', - 'pullmimepost', - 'pulloneheaderline', - 'pullpost', - 'pullrawpost', - 'pullrawpostchunks', - 'pullrequest', - 'pullrequestline', - 'push', - 'pushctx', - 'pushinclude', - 'qdarray', - 'qdcount', - 'queryparam', - 'queryparams', - 'queryparamsary', - 'querystring', - 'queue_maintenance', - 'queue_messages', - 'queue_status', - 'queue', - 'quit', - 'r', - 'raw', - 'rawcontent', - 'rawdiff', - 'rawheader', - 'rawheaders', - 'rawinvokable', - 'read', - 'readattributevalue', - 'readbytes', - 'readbytesfully', - 'readdestinations', - 'readerror', - 'readidobjects', - 'readline', - 'readmessage', - 'readnumber', - 'readobject', - 'readobjecttcp', - 'readpacket', - 'readsomebytes', - 'readstring', - 'ready', - 'realdoc', - 'realpath', - 'receivefd', - 'recipients', - 'recover', - 'rect', - 'rectype', - 'red', - 'redirectto', - 'referrals', - 'refid', - 'refobj', - 'refresh', - 'rel', - 'remainder', - 'remoteaddr', - 'remoteaddress', - 'remoteport', - 'remove', - 'removeall', - 'removeattribute', - 'removeattributenode', - 'removeattributens', - 'removeback', - 'removechild', - 'removedatabasetable', - 'removedatasource', - 'removedatasourcedatabase', - 'removedatasourcehost', - 'removefield', - 'removefirst', - 'removefront', - 'removegroup', - 'removelast', - 'removeleading', - 'removenameditem', - 'removenameditemns', - 'removenode', - 'removesubnode', - 'removetrailing', - 'removeuser', - 'removeuserfromallgroups', - 'removeuserfromgroup', - 'rename', - 'renderbytes', - 'renderdocumentbytes', - 'renderstring', - 'replace', - 'replaceall', - 'replacechild', - 'replacedata', - 'replacefirst', - 'replaceheader', - 'replacepattern', - 'representnode', - 'representnoderesult', - 'reqid', - 'requestid', - 'requestmethod', - 'requestparams', - 'requesturi', - 'requires', - 'reserve', - 'reset', - 'resize', - 'resolutionh', - 'resolutionv', - 'resolvelinks', - 'resourcedata', - 'resourceinvokable', - 'resourcename', - 'resources', - 'respond', - 'restart', - 'restname', - 'result', - 'results', - 'resume', - 'retr', - 'retrieve', - 'returncolumns', - 'returntype', - 'rev', - 'reverse', - 'rewind', - 'right', - 'rint', - 'roll', - 'root', - 'rootmap', - 'rotate', - 'route', - 'rowsfound', - 'rset', - 'rule', - 'rules', - 'run', - 'running', - 'runonce', - 's', - 'sa', - 'safeexport8bits', - 'sameas', - 'save', - 'savedata', - 'scalb', - 'scale', - 'scanfordatasource', - 'scantasks', - 'scanworkers', - 'schemaname', - 'scheme', - 'script', - 'scriptextensions', - 'scriptfilename', - 'scriptname', - 'scripttype', - 'scripturi', - 'scripturl', - 'scrubkeywords', - 'search', - 'searchinbucket', - 'searchurl', - 'second', - 'secondsbetween', - 'seek', - 'select', - 'selected', - 'selectmany', - 'self', - 'send', - 'sendchunk', - 'sendfd', - 'sendfile', - 'sendpacket', - 'sendresponse', - 'separator', - 'serializationelements', - 'serialize', - 'serveraddr', - 'serveradmin', - 'servername', - 'serverport', - 'serverprotocol', - 'serversignature', - 'serversoftware', - 'sessionsdump', - 'sessionsmap', - 'set', - 'setalignment', - 'setattr', - 'setattribute', - 'setattributenode', - 'setattributenodens', - 'setattributens', - 'setbarheight', - 'setbarmultiplier', - 'setbarwidth', - 'setbaseline', - 'setbold', - 'setbooleanarrayregion', - 'setbooleanfield', - 'setbordercolor', - 'setborderwidth', - 'setbytearrayregion', - 'setbytefield', - 'setchararrayregion', - 'setcharfield', - 'setcode', - 'setcolor', - 'setcolorspace', - 'setcookie', - 'setcwd', - 'setdefaultstorage', - 'setdestination', - 'setdoublearrayregion', - 'setdoublefield', - 'setencoding', - 'setface', - 'setfieldvalue', - 'setfindpattern', - 'setfloatarrayregion', - 'setfloatfield', - 'setfont', - 'setformat', - 'setgeneratechecksum', - 'setheaders', - 'sethtmlattr', - 'setignorecase', - 'setinput', - 'setintarrayregion', - 'setintfield', - 'setitalic', - 'setlinewidth', - 'setlongarrayregion', - 'setlongfield', - 'setmarker', - 'setmaxfilesize', - 'setmode', - 'setname', - 'setnameditem', - 'setnameditemns', - 'setobjectarrayelement', - 'setobjectfield', - 'setpadding', - 'setpagenumber', - 'setpagerange', - 'setposition', - 'setrange', - 'setreplacepattern', - 'setshortarrayregion', - 'setshortfield', - 'setshowchecksum', - 'setsize', - 'setspacing', - 'setstaticbooleanfield', - 'setstaticbytefield', - 'setstaticcharfield', - 'setstaticdoublefield', - 'setstaticfloatfield', - 'setstaticintfield', - 'setstaticlongfield', - 'setstaticobjectfield', - 'setstaticshortfield', - 'setstatus', - 'settextalignment', - 'settextsize', - 'settimezone', - 'settrait', - 'setunderline', - 'sharpen', - 'shouldabort', - 'shouldclose', - 'showchecksum', - 'showcode39startstop', - 'showeanguardbars', - 'shutdownrd', - 'shutdownrdwr', - 'shutdownwr', - 'sin', - 'sinh', - 'size', - 'skip', - 'skiprows', - 'sort', - 'sortcolumns', - 'source', - 'sourcecolumn', - 'sourcefile', - 'sourceline', - 'specified', - 'split', - 'splitconnection', - 'splitdebuggingthread', - 'splitextension', - 'splittext', - 'splitthread', - 'splittoprivatedev', - 'splituppath', - 'sql', - 'sqlite3', - 'sqrt', - 'src', - 'srcpath', - 'sslerrfail', - 'stack', - 'standby', - 'start', - 'startone', - 'startup', - 'stat', - 'statement', - 'statementonly', - 'stats', - 'status', - 'statuscode', - 'statusmsg', - 'stdin', - 'step', - 'stls', - 'stop', - 'stoprunning', - 'storedata', - 'stripfirstcomponent', - 'striplastcomponent', - 'style', - 'styletype', - 'sub', - 'subject', - 'subnode', - 'subnodes', - 'substringdata', - 'subtract', - 'subtraits', - 'sum', - 'supportscontentrepresentation', - 'swapbytes', - 'systemid', - 't', - 'tabindex', - 'table', - 'tablecolumnnames', - 'tablecolumns', - 'tablehascolumn', - 'tableizestacktrace', - 'tableizestacktracelink', - 'tablemap', - 'tablename', - 'tables', - 'tabs', - 'tabstr', - 'tag', - 'tagname', - 'take', - 'tan', - 'tanh', - 'target', - 'tasks', - 'tb', - 'tell', - 'testexitcode', - 'testlock', - 'textwidth', - 'thenby', - 'thenbydescending', - 'threadreaddesc', - 'throw', - 'thrownew', - 'time', - 'timezone', - 'title', - 'titlecase', - 'to', - 'token', - 'tolower', - 'top', - 'toreflectedfield', - 'toreflectedmethod', - 'total_changes', - 'totitle', - 'touch', - 'toupper', - 'toxmlstring', - 'trace', - 'trackingid', - 'trait', - 'transform', - 'trigger', - 'trim', - 'trunk', - 'tryfinderrorfile', - 'trylock', - 'tryreadobject', - 'type', - 'typename', - 'uidl', - 'uncompress', - 'unescape', - 'union', - 'uniqueid', - 'unlock', - 'unspool', - 'up', - 'update', - 'updategroup', - 'upload', - 'uppercase', - 'url', - 'used', - 'usemap', - 'user', - 'usercolumns', - 'valid', - 'validate', - 'validatesessionstable', - 'value', - 'values', - 'valuetype', - 'variant', - 'version', - 'wait', - 'waitforcompletion', - 'warnings', - 'week', - 'weekofmonth', - 'weekofyear', - 'where', - 'width', - 'workers', - 'workinginputcolumns', - 'workingkeycolumns', - 'workingkeyfield_name', - 'workingreturncolumns', - 'workingsortcolumns', - 'write', - 'writebodybytes', - 'writebytes', - 'writeheader', - 'writeheaderbytes', - 'writeheaderline', - 'writeid', - 'writemessage', - 'writeobject', - 'writeobjecttcp', - 'writestring', - 'wroteheaders', - 'xhtml', - 'xmllang', - 'y0', - 'y1', - 'year', - 'yearwoy', - 'yn', - 'z', - 'zip', - 'zipfile', - 'zipfilename', - 'zipname', - 'zips', - 'zoneoffset', + "Member Methods": ( + "abort", + "abs", + "accept_charset", + "accept", + "acceptconnections", + "acceptdeserializedelement", + "acceptnossl", + "acceptpost", + "accesskey", + "acos", + "acosh", + "action", + "actionparams", + "active_tick", + "add", + "addatend", + "addattachment", + "addbarcode", + "addchapter", + "addcheckbox", + "addcolumninfo", + "addcombobox", + "addcomment", + "addcomponent", + "addcomponents", + "addcss", + "adddatabasetable", + "adddatasource", + "adddatasourcedatabase", + "adddatasourcehost", + "adddir", + "adddirpath", + "addendjs", + "addendjstext", + "adderror", + "addfavicon", + "addfile", + "addgroup", + "addheader", + "addhiddenfield", + "addhtmlpart", + "addimage", + "addjavascript", + "addjs", + "addjstext", + "addlist", + "addmathfunctions", + "addmember", + "addoneheaderline", + "addpage", + "addparagraph", + "addpart", + "addpasswordfield", + "addphrase", + "addpostdispatch", + "addpredispatch", + "addradiobutton", + "addradiogroup", + "addresetbutton", + "addrow", + "addsection", + "addselectlist", + "addset", + "addsubmitbutton", + "addsubnode", + "addtable", + "addtask", + "addtext", + "addtextarea", + "addtextfield", + "addtextpart", + "addtobuffer", + "addtrait", + "adduser", + "addusertogroup", + "addwarning", + "addzip", + "allocobject", + "am", + "ampm", + "annotate", + "answer", + "apop", + "append", + "appendarray", + "appendarraybegin", + "appendarrayend", + "appendbool", + "appendbytes", + "appendchar", + "appendchild", + "appendcolon", + "appendcomma", + "appenddata", + "appenddatetime", + "appenddbpointer", + "appenddecimal", + "appenddocument", + "appendimagetolist", + "appendinteger", + "appendnowutc", + "appendnull", + "appendoid", + "appendregex", + "appendreplacement", + "appendstring", + "appendtail", + "appendtime", + "applyheatcolors", + "appmessage", + "appname", + "appprefix", + "appstatus", + "arc", + "archive", + "arguments", + "argumentvalue", + "asarray", + "asarraystring", + "asasync", + "asbytes", + "ascopy", + "ascopydeep", + "asdecimal", + "asgenerator", + "asin", + "asinh", + "asinteger", + "askeyedgenerator", + "aslazystring", + "aslist", + "asraw", + "asstaticarray", + "asstring", + "asstringhex", + "asstringoct", + "asxml", + "atan", + "atan2", + "atanh", + "atend", + "atends", + "atime", + "attributecount", + "attributes", + "attrs", + "auth", + "authenticate", + "authorize", + "autocollectbuffer", + "average", + "back", + "basename", + "basepaths", + "baseuri", + "bcc", + "beginssl", + "beginswith", + "begintls", + "bestcharset", + "bind_blob", + "bind_double", + "bind_int", + "bind_null", + "bind_parameter_index", + "bind_text", + "bind", + "bindcount", + "bindone", + "bindparam", + "bitand", + "bitclear", + "bitflip", + "bitformat", + "bitnot", + "bitor", + "bitset", + "bitshiftleft", + "bitshiftright", + "bittest", + "bitxor", + "blur", + "body", + "bodybytes", + "boundary", + "bptoxml", + "bptypetostr", + "bucketnumber", + "buff", + "buildquery", + "businessdaysbetween", + "by", + "bytes", + "cachedappprefix", + "cachedroot", + "callboolean", + "callbooleanmethod", + "callbytemethod", + "callcharmethod", + "calldoublemethod", + "calledname", + "callfirst", + "callfloat", + "callfloatmethod", + "callint", + "callintmethod", + "calllongmethod", + "callnonvirtualbooleanmethod", + "callnonvirtualbytemethod", + "callnonvirtualcharmethod", + "callnonvirtualdoublemethod", + "callnonvirtualfloatmethod", + "callnonvirtualintmethod", + "callnonvirtuallongmethod", + "callnonvirtualobjectmethod", + "callnonvirtualshortmethod", + "callnonvirtualvoidmethod", + "callobject", + "callobjectmethod", + "callshortmethod", + "callsite_col", + "callsite_file", + "callsite_line", + "callstack", + "callstaticboolean", + "callstaticbooleanmethod", + "callstaticbytemethod", + "callstaticcharmethod", + "callstaticdoublemethod", + "callstaticfloatmethod", + "callstaticint", + "callstaticintmethod", + "callstaticlongmethod", + "callstaticobject", + "callstaticobjectmethod", + "callstaticshortmethod", + "callstaticstring", + "callstaticvoidmethod", + "callstring", + "callvoid", + "callvoidmethod", + "cancel", + "cap", + "capa", + "capabilities", + "capi", + "cbrt", + "cc", + "ceil", + "chardigitvalue", + "charname", + "charset", + "chartype", + "checkdebugging", + "checked", + "checkuser", + "childnodes", + "chk", + "chmod", + "choosecolumntype", + "chown", + "chunked", + "circle", + "class", + "classid", + "clear", + "clonenode", + "close", + "closepath", + "closeprepared", + "closewrite", + "code", + "codebase", + "codetype", + "colmap", + "colorspace", + "column_blob", + "column_count", + "column_decltype", + "column_double", + "column_int64", + "column_name", + "column_text", + "column_type", + "command", + "comments", + "compare", + "comparecodepointorder", + "componentdelimiter", + "components", + "composite", + "compress", + "concat", + "condtoint", + "configureds", + "configuredskeys", + "connect", + "connection", + "connectionhandler", + "connhandler", + "consume_domain", + "consume_label", + "consume_message", + "consume_rdata", + "consume_string", + "contains", + "content_disposition", + "content_transfer_encoding", + "content_type", + "content", + "contentlength", + "contents", + "contenttype", + "continuation", + "continuationpacket", + "continuationpoint", + "continuationstack", + "continue", + "contrast", + "conventionaltop", + "convert", + "cookie", + "cookies", + "cookiesarray", + "cookiesary", + "copyto", + "cos", + "cosh", + "count", + "countkeys", + "country", + "countusersbygroup", + "crc", + "create", + "createattribute", + "createattributens", + "createcdatasection", + "createcomment", + "createdocument", + "createdocumentfragment", + "createdocumenttype", + "createelement", + "createelementns", + "createentityreference", + "createindex", + "createprocessinginstruction", + "createtable", + "createtextnode", + "criteria", + "crop", + "csscontent", + "curl", + "current", + "currentfile", + "curveto", + "d", + "data", + "databasecolumnnames", + "databasecolumns", + "databasemap", + "databasename", + "datasourcecolumnnames", + "datasourcecolumns", + "datasourcemap", + "date", + "day", + "dayofmonth", + "dayofweek", + "dayofweekinmonth", + "dayofyear", + "days", + "daysbetween", + "db", + "dbtablestable", + "debug", + "declare", + "decodebase64", + "decodehex", + "decodehtml", + "decodeqp", + "decodeurl", + "decodexml", + "decompose", + "decomposeassignment", + "defaultcontentrepresentation", + "defer", + "deg2rad", + "dele", + "delete", + "deletedata", + "deleteglobalref", + "deletelocalref", + "delim", + "depth", + "dereferencepointer", + "describe", + "description", + "deserialize", + "detach", + "detectcharset", + "didinclude", + "difference", + "digit", + "dir", + "displaycountry", + "displaylanguage", + "displayname", + "displayscript", + "displayvariant", + "div", + "dns_response", + "do", + "doatbegins", + "doatends", + "doccomment", + "doclose", + "doctype", + "document", + "documentelement", + "documentroot", + "domainbody", + "done", + "dosessions", + "dowithclose", + "dowlocal", + "download", + "drawtext", + "drop", + "dropindex", + "dsdbtable", + "dshoststable", + "dsinfo", + "dst", + "dstable", + "dstoffset", + "dtdid", + "dup", + "dup2", + "each", + "eachbyte", + "eachcharacter", + "eachchild", + "eachcomponent", + "eachdir", + "eachdirpath", + "eachdirpathrecursive", + "eachentry", + "eachfile", + "eachfilename", + "eachfilepath", + "eachfilepathrecursive", + "eachkey", + "eachline", + "eachlinebreak", + "eachmatch", + "eachnode", + "eachpair", + "eachpath", + "eachpathrecursive", + "eachrow", + "eachsub", + "eachword", + "eachwordbreak", + "element", + "eligiblepath", + "eligiblepaths", + "encodebase64", + "encodehex", + "encodehtml", + "encodehtmltoxml", + "encodemd5", + "encodepassword", + "encodeqp", + "encodesql", + "encodesql92", + "encodeurl", + "encodevalue", + "encodexml", + "encoding", + "enctype", + "end", + "endjs", + "endssl", + "endswith", + "endtls", + "enhance", + "ensurestopped", + "entities", + "entry", + "env", + "equals", + "era", + "erf", + "erfc", + "err", + "errcode", + "errmsg", + "error", + "errors", + "errstack", + "escape_member", + "establisherrorstate", + "exceptioncheck", + "exceptionclear", + "exceptiondescribe", + "exceptionoccurred", + "exchange", + "execinits", + "execinstalls", + "execute", + "executelazy", + "executenow", + "exists", + "exit", + "exitcode", + "exp", + "expire", + "expireminutes", + "expiresminutes", + "expm1", + "export16bits", + "export32bits", + "export64bits", + "export8bits", + "exportas", + "exportbytes", + "exportfdf", + "exportpointerbits", + "exportsigned16bits", + "exportsigned32bits", + "exportsigned64bits", + "exportsigned8bits", + "exportstring", + "expose", + "extendedyear", + "extensiondelimiter", + "extensions", + "extract", + "extractfast", + "extractfastone", + "extractimage", + "extractone", + "f", + "fabs", + "fail", + "failnoconnectionhandler", + "family", + "fatalerror", + "fcgireq", + "fchdir", + "fchmod", + "fchown", + "fd", + "features", + "fetchdata", + "fieldnames", + "fieldposition", + "fieldstable", + "fieldtype", + "fieldvalue", + "file", + "filename", + "filenames", + "filequeue", + "fileuploads", + "fileuploadsary", + "filterinputcolumn", + "finalize", + "find", + "findall", + "findandmodify", + "findbucket", + "findcase", + "findclass", + "findcount", + "finddescendant", + "findfirst", + "findinclude", + "findinctx", + "findindex", + "findlast", + "findpattern", + "findposition", + "findsymbols", + "first", + "firstchild", + "firstcomponent", + "firstdayofweek", + "firstnode", + "fixformat", + "flags", + "fliph", + "flipv", + "floor", + "flush", + "foldcase", + "foo", + "for", + "forcedrowid", + "foreach", + "foreachaccept", + "foreachbyte", + "foreachcharacter", + "foreachchild", + "foreachday", + "foreachentry", + "foreachfile", + "foreachfilename", + "foreachkey", + "foreachline", + "foreachlinebreak", + "foreachmatch", + "foreachnode", + "foreachpair", + "foreachpathcomponent", + "foreachrow", + "foreachspool", + "foreachsub", + "foreachwordbreak", + "form", + "format", + "formatas", + "formatcontextelement", + "formatcontextelements", + "formatnumber", + "free", + "frexp", + "from", + "fromname", + "fromport", + "fromreflectedfield", + "fromreflectedmethod", + "front", + "fsync", + "ftpdeletefile", + "ftpgetlisting", + "ftruncate", + "fullpath", + "fx", + "gamma", + "gatewayinterface", + "gen", + "generatechecksum", + "get", + "getabswidth", + "getalignment", + "getappsource", + "getarraylength", + "getattr", + "getattribute", + "getattributenamespace", + "getattributenode", + "getattributenodens", + "getattributens", + "getbarheight", + "getbarmultiplier", + "getbarwidth", + "getbaseline", + "getbold", + "getbooleanarrayelements", + "getbooleanarrayregion", + "getbooleanfield", + "getbordercolor", + "getborderwidth", + "getbytearrayelements", + "getbytearrayregion", + "getbytefield", + "getchararrayelements", + "getchararrayregion", + "getcharfield", + "getclass", + "getcode", + "getcolor", + "getcolumn", + "getcolumncount", + "getcolumns", + "getdatabasebyalias", + "getdatabasebyid", + "getdatabasebyname", + "getdatabasehost", + "getdatabasetable", + "getdatabasetablebyalias", + "getdatabasetablebyid", + "getdatabasetablepart", + "getdatasource", + "getdatasourcedatabase", + "getdatasourcedatabasebyid", + "getdatasourcehost", + "getdatasourceid", + "getdatasourcename", + "getdefaultstorage", + "getdoublearrayelements", + "getdoublearrayregion", + "getdoublefield", + "getelementbyid", + "getelementsbytagname", + "getelementsbytagnamens", + "getencoding", + "getface", + "getfield", + "getfieldid", + "getfile", + "getfloatarrayelements", + "getfloatarrayregion", + "getfloatfield", + "getfont", + "getformat", + "getfullfontname", + "getgroup", + "getgroupid", + "getheader", + "getheaders", + "gethostdatabase", + "gethtmlattr", + "gethtmlattrstring", + "getinclude", + "getintarrayelements", + "getintarrayregion", + "getintfield", + "getisocomment", + "getitalic", + "getlasterror", + "getlcapitype", + "getlibrary", + "getlongarrayelements", + "getlongarrayregion", + "getlongfield", + "getmargins", + "getmethodid", + "getmode", + "getnameditem", + "getnameditemns", + "getnode", + "getnumericvalue", + "getobjectarrayelement", + "getobjectclass", + "getobjectfield", + "getpadding", + "getpagenumber", + "getparts", + "getprefs", + "getpropertyvalue", + "getprowcount", + "getpsfontname", + "getrange", + "getrowcount", + "getset", + "getshortarrayelements", + "getshortarrayregion", + "getshortfield", + "getsize", + "getsortfieldspart", + "getspacing", + "getstaticbooleanfield", + "getstaticbytefield", + "getstaticcharfield", + "getstaticdoublefield", + "getstaticfieldid", + "getstaticfloatfield", + "getstaticintfield", + "getstaticlongfield", + "getstaticmethodid", + "getstaticobjectfield", + "getstaticshortfield", + "getstatus", + "getstringchars", + "getstringlength", + "getstyle", + "getsupportedencodings", + "gettablebyid", + "gettext", + "gettextalignment", + "gettextsize", + "gettrigger", + "gettype", + "getunderline", + "getuniquealiasname", + "getuser", + "getuserbykey", + "getuserid", + "getversion", + "getzipfilebytes", + "givenblock", + "gmt", + "gotconnection", + "gotfileupload", + "groupby", + "groupcolumns", + "groupcount", + "groupjoin", + "handlebreakpointget", + "handlebreakpointlist", + "handlebreakpointremove", + "handlebreakpointset", + "handlebreakpointupdate", + "handlecontextget", + "handlecontextnames", + "handlecontinuation", + "handledefinitionbody", + "handledefinitionhead", + "handledefinitionresource", + "handledevconnection", + "handleevalexpired", + "handlefeatureget", + "handlefeatureset", + "handlelassoappcontent", + "handlelassoappresponse", + "handlenested", + "handlenormalconnection", + "handlepop", + "handleresource", + "handlesource", + "handlestackget", + "handlestderr", + "handlestdin", + "handlestdout", + "handshake", + "hasattribute", + "hasattributens", + "hasattributes", + "hasbinaryproperty", + "haschildnodes", + "hasexpired", + "hasfeature", + "hasfield", + "hash", + "hashtmlattr", + "hasmethod", + "hastable", + "hastrailingcomponent", + "hasvalue", + "head", + "header", + "headerbytes", + "headers", + "headersarray", + "headersmap", + "height", + "histogram", + "home", + "host", + "hostcolumnnames", + "hostcolumnnames2", + "hostcolumns", + "hostcolumns2", + "hostdatasource", + "hostextra", + "hostid", + "hostisdynamic", + "hostmap", + "hostmap2", + "hostname", + "hostpassword", + "hostport", + "hostschema", + "hosttableencoding", + "hosttonet16", + "hosttonet32", + "hosttonet64", + "hostusername", + "hour", + "hourofampm", + "hourofday", + "hoursbetween", + "href", + "hreflang", + "htmlcontent", + "htmlizestacktrace", + "htmlizestacktracelink", + "httpaccept", + "httpacceptencoding", + "httpacceptlanguage", + "httpauthorization", + "httpcachecontrol", + "httpconnection", + "httpcookie", + "httpequiv", + "httphost", + "httpreferer", + "httpreferrer", + "httpuseragent", + "hypot", + "id", + "idealinmemory", + "idle", + "idmap", + "ifempty", + "ifkey", + "ifnotempty", + "ifnotkey", + "ignorecase", + "ilogb", + "imgptr", + "implementation", + "import16bits", + "import32bits", + "import64bits", + "import8bits", + "importas", + "importbytes", + "importfdf", + "importnode", + "importpointer", + "importstring", + "in", + "include", + "includebytes", + "includelibrary", + "includelibraryonce", + "includeonce", + "includes", + "includestack", + "indaylighttime", + "index", + "init", + "initialize", + "initrequest", + "inits", + "inneroncompare", + "input", + "inputcolumns", + "inputtype", + "insert", + "insertback", + "insertbefore", + "insertdata", + "insertfirst", + "insertfrom", + "insertfront", + "insertinternal", + "insertlast", + "insertpage", + "install", + "installs", + "integer", + "internalsubset", + "interrupt", + "intersection", + "inttocond", + "invoke", + "invokeautocollect", + "invokeuntil", + "invokewhile", + "ioctl", + "isa", + "isalive", + "isallof", + "isalnum", + "isalpha", + "isanyof", + "isbase", + "isblank", + "iscntrl", + "isdigit", + "isdir", + "isdirectory", + "isempty", + "isemptyelement", + "isfirststep", + "isfullpath", + "isgraph", + "ishttps", + "isidle", + "isinstanceof", + "islink", + "islower", + "ismultipart", + "isnan", + "isnota", + "isnotempty", + "isnothing", + "iso3country", + "iso3language", + "isopen", + "isprint", + "ispunct", + "issameobject", + "isset", + "issourcefile", + "isspace", + "isssl", + "issupported", + "istitle", + "istruetype", + "istype", + "isualphabetic", + "isulowercase", + "isupper", + "isuuppercase", + "isuwhitespace", + "isvalid", + "iswhitespace", + "isxdigit", + "isxhr", + "item", + "j0", + "j1", + "javascript", + "jbarcode", + "jcolor", + "jfont", + "jimage", + "jlist", + "jn", + "jobjectisa", + "join", + "jread", + "jscontent", + "jsonfornode", + "jsonhtml", + "jsonisleaf", + "jsonlabel", + "jtable", + "jtext", + "julianday", + "kernel", + "key", + "keycolumns", + "keys", + "keywords", + "kill", + "label", + "lang", + "language", + "last_insert_rowid", + "last", + "lastaccessdate", + "lastaccesstime", + "lastchild", + "lastcomponent", + "lasterror", + "lastinsertid", + "lastnode", + "lastpoint", + "lasttouched", + "lazyvalue", + "ldexp", + "leaveopen", + "left", + "length", + "lgamma", + "line", + "linediffers", + "linkto", + "linktype", + "list", + "listactivedatasources", + "listalldatabases", + "listalltables", + "listdatabasetables", + "listdatasourcedatabases", + "listdatasourcehosts", + "listdatasources", + "listen", + "listgroups", + "listgroupsbyuser", + "listhostdatabases", + "listhosts", + "listmethods", + "listnode", + "listusers", + "listusersbygroup", + "loadcerts", + "loaddatasourcehostinfo", + "loaddatasourceinfo", + "loadlibrary", + "localaddress", + "localname", + "locals", + "lock", + "log", + "log10", + "log1p", + "logb", + "lookupnamespace", + "lop", + "lowagiefont", + "lowercase", + "makecolor", + "makecolumnlist", + "makecolumnmap", + "makecookieyumyum", + "makefullpath", + "makeinheritedcopy", + "makenonrelative", + "makeurl", + "map", + "marker", + "matches", + "matchesstart", + "matchposition", + "matchstring", + "matchtriggers", + "max", + "maxinmemory", + "maxlength", + "maxrows", + "maxworkers", + "maybeslash", + "maybevalue", + "md5hex", + "media", + "members", + "merge", + "meta", + "method", + "methodname", + "millisecond", + "millisecondsinday", + "mime_boundary", + "mime_contenttype", + "mime_hdrs", + "mime", + "mimes", + "min", + "minute", + "minutesbetween", + "moddatestr", + "mode", + "modf", + "modificationdate", + "modificationtime", + "modulate", + "monitorenter", + "monitorexit", + "month", + "moveto", + "movetoattribute", + "movetoattributenamespace", + "movetoelement", + "movetofirstattribute", + "movetonextattribute", + "msg", + "mtime", + "multiple", + "n", + "name", + "named", + "namespaceuri", + "needinitialization", + "net", + "nettohost16", + "nettohost32", + "nettohost64", + "new", + "newbooleanarray", + "newbytearray", + "newchararray", + "newdoublearray", + "newfloatarray", + "newglobalref", + "newintarray", + "newlongarray", + "newobject", + "newobjectarray", + "newshortarray", + "newstring", + "next", + "nextafter", + "nextnode", + "nextprime", + "nextprune", + "nextprunedelta", + "nextsibling", + "nodeforpath", + "nodelist", + "nodename", + "nodetype", + "nodevalue", + "noop", + "normalize", + "notationname", + "notations", + "novaluelists", + "numsets", + "object", + "objects", + "objecttype", + "onclick", + "oncompare", + "oncomparestrict", + "onconvert", + "oncreate", + "ondblclick", + "onkeydown", + "onkeypress", + "onkeyup", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onreset", + "onsubmit", + "ontop", + "open", + "openappend", + "openread", + "opentruncate", + "openwith", + "openwrite", + "openwriteonly", + "orderby", + "orderbydescending", + "out", + "output", + "outputencoding", + "ownerdocument", + "ownerelement", + "padleading", + "padtrailing", + "padzero", + "pagecount", + "pagerotation", + "pagesize", + "param", + "paramdescs", + "params", + "parent", + "parentdir", + "parentnode", + "parse_body", + "parse_boundary", + "parse_charset", + "parse_content_disposition", + "parse_content_transfer_encoding", + "parse_content_type", + "parse_hdrs", + "parse_mode", + "parse_msg", + "parse_parts", + "parse_rawhdrs", + "parse", + "parseas", + "parsedocument", + "parsenumber", + "parseoneheaderline", + "pass", + "path", + "pathinfo", + "pathtouri", + "pathtranslated", + "pause", + "payload", + "pdifference", + "perform", + "performonce", + "perms", + "pid", + "pixel", + "pm", + "polldbg", + "pollide", + "pop_capa", + "pop_cmd", + "pop_debug", + "pop_err", + "pop_get", + "pop_ids", + "pop_index", + "pop_log", + "pop_mode", + "pop_net", + "pop_res", + "pop_server", + "pop_timeout", + "pop_token", + "pop", + "popctx", + "popinclude", + "populate", + "port", + "position", + "postdispatch", + "postparam", + "postparams", + "postparamsary", + "poststring", + "pow", + "predispatch", + "prefix", + "preflight", + "prepare", + "prepared", + "pretty", + "prev", + "previoussibling", + "printsimplemsg", + "private_compare", + "private_find", + "private_findlast", + "private_merge", + "private_rebalanceforinsert", + "private_rebalanceforremove", + "private_replaceall", + "private_replacefirst", + "private_rotateleft", + "private_rotateright", + "private_setrange", + "private_split", + "probemimetype", + "provides", + "proxying", + "prune", + "publicid", + "pullhttpheader", + "pullmimepost", + "pulloneheaderline", + "pullpost", + "pullrawpost", + "pullrawpostchunks", + "pullrequest", + "pullrequestline", + "push", + "pushctx", + "pushinclude", + "qdarray", + "qdcount", + "queryparam", + "queryparams", + "queryparamsary", + "querystring", + "queue_maintenance", + "queue_messages", + "queue_status", + "queue", + "quit", + "r", + "raw", + "rawcontent", + "rawdiff", + "rawheader", + "rawheaders", + "rawinvokable", + "read", + "readattributevalue", + "readbytes", + "readbytesfully", + "readdestinations", + "readerror", + "readidobjects", + "readline", + "readmessage", + "readnumber", + "readobject", + "readobjecttcp", + "readpacket", + "readsomebytes", + "readstring", + "ready", + "realdoc", + "realpath", + "receivefd", + "recipients", + "recover", + "rect", + "rectype", + "red", + "redirectto", + "referrals", + "refid", + "refobj", + "refresh", + "rel", + "remainder", + "remoteaddr", + "remoteaddress", + "remoteport", + "remove", + "removeall", + "removeattribute", + "removeattributenode", + "removeattributens", + "removeback", + "removechild", + "removedatabasetable", + "removedatasource", + "removedatasourcedatabase", + "removedatasourcehost", + "removefield", + "removefirst", + "removefront", + "removegroup", + "removelast", + "removeleading", + "removenameditem", + "removenameditemns", + "removenode", + "removesubnode", + "removetrailing", + "removeuser", + "removeuserfromallgroups", + "removeuserfromgroup", + "rename", + "renderbytes", + "renderdocumentbytes", + "renderstring", + "replace", + "replaceall", + "replacechild", + "replacedata", + "replacefirst", + "replaceheader", + "replacepattern", + "representnode", + "representnoderesult", + "reqid", + "requestid", + "requestmethod", + "requestparams", + "requesturi", + "requires", + "reserve", + "reset", + "resize", + "resolutionh", + "resolutionv", + "resolvelinks", + "resourcedata", + "resourceinvokable", + "resourcename", + "resources", + "respond", + "restart", + "restname", + "result", + "results", + "resume", + "retr", + "retrieve", + "returncolumns", + "returntype", + "rev", + "reverse", + "rewind", + "right", + "rint", + "roll", + "root", + "rootmap", + "rotate", + "route", + "rowsfound", + "rset", + "rule", + "rules", + "run", + "running", + "runonce", + "s", + "sa", + "safeexport8bits", + "sameas", + "save", + "savedata", + "scalb", + "scale", + "scanfordatasource", + "scantasks", + "scanworkers", + "schemaname", + "scheme", + "script", + "scriptextensions", + "scriptfilename", + "scriptname", + "scripttype", + "scripturi", + "scripturl", + "scrubkeywords", + "search", + "searchinbucket", + "searchurl", + "second", + "secondsbetween", + "seek", + "select", + "selected", + "selectmany", + "self", + "send", + "sendchunk", + "sendfd", + "sendfile", + "sendpacket", + "sendresponse", + "separator", + "serializationelements", + "serialize", + "serveraddr", + "serveradmin", + "servername", + "serverport", + "serverprotocol", + "serversignature", + "serversoftware", + "sessionsdump", + "sessionsmap", + "set", + "setalignment", + "setattr", + "setattribute", + "setattributenode", + "setattributenodens", + "setattributens", + "setbarheight", + "setbarmultiplier", + "setbarwidth", + "setbaseline", + "setbold", + "setbooleanarrayregion", + "setbooleanfield", + "setbordercolor", + "setborderwidth", + "setbytearrayregion", + "setbytefield", + "setchararrayregion", + "setcharfield", + "setcode", + "setcolor", + "setcolorspace", + "setcookie", + "setcwd", + "setdefaultstorage", + "setdestination", + "setdoublearrayregion", + "setdoublefield", + "setencoding", + "setface", + "setfieldvalue", + "setfindpattern", + "setfloatarrayregion", + "setfloatfield", + "setfont", + "setformat", + "setgeneratechecksum", + "setheaders", + "sethtmlattr", + "setignorecase", + "setinput", + "setintarrayregion", + "setintfield", + "setitalic", + "setlinewidth", + "setlongarrayregion", + "setlongfield", + "setmarker", + "setmaxfilesize", + "setmode", + "setname", + "setnameditem", + "setnameditemns", + "setobjectarrayelement", + "setobjectfield", + "setpadding", + "setpagenumber", + "setpagerange", + "setposition", + "setrange", + "setreplacepattern", + "setshortarrayregion", + "setshortfield", + "setshowchecksum", + "setsize", + "setspacing", + "setstaticbooleanfield", + "setstaticbytefield", + "setstaticcharfield", + "setstaticdoublefield", + "setstaticfloatfield", + "setstaticintfield", + "setstaticlongfield", + "setstaticobjectfield", + "setstaticshortfield", + "setstatus", + "settextalignment", + "settextsize", + "settimezone", + "settrait", + "setunderline", + "sharpen", + "shouldabort", + "shouldclose", + "showchecksum", + "showcode39startstop", + "showeanguardbars", + "shutdownrd", + "shutdownrdwr", + "shutdownwr", + "sin", + "sinh", + "size", + "skip", + "skiprows", + "sort", + "sortcolumns", + "source", + "sourcecolumn", + "sourcefile", + "sourceline", + "specified", + "split", + "splitconnection", + "splitdebuggingthread", + "splitextension", + "splittext", + "splitthread", + "splittoprivatedev", + "splituppath", + "sql", + "sqlite3", + "sqrt", + "src", + "srcpath", + "sslerrfail", + "stack", + "standby", + "start", + "startone", + "startup", + "stat", + "statement", + "statementonly", + "stats", + "status", + "statuscode", + "statusmsg", + "stdin", + "step", + "stls", + "stop", + "stoprunning", + "storedata", + "stripfirstcomponent", + "striplastcomponent", + "style", + "styletype", + "sub", + "subject", + "subnode", + "subnodes", + "substringdata", + "subtract", + "subtraits", + "sum", + "supportscontentrepresentation", + "swapbytes", + "systemid", + "t", + "tabindex", + "table", + "tablecolumnnames", + "tablecolumns", + "tablehascolumn", + "tableizestacktrace", + "tableizestacktracelink", + "tablemap", + "tablename", + "tables", + "tabs", + "tabstr", + "tag", + "tagname", + "take", + "tan", + "tanh", + "target", + "tasks", + "tb", + "tell", + "testexitcode", + "testlock", + "textwidth", + "thenby", + "thenbydescending", + "threadreaddesc", + "throw", + "thrownew", + "time", + "timezone", + "title", + "titlecase", + "to", + "token", + "tolower", + "top", + "toreflectedfield", + "toreflectedmethod", + "total_changes", + "totitle", + "touch", + "toupper", + "toxmlstring", + "trace", + "trackingid", + "trait", + "transform", + "trigger", + "trim", + "trunk", + "tryfinderrorfile", + "trylock", + "tryreadobject", + "type", + "typename", + "uidl", + "uncompress", + "unescape", + "union", + "uniqueid", + "unlock", + "unspool", + "up", + "update", + "updategroup", + "upload", + "uppercase", + "url", + "used", + "usemap", + "user", + "usercolumns", + "valid", + "validate", + "validatesessionstable", + "value", + "values", + "valuetype", + "variant", + "version", + "wait", + "waitforcompletion", + "warnings", + "week", + "weekofmonth", + "weekofyear", + "where", + "width", + "workers", + "workinginputcolumns", + "workingkeycolumns", + "workingkeyfield_name", + "workingreturncolumns", + "workingsortcolumns", + "write", + "writebodybytes", + "writebytes", + "writeheader", + "writeheaderbytes", + "writeheaderline", + "writeid", + "writemessage", + "writeobject", + "writeobjecttcp", + "writestring", + "wroteheaders", + "xhtml", + "xmllang", + "y0", + "y1", + "year", + "yearwoy", + "yn", + "z", + "zip", + "zipfile", + "zipfilename", + "zipname", + "zips", + "zoneoffset", + ), + "Lasso 8 Member Tags": ( + "accept", + "add", + "addattachment", + "addattribute", + "addbarcode", + "addchapter", + "addcheckbox", + "addchild", + "addcombobox", + "addcomment", + "addcontent", + "addhiddenfield", + "addhtmlpart", + "addimage", + "addjavascript", + "addlist", + "addnamespace", + "addnextsibling", + "addpage", + "addparagraph", + "addparenttype", + "addpart", + "addpasswordfield", + "addphrase", + "addprevsibling", + "addradiobutton", + "addradiogroup", + "addresetbutton", + "addsection", + "addselectlist", + "addsibling", + "addsubmitbutton", + "addtable", + "addtext", + "addtextarea", + "addtextfield", + "addtextpart", + "alarms", + "annotate", + "answer", + "append", + "appendreplacement", + "appendtail", + "arc", + "asasync", + "astype", + "atbegin", + "atbottom", + "atend", + "atfarleft", + "atfarright", + "attop", + "attributecount", + "attributes", + "authenticate", + "authorize", + "backward", + "baseuri", + "bcc", + "beanproperties", + "beginswith", + "bind", + "bitand", + "bitclear", + "bitflip", + "bitformat", + "bitnot", + "bitor", + "bitset", + "bitshiftleft", + "bitshiftright", + "bittest", + "bitxor", + "blur", + "body", + "boundary", + "bytes", + "call", + "cancel", + "capabilities", + "cc", + "chardigitvalue", + "charname", + "charset", + "chartype", + "children", + "circle", + "close", + "closepath", + "closewrite", + "code", + "colorspace", + "command", + "comments", + "compare", + "comparecodepointorder", + "compile", + "composite", + "connect", + "contains", + "content_disposition", + "content_transfer_encoding", + "content_type", + "contents", + "contrast", + "convert", + "crop", + "curveto", + "data", + "date", + "day", + "daylights", + "dayofweek", + "dayofyear", + "decrement", + "delete", + "depth", + "describe", + "description", + "deserialize", + "detach", + "detachreference", + "difference", + "digit", + "document", + "down", + "drawtext", + "dst", + "dump", + "endswith", + "enhance", + "equals", + "errors", + "eval", + "events", + "execute", + "export16bits", + "export32bits", + "export64bits", + "export8bits", + "exportfdf", + "exportstring", + "extract", + "extractone", + "fieldnames", + "fieldtype", + "fieldvalue", + "file", + "find", + "findindex", + "findnamespace", + "findnamespacebyhref", + "findpattern", + "findposition", + "first", + "firstchild", + "fliph", + "flipv", + "flush", + "foldcase", + "foreach", + "format", + "forward", + "freebusies", + "freezetype", + "freezevalue", + "from", + "fulltype", + "generatechecksum", + "get", + "getabswidth", + "getalignment", + "getattribute", + "getattributenamespace", + "getbarheight", + "getbarmultiplier", + "getbarwidth", + "getbaseline", + "getbordercolor", + "getborderwidth", + "getcode", + "getcolor", + "getcolumncount", + "getencoding", + "getface", + "getfont", + "getformat", + "getfullfontname", + "getheaders", + "getmargins", + "getmethod", + "getnumericvalue", + "getpadding", + "getpagenumber", + "getparams", + "getproperty", + "getpsfontname", + "getrange", + "getrowcount", + "getsize", + "getspacing", + "getsupportedencodings", + "gettextalignment", + "gettextsize", + "gettype", + "gmt", + "groupcount", + "hasattribute", + "haschildren", + "hasvalue", + "header", + "headers", + "height", + "histogram", + "hosttonet16", + "hosttonet32", + "hour", + "id", + "ignorecase", + "import16bits", + "import32bits", + "import64bits", + "import8bits", + "importfdf", + "importstring", + "increment", + "input", + "insert", + "insertatcurrent", + "insertfirst", + "insertfrom", + "insertlast", + "insertpage", + "integer", + "intersection", + "invoke", + "isa", + "isalnum", + "isalpha", + "isbase", + "iscntrl", + "isdigit", + "isemptyelement", + "islower", + "isopen", + "isprint", + "isspace", + "istitle", + "istruetype", + "isualphabetic", + "isulowercase", + "isupper", + "isuuppercase", + "isuwhitespace", + "iswhitespace", + "iterator", + "javascript", + "join", + "journals", + "key", + "keys", + "last", + "lastchild", + "lasterror", + "left", + "length", + "line", + "listen", + "localaddress", + "localname", + "lock", + "lookupnamespace", + "lowercase", + "marker", + "matches", + "matchesstart", + "matchposition", + "matchstring", + "merge", + "millisecond", + "minute", + "mode", + "modulate", + "month", + "moveto", + "movetoattributenamespace", + "movetoelement", + "movetofirstattribute", + "movetonextattribute", + "name", + "namespaces", + "namespaceuri", + "nettohost16", + "nettohost32", + "newchild", + "next", + "nextsibling", + "nodetype", + "open", + "output", + "padleading", + "padtrailing", + "pagecount", + "pagesize", + "paraminfo", + "params", + "parent", + "path", + "pixel", + "position", + "prefix", + "previoussibling", + "properties", + "rawheaders", + "read", + "readattributevalue", + "readerror", + "readfrom", + "readline", + "readlock", + "readstring", + "readunlock", + "recipients", + "rect", + "refcount", + "referrals", + "remoteaddress", + "remove", + "removeall", + "removeattribute", + "removechild", + "removecurrent", + "removefirst", + "removelast", + "removeleading", + "removenamespace", + "removetrailing", + "render", + "replace", + "replaceall", + "replacefirst", + "replacepattern", + "replacewith", + "reserve", + "reset", + "resolutionh", + "resolutionv", + "response", + "results", + "retrieve", + "returntype", + "reverse", + "reverseiterator", + "right", + "rotate", + "run", + "save", + "scale", + "search", + "second", + "send", + "serialize", + "set", + "setalignment", + "setbarheight", + "setbarmultiplier", + "setbarwidth", + "setbaseline", + "setblocking", + "setbordercolor", + "setborderwidth", + "setbytes", + "setcode", + "setcolor", + "setcolorspace", + "setdatatype", + "setencoding", + "setface", + "setfieldvalue", + "setfont", + "setformat", + "setgeneratechecksum", + "setheight", + "setlassodata", + "setlinewidth", + "setmarker", + "setmode", + "setname", + "setpadding", + "setpagenumber", + "setpagerange", + "setposition", + "setproperty", + "setrange", + "setshowchecksum", + "setsize", + "setspacing", + "settemplate", + "settemplatestr", + "settextalignment", + "settextdata", + "settextsize", + "settype", + "setunderline", + "setwidth", + "setxmldata", + "sharpen", + "showchecksum", + "showcode39startstop", + "showeanguardbars", + "signal", + "signalall", + "size", + "smooth", + "sort", + "sortwith", + "split", + "standards", + "steal", + "subject", + "substring", + "subtract", + "swapbytes", + "textwidth", + "time", + "timezones", + "titlecase", + "to", + "todos", + "tolower", + "totitle", + "toupper", + "transform", + "trim", + "type", + "unescape", + "union", + "uniqueid", + "unlock", + "unserialize", + "up", + "uppercase", + "value", + "values", + "valuetype", + "wait", + "waskeyword", + "week", + "width", + "write", + "writelock", + "writeto", + "writeunlock", + "xmllang", + "xmlschematype", + "year", ), - 'Lasso 8 Member Tags': ( - 'accept', - 'add', - 'addattachment', - 'addattribute', - 'addbarcode', - 'addchapter', - 'addcheckbox', - 'addchild', - 'addcombobox', - 'addcomment', - 'addcontent', - 'addhiddenfield', - 'addhtmlpart', - 'addimage', - 'addjavascript', - 'addlist', - 'addnamespace', - 'addnextsibling', - 'addpage', - 'addparagraph', - 'addparenttype', - 'addpart', - 'addpasswordfield', - 'addphrase', - 'addprevsibling', - 'addradiobutton', - 'addradiogroup', - 'addresetbutton', - 'addsection', - 'addselectlist', - 'addsibling', - 'addsubmitbutton', - 'addtable', - 'addtext', - 'addtextarea', - 'addtextfield', - 'addtextpart', - 'alarms', - 'annotate', - 'answer', - 'append', - 'appendreplacement', - 'appendtail', - 'arc', - 'asasync', - 'astype', - 'atbegin', - 'atbottom', - 'atend', - 'atfarleft', - 'atfarright', - 'attop', - 'attributecount', - 'attributes', - 'authenticate', - 'authorize', - 'backward', - 'baseuri', - 'bcc', - 'beanproperties', - 'beginswith', - 'bind', - 'bitand', - 'bitclear', - 'bitflip', - 'bitformat', - 'bitnot', - 'bitor', - 'bitset', - 'bitshiftleft', - 'bitshiftright', - 'bittest', - 'bitxor', - 'blur', - 'body', - 'boundary', - 'bytes', - 'call', - 'cancel', - 'capabilities', - 'cc', - 'chardigitvalue', - 'charname', - 'charset', - 'chartype', - 'children', - 'circle', - 'close', - 'closepath', - 'closewrite', - 'code', - 'colorspace', - 'command', - 'comments', - 'compare', - 'comparecodepointorder', - 'compile', - 'composite', - 'connect', - 'contains', - 'content_disposition', - 'content_transfer_encoding', - 'content_type', - 'contents', - 'contrast', - 'convert', - 'crop', - 'curveto', - 'data', - 'date', - 'day', - 'daylights', - 'dayofweek', - 'dayofyear', - 'decrement', - 'delete', - 'depth', - 'describe', - 'description', - 'deserialize', - 'detach', - 'detachreference', - 'difference', - 'digit', - 'document', - 'down', - 'drawtext', - 'dst', - 'dump', - 'endswith', - 'enhance', - 'equals', - 'errors', - 'eval', - 'events', - 'execute', - 'export16bits', - 'export32bits', - 'export64bits', - 'export8bits', - 'exportfdf', - 'exportstring', - 'extract', - 'extractone', - 'fieldnames', - 'fieldtype', - 'fieldvalue', - 'file', - 'find', - 'findindex', - 'findnamespace', - 'findnamespacebyhref', - 'findpattern', - 'findposition', - 'first', - 'firstchild', - 'fliph', - 'flipv', - 'flush', - 'foldcase', - 'foreach', - 'format', - 'forward', - 'freebusies', - 'freezetype', - 'freezevalue', - 'from', - 'fulltype', - 'generatechecksum', - 'get', - 'getabswidth', - 'getalignment', - 'getattribute', - 'getattributenamespace', - 'getbarheight', - 'getbarmultiplier', - 'getbarwidth', - 'getbaseline', - 'getbordercolor', - 'getborderwidth', - 'getcode', - 'getcolor', - 'getcolumncount', - 'getencoding', - 'getface', - 'getfont', - 'getformat', - 'getfullfontname', - 'getheaders', - 'getmargins', - 'getmethod', - 'getnumericvalue', - 'getpadding', - 'getpagenumber', - 'getparams', - 'getproperty', - 'getpsfontname', - 'getrange', - 'getrowcount', - 'getsize', - 'getspacing', - 'getsupportedencodings', - 'gettextalignment', - 'gettextsize', - 'gettype', - 'gmt', - 'groupcount', - 'hasattribute', - 'haschildren', - 'hasvalue', - 'header', - 'headers', - 'height', - 'histogram', - 'hosttonet16', - 'hosttonet32', - 'hour', - 'id', - 'ignorecase', - 'import16bits', - 'import32bits', - 'import64bits', - 'import8bits', - 'importfdf', - 'importstring', - 'increment', - 'input', - 'insert', - 'insertatcurrent', - 'insertfirst', - 'insertfrom', - 'insertlast', - 'insertpage', - 'integer', - 'intersection', - 'invoke', - 'isa', - 'isalnum', - 'isalpha', - 'isbase', - 'iscntrl', - 'isdigit', - 'isemptyelement', - 'islower', - 'isopen', - 'isprint', - 'isspace', - 'istitle', - 'istruetype', - 'isualphabetic', - 'isulowercase', - 'isupper', - 'isuuppercase', - 'isuwhitespace', - 'iswhitespace', - 'iterator', - 'javascript', - 'join', - 'journals', - 'key', - 'keys', - 'last', - 'lastchild', - 'lasterror', - 'left', - 'length', - 'line', - 'listen', - 'localaddress', - 'localname', - 'lock', - 'lookupnamespace', - 'lowercase', - 'marker', - 'matches', - 'matchesstart', - 'matchposition', - 'matchstring', - 'merge', - 'millisecond', - 'minute', - 'mode', - 'modulate', - 'month', - 'moveto', - 'movetoattributenamespace', - 'movetoelement', - 'movetofirstattribute', - 'movetonextattribute', - 'name', - 'namespaces', - 'namespaceuri', - 'nettohost16', - 'nettohost32', - 'newchild', - 'next', - 'nextsibling', - 'nodetype', - 'open', - 'output', - 'padleading', - 'padtrailing', - 'pagecount', - 'pagesize', - 'paraminfo', - 'params', - 'parent', - 'path', - 'pixel', - 'position', - 'prefix', - 'previoussibling', - 'properties', - 'rawheaders', - 'read', - 'readattributevalue', - 'readerror', - 'readfrom', - 'readline', - 'readlock', - 'readstring', - 'readunlock', - 'recipients', - 'rect', - 'refcount', - 'referrals', - 'remoteaddress', - 'remove', - 'removeall', - 'removeattribute', - 'removechild', - 'removecurrent', - 'removefirst', - 'removelast', - 'removeleading', - 'removenamespace', - 'removetrailing', - 'render', - 'replace', - 'replaceall', - 'replacefirst', - 'replacepattern', - 'replacewith', - 'reserve', - 'reset', - 'resolutionh', - 'resolutionv', - 'response', - 'results', - 'retrieve', - 'returntype', - 'reverse', - 'reverseiterator', - 'right', - 'rotate', - 'run', - 'save', - 'scale', - 'search', - 'second', - 'send', - 'serialize', - 'set', - 'setalignment', - 'setbarheight', - 'setbarmultiplier', - 'setbarwidth', - 'setbaseline', - 'setblocking', - 'setbordercolor', - 'setborderwidth', - 'setbytes', - 'setcode', - 'setcolor', - 'setcolorspace', - 'setdatatype', - 'setencoding', - 'setface', - 'setfieldvalue', - 'setfont', - 'setformat', - 'setgeneratechecksum', - 'setheight', - 'setlassodata', - 'setlinewidth', - 'setmarker', - 'setmode', - 'setname', - 'setpadding', - 'setpagenumber', - 'setpagerange', - 'setposition', - 'setproperty', - 'setrange', - 'setshowchecksum', - 'setsize', - 'setspacing', - 'settemplate', - 'settemplatestr', - 'settextalignment', - 'settextdata', - 'settextsize', - 'settype', - 'setunderline', - 'setwidth', - 'setxmldata', - 'sharpen', - 'showchecksum', - 'showcode39startstop', - 'showeanguardbars', - 'signal', - 'signalall', - 'size', - 'smooth', - 'sort', - 'sortwith', - 'split', - 'standards', - 'steal', - 'subject', - 'substring', - 'subtract', - 'swapbytes', - 'textwidth', - 'time', - 'timezones', - 'titlecase', - 'to', - 'todos', - 'tolower', - 'totitle', - 'toupper', - 'transform', - 'trim', - 'type', - 'unescape', - 'union', - 'uniqueid', - 'unlock', - 'unserialize', - 'up', - 'uppercase', - 'value', - 'values', - 'valuetype', - 'wait', - 'waskeyword', - 'week', - 'width', - 'write', - 'writelock', - 'writeto', - 'writeunlock', - 'xmllang', - 'xmlschematype', - 'year', - ) } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lilypond_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lilypond_builtins.py index b00dbbf..9e803ab 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lilypond_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_lilypond_builtins.py @@ -1,4932 +1,4931 @@ """ - pygments.lexers._lilypond_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._lilypond_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - LilyPond builtins. +LilyPond builtins. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # Contents generated by the script lilypond-builtins-generator.ly # found in the external/ directory of the source tree. keywords = [ - "accepts", - "addlyrics", - "alias", - "book", - "bookpart", - "chordmode", - "chords", - "consists", - "context", - "defaultchild", - "denies", - "description", - "drummode", - "drums", - "etc", - "figuremode", - "figures", - "header", - "include", - "inherit-acceptability", - "language", - "layout", - "lyricmode", - "lyricsto", - "midi", - "name", - "new", - "notemode", - "paper", - "remove", - "score", - "type", - "version", - "with", + "accepts", + "addlyrics", + "alias", + "book", + "bookpart", + "chordmode", + "chords", + "consists", + "context", + "defaultchild", + "denies", + "description", + "drummode", + "drums", + "etc", + "figuremode", + "figures", + "header", + "include", + "inherit-acceptability", + "language", + "layout", + "lyricmode", + "lyricsto", + "midi", + "name", + "new", + "notemode", + "paper", + "remove", + "score", + "type", + "version", + "with", ] clefs = [ - "C", - "F", - "G", - "G2", - "GG", - "alto", - "altovarC", - "baritone", - "baritonevarC", - "baritonevarF", - "bass", - "blackmensural-c1", - "blackmensural-c2", - "blackmensural-c3", - "blackmensural-c4", - "blackmensural-c5", - "french", - "hufnagel-do-fa", - "hufnagel-do1", - "hufnagel-do2", - "hufnagel-do3", - "hufnagel-fa1", - "hufnagel-fa2", - "kievan-do", - "medicaea-do1", - "medicaea-do2", - "medicaea-do3", - "medicaea-fa1", - "medicaea-fa2", - "mensural-c1", - "mensural-c2", - "mensural-c3", - "mensural-c4", - "mensural-c5", - "mensural-f", - "mensural-g", - "mezzosoprano", - "moderntab", - "neomensural-c1", - "neomensural-c2", - "neomensural-c3", - "neomensural-c4", - "neomensural-c5", - "percussion", - "petrucci-c1", - "petrucci-c2", - "petrucci-c3", - "petrucci-c4", - "petrucci-c5", - "petrucci-f", - "petrucci-f2", - "petrucci-f3", - "petrucci-f4", - "petrucci-f5", - "petrucci-g", - "petrucci-g1", - "petrucci-g2", - "soprano", - "subbass", - "tab", - "tenor", - "tenorG", - "tenorvarC", - "treble", - "varC", - "varbaritone", - "varpercussion", - "vaticana-do1", - "vaticana-do2", - "vaticana-do3", - "vaticana-fa1", - "vaticana-fa2", - "violin", + "C", + "F", + "G", + "G2", + "GG", + "alto", + "altovarC", + "baritone", + "baritonevarC", + "baritonevarF", + "bass", + "blackmensural-c1", + "blackmensural-c2", + "blackmensural-c3", + "blackmensural-c4", + "blackmensural-c5", + "french", + "hufnagel-do-fa", + "hufnagel-do1", + "hufnagel-do2", + "hufnagel-do3", + "hufnagel-fa1", + "hufnagel-fa2", + "kievan-do", + "medicaea-do1", + "medicaea-do2", + "medicaea-do3", + "medicaea-fa1", + "medicaea-fa2", + "mensural-c1", + "mensural-c2", + "mensural-c3", + "mensural-c4", + "mensural-c5", + "mensural-f", + "mensural-g", + "mezzosoprano", + "moderntab", + "neomensural-c1", + "neomensural-c2", + "neomensural-c3", + "neomensural-c4", + "neomensural-c5", + "percussion", + "petrucci-c1", + "petrucci-c2", + "petrucci-c3", + "petrucci-c4", + "petrucci-c5", + "petrucci-f", + "petrucci-f2", + "petrucci-f3", + "petrucci-f4", + "petrucci-f5", + "petrucci-g", + "petrucci-g1", + "petrucci-g2", + "soprano", + "subbass", + "tab", + "tenor", + "tenorG", + "tenorvarC", + "treble", + "varC", + "varbaritone", + "varpercussion", + "vaticana-do1", + "vaticana-do2", + "vaticana-do3", + "vaticana-fa1", + "vaticana-fa2", + "violin", ] scales = [ - "aeolian", - "dorian", - "ionian", - "locrian", - "lydian", - "major", - "minor", - "mixolydian", - "phrygian", + "aeolian", + "dorian", + "ionian", + "locrian", + "lydian", + "major", + "minor", + "mixolydian", + "phrygian", ] repeat_types = [ - "percent", - "segno", - "tremolo", - "unfold", - "volta", + "percent", + "segno", + "tremolo", + "unfold", + "volta", ] units = [ - "cm", - "in", - "mm", - "pt", - "staff-space", + "cm", + "in", + "mm", + "pt", + "staff-space", ] chord_modifiers = [ - "aug", - "dim", - "m", - "maj", + "aug", + "dim", + "m", + "maj", ] pitch_language_names = [ - "arabic", - "catalan", - "català", - "deutsch", - "english", - "espanol", - "español", - "français", - "italiano", - "nederlands", - "norsk", - "portugues", - "português", - "suomi", - "svenska", - "vlaams", + "arabic", + "catalan", + "català", + "deutsch", + "english", + "espanol", + "español", + "français", + "italiano", + "nederlands", + "norsk", + "portugues", + "português", + "suomi", + "svenska", + "vlaams", ] pitches = [ - "R", - "a", - "a-flat", - "a-flatflat", - "a-natural", - "a-sharp", - "a-sharpsharp", - "ab", - "acousticbassdrum", - "acousticsnare", - "ad", - "adb", - "add", - "aeh", - "aes", - "aeseh", - "aeses", - "aess", - "aesseh", - "aessess", - "af", - "aff", - "afhb", - "afhd", - "agh", - "agl", - "ah", - "aih", - "ais", - "aisih", - "aisis", - "aiss", - "aissih", - "aississ", - "aqf", - "aqs", - "as", - "asah", - "asas", - "aseh", - "ases", - "ashb", - "ashd", - "ass", - "asseh", - "assess", - "atqb", - "atqd", - "atqf", - "atqs", - "ax", - "b", - "b-flat", - "b-flatflat", - "b-natural", - "b-sharp", - "b-sharpsharp", - "bassdrum", - "bb", - "bd", - "bda", - "bdb", - "bdd", - "beh", - "bes", - "beseh", - "beses", - "bess", - "bf", - "bff", - "bfhb", - "bfhd", - "bih", - "bis", - "bisih", - "bisis", - "boh", - "bohm", - "boho", - "bol", - "bolm", - "bolo", - "bqf", - "bqs", - "bs", - "bshb", - "bshd", - "bss", - "btqb", - "btqd", - "btqf", - "btqs", - "bx", - "c", - "c-flat", - "c-flatflat", - "c-natural", - "c-sharp", - "c-sharpsharp", - "cab", - "cabasa", - "cb", - "cd", - "cdb", - "cdd", - "ceh", - "ces", - "ceseh", - "ceses", - "cess", - "cesseh", - "cessess", - "cf", - "cff", - "cfhb", - "cfhd", - "cgh", - "cghm", - "cgho", - "cgl", - "cglm", - "cglo", - "chinesecymbal", - "cih", - "cis", - "cisih", - "cisis", - "ciss", - "cissih", - "cississ", - "cl", - "claves", - "closedhihat", - "cowbell", - "cqf", - "cqs", - "crashcymbal", - "crashcymbala", - "crashcymbalb", - "cs", - "cshb", - "cshd", - "css", - "ctqb", - "ctqd", - "ctqf", - "ctqs", - "cuim", - "cuio", - "cx", - "cymc", - "cymca", - "cymcb", - "cymch", - "cymr", - "cymra", - "cymrb", - "cyms", - "d", - "d-flat", - "d-flatflat", - "d-natural", - "d-sharp", - "d-sharpsharp", - "db", - "dd", - "ddb", - "ddd", - "deh", - "des", - "deseh", - "deses", - "dess", - "desseh", - "dessess", - "df", - "dff", - "dfhb", - "dfhd", - "dih", - "dis", - "disih", - "disis", - "diss", - "dissih", - "dississ", - "do", - "dob", - "dobb", - "dobhb", - "dobqt", - "dobsb", - "dobtqt", - "docb", - "docs", - "dod", - "dodd", - "dodsd", - "dohb", - "dohk", - "dok", - "dokhk", - "dokk", - "doqb", - "doqd", - "doqs", - "dos", - "dosb", - "dosd", - "dosqt", - "doss", - "dostqt", - "dotcb", - "dotcs", - "dotqb", - "dotqd", - "dotqs", - "dox", - "dqf", - "dqs", - "ds", - "dshb", - "dshd", - "dss", - "dtqb", - "dtqd", - "dtqf", - "dtqs", - "dx", - "e", - "e-flat", - "e-flatflat", - "e-natural", - "e-sharp", - "e-sharpsharp", - "eb", - "ed", - "edb", - "edd", - "eeh", - "ees", - "eeseh", - "eeses", - "eess", - "eesseh", - "eessess", - "ef", - "eff", - "efhb", - "efhd", - "eh", - "eih", - "eis", - "eisih", - "eisis", - "eiss", - "eissih", - "eississ", - "electricsnare", - "eqf", - "eqs", - "es", - "eseh", - "eses", - "eshb", - "eshd", - "ess", - "esseh", - "essess", - "etqb", - "etqd", - "etqf", - "etqs", - "ex", - "f", - "f-flat", - "f-flatflat", - "f-natural", - "f-sharp", - "f-sharpsharp", - "fa", - "fab", - "fabb", - "fabhb", - "fabqt", - "fabsb", - "fabtqt", - "facb", - "facs", - "fad", - "fadd", - "fadsd", - "fahb", - "fahk", - "fak", - "fakhk", - "fakk", - "faqb", - "faqd", - "faqs", - "fas", - "fasb", - "fasd", - "fasqt", - "fass", - "fastqt", - "fatcb", - "fatcs", - "fatqb", - "fatqd", - "fatqs", - "fax", - "fb", - "fd", - "fdb", - "fdd", - "feh", - "fes", - "feseh", - "feses", - "fess", - "fesseh", - "fessess", - "ff", - "fff", - "ffhb", - "ffhd", - "fih", - "fis", - "fisih", - "fisis", - "fiss", - "fissih", - "fississ", - "fqf", - "fqs", - "fs", - "fshb", - "fshd", - "fss", - "ftqb", - "ftqd", - "ftqf", - "ftqs", - "fx", - "g", - "g-flat", - "g-flatflat", - "g-natural", - "g-sharp", - "g-sharpsharp", - "gb", - "gd", - "gdb", - "gdd", - "geh", - "ges", - "geseh", - "geses", - "gess", - "gesseh", - "gessess", - "gf", - "gff", - "gfhb", - "gfhd", - "gih", - "gis", - "gisih", - "gisis", - "giss", - "gissih", - "gississ", - "gqf", - "gqs", - "gs", - "gshb", - "gshd", - "gss", - "gtqb", - "gtqd", - "gtqf", - "gtqs", - "gui", - "guil", - "guiro", - "guis", - "gx", - "h", - "halfopenhihat", - "handclap", - "hc", - "heh", - "heseh", - "heses", - "hesseh", - "hessess", - "hh", - "hhc", - "hhho", - "hho", - "hhp", - "hiagogo", - "hibongo", - "hiconga", - "highfloortom", - "hightom", - "hih", - "hihat", - "himidtom", - "his", - "hisidestick", - "hisih", - "hisis", - "hiss", - "hissih", - "hississ", - "hitimbale", - "hiwoodblock", - "la", - "lab", - "labb", - "labhb", - "labqt", - "labsb", - "labtqt", - "lacb", - "lacs", - "lad", - "ladd", - "ladsd", - "lahb", - "lahk", - "lak", - "lakhk", - "lakk", - "laqb", - "laqd", - "laqs", - "las", - "lasb", - "lasd", - "lasqt", - "lass", - "lastqt", - "latcb", - "latcs", - "latqb", - "latqd", - "latqs", - "lax", - "loagogo", - "lobongo", - "loconga", - "longguiro", - "longwhistle", - "losidestick", - "lotimbale", - "lowfloortom", - "lowmidtom", - "lowoodblock", - "lowtom", - "mar", - "maracas", - "mi", - "mib", - "mibb", - "mibhb", - "mibqt", - "mibsb", - "mibtqt", - "micb", - "mics", - "mid", - "midd", - "midsd", - "mihb", - "mihk", - "mik", - "mikhk", - "mikk", - "miqb", - "miqd", - "miqs", - "mis", - "misb", - "misd", - "misqt", - "miss", - "mistqt", - "mitcb", - "mitcs", - "mitqb", - "mitqd", - "mitqs", - "mix", - "mutecuica", - "mutehibongo", - "mutehiconga", - "mutelobongo", - "muteloconga", - "mutetriangle", - "opencuica", - "openhibongo", - "openhiconga", - "openhihat", - "openlobongo", - "openloconga", - "opentriangle", - "pedalhihat", - "r", - "rb", - "re", - "reb", - "rebb", - "rebhb", - "rebqt", - "rebsb", - "rebtqt", - "recb", - "recs", - "red", - "redd", - "redsd", - "rehb", - "rehk", - "rek", - "rekhk", - "rekk", - "reqb", - "reqd", - "reqs", - "res", - "resb", - "resd", - "resqt", - "ress", - "restqt", - "retcb", - "retcs", - "retqb", - "retqd", - "retqs", - "rex", - "ridebell", - "ridecymbal", - "ridecymbala", - "ridecymbalb", - "ré", - "réb", - "rébb", - "rébsb", - "réd", - "rédd", - "rédsd", - "résb", - "résd", - "réx", - "shortguiro", - "shortwhistle", - "si", - "sib", - "sibb", - "sibhb", - "sibqt", - "sibsb", - "sibtqt", - "sicb", - "sics", - "sid", - "sidd", - "sidestick", - "sidsd", - "sihb", - "sihk", - "sik", - "sikhk", - "sikk", - "siqb", - "siqd", - "siqs", - "sis", - "sisb", - "sisd", - "sisqt", - "siss", - "sistqt", - "sitcb", - "sitcs", - "sitqb", - "sitqd", - "sitqs", - "six", - "sn", - "sna", - "snare", - "sne", - "sol", - "solb", - "solbb", - "solbhb", - "solbqt", - "solbsb", - "solbtqt", - "solcb", - "solcs", - "sold", - "soldd", - "soldsd", - "solhb", - "solhk", - "solk", - "solkhk", - "solkk", - "solqb", - "solqd", - "solqs", - "sols", - "solsb", - "solsd", - "solsqt", - "solss", - "solstqt", - "soltcb", - "soltcs", - "soltqb", - "soltqd", - "soltqs", - "solx", - "splashcymbal", - "ss", - "ssh", - "ssl", - "tamb", - "tambourine", - "timh", - "timl", - "tomfh", - "tomfl", - "tomh", - "toml", - "tommh", - "tomml", - "tri", - "triangle", - "trim", - "trio", - "tt", - "vibraslap", - "vibs", - "wbh", - "wbl", - "whl", - "whs", + "R", + "a", + "a-flat", + "a-flatflat", + "a-natural", + "a-sharp", + "a-sharpsharp", + "ab", + "acousticbassdrum", + "acousticsnare", + "ad", + "adb", + "add", + "aeh", + "aes", + "aeseh", + "aeses", + "aess", + "aesseh", + "aessess", + "af", + "aff", + "afhb", + "afhd", + "agh", + "agl", + "ah", + "aih", + "ais", + "aisih", + "aisis", + "aiss", + "aissih", + "aississ", + "aqf", + "aqs", + "as", + "asah", + "asas", + "aseh", + "ases", + "ashb", + "ashd", + "ass", + "asseh", + "assess", + "atqb", + "atqd", + "atqf", + "atqs", + "ax", + "b", + "b-flat", + "b-flatflat", + "b-natural", + "b-sharp", + "b-sharpsharp", + "bassdrum", + "bb", + "bd", + "bda", + "bdb", + "bdd", + "beh", + "bes", + "beseh", + "beses", + "bess", + "bf", + "bff", + "bfhb", + "bfhd", + "bih", + "bis", + "bisih", + "bisis", + "boh", + "bohm", + "boho", + "bol", + "bolm", + "bolo", + "bqf", + "bqs", + "bs", + "bshb", + "bshd", + "bss", + "btqb", + "btqd", + "btqf", + "btqs", + "bx", + "c", + "c-flat", + "c-flatflat", + "c-natural", + "c-sharp", + "c-sharpsharp", + "cab", + "cabasa", + "cb", + "cd", + "cdb", + "cdd", + "ceh", + "ces", + "ceseh", + "ceses", + "cess", + "cesseh", + "cessess", + "cf", + "cff", + "cfhb", + "cfhd", + "cgh", + "cghm", + "cgho", + "cgl", + "cglm", + "cglo", + "chinesecymbal", + "cih", + "cis", + "cisih", + "cisis", + "ciss", + "cissih", + "cississ", + "cl", + "claves", + "closedhihat", + "cowbell", + "cqf", + "cqs", + "crashcymbal", + "crashcymbala", + "crashcymbalb", + "cs", + "cshb", + "cshd", + "css", + "ctqb", + "ctqd", + "ctqf", + "ctqs", + "cuim", + "cuio", + "cx", + "cymc", + "cymca", + "cymcb", + "cymch", + "cymr", + "cymra", + "cymrb", + "cyms", + "d", + "d-flat", + "d-flatflat", + "d-natural", + "d-sharp", + "d-sharpsharp", + "db", + "dd", + "ddb", + "ddd", + "deh", + "des", + "deseh", + "deses", + "dess", + "desseh", + "dessess", + "df", + "dff", + "dfhb", + "dfhd", + "dih", + "dis", + "disih", + "disis", + "diss", + "dissih", + "dississ", + "do", + "dob", + "dobb", + "dobhb", + "dobqt", + "dobsb", + "dobtqt", + "docb", + "docs", + "dod", + "dodd", + "dodsd", + "dohb", + "dohk", + "dok", + "dokhk", + "dokk", + "doqb", + "doqd", + "doqs", + "dos", + "dosb", + "dosd", + "dosqt", + "doss", + "dostqt", + "dotcb", + "dotcs", + "dotqb", + "dotqd", + "dotqs", + "dox", + "dqf", + "dqs", + "ds", + "dshb", + "dshd", + "dss", + "dtqb", + "dtqd", + "dtqf", + "dtqs", + "dx", + "e", + "e-flat", + "e-flatflat", + "e-natural", + "e-sharp", + "e-sharpsharp", + "eb", + "ed", + "edb", + "edd", + "eeh", + "ees", + "eeseh", + "eeses", + "eess", + "eesseh", + "eessess", + "ef", + "eff", + "efhb", + "efhd", + "eh", + "eih", + "eis", + "eisih", + "eisis", + "eiss", + "eissih", + "eississ", + "electricsnare", + "eqf", + "eqs", + "es", + "eseh", + "eses", + "eshb", + "eshd", + "ess", + "esseh", + "essess", + "etqb", + "etqd", + "etqf", + "etqs", + "ex", + "f", + "f-flat", + "f-flatflat", + "f-natural", + "f-sharp", + "f-sharpsharp", + "fa", + "fab", + "fabb", + "fabhb", + "fabqt", + "fabsb", + "fabtqt", + "facb", + "facs", + "fad", + "fadd", + "fadsd", + "fahb", + "fahk", + "fak", + "fakhk", + "fakk", + "faqb", + "faqd", + "faqs", + "fas", + "fasb", + "fasd", + "fasqt", + "fass", + "fastqt", + "fatcb", + "fatcs", + "fatqb", + "fatqd", + "fatqs", + "fax", + "fb", + "fd", + "fdb", + "fdd", + "feh", + "fes", + "feseh", + "feses", + "fess", + "fesseh", + "fessess", + "ff", + "fff", + "ffhb", + "ffhd", + "fih", + "fis", + "fisih", + "fisis", + "fiss", + "fissih", + "fississ", + "fqf", + "fqs", + "fs", + "fshb", + "fshd", + "fss", + "ftqb", + "ftqd", + "ftqf", + "ftqs", + "fx", + "g", + "g-flat", + "g-flatflat", + "g-natural", + "g-sharp", + "g-sharpsharp", + "gb", + "gd", + "gdb", + "gdd", + "geh", + "ges", + "geseh", + "geses", + "gess", + "gesseh", + "gessess", + "gf", + "gff", + "gfhb", + "gfhd", + "gih", + "gis", + "gisih", + "gisis", + "giss", + "gissih", + "gississ", + "gqf", + "gqs", + "gs", + "gshb", + "gshd", + "gss", + "gtqb", + "gtqd", + "gtqf", + "gtqs", + "gui", + "guil", + "guiro", + "guis", + "gx", + "h", + "halfopenhihat", + "handclap", + "hc", + "heh", + "heseh", + "heses", + "hesseh", + "hessess", + "hh", + "hhc", + "hhho", + "hho", + "hhp", + "hiagogo", + "hibongo", + "hiconga", + "highfloortom", + "hightom", + "hih", + "hihat", + "himidtom", + "his", + "hisidestick", + "hisih", + "hisis", + "hiss", + "hissih", + "hississ", + "hitimbale", + "hiwoodblock", + "la", + "lab", + "labb", + "labhb", + "labqt", + "labsb", + "labtqt", + "lacb", + "lacs", + "lad", + "ladd", + "ladsd", + "lahb", + "lahk", + "lak", + "lakhk", + "lakk", + "laqb", + "laqd", + "laqs", + "las", + "lasb", + "lasd", + "lasqt", + "lass", + "lastqt", + "latcb", + "latcs", + "latqb", + "latqd", + "latqs", + "lax", + "loagogo", + "lobongo", + "loconga", + "longguiro", + "longwhistle", + "losidestick", + "lotimbale", + "lowfloortom", + "lowmidtom", + "lowoodblock", + "lowtom", + "mar", + "maracas", + "mi", + "mib", + "mibb", + "mibhb", + "mibqt", + "mibsb", + "mibtqt", + "micb", + "mics", + "mid", + "midd", + "midsd", + "mihb", + "mihk", + "mik", + "mikhk", + "mikk", + "miqb", + "miqd", + "miqs", + "mis", + "misb", + "misd", + "misqt", + "miss", + "mistqt", + "mitcb", + "mitcs", + "mitqb", + "mitqd", + "mitqs", + "mix", + "mutecuica", + "mutehibongo", + "mutehiconga", + "mutelobongo", + "muteloconga", + "mutetriangle", + "opencuica", + "openhibongo", + "openhiconga", + "openhihat", + "openlobongo", + "openloconga", + "opentriangle", + "pedalhihat", + "r", + "rb", + "re", + "reb", + "rebb", + "rebhb", + "rebqt", + "rebsb", + "rebtqt", + "recb", + "recs", + "red", + "redd", + "redsd", + "rehb", + "rehk", + "rek", + "rekhk", + "rekk", + "reqb", + "reqd", + "reqs", + "res", + "resb", + "resd", + "resqt", + "ress", + "restqt", + "retcb", + "retcs", + "retqb", + "retqd", + "retqs", + "rex", + "ridebell", + "ridecymbal", + "ridecymbala", + "ridecymbalb", + "ré", + "réb", + "rébb", + "rébsb", + "réd", + "rédd", + "rédsd", + "résb", + "résd", + "réx", + "shortguiro", + "shortwhistle", + "si", + "sib", + "sibb", + "sibhb", + "sibqt", + "sibsb", + "sibtqt", + "sicb", + "sics", + "sid", + "sidd", + "sidestick", + "sidsd", + "sihb", + "sihk", + "sik", + "sikhk", + "sikk", + "siqb", + "siqd", + "siqs", + "sis", + "sisb", + "sisd", + "sisqt", + "siss", + "sistqt", + "sitcb", + "sitcs", + "sitqb", + "sitqd", + "sitqs", + "six", + "sn", + "sna", + "snare", + "sne", + "sol", + "solb", + "solbb", + "solbhb", + "solbqt", + "solbsb", + "solbtqt", + "solcb", + "solcs", + "sold", + "soldd", + "soldsd", + "solhb", + "solhk", + "solk", + "solkhk", + "solkk", + "solqb", + "solqd", + "solqs", + "sols", + "solsb", + "solsd", + "solsqt", + "solss", + "solstqt", + "soltcb", + "soltcs", + "soltqb", + "soltqd", + "soltqs", + "solx", + "splashcymbal", + "ss", + "ssh", + "ssl", + "tamb", + "tambourine", + "timh", + "timl", + "tomfh", + "tomfl", + "tomh", + "toml", + "tommh", + "tomml", + "tri", + "triangle", + "trim", + "trio", + "tt", + "vibraslap", + "vibs", + "wbh", + "wbl", + "whl", + "whs", ] music_functions = [ - "=", - "absolute", - "acciaccatura", - "accidentalStyle", - "addChordShape", - "addInstrumentDefinition", - "addQuote", - "after", - "afterGrace", - "allowPageTurn", - "allowVoltaHook", - "alterBroken", - "alternative", - "ambitusAfter", - "appendToTag", - "applyContext", - "applyMusic", - "applyOutput", - "appoggiatura", - "assertBeamQuant", - "assertBeamSlope", - "autoChange", - "balloonGrobText", - "balloonText", - "bar", - "barNumberCheck", - "beamExceptions", - "bendAfter", - "bendHold", - "bendStartLevel", - "bookOutputName", - "bookOutputSuffix", - "breathe", - "caesura", - "change", - "chordRepeats", - "clef", - "codaMark", - "compoundMeter", - "compressMMRests", - "crossStaff", - "cueClef", - "cueClefUnset", - "cueDuring", - "cueDuringWithClef", - "deadNote", - "defineBarLine", - "displayLilyMusic", - "displayMusic", - "displayScheme", - "dropNote", - "enablePolymeter", - "endSpanners", - "eventChords", - "featherDurations", - "finger", - "fixed", - "footnote", - "grace", - "grobdescriptions", - "harmonicByFret", - "harmonicByRatio", - "harmonicNote", - "harmonicsOn", - "hide", - "inStaffSegno", - "incipit", - "inherit-acceptability", - "instrumentSwitch", - "inversion", - "invertChords", - "jump", - "keepWithTag", - "key", - "killCues", - "label", - "language", - "languageRestore", - "languageSaveAndChange", - "magnifyMusic", - "magnifyStaff", - "makeClusters", - "makeDefaultStringTuning", - "mark", - "markupMap", - "modalInversion", - "modalTranspose", - "musicMap", - "noPageBreak", - "noPageTurn", - "octaveCheck", - "offset", - "omit", - "once", - "ottava", - "override", - "overrideProperty", - "overrideTimeSignatureSettings", - "pageBreak", - "pageTurn", - "palmMute", - "palmMuteOn", - "parallelMusic", - "parenthesize", - "partCombine", - "partCombineDown", - "partCombineForce", - "partCombineUp", - "partial", - "phrasingSlurDashPattern", - "pitchedTrill", - "pointAndClickOff", - "pointAndClickOn", - "pointAndClickTypes", - "preBend", - "preBendHold", - "propertyOverride", - "propertyRevert", - "propertySet", - "propertyTweak", - "propertyUnset", - "pushToTag", - "quoteDuring", - "raiseNote", - "reduceChords", - "relative", - "removeWithTag", - "repeat", - "resetRelativeOctave", - "retrograde", - "revert", - "revertTimeSignatureSettings", - "rightHandFinger", - "scaleDurations", - "sectionLabel", - "segnoMark", - "set", - "settingsFrom", - "shape", - "shiftDurations", - "single", - "skip", - "slashedGrace", - "slurDashPattern", - "staffHighlight", - "storePredefinedDiagram", - "stringTuning", - "styledNoteHeads", - "tabChordRepeats", - "tabChordRepetition", - "tag", - "tagGroup", - "tempo", - "temporary", - "textEndMark", - "textMark", - "tieDashPattern", - "time", - "times", - "tocItem", - "transpose", - "transposedCueDuring", - "transposition", - "tuplet", - "tupletSpan", - "tweak", - "undo", - "unfoldRepeats", - "unfolded", - "unset", - "voices", - "void", - "volta", - "vshape", - "withMusicProperty", - "xNote", + "=", + "absolute", + "acciaccatura", + "accidentalStyle", + "addChordShape", + "addInstrumentDefinition", + "addQuote", + "after", + "afterGrace", + "allowPageTurn", + "allowVoltaHook", + "alterBroken", + "alternative", + "ambitusAfter", + "appendToTag", + "applyContext", + "applyMusic", + "applyOutput", + "appoggiatura", + "assertBeamQuant", + "assertBeamSlope", + "autoChange", + "balloonGrobText", + "balloonText", + "bar", + "barNumberCheck", + "beamExceptions", + "bendAfter", + "bendHold", + "bendStartLevel", + "bookOutputName", + "bookOutputSuffix", + "breathe", + "caesura", + "change", + "chordRepeats", + "clef", + "codaMark", + "compoundMeter", + "compressMMRests", + "crossStaff", + "cueClef", + "cueClefUnset", + "cueDuring", + "cueDuringWithClef", + "deadNote", + "defineBarLine", + "displayLilyMusic", + "displayMusic", + "displayScheme", + "dropNote", + "enablePolymeter", + "endSpanners", + "eventChords", + "featherDurations", + "finger", + "fixed", + "footnote", + "grace", + "grobdescriptions", + "harmonicByFret", + "harmonicByRatio", + "harmonicNote", + "harmonicsOn", + "hide", + "inStaffSegno", + "incipit", + "inherit-acceptability", + "instrumentSwitch", + "inversion", + "invertChords", + "jump", + "keepWithTag", + "key", + "killCues", + "label", + "language", + "languageRestore", + "languageSaveAndChange", + "magnifyMusic", + "magnifyStaff", + "makeClusters", + "makeDefaultStringTuning", + "mark", + "markupMap", + "modalInversion", + "modalTranspose", + "musicMap", + "noPageBreak", + "noPageTurn", + "octaveCheck", + "offset", + "omit", + "once", + "ottava", + "override", + "overrideProperty", + "overrideTimeSignatureSettings", + "pageBreak", + "pageTurn", + "palmMute", + "palmMuteOn", + "parallelMusic", + "parenthesize", + "partCombine", + "partCombineDown", + "partCombineForce", + "partCombineUp", + "partial", + "phrasingSlurDashPattern", + "pitchedTrill", + "pointAndClickOff", + "pointAndClickOn", + "pointAndClickTypes", + "preBend", + "preBendHold", + "propertyOverride", + "propertyRevert", + "propertySet", + "propertyTweak", + "propertyUnset", + "pushToTag", + "quoteDuring", + "raiseNote", + "reduceChords", + "relative", + "removeWithTag", + "repeat", + "resetRelativeOctave", + "retrograde", + "revert", + "revertTimeSignatureSettings", + "rightHandFinger", + "scaleDurations", + "sectionLabel", + "segnoMark", + "set", + "settingsFrom", + "shape", + "shiftDurations", + "single", + "skip", + "slashedGrace", + "slurDashPattern", + "staffHighlight", + "storePredefinedDiagram", + "stringTuning", + "styledNoteHeads", + "tabChordRepeats", + "tabChordRepetition", + "tag", + "tagGroup", + "tempo", + "temporary", + "textEndMark", + "textMark", + "tieDashPattern", + "time", + "times", + "tocItem", + "transpose", + "transposedCueDuring", + "transposition", + "tuplet", + "tupletSpan", + "tweak", + "undo", + "unfoldRepeats", + "unfolded", + "unset", + "voices", + "void", + "volta", + "vshape", + "withMusicProperty", + "xNote", ] dynamics = [ - "!", - "<", - ">", - "cr", - "cresc", - "decr", - "decresc", - "dim", - "endcr", - "endcresc", - "enddecr", - "enddecresc", - "enddim", - "f", - "ff", - "fff", - "ffff", - "fffff", - "fp", - "fz", - "mf", - "mp", - "n", - "p", - "pp", - "ppp", - "pppp", - "ppppp", - "rfz", - "sf", - "sff", - "sfp", - "sfz", - "sp", - "spp", + "!", + "<", + ">", + "cr", + "cresc", + "decr", + "decresc", + "dim", + "endcr", + "endcresc", + "enddecr", + "enddecresc", + "enddim", + "f", + "ff", + "fff", + "ffff", + "fffff", + "fp", + "fz", + "mf", + "mp", + "n", + "p", + "pp", + "ppp", + "pppp", + "ppppp", + "rfz", + "sf", + "sff", + "sfp", + "sfz", + "sp", + "spp", ] articulations = [ - "(", - ")", - "-", - "[", - "]", - "^", - "accent", - "arpeggio", - "breakDynamicSpan", - "coda", - "dashBang", - "dashDash", - "dashDot", - "dashHat", - "dashLarger", - "dashPlus", - "dashUnderscore", - "downbow", - "downmordent", - "downprall", - "episemFinis", - "episemInitium", - "espressivo", - "fermata", - "flageolet", - "glide", - "glissando", - "halfopen", - "harmonic", - "haydnturn", - "henzelongfermata", - "henzeshortfermata", - "laissezVibrer", - "lheel", - "lineprall", - "longfermata", - "ltoe", - "marcato", - "mordent", - "noBeam", - "open", - "portato", - "prall", - "pralldown", - "prallmordent", - "prallprall", - "prallup", - "repeatTie", - "reverseturn", - "rheel", - "rtoe", - "segno", - "shortfermata", - "signumcongruentiae", - "slashturn", - "snappizzicato", - "sostenutoOff", - "sostenutoOn", - "staccatissimo", - "staccato", - "startGraceSlur", - "startGroup", - "startTextSpan", - "startTrillSpan", - "stopGraceSlur", - "stopGroup", - "stopTextSpan", - "stopTrillSpan", - "stopped", - "sustainOff", - "sustainOn", - "tenuto", - "thumb", - "treCorde", - "trill", - "turn", - "unaCorda", - "upbow", - "upmordent", - "upprall", - "varcoda", - "verylongfermata", - "veryshortfermata", - "vowelTransition", - "~", + "(", + ")", + "-", + "[", + "]", + "^", + "accent", + "arpeggio", + "breakDynamicSpan", + "coda", + "dashBang", + "dashDash", + "dashDot", + "dashHat", + "dashLarger", + "dashPlus", + "dashUnderscore", + "downbow", + "downmordent", + "downprall", + "episemFinis", + "episemInitium", + "espressivo", + "fermata", + "flageolet", + "glide", + "glissando", + "halfopen", + "harmonic", + "haydnturn", + "henzelongfermata", + "henzeshortfermata", + "laissezVibrer", + "lheel", + "lineprall", + "longfermata", + "ltoe", + "marcato", + "mordent", + "noBeam", + "open", + "portato", + "prall", + "pralldown", + "prallmordent", + "prallprall", + "prallup", + "repeatTie", + "reverseturn", + "rheel", + "rtoe", + "segno", + "shortfermata", + "signumcongruentiae", + "slashturn", + "snappizzicato", + "sostenutoOff", + "sostenutoOn", + "staccatissimo", + "staccato", + "startGraceSlur", + "startGroup", + "startTextSpan", + "startTrillSpan", + "stopGraceSlur", + "stopGroup", + "stopTextSpan", + "stopTrillSpan", + "stopped", + "sustainOff", + "sustainOn", + "tenuto", + "thumb", + "treCorde", + "trill", + "turn", + "unaCorda", + "upbow", + "upmordent", + "upprall", + "varcoda", + "verylongfermata", + "veryshortfermata", + "vowelTransition", + "~", ] music_commands = [ - "[", - "]", - "aikenHeads", - "aikenHeadsMinor", - "aikenThinHeads", - "aikenThinHeadsMinor", - "allowBreak", - "arabicStringNumbers", - "arpeggioArrowDown", - "arpeggioArrowUp", - "arpeggioBracket", - "arpeggioNormal", - "arpeggioParenthesis", - "arpeggioParenthesisDashed", - "autoBeamOff", - "autoBeamOn", - "autoBreaksOff", - "autoBreaksOn", - "autoLineBreaksOff", - "autoLineBreaksOn", - "autoPageBreaksOff", - "autoPageBreaksOn", - "balloonLengthOff", - "balloonLengthOn", - "bassFigureExtendersOff", - "bassFigureExtendersOn", - "bassFigureStaffAlignmentDown", - "bassFigureStaffAlignmentNeutral", - "bassFigureStaffAlignmentUp", - "break", - "cadenzaOff", - "cadenzaOn", - "compressEmptyMeasures", - "crescHairpin", - "crescTextCresc", - "deadNotesOff", - "deadNotesOn", - "defaultNoteHeads", - "defaultTimeSignature", - "deprecatedcresc", - "deprecateddim", - "deprecatedendcresc", - "deprecatedenddim", - "dimHairpin", - "dimTextDecr", - "dimTextDecresc", - "dimTextDim", - "dotsDown", - "dotsNeutral", - "dotsUp", - "dynamicDown", - "dynamicNeutral", - "dynamicUp", - "easyHeadsOff", - "easyHeadsOn", - "endSkipNCs", - "expandEmptyMeasures", - "fine", - "frenchChords", - "funkHeads", - "funkHeadsMinor", - "germanChords", - "harmonicsOff", - "hideNotes", - "hideSplitTiedTabNotes", - "hideStaffSwitch", - "huge", - "ignatzekExceptionMusic", - "improvisationOff", - "improvisationOn", - "italianChords", - "kievanOff", - "kievanOn", - "large", - "markLengthOff", - "markLengthOn", - "medianChordGridStyle", - "melisma", - "melismaEnd", - "mergeDifferentlyDottedOff", - "mergeDifferentlyDottedOn", - "mergeDifferentlyHeadedOff", - "mergeDifferentlyHeadedOn", - "newSpacingSection", - "noBreak", - "normalsize", - "numericTimeSignature", - "oneVoice", - "palmMuteOff", - "partCombineApart", - "partCombineAutomatic", - "partCombineChords", - "partCombineSoloI", - "partCombineSoloII", - "partCombineUnisono", - "phrasingSlurDashed", - "phrasingSlurDotted", - "phrasingSlurDown", - "phrasingSlurHalfDashed", - "phrasingSlurHalfSolid", - "phrasingSlurNeutral", - "phrasingSlurSolid", - "phrasingSlurUp", - "predefinedFretboardsOff", - "predefinedFretboardsOn", - "romanStringNumbers", - "sacredHarpHeads", - "sacredHarpHeadsMinor", - "section", - "semiGermanChords", - "setDefaultDurationToQuarter", - "shiftOff", - "shiftOn", - "shiftOnn", - "shiftOnnn", - "showSplitTiedTabNotes", - "showStaffSwitch", - "skipNC", - "skipNCs", - "slurDashed", - "slurDotted", - "slurDown", - "slurHalfDashed", - "slurHalfSolid", - "slurNeutral", - "slurSolid", - "slurUp", - "small", - "southernHarmonyHeads", - "southernHarmonyHeadsMinor", - "startAcciaccaturaMusic", - "startAppoggiaturaMusic", - "startGraceMusic", - "startMeasureCount", - "startMeasureSpanner", - "startSlashedGraceMusic", - "startStaff", - "stemDown", - "stemNeutral", - "stemUp", - "stopAcciaccaturaMusic", - "stopAppoggiaturaMusic", - "stopGraceMusic", - "stopMeasureCount", - "stopMeasureSpanner", - "stopSlashedGraceMusic", - "stopStaff", - "stopStaffHighlight", - "tabFullNotation", - "teeny", - "textLengthOff", - "textLengthOn", - "textSpannerDown", - "textSpannerNeutral", - "textSpannerUp", - "tieDashed", - "tieDotted", - "tieDown", - "tieHalfDashed", - "tieHalfSolid", - "tieNeutral", - "tieSolid", - "tieUp", - "tiny", - "tupletDown", - "tupletNeutral", - "tupletUp", - "unHideNotes", - "voiceFour", - "voiceFourStyle", - "voiceNeutralStyle", - "voiceOne", - "voiceOneStyle", - "voiceThree", - "voiceThreeStyle", - "voiceTwo", - "voiceTwoStyle", - "walkerHeads", - "walkerHeadsMinor", - "xNotesOff", - "xNotesOn", - "|", - "~", + "[", + "]", + "aikenHeads", + "aikenHeadsMinor", + "aikenThinHeads", + "aikenThinHeadsMinor", + "allowBreak", + "arabicStringNumbers", + "arpeggioArrowDown", + "arpeggioArrowUp", + "arpeggioBracket", + "arpeggioNormal", + "arpeggioParenthesis", + "arpeggioParenthesisDashed", + "autoBeamOff", + "autoBeamOn", + "autoBreaksOff", + "autoBreaksOn", + "autoLineBreaksOff", + "autoLineBreaksOn", + "autoPageBreaksOff", + "autoPageBreaksOn", + "balloonLengthOff", + "balloonLengthOn", + "bassFigureExtendersOff", + "bassFigureExtendersOn", + "bassFigureStaffAlignmentDown", + "bassFigureStaffAlignmentNeutral", + "bassFigureStaffAlignmentUp", + "break", + "cadenzaOff", + "cadenzaOn", + "compressEmptyMeasures", + "crescHairpin", + "crescTextCresc", + "deadNotesOff", + "deadNotesOn", + "defaultNoteHeads", + "defaultTimeSignature", + "deprecatedcresc", + "deprecateddim", + "deprecatedendcresc", + "deprecatedenddim", + "dimHairpin", + "dimTextDecr", + "dimTextDecresc", + "dimTextDim", + "dotsDown", + "dotsNeutral", + "dotsUp", + "dynamicDown", + "dynamicNeutral", + "dynamicUp", + "easyHeadsOff", + "easyHeadsOn", + "endSkipNCs", + "expandEmptyMeasures", + "fine", + "frenchChords", + "funkHeads", + "funkHeadsMinor", + "germanChords", + "harmonicsOff", + "hideNotes", + "hideSplitTiedTabNotes", + "hideStaffSwitch", + "huge", + "ignatzekExceptionMusic", + "improvisationOff", + "improvisationOn", + "italianChords", + "kievanOff", + "kievanOn", + "large", + "markLengthOff", + "markLengthOn", + "medianChordGridStyle", + "melisma", + "melismaEnd", + "mergeDifferentlyDottedOff", + "mergeDifferentlyDottedOn", + "mergeDifferentlyHeadedOff", + "mergeDifferentlyHeadedOn", + "newSpacingSection", + "noBreak", + "normalsize", + "numericTimeSignature", + "oneVoice", + "palmMuteOff", + "partCombineApart", + "partCombineAutomatic", + "partCombineChords", + "partCombineSoloI", + "partCombineSoloII", + "partCombineUnisono", + "phrasingSlurDashed", + "phrasingSlurDotted", + "phrasingSlurDown", + "phrasingSlurHalfDashed", + "phrasingSlurHalfSolid", + "phrasingSlurNeutral", + "phrasingSlurSolid", + "phrasingSlurUp", + "predefinedFretboardsOff", + "predefinedFretboardsOn", + "romanStringNumbers", + "sacredHarpHeads", + "sacredHarpHeadsMinor", + "section", + "semiGermanChords", + "setDefaultDurationToQuarter", + "shiftOff", + "shiftOn", + "shiftOnn", + "shiftOnnn", + "showSplitTiedTabNotes", + "showStaffSwitch", + "skipNC", + "skipNCs", + "slurDashed", + "slurDotted", + "slurDown", + "slurHalfDashed", + "slurHalfSolid", + "slurNeutral", + "slurSolid", + "slurUp", + "small", + "southernHarmonyHeads", + "southernHarmonyHeadsMinor", + "startAcciaccaturaMusic", + "startAppoggiaturaMusic", + "startGraceMusic", + "startMeasureCount", + "startMeasureSpanner", + "startSlashedGraceMusic", + "startStaff", + "stemDown", + "stemNeutral", + "stemUp", + "stopAcciaccaturaMusic", + "stopAppoggiaturaMusic", + "stopGraceMusic", + "stopMeasureCount", + "stopMeasureSpanner", + "stopSlashedGraceMusic", + "stopStaff", + "stopStaffHighlight", + "tabFullNotation", + "teeny", + "textLengthOff", + "textLengthOn", + "textSpannerDown", + "textSpannerNeutral", + "textSpannerUp", + "tieDashed", + "tieDotted", + "tieDown", + "tieHalfDashed", + "tieHalfSolid", + "tieNeutral", + "tieSolid", + "tieUp", + "tiny", + "tupletDown", + "tupletNeutral", + "tupletUp", + "unHideNotes", + "voiceFour", + "voiceFourStyle", + "voiceNeutralStyle", + "voiceOne", + "voiceOneStyle", + "voiceThree", + "voiceThreeStyle", + "voiceTwo", + "voiceTwoStyle", + "walkerHeads", + "walkerHeadsMinor", + "xNotesOff", + "xNotesOn", + "|", + "~", ] markup_commands = [ - "abs-fontsize", - "accidental", - "align-on-other", - "arrow-head", - "auto-footnote", - "backslashed-digit", - "beam", - "bold", - "box", - "bracket", - "caps", - "center-align", - "center-column", - "char", - "circle", - "coda", - "column", - "column-lines", - "combine", - "compound-meter", - "concat", - "conditional-trill-markup", - "customTabClef", - "dir-column", - "discant", - "doubleflat", - "doublesharp", - "draw-circle", - "draw-dashed-line", - "draw-dotted-line", - "draw-hline", - "draw-line", - "draw-squiggle-line", - "dynamic", - "ellipse", - "epsfile", - "eyeglasses", - "fermata", - "figured-bass", - "fill-line", - "fill-with-pattern", - "filled-box", - "finger", - "first-visible", - "flat", - "fontCaps", - "fontsize", - "footnote", - "fraction", - "freeBass", - "fret-diagram", - "fret-diagram-terse", - "fret-diagram-verbose", - "fromproperty", - "general-align", - "halign", - "harp-pedal", - "hbracket", - "hcenter-in", - "hspace", - "huge", - "if", - "italic", - "justified-lines", - "justify", - "justify-field", - "justify-line", - "justify-string", - "large", - "larger", - "left-align", - "left-brace", - "left-column", - "line", - "lookup", - "lower", - "magnify", - "map-markup-commands", - "markalphabet", - "markletter", - "markup", - "markuplist", - "medium", - "multi-measure-rest-by-number", - "musicglyph", - "natural", - "normal-size-sub", - "normal-size-super", - "normal-text", - "normalsize", - "note", - "note-by-number", - "null", - "number", - "on-the-fly", - "oval", - "overlay", - "override", - "override-lines", - "overtie", - "pad-around", - "pad-markup", - "pad-to-box", - "pad-x", - "page-link", - "page-ref", - "parenthesize", - "path", - "pattern", - "polygon", - "postscript", - "property-recursive", - "put-adjacent", - "raise", - "replace", - "rest", - "rest-by-number", - "rhythm", - "right-align", - "right-brace", - "right-column", - "roman", - "rotate", - "rounded-box", - "sans", - "scale", - "score", - "score-lines", - "segno", - "semiflat", - "semisharp", - "sesquiflat", - "sesquisharp", - "sharp", - "simple", - "slashed-digit", - "small", - "smallCaps", - "smaller", - "stdBass", - "stdBassIV", - "stdBassV", - "stdBassVI", - "stencil", - "string-lines", - "strut", - "sub", - "super", - "table", - "table-of-contents", - "teeny", - "text", - "tie", - "tied-lyric", - "tiny", - "translate", - "translate-scaled", - "transparent", - "triangle", - "typewriter", - "underline", - "undertie", - "unless", - "upright", - "varcoda", - "vcenter", - "verbatim-file", - "vspace", - "whiteout", - "with-color", - "with-dimension", - "with-dimension-from", - "with-dimensions", - "with-dimensions-from", - "with-link", - "with-outline", - "with-string-transformer", - "with-true-dimension", - "with-true-dimensions", - "with-url", - "woodwind-diagram", - "wordwrap", - "wordwrap-field", - "wordwrap-internal", - "wordwrap-lines", - "wordwrap-string", - "wordwrap-string-internal", + "abs-fontsize", + "accidental", + "align-on-other", + "arrow-head", + "auto-footnote", + "backslashed-digit", + "beam", + "bold", + "box", + "bracket", + "caps", + "center-align", + "center-column", + "char", + "circle", + "coda", + "column", + "column-lines", + "combine", + "compound-meter", + "concat", + "conditional-trill-markup", + "customTabClef", + "dir-column", + "discant", + "doubleflat", + "doublesharp", + "draw-circle", + "draw-dashed-line", + "draw-dotted-line", + "draw-hline", + "draw-line", + "draw-squiggle-line", + "dynamic", + "ellipse", + "epsfile", + "eyeglasses", + "fermata", + "figured-bass", + "fill-line", + "fill-with-pattern", + "filled-box", + "finger", + "first-visible", + "flat", + "fontCaps", + "fontsize", + "footnote", + "fraction", + "freeBass", + "fret-diagram", + "fret-diagram-terse", + "fret-diagram-verbose", + "fromproperty", + "general-align", + "halign", + "harp-pedal", + "hbracket", + "hcenter-in", + "hspace", + "huge", + "if", + "italic", + "justified-lines", + "justify", + "justify-field", + "justify-line", + "justify-string", + "large", + "larger", + "left-align", + "left-brace", + "left-column", + "line", + "lookup", + "lower", + "magnify", + "map-markup-commands", + "markalphabet", + "markletter", + "markup", + "markuplist", + "medium", + "multi-measure-rest-by-number", + "musicglyph", + "natural", + "normal-size-sub", + "normal-size-super", + "normal-text", + "normalsize", + "note", + "note-by-number", + "null", + "number", + "on-the-fly", + "oval", + "overlay", + "override", + "override-lines", + "overtie", + "pad-around", + "pad-markup", + "pad-to-box", + "pad-x", + "page-link", + "page-ref", + "parenthesize", + "path", + "pattern", + "polygon", + "postscript", + "property-recursive", + "put-adjacent", + "raise", + "replace", + "rest", + "rest-by-number", + "rhythm", + "right-align", + "right-brace", + "right-column", + "roman", + "rotate", + "rounded-box", + "sans", + "scale", + "score", + "score-lines", + "segno", + "semiflat", + "semisharp", + "sesquiflat", + "sesquisharp", + "sharp", + "simple", + "slashed-digit", + "small", + "smallCaps", + "smaller", + "stdBass", + "stdBassIV", + "stdBassV", + "stdBassVI", + "stencil", + "string-lines", + "strut", + "sub", + "super", + "table", + "table-of-contents", + "teeny", + "text", + "tie", + "tied-lyric", + "tiny", + "translate", + "translate-scaled", + "transparent", + "triangle", + "typewriter", + "underline", + "undertie", + "unless", + "upright", + "varcoda", + "vcenter", + "verbatim-file", + "vspace", + "whiteout", + "with-color", + "with-dimension", + "with-dimension-from", + "with-dimensions", + "with-dimensions-from", + "with-link", + "with-outline", + "with-string-transformer", + "with-true-dimension", + "with-true-dimensions", + "with-url", + "woodwind-diagram", + "wordwrap", + "wordwrap-field", + "wordwrap-internal", + "wordwrap-lines", + "wordwrap-string", + "wordwrap-string-internal", ] grobs = [ - "Accidental", - "AccidentalCautionary", - "AccidentalPlacement", - "AccidentalSuggestion", - "Ambitus", - "AmbitusAccidental", - "AmbitusLine", - "AmbitusNoteHead", - "Arpeggio", - "BalloonText", - "BarLine", - "BarNumber", - "BassFigure", - "BassFigureAlignment", - "BassFigureAlignmentPositioning", - "BassFigureBracket", - "BassFigureContinuation", - "BassFigureLine", - "Beam", - "BendAfter", - "BendSpanner", - "BreakAlignGroup", - "BreakAlignment", - "BreathingSign", - "CaesuraScript", - "CenteredBarNumber", - "CenteredBarNumberLineSpanner", - "ChordName", - "ChordSquare", - "Clef", - "ClefModifier", - "ClusterSpanner", - "ClusterSpannerBeacon", - "CodaMark", - "CombineTextScript", - "ControlPoint", - "ControlPolygon", - "CueClef", - "CueEndClef", - "Custos", - "Divisio", - "DotColumn", - "Dots", - "DoublePercentRepeat", - "DoublePercentRepeatCounter", - "DoubleRepeatSlash", - "DurationLine", - "DynamicLineSpanner", - "DynamicText", - "DynamicTextSpanner", - "Episema", - "FingerGlideSpanner", - "Fingering", - "FingeringColumn", - "Flag", - "Footnote", - "FretBoard", - "Glissando", - "GraceSpacing", - "GridChordName", - "GridLine", - "GridPoint", - "Hairpin", - "HorizontalBracket", - "HorizontalBracketText", - "InstrumentName", - "InstrumentSwitch", - "JumpScript", - "KeyCancellation", - "KeySignature", - "KievanLigature", - "LaissezVibrerTie", - "LaissezVibrerTieColumn", - "LedgerLineSpanner", - "LeftEdge", - "LigatureBracket", - "LyricExtender", - "LyricHyphen", - "LyricRepeatCount", - "LyricSpace", - "LyricText", - "MeasureCounter", - "MeasureGrouping", - "MeasureSpanner", - "MelodyItem", - "MensuralLigature", - "MetronomeMark", - "MultiMeasureRest", - "MultiMeasureRestNumber", - "MultiMeasureRestScript", - "MultiMeasureRestText", - "NonMusicalPaperColumn", - "NoteCollision", - "NoteColumn", - "NoteHead", - "NoteName", - "NoteSpacing", - "OttavaBracket", - "PaperColumn", - "Parentheses", - "PercentRepeat", - "PercentRepeatCounter", - "PhrasingSlur", - "PianoPedalBracket", - "RehearsalMark", - "RepeatSlash", - "RepeatTie", - "RepeatTieColumn", - "Rest", - "RestCollision", - "Script", - "ScriptColumn", - "ScriptRow", - "SectionLabel", - "SegnoMark", - "SignumRepetitionis", - "Slur", - "SostenutoPedal", - "SostenutoPedalLineSpanner", - "SpacingSpanner", - "SpanBar", - "SpanBarStub", - "StaffEllipsis", - "StaffGrouper", - "StaffHighlight", - "StaffSpacing", - "StaffSymbol", - "StanzaNumber", - "Stem", - "StemStub", - "StemTremolo", - "StringNumber", - "StrokeFinger", - "SustainPedal", - "SustainPedalLineSpanner", - "System", - "SystemStartBar", - "SystemStartBrace", - "SystemStartBracket", - "SystemStartSquare", - "TabNoteHead", - "TextMark", - "TextScript", - "TextSpanner", - "Tie", - "TieColumn", - "TimeSignature", - "TrillPitchAccidental", - "TrillPitchGroup", - "TrillPitchHead", - "TrillPitchParentheses", - "TrillSpanner", - "TupletBracket", - "TupletNumber", - "UnaCordaPedal", - "UnaCordaPedalLineSpanner", - "VaticanaLigature", - "VerticalAlignment", - "VerticalAxisGroup", - "VoiceFollower", - "VoltaBracket", - "VoltaBracketSpanner", - "VowelTransition", + "Accidental", + "AccidentalCautionary", + "AccidentalPlacement", + "AccidentalSuggestion", + "Ambitus", + "AmbitusAccidental", + "AmbitusLine", + "AmbitusNoteHead", + "Arpeggio", + "BalloonText", + "BarLine", + "BarNumber", + "BassFigure", + "BassFigureAlignment", + "BassFigureAlignmentPositioning", + "BassFigureBracket", + "BassFigureContinuation", + "BassFigureLine", + "Beam", + "BendAfter", + "BendSpanner", + "BreakAlignGroup", + "BreakAlignment", + "BreathingSign", + "CaesuraScript", + "CenteredBarNumber", + "CenteredBarNumberLineSpanner", + "ChordName", + "ChordSquare", + "Clef", + "ClefModifier", + "ClusterSpanner", + "ClusterSpannerBeacon", + "CodaMark", + "CombineTextScript", + "ControlPoint", + "ControlPolygon", + "CueClef", + "CueEndClef", + "Custos", + "Divisio", + "DotColumn", + "Dots", + "DoublePercentRepeat", + "DoublePercentRepeatCounter", + "DoubleRepeatSlash", + "DurationLine", + "DynamicLineSpanner", + "DynamicText", + "DynamicTextSpanner", + "Episema", + "FingerGlideSpanner", + "Fingering", + "FingeringColumn", + "Flag", + "Footnote", + "FretBoard", + "Glissando", + "GraceSpacing", + "GridChordName", + "GridLine", + "GridPoint", + "Hairpin", + "HorizontalBracket", + "HorizontalBracketText", + "InstrumentName", + "InstrumentSwitch", + "JumpScript", + "KeyCancellation", + "KeySignature", + "KievanLigature", + "LaissezVibrerTie", + "LaissezVibrerTieColumn", + "LedgerLineSpanner", + "LeftEdge", + "LigatureBracket", + "LyricExtender", + "LyricHyphen", + "LyricRepeatCount", + "LyricSpace", + "LyricText", + "MeasureCounter", + "MeasureGrouping", + "MeasureSpanner", + "MelodyItem", + "MensuralLigature", + "MetronomeMark", + "MultiMeasureRest", + "MultiMeasureRestNumber", + "MultiMeasureRestScript", + "MultiMeasureRestText", + "NonMusicalPaperColumn", + "NoteCollision", + "NoteColumn", + "NoteHead", + "NoteName", + "NoteSpacing", + "OttavaBracket", + "PaperColumn", + "Parentheses", + "PercentRepeat", + "PercentRepeatCounter", + "PhrasingSlur", + "PianoPedalBracket", + "RehearsalMark", + "RepeatSlash", + "RepeatTie", + "RepeatTieColumn", + "Rest", + "RestCollision", + "Script", + "ScriptColumn", + "ScriptRow", + "SectionLabel", + "SegnoMark", + "SignumRepetitionis", + "Slur", + "SostenutoPedal", + "SostenutoPedalLineSpanner", + "SpacingSpanner", + "SpanBar", + "SpanBarStub", + "StaffEllipsis", + "StaffGrouper", + "StaffHighlight", + "StaffSpacing", + "StaffSymbol", + "StanzaNumber", + "Stem", + "StemStub", + "StemTremolo", + "StringNumber", + "StrokeFinger", + "SustainPedal", + "SustainPedalLineSpanner", + "System", + "SystemStartBar", + "SystemStartBrace", + "SystemStartBracket", + "SystemStartSquare", + "TabNoteHead", + "TextMark", + "TextScript", + "TextSpanner", + "Tie", + "TieColumn", + "TimeSignature", + "TrillPitchAccidental", + "TrillPitchGroup", + "TrillPitchHead", + "TrillPitchParentheses", + "TrillSpanner", + "TupletBracket", + "TupletNumber", + "UnaCordaPedal", + "UnaCordaPedalLineSpanner", + "VaticanaLigature", + "VerticalAlignment", + "VerticalAxisGroup", + "VoiceFollower", + "VoltaBracket", + "VoltaBracketSpanner", + "VowelTransition", ] contexts = [ - "ChoirStaff", - "ChordGrid", - "ChordGridScore", - "ChordNames", - "CueVoice", - "Devnull", - "DrumStaff", - "DrumVoice", - "Dynamics", - "FiguredBass", - "FretBoards", - "Global", - "GrandStaff", - "GregorianTranscriptionLyrics", - "GregorianTranscriptionStaff", - "GregorianTranscriptionVoice", - "InternalGregorianStaff", - "KievanStaff", - "KievanVoice", - "Lyrics", - "MensuralStaff", - "MensuralVoice", - "NoteNames", - "NullVoice", - "OneStaff", - "PetrucciStaff", - "PetrucciVoice", - "PianoStaff", - "RhythmicStaff", - "Score", - "Staff", - "StaffGroup", - "StandaloneRhythmScore", - "StandaloneRhythmStaff", - "StandaloneRhythmVoice", - "TabStaff", - "TabVoice", - "Timing", - "VaticanaLyrics", - "VaticanaStaff", - "VaticanaVoice", - "Voice", + "ChoirStaff", + "ChordGrid", + "ChordGridScore", + "ChordNames", + "CueVoice", + "Devnull", + "DrumStaff", + "DrumVoice", + "Dynamics", + "FiguredBass", + "FretBoards", + "Global", + "GrandStaff", + "GregorianTranscriptionLyrics", + "GregorianTranscriptionStaff", + "GregorianTranscriptionVoice", + "InternalGregorianStaff", + "KievanStaff", + "KievanVoice", + "Lyrics", + "MensuralStaff", + "MensuralVoice", + "NoteNames", + "NullVoice", + "OneStaff", + "PetrucciStaff", + "PetrucciVoice", + "PianoStaff", + "RhythmicStaff", + "Score", + "Staff", + "StaffGroup", + "StandaloneRhythmScore", + "StandaloneRhythmStaff", + "StandaloneRhythmVoice", + "TabStaff", + "TabVoice", + "Timing", + "VaticanaLyrics", + "VaticanaStaff", + "VaticanaVoice", + "Voice", ] translators = [ - "Accidental_engraver", - "Alteration_glyph_engraver", - "Ambitus_engraver", - "Arpeggio_engraver", - "Auto_beam_engraver", - "Axis_group_engraver", - "Balloon_engraver", - "Bar_engraver", - "Bar_number_engraver", - "Beam_collision_engraver", - "Beam_engraver", - "Beam_performer", - "Beat_engraver", - "Beat_performer", - "Bend_engraver", - "Bend_spanner_engraver", - "Break_align_engraver", - "Breathing_sign_engraver", - "Caesura_engraver", - "Centered_bar_number_align_engraver", - "Chord_name_engraver", - "Chord_square_engraver", - "Chord_tremolo_engraver", - "Clef_engraver", - "Cluster_spanner_engraver", - "Collision_engraver", - "Completion_heads_engraver", - "Completion_rest_engraver", - "Concurrent_hairpin_engraver", - "Control_track_performer", - "Cue_clef_engraver", - "Current_chord_text_engraver", - "Custos_engraver", - "Divisio_engraver", - "Dot_column_engraver", - "Dots_engraver", - "Double_percent_repeat_engraver", - "Drum_note_performer", - "Drum_notes_engraver", - "Duration_line_engraver", - "Dynamic_align_engraver", - "Dynamic_engraver", - "Dynamic_performer", - "Episema_engraver", - "Extender_engraver", - "Figured_bass_engraver", - "Figured_bass_position_engraver", - "Finger_glide_engraver", - "Fingering_column_engraver", - "Fingering_engraver", - "Font_size_engraver", - "Footnote_engraver", - "Forbid_line_break_engraver", - "Fretboard_engraver", - "Glissando_engraver", - "Grace_auto_beam_engraver", - "Grace_beam_engraver", - "Grace_engraver", - "Grace_spacing_engraver", - "Grid_chord_name_engraver", - "Grid_line_span_engraver", - "Grid_point_engraver", - "Grob_pq_engraver", - "Horizontal_bracket_engraver", - "Hyphen_engraver", - "Instrument_name_engraver", - "Instrument_switch_engraver", - "Jump_engraver", - "Keep_alive_together_engraver", - "Key_engraver", - "Key_performer", - "Kievan_ligature_engraver", - "Laissez_vibrer_engraver", - "Ledger_line_engraver", - "Ligature_bracket_engraver", - "Lyric_engraver", - "Lyric_performer", - "Lyric_repeat_count_engraver", - "Mark_engraver", - "Mark_performer", - "Mark_tracking_translator", - "Measure_counter_engraver", - "Measure_grouping_engraver", - "Measure_spanner_engraver", - "Melody_engraver", - "Mensural_ligature_engraver", - "Merge_mmrest_numbers_engraver", - "Merge_rests_engraver", - "Metronome_mark_engraver", - "Midi_control_change_performer", - "Multi_measure_rest_engraver", - "New_fingering_engraver", - "Non_musical_script_column_engraver", - "Note_head_line_engraver", - "Note_heads_engraver", - "Note_name_engraver", - "Note_performer", - "Note_spacing_engraver", - "Ottava_spanner_engraver", - "Output_property_engraver", - "Page_turn_engraver", - "Paper_column_engraver", - "Parenthesis_engraver", - "Part_combine_engraver", - "Percent_repeat_engraver", - "Phrasing_slur_engraver", - "Piano_pedal_align_engraver", - "Piano_pedal_engraver", - "Piano_pedal_performer", - "Pitch_squash_engraver", - "Pitched_trill_engraver", - "Pure_from_neighbor_engraver", - "Repeat_acknowledge_engraver", - "Repeat_tie_engraver", - "Rest_collision_engraver", - "Rest_engraver", - "Rhythmic_column_engraver", - "Script_column_engraver", - "Script_engraver", - "Script_row_engraver", - "Separating_line_group_engraver", - "Show_control_points_engraver", - "Signum_repetitionis_engraver", - "Skip_typesetting_engraver", - "Slash_repeat_engraver", - "Slur_engraver", - "Slur_performer", - "Spacing_engraver", - "Span_arpeggio_engraver", - "Span_bar_engraver", - "Span_bar_stub_engraver", - "Span_stem_engraver", - "Spanner_break_forbid_engraver", - "Spanner_tracking_engraver", - "Staff_collecting_engraver", - "Staff_highlight_engraver", - "Staff_performer", - "Staff_symbol_engraver", - "Stanza_number_align_engraver", - "Stanza_number_engraver", - "Stem_engraver", - "System_start_delimiter_engraver", - "Tab_note_heads_engraver", - "Tab_staff_symbol_engraver", - "Tab_tie_follow_engraver", - "Tempo_performer", - "Text_engraver", - "Text_mark_engraver", - "Text_spanner_engraver", - "Tie_engraver", - "Tie_performer", - "Time_signature_engraver", - "Time_signature_performer", - "Timing_translator", - "Trill_spanner_engraver", - "Tuplet_engraver", - "Tweak_engraver", - "Vaticana_ligature_engraver", - "Vertical_align_engraver", - "Volta_engraver", + "Accidental_engraver", + "Alteration_glyph_engraver", + "Ambitus_engraver", + "Arpeggio_engraver", + "Auto_beam_engraver", + "Axis_group_engraver", + "Balloon_engraver", + "Bar_engraver", + "Bar_number_engraver", + "Beam_collision_engraver", + "Beam_engraver", + "Beam_performer", + "Beat_engraver", + "Beat_performer", + "Bend_engraver", + "Bend_spanner_engraver", + "Break_align_engraver", + "Breathing_sign_engraver", + "Caesura_engraver", + "Centered_bar_number_align_engraver", + "Chord_name_engraver", + "Chord_square_engraver", + "Chord_tremolo_engraver", + "Clef_engraver", + "Cluster_spanner_engraver", + "Collision_engraver", + "Completion_heads_engraver", + "Completion_rest_engraver", + "Concurrent_hairpin_engraver", + "Control_track_performer", + "Cue_clef_engraver", + "Current_chord_text_engraver", + "Custos_engraver", + "Divisio_engraver", + "Dot_column_engraver", + "Dots_engraver", + "Double_percent_repeat_engraver", + "Drum_note_performer", + "Drum_notes_engraver", + "Duration_line_engraver", + "Dynamic_align_engraver", + "Dynamic_engraver", + "Dynamic_performer", + "Episema_engraver", + "Extender_engraver", + "Figured_bass_engraver", + "Figured_bass_position_engraver", + "Finger_glide_engraver", + "Fingering_column_engraver", + "Fingering_engraver", + "Font_size_engraver", + "Footnote_engraver", + "Forbid_line_break_engraver", + "Fretboard_engraver", + "Glissando_engraver", + "Grace_auto_beam_engraver", + "Grace_beam_engraver", + "Grace_engraver", + "Grace_spacing_engraver", + "Grid_chord_name_engraver", + "Grid_line_span_engraver", + "Grid_point_engraver", + "Grob_pq_engraver", + "Horizontal_bracket_engraver", + "Hyphen_engraver", + "Instrument_name_engraver", + "Instrument_switch_engraver", + "Jump_engraver", + "Keep_alive_together_engraver", + "Key_engraver", + "Key_performer", + "Kievan_ligature_engraver", + "Laissez_vibrer_engraver", + "Ledger_line_engraver", + "Ligature_bracket_engraver", + "Lyric_engraver", + "Lyric_performer", + "Lyric_repeat_count_engraver", + "Mark_engraver", + "Mark_performer", + "Mark_tracking_translator", + "Measure_counter_engraver", + "Measure_grouping_engraver", + "Measure_spanner_engraver", + "Melody_engraver", + "Mensural_ligature_engraver", + "Merge_mmrest_numbers_engraver", + "Merge_rests_engraver", + "Metronome_mark_engraver", + "Midi_control_change_performer", + "Multi_measure_rest_engraver", + "New_fingering_engraver", + "Non_musical_script_column_engraver", + "Note_head_line_engraver", + "Note_heads_engraver", + "Note_name_engraver", + "Note_performer", + "Note_spacing_engraver", + "Ottava_spanner_engraver", + "Output_property_engraver", + "Page_turn_engraver", + "Paper_column_engraver", + "Parenthesis_engraver", + "Part_combine_engraver", + "Percent_repeat_engraver", + "Phrasing_slur_engraver", + "Piano_pedal_align_engraver", + "Piano_pedal_engraver", + "Piano_pedal_performer", + "Pitch_squash_engraver", + "Pitched_trill_engraver", + "Pure_from_neighbor_engraver", + "Repeat_acknowledge_engraver", + "Repeat_tie_engraver", + "Rest_collision_engraver", + "Rest_engraver", + "Rhythmic_column_engraver", + "Script_column_engraver", + "Script_engraver", + "Script_row_engraver", + "Separating_line_group_engraver", + "Show_control_points_engraver", + "Signum_repetitionis_engraver", + "Skip_typesetting_engraver", + "Slash_repeat_engraver", + "Slur_engraver", + "Slur_performer", + "Spacing_engraver", + "Span_arpeggio_engraver", + "Span_bar_engraver", + "Span_bar_stub_engraver", + "Span_stem_engraver", + "Spanner_break_forbid_engraver", + "Spanner_tracking_engraver", + "Staff_collecting_engraver", + "Staff_highlight_engraver", + "Staff_performer", + "Staff_symbol_engraver", + "Stanza_number_align_engraver", + "Stanza_number_engraver", + "Stem_engraver", + "System_start_delimiter_engraver", + "Tab_note_heads_engraver", + "Tab_staff_symbol_engraver", + "Tab_tie_follow_engraver", + "Tempo_performer", + "Text_engraver", + "Text_mark_engraver", + "Text_spanner_engraver", + "Tie_engraver", + "Tie_performer", + "Time_signature_engraver", + "Time_signature_performer", + "Timing_translator", + "Trill_spanner_engraver", + "Tuplet_engraver", + "Tweak_engraver", + "Vaticana_ligature_engraver", + "Vertical_align_engraver", + "Volta_engraver", ] scheme_functions = [ - "!=", - "*location*", - "*parser*", - "Alteration_glyph_engraver", - "Beat_performer", - "Bend_spanner_engraver", - "Breathing_sign_engraver", - "Centered_bar_number_align_engraver", - "Chord_name_engraver", - "Chord_square_engraver", - "Current_chord_text_engraver", - "Divisio_engraver", - "Duration_line_engraver", - "Finger_glide_engraver", - "G_", - "Grid_chord_name_engraver", - "Lyric_repeat_count_engraver", - "Measure_counter_engraver", - "Measure_spanner_engraver", - "Merge_mmrest_numbers_engraver", - "Merge_rests_engraver", - "Show_control_points_engraver", - "Signum_repetitionis_engraver", - "Skip_typesetting_engraver", - "Span_stem_engraver", - "Spanner_tracking_engraver", - "Staff_highlight_engraver", - "Text_mark_engraver", - "Trill_spanner_engraver", - "_i", - "abs-fontsize-markup", - "accidental->markup", - "accidental->markup-italian", - "accidental-interface::calc-alteration", - "accidental-interface::calc-glyph-name", - "accidental-invalid?", - "accidental-markup", - "add-bar-glyph-print-procedure", - "add-font", - "add-grace-property", - "add-music", - "add-music-fonts", - "add-new-clef", - "add-pango-fonts", - "add-point", - "add-quotable", - "add-score", - "add-simple-time-signature-style", - "add-stroke-glyph", - "add-stroke-straight", - "add-text", - "adjust-slash-stencil", - "align-on-other-markup", - "aligned-text-stencil-function", - "alist->hash-table", - "alisttext-accidental-markup", - "alterations-in-key", - "ambitus-line::calc-gap", - "ambitus::print", - "analyse-spanner-states", - "ancestor-lookup-initialize", - "angle-0-2pi", - "angle-0-360", - "annotate-spacing-spec", - "annotate-y-interval", - "any-mmrest-events", - "apply-durations", - "apply-group-draw-rule-series", - "arrow-head-markup", - "arrow-stencil", - "arrow-stencil-maker", - "assemble-stencils", - "assoc-get", - "assoc-keys", - "assoc-values", - "at-bar-line-substitute-caesura-type", - "aug-modifier", - "auto-footnote-markup", - "average", - "b", - "backslashed-digit-markup", - "bar-line::bar-y-extent", - "bar-line::calc-blot", - "bar-line::calc-break-visibility", - "bar-line::calc-glyph-name", - "bar-line::calc-glyph-name-for-direction", - "bar-line::compound-bar-line", - "bar-line::draw-filled-box", - "bar-line::widen-bar-extent-on-span", - "base-length", - "bass-clarinet-rh-ees-key-stencil", - "bassoon-bend-info-maker", - "bassoon-cc-six-key-stencil", - "bassoon-lh-a-flick-key-stencil", - "bassoon-lh-c-flick-key-stencil", - "bassoon-lh-cis-key-stencil", - "bassoon-lh-d-flick-key-stencil", - "bassoon-lh-ees-key-stencil", - "bassoon-lh-he-key-stencil", - "bassoon-lh-hees-key-stencil", - "bassoon-lh-lb-key-stencil", - "bassoon-lh-lbes-key-stencil", - "bassoon-lh-lc-key-stencil", - "bassoon-lh-ld-key-stencil", - "bassoon-lh-lhees-key-stencil", - "bassoon-lh-thumb-cis-key-stencil", - "bassoon-lh-whisper-key-stencil", - "bassoon-midline-rule", - "bassoon-rh-bes-key-stencil", - "bassoon-rh-cis-key-stencil", - "bassoon-rh-f-key-stencil", - "bassoon-rh-fis-key-stencil", - "bassoon-rh-gis-key-stencil", - "bassoon-rh-thumb-bes-key-stencil", - "bassoon-rh-thumb-e-key-stencil", - "bassoon-rh-thumb-fis-key-stencil", - "bassoon-rh-thumb-gis-key-stencil", - "bassoon-uber-key-stencil", - "beam-exceptions", - "beam-markup", - "beam::align-with-broken-parts", - "beam::get-kievan-positions", - "beam::get-kievan-quantized-positions", - "beam::place-broken-parts-individually", - "beam::slope-like-broken-parts", - "beat-grouping-internal", - "beat-structure", - "bend-spanner::print", - "bend::arrow-head-stencil", - "bend::calc-bend-x-begin", - "bend::calc-bend-x-end", - "bend::calc-y-coordinates", - "bend::draw-curves", - "bend::make-line-curve-stencil", - "bend::print", - "bend::remove-certain-tab-note-heads", - "bend::target-cautionary", - "bend::text-stencil", - "bend::text-string", - "bezier-head-for-stencil", - "binary-search", - "bold-markup", - "book-first-page", - "boolean-or-number?", - "boolean-or-symbol?", - "bounding-note-heads-pitches", - "box-grob-stencil", - "box-markup", - "box-stencil", - "bracket-markup", - "bracketify-stencil", - "break-alignable-interface::self-alignment-of-anchor", - "break-alignable-interface::self-alignment-opposite-of-anchor", - "break-alignment-list", - "breathe::midi-length", - "buildflag", - "cached-file-contents", - "caesura-script-interface::before-line-breaking", - "caesura-to-bar-line-or-divisio", - "caesura-to-divisio", - "calc-harmonic-pitch", - "calc-line-thickness", - "calc-repeat-slash-count", - "calculate-complex-compound-time", - "calculate-compound-base-beat", - "calculate-compound-base-beat-full", - "calculate-compound-beat-grouping", - "calculate-compound-measure-length", - "calculate-time-fraction", - "call-after-session", - "caps-markup", - "car-or-identity", - "car<", - "car<=", - "cdr-or-identity", - "center-align-markup", - "center-column-markup", - "centered-spanner-interface::calc-x-offset", - "centered-stencil", - "chain-assoc-get", - "change-pitches", - "char-markup", - "cheap-list?", - "cheap-markup?", - "check-beam-quant", - "check-beam-slope-sign", - "check-broken-spanner", - "check-context-path", - "check-division-alist", - "check-for-annotation", - "check-for-replacement", - "check-grob-path", - "check-music-path", - "check-pitch-against-signature", - "check-quant-callbacks", - "check-slope-callbacks", - "chord-name->german-markup", - "chord-name->italian-markup", - "chord-square::height", - "chord-square::print", - "chord-square::width", - "circle-markup", - "circle-stencil", - "clarinet-lh-R-key-stencil", - "clarinet-lh-a-key-stencil", - "clarinet-lh-cis-key-stencil", - "clarinet-lh-d-key-stencil", - "clarinet-lh-e-key-stencil", - "clarinet-lh-ees-key-stencil", - "clarinet-lh-f-key-stencil", - "clarinet-lh-fis-key-stencil", - "clarinet-lh-gis-key-stencil", - "clarinet-lh-thumb-key-stencil", - "clarinet-rh-b-key-stencil", - "clarinet-rh-d-key-stencil", - "clarinet-rh-e-key-stencil", - "clarinet-rh-f-key-stencil", - "clarinet-rh-fis-key-stencil", - "clarinet-rh-four-key-stencil", - "clarinet-rh-gis-key-stencil", - "clarinet-rh-low-c-key-stencil", - "clarinet-rh-low-cis-key-stencil", - "clarinet-rh-low-d-key-stencil", - "clarinet-rh-one-key-stencil", - "clarinet-rh-three-key-stencil", - "clarinet-rh-two-key-stencil", - "clef-transposition-markup", - "clef::print-modern-tab-if-set", - "clip-systems-to-region-stencils", - "clipped-systems-stencils", - "close-enough?", - "close-port-rename", - "coda-markup", - "collect-book-music-for-book", - "collect-bookpart-for-book", - "collect-music-aux", - "collect-music-for-book", - "collect-scores-for-book", - "color?", - "column-circle-stencil", - "column-lines-markup-list", - "column-markup", - "combine-markup", - "comparable-note-events", - "comparator-from-key", - "compile-all-markup-args", - "compile-all-markup-expressions", - "compile-markup-arg", - "compile-markup-expression", - "completize-formats", - "completize-grob-entry", - "compound-meter-markup", - "concat-markup", - "conditional-kern-before", - "conditional-string-capitalize", - "conditional-trill-markup-markup", - "configuration", - "cons-fret", - "constante-hairpin", - "construct-chord-elements", - "context-defs-from-music", - "context-mod-from-music", - "context-spec-music", - "control-point::calc-offset", - "control-polygon::calc-text", - "coord-axis", - "coord-rotate", - "coord-rotated", - "coord-scale", - "coord-translate", - "coord-x", - "coord-y", - "copy-binary-file", - "copy-repeat-chord", - "count-list", - "create-file-exclusive", - "create-fretboard", - "create-glyph-flag", - "cross-staff-connect", - "css-color", - "cue-substitute", - "current-or-previous-voice-states", - "customTabClef-markup", - "cyclic-base-value", - "debugf", - "def-grace-function", - "default-auto-beam-check", - "default-flag", - "default-paren-color", - "define-bar-line", - "define-event-class", - "define-event-function", - "define-fonts", - "define-grob-property", - "define-internal-grob-property", - "define-markup-command", - "define-markup-command-internal", - "define-markup-list-command", - "define-music-function", - "define-scheme-function", - "define-session", - "define-session-public", - "define-syntax-function", - "define-syntax-public", - "define-syntax-rule-public", - "define-tag-group", - "define-void-function", - "degree-first-true", - "degrees->radians", - "descend-to-context", - "determine-frets", - "determine-split-list", - "determine-string-fret-finger", - "dim-modifier", - "dimension-arrows", - "dir-basename", - "dir-column-markup", - "display-lily-music", - "display-music", - "display-scheme-music", - "dodecaphonic-no-repeat-rule", - "done?", - "dot-column-interface::pad-by-one-dot-width", - "dot-has-color", - "dot-is-inverted", - "dot-is-parenthesized", - "dots::calc-dot-count", - "dots::calc-dot-stencil", - "dots::calc-glyph-name", - "dots::calc-staff-position", - "doubleflat-markup", - "doublesharp-markup", - "draw-circle-markup", - "draw-dashed-line-markup", - "draw-dotted-line-markup", - "draw-hline-markup", - "draw-line-markup", - "draw-squiggle-line-markup", - "dump-zombies", - "duration", - "duration-dot-factor", - "duration-length", - "duration-line::calc", - "duration-line::calc-thickness", - "duration-line::print", - "duration-log-factor", - "duration-of-note", - "duration-or-music?", - "duration-visual", - "duration-visual-length", - "dynamic-markup", - "dynamic-text-spanner::before-line-breaking", - "elbowed-hairpin", - "ellipse-markup", - "ellipse-radius", - "ellipse-stencil", - "empty-music", - "end-broken-spanner?", - "entry-greater-than-x?", - "eps-file->stencil", - "epsfile-markup", - "eval-carefully", - "event-cause", - "event-chord-notes", - "event-chord-pitches", - "event-chord-reduce", - "event-chord-wrap!", - "event-class-cons", - "event-has-articulation?", - "events", - "every-nth-bar-number-visible", - "every-nth-repeat-count-visible", - "exact-rational?", - "expand-repeat-chords!", - "expand-repeat-notes!", - "extent-combine", - "extract-alteration", - "extract-beam-exceptions", - "extract-music", - "extract-named-music", - "extract-typed-music", - "eyeglasses-markup", - "fermata-markup", - "figured-bass-markup", - "fill-line-markup", - "fill-with-pattern-markup", - "filled-box-markup", - "find-named-props", - "find-pitch-entry", - "find-value-to-offset", - "finger-glide::print", - "finger-markup", - "fingering::calc-text", - "first-assoc", - "first-bar-number-invisible", - "first-bar-number-invisible-and-no-parenthesized-bar-numbers", - "first-bar-number-invisible-save-broken-bars", - "first-broken-spanner?", - "first-member", - "first-visible-markup", - "flared-hairpin", - "flat-flag", - "flat-markup", - "flatten-alist", - "flatten-list", - "flip-stencil", - "flute-lh-b-key-stencil", - "flute-lh-bes-key-stencil", - "flute-lh-gis-key-stencil", - "flute-lh-gis-rh-bes-key-stencil", - "flute-rh-b-key-stencil", - "flute-rh-bes-key-stencil", - "flute-rh-c-key-stencil", - "flute-rh-cis-key-stencil", - "flute-rh-d-key-stencil", - "flute-rh-dis-key-stencil", - "flute-rh-ees-key-stencil", - "flute-rh-gz-key-stencil", - "fold-some-music", - "font-children", - "font-default", - "font-name-split", - "font-name-style", - "font-qualifier", - "fontCaps-markup", - "fontsize-markup", - "footnote-markup", - "for-some-music", - "forced-configuration", - "format", - "format-bass-figure", - "format-coda-mark", - "format-compound-time", - "format-dal-segno-text", - "format-dal-segno-text-brief", - "format-mark-alphabet", - "format-mark-barnumbers", - "format-mark-box-alphabet", - "format-mark-box-barnumbers", - "format-mark-box-letters", - "format-mark-box-numbers", - "format-mark-circle-alphabet", - "format-mark-circle-barnumbers", - "format-mark-circle-letters", - "format-mark-circle-numbers", - "format-mark-generic", - "format-mark-letters", - "format-mark-numbers", - "format-metronome-markup", - "format-segno-mark", - "format-segno-mark-considering-bar-lines", - "format-sign-with-number", - "format-time-element", - "format-time-fraction", - "format-time-list", - "format-time-numerator", - "format-varcoda-mark", - "fraction->moment", - "fraction-markup", - "fraction?", - "fret->pitch", - "fret-board::calc-stencil", - "fret-count", - "fret-diagram-markup", - "fret-diagram-terse-markup", - "fret-diagram-verbose-markup", - "fret-letter-tablature-format", - "fret-number-tablature-format", - "fret-number-tablature-format-banjo", - "fret-parse-definition-string", - "fret-parse-marking-list", - "fret-parse-terse-definition-string", - "fromproperty-markup", - "function-chain", - "g", - "g-lookup-font", - "general-align-markup", - "general-column", - "generate-bassoon-family-entry", - "generate-clarinet-family-entry", - "generate-crop-stencil", - "generate-flute-family-entry", - "generate-oboe-family-entry", - "generate-preview-stencil", - "generate-saxophone-family-entry", - "generate-system-stencils", - "generate-tin-whistle-family-entry", - "get-bound-note-heads", - "get-chord-shape", - "get-current-filename", - "get-current-suffix", - "get-fill-space", - "get-key", - "get-named-spreadsheet-column", - "get-next-unique-voice-name", - "get-numeric-from-key", - "get-outfile-name", - "get-postscript-bbox", - "get-quarter-diffs", - "get-setting", - "get-slope-offset", - "get-span-glyph", - "get-spreadsheet-column", - "get-step", - "get-sub-list", - "get-top-most-tab-head", - "get-tweakable-music", - "get-woodwind-key-list", - "glissando::calc-tab-extra-dy", - "glissando::draw-tab-glissando", - "glyph->stencil", - "glyph-flag", - "grace-spacing::calc-shortest-duration", - "gray-colorize", - "grid-chord-name::calc-X-offset", - "grid-chord-name::calc-Y-offset", - "grid-chord-name::calc-offset-on-axis", - "grob-interpret-markup", - "grob-list?", - "grob-transformer", - "grob::all-objects", - "grob::calc-property-by-copy", - "grob::compose-function", - "grob::display-objects", - "grob::has-interface", - "grob::inherit-parent-property", - "grob::is-live?", - "grob::name", - "grob::objects-from-interface", - "grob::offset-function", - "grob::relay-other-property", - "grob::rhythmic-location", - "grob::show-skylines-if-debug-skylines-set", - "grob::unpure-Y-extent-from-stencil", - "grob::when", - "group-automate-rule", - "group-draw-rule", - "group-extra-offset-rule", - "gs-cmd-args", - "gs-safe-run", - "hairpin::calc-grow-direction", - "halign-markup", - "harp-pedal-check", - "harp-pedal-info", - "harp-pedal-markup", - "harp-pedals-parse-string", - "has-at-least-two?", - "has-one-or-less?", - "hash-table->alist", - "hbracket-markup", - "hcenter-in-markup", - "header-to-file", - "headers-property-alist-chain", - "hook-stencil", - "horizontal-slash-interval", - "hspace-markup", - "huge-markup", - "if-markup", - "ignatzek-chord-names", - "index-cell", - "index-or-markup?", - "index?", - "insert-markups", - "internal-set-paper-size", - "interpret-markup", - "interpret-markup-list", - "interval-bound", - "interval-center", - "interval-contains?", - "interval-empty?", - "interval-end", - "interval-index", - "interval-intersection", - "interval-length", - "interval-sane?", - "interval-scale", - "interval-start", - "interval-union", - "interval-widen", - "invalidate-alterations", - "inverter-factory", - "is-absolute?", - "is-square?", - "italic-markup", - "item::extra-spacing-height-including-staff", - "justified-lines-markup-list", - "justify-field-markup", - "justify-line-helper", - "justify-line-markup", - "justify-markup", - "justify-string-markup", - "key-crawler", - "key-entry-alteration", - "key-entry-bar-number", - "key-entry-end-mom", - "key-entry-notename", - "key-entry-octave", - "key-fill-translate", - "key-list-or-music?", - "key-list-or-symbol?", - "key-list?", - "key-signature-interface::alteration-position", - "key-signature-interface::alteration-positions", - "key?", - "keyword->make-markup", - "large-markup", - "larger-markup", - "layout-blot-diameter", - "layout-extract-page-properties", - "layout-line-thickness", - "layout-set-absolute-staff-size", - "layout-set-absolute-staff-size-in-module", - "layout-set-staff-size", - "left-align-markup", - "left-brace-markup", - "left-column-markup", - "lexicographic-list-compare?", - "lh-woodwind-text-stencil", - "lilypond-all", - "lilypond-file", - "lilypond-main", - "lilypond-version", - "lilypond-version-outdated?", - "line-markup", - "list-all-possible-keys", - "list-all-possible-keys-verbose", - "list-element-index", - "list-insert-separator", - "list-join", - "listener->once-listener", - "little-elliptical-key-stencil", - "long-midline-stencil", - "lookup-font", - "lookup-markup", - "lookup-markup-command", - "lookup-markup-command-aux", - "lookup-markup-list-command", - "lookup-paper-name", - "low-bass-clarinet-rh-ees-key-stencil", - "lower-markup", - "ly-getcwd", - "ly-type?", - "ly:accidental-interface::height", - "ly:accidental-interface::horizontal-skylines", - "ly:accidental-interface::print", - "ly:accidental-interface::remove-tied", - "ly:accidental-placement::calc-positioning-done", - "ly:add-context-mod", - "ly:add-interface", - "ly:add-listener", - "ly:add-option", - "ly:align-interface::align-to-ideal-distances", - "ly:align-interface::align-to-minimum-distances", - "ly:all-grob-interfaces", - "ly:all-options", - "ly:all-output-backend-commands", - "ly:all-stencil-commands", - "ly:all-stencil-expressions", - "ly:alternative-sequence-iterator::constructor", - "ly:angle", - "ly:apply-context-iterator::constructor", - "ly:arpeggio::brew-chord-bracket", - "ly:arpeggio::brew-chord-slur", - "ly:arpeggio::calc-cross-staff", - "ly:arpeggio::calc-positions", - "ly:arpeggio::print", - "ly:arpeggio::pure-height", - "ly:arpeggio::width", - "ly:assoc-get", - "ly:axis-group-interface::add-element", - "ly:axis-group-interface::adjacent-pure-heights", - "ly:axis-group-interface::calc-pure-relevant-grobs", - "ly:axis-group-interface::calc-pure-staff-staff-spacing", - "ly:axis-group-interface::calc-pure-y-common", - "ly:axis-group-interface::calc-skylines", - "ly:axis-group-interface::calc-staff-staff-spacing", - "ly:axis-group-interface::calc-x-common", - "ly:axis-group-interface::calc-y-common", - "ly:axis-group-interface::combine-skylines", - "ly:axis-group-interface::height", - "ly:axis-group-interface::pure-height", - "ly:axis-group-interface::width", - "ly:balloon-interface::print", - "ly:balloon-interface::pure-height", - "ly:balloon-interface::remove-irrelevant-spanner", - "ly:balloon-interface::width", - "ly:bar-check-iterator::constructor", - "ly:bar-line::calc-anchor", - "ly:bar-line::calc-bar-extent", - "ly:bar-line::print", - "ly:basic-progress", - "ly:beam::calc-beam-segments", - "ly:beam::calc-beaming", - "ly:beam::calc-cross-staff", - "ly:beam::calc-direction", - "ly:beam::calc-normal-stems", - "ly:beam::calc-stem-shorten", - "ly:beam::calc-x-positions", - "ly:beam::print", - "ly:beam::pure-rest-collision-callback", - "ly:beam::quanting", - "ly:beam::rest-collision-callback", - "ly:beam::set-stem-lengths", - "ly:bezier-extent", - "ly:bezier-extract", - "ly:book-add-bookpart!", - "ly:book-add-score!", - "ly:book-book-parts", - "ly:book-header", - "ly:book-paper", - "ly:book-process", - "ly:book-process-to-systems", - "ly:book-scores", - "ly:book-set-header!", - "ly:book?", - "ly:bp", - "ly:bracket", - "ly:break-alignable-interface::find-parent", - "ly:break-alignable-interface::self-align-callback", - "ly:break-aligned-interface::calc-average-anchor", - "ly:break-aligned-interface::calc-break-visibility", - "ly:break-aligned-interface::calc-extent-aligned-anchor", - "ly:break-aligned-interface::calc-joint-anchor-alignment", - "ly:break-alignment-interface::calc-positioning-done", - "ly:break-alignment-interface::find-nonempty-break-align-group", - "ly:breathing-sign::divisio-maior", - "ly:breathing-sign::divisio-maxima", - "ly:breathing-sign::divisio-minima", - "ly:breathing-sign::finalis", - "ly:breathing-sign::offset-callback", - "ly:breathing-sign::set-breath-properties", - "ly:broadcast", - "ly:cairo-output-stencil", - "ly:cairo-output-stencils", - "ly:calculated-sequential-music::length", - "ly:calculated-sequential-music::start", - "ly:camel-case->lisp-identifier", - "ly:chain-assoc-get", - "ly:change-iterator::constructor", - "ly:check-expected-warnings", - "ly:chord-name::after-line-breaking", - "ly:clef-modifier::calc-parent-alignment", - "ly:clef::calc-glyph-name", - "ly:clef::print", - "ly:cluster-beacon::height", - "ly:cluster::calc-cross-staff", - "ly:cluster::print", - "ly:cm", - "ly:command-line-code", - "ly:command-line-options", - "ly:connect-dispatchers", - "ly:context-current-moment", - "ly:context-def-lookup", - "ly:context-def-modify", - "ly:context-def?", - "ly:context-event-source", - "ly:context-events-below", - "ly:context-find", - "ly:context-grob-definition", - "ly:context-id", - "ly:context-matched-pop-property", - "ly:context-mod-apply!", - "ly:context-mod?", - "ly:context-name", - "ly:context-output-def", - "ly:context-parent", - "ly:context-property", - "ly:context-property-where-defined", - "ly:context-pushpop-property", - "ly:context-set-property!", - "ly:context-specced-music-iterator::constructor", - "ly:context-unset-property", - "ly:context?", - "ly:custos::print", - "ly:debug", - "ly:default-scale", - "ly:dimension?", - "ly:dir?", - "ly:directed", - "ly:disconnect-dispatchers", - "ly:dispatcher?", - "ly:dot-column::calc-positioning-done", - "ly:dots::print", - "ly:duration->string", - "ly:duration-compress", - "ly:duration-dot-count", - "ly:duration-factor", - "ly:duration-length", - "ly:duration-log", - "ly:duration-scale", - "ly:duration::less?", - "ly:durationlist", - "ly:grob-array-length", - "ly:grob-array-ref", - "ly:grob-array?", - "ly:grob-basic-properties", - "ly:grob-chain-callback", - "ly:grob-common-refpoint", - "ly:grob-common-refpoint-of-array", - "ly:grob-default-font", - "ly:grob-extent", - "ly:grob-get-vertical-axis-group-index", - "ly:grob-interfaces", - "ly:grob-layout", - "ly:grob-list->grob-array", - "ly:grob-object", - "ly:grob-original", - "ly:grob-parent", - "ly:grob-pqoffsets", - "ly:listened-event-class?", - "ly:listened-event-types", - "ly:listener?", - "ly:load", - "ly:lyric-combine-music-iterator::constructor", - "ly:lyric-combine-music::length-callback", - "ly:lyric-extender::print", - "ly:lyric-hyphen::print", - "ly:lyric-hyphen::set-spacing-rods", - "ly:make-book", - "ly:make-book-part", - "ly:make-context-mod", - "ly:make-dispatcher", - "ly:make-duration", - "ly:make-event-class", - "ly:make-global-context", - "ly:make-global-translator", - "ly:make-grob-properties", - "ly:make-listener", - "ly:make-moment", - "ly:make-music", - "ly:make-music-function", - "ly:make-music-relative!", - "ly:make-output-def", - "ly:make-page-label-marker", - "ly:make-page-permission-marker", - "ly:make-pango-description-string", - "ly:make-paper-outputter", - "ly:make-pitch", - "ly:make-prob", - "ly:make-rotation", - "ly:make-scale", - "ly:make-scaling", - "ly:make-score", - "ly:make-skyline", - "ly:make-spring", - "ly:make-stencil", - "ly:make-stream-event", - "ly:make-transform", - "ly:make-translation", - "ly:make-unpure-pure-container", - "ly:measure-grouping::print", - "ly:measure-spanner::calc-connect-to-neighbors", - "ly:measure-spanner::print", - "ly:melody-spanner::calc-neutral-stem-direction", - "ly:mensural-ligature::brew-ligature-primitive", - "ly:mensural-ligature::print", - "ly:message", - "ly:minimal-breaking", - "ly:mm", - "ly:module->alist", - "ly:module-copy", - "ly:modules-lookup", - "ly:moment-add", - "ly:moment-div", - "ly:moment-grace", - "ly:moment-grace-denominator", - "ly:moment-grace-numerator", - "ly:moment-main", - "ly:moment-main-denominator", - "ly:moment-main-numerator", - "ly:moment-mod", - "ly:moment-mul", - "ly:moment-sub", - "ly:momentstring", - "ly:number-pair->string", - "ly:one-line-auto-height-breaking", - "ly:one-line-breaking", - "ly:one-page-breaking", - "ly:optimal-breaking", - "ly:option-usage", - "ly:otf->cff", - "ly:otf-font-glyph-info", - "ly:otf-font-table-data", - "ly:otf-font?", - "ly:otf-glyph-count", - "ly:otf-glyph-list", - "ly:ottava-bracket::print", - "ly:output-def-clone", - "ly:output-def-lookup", - "ly:output-def-parent", - "ly:output-def-scope", - "ly:output-def-set-variable!", - "ly:output-def?", - "ly:output-description", - "ly:output-find-context-def", - "ly:outputter-close", - "ly:outputter-dump-stencil", - "ly:outputter-dump-string", - "ly:outputter-output-scheme", - "ly:outputter-port", - "ly:page-marker?", - "ly:page-turn-breaking", - "ly:pango-font-physical-fonts", - "ly:pango-font?", - "ly:paper-book-header", - "ly:paper-book-pages", - "ly:paper-book-paper", - "ly:paper-book-performances", - "ly:paper-book-scopes", - "ly:paper-book-systems", - "ly:paper-book?", - "ly:paper-column::break-align-width", - "ly:paper-column::print", - "ly:paper-fonts", - "ly:paper-get-font", - "ly:paper-get-number", - "ly:paper-outputscale", - "ly:paper-score-paper-systems", - "ly:paper-system-minimum-distance", - "ly:paper-system?", - "ly:parse-file", - "ly:parse-init", - "ly:parse-string-expression", - "ly:parsed-undead-list!", - "ly:parser-clear-error", - "ly:parser-clone", - "ly:parser-define!", - "ly:parser-error", - "ly:parser-has-error?", - "ly:parser-include-string", - "ly:parser-lookup", - "ly:parser-output-name", - "ly:parser-parse-string", - "ly:parser-set-note-names", - "ly:part-combine-iterator::constructor", - "ly:partial-iterator::constructor", - "ly:partial-iterator::finalization", - "ly:percent-repeat-interface::beat-slash", - "ly:percent-repeat-interface::double-percent", - "ly:percent-repeat-interface::percent", - "ly:percent-repeat-iterator::constructor", - "ly:perform-text-replacements", - "ly:performance-headers", - "ly:performance-write", - "ly:piano-pedal-bracket::print", - "ly:pitch-alteration", - "ly:pitch-diff", - "ly:pitch-negate", - "ly:pitch-notename", - "ly:pitch-octave", - "ly:pitch-quartertones", - "ly:pitch-semitones", - "ly:pitch-steps", - "ly:pitch-tones", - "ly:pitch-transpose", - "ly:pitch::less?", - "ly:pitchpoints", - "ly:skyline-distance", - "ly:skyline-empty?", - "ly:skyline-height", - "ly:skyline-max-height", - "ly:skyline-max-height-position", - "ly:skyline-merge", - "ly:skyline-pad", - "ly:skyline-pair?", - "ly:skyline-touching-point", - "ly:skyline?", - "ly:skylines-for-stencil", - "ly:slur::calc-control-points", - "ly:slur::calc-cross-staff", - "ly:slur::calc-direction", - "ly:slur::height", - "ly:slur::outside-slur-callback", - "ly:slur::outside-slur-cross-staff", - "ly:slur::print", - "ly:slur::pure-height", - "ly:slur::pure-outside-slur-callback", - "ly:smob-protects", - "ly:solve-spring-rod-problem", - "ly:source-file?", - "ly:source-files", - "ly:spacing-spanner::calc-common-shortest-duration", - "ly:spacing-spanner::set-springs", - "ly:span-bar::before-line-breaking", - "ly:span-bar::calc-anchor", - "ly:span-bar::calc-glyph-name", - "ly:span-bar::choose-model-bar-line", - "ly:span-bar::print", - "ly:span-bar::width", - "ly:spanner-bound", - "ly:spanner-broken-into", - "ly:spanner-set-bound!", - "ly:spanner::bounds-width", - "ly:spanner::calc-normalized-endpoints", - "ly:spanner::kill-zero-spanned-time", - "ly:spanner::set-spacing-rods", - "ly:spanner?", - "ly:spawn", - "ly:spring-set-inverse-compress-strength!", - "ly:spring-set-inverse-stretch-strength!", - "ly:spring?", - "ly:staff-symbol-line-thickness", - "ly:staff-symbol-referencer::callback", - "ly:staff-symbol-staff-radius", - "ly:staff-symbol-staff-space", - "ly:staff-symbol::height", - "ly:staff-symbol::print", - "ly:stderr-redirect", - "ly:stem-tremolo::calc-cross-staff", - "ly:stem-tremolo::calc-direction", - "ly:stem-tremolo::calc-shape", - "ly:stem-tremolo::calc-slope", - "ly:stem-tremolo::calc-width", - "ly:stem-tremolo::calc-y-offset", - "ly:stem-tremolo::print", - "ly:stem-tremolo::pure-calc-y-offset", - "ly:stem-tremolo::pure-height", - "ly:stem-tremolo::width", - "ly:stem::calc-cross-staff", - "ly:stem::calc-default-direction", - "ly:stem::calc-direction", - "ly:stem::calc-length", - "ly:stem::calc-positioning-done", - "ly:stem::calc-stem-begin-position", - "ly:stem::calc-stem-end-position", - "ly:stem::calc-stem-info", - "ly:stem::height", - "ly:stem::offset-callback", - "ly:stem::print", - "ly:stem::pure-calc-length", - "ly:stem::pure-calc-stem-begin-position", - "ly:stem::pure-calc-stem-end-position", - "ly:stem::pure-height", - "ly:stem::width", - "ly:stencil-add", - "ly:stencil-aligned-to", - "ly:stencil-combine-at-edge", - "ly:stencil-empty?", - "ly:stencil-expr", - "ly:stencil-extent", - "ly:stencil-in-color", - "ly:stencil-outline", - "ly:stencil-rotate", - "ly:stencil-rotate-absolute", - "ly:stencil-scale", - "ly:stencil-stack", - "ly:stencil-translate", - "ly:stencil-translate-axis", - "ly:stencil?", - "ly:stream-event?", - "ly:string-percent-encode", - "ly:string-substitute", - "ly:sustain-pedal::print", - "ly:system", - "ly:system-font-load", - "ly:system-start-delimiter::print", - "ly:system::calc-pure-height", - "ly:system::calc-pure-relevant-grobs", - "ly:system::footnotes-after-line-breaking", - "ly:system::footnotes-before-line-breaking", - "ly:system::get-nonspaceable-staves", - "ly:system::get-spaceable-staves", - "ly:system::get-staves", - "ly:system::get-vertical-alignment", - "ly:system::height", - "ly:system::vertical-skyline-elements", - "ly:text-interface::interpret-markup", - "ly:text-interface::interpret-string", - "ly:text-interface::print", - "ly:tie-column::before-line-breaking", - "ly:tie-column::calc-positioning-done", - "ly:tie::calc-control-points", - "ly:tie::calc-direction", - "ly:tie::print", - "ly:time-signature::print", - "ly:transform->list", - "ly:transform?", - "ly:translate-cpp-warning-scheme", - "ly:translator-context", - "ly:translator-description", - "ly:translator-group?", - "ly:translator-name", - "ly:translator?", - "ly:transpose-key-alist", - "ly:ttf->pfa", - "ly:ttf-ps-name", - "ly:tuplet-bracket::calc-connect-to-neighbors", - "ly:tuplet-bracket::calc-cross-staff", - "ly:tuplet-bracket::calc-direction", - "ly:tuplet-bracket::calc-positions", - "ly:tuplet-bracket::calc-x-positions", - "ly:tuplet-bracket::print", - "ly:tuplet-iterator::constructor", - "ly:tuplet-number::calc-cross-staff", - "ly:tuplet-number::calc-x-offset", - "ly:tuplet-number::calc-y-offset", - "ly:tuplet-number::print", - "ly:type1->pfa", - "ly:unit", - "ly:unpure-call", - "ly:unpure-pure-container-pure-part", - "ly:unpure-pure-container-unpure-part", - "ly:unpure-pure-container?", - "ly:usage", - "ly:vaticana-ligature::brew-ligature-primitive", - "ly:vaticana-ligature::print", - "ly:verbose-output?", - "ly:version", - "ly:version?", - "ly:volta-bracket-interface::print", - "ly:volta-bracket::calc-shorten-pair", - "ly:volta-repeat-iterator::constructor", - "ly:volta-specced-music-iterator::constructor", - "ly:vowel-transition::set-spacing-rods", - "ly:warning", - "ly:warning-located", - "ly:wide-char->utf-8", - "lyric-hyphen::vaticana-style", - "lyric-text::print", - "magnification->font-size", - "magnify-markup", - "magnifyStaff-is-set?", - "magstep", - "maj7-modifier", - "make-abs-fontsize-markup", - "make-accidental-dodecaphonic-rule", - "make-accidental-markup", - "make-accidental-rule", - "make-align-on-other-markup", - "make-apply-context", - "make-arrow-head-markup", - "make-articulation", - "make-auto-footnote-markup", - "make-autochange-music", - "make-backslashed-digit-markup", - "make-beam-markup", - "make-bezier-sandwich-stencil", - "make-bold-markup", - "make-bow-stencil", - "make-box-markup", - "make-bracket-bar-line", - "make-bracket-markup", - "make-c-time-signature-markup", - "make-caps-markup", - "make-center-align-markup", - "make-center-column-markup", - "make-central-column-hole-addresses", - "make-char-markup", - "make-chord-elements", - "make-circle-markup", - "make-circle-stencil", - "make-clef-set", - "make-coda-markup", - "make-colon-bar-line", - "make-color-handler", - "make-column-lines-markup-list", - "make-column-markup", - "make-combine-markup", - "make-compound-meter-markup", - "make-concat-markup", - "make-conditional-trill-markup-markup", - "make-connected-line", - "make-connected-path-stencil", - "make-cue-clef-set", - "make-cue-clef-unset", - "make-customTabClef-markup", - "make-dashed-bar-line", - "make-default-fonts-tree", - "make-dir-column-markup", - "make-dotted-bar-line", - "make-doubleflat-markup", - "make-doublesharp-markup", - "make-draw-circle-markup", - "make-draw-dashed-line-markup", - "make-draw-dotted-line-markup", - "make-draw-hline-markup", - "make-draw-line-markup", - "make-draw-squiggle-line-markup", - "make-duration-of-length", - "make-dynamic-markup", - "make-ellipse-markup", - "make-ellipse-stencil", - "make-empty-bar-line", - "make-engraver", - "make-epsfile-markup", - "make-event-chord", - "make-extended-scale", - "make-eyeglasses-markup", - "make-fermata-markup", - "make-figured-bass-markup", - "make-fill-line-markup", - "make-fill-with-pattern-markup", - "make-filled-box-markup", - "make-filled-box-stencil", - "make-finger-markup", - "make-first-visible-markup", - "make-flat-markup", - "make-font-tree-leaf", - "make-font-tree-node", - "make-fontCaps-markup", - "make-fontsize-markup", - "make-footnote-markup", - "make-fraction-markup", - "make-fret-diagram", - "make-fret-diagram-markup", - "make-fret-diagram-terse-markup", - "make-fret-diagram-verbose-markup", - "make-fromproperty-markup", - "make-general-align-markup", - "make-glyph-time-signature-markup", - "make-grace-music", - "make-graceless-rhythmic-location", - "make-grob-property-override", - "make-grob-property-revert", - "make-grob-property-set", - "make-halign-markup", - "make-harmonic", - "make-harp-pedal-markup", - "make-hbracket-markup", - "make-hcenter-in-markup", - "make-hspace-markup", - "make-huge-markup", - "make-if-markup", - "make-italic-markup", - "make-justified-lines-markup-list", - "make-justify-field-markup", - "make-justify-line-markup", - "make-justify-markup", - "make-justify-string-markup", - "make-key-alist", - "make-key-symbols", - "make-kievan-bar-line", - "make-large-markup", - "make-larger-markup", - "make-left-align-markup", - "make-left-brace-markup", - "make-left-column-markup", - "make-left-hand-key-addresses", - "make-line-markup", - "make-line-stencil", - "make-lookup-markup", - "make-lower-markup", - "make-lyric-event", - "make-lyric-repeat-count-formatter", - "make-magnify-markup", - "make-map-markup-commands-markup-list", - "make-markalphabet-markup", - "make-markletter-markup", - "make-markup", - "make-medium-markup", - "make-modal-inverter", - "make-modal-transposer", - "make-multi-measure-rest", - "make-multi-measure-rest-by-number-markup", - "make-music", - "make-musicglyph-markup", - "make-name-keylist", - "make-named-spreadsheet", - "make-natural-markup", - "make-no-bar-line", - "make-non-relative-music", - "make-normal-size-sub-markup", - "make-normal-size-super-markup", - "make-normal-text-markup", - "make-normalsize-markup", - "make-note-by-number-markup", - "make-note-markup", - "make-null-markup", - "make-number-keylist", - "make-number-markup", - "make-on-the-fly-markup", - "make-oval-markup", - "make-oval-stencil", - "make-overlay-markup", - "make-override-lines-markup-list", - "make-override-markup", - "make-overtie-markup", - "make-pad-around-markup", - "make-pad-markup-markup", - "make-pad-to-box-markup", - "make-pad-x-markup", - "make-page-link-markup", - "make-page-ref-markup", - "make-pango-font-tree", - "make-parenthesis-stencil", - "make-parenthesize-markup", - "make-part-combine-context-changes", - "make-part-combine-marks", - "make-partial-ellipse-stencil", - "make-path-markup", - "make-path-stencil", - "make-pattern-markup", - "make-percent-set", - "make-performer", - "make-polygon-markup", - "make-postscript-markup", - "make-property-recursive-markup", - "make-property-set", - "make-property-unset", - "make-put-adjacent-markup", - "make-raise-markup", - "make-relative", - "make-relative::to-relative-callback", - "make-repeat", - "make-replace-markup", - "make-rest-by-number-markup", - "make-rest-markup", - "make-rhythm-markup", - "make-rhythmic-location", - "make-right-align-markup", - "make-right-brace-markup", - "make-right-column-markup", - "make-right-hand-key-addresses", - "make-roman-markup", - "make-rotate-markup", - "make-rounded-box-markup", - "make-sans-markup", - "make-scale", - "make-scale-markup", - "make-score-lines-markup-list", - "make-score-markup", - "make-segno-bar-line", - "make-segno-markup", - "make-semiflat-markup", - "make-semisharp-markup", - "make-semitone->pitch", - "make-sequential-music", - "make-sesquiflat-markup", - "make-sesquisharp-markup", - "make-session-variable", - "make-setting", - "make-sharp-markup", - "make-short-bar-line", - "make-simple-bar-line", - "make-simple-markup", - "make-simultaneous-music", - "make-skip-music", - "make-skipped", - "make-slashed-digit-markup", - "make-small-markup", - "make-smallCaps-markup", - "make-smaller-markup", - "make-spacer-bar-line", - "make-span-event", - "make-split-state", - "make-spreadsheet", - "make-stem-span!", - "make-stem-spans!", - "make-stencil-boxer", - "make-stencil-circler", - "make-stencil-markup", - "make-string-lines-markup-list", - "make-strut-markup", - "make-sub-markup", - "make-super-markup", - "make-symbol-alist", - "make-tab-heads-transparent", - "make-table-markup-list", - "make-teeny-markup", - "make-text-markup", - "make-thick-bar-line", - "make-tick-bar-line", - "make-tie-markup", - "make-tie-stencil", - "make-tied-lyric-markup", - "make-tilted-portion", - "make-time-signature-set", - "make-tiny-markup", - "make-tmpfile", - "make-translate-markup", - "make-translate-scaled-markup", - "make-translator", - "make-translator-component", - "make-translator-internal", - "make-transparent-box-stencil", - "make-transparent-markup", - "make-tremolo-set", - "make-triangle-markup", - "make-type-checker", - "make-typewriter-markup", - "make-underline-markup", - "make-undertie-markup", - "make-unfolded-set", - "make-unless-markup", - "make-upright-markup", - "make-varcoda-markup", - "make-vcenter-markup", - "make-verbatim-file-markup", - "make-voice-props-override", - "make-voice-props-revert", - "make-voice-props-set", - "make-voice-states", - "make-volta-set", - "make-vspace-markup", - "make-whiteout-markup", - "make-with-color-markup", - "make-with-dimension-from-markup", - "make-with-dimension-markup", - "make-with-dimensions-from-markup", - "make-with-dimensions-markup", - "make-with-link-markup", - "make-with-outline-markup", - "make-with-string-transformer-markup", - "make-with-true-dimension-markup", - "make-with-true-dimensions-markup", - "make-with-url-markup", - "make-woodwind-diagram-markup", - "make-wordwrap-field-markup", - "make-wordwrap-internal-markup-list", - "make-wordwrap-lines-markup-list", - "make-wordwrap-markup", - "make-wordwrap-string-internal-markup-list", - "make-wordwrap-string-markup", - "map-alist-keys", - "map-alist-vals", - "map-markup-commands-markup-list", - "map-selected-alist-keys", - "map-some-music", - "markalphabet-markup", - "marked-up-headfoot", - "marked-up-title", - "markgeneric-string", - "markletter-markup", - "markup", - "markup->string", - "markup-argument-list-error", - "markup-argument-list?", - "markup-command-list?", - "markup-command-signature", - "markup-default-to-string-method", - "markup-expression->make-markup", - "markup-function-as-string-method", - "markup-function-category", - "markup-function-properties", - "markup-function?", - "markup-join", - "markup-lambda", - "markup-lambda-listify", - "markup-lambda-worker", - "markup-list-function?", - "markup-list-lambda", - "markup-list?", - "markup-thrower-typecheck", - "markup-typecheck?", - "markup?", - "match-predicate", - "measure-counter::text", - "medium-markup", - "mensural-flag", - "merge-details", - "metronome-markup", - "middle-broken-spanner?", - "midi-program", - "midline-stencil", - "minor-modifier", - "mkdir-if-not-exist", - "mm-rest-child-list", - "mmrest-of-length", - "modern-straight-flag", - "modified-font-metric-font-scaling", - "modulo-bar-number-visible", - "moment", - "moment->fraction", - "moment-min", - "moment-pair?", - "moment<=?", - "move-chord-note", - "multi-fork", - "multi-measure-rest-by-number-markup", - "music->make-music", - "music-check-error", - "music-clone", - "music-filter", - "music-invert", - "music-is-of-type?", - "music-map", - "music-pitches", - "music-property-description", - "music-selective-filter", - "music-selective-map", - "music-separator?", - "music-type-predicate", - "musicglyph-markup", - "n-true-entries", - "narrow-glyph?", - "natural-chord-alteration", - "natural-markup", - "negate-extent", - "neo-modern-accidental-rule", - "no-flag", - "normal-flag", - "normal-size-sub-markup", - "normal-size-super-markup", - "normal-text-markup", - "normalize-fraction", - "normalsize-markup", - "not-first-broken-spanner?", - "not-last-broken-spanner?", - "note-by-number-markup", - "note-events", - "note-head::brew-ez-stencil", - "note-head::calc-duration-log", - "note-head::calc-glyph-name", - "note-head::calc-kievan-duration-log", - "note-markup", - "note-name->german-markup", - "note-name->markup", - "note-name->string", - "note-name-markup", - "note-names-language", - "note-to-cluster", - "notes-to-clusters", - "null-markup", - "number->octal-string", - "number-column-stencil", - "number-format", - "number-list?", - "number-markup", - "number-or-grob?", - "number-or-pair?", - "number-or-string?", - "number-pair-list?", - "number-pair?", - "numbered-footnotes", - "numerify", - "object-type", - "object-type-name", - "oboe-lh-I-key-stencil", - "oboe-lh-II-key-stencil", - "oboe-lh-III-key-stencil", - "oboe-lh-b-key-stencil", - "oboe-lh-bes-key-stencil", - "oboe-lh-cis-key-stencil", - "oboe-lh-d-key-stencil", - "oboe-lh-ees-key-stencil", - "oboe-lh-ees-lh-bes-key-stencil", - "oboe-lh-f-key-stencil", - "oboe-lh-gis-key-stencil", - "oboe-lh-gis-lh-low-b-key-stencil", - "oboe-lh-low-b-key-stencil", - "oboe-lh-octave-key-stencil", - "oboe-rh-a-key-stencil", - "oboe-rh-banana-key-stencil", - "oboe-rh-c-key-stencil", - "oboe-rh-c-rh-ees-key-stencil", - "oboe-rh-cis-key-stencil", - "oboe-rh-d-key-stencil", - "oboe-rh-ees-key-stencil", - "oboe-rh-f-key-stencil", - "oboe-rh-gis-key-stencil", - "octave-woodwind-text-stencil", - "offset-add", - "offset-flip-y", - "offset-fret", - "offset-multiple-types", - "offset-scale", - "offsetter", - "old-straight-flag", - "on-the-fly-markup", - "only-if-beamed", - "ordered-cons", - "other-axis", - "output-module?", - "output-scopes", - "outputproperty-compatibility", - "oval-markup", - "oval-stencil", - "overlay-markup", - "override-head-style", - "override-lines-markup-list", - "override-markup", - "override-property-setting", - "override-time-signature-setting", - "overtie-markup", - "pad-around-markup", - "pad-markup-markup", - "pad-to-box-markup", - "pad-x-markup", - "page-link-markup", - "page-ref-markup", - "pair-map", - "pango-font-name", - "pango-pf-file-name", - "pango-pf-font-name", - "pango-pf-fontindex", - "paper-variable", - "parentheses-interface::calc-angled-bracket-stencils", - "parentheses-interface::calc-parenthesis-stencils", - "parentheses-interface::print", - "parentheses-interface::y-extent", - "parenthesize-elements", - "parenthesize-markup", - "parenthesize-stencil", - "parse-and-check-version", - "parse-lily-version", - "parse-terse-string", - "path-markup", - "pattern-markup", - "percussion?", - "performance-name-from-headers", - "piccolo-rh-x-key-stencil", - "pitch-alteration-semitones", - "pitch-invert", - "pitch-of-note", - "pitch-step", - "polar->rectangular", - "polygon-markup", - "position-true-endpoint", - "postprocess-output", - "postscript->pdf", - "postscript->png", - "postscript->ps", - "postscript-markup", - "precompute-music-length", - "prepend-alist-chain", - "prepend-props", - "pretty-printable?", - "previous-span-state", - "previous-voice-state", - "print-book-with", - "print-book-with-defaults", - "print-book-with-defaults-as-systems", - "print-circled-text-callback", - "print-keys", - "print-keys-verbose", - "process-fill-value", - "property-recursive-markup", - "pure-chain-offset-callback", - "pure-from-neighbor-interface::account-for-span-bar", - "pure-from-neighbor-interface::extra-spacing-height", - "pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line", - "pure-from-neighbor-interface::extra-spacing-height-including-staff", - "pure-from-neighbor-interface::pure-height", - "put-adjacent-markup", - "quarterdiff->string", - "quote-substitute", - "raise-markup", - "randomize-rand-seed", - "ratio->fret", - "ratio->pitch", - "rational-or-procedure?", - "read-lily-expression", - "read-lily-expression-internal", - "recent-enough?", - "recompute-music-length", - "recording-group-emulate", - "regexp-split", - "relevant-book-systems", - "relevant-dump-systems", - "remove-grace-property", - "remove-step", - "remove-whitespace", - "repeat-tie::handle-tab-note-head", - "replace-markup", - "replace-step", - "replicate-modify", - "reset-stencil-colors", - "rest-by-number-markup", - "rest-markup", - "retrieve-glyph-flag", - "retrograde-music", - "return-1", - "reverse-interval", - "revert-fontSize", - "revert-head-style", - "revert-property-setting", - "revert-props", - "revert-time-signature-setting", - "rgb-color", - "rh-woodwind-text-stencil", - "rhythm-markup", - "rhythmic-location->file-string", - "rhythmic-location->string", - "rhythmic-location-bar-number", - "rhythmic-location-measure-position", - "rhythmic-location<=?", - "rhythmic-location=?", - "rhythmic-location>?", - "rhythmic-location?", - "rich-bassoon-uber-key-stencil", - "rich-e-stencil", - "rich-group-draw-rule", - "rich-group-extra-offset-rule", - "rich-path-stencil", - "rich-pe-stencil", - "right-align-markup", - "right-brace-markup", - "right-column-markup", - "ring-column-circle-stencil", - "robust-bar-number-function", - "roman-markup", - "rotate-markup", - "rounded-box-markup", - "rounded-box-stencil", - "sans-markup", - "sans-serif-stencil", - "saxophone-lh-T-key-stencil", - "saxophone-lh-b-cis-key-stencil", - "saxophone-lh-b-key-stencil", - "saxophone-lh-bes-key-stencil", - "saxophone-lh-cis-key-stencil", - "saxophone-lh-d-key-stencil", - "saxophone-lh-ees-key-stencil", - "saxophone-lh-f-key-stencil", - "saxophone-lh-front-f-key-stencil", - "saxophone-lh-gis-key-stencil", - "saxophone-lh-low-a-key-stencil", - "saxophone-lh-low-bes-key-stencil", - "saxophone-name-passerelle", - "saxophone-rh-bes-key-stencil", - "saxophone-rh-c-key-stencil", - "saxophone-rh-e-key-stencil", - "saxophone-rh-ees-key-stencil", - "saxophone-rh-fis-key-stencil", - "saxophone-rh-high-fis-key-stencil", - "saxophone-rh-low-c-key-stencil", - "saxophone-rh-side-key-stencil", - "scale->factor", - "scale-beam-thickness", - "scale-by-font-size", - "scale-fontSize", - "scale-layout", - "scale-markup", - "scale-props", - "scale?", - "scheme?", - "scm->string", - "score-lines-markup-list", - "score-markup", - "scorify-music", - "script-interface::calc-x-offset", - "script-or-side-position-cross-staff", - "search-executable", - "seconds->moment", - "segno-markup", - "select-head-glyph", - "select-option", - "self-alignment-interface::self-aligned-on-breakable", - "self-evaluating?", - "semi-tie::calc-cross-staff", - "semiflat-markup", - "semisharp-markup", - "sequential-music-to-chord-exceptions", - "sesquiflat-markup", - "sesquisharp-markup", - "session-replay", - "session-save", - "session-start-record", - "session-terminate", - "set-accidental-style", - "set-bar-number-visibility", - "set-counter-text!", - "set-default-paper-size", - "set-global-fonts", - "set-global-staff-size", - "set-mus-properties!", - "set-output-property", - "set-paper-dimension-variables", - "set-paper-dimensions", - "set-paper-size", - "sharp-markup", - "shift-duration-log", - "shift-octave", - "shift-one-duration-log", - "shift-right-at-line-begin", - "shift-semitone->pitch", - "short-glyph?", - "sign", - "silence-events", - "simple-markup", - "simple-stencil-alist", - "skip->rest", - "skip-as-needed", - "skip-of-length", - "skip-of-moment-span", - "skyline-pair-and-non-empty?", - "skyline-pair::empty?", - "slashed-digit-internal", - "slashed-digit-markup", - "slashify", - "small-markup", - "smallCaps-markup", - "smaller-markup", - "space-lines", - "span-bar::compound-bar-line", - "span-state", - "split-at-predicate", - "split-index", - "split-list", - "split-list-by-separator", - "stack-lines", - "stack-stencil-line", - "stack-stencils", - "stack-stencils-padding-list", - "stack-thirds", - "staff-ellipsis::calc-y-extent", - "staff-ellipsis::print", - "staff-highlight::height", - "staff-highlight::print", - "staff-highlight::width", - "staff-magnification-is-changing?", - "staff-symbol-line-count", - "staff-symbol-line-positions", - "staff-symbol-line-span", - "staff-symbol-y-extent-from-line-positions", - "staff-symbol::calc-widened-extent", - "standard-e-stencil", - "standard-path-stencil", - "stderr", - "stem-connectable?", - "stem-is-root?", - "stem-span-stencil", - "stem-stub::do-calculations", - "stem-stub::extra-spacing-height", - "stem-stub::pure-height", - "stem-stub::width", - "stem-tremolo::calc-tab-width", - "stem::calc-duration-log", - "stem::kievan-offset-callback", - "stencil-fretboard-extent", - "stencil-fretboard-offset", - "stencil-markup", - "stencil-true-extent", - "stencil-whiteout", - "stencil-whiteout-box", - "stencil-whiteout-outline", - "stencil-with-color", - "sticky-grob-interface::inherit-property", - "straight-flag", - "string->string-list", - "string-encode-integer", - "string-endswith", - "string-lines-markup-list", - "string-number::calc-text", - "string-or-music?", - "string-or-pair?", - "string-or-symbol?", - "string-regexp-substitute", - "string-startswith", - "string-thickness", - "strip-string-annotation", - "stroke-finger::calc-text", - "strut-markup", - "style-note-heads", - "sub-markup", - "subtract-base-fret", - "suggest-convert-ly-message", - "super-markup", - "sus-modifier", - "symbol-concatenate", - "symbol-footnotes", - "symbol-key-alist?", - "symbol-keymarkup", + "accidental->markup-italian", + "accidental-interface::calc-alteration", + "accidental-interface::calc-glyph-name", + "accidental-invalid?", + "accidental-markup", + "add-bar-glyph-print-procedure", + "add-font", + "add-grace-property", + "add-music", + "add-music-fonts", + "add-new-clef", + "add-pango-fonts", + "add-point", + "add-quotable", + "add-score", + "add-simple-time-signature-style", + "add-stroke-glyph", + "add-stroke-straight", + "add-text", + "adjust-slash-stencil", + "align-on-other-markup", + "aligned-text-stencil-function", + "alist->hash-table", + "alisttext-accidental-markup", + "alterations-in-key", + "ambitus-line::calc-gap", + "ambitus::print", + "analyse-spanner-states", + "ancestor-lookup-initialize", + "angle-0-2pi", + "angle-0-360", + "annotate-spacing-spec", + "annotate-y-interval", + "any-mmrest-events", + "apply-durations", + "apply-group-draw-rule-series", + "arrow-head-markup", + "arrow-stencil", + "arrow-stencil-maker", + "assemble-stencils", + "assoc-get", + "assoc-keys", + "assoc-values", + "at-bar-line-substitute-caesura-type", + "aug-modifier", + "auto-footnote-markup", + "average", + "b", + "backslashed-digit-markup", + "bar-line::bar-y-extent", + "bar-line::calc-blot", + "bar-line::calc-break-visibility", + "bar-line::calc-glyph-name", + "bar-line::calc-glyph-name-for-direction", + "bar-line::compound-bar-line", + "bar-line::draw-filled-box", + "bar-line::widen-bar-extent-on-span", + "base-length", + "bass-clarinet-rh-ees-key-stencil", + "bassoon-bend-info-maker", + "bassoon-cc-six-key-stencil", + "bassoon-lh-a-flick-key-stencil", + "bassoon-lh-c-flick-key-stencil", + "bassoon-lh-cis-key-stencil", + "bassoon-lh-d-flick-key-stencil", + "bassoon-lh-ees-key-stencil", + "bassoon-lh-he-key-stencil", + "bassoon-lh-hees-key-stencil", + "bassoon-lh-lb-key-stencil", + "bassoon-lh-lbes-key-stencil", + "bassoon-lh-lc-key-stencil", + "bassoon-lh-ld-key-stencil", + "bassoon-lh-lhees-key-stencil", + "bassoon-lh-thumb-cis-key-stencil", + "bassoon-lh-whisper-key-stencil", + "bassoon-midline-rule", + "bassoon-rh-bes-key-stencil", + "bassoon-rh-cis-key-stencil", + "bassoon-rh-f-key-stencil", + "bassoon-rh-fis-key-stencil", + "bassoon-rh-gis-key-stencil", + "bassoon-rh-thumb-bes-key-stencil", + "bassoon-rh-thumb-e-key-stencil", + "bassoon-rh-thumb-fis-key-stencil", + "bassoon-rh-thumb-gis-key-stencil", + "bassoon-uber-key-stencil", + "beam-exceptions", + "beam-markup", + "beam::align-with-broken-parts", + "beam::get-kievan-positions", + "beam::get-kievan-quantized-positions", + "beam::place-broken-parts-individually", + "beam::slope-like-broken-parts", + "beat-grouping-internal", + "beat-structure", + "bend-spanner::print", + "bend::arrow-head-stencil", + "bend::calc-bend-x-begin", + "bend::calc-bend-x-end", + "bend::calc-y-coordinates", + "bend::draw-curves", + "bend::make-line-curve-stencil", + "bend::print", + "bend::remove-certain-tab-note-heads", + "bend::target-cautionary", + "bend::text-stencil", + "bend::text-string", + "bezier-head-for-stencil", + "binary-search", + "bold-markup", + "book-first-page", + "boolean-or-number?", + "boolean-or-symbol?", + "bounding-note-heads-pitches", + "box-grob-stencil", + "box-markup", + "box-stencil", + "bracket-markup", + "bracketify-stencil", + "break-alignable-interface::self-alignment-of-anchor", + "break-alignable-interface::self-alignment-opposite-of-anchor", + "break-alignment-list", + "breathe::midi-length", + "buildflag", + "cached-file-contents", + "caesura-script-interface::before-line-breaking", + "caesura-to-bar-line-or-divisio", + "caesura-to-divisio", + "calc-harmonic-pitch", + "calc-line-thickness", + "calc-repeat-slash-count", + "calculate-complex-compound-time", + "calculate-compound-base-beat", + "calculate-compound-base-beat-full", + "calculate-compound-beat-grouping", + "calculate-compound-measure-length", + "calculate-time-fraction", + "call-after-session", + "caps-markup", + "car-or-identity", + "car<", + "car<=", + "cdr-or-identity", + "center-align-markup", + "center-column-markup", + "centered-spanner-interface::calc-x-offset", + "centered-stencil", + "chain-assoc-get", + "change-pitches", + "char-markup", + "cheap-list?", + "cheap-markup?", + "check-beam-quant", + "check-beam-slope-sign", + "check-broken-spanner", + "check-context-path", + "check-division-alist", + "check-for-annotation", + "check-for-replacement", + "check-grob-path", + "check-music-path", + "check-pitch-against-signature", + "check-quant-callbacks", + "check-slope-callbacks", + "chord-name->german-markup", + "chord-name->italian-markup", + "chord-square::height", + "chord-square::print", + "chord-square::width", + "circle-markup", + "circle-stencil", + "clarinet-lh-R-key-stencil", + "clarinet-lh-a-key-stencil", + "clarinet-lh-cis-key-stencil", + "clarinet-lh-d-key-stencil", + "clarinet-lh-e-key-stencil", + "clarinet-lh-ees-key-stencil", + "clarinet-lh-f-key-stencil", + "clarinet-lh-fis-key-stencil", + "clarinet-lh-gis-key-stencil", + "clarinet-lh-thumb-key-stencil", + "clarinet-rh-b-key-stencil", + "clarinet-rh-d-key-stencil", + "clarinet-rh-e-key-stencil", + "clarinet-rh-f-key-stencil", + "clarinet-rh-fis-key-stencil", + "clarinet-rh-four-key-stencil", + "clarinet-rh-gis-key-stencil", + "clarinet-rh-low-c-key-stencil", + "clarinet-rh-low-cis-key-stencil", + "clarinet-rh-low-d-key-stencil", + "clarinet-rh-one-key-stencil", + "clarinet-rh-three-key-stencil", + "clarinet-rh-two-key-stencil", + "clef-transposition-markup", + "clef::print-modern-tab-if-set", + "clip-systems-to-region-stencils", + "clipped-systems-stencils", + "close-enough?", + "close-port-rename", + "coda-markup", + "collect-book-music-for-book", + "collect-bookpart-for-book", + "collect-music-aux", + "collect-music-for-book", + "collect-scores-for-book", + "color?", + "column-circle-stencil", + "column-lines-markup-list", + "column-markup", + "combine-markup", + "comparable-note-events", + "comparator-from-key", + "compile-all-markup-args", + "compile-all-markup-expressions", + "compile-markup-arg", + "compile-markup-expression", + "completize-formats", + "completize-grob-entry", + "compound-meter-markup", + "concat-markup", + "conditional-kern-before", + "conditional-string-capitalize", + "conditional-trill-markup-markup", + "configuration", + "cons-fret", + "constante-hairpin", + "construct-chord-elements", + "context-defs-from-music", + "context-mod-from-music", + "context-spec-music", + "control-point::calc-offset", + "control-polygon::calc-text", + "coord-axis", + "coord-rotate", + "coord-rotated", + "coord-scale", + "coord-translate", + "coord-x", + "coord-y", + "copy-binary-file", + "copy-repeat-chord", + "count-list", + "create-file-exclusive", + "create-fretboard", + "create-glyph-flag", + "cross-staff-connect", + "css-color", + "cue-substitute", + "current-or-previous-voice-states", + "customTabClef-markup", + "cyclic-base-value", + "debugf", + "def-grace-function", + "default-auto-beam-check", + "default-flag", + "default-paren-color", + "define-bar-line", + "define-event-class", + "define-event-function", + "define-fonts", + "define-grob-property", + "define-internal-grob-property", + "define-markup-command", + "define-markup-command-internal", + "define-markup-list-command", + "define-music-function", + "define-scheme-function", + "define-session", + "define-session-public", + "define-syntax-function", + "define-syntax-public", + "define-syntax-rule-public", + "define-tag-group", + "define-void-function", + "degree-first-true", + "degrees->radians", + "descend-to-context", + "determine-frets", + "determine-split-list", + "determine-string-fret-finger", + "dim-modifier", + "dimension-arrows", + "dir-basename", + "dir-column-markup", + "display-lily-music", + "display-music", + "display-scheme-music", + "dodecaphonic-no-repeat-rule", + "done?", + "dot-column-interface::pad-by-one-dot-width", + "dot-has-color", + "dot-is-inverted", + "dot-is-parenthesized", + "dots::calc-dot-count", + "dots::calc-dot-stencil", + "dots::calc-glyph-name", + "dots::calc-staff-position", + "doubleflat-markup", + "doublesharp-markup", + "draw-circle-markup", + "draw-dashed-line-markup", + "draw-dotted-line-markup", + "draw-hline-markup", + "draw-line-markup", + "draw-squiggle-line-markup", + "dump-zombies", + "duration", + "duration-dot-factor", + "duration-length", + "duration-line::calc", + "duration-line::calc-thickness", + "duration-line::print", + "duration-log-factor", + "duration-of-note", + "duration-or-music?", + "duration-visual", + "duration-visual-length", + "dynamic-markup", + "dynamic-text-spanner::before-line-breaking", + "elbowed-hairpin", + "ellipse-markup", + "ellipse-radius", + "ellipse-stencil", + "empty-music", + "end-broken-spanner?", + "entry-greater-than-x?", + "eps-file->stencil", + "epsfile-markup", + "eval-carefully", + "event-cause", + "event-chord-notes", + "event-chord-pitches", + "event-chord-reduce", + "event-chord-wrap!", + "event-class-cons", + "event-has-articulation?", + "events", + "every-nth-bar-number-visible", + "every-nth-repeat-count-visible", + "exact-rational?", + "expand-repeat-chords!", + "expand-repeat-notes!", + "extent-combine", + "extract-alteration", + "extract-beam-exceptions", + "extract-music", + "extract-named-music", + "extract-typed-music", + "eyeglasses-markup", + "fermata-markup", + "figured-bass-markup", + "fill-line-markup", + "fill-with-pattern-markup", + "filled-box-markup", + "find-named-props", + "find-pitch-entry", + "find-value-to-offset", + "finger-glide::print", + "finger-markup", + "fingering::calc-text", + "first-assoc", + "first-bar-number-invisible", + "first-bar-number-invisible-and-no-parenthesized-bar-numbers", + "first-bar-number-invisible-save-broken-bars", + "first-broken-spanner?", + "first-member", + "first-visible-markup", + "flared-hairpin", + "flat-flag", + "flat-markup", + "flatten-alist", + "flatten-list", + "flip-stencil", + "flute-lh-b-key-stencil", + "flute-lh-bes-key-stencil", + "flute-lh-gis-key-stencil", + "flute-lh-gis-rh-bes-key-stencil", + "flute-rh-b-key-stencil", + "flute-rh-bes-key-stencil", + "flute-rh-c-key-stencil", + "flute-rh-cis-key-stencil", + "flute-rh-d-key-stencil", + "flute-rh-dis-key-stencil", + "flute-rh-ees-key-stencil", + "flute-rh-gz-key-stencil", + "fold-some-music", + "font-children", + "font-default", + "font-name-split", + "font-name-style", + "font-qualifier", + "fontCaps-markup", + "fontsize-markup", + "footnote-markup", + "for-some-music", + "forced-configuration", + "format", + "format-bass-figure", + "format-coda-mark", + "format-compound-time", + "format-dal-segno-text", + "format-dal-segno-text-brief", + "format-mark-alphabet", + "format-mark-barnumbers", + "format-mark-box-alphabet", + "format-mark-box-barnumbers", + "format-mark-box-letters", + "format-mark-box-numbers", + "format-mark-circle-alphabet", + "format-mark-circle-barnumbers", + "format-mark-circle-letters", + "format-mark-circle-numbers", + "format-mark-generic", + "format-mark-letters", + "format-mark-numbers", + "format-metronome-markup", + "format-segno-mark", + "format-segno-mark-considering-bar-lines", + "format-sign-with-number", + "format-time-element", + "format-time-fraction", + "format-time-list", + "format-time-numerator", + "format-varcoda-mark", + "fraction->moment", + "fraction-markup", + "fraction?", + "fret->pitch", + "fret-board::calc-stencil", + "fret-count", + "fret-diagram-markup", + "fret-diagram-terse-markup", + "fret-diagram-verbose-markup", + "fret-letter-tablature-format", + "fret-number-tablature-format", + "fret-number-tablature-format-banjo", + "fret-parse-definition-string", + "fret-parse-marking-list", + "fret-parse-terse-definition-string", + "fromproperty-markup", + "function-chain", + "g", + "g-lookup-font", + "general-align-markup", + "general-column", + "generate-bassoon-family-entry", + "generate-clarinet-family-entry", + "generate-crop-stencil", + "generate-flute-family-entry", + "generate-oboe-family-entry", + "generate-preview-stencil", + "generate-saxophone-family-entry", + "generate-system-stencils", + "generate-tin-whistle-family-entry", + "get-bound-note-heads", + "get-chord-shape", + "get-current-filename", + "get-current-suffix", + "get-fill-space", + "get-key", + "get-named-spreadsheet-column", + "get-next-unique-voice-name", + "get-numeric-from-key", + "get-outfile-name", + "get-postscript-bbox", + "get-quarter-diffs", + "get-setting", + "get-slope-offset", + "get-span-glyph", + "get-spreadsheet-column", + "get-step", + "get-sub-list", + "get-top-most-tab-head", + "get-tweakable-music", + "get-woodwind-key-list", + "glissando::calc-tab-extra-dy", + "glissando::draw-tab-glissando", + "glyph->stencil", + "glyph-flag", + "grace-spacing::calc-shortest-duration", + "gray-colorize", + "grid-chord-name::calc-X-offset", + "grid-chord-name::calc-Y-offset", + "grid-chord-name::calc-offset-on-axis", + "grob-interpret-markup", + "grob-list?", + "grob-transformer", + "grob::all-objects", + "grob::calc-property-by-copy", + "grob::compose-function", + "grob::display-objects", + "grob::has-interface", + "grob::inherit-parent-property", + "grob::is-live?", + "grob::name", + "grob::objects-from-interface", + "grob::offset-function", + "grob::relay-other-property", + "grob::rhythmic-location", + "grob::show-skylines-if-debug-skylines-set", + "grob::unpure-Y-extent-from-stencil", + "grob::when", + "group-automate-rule", + "group-draw-rule", + "group-extra-offset-rule", + "gs-cmd-args", + "gs-safe-run", + "hairpin::calc-grow-direction", + "halign-markup", + "harp-pedal-check", + "harp-pedal-info", + "harp-pedal-markup", + "harp-pedals-parse-string", + "has-at-least-two?", + "has-one-or-less?", + "hash-table->alist", + "hbracket-markup", + "hcenter-in-markup", + "header-to-file", + "headers-property-alist-chain", + "hook-stencil", + "horizontal-slash-interval", + "hspace-markup", + "huge-markup", + "if-markup", + "ignatzek-chord-names", + "index-cell", + "index-or-markup?", + "index?", + "insert-markups", + "internal-set-paper-size", + "interpret-markup", + "interpret-markup-list", + "interval-bound", + "interval-center", + "interval-contains?", + "interval-empty?", + "interval-end", + "interval-index", + "interval-intersection", + "interval-length", + "interval-sane?", + "interval-scale", + "interval-start", + "interval-union", + "interval-widen", + "invalidate-alterations", + "inverter-factory", + "is-absolute?", + "is-square?", + "italic-markup", + "item::extra-spacing-height-including-staff", + "justified-lines-markup-list", + "justify-field-markup", + "justify-line-helper", + "justify-line-markup", + "justify-markup", + "justify-string-markup", + "key-crawler", + "key-entry-alteration", + "key-entry-bar-number", + "key-entry-end-mom", + "key-entry-notename", + "key-entry-octave", + "key-fill-translate", + "key-list-or-music?", + "key-list-or-symbol?", + "key-list?", + "key-signature-interface::alteration-position", + "key-signature-interface::alteration-positions", + "key?", + "keyword->make-markup", + "large-markup", + "larger-markup", + "layout-blot-diameter", + "layout-extract-page-properties", + "layout-line-thickness", + "layout-set-absolute-staff-size", + "layout-set-absolute-staff-size-in-module", + "layout-set-staff-size", + "left-align-markup", + "left-brace-markup", + "left-column-markup", + "lexicographic-list-compare?", + "lh-woodwind-text-stencil", + "lilypond-all", + "lilypond-file", + "lilypond-main", + "lilypond-version", + "lilypond-version-outdated?", + "line-markup", + "list-all-possible-keys", + "list-all-possible-keys-verbose", + "list-element-index", + "list-insert-separator", + "list-join", + "listener->once-listener", + "little-elliptical-key-stencil", + "long-midline-stencil", + "lookup-font", + "lookup-markup", + "lookup-markup-command", + "lookup-markup-command-aux", + "lookup-markup-list-command", + "lookup-paper-name", + "low-bass-clarinet-rh-ees-key-stencil", + "lower-markup", + "ly-getcwd", + "ly-type?", + "ly:accidental-interface::height", + "ly:accidental-interface::horizontal-skylines", + "ly:accidental-interface::print", + "ly:accidental-interface::remove-tied", + "ly:accidental-placement::calc-positioning-done", + "ly:add-context-mod", + "ly:add-interface", + "ly:add-listener", + "ly:add-option", + "ly:align-interface::align-to-ideal-distances", + "ly:align-interface::align-to-minimum-distances", + "ly:all-grob-interfaces", + "ly:all-options", + "ly:all-output-backend-commands", + "ly:all-stencil-commands", + "ly:all-stencil-expressions", + "ly:alternative-sequence-iterator::constructor", + "ly:angle", + "ly:apply-context-iterator::constructor", + "ly:arpeggio::brew-chord-bracket", + "ly:arpeggio::brew-chord-slur", + "ly:arpeggio::calc-cross-staff", + "ly:arpeggio::calc-positions", + "ly:arpeggio::print", + "ly:arpeggio::pure-height", + "ly:arpeggio::width", + "ly:assoc-get", + "ly:axis-group-interface::add-element", + "ly:axis-group-interface::adjacent-pure-heights", + "ly:axis-group-interface::calc-pure-relevant-grobs", + "ly:axis-group-interface::calc-pure-staff-staff-spacing", + "ly:axis-group-interface::calc-pure-y-common", + "ly:axis-group-interface::calc-skylines", + "ly:axis-group-interface::calc-staff-staff-spacing", + "ly:axis-group-interface::calc-x-common", + "ly:axis-group-interface::calc-y-common", + "ly:axis-group-interface::combine-skylines", + "ly:axis-group-interface::height", + "ly:axis-group-interface::pure-height", + "ly:axis-group-interface::width", + "ly:balloon-interface::print", + "ly:balloon-interface::pure-height", + "ly:balloon-interface::remove-irrelevant-spanner", + "ly:balloon-interface::width", + "ly:bar-check-iterator::constructor", + "ly:bar-line::calc-anchor", + "ly:bar-line::calc-bar-extent", + "ly:bar-line::print", + "ly:basic-progress", + "ly:beam::calc-beam-segments", + "ly:beam::calc-beaming", + "ly:beam::calc-cross-staff", + "ly:beam::calc-direction", + "ly:beam::calc-normal-stems", + "ly:beam::calc-stem-shorten", + "ly:beam::calc-x-positions", + "ly:beam::print", + "ly:beam::pure-rest-collision-callback", + "ly:beam::quanting", + "ly:beam::rest-collision-callback", + "ly:beam::set-stem-lengths", + "ly:bezier-extent", + "ly:bezier-extract", + "ly:book-add-bookpart!", + "ly:book-add-score!", + "ly:book-book-parts", + "ly:book-header", + "ly:book-paper", + "ly:book-process", + "ly:book-process-to-systems", + "ly:book-scores", + "ly:book-set-header!", + "ly:book?", + "ly:bp", + "ly:bracket", + "ly:break-alignable-interface::find-parent", + "ly:break-alignable-interface::self-align-callback", + "ly:break-aligned-interface::calc-average-anchor", + "ly:break-aligned-interface::calc-break-visibility", + "ly:break-aligned-interface::calc-extent-aligned-anchor", + "ly:break-aligned-interface::calc-joint-anchor-alignment", + "ly:break-alignment-interface::calc-positioning-done", + "ly:break-alignment-interface::find-nonempty-break-align-group", + "ly:breathing-sign::divisio-maior", + "ly:breathing-sign::divisio-maxima", + "ly:breathing-sign::divisio-minima", + "ly:breathing-sign::finalis", + "ly:breathing-sign::offset-callback", + "ly:breathing-sign::set-breath-properties", + "ly:broadcast", + "ly:cairo-output-stencil", + "ly:cairo-output-stencils", + "ly:calculated-sequential-music::length", + "ly:calculated-sequential-music::start", + "ly:camel-case->lisp-identifier", + "ly:chain-assoc-get", + "ly:change-iterator::constructor", + "ly:check-expected-warnings", + "ly:chord-name::after-line-breaking", + "ly:clef-modifier::calc-parent-alignment", + "ly:clef::calc-glyph-name", + "ly:clef::print", + "ly:cluster-beacon::height", + "ly:cluster::calc-cross-staff", + "ly:cluster::print", + "ly:cm", + "ly:command-line-code", + "ly:command-line-options", + "ly:connect-dispatchers", + "ly:context-current-moment", + "ly:context-def-lookup", + "ly:context-def-modify", + "ly:context-def?", + "ly:context-event-source", + "ly:context-events-below", + "ly:context-find", + "ly:context-grob-definition", + "ly:context-id", + "ly:context-matched-pop-property", + "ly:context-mod-apply!", + "ly:context-mod?", + "ly:context-name", + "ly:context-output-def", + "ly:context-parent", + "ly:context-property", + "ly:context-property-where-defined", + "ly:context-pushpop-property", + "ly:context-set-property!", + "ly:context-specced-music-iterator::constructor", + "ly:context-unset-property", + "ly:context?", + "ly:custos::print", + "ly:debug", + "ly:default-scale", + "ly:dimension?", + "ly:dir?", + "ly:directed", + "ly:disconnect-dispatchers", + "ly:dispatcher?", + "ly:dot-column::calc-positioning-done", + "ly:dots::print", + "ly:duration->string", + "ly:duration-compress", + "ly:duration-dot-count", + "ly:duration-factor", + "ly:duration-length", + "ly:duration-log", + "ly:duration-scale", + "ly:duration::less?", + "ly:durationlist", + "ly:grob-array-length", + "ly:grob-array-ref", + "ly:grob-array?", + "ly:grob-basic-properties", + "ly:grob-chain-callback", + "ly:grob-common-refpoint", + "ly:grob-common-refpoint-of-array", + "ly:grob-default-font", + "ly:grob-extent", + "ly:grob-get-vertical-axis-group-index", + "ly:grob-interfaces", + "ly:grob-layout", + "ly:grob-list->grob-array", + "ly:grob-object", + "ly:grob-original", + "ly:grob-parent", + "ly:grob-pqoffsets", + "ly:listened-event-class?", + "ly:listened-event-types", + "ly:listener?", + "ly:load", + "ly:lyric-combine-music-iterator::constructor", + "ly:lyric-combine-music::length-callback", + "ly:lyric-extender::print", + "ly:lyric-hyphen::print", + "ly:lyric-hyphen::set-spacing-rods", + "ly:make-book", + "ly:make-book-part", + "ly:make-context-mod", + "ly:make-dispatcher", + "ly:make-duration", + "ly:make-event-class", + "ly:make-global-context", + "ly:make-global-translator", + "ly:make-grob-properties", + "ly:make-listener", + "ly:make-moment", + "ly:make-music", + "ly:make-music-function", + "ly:make-music-relative!", + "ly:make-output-def", + "ly:make-page-label-marker", + "ly:make-page-permission-marker", + "ly:make-pango-description-string", + "ly:make-paper-outputter", + "ly:make-pitch", + "ly:make-prob", + "ly:make-rotation", + "ly:make-scale", + "ly:make-scaling", + "ly:make-score", + "ly:make-skyline", + "ly:make-spring", + "ly:make-stencil", + "ly:make-stream-event", + "ly:make-transform", + "ly:make-translation", + "ly:make-unpure-pure-container", + "ly:measure-grouping::print", + "ly:measure-spanner::calc-connect-to-neighbors", + "ly:measure-spanner::print", + "ly:melody-spanner::calc-neutral-stem-direction", + "ly:mensural-ligature::brew-ligature-primitive", + "ly:mensural-ligature::print", + "ly:message", + "ly:minimal-breaking", + "ly:mm", + "ly:module->alist", + "ly:module-copy", + "ly:modules-lookup", + "ly:moment-add", + "ly:moment-div", + "ly:moment-grace", + "ly:moment-grace-denominator", + "ly:moment-grace-numerator", + "ly:moment-main", + "ly:moment-main-denominator", + "ly:moment-main-numerator", + "ly:moment-mod", + "ly:moment-mul", + "ly:moment-sub", + "ly:momentstring", + "ly:number-pair->string", + "ly:one-line-auto-height-breaking", + "ly:one-line-breaking", + "ly:one-page-breaking", + "ly:optimal-breaking", + "ly:option-usage", + "ly:otf->cff", + "ly:otf-font-glyph-info", + "ly:otf-font-table-data", + "ly:otf-font?", + "ly:otf-glyph-count", + "ly:otf-glyph-list", + "ly:ottava-bracket::print", + "ly:output-def-clone", + "ly:output-def-lookup", + "ly:output-def-parent", + "ly:output-def-scope", + "ly:output-def-set-variable!", + "ly:output-def?", + "ly:output-description", + "ly:output-find-context-def", + "ly:outputter-close", + "ly:outputter-dump-stencil", + "ly:outputter-dump-string", + "ly:outputter-output-scheme", + "ly:outputter-port", + "ly:page-marker?", + "ly:page-turn-breaking", + "ly:pango-font-physical-fonts", + "ly:pango-font?", + "ly:paper-book-header", + "ly:paper-book-pages", + "ly:paper-book-paper", + "ly:paper-book-performances", + "ly:paper-book-scopes", + "ly:paper-book-systems", + "ly:paper-book?", + "ly:paper-column::break-align-width", + "ly:paper-column::print", + "ly:paper-fonts", + "ly:paper-get-font", + "ly:paper-get-number", + "ly:paper-outputscale", + "ly:paper-score-paper-systems", + "ly:paper-system-minimum-distance", + "ly:paper-system?", + "ly:parse-file", + "ly:parse-init", + "ly:parse-string-expression", + "ly:parsed-undead-list!", + "ly:parser-clear-error", + "ly:parser-clone", + "ly:parser-define!", + "ly:parser-error", + "ly:parser-has-error?", + "ly:parser-include-string", + "ly:parser-lookup", + "ly:parser-output-name", + "ly:parser-parse-string", + "ly:parser-set-note-names", + "ly:part-combine-iterator::constructor", + "ly:partial-iterator::constructor", + "ly:partial-iterator::finalization", + "ly:percent-repeat-interface::beat-slash", + "ly:percent-repeat-interface::double-percent", + "ly:percent-repeat-interface::percent", + "ly:percent-repeat-iterator::constructor", + "ly:perform-text-replacements", + "ly:performance-headers", + "ly:performance-write", + "ly:piano-pedal-bracket::print", + "ly:pitch-alteration", + "ly:pitch-diff", + "ly:pitch-negate", + "ly:pitch-notename", + "ly:pitch-octave", + "ly:pitch-quartertones", + "ly:pitch-semitones", + "ly:pitch-steps", + "ly:pitch-tones", + "ly:pitch-transpose", + "ly:pitch::less?", + "ly:pitchpoints", + "ly:skyline-distance", + "ly:skyline-empty?", + "ly:skyline-height", + "ly:skyline-max-height", + "ly:skyline-max-height-position", + "ly:skyline-merge", + "ly:skyline-pad", + "ly:skyline-pair?", + "ly:skyline-touching-point", + "ly:skyline?", + "ly:skylines-for-stencil", + "ly:slur::calc-control-points", + "ly:slur::calc-cross-staff", + "ly:slur::calc-direction", + "ly:slur::height", + "ly:slur::outside-slur-callback", + "ly:slur::outside-slur-cross-staff", + "ly:slur::print", + "ly:slur::pure-height", + "ly:slur::pure-outside-slur-callback", + "ly:smob-protects", + "ly:solve-spring-rod-problem", + "ly:source-file?", + "ly:source-files", + "ly:spacing-spanner::calc-common-shortest-duration", + "ly:spacing-spanner::set-springs", + "ly:span-bar::before-line-breaking", + "ly:span-bar::calc-anchor", + "ly:span-bar::calc-glyph-name", + "ly:span-bar::choose-model-bar-line", + "ly:span-bar::print", + "ly:span-bar::width", + "ly:spanner-bound", + "ly:spanner-broken-into", + "ly:spanner-set-bound!", + "ly:spanner::bounds-width", + "ly:spanner::calc-normalized-endpoints", + "ly:spanner::kill-zero-spanned-time", + "ly:spanner::set-spacing-rods", + "ly:spanner?", + "ly:spawn", + "ly:spring-set-inverse-compress-strength!", + "ly:spring-set-inverse-stretch-strength!", + "ly:spring?", + "ly:staff-symbol-line-thickness", + "ly:staff-symbol-referencer::callback", + "ly:staff-symbol-staff-radius", + "ly:staff-symbol-staff-space", + "ly:staff-symbol::height", + "ly:staff-symbol::print", + "ly:stderr-redirect", + "ly:stem-tremolo::calc-cross-staff", + "ly:stem-tremolo::calc-direction", + "ly:stem-tremolo::calc-shape", + "ly:stem-tremolo::calc-slope", + "ly:stem-tremolo::calc-width", + "ly:stem-tremolo::calc-y-offset", + "ly:stem-tremolo::print", + "ly:stem-tremolo::pure-calc-y-offset", + "ly:stem-tremolo::pure-height", + "ly:stem-tremolo::width", + "ly:stem::calc-cross-staff", + "ly:stem::calc-default-direction", + "ly:stem::calc-direction", + "ly:stem::calc-length", + "ly:stem::calc-positioning-done", + "ly:stem::calc-stem-begin-position", + "ly:stem::calc-stem-end-position", + "ly:stem::calc-stem-info", + "ly:stem::height", + "ly:stem::offset-callback", + "ly:stem::print", + "ly:stem::pure-calc-length", + "ly:stem::pure-calc-stem-begin-position", + "ly:stem::pure-calc-stem-end-position", + "ly:stem::pure-height", + "ly:stem::width", + "ly:stencil-add", + "ly:stencil-aligned-to", + "ly:stencil-combine-at-edge", + "ly:stencil-empty?", + "ly:stencil-expr", + "ly:stencil-extent", + "ly:stencil-in-color", + "ly:stencil-outline", + "ly:stencil-rotate", + "ly:stencil-rotate-absolute", + "ly:stencil-scale", + "ly:stencil-stack", + "ly:stencil-translate", + "ly:stencil-translate-axis", + "ly:stencil?", + "ly:stream-event?", + "ly:string-percent-encode", + "ly:string-substitute", + "ly:sustain-pedal::print", + "ly:system", + "ly:system-font-load", + "ly:system-start-delimiter::print", + "ly:system::calc-pure-height", + "ly:system::calc-pure-relevant-grobs", + "ly:system::footnotes-after-line-breaking", + "ly:system::footnotes-before-line-breaking", + "ly:system::get-nonspaceable-staves", + "ly:system::get-spaceable-staves", + "ly:system::get-staves", + "ly:system::get-vertical-alignment", + "ly:system::height", + "ly:system::vertical-skyline-elements", + "ly:text-interface::interpret-markup", + "ly:text-interface::interpret-string", + "ly:text-interface::print", + "ly:tie-column::before-line-breaking", + "ly:tie-column::calc-positioning-done", + "ly:tie::calc-control-points", + "ly:tie::calc-direction", + "ly:tie::print", + "ly:time-signature::print", + "ly:transform->list", + "ly:transform?", + "ly:translate-cpp-warning-scheme", + "ly:translator-context", + "ly:translator-description", + "ly:translator-group?", + "ly:translator-name", + "ly:translator?", + "ly:transpose-key-alist", + "ly:ttf->pfa", + "ly:ttf-ps-name", + "ly:tuplet-bracket::calc-connect-to-neighbors", + "ly:tuplet-bracket::calc-cross-staff", + "ly:tuplet-bracket::calc-direction", + "ly:tuplet-bracket::calc-positions", + "ly:tuplet-bracket::calc-x-positions", + "ly:tuplet-bracket::print", + "ly:tuplet-iterator::constructor", + "ly:tuplet-number::calc-cross-staff", + "ly:tuplet-number::calc-x-offset", + "ly:tuplet-number::calc-y-offset", + "ly:tuplet-number::print", + "ly:type1->pfa", + "ly:unit", + "ly:unpure-call", + "ly:unpure-pure-container-pure-part", + "ly:unpure-pure-container-unpure-part", + "ly:unpure-pure-container?", + "ly:usage", + "ly:vaticana-ligature::brew-ligature-primitive", + "ly:vaticana-ligature::print", + "ly:verbose-output?", + "ly:version", + "ly:version?", + "ly:volta-bracket-interface::print", + "ly:volta-bracket::calc-shorten-pair", + "ly:volta-repeat-iterator::constructor", + "ly:volta-specced-music-iterator::constructor", + "ly:vowel-transition::set-spacing-rods", + "ly:warning", + "ly:warning-located", + "ly:wide-char->utf-8", + "lyric-hyphen::vaticana-style", + "lyric-text::print", + "magnification->font-size", + "magnify-markup", + "magnifyStaff-is-set?", + "magstep", + "maj7-modifier", + "make-abs-fontsize-markup", + "make-accidental-dodecaphonic-rule", + "make-accidental-markup", + "make-accidental-rule", + "make-align-on-other-markup", + "make-apply-context", + "make-arrow-head-markup", + "make-articulation", + "make-auto-footnote-markup", + "make-autochange-music", + "make-backslashed-digit-markup", + "make-beam-markup", + "make-bezier-sandwich-stencil", + "make-bold-markup", + "make-bow-stencil", + "make-box-markup", + "make-bracket-bar-line", + "make-bracket-markup", + "make-c-time-signature-markup", + "make-caps-markup", + "make-center-align-markup", + "make-center-column-markup", + "make-central-column-hole-addresses", + "make-char-markup", + "make-chord-elements", + "make-circle-markup", + "make-circle-stencil", + "make-clef-set", + "make-coda-markup", + "make-colon-bar-line", + "make-color-handler", + "make-column-lines-markup-list", + "make-column-markup", + "make-combine-markup", + "make-compound-meter-markup", + "make-concat-markup", + "make-conditional-trill-markup-markup", + "make-connected-line", + "make-connected-path-stencil", + "make-cue-clef-set", + "make-cue-clef-unset", + "make-customTabClef-markup", + "make-dashed-bar-line", + "make-default-fonts-tree", + "make-dir-column-markup", + "make-dotted-bar-line", + "make-doubleflat-markup", + "make-doublesharp-markup", + "make-draw-circle-markup", + "make-draw-dashed-line-markup", + "make-draw-dotted-line-markup", + "make-draw-hline-markup", + "make-draw-line-markup", + "make-draw-squiggle-line-markup", + "make-duration-of-length", + "make-dynamic-markup", + "make-ellipse-markup", + "make-ellipse-stencil", + "make-empty-bar-line", + "make-engraver", + "make-epsfile-markup", + "make-event-chord", + "make-extended-scale", + "make-eyeglasses-markup", + "make-fermata-markup", + "make-figured-bass-markup", + "make-fill-line-markup", + "make-fill-with-pattern-markup", + "make-filled-box-markup", + "make-filled-box-stencil", + "make-finger-markup", + "make-first-visible-markup", + "make-flat-markup", + "make-font-tree-leaf", + "make-font-tree-node", + "make-fontCaps-markup", + "make-fontsize-markup", + "make-footnote-markup", + "make-fraction-markup", + "make-fret-diagram", + "make-fret-diagram-markup", + "make-fret-diagram-terse-markup", + "make-fret-diagram-verbose-markup", + "make-fromproperty-markup", + "make-general-align-markup", + "make-glyph-time-signature-markup", + "make-grace-music", + "make-graceless-rhythmic-location", + "make-grob-property-override", + "make-grob-property-revert", + "make-grob-property-set", + "make-halign-markup", + "make-harmonic", + "make-harp-pedal-markup", + "make-hbracket-markup", + "make-hcenter-in-markup", + "make-hspace-markup", + "make-huge-markup", + "make-if-markup", + "make-italic-markup", + "make-justified-lines-markup-list", + "make-justify-field-markup", + "make-justify-line-markup", + "make-justify-markup", + "make-justify-string-markup", + "make-key-alist", + "make-key-symbols", + "make-kievan-bar-line", + "make-large-markup", + "make-larger-markup", + "make-left-align-markup", + "make-left-brace-markup", + "make-left-column-markup", + "make-left-hand-key-addresses", + "make-line-markup", + "make-line-stencil", + "make-lookup-markup", + "make-lower-markup", + "make-lyric-event", + "make-lyric-repeat-count-formatter", + "make-magnify-markup", + "make-map-markup-commands-markup-list", + "make-markalphabet-markup", + "make-markletter-markup", + "make-markup", + "make-medium-markup", + "make-modal-inverter", + "make-modal-transposer", + "make-multi-measure-rest", + "make-multi-measure-rest-by-number-markup", + "make-music", + "make-musicglyph-markup", + "make-name-keylist", + "make-named-spreadsheet", + "make-natural-markup", + "make-no-bar-line", + "make-non-relative-music", + "make-normal-size-sub-markup", + "make-normal-size-super-markup", + "make-normal-text-markup", + "make-normalsize-markup", + "make-note-by-number-markup", + "make-note-markup", + "make-null-markup", + "make-number-keylist", + "make-number-markup", + "make-on-the-fly-markup", + "make-oval-markup", + "make-oval-stencil", + "make-overlay-markup", + "make-override-lines-markup-list", + "make-override-markup", + "make-overtie-markup", + "make-pad-around-markup", + "make-pad-markup-markup", + "make-pad-to-box-markup", + "make-pad-x-markup", + "make-page-link-markup", + "make-page-ref-markup", + "make-pango-font-tree", + "make-parenthesis-stencil", + "make-parenthesize-markup", + "make-part-combine-context-changes", + "make-part-combine-marks", + "make-partial-ellipse-stencil", + "make-path-markup", + "make-path-stencil", + "make-pattern-markup", + "make-percent-set", + "make-performer", + "make-polygon-markup", + "make-postscript-markup", + "make-property-recursive-markup", + "make-property-set", + "make-property-unset", + "make-put-adjacent-markup", + "make-raise-markup", + "make-relative", + "make-relative::to-relative-callback", + "make-repeat", + "make-replace-markup", + "make-rest-by-number-markup", + "make-rest-markup", + "make-rhythm-markup", + "make-rhythmic-location", + "make-right-align-markup", + "make-right-brace-markup", + "make-right-column-markup", + "make-right-hand-key-addresses", + "make-roman-markup", + "make-rotate-markup", + "make-rounded-box-markup", + "make-sans-markup", + "make-scale", + "make-scale-markup", + "make-score-lines-markup-list", + "make-score-markup", + "make-segno-bar-line", + "make-segno-markup", + "make-semiflat-markup", + "make-semisharp-markup", + "make-semitone->pitch", + "make-sequential-music", + "make-sesquiflat-markup", + "make-sesquisharp-markup", + "make-session-variable", + "make-setting", + "make-sharp-markup", + "make-short-bar-line", + "make-simple-bar-line", + "make-simple-markup", + "make-simultaneous-music", + "make-skip-music", + "make-skipped", + "make-slashed-digit-markup", + "make-small-markup", + "make-smallCaps-markup", + "make-smaller-markup", + "make-spacer-bar-line", + "make-span-event", + "make-split-state", + "make-spreadsheet", + "make-stem-span!", + "make-stem-spans!", + "make-stencil-boxer", + "make-stencil-circler", + "make-stencil-markup", + "make-string-lines-markup-list", + "make-strut-markup", + "make-sub-markup", + "make-super-markup", + "make-symbol-alist", + "make-tab-heads-transparent", + "make-table-markup-list", + "make-teeny-markup", + "make-text-markup", + "make-thick-bar-line", + "make-tick-bar-line", + "make-tie-markup", + "make-tie-stencil", + "make-tied-lyric-markup", + "make-tilted-portion", + "make-time-signature-set", + "make-tiny-markup", + "make-tmpfile", + "make-translate-markup", + "make-translate-scaled-markup", + "make-translator", + "make-translator-component", + "make-translator-internal", + "make-transparent-box-stencil", + "make-transparent-markup", + "make-tremolo-set", + "make-triangle-markup", + "make-type-checker", + "make-typewriter-markup", + "make-underline-markup", + "make-undertie-markup", + "make-unfolded-set", + "make-unless-markup", + "make-upright-markup", + "make-varcoda-markup", + "make-vcenter-markup", + "make-verbatim-file-markup", + "make-voice-props-override", + "make-voice-props-revert", + "make-voice-props-set", + "make-voice-states", + "make-volta-set", + "make-vspace-markup", + "make-whiteout-markup", + "make-with-color-markup", + "make-with-dimension-from-markup", + "make-with-dimension-markup", + "make-with-dimensions-from-markup", + "make-with-dimensions-markup", + "make-with-link-markup", + "make-with-outline-markup", + "make-with-string-transformer-markup", + "make-with-true-dimension-markup", + "make-with-true-dimensions-markup", + "make-with-url-markup", + "make-woodwind-diagram-markup", + "make-wordwrap-field-markup", + "make-wordwrap-internal-markup-list", + "make-wordwrap-lines-markup-list", + "make-wordwrap-markup", + "make-wordwrap-string-internal-markup-list", + "make-wordwrap-string-markup", + "map-alist-keys", + "map-alist-vals", + "map-markup-commands-markup-list", + "map-selected-alist-keys", + "map-some-music", + "markalphabet-markup", + "marked-up-headfoot", + "marked-up-title", + "markgeneric-string", + "markletter-markup", + "markup", + "markup->string", + "markup-argument-list-error", + "markup-argument-list?", + "markup-command-list?", + "markup-command-signature", + "markup-default-to-string-method", + "markup-expression->make-markup", + "markup-function-as-string-method", + "markup-function-category", + "markup-function-properties", + "markup-function?", + "markup-join", + "markup-lambda", + "markup-lambda-listify", + "markup-lambda-worker", + "markup-list-function?", + "markup-list-lambda", + "markup-list?", + "markup-thrower-typecheck", + "markup-typecheck?", + "markup?", + "match-predicate", + "measure-counter::text", + "medium-markup", + "mensural-flag", + "merge-details", + "metronome-markup", + "middle-broken-spanner?", + "midi-program", + "midline-stencil", + "minor-modifier", + "mkdir-if-not-exist", + "mm-rest-child-list", + "mmrest-of-length", + "modern-straight-flag", + "modified-font-metric-font-scaling", + "modulo-bar-number-visible", + "moment", + "moment->fraction", + "moment-min", + "moment-pair?", + "moment<=?", + "move-chord-note", + "multi-fork", + "multi-measure-rest-by-number-markup", + "music->make-music", + "music-check-error", + "music-clone", + "music-filter", + "music-invert", + "music-is-of-type?", + "music-map", + "music-pitches", + "music-property-description", + "music-selective-filter", + "music-selective-map", + "music-separator?", + "music-type-predicate", + "musicglyph-markup", + "n-true-entries", + "narrow-glyph?", + "natural-chord-alteration", + "natural-markup", + "negate-extent", + "neo-modern-accidental-rule", + "no-flag", + "normal-flag", + "normal-size-sub-markup", + "normal-size-super-markup", + "normal-text-markup", + "normalize-fraction", + "normalsize-markup", + "not-first-broken-spanner?", + "not-last-broken-spanner?", + "note-by-number-markup", + "note-events", + "note-head::brew-ez-stencil", + "note-head::calc-duration-log", + "note-head::calc-glyph-name", + "note-head::calc-kievan-duration-log", + "note-markup", + "note-name->german-markup", + "note-name->markup", + "note-name->string", + "note-name-markup", + "note-names-language", + "note-to-cluster", + "notes-to-clusters", + "null-markup", + "number->octal-string", + "number-column-stencil", + "number-format", + "number-list?", + "number-markup", + "number-or-grob?", + "number-or-pair?", + "number-or-string?", + "number-pair-list?", + "number-pair?", + "numbered-footnotes", + "numerify", + "object-type", + "object-type-name", + "oboe-lh-I-key-stencil", + "oboe-lh-II-key-stencil", + "oboe-lh-III-key-stencil", + "oboe-lh-b-key-stencil", + "oboe-lh-bes-key-stencil", + "oboe-lh-cis-key-stencil", + "oboe-lh-d-key-stencil", + "oboe-lh-ees-key-stencil", + "oboe-lh-ees-lh-bes-key-stencil", + "oboe-lh-f-key-stencil", + "oboe-lh-gis-key-stencil", + "oboe-lh-gis-lh-low-b-key-stencil", + "oboe-lh-low-b-key-stencil", + "oboe-lh-octave-key-stencil", + "oboe-rh-a-key-stencil", + "oboe-rh-banana-key-stencil", + "oboe-rh-c-key-stencil", + "oboe-rh-c-rh-ees-key-stencil", + "oboe-rh-cis-key-stencil", + "oboe-rh-d-key-stencil", + "oboe-rh-ees-key-stencil", + "oboe-rh-f-key-stencil", + "oboe-rh-gis-key-stencil", + "octave-woodwind-text-stencil", + "offset-add", + "offset-flip-y", + "offset-fret", + "offset-multiple-types", + "offset-scale", + "offsetter", + "old-straight-flag", + "on-the-fly-markup", + "only-if-beamed", + "ordered-cons", + "other-axis", + "output-module?", + "output-scopes", + "outputproperty-compatibility", + "oval-markup", + "oval-stencil", + "overlay-markup", + "override-head-style", + "override-lines-markup-list", + "override-markup", + "override-property-setting", + "override-time-signature-setting", + "overtie-markup", + "pad-around-markup", + "pad-markup-markup", + "pad-to-box-markup", + "pad-x-markup", + "page-link-markup", + "page-ref-markup", + "pair-map", + "pango-font-name", + "pango-pf-file-name", + "pango-pf-font-name", + "pango-pf-fontindex", + "paper-variable", + "parentheses-interface::calc-angled-bracket-stencils", + "parentheses-interface::calc-parenthesis-stencils", + "parentheses-interface::print", + "parentheses-interface::y-extent", + "parenthesize-elements", + "parenthesize-markup", + "parenthesize-stencil", + "parse-and-check-version", + "parse-lily-version", + "parse-terse-string", + "path-markup", + "pattern-markup", + "percussion?", + "performance-name-from-headers", + "piccolo-rh-x-key-stencil", + "pitch-alteration-semitones", + "pitch-invert", + "pitch-of-note", + "pitch-step", + "polar->rectangular", + "polygon-markup", + "position-true-endpoint", + "postprocess-output", + "postscript->pdf", + "postscript->png", + "postscript->ps", + "postscript-markup", + "precompute-music-length", + "prepend-alist-chain", + "prepend-props", + "pretty-printable?", + "previous-span-state", + "previous-voice-state", + "print-book-with", + "print-book-with-defaults", + "print-book-with-defaults-as-systems", + "print-circled-text-callback", + "print-keys", + "print-keys-verbose", + "process-fill-value", + "property-recursive-markup", + "pure-chain-offset-callback", + "pure-from-neighbor-interface::account-for-span-bar", + "pure-from-neighbor-interface::extra-spacing-height", + "pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line", + "pure-from-neighbor-interface::extra-spacing-height-including-staff", + "pure-from-neighbor-interface::pure-height", + "put-adjacent-markup", + "quarterdiff->string", + "quote-substitute", + "raise-markup", + "randomize-rand-seed", + "ratio->fret", + "ratio->pitch", + "rational-or-procedure?", + "read-lily-expression", + "read-lily-expression-internal", + "recent-enough?", + "recompute-music-length", + "recording-group-emulate", + "regexp-split", + "relevant-book-systems", + "relevant-dump-systems", + "remove-grace-property", + "remove-step", + "remove-whitespace", + "repeat-tie::handle-tab-note-head", + "replace-markup", + "replace-step", + "replicate-modify", + "reset-stencil-colors", + "rest-by-number-markup", + "rest-markup", + "retrieve-glyph-flag", + "retrograde-music", + "return-1", + "reverse-interval", + "revert-fontSize", + "revert-head-style", + "revert-property-setting", + "revert-props", + "revert-time-signature-setting", + "rgb-color", + "rh-woodwind-text-stencil", + "rhythm-markup", + "rhythmic-location->file-string", + "rhythmic-location->string", + "rhythmic-location-bar-number", + "rhythmic-location-measure-position", + "rhythmic-location<=?", + "rhythmic-location=?", + "rhythmic-location>?", + "rhythmic-location?", + "rich-bassoon-uber-key-stencil", + "rich-e-stencil", + "rich-group-draw-rule", + "rich-group-extra-offset-rule", + "rich-path-stencil", + "rich-pe-stencil", + "right-align-markup", + "right-brace-markup", + "right-column-markup", + "ring-column-circle-stencil", + "robust-bar-number-function", + "roman-markup", + "rotate-markup", + "rounded-box-markup", + "rounded-box-stencil", + "sans-markup", + "sans-serif-stencil", + "saxophone-lh-T-key-stencil", + "saxophone-lh-b-cis-key-stencil", + "saxophone-lh-b-key-stencil", + "saxophone-lh-bes-key-stencil", + "saxophone-lh-cis-key-stencil", + "saxophone-lh-d-key-stencil", + "saxophone-lh-ees-key-stencil", + "saxophone-lh-f-key-stencil", + "saxophone-lh-front-f-key-stencil", + "saxophone-lh-gis-key-stencil", + "saxophone-lh-low-a-key-stencil", + "saxophone-lh-low-bes-key-stencil", + "saxophone-name-passerelle", + "saxophone-rh-bes-key-stencil", + "saxophone-rh-c-key-stencil", + "saxophone-rh-e-key-stencil", + "saxophone-rh-ees-key-stencil", + "saxophone-rh-fis-key-stencil", + "saxophone-rh-high-fis-key-stencil", + "saxophone-rh-low-c-key-stencil", + "saxophone-rh-side-key-stencil", + "scale->factor", + "scale-beam-thickness", + "scale-by-font-size", + "scale-fontSize", + "scale-layout", + "scale-markup", + "scale-props", + "scale?", + "scheme?", + "scm->string", + "score-lines-markup-list", + "score-markup", + "scorify-music", + "script-interface::calc-x-offset", + "script-or-side-position-cross-staff", + "search-executable", + "seconds->moment", + "segno-markup", + "select-head-glyph", + "select-option", + "self-alignment-interface::self-aligned-on-breakable", + "self-evaluating?", + "semi-tie::calc-cross-staff", + "semiflat-markup", + "semisharp-markup", + "sequential-music-to-chord-exceptions", + "sesquiflat-markup", + "sesquisharp-markup", + "session-replay", + "session-save", + "session-start-record", + "session-terminate", + "set-accidental-style", + "set-bar-number-visibility", + "set-counter-text!", + "set-default-paper-size", + "set-global-fonts", + "set-global-staff-size", + "set-mus-properties!", + "set-output-property", + "set-paper-dimension-variables", + "set-paper-dimensions", + "set-paper-size", + "sharp-markup", + "shift-duration-log", + "shift-octave", + "shift-one-duration-log", + "shift-right-at-line-begin", + "shift-semitone->pitch", + "short-glyph?", + "sign", + "silence-events", + "simple-markup", + "simple-stencil-alist", + "skip->rest", + "skip-as-needed", + "skip-of-length", + "skip-of-moment-span", + "skyline-pair-and-non-empty?", + "skyline-pair::empty?", + "slashed-digit-internal", + "slashed-digit-markup", + "slashify", + "small-markup", + "smallCaps-markup", + "smaller-markup", + "space-lines", + "span-bar::compound-bar-line", + "span-state", + "split-at-predicate", + "split-index", + "split-list", + "split-list-by-separator", + "stack-lines", + "stack-stencil-line", + "stack-stencils", + "stack-stencils-padding-list", + "stack-thirds", + "staff-ellipsis::calc-y-extent", + "staff-ellipsis::print", + "staff-highlight::height", + "staff-highlight::print", + "staff-highlight::width", + "staff-magnification-is-changing?", + "staff-symbol-line-count", + "staff-symbol-line-positions", + "staff-symbol-line-span", + "staff-symbol-y-extent-from-line-positions", + "staff-symbol::calc-widened-extent", + "standard-e-stencil", + "standard-path-stencil", + "stderr", + "stem-connectable?", + "stem-is-root?", + "stem-span-stencil", + "stem-stub::do-calculations", + "stem-stub::extra-spacing-height", + "stem-stub::pure-height", + "stem-stub::width", + "stem-tremolo::calc-tab-width", + "stem::calc-duration-log", + "stem::kievan-offset-callback", + "stencil-fretboard-extent", + "stencil-fretboard-offset", + "stencil-markup", + "stencil-true-extent", + "stencil-whiteout", + "stencil-whiteout-box", + "stencil-whiteout-outline", + "stencil-with-color", + "sticky-grob-interface::inherit-property", + "straight-flag", + "string->string-list", + "string-encode-integer", + "string-endswith", + "string-lines-markup-list", + "string-number::calc-text", + "string-or-music?", + "string-or-pair?", + "string-or-symbol?", + "string-regexp-substitute", + "string-startswith", + "string-thickness", + "strip-string-annotation", + "stroke-finger::calc-text", + "strut-markup", + "style-note-heads", + "sub-markup", + "subtract-base-fret", + "suggest-convert-ly-message", + "super-markup", + "sus-modifier", + "symbol-concatenate", + "symbol-footnotes", + "symbol-key-alist?", + "symbol-key(Lua )?\1') for line in f: - m = r.match(line.decode('iso-8859-1')) + m = r.match(line.decode("iso-8859-1")) if m is not None: return m.groups()[0] def get_lua_functions(version): - f = urlopen(f'http://www.lua.org/manual/{version}/') + f = urlopen(f"http://www.lua.org/manual/{version}/") r = re.compile(r'^\1') functions = [] for line in f: - m = r.match(line.decode('iso-8859-1')) + m = r.match(line.decode("iso-8859-1")) if m is not None: functions.append(m.groups()[0]) return functions @@ -243,39 +267,37 @@ if __name__ == '__main__': # pragma: no cover for mod, cb in module_callbacks().items(): if cb(name): return mod - if '.' in name: - return name.split('.')[0] + if "." in name: + return name.split(".")[0] else: - return 'basic' + return "basic" def regenerate(filename, modules): - with open(filename, encoding='utf-8') as fp: + with open(filename, encoding="utf-8") as fp: content = fp.read() - header = content[:content.find('MODULES = {')] - footer = content[content.find("if __name__ == '__main__':"):] + header = content[: content.find("MODULES = {")] + footer = content[content.find("if __name__ == '__main__':") :] - - with open(filename, 'w', encoding='utf-8') as fp: + with open(filename, "w", encoding="utf-8") as fp: fp.write(header) - fp.write(f'MODULES = {pprint.pformat(modules)}\n\n') + fp.write(f"MODULES = {pprint.pformat(modules)}\n\n") fp.write(footer) def run(): version = get_newest_version() functions = set() - for v in ('5.2', version): - print(f'> Downloading function index for Lua {v}') + for v in ("5.2", version): + print(f"> Downloading function index for Lua {v}") f = get_lua_functions(v) - print('> %d functions found, %d new:' % - (len(f), len(set(f) - functions))) + print("> %d functions found, %d new:" % (len(f), len(set(f) - functions))) functions |= set(f) functions = sorted(functions) modules = {} for full_function_name in functions: - print(f'>> {full_function_name}') + print(f">> {full_function_name}") m = get_function_module(full_function_name) modules.setdefault(m, []).append(full_function_name) modules = {k: tuple(v) for k, v in modules.items()} diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_luau_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_luau_builtins.py index 9e06b07..c769924 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_luau_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_luau_builtins.py @@ -1,62 +1,61 @@ """ - pygments.lexers._luau_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._luau_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Includes the builtins for Luau and Roblox. +Includes the builtins for Luau and Roblox. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ LUAU_BUILTINS = { - 'bit32', - 'buffer', - 'coroutine', - 'debug', - 'math', - 'os', - 'string', - 'table', - 'utf8', + "bit32", + "buffer", + "coroutine", + "debug", + "math", + "os", + "string", + "table", + "utf8", } ROBLOX_BUILTINS = { - 'task', - - 'Axes', - 'BrickColor', - 'CatalogSearchParams', - 'CFrame', - 'Color3', - 'ColorSequence', - 'ColorSequenceKeypoint', - 'DateTime', - 'DockWidgetPluginGuiInfo', - 'Faces', - 'FloatCurveKey', - 'Font', - 'Instance', - 'NumberRange', - 'NumberSequence', - 'NumberSequenceKeypoint', - 'OverlapParams', - 'PathWaypoint', - 'PhysicalProperties', - 'Random', - 'Ray', - 'RaycastParams', - 'RaycastResult', - 'RBXScriptConnection', - 'RBXScriptSignal', - 'Rect', - 'Region3', - 'Region3int16', - 'SharedTable', - 'TweenInfo', - 'UDim', - 'UDim2', - 'Vector2', - 'Vector2int16', - 'Vector3', - 'Vector3int16', -} \ No newline at end of file + "task", + "Axes", + "BrickColor", + "CatalogSearchParams", + "CFrame", + "Color3", + "ColorSequence", + "ColorSequenceKeypoint", + "DateTime", + "DockWidgetPluginGuiInfo", + "Faces", + "FloatCurveKey", + "Font", + "Instance", + "NumberRange", + "NumberSequence", + "NumberSequenceKeypoint", + "OverlapParams", + "PathWaypoint", + "PhysicalProperties", + "Random", + "Ray", + "RaycastParams", + "RaycastResult", + "RBXScriptConnection", + "RBXScriptSignal", + "Rect", + "Region3", + "Region3int16", + "SharedTable", + "TweenInfo", + "UDim", + "UDim2", + "Vector2", + "Vector2int16", + "Vector3", + "Vector3int16", +} diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mapping.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mapping.py index cfc534d..9ac4ad7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mapping.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mapping.py @@ -2,601 +2,3822 @@ # DO NOT EDIT BY HAND; run `tox -e mapfiles` instead. LEXERS = { - 'ABAPLexer': ('pygments.lexers.business', 'ABAP', ('abap',), ('*.abap', '*.ABAP'), ('text/x-abap',)), - 'AMDGPULexer': ('pygments.lexers.amdgpu', 'AMDGPU', ('amdgpu',), ('*.isa',), ()), - 'APLLexer': ('pygments.lexers.apl', 'APL', ('apl',), ('*.apl', '*.aplf', '*.aplo', '*.apln', '*.aplc', '*.apli', '*.dyalog'), ()), - 'AbnfLexer': ('pygments.lexers.grammar_notation', 'ABNF', ('abnf',), ('*.abnf',), ('text/x-abnf',)), - 'ActionScript3Lexer': ('pygments.lexers.actionscript', 'ActionScript 3', ('actionscript3', 'as3'), ('*.as',), ('application/x-actionscript3', 'text/x-actionscript3', 'text/actionscript3')), - 'ActionScriptLexer': ('pygments.lexers.actionscript', 'ActionScript', ('actionscript', 'as'), ('*.as',), ('application/x-actionscript', 'text/x-actionscript', 'text/actionscript')), - 'AdaLexer': ('pygments.lexers.ada', 'Ada', ('ada', 'ada95', 'ada2005'), ('*.adb', '*.ads', '*.ada'), ('text/x-ada',)), - 'AdlLexer': ('pygments.lexers.archetype', 'ADL', ('adl',), ('*.adl', '*.adls', '*.adlf', '*.adlx'), ()), - 'AgdaLexer': ('pygments.lexers.haskell', 'Agda', ('agda',), ('*.agda',), ('text/x-agda',)), - 'AheuiLexer': ('pygments.lexers.esoteric', 'Aheui', ('aheui',), ('*.aheui',), ()), - 'AlloyLexer': ('pygments.lexers.dsls', 'Alloy', ('alloy',), ('*.als',), ('text/x-alloy',)), - 'AmbientTalkLexer': ('pygments.lexers.ambient', 'AmbientTalk', ('ambienttalk', 'ambienttalk/2', 'at'), ('*.at',), ('text/x-ambienttalk',)), - 'AmplLexer': ('pygments.lexers.ampl', 'Ampl', ('ampl',), ('*.run',), ()), - 'Angular2HtmlLexer': ('pygments.lexers.templates', 'HTML + Angular2', ('html+ng2',), ('*.ng2',), ()), - 'Angular2Lexer': ('pygments.lexers.templates', 'Angular2', ('ng2',), (), ()), - 'AntlrActionScriptLexer': ('pygments.lexers.parsers', 'ANTLR With ActionScript Target', ('antlr-actionscript', 'antlr-as'), ('*.G', '*.g'), ()), - 'AntlrCSharpLexer': ('pygments.lexers.parsers', 'ANTLR With C# Target', ('antlr-csharp', 'antlr-c#'), ('*.G', '*.g'), ()), - 'AntlrCppLexer': ('pygments.lexers.parsers', 'ANTLR With CPP Target', ('antlr-cpp',), ('*.G', '*.g'), ()), - 'AntlrJavaLexer': ('pygments.lexers.parsers', 'ANTLR With Java Target', ('antlr-java',), ('*.G', '*.g'), ()), - 'AntlrLexer': ('pygments.lexers.parsers', 'ANTLR', ('antlr',), (), ()), - 'AntlrObjectiveCLexer': ('pygments.lexers.parsers', 'ANTLR With ObjectiveC Target', ('antlr-objc',), ('*.G', '*.g'), ()), - 'AntlrPerlLexer': ('pygments.lexers.parsers', 'ANTLR With Perl Target', ('antlr-perl',), ('*.G', '*.g'), ()), - 'AntlrPythonLexer': ('pygments.lexers.parsers', 'ANTLR With Python Target', ('antlr-python',), ('*.G', '*.g'), ()), - 'AntlrRubyLexer': ('pygments.lexers.parsers', 'ANTLR With Ruby Target', ('antlr-ruby', 'antlr-rb'), ('*.G', '*.g'), ()), - 'ApacheConfLexer': ('pygments.lexers.configs', 'ApacheConf', ('apacheconf', 'aconf', 'apache'), ('.htaccess', 'apache.conf', 'apache2.conf'), ('text/x-apacheconf',)), - 'AppleScriptLexer': ('pygments.lexers.scripting', 'AppleScript', ('applescript',), ('*.applescript',), ()), - 'ArduinoLexer': ('pygments.lexers.c_like', 'Arduino', ('arduino',), ('*.ino',), ('text/x-arduino',)), - 'ArrowLexer': ('pygments.lexers.arrow', 'Arrow', ('arrow',), ('*.arw',), ()), - 'ArturoLexer': ('pygments.lexers.arturo', 'Arturo', ('arturo', 'art'), ('*.art',), ()), - 'AscLexer': ('pygments.lexers.asc', 'ASCII armored', ('asc', 'pem'), ('*.asc', '*.pem', 'id_dsa', 'id_ecdsa', 'id_ecdsa_sk', 'id_ed25519', 'id_ed25519_sk', 'id_rsa'), ('application/pgp-keys', 'application/pgp-encrypted', 'application/pgp-signature', 'application/pem-certificate-chain')), - 'Asn1Lexer': ('pygments.lexers.asn1', 'ASN.1', ('asn1',), ('*.asn1',), ()), - 'AspectJLexer': ('pygments.lexers.jvm', 'AspectJ', ('aspectj',), ('*.aj',), ('text/x-aspectj',)), - 'AsymptoteLexer': ('pygments.lexers.graphics', 'Asymptote', ('asymptote', 'asy'), ('*.asy',), ('text/x-asymptote',)), - 'AugeasLexer': ('pygments.lexers.configs', 'Augeas', ('augeas',), ('*.aug',), ()), - 'AutoItLexer': ('pygments.lexers.automation', 'AutoIt', ('autoit',), ('*.au3',), ('text/x-autoit',)), - 'AutohotkeyLexer': ('pygments.lexers.automation', 'autohotkey', ('autohotkey', 'ahk'), ('*.ahk', '*.ahkl'), ('text/x-autohotkey',)), - 'AwkLexer': ('pygments.lexers.textedit', 'Awk', ('awk', 'gawk', 'mawk', 'nawk'), ('*.awk',), ('application/x-awk',)), - 'BBCBasicLexer': ('pygments.lexers.basic', 'BBC Basic', ('bbcbasic',), ('*.bbc',), ()), - 'BBCodeLexer': ('pygments.lexers.markup', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)), - 'BCLexer': ('pygments.lexers.algebra', 'BC', ('bc',), ('*.bc',), ()), - 'BQNLexer': ('pygments.lexers.bqn', 'BQN', ('bqn',), ('*.bqn',), ()), - 'BSTLexer': ('pygments.lexers.bibtex', 'BST', ('bst', 'bst-pybtex'), ('*.bst',), ()), - 'BareLexer': ('pygments.lexers.bare', 'BARE', ('bare',), ('*.bare',), ()), - 'BaseMakefileLexer': ('pygments.lexers.make', 'Base Makefile', ('basemake',), (), ()), - 'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'zsh', 'shell', 'openrc'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '*.exheres-0', '*.exlib', '*.zsh', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc', '.kshrc', 'kshrc', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript', 'text/x-shellscript')), - 'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console', 'shell-session'), ('*.sh-session', '*.shell-session'), ('application/x-shell-session', 'application/x-sh-session')), - 'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('batch', 'bat', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)), - 'BddLexer': ('pygments.lexers.bdd', 'Bdd', ('bdd',), ('*.feature',), ('text/x-bdd',)), - 'BefungeLexer': ('pygments.lexers.esoteric', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)), - 'BerryLexer': ('pygments.lexers.berry', 'Berry', ('berry', 'be'), ('*.be',), ('text/x-berry', 'application/x-berry')), - 'BibTeXLexer': ('pygments.lexers.bibtex', 'BibTeX', ('bibtex', 'bib'), ('*.bib',), ('text/x-bibtex',)), - 'BlitzBasicLexer': ('pygments.lexers.basic', 'BlitzBasic', ('blitzbasic', 'b3d', 'bplus'), ('*.bb', '*.decls'), ('text/x-bb',)), - 'BlitzMaxLexer': ('pygments.lexers.basic', 'BlitzMax', ('blitzmax', 'bmax'), ('*.bmx',), ('text/x-bmx',)), - 'BlueprintLexer': ('pygments.lexers.blueprint', 'Blueprint', ('blueprint',), ('*.blp',), ('text/x-blueprint',)), - 'BnfLexer': ('pygments.lexers.grammar_notation', 'BNF', ('bnf',), ('*.bnf',), ('text/x-bnf',)), - 'BoaLexer': ('pygments.lexers.boa', 'Boa', ('boa',), ('*.boa',), ()), - 'BooLexer': ('pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)), - 'BoogieLexer': ('pygments.lexers.verification', 'Boogie', ('boogie',), ('*.bpl',), ()), - 'BrainfuckLexer': ('pygments.lexers.esoteric', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)), - 'BugsLexer': ('pygments.lexers.modeling', 'BUGS', ('bugs', 'winbugs', 'openbugs'), ('*.bug',), ()), - 'CAmkESLexer': ('pygments.lexers.esoteric', 'CAmkES', ('camkes', 'idl4'), ('*.camkes', '*.idl4'), ()), - 'CLexer': ('pygments.lexers.c_cpp', 'C', ('c',), ('*.c', '*.h', '*.idc', '*.x[bp]m'), ('text/x-chdr', 'text/x-csrc', 'image/x-xbitmap', 'image/x-xpixmap')), - 'CMakeLexer': ('pygments.lexers.make', 'CMake', ('cmake',), ('*.cmake', 'CMakeLists.txt'), ('text/x-cmake',)), - 'CObjdumpLexer': ('pygments.lexers.asm', 'c-objdump', ('c-objdump',), ('*.c-objdump',), ('text/x-c-objdump',)), - 'CPSALexer': ('pygments.lexers.lisp', 'CPSA', ('cpsa',), ('*.cpsa',), ()), - 'CSSUL4Lexer': ('pygments.lexers.ul4', 'CSS+UL4', ('css+ul4',), ('*.cssul4',), ()), - 'CSharpAspxLexer': ('pygments.lexers.dotnet', 'aspx-cs', ('aspx-cs',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()), - 'CSharpLexer': ('pygments.lexers.dotnet', 'C#', ('csharp', 'c#', 'cs'), ('*.cs',), ('text/x-csharp',)), - 'Ca65Lexer': ('pygments.lexers.asm', 'ca65 assembler', ('ca65',), ('*.s',), ()), - 'CadlLexer': ('pygments.lexers.archetype', 'cADL', ('cadl',), ('*.cadl',), ()), - 'CapDLLexer': ('pygments.lexers.esoteric', 'CapDL', ('capdl',), ('*.cdl',), ()), - 'CapnProtoLexer': ('pygments.lexers.capnproto', "Cap'n Proto", ('capnp',), ('*.capnp',), ()), - 'CarbonLexer': ('pygments.lexers.carbon', 'Carbon', ('carbon',), ('*.carbon',), ('text/x-carbon',)), - 'CbmBasicV2Lexer': ('pygments.lexers.basic', 'CBM BASIC V2', ('cbmbas',), ('*.bas',), ()), - 'CddlLexer': ('pygments.lexers.cddl', 'CDDL', ('cddl',), ('*.cddl',), ('text/x-cddl',)), - 'CeylonLexer': ('pygments.lexers.jvm', 'Ceylon', ('ceylon',), ('*.ceylon',), ('text/x-ceylon',)), - 'Cfengine3Lexer': ('pygments.lexers.configs', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()), - 'ChaiscriptLexer': ('pygments.lexers.scripting', 'ChaiScript', ('chaiscript', 'chai'), ('*.chai',), ('text/x-chaiscript', 'application/x-chaiscript')), - 'ChapelLexer': ('pygments.lexers.chapel', 'Chapel', ('chapel', 'chpl'), ('*.chpl',), ()), - 'CharmciLexer': ('pygments.lexers.c_like', 'Charmci', ('charmci',), ('*.ci',), ()), - 'CheetahHtmlLexer': ('pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire', 'htmlcheetah'), (), ('text/html+cheetah', 'text/html+spitfire')), - 'CheetahJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Cheetah', ('javascript+cheetah', 'js+cheetah', 'javascript+spitfire', 'js+spitfire'), (), ('application/x-javascript+cheetah', 'text/x-javascript+cheetah', 'text/javascript+cheetah', 'application/x-javascript+spitfire', 'text/x-javascript+spitfire', 'text/javascript+spitfire')), - 'CheetahLexer': ('pygments.lexers.templates', 'Cheetah', ('cheetah', 'spitfire'), ('*.tmpl', '*.spt'), ('application/x-cheetah', 'application/x-spitfire')), - 'CheetahXmlLexer': ('pygments.lexers.templates', 'XML+Cheetah', ('xml+cheetah', 'xml+spitfire'), (), ('application/xml+cheetah', 'application/xml+spitfire')), - 'CirruLexer': ('pygments.lexers.webmisc', 'Cirru', ('cirru',), ('*.cirru',), ('text/x-cirru',)), - 'ClayLexer': ('pygments.lexers.c_like', 'Clay', ('clay',), ('*.clay',), ('text/x-clay',)), - 'CleanLexer': ('pygments.lexers.clean', 'Clean', ('clean',), ('*.icl', '*.dcl'), ()), - 'ClojureLexer': ('pygments.lexers.jvm', 'Clojure', ('clojure', 'clj'), ('*.clj', '*.cljc'), ('text/x-clojure', 'application/x-clojure')), - 'ClojureScriptLexer': ('pygments.lexers.jvm', 'ClojureScript', ('clojurescript', 'cljs'), ('*.cljs',), ('text/x-clojurescript', 'application/x-clojurescript')), - 'CobolFreeformatLexer': ('pygments.lexers.business', 'COBOLFree', ('cobolfree',), ('*.cbl', '*.CBL'), ()), - 'CobolLexer': ('pygments.lexers.business', 'COBOL', ('cobol',), ('*.cob', '*.COB', '*.cpy', '*.CPY'), ('text/x-cobol',)), - 'CodeQLLexer': ('pygments.lexers.codeql', 'CodeQL', ('codeql', 'ql'), ('*.ql', '*.qll'), ()), - 'CoffeeScriptLexer': ('pygments.lexers.javascript', 'CoffeeScript', ('coffeescript', 'coffee-script', 'coffee'), ('*.coffee',), ('text/coffeescript',)), - 'ColdfusionCFCLexer': ('pygments.lexers.templates', 'Coldfusion CFC', ('cfc',), ('*.cfc',), ()), - 'ColdfusionHtmlLexer': ('pygments.lexers.templates', 'Coldfusion HTML', ('cfm',), ('*.cfm', '*.cfml'), ('application/x-coldfusion',)), - 'ColdfusionLexer': ('pygments.lexers.templates', 'cfstatement', ('cfs',), (), ()), - 'Comal80Lexer': ('pygments.lexers.comal', 'COMAL-80', ('comal', 'comal80'), ('*.cml', '*.comal'), ()), - 'CommonLispLexer': ('pygments.lexers.lisp', 'Common Lisp', ('common-lisp', 'cl', 'lisp'), ('*.cl', '*.lisp'), ('text/x-common-lisp',)), - 'ComponentPascalLexer': ('pygments.lexers.oberon', 'Component Pascal', ('componentpascal', 'cp'), ('*.cp', '*.cps'), ('text/x-component-pascal',)), - 'CoqLexer': ('pygments.lexers.theorem', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)), - 'CplintLexer': ('pygments.lexers.cplint', 'cplint', ('cplint',), ('*.ecl', '*.prolog', '*.pro', '*.pl', '*.P', '*.lpad', '*.cpl'), ('text/x-cplint',)), - 'CppLexer': ('pygments.lexers.c_cpp', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx', '*.C', '*.H', '*.cp', '*.CPP', '*.tpp'), ('text/x-c++hdr', 'text/x-c++src')), - 'CppObjdumpLexer': ('pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)), - 'CrmshLexer': ('pygments.lexers.dsls', 'Crmsh', ('crmsh', 'pcmk'), ('*.crmsh', '*.pcmk'), ()), - 'CrocLexer': ('pygments.lexers.d', 'Croc', ('croc',), ('*.croc',), ('text/x-crocsrc',)), - 'CryptolLexer': ('pygments.lexers.haskell', 'Cryptol', ('cryptol', 'cry'), ('*.cry',), ('text/x-cryptol',)), - 'CrystalLexer': ('pygments.lexers.crystal', 'Crystal', ('cr', 'crystal'), ('*.cr',), ('text/x-crystal',)), - 'CsoundDocumentLexer': ('pygments.lexers.csound', 'Csound Document', ('csound-document', 'csound-csd'), ('*.csd',), ()), - 'CsoundOrchestraLexer': ('pygments.lexers.csound', 'Csound Orchestra', ('csound', 'csound-orc'), ('*.orc', '*.udo'), ()), - 'CsoundScoreLexer': ('pygments.lexers.csound', 'Csound Score', ('csound-score', 'csound-sco'), ('*.sco',), ()), - 'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), ('*.css.j2', '*.css.jinja2'), ('text/css+django', 'text/css+jinja')), - 'CssErbLexer': ('pygments.lexers.templates', 'CSS+Ruby', ('css+ruby', 'css+erb'), (), ('text/css+ruby',)), - 'CssGenshiLexer': ('pygments.lexers.templates', 'CSS+Genshi Text', ('css+genshitext', 'css+genshi'), (), ('text/css+genshi',)), - 'CssLexer': ('pygments.lexers.css', 'CSS', ('css',), ('*.css',), ('text/css',)), - 'CssPhpLexer': ('pygments.lexers.templates', 'CSS+PHP', ('css+php',), (), ('text/css+php',)), - 'CssSmartyLexer': ('pygments.lexers.templates', 'CSS+Smarty', ('css+smarty',), (), ('text/css+smarty',)), - 'CudaLexer': ('pygments.lexers.c_like', 'CUDA', ('cuda', 'cu'), ('*.cu', '*.cuh'), ('text/x-cuda',)), - 'CypherLexer': ('pygments.lexers.graph', 'Cypher', ('cypher',), ('*.cyp', '*.cypher'), ()), - 'CythonLexer': ('pygments.lexers.python', 'Cython', ('cython', 'pyx', 'pyrex'), ('*.pyx', '*.pxd', '*.pxi'), ('text/x-cython', 'application/x-cython')), - 'DLexer': ('pygments.lexers.d', 'D', ('d',), ('*.d', '*.di'), ('text/x-dsrc',)), - 'DObjdumpLexer': ('pygments.lexers.asm', 'd-objdump', ('d-objdump',), ('*.d-objdump',), ('text/x-d-objdump',)), - 'DarcsPatchLexer': ('pygments.lexers.diff', 'Darcs Patch', ('dpatch',), ('*.dpatch', '*.darcspatch'), ()), - 'DartLexer': ('pygments.lexers.javascript', 'Dart', ('dart',), ('*.dart',), ('text/x-dart',)), - 'Dasm16Lexer': ('pygments.lexers.asm', 'DASM16', ('dasm16',), ('*.dasm16', '*.dasm'), ('text/x-dasm16',)), - 'DaxLexer': ('pygments.lexers.dax', 'Dax', ('dax',), ('*.dax',), ()), - 'DebianControlLexer': ('pygments.lexers.installers', 'Debian Control file', ('debcontrol', 'control'), ('control',), ()), - 'DebianSourcesLexer': ('pygments.lexers.installers', 'Debian Sources file', ('debian.sources',), ('*.sources',), ()), - 'DelphiLexer': ('pygments.lexers.pascal', 'Delphi', ('delphi', 'pas', 'pascal', 'objectpascal'), ('*.pas', '*.dpr'), ('text/x-pascal',)), - 'DesktopLexer': ('pygments.lexers.configs', 'Desktop file', ('desktop',), ('*.desktop',), ('application/x-desktop',)), - 'DevicetreeLexer': ('pygments.lexers.devicetree', 'Devicetree', ('devicetree', 'dts'), ('*.dts', '*.dtsi'), ('text/x-c',)), - 'DgLexer': ('pygments.lexers.python', 'dg', ('dg',), ('*.dg',), ('text/x-dg',)), - 'DiffLexer': ('pygments.lexers.diff', 'Diff', ('diff', 'udiff'), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch')), - 'DjangoLexer': ('pygments.lexers.templates', 'Django/Jinja', ('django', 'jinja'), (), ('application/x-django-templating', 'application/x-jinja')), - 'DnsZoneLexer': ('pygments.lexers.dns', 'Zone', ('zone',), ('*.zone',), ('text/dns',)), - 'DockerLexer': ('pygments.lexers.configs', 'Docker', ('docker', 'dockerfile'), ('Dockerfile', '*.docker'), ('text/x-dockerfile-config',)), - 'DtdLexer': ('pygments.lexers.html', 'DTD', ('dtd',), ('*.dtd',), ('application/xml-dtd',)), - 'DuelLexer': ('pygments.lexers.webmisc', 'Duel', ('duel', 'jbst', 'jsonml+bst'), ('*.duel', '*.jbst'), ('text/x-duel', 'text/x-jbst')), - 'DylanConsoleLexer': ('pygments.lexers.dylan', 'Dylan session', ('dylan-console', 'dylan-repl'), ('*.dylan-console',), ('text/x-dylan-console',)), - 'DylanLexer': ('pygments.lexers.dylan', 'Dylan', ('dylan',), ('*.dylan', '*.dyl', '*.intr'), ('text/x-dylan',)), - 'DylanLidLexer': ('pygments.lexers.dylan', 'DylanLID', ('dylan-lid', 'lid'), ('*.lid', '*.hdp'), ('text/x-dylan-lid',)), - 'ECLLexer': ('pygments.lexers.ecl', 'ECL', ('ecl',), ('*.ecl',), ('application/x-ecl',)), - 'ECLexer': ('pygments.lexers.c_like', 'eC', ('ec',), ('*.ec', '*.eh'), ('text/x-echdr', 'text/x-ecsrc')), - 'EarlGreyLexer': ('pygments.lexers.javascript', 'Earl Grey', ('earl-grey', 'earlgrey', 'eg'), ('*.eg',), ('text/x-earl-grey',)), - 'EasytrieveLexer': ('pygments.lexers.scripting', 'Easytrieve', ('easytrieve',), ('*.ezt', '*.mac'), ('text/x-easytrieve',)), - 'EbnfLexer': ('pygments.lexers.parsers', 'EBNF', ('ebnf',), ('*.ebnf',), ('text/x-ebnf',)), - 'EiffelLexer': ('pygments.lexers.eiffel', 'Eiffel', ('eiffel',), ('*.e',), ('text/x-eiffel',)), - 'ElixirConsoleLexer': ('pygments.lexers.erlang', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)), - 'ElixirLexer': ('pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.eex', '*.exs', '*.leex'), ('text/x-elixir',)), - 'ElmLexer': ('pygments.lexers.elm', 'Elm', ('elm',), ('*.elm',), ('text/x-elm',)), - 'ElpiLexer': ('pygments.lexers.elpi', 'Elpi', ('elpi',), ('*.elpi',), ('text/x-elpi',)), - 'EmacsLispLexer': ('pygments.lexers.lisp', 'EmacsLisp', ('emacs-lisp', 'elisp', 'emacs'), ('*.el',), ('text/x-elisp', 'application/x-elisp')), - 'EmailLexer': ('pygments.lexers.email', 'E-mail', ('email', 'eml'), ('*.eml',), ('message/rfc822',)), - 'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)), - 'ErlangLexer': ('pygments.lexers.erlang', 'Erlang', ('erlang',), ('*.erl', '*.hrl', '*.es', '*.escript'), ('text/x-erlang',)), - 'ErlangShellLexer': ('pygments.lexers.erlang', 'Erlang erl session', ('erl',), ('*.erl-sh',), ('text/x-erl-shellsession',)), - 'EvoqueHtmlLexer': ('pygments.lexers.templates', 'HTML+Evoque', ('html+evoque',), (), ('text/html+evoque',)), - 'EvoqueLexer': ('pygments.lexers.templates', 'Evoque', ('evoque',), ('*.evoque',), ('application/x-evoque',)), - 'EvoqueXmlLexer': ('pygments.lexers.templates', 'XML+Evoque', ('xml+evoque',), (), ('application/xml+evoque',)), - 'ExeclineLexer': ('pygments.lexers.shell', 'execline', ('execline',), ('*.exec',), ()), - 'EzhilLexer': ('pygments.lexers.ezhil', 'Ezhil', ('ezhil',), ('*.n',), ('text/x-ezhil',)), - 'FSharpLexer': ('pygments.lexers.dotnet', 'F#', ('fsharp', 'f#'), ('*.fs', '*.fsi', '*.fsx'), ('text/x-fsharp',)), - 'FStarLexer': ('pygments.lexers.ml', 'FStar', ('fstar',), ('*.fst', '*.fsti'), ('text/x-fstar',)), - 'FactorLexer': ('pygments.lexers.factor', 'Factor', ('factor',), ('*.factor',), ('text/x-factor',)), - 'FancyLexer': ('pygments.lexers.ruby', 'Fancy', ('fancy', 'fy'), ('*.fy', '*.fancypack'), ('text/x-fancysrc',)), - 'FantomLexer': ('pygments.lexers.fantom', 'Fantom', ('fan',), ('*.fan',), ('application/x-fantom',)), - 'FelixLexer': ('pygments.lexers.felix', 'Felix', ('felix', 'flx'), ('*.flx', '*.flxh'), ('text/x-felix',)), - 'FennelLexer': ('pygments.lexers.lisp', 'Fennel', ('fennel', 'fnl'), ('*.fnl',), ()), - 'FiftLexer': ('pygments.lexers.fift', 'Fift', ('fift', 'fif'), ('*.fif',), ()), - 'FishShellLexer': ('pygments.lexers.shell', 'Fish', ('fish', 'fishshell'), ('*.fish', '*.load'), ('application/x-fish',)), - 'FlatlineLexer': ('pygments.lexers.dsls', 'Flatline', ('flatline',), (), ('text/x-flatline',)), - 'FloScriptLexer': ('pygments.lexers.floscript', 'FloScript', ('floscript', 'flo'), ('*.flo',), ()), - 'ForthLexer': ('pygments.lexers.forth', 'Forth', ('forth',), ('*.frt', '*.fs'), ('application/x-forth',)), - 'FortranFixedLexer': ('pygments.lexers.fortran', 'FortranFixed', ('fortranfixed',), ('*.f', '*.F'), ()), - 'FortranLexer': ('pygments.lexers.fortran', 'Fortran', ('fortran', 'f90'), ('*.f03', '*.f90', '*.F03', '*.F90'), ('text/x-fortran',)), - 'FoxProLexer': ('pygments.lexers.foxpro', 'FoxPro', ('foxpro', 'vfp', 'clipper', 'xbase'), ('*.PRG', '*.prg'), ()), - 'FreeFemLexer': ('pygments.lexers.freefem', 'Freefem', ('freefem',), ('*.edp',), ('text/x-freefem',)), - 'FuncLexer': ('pygments.lexers.func', 'FunC', ('func', 'fc'), ('*.fc', '*.func'), ()), - 'FutharkLexer': ('pygments.lexers.futhark', 'Futhark', ('futhark',), ('*.fut',), ('text/x-futhark',)), - 'GAPConsoleLexer': ('pygments.lexers.algebra', 'GAP session', ('gap-console', 'gap-repl'), ('*.tst',), ()), - 'GAPLexer': ('pygments.lexers.algebra', 'GAP', ('gap',), ('*.g', '*.gd', '*.gi', '*.gap'), ()), - 'GDScriptLexer': ('pygments.lexers.gdscript', 'GDScript', ('gdscript', 'gd'), ('*.gd',), ('text/x-gdscript', 'application/x-gdscript')), - 'GLShaderLexer': ('pygments.lexers.graphics', 'GLSL', ('glsl',), ('*.vert', '*.frag', '*.geo'), ('text/x-glslsrc',)), - 'GSQLLexer': ('pygments.lexers.gsql', 'GSQL', ('gsql',), ('*.gsql',), ()), - 'GasLexer': ('pygments.lexers.asm', 'GAS', ('gas', 'asm'), ('*.s', '*.S'), ('text/x-gas',)), - 'GcodeLexer': ('pygments.lexers.gcodelexer', 'g-code', ('gcode',), ('*.gcode',), ()), - 'GenshiLexer': ('pygments.lexers.templates', 'Genshi', ('genshi', 'kid', 'xml+genshi', 'xml+kid'), ('*.kid',), ('application/x-genshi', 'application/x-kid')), - 'GenshiTextLexer': ('pygments.lexers.templates', 'Genshi Text', ('genshitext',), (), ('application/x-genshi-text', 'text/x-genshi')), - 'GettextLexer': ('pygments.lexers.textfmts', 'Gettext Catalog', ('pot', 'po'), ('*.pot', '*.po'), ('application/x-gettext', 'text/x-gettext', 'text/gettext')), - 'GherkinLexer': ('pygments.lexers.testing', 'Gherkin', ('gherkin', 'cucumber'), ('*.feature',), ('text/x-gherkin',)), - 'GleamLexer': ('pygments.lexers.gleam', 'Gleam', ('gleam',), ('*.gleam',), ('text/x-gleam',)), - 'GnuplotLexer': ('pygments.lexers.graphics', 'Gnuplot', ('gnuplot',), ('*.plot', '*.plt'), ('text/x-gnuplot',)), - 'GoLexer': ('pygments.lexers.go', 'Go', ('go', 'golang'), ('*.go',), ('text/x-gosrc',)), - 'GoloLexer': ('pygments.lexers.jvm', 'Golo', ('golo',), ('*.golo',), ()), - 'GoodDataCLLexer': ('pygments.lexers.business', 'GoodData-CL', ('gooddata-cl',), ('*.gdc',), ('text/x-gooddata-cl',)), - 'GoogleSqlLexer': ('pygments.lexers.sql', 'GoogleSQL', ('googlesql', 'zetasql'), ('*.googlesql', '*.googlesql.sql'), ('text/x-google-sql', 'text/x-google-sql-aux')), - 'GosuLexer': ('pygments.lexers.jvm', 'Gosu', ('gosu',), ('*.gs', '*.gsx', '*.gsp', '*.vark'), ('text/x-gosu',)), - 'GosuTemplateLexer': ('pygments.lexers.jvm', 'Gosu Template', ('gst',), ('*.gst',), ('text/x-gosu-template',)), - 'GraphQLLexer': ('pygments.lexers.graphql', 'GraphQL', ('graphql',), ('*.graphql',), ()), - 'GraphvizLexer': ('pygments.lexers.graphviz', 'Graphviz', ('graphviz', 'dot'), ('*.gv', '*.dot'), ('text/x-graphviz', 'text/vnd.graphviz')), - 'GroffLexer': ('pygments.lexers.markup', 'Groff', ('groff', 'nroff', 'man'), ('*.[1-9]', '*.man', '*.1p', '*.3pm'), ('application/x-troff', 'text/troff')), - 'GroovyLexer': ('pygments.lexers.jvm', 'Groovy', ('groovy',), ('*.groovy', '*.gradle'), ('text/x-groovy',)), - 'HLSLShaderLexer': ('pygments.lexers.graphics', 'HLSL', ('hlsl',), ('*.hlsl', '*.hlsli'), ('text/x-hlsl',)), - 'HTMLUL4Lexer': ('pygments.lexers.ul4', 'HTML+UL4', ('html+ul4',), ('*.htmlul4',), ()), - 'HamlLexer': ('pygments.lexers.html', 'Haml', ('haml',), ('*.haml',), ('text/x-haml',)), - 'HandlebarsHtmlLexer': ('pygments.lexers.templates', 'HTML+Handlebars', ('html+handlebars',), ('*.handlebars', '*.hbs'), ('text/html+handlebars', 'text/x-handlebars-template')), - 'HandlebarsLexer': ('pygments.lexers.templates', 'Handlebars', ('handlebars',), (), ()), - 'HareLexer': ('pygments.lexers.hare', 'Hare', ('hare',), ('*.ha',), ('text/x-hare',)), - 'HaskellLexer': ('pygments.lexers.haskell', 'Haskell', ('haskell', 'hs'), ('*.hs',), ('text/x-haskell',)), - 'HaxeLexer': ('pygments.lexers.haxe', 'Haxe', ('haxe', 'hxsl', 'hx'), ('*.hx', '*.hxsl'), ('text/haxe', 'text/x-haxe', 'text/x-hx')), - 'HexdumpLexer': ('pygments.lexers.hexdump', 'Hexdump', ('hexdump',), (), ()), - 'HsailLexer': ('pygments.lexers.asm', 'HSAIL', ('hsail', 'hsa'), ('*.hsail',), ('text/x-hsail',)), - 'HspecLexer': ('pygments.lexers.haskell', 'Hspec', ('hspec',), ('*Spec.hs',), ()), - 'HtmlDjangoLexer': ('pygments.lexers.templates', 'HTML+Django/Jinja', ('html+django', 'html+jinja', 'htmldjango'), ('*.html.j2', '*.htm.j2', '*.xhtml.j2', '*.html.jinja2', '*.htm.jinja2', '*.xhtml.jinja2'), ('text/html+django', 'text/html+jinja')), - 'HtmlGenshiLexer': ('pygments.lexers.templates', 'HTML+Genshi', ('html+genshi', 'html+kid'), (), ('text/html+genshi',)), - 'HtmlLexer': ('pygments.lexers.html', 'HTML', ('html',), ('*.html', '*.htm', '*.xhtml', '*.xslt'), ('text/html', 'application/xhtml+xml')), - 'HtmlPhpLexer': ('pygments.lexers.templates', 'HTML+PHP', ('html+php',), ('*.phtml',), ('application/x-php', 'application/x-httpd-php', 'application/x-httpd-php3', 'application/x-httpd-php4', 'application/x-httpd-php5')), - 'HtmlSmartyLexer': ('pygments.lexers.templates', 'HTML+Smarty', ('html+smarty',), (), ('text/html+smarty',)), - 'HttpLexer': ('pygments.lexers.textfmts', 'HTTP', ('http',), (), ()), - 'HxmlLexer': ('pygments.lexers.haxe', 'Hxml', ('haxeml', 'hxml'), ('*.hxml',), ()), - 'HyLexer': ('pygments.lexers.lisp', 'Hy', ('hylang', 'hy'), ('*.hy',), ('text/x-hy', 'application/x-hy')), - 'HybrisLexer': ('pygments.lexers.scripting', 'Hybris', ('hybris',), ('*.hyb',), ('text/x-hybris', 'application/x-hybris')), - 'IDLLexer': ('pygments.lexers.idl', 'IDL', ('idl',), ('*.pro',), ('text/idl',)), - 'IconLexer': ('pygments.lexers.unicon', 'Icon', ('icon',), ('*.icon', '*.ICON'), ()), - 'IdrisLexer': ('pygments.lexers.haskell', 'Idris', ('idris', 'idr'), ('*.idr',), ('text/x-idris',)), - 'IgorLexer': ('pygments.lexers.igor', 'Igor', ('igor', 'igorpro'), ('*.ipf',), ('text/ipf',)), - 'Inform6Lexer': ('pygments.lexers.int_fiction', 'Inform 6', ('inform6', 'i6'), ('*.inf',), ()), - 'Inform6TemplateLexer': ('pygments.lexers.int_fiction', 'Inform 6 template', ('i6t',), ('*.i6t',), ()), - 'Inform7Lexer': ('pygments.lexers.int_fiction', 'Inform 7', ('inform7', 'i7'), ('*.ni', '*.i7x'), ()), - 'IniLexer': ('pygments.lexers.configs', 'INI', ('ini', 'cfg', 'dosini'), ('*.ini', '*.cfg', '*.inf', '.editorconfig'), ('text/x-ini', 'text/inf')), - 'IoLexer': ('pygments.lexers.iolang', 'Io', ('io',), ('*.io',), ('text/x-iosrc',)), - 'IokeLexer': ('pygments.lexers.jvm', 'Ioke', ('ioke', 'ik'), ('*.ik',), ('text/x-iokesrc',)), - 'IrcLogsLexer': ('pygments.lexers.textfmts', 'IRC logs', ('irc',), ('*.weechatlog',), ('text/x-irclog',)), - 'IsabelleLexer': ('pygments.lexers.theorem', 'Isabelle', ('isabelle',), ('*.thy',), ('text/x-isabelle',)), - 'JLexer': ('pygments.lexers.j', 'J', ('j',), ('*.ijs',), ('text/x-j',)), - 'JMESPathLexer': ('pygments.lexers.jmespath', 'JMESPath', ('jmespath', 'jp'), ('*.jp',), ()), - 'JSLTLexer': ('pygments.lexers.jslt', 'JSLT', ('jslt',), ('*.jslt',), ('text/x-jslt',)), - 'JagsLexer': ('pygments.lexers.modeling', 'JAGS', ('jags',), ('*.jag', '*.bug'), ()), - 'JanetLexer': ('pygments.lexers.lisp', 'Janet', ('janet',), ('*.janet', '*.jdn'), ('text/x-janet', 'application/x-janet')), - 'JasminLexer': ('pygments.lexers.jvm', 'Jasmin', ('jasmin', 'jasminxt'), ('*.j',), ()), - 'JavaLexer': ('pygments.lexers.jvm', 'Java', ('java',), ('*.java',), ('text/x-java',)), - 'JavascriptDjangoLexer': ('pygments.lexers.templates', 'JavaScript+Django/Jinja', ('javascript+django', 'js+django', 'javascript+jinja', 'js+jinja'), ('*.js.j2', '*.js.jinja2'), ('application/x-javascript+django', 'application/x-javascript+jinja', 'text/x-javascript+django', 'text/x-javascript+jinja', 'text/javascript+django', 'text/javascript+jinja')), - 'JavascriptErbLexer': ('pygments.lexers.templates', 'JavaScript+Ruby', ('javascript+ruby', 'js+ruby', 'javascript+erb', 'js+erb'), (), ('application/x-javascript+ruby', 'text/x-javascript+ruby', 'text/javascript+ruby')), - 'JavascriptGenshiLexer': ('pygments.lexers.templates', 'JavaScript+Genshi Text', ('js+genshitext', 'js+genshi', 'javascript+genshitext', 'javascript+genshi'), (), ('application/x-javascript+genshi', 'text/x-javascript+genshi', 'text/javascript+genshi')), - 'JavascriptLexer': ('pygments.lexers.javascript', 'JavaScript', ('javascript', 'js'), ('*.js', '*.jsm', '*.mjs', '*.cjs'), ('application/javascript', 'application/x-javascript', 'text/x-javascript', 'text/javascript')), - 'JavascriptPhpLexer': ('pygments.lexers.templates', 'JavaScript+PHP', ('javascript+php', 'js+php'), (), ('application/x-javascript+php', 'text/x-javascript+php', 'text/javascript+php')), - 'JavascriptSmartyLexer': ('pygments.lexers.templates', 'JavaScript+Smarty', ('javascript+smarty', 'js+smarty'), (), ('application/x-javascript+smarty', 'text/x-javascript+smarty', 'text/javascript+smarty')), - 'JavascriptUL4Lexer': ('pygments.lexers.ul4', 'Javascript+UL4', ('js+ul4',), ('*.jsul4',), ()), - 'JclLexer': ('pygments.lexers.scripting', 'JCL', ('jcl',), ('*.jcl',), ('text/x-jcl',)), - 'JsgfLexer': ('pygments.lexers.grammar_notation', 'JSGF', ('jsgf',), ('*.jsgf',), ('application/jsgf', 'application/x-jsgf', 'text/jsgf')), - 'Json5Lexer': ('pygments.lexers.json5', 'JSON5', ('json5',), ('*.json5',), ()), - 'JsonBareObjectLexer': ('pygments.lexers.data', 'JSONBareObject', (), (), ()), - 'JsonLdLexer': ('pygments.lexers.data', 'JSON-LD', ('jsonld', 'json-ld'), ('*.jsonld',), ('application/ld+json',)), - 'JsonLexer': ('pygments.lexers.data', 'JSON', ('json', 'json-object'), ('*.json', '*.jsonl', '*.ndjson', 'Pipfile.lock'), ('application/json', 'application/json-object', 'application/x-ndjson', 'application/jsonl', 'application/json-seq')), - 'JsonnetLexer': ('pygments.lexers.jsonnet', 'Jsonnet', ('jsonnet',), ('*.jsonnet', '*.libsonnet'), ()), - 'JspLexer': ('pygments.lexers.templates', 'Java Server Page', ('jsp',), ('*.jsp',), ('application/x-jsp',)), - 'JsxLexer': ('pygments.lexers.jsx', 'JSX', ('jsx', 'react'), ('*.jsx', '*.react'), ('text/jsx', 'text/typescript-jsx')), - 'JuliaConsoleLexer': ('pygments.lexers.julia', 'Julia console', ('jlcon', 'julia-repl'), (), ()), - 'JuliaLexer': ('pygments.lexers.julia', 'Julia', ('julia', 'jl'), ('*.jl',), ('text/x-julia', 'application/x-julia')), - 'JuttleLexer': ('pygments.lexers.javascript', 'Juttle', ('juttle',), ('*.juttle',), ('application/juttle', 'application/x-juttle', 'text/x-juttle', 'text/juttle')), - 'KLexer': ('pygments.lexers.q', 'K', ('k',), ('*.k',), ()), - 'KalLexer': ('pygments.lexers.javascript', 'Kal', ('kal',), ('*.kal',), ('text/kal', 'application/kal')), - 'KconfigLexer': ('pygments.lexers.configs', 'Kconfig', ('kconfig', 'menuconfig', 'linux-config', 'kernel-config'), ('Kconfig*', '*Config.in*', 'external.in*', 'standard-modules.in'), ('text/x-kconfig',)), - 'KernelLogLexer': ('pygments.lexers.textfmts', 'Kernel log', ('kmsg', 'dmesg'), ('*.kmsg', '*.dmesg'), ()), - 'KokaLexer': ('pygments.lexers.haskell', 'Koka', ('koka',), ('*.kk', '*.kki'), ('text/x-koka',)), - 'KotlinLexer': ('pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt', '*.kts'), ('text/x-kotlin',)), - 'KuinLexer': ('pygments.lexers.kuin', 'Kuin', ('kuin',), ('*.kn',), ()), - 'KustoLexer': ('pygments.lexers.kusto', 'Kusto', ('kql', 'kusto'), ('*.kql', '*.kusto', '.csl'), ()), - 'LSLLexer': ('pygments.lexers.scripting', 'LSL', ('lsl',), ('*.lsl',), ('text/x-lsl',)), - 'LassoCssLexer': ('pygments.lexers.templates', 'CSS+Lasso', ('css+lasso',), (), ('text/css+lasso',)), - 'LassoHtmlLexer': ('pygments.lexers.templates', 'HTML+Lasso', ('html+lasso',), (), ('text/html+lasso', 'application/x-httpd-lasso', 'application/x-httpd-lasso[89]')), - 'LassoJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Lasso', ('javascript+lasso', 'js+lasso'), (), ('application/x-javascript+lasso', 'text/x-javascript+lasso', 'text/javascript+lasso')), - 'LassoLexer': ('pygments.lexers.javascript', 'Lasso', ('lasso', 'lassoscript'), ('*.lasso', '*.lasso[89]'), ('text/x-lasso',)), - 'LassoXmlLexer': ('pygments.lexers.templates', 'XML+Lasso', ('xml+lasso',), (), ('application/xml+lasso',)), - 'LdaprcLexer': ('pygments.lexers.ldap', 'LDAP configuration file', ('ldapconf', 'ldaprc'), ('.ldaprc', 'ldaprc', 'ldap.conf'), ('text/x-ldapconf',)), - 'LdifLexer': ('pygments.lexers.ldap', 'LDIF', ('ldif',), ('*.ldif',), ('text/x-ldif',)), - 'Lean3Lexer': ('pygments.lexers.lean', 'Lean', ('lean', 'lean3'), ('*.lean',), ('text/x-lean', 'text/x-lean3')), - 'Lean4Lexer': ('pygments.lexers.lean', 'Lean4', ('lean4',), ('*.lean',), ('text/x-lean4',)), - 'LessCssLexer': ('pygments.lexers.css', 'LessCss', ('less',), ('*.less',), ('text/x-less-css',)), - 'LighttpdConfLexer': ('pygments.lexers.configs', 'Lighttpd configuration file', ('lighttpd', 'lighty'), ('lighttpd.conf',), ('text/x-lighttpd-conf',)), - 'LilyPondLexer': ('pygments.lexers.lilypond', 'LilyPond', ('lilypond',), ('*.ly',), ()), - 'LimboLexer': ('pygments.lexers.inferno', 'Limbo', ('limbo',), ('*.b',), ('text/limbo',)), - 'LiquidLexer': ('pygments.lexers.templates', 'liquid', ('liquid',), ('*.liquid',), ()), - 'LiterateAgdaLexer': ('pygments.lexers.haskell', 'Literate Agda', ('literate-agda', 'lagda'), ('*.lagda',), ('text/x-literate-agda',)), - 'LiterateCryptolLexer': ('pygments.lexers.haskell', 'Literate Cryptol', ('literate-cryptol', 'lcryptol', 'lcry'), ('*.lcry',), ('text/x-literate-cryptol',)), - 'LiterateHaskellLexer': ('pygments.lexers.haskell', 'Literate Haskell', ('literate-haskell', 'lhaskell', 'lhs'), ('*.lhs',), ('text/x-literate-haskell',)), - 'LiterateIdrisLexer': ('pygments.lexers.haskell', 'Literate Idris', ('literate-idris', 'lidris', 'lidr'), ('*.lidr',), ('text/x-literate-idris',)), - 'LiveScriptLexer': ('pygments.lexers.javascript', 'LiveScript', ('livescript', 'live-script'), ('*.ls',), ('text/livescript',)), - 'LlvmLexer': ('pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)), - 'LlvmMirBodyLexer': ('pygments.lexers.asm', 'LLVM-MIR Body', ('llvm-mir-body',), (), ()), - 'LlvmMirLexer': ('pygments.lexers.asm', 'LLVM-MIR', ('llvm-mir',), ('*.mir',), ()), - 'LogosLexer': ('pygments.lexers.objective', 'Logos', ('logos',), ('*.x', '*.xi', '*.xm', '*.xmi'), ('text/x-logos',)), - 'LogtalkLexer': ('pygments.lexers.prolog', 'Logtalk', ('logtalk',), ('*.lgt', '*.logtalk'), ('text/x-logtalk',)), - 'LuaLexer': ('pygments.lexers.scripting', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')), - 'LuauLexer': ('pygments.lexers.scripting', 'Luau', ('luau',), ('*.luau',), ()), - 'MCFunctionLexer': ('pygments.lexers.minecraft', 'MCFunction', ('mcfunction', 'mcf'), ('*.mcfunction',), ('text/mcfunction',)), - 'MCSchemaLexer': ('pygments.lexers.minecraft', 'MCSchema', ('mcschema',), ('*.mcschema',), ('text/mcschema',)), - 'MIMELexer': ('pygments.lexers.mime', 'MIME', ('mime',), (), ('multipart/mixed', 'multipart/related', 'multipart/alternative')), - 'MIPSLexer': ('pygments.lexers.mips', 'MIPS', ('mips',), ('*.mips', '*.MIPS'), ()), - 'MOOCodeLexer': ('pygments.lexers.scripting', 'MOOCode', ('moocode', 'moo'), ('*.moo',), ('text/x-moocode',)), - 'MSDOSSessionLexer': ('pygments.lexers.shell', 'MSDOS Session', ('doscon',), (), ()), - 'Macaulay2Lexer': ('pygments.lexers.macaulay2', 'Macaulay2', ('macaulay2',), ('*.m2',), ()), - 'MakefileLexer': ('pygments.lexers.make', 'Makefile', ('make', 'makefile', 'mf', 'bsdmake'), ('*.mak', '*.mk', 'Makefile', 'makefile', 'Makefile.*', 'GNUmakefile'), ('text/x-makefile',)), - 'MakoCssLexer': ('pygments.lexers.templates', 'CSS+Mako', ('css+mako',), (), ('text/css+mako',)), - 'MakoHtmlLexer': ('pygments.lexers.templates', 'HTML+Mako', ('html+mako',), (), ('text/html+mako',)), - 'MakoJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Mako', ('javascript+mako', 'js+mako'), (), ('application/x-javascript+mako', 'text/x-javascript+mako', 'text/javascript+mako')), - 'MakoLexer': ('pygments.lexers.templates', 'Mako', ('mako',), ('*.mao',), ('application/x-mako',)), - 'MakoXmlLexer': ('pygments.lexers.templates', 'XML+Mako', ('xml+mako',), (), ('application/xml+mako',)), - 'MapleLexer': ('pygments.lexers.maple', 'Maple', ('maple',), ('*.mpl', '*.mi', '*.mm'), ('text/x-maple',)), - 'MaqlLexer': ('pygments.lexers.business', 'MAQL', ('maql',), ('*.maql',), ('text/x-gooddata-maql', 'application/x-gooddata-maql')), - 'MarkdownLexer': ('pygments.lexers.markup', 'Markdown', ('markdown', 'md'), ('*.md', '*.markdown'), ('text/x-markdown',)), - 'MaskLexer': ('pygments.lexers.javascript', 'Mask', ('mask',), ('*.mask',), ('text/x-mask',)), - 'MasonLexer': ('pygments.lexers.templates', 'Mason', ('mason',), ('*.m', '*.mhtml', '*.mc', '*.mi', 'autohandler', 'dhandler'), ('application/x-mason',)), - 'MathematicaLexer': ('pygments.lexers.algebra', 'Mathematica', ('mathematica', 'mma', 'nb'), ('*.nb', '*.cdf', '*.nbp', '*.ma'), ('application/mathematica', 'application/vnd.wolfram.mathematica', 'application/vnd.wolfram.mathematica.package', 'application/vnd.wolfram.cdf')), - 'MatlabLexer': ('pygments.lexers.matlab', 'Matlab', ('matlab',), ('*.m',), ('text/matlab',)), - 'MatlabSessionLexer': ('pygments.lexers.matlab', 'Matlab session', ('matlabsession',), (), ()), - 'MaximaLexer': ('pygments.lexers.maxima', 'Maxima', ('maxima', 'macsyma'), ('*.mac', '*.max'), ()), - 'MesonLexer': ('pygments.lexers.meson', 'Meson', ('meson', 'meson.build'), ('meson.build', 'meson_options.txt'), ('text/x-meson',)), - 'MiniDLexer': ('pygments.lexers.d', 'MiniD', ('minid',), (), ('text/x-minidsrc',)), - 'MiniScriptLexer': ('pygments.lexers.scripting', 'MiniScript', ('miniscript', 'ms'), ('*.ms',), ('text/x-minicript', 'application/x-miniscript')), - 'ModelicaLexer': ('pygments.lexers.modeling', 'Modelica', ('modelica',), ('*.mo',), ('text/x-modelica',)), - 'Modula2Lexer': ('pygments.lexers.modula2', 'Modula-2', ('modula2', 'm2'), ('*.def', '*.mod'), ('text/x-modula2',)), - 'MoinWikiLexer': ('pygments.lexers.markup', 'MoinMoin/Trac Wiki markup', ('trac-wiki', 'moin'), (), ('text/x-trac-wiki',)), - 'MojoLexer': ('pygments.lexers.mojo', 'Mojo', ('mojo', '🔥'), ('*.mojo', '*.🔥'), ('text/x-mojo', 'application/x-mojo')), - 'MonkeyLexer': ('pygments.lexers.basic', 'Monkey', ('monkey',), ('*.monkey',), ('text/x-monkey',)), - 'MonteLexer': ('pygments.lexers.monte', 'Monte', ('monte',), ('*.mt',), ()), - 'MoonScriptLexer': ('pygments.lexers.scripting', 'MoonScript', ('moonscript', 'moon'), ('*.moon',), ('text/x-moonscript', 'application/x-moonscript')), - 'MoselLexer': ('pygments.lexers.mosel', 'Mosel', ('mosel',), ('*.mos',), ()), - 'MozPreprocCssLexer': ('pygments.lexers.markup', 'CSS+mozpreproc', ('css+mozpreproc',), ('*.css.in',), ()), - 'MozPreprocHashLexer': ('pygments.lexers.markup', 'mozhashpreproc', ('mozhashpreproc',), (), ()), - 'MozPreprocJavascriptLexer': ('pygments.lexers.markup', 'Javascript+mozpreproc', ('javascript+mozpreproc',), ('*.js.in',), ()), - 'MozPreprocPercentLexer': ('pygments.lexers.markup', 'mozpercentpreproc', ('mozpercentpreproc',), (), ()), - 'MozPreprocXulLexer': ('pygments.lexers.markup', 'XUL+mozpreproc', ('xul+mozpreproc',), ('*.xul.in',), ()), - 'MqlLexer': ('pygments.lexers.c_like', 'MQL', ('mql', 'mq4', 'mq5', 'mql4', 'mql5'), ('*.mq4', '*.mq5', '*.mqh'), ('text/x-mql',)), - 'MscgenLexer': ('pygments.lexers.dsls', 'Mscgen', ('mscgen', 'msc'), ('*.msc',), ()), - 'MuPADLexer': ('pygments.lexers.algebra', 'MuPAD', ('mupad',), ('*.mu',), ()), - 'MxmlLexer': ('pygments.lexers.actionscript', 'MXML', ('mxml',), ('*.mxml',), ()), - 'MySqlLexer': ('pygments.lexers.sql', 'MySQL', ('mysql',), (), ('text/x-mysql',)), - 'MyghtyCssLexer': ('pygments.lexers.templates', 'CSS+Myghty', ('css+myghty',), (), ('text/css+myghty',)), - 'MyghtyHtmlLexer': ('pygments.lexers.templates', 'HTML+Myghty', ('html+myghty',), (), ('text/html+myghty',)), - 'MyghtyJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Myghty', ('javascript+myghty', 'js+myghty'), (), ('application/x-javascript+myghty', 'text/x-javascript+myghty', 'text/javascript+mygthy')), - 'MyghtyLexer': ('pygments.lexers.templates', 'Myghty', ('myghty',), ('*.myt', 'autodelegate'), ('application/x-myghty',)), - 'MyghtyXmlLexer': ('pygments.lexers.templates', 'XML+Myghty', ('xml+myghty',), (), ('application/xml+myghty',)), - 'NCLLexer': ('pygments.lexers.ncl', 'NCL', ('ncl',), ('*.ncl',), ('text/ncl',)), - 'NSISLexer': ('pygments.lexers.installers', 'NSIS', ('nsis', 'nsi', 'nsh'), ('*.nsi', '*.nsh'), ('text/x-nsis',)), - 'NasmLexer': ('pygments.lexers.asm', 'NASM', ('nasm',), ('*.asm', '*.ASM', '*.nasm'), ('text/x-nasm',)), - 'NasmObjdumpLexer': ('pygments.lexers.asm', 'objdump-nasm', ('objdump-nasm',), ('*.objdump-intel',), ('text/x-nasm-objdump',)), - 'NemerleLexer': ('pygments.lexers.dotnet', 'Nemerle', ('nemerle',), ('*.n',), ('text/x-nemerle',)), - 'NesCLexer': ('pygments.lexers.c_like', 'nesC', ('nesc',), ('*.nc',), ('text/x-nescsrc',)), - 'NestedTextLexer': ('pygments.lexers.configs', 'NestedText', ('nestedtext', 'nt'), ('*.nt',), ()), - 'NewLispLexer': ('pygments.lexers.lisp', 'NewLisp', ('newlisp',), ('*.lsp', '*.nl', '*.kif'), ('text/x-newlisp', 'application/x-newlisp')), - 'NewspeakLexer': ('pygments.lexers.smalltalk', 'Newspeak', ('newspeak',), ('*.ns2',), ('text/x-newspeak',)), - 'NginxConfLexer': ('pygments.lexers.configs', 'Nginx configuration file', ('nginx',), ('nginx.conf',), ('text/x-nginx-conf',)), - 'NimrodLexer': ('pygments.lexers.nimrod', 'Nimrod', ('nimrod', 'nim'), ('*.nim', '*.nimrod'), ('text/x-nim',)), - 'NitLexer': ('pygments.lexers.nit', 'Nit', ('nit',), ('*.nit',), ()), - 'NixLexer': ('pygments.lexers.nix', 'Nix', ('nixos', 'nix'), ('*.nix',), ('text/x-nix',)), - 'NodeConsoleLexer': ('pygments.lexers.javascript', 'Node.js REPL console session', ('nodejsrepl',), (), ('text/x-nodejsrepl',)), - 'NotmuchLexer': ('pygments.lexers.textfmts', 'Notmuch', ('notmuch',), (), ()), - 'NuSMVLexer': ('pygments.lexers.smv', 'NuSMV', ('nusmv',), ('*.smv',), ()), - 'NumPyLexer': ('pygments.lexers.python', 'NumPy', ('numpy',), (), ()), - 'NumbaIRLexer': ('pygments.lexers.numbair', 'Numba_IR', ('numba_ir', 'numbair'), ('*.numba_ir',), ('text/x-numba_ir', 'text/x-numbair')), - 'ObjdumpLexer': ('pygments.lexers.asm', 'objdump', ('objdump',), ('*.objdump',), ('text/x-objdump',)), - 'ObjectiveCLexer': ('pygments.lexers.objective', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m', '*.h'), ('text/x-objective-c',)), - 'ObjectiveCppLexer': ('pygments.lexers.objective', 'Objective-C++', ('objective-c++', 'objectivec++', 'obj-c++', 'objc++'), ('*.mm', '*.hh'), ('text/x-objective-c++',)), - 'ObjectiveJLexer': ('pygments.lexers.javascript', 'Objective-J', ('objective-j', 'objectivej', 'obj-j', 'objj'), ('*.j',), ('text/x-objective-j',)), - 'OcamlLexer': ('pygments.lexers.ml', 'OCaml', ('ocaml',), ('*.ml', '*.mli', '*.mll', '*.mly'), ('text/x-ocaml',)), - 'OctaveLexer': ('pygments.lexers.matlab', 'Octave', ('octave',), ('*.m',), ('text/octave',)), - 'OdinLexer': ('pygments.lexers.archetype', 'ODIN', ('odin',), ('*.odin',), ('text/odin',)), - 'OmgIdlLexer': ('pygments.lexers.c_like', 'OMG Interface Definition Language', ('omg-idl',), ('*.idl', '*.pidl'), ()), - 'OocLexer': ('pygments.lexers.ooc', 'Ooc', ('ooc',), ('*.ooc',), ('text/x-ooc',)), - 'OpaLexer': ('pygments.lexers.ml', 'Opa', ('opa',), ('*.opa',), ('text/x-opa',)), - 'OpenEdgeLexer': ('pygments.lexers.business', 'OpenEdge ABL', ('openedge', 'abl', 'progress'), ('*.p', '*.cls'), ('text/x-openedge', 'application/x-openedge')), - 'OpenScadLexer': ('pygments.lexers.openscad', 'OpenSCAD', ('openscad',), ('*.scad',), ('application/x-openscad',)), - 'OrgLexer': ('pygments.lexers.markup', 'Org Mode', ('org', 'orgmode', 'org-mode'), ('*.org',), ('text/org',)), - 'OutputLexer': ('pygments.lexers.special', 'Text output', ('output',), (), ()), - 'PacmanConfLexer': ('pygments.lexers.configs', 'PacmanConf', ('pacmanconf',), ('pacman.conf',), ()), - 'PanLexer': ('pygments.lexers.dsls', 'Pan', ('pan',), ('*.pan',), ()), - 'ParaSailLexer': ('pygments.lexers.parasail', 'ParaSail', ('parasail',), ('*.psi', '*.psl'), ('text/x-parasail',)), - 'PawnLexer': ('pygments.lexers.pawn', 'Pawn', ('pawn',), ('*.p', '*.pwn', '*.inc'), ('text/x-pawn',)), - 'PddlLexer': ('pygments.lexers.pddl', 'PDDL', ('pddl',), ('*.pddl',), ()), - 'PegLexer': ('pygments.lexers.grammar_notation', 'PEG', ('peg',), ('*.peg',), ('text/x-peg',)), - 'Perl6Lexer': ('pygments.lexers.perl', 'Perl6', ('perl6', 'pl6', 'raku'), ('*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6', '*.6pm', '*.p6m', '*.pm6', '*.t', '*.raku', '*.rakumod', '*.rakutest', '*.rakudoc'), ('text/x-perl6', 'application/x-perl6')), - 'PerlLexer': ('pygments.lexers.perl', 'Perl', ('perl', 'pl'), ('*.pl', '*.pm', '*.t', '*.perl'), ('text/x-perl', 'application/x-perl')), - 'PhixLexer': ('pygments.lexers.phix', 'Phix', ('phix',), ('*.exw',), ('text/x-phix',)), - 'PhpLexer': ('pygments.lexers.php', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)), - 'PigLexer': ('pygments.lexers.jvm', 'Pig', ('pig',), ('*.pig',), ('text/x-pig',)), - 'PikeLexer': ('pygments.lexers.c_like', 'Pike', ('pike',), ('*.pike', '*.pmod'), ('text/x-pike',)), - 'PkgConfigLexer': ('pygments.lexers.configs', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()), - 'PlPgsqlLexer': ('pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)), - 'PointlessLexer': ('pygments.lexers.pointless', 'Pointless', ('pointless',), ('*.ptls',), ()), - 'PonyLexer': ('pygments.lexers.pony', 'Pony', ('pony',), ('*.pony',), ()), - 'PortugolLexer': ('pygments.lexers.pascal', 'Portugol', ('portugol',), ('*.alg', '*.portugol'), ()), - 'PostScriptLexer': ('pygments.lexers.graphics', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)), - 'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)), - 'PostgresExplainLexer': ('pygments.lexers.sql', 'PostgreSQL EXPLAIN dialect', ('postgres-explain',), ('*.explain',), ('text/x-postgresql-explain',)), - 'PostgresLexer': ('pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)), - 'PovrayLexer': ('pygments.lexers.graphics', 'POVRay', ('pov',), ('*.pov', '*.inc'), ('text/x-povray',)), - 'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'pwsh', 'posh', 'ps1', 'psm1'), ('*.ps1', '*.psm1'), ('text/x-powershell',)), - 'PowerShellSessionLexer': ('pygments.lexers.shell', 'PowerShell Session', ('pwsh-session', 'ps1con'), (), ()), - 'PraatLexer': ('pygments.lexers.praat', 'Praat', ('praat',), ('*.praat', '*.proc', '*.psc'), ()), - 'ProcfileLexer': ('pygments.lexers.procfile', 'Procfile', ('procfile',), ('Procfile',), ()), - 'PrologLexer': ('pygments.lexers.prolog', 'Prolog', ('prolog',), ('*.ecl', '*.prolog', '*.pro', '*.pl'), ('text/x-prolog',)), - 'PromQLLexer': ('pygments.lexers.promql', 'PromQL', ('promql',), ('*.promql',), ()), - 'PromelaLexer': ('pygments.lexers.c_like', 'Promela', ('promela',), ('*.pml', '*.prom', '*.prm', '*.promela', '*.pr', '*.pm'), ('text/x-promela',)), - 'PropertiesLexer': ('pygments.lexers.configs', 'Properties', ('properties', 'jproperties'), ('*.properties',), ('text/x-java-properties',)), - 'ProtoBufLexer': ('pygments.lexers.dsls', 'Protocol Buffer', ('protobuf', 'proto'), ('*.proto',), ()), - 'PrqlLexer': ('pygments.lexers.prql', 'PRQL', ('prql',), ('*.prql',), ('application/prql', 'application/x-prql')), - 'PsyshConsoleLexer': ('pygments.lexers.php', 'PsySH console session for PHP', ('psysh',), (), ()), - 'PtxLexer': ('pygments.lexers.ptx', 'PTX', ('ptx',), ('*.ptx',), ('text/x-ptx',)), - 'PugLexer': ('pygments.lexers.html', 'Pug', ('pug', 'jade'), ('*.pug', '*.jade'), ('text/x-pug', 'text/x-jade')), - 'PuppetLexer': ('pygments.lexers.dsls', 'Puppet', ('puppet',), ('*.pp',), ()), - 'PyPyLogLexer': ('pygments.lexers.console', 'PyPy Log', ('pypylog', 'pypy'), ('*.pypylog',), ('application/x-pypylog',)), - 'Python2Lexer': ('pygments.lexers.python', 'Python 2.x', ('python2', 'py2'), (), ('text/x-python2', 'application/x-python2')), - 'Python2TracebackLexer': ('pygments.lexers.python', 'Python 2.x Traceback', ('py2tb',), ('*.py2tb',), ('text/x-python2-traceback',)), - 'PythonConsoleLexer': ('pygments.lexers.python', 'Python console session', ('pycon', 'python-console'), (), ('text/x-python-doctest',)), - 'PythonLexer': ('pygments.lexers.python', 'Python', ('python', 'py', 'sage', 'python3', 'py3', 'bazel', 'starlark', 'pyi'), ('*.py', '*.pyw', '*.pyi', '*.jy', '*.sage', '*.sc', 'SConstruct', 'SConscript', '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE', '*.tac'), ('text/x-python', 'application/x-python', 'text/x-python3', 'application/x-python3')), - 'PythonTracebackLexer': ('pygments.lexers.python', 'Python Traceback', ('pytb', 'py3tb'), ('*.pytb', '*.py3tb'), ('text/x-python-traceback', 'text/x-python3-traceback')), - 'PythonUL4Lexer': ('pygments.lexers.ul4', 'Python+UL4', ('py+ul4',), ('*.pyul4',), ()), - 'QBasicLexer': ('pygments.lexers.basic', 'QBasic', ('qbasic', 'basic'), ('*.BAS', '*.bas'), ('text/basic',)), - 'QLexer': ('pygments.lexers.q', 'Q', ('q',), ('*.q',), ()), - 'QVToLexer': ('pygments.lexers.qvt', 'QVTO', ('qvto', 'qvt'), ('*.qvto',), ()), - 'QlikLexer': ('pygments.lexers.qlik', 'Qlik', ('qlik', 'qlikview', 'qliksense', 'qlikscript'), ('*.qvs', '*.qvw'), ()), - 'QmlLexer': ('pygments.lexers.webmisc', 'QML', ('qml', 'qbs'), ('*.qml', '*.qbs'), ('application/x-qml', 'application/x-qt.qbs+qml')), - 'RConsoleLexer': ('pygments.lexers.r', 'RConsole', ('rconsole', 'rout'), ('*.Rout',), ()), - 'RNCCompactLexer': ('pygments.lexers.rnc', 'Relax-NG Compact', ('rng-compact', 'rnc'), ('*.rnc',), ()), - 'RPMSpecLexer': ('pygments.lexers.installers', 'RPMSpec', ('spec',), ('*.spec',), ('text/x-rpm-spec',)), - 'RacketLexer': ('pygments.lexers.lisp', 'Racket', ('racket', 'rkt'), ('*.rkt', '*.rktd', '*.rktl'), ('text/x-racket', 'application/x-racket')), - 'RagelCLexer': ('pygments.lexers.parsers', 'Ragel in C Host', ('ragel-c',), ('*.rl',), ()), - 'RagelCppLexer': ('pygments.lexers.parsers', 'Ragel in CPP Host', ('ragel-cpp',), ('*.rl',), ()), - 'RagelDLexer': ('pygments.lexers.parsers', 'Ragel in D Host', ('ragel-d',), ('*.rl',), ()), - 'RagelEmbeddedLexer': ('pygments.lexers.parsers', 'Embedded Ragel', ('ragel-em',), ('*.rl',), ()), - 'RagelJavaLexer': ('pygments.lexers.parsers', 'Ragel in Java Host', ('ragel-java',), ('*.rl',), ()), - 'RagelLexer': ('pygments.lexers.parsers', 'Ragel', ('ragel',), (), ()), - 'RagelObjectiveCLexer': ('pygments.lexers.parsers', 'Ragel in Objective C Host', ('ragel-objc',), ('*.rl',), ()), - 'RagelRubyLexer': ('pygments.lexers.parsers', 'Ragel in Ruby Host', ('ragel-ruby', 'ragel-rb'), ('*.rl',), ()), - 'RawTokenLexer': ('pygments.lexers.special', 'Raw token data', (), (), ('application/x-pygments-tokens',)), - 'RdLexer': ('pygments.lexers.r', 'Rd', ('rd',), ('*.Rd',), ('text/x-r-doc',)), - 'ReasonLexer': ('pygments.lexers.ml', 'ReasonML', ('reasonml', 'reason'), ('*.re', '*.rei'), ('text/x-reasonml',)), - 'RebolLexer': ('pygments.lexers.rebol', 'REBOL', ('rebol',), ('*.r', '*.r3', '*.reb'), ('text/x-rebol',)), - 'RedLexer': ('pygments.lexers.rebol', 'Red', ('red', 'red/system'), ('*.red', '*.reds'), ('text/x-red', 'text/x-red-system')), - 'RedcodeLexer': ('pygments.lexers.esoteric', 'Redcode', ('redcode',), ('*.cw',), ()), - 'RegeditLexer': ('pygments.lexers.configs', 'reg', ('registry',), ('*.reg',), ('text/x-windows-registry',)), - 'RegoLexer': ('pygments.lexers.rego', 'Rego', ('rego',), ('*.rego',), ('text/x-rego',)), - 'ResourceLexer': ('pygments.lexers.resource', 'ResourceBundle', ('resourcebundle', 'resource'), (), ()), - 'RexxLexer': ('pygments.lexers.scripting', 'Rexx', ('rexx', 'arexx'), ('*.rexx', '*.rex', '*.rx', '*.arexx'), ('text/x-rexx',)), - 'RhtmlLexer': ('pygments.lexers.templates', 'RHTML', ('rhtml', 'html+erb', 'html+ruby'), ('*.rhtml',), ('text/html+ruby',)), - 'RideLexer': ('pygments.lexers.ride', 'Ride', ('ride',), ('*.ride',), ('text/x-ride',)), - 'RitaLexer': ('pygments.lexers.rita', 'Rita', ('rita',), ('*.rita',), ('text/rita',)), - 'RoboconfGraphLexer': ('pygments.lexers.roboconf', 'Roboconf Graph', ('roboconf-graph',), ('*.graph',), ()), - 'RoboconfInstancesLexer': ('pygments.lexers.roboconf', 'Roboconf Instances', ('roboconf-instances',), ('*.instances',), ()), - 'RobotFrameworkLexer': ('pygments.lexers.robotframework', 'RobotFramework', ('robotframework',), ('*.robot', '*.resource'), ('text/x-robotframework',)), - 'RqlLexer': ('pygments.lexers.sql', 'RQL', ('rql',), ('*.rql',), ('text/x-rql',)), - 'RslLexer': ('pygments.lexers.dsls', 'RSL', ('rsl',), ('*.rsl',), ('text/rsl',)), - 'RstLexer': ('pygments.lexers.markup', 'reStructuredText', ('restructuredtext', 'rst', 'rest'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')), - 'RtsLexer': ('pygments.lexers.trafficscript', 'TrafficScript', ('trafficscript', 'rts'), ('*.rts',), ()), - 'RubyConsoleLexer': ('pygments.lexers.ruby', 'Ruby irb session', ('rbcon', 'irb'), (), ('text/x-ruby-shellsession',)), - 'RubyLexer': ('pygments.lexers.ruby', 'Ruby', ('ruby', 'rb', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby', 'Gemfile', 'Vagrantfile'), ('text/x-ruby', 'application/x-ruby')), - 'RustLexer': ('pygments.lexers.rust', 'Rust', ('rust', 'rs'), ('*.rs', '*.rs.in'), ('text/rust', 'text/x-rust')), - 'SASLexer': ('pygments.lexers.sas', 'SAS', ('sas',), ('*.SAS', '*.sas'), ('text/x-sas', 'text/sas', 'application/x-sas')), - 'SLexer': ('pygments.lexers.r', 'S', ('splus', 's', 'r'), ('*.S', '*.R', '.Rhistory', '.Rprofile', '.Renviron'), ('text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r', 'text/x-R', 'text/x-r-history', 'text/x-r-profile')), - 'SMLLexer': ('pygments.lexers.ml', 'Standard ML', ('sml',), ('*.sml', '*.sig', '*.fun'), ('text/x-standardml', 'application/x-standardml')), - 'SNBTLexer': ('pygments.lexers.minecraft', 'SNBT', ('snbt',), ('*.snbt',), ('text/snbt',)), - 'SarlLexer': ('pygments.lexers.jvm', 'SARL', ('sarl',), ('*.sarl',), ('text/x-sarl',)), - 'SassLexer': ('pygments.lexers.css', 'Sass', ('sass',), ('*.sass',), ('text/x-sass',)), - 'SaviLexer': ('pygments.lexers.savi', 'Savi', ('savi',), ('*.savi',), ()), - 'ScalaLexer': ('pygments.lexers.jvm', 'Scala', ('scala',), ('*.scala',), ('text/x-scala',)), - 'ScamlLexer': ('pygments.lexers.html', 'Scaml', ('scaml',), ('*.scaml',), ('text/x-scaml',)), - 'ScdocLexer': ('pygments.lexers.scdoc', 'scdoc', ('scdoc', 'scd'), ('*.scd', '*.scdoc'), ()), - 'SchemeLexer': ('pygments.lexers.lisp', 'Scheme', ('scheme', 'scm'), ('*.scm', '*.ss'), ('text/x-scheme', 'application/x-scheme')), - 'ScilabLexer': ('pygments.lexers.matlab', 'Scilab', ('scilab',), ('*.sci', '*.sce', '*.tst'), ('text/scilab',)), - 'ScssLexer': ('pygments.lexers.css', 'SCSS', ('scss',), ('*.scss',), ('text/x-scss',)), - 'SedLexer': ('pygments.lexers.textedit', 'Sed', ('sed', 'gsed', 'ssed'), ('*.sed', '*.[gs]sed'), ('text/x-sed',)), - 'ShExCLexer': ('pygments.lexers.rdf', 'ShExC', ('shexc', 'shex'), ('*.shex',), ('text/shex',)), - 'ShenLexer': ('pygments.lexers.lisp', 'Shen', ('shen',), ('*.shen',), ('text/x-shen', 'application/x-shen')), - 'SieveLexer': ('pygments.lexers.sieve', 'Sieve', ('sieve',), ('*.siv', '*.sieve'), ()), - 'SilverLexer': ('pygments.lexers.verification', 'Silver', ('silver',), ('*.sil', '*.vpr'), ()), - 'SingularityLexer': ('pygments.lexers.configs', 'Singularity', ('singularity',), ('*.def', 'Singularity'), ()), - 'SlashLexer': ('pygments.lexers.slash', 'Slash', ('slash',), ('*.sla',), ()), - 'SlimLexer': ('pygments.lexers.webmisc', 'Slim', ('slim',), ('*.slim',), ('text/x-slim',)), - 'SlurmBashLexer': ('pygments.lexers.shell', 'Slurm', ('slurm', 'sbatch'), ('*.sl',), ()), - 'SmaliLexer': ('pygments.lexers.dalvik', 'Smali', ('smali',), ('*.smali',), ('text/smali',)), - 'SmalltalkLexer': ('pygments.lexers.smalltalk', 'Smalltalk', ('smalltalk', 'squeak', 'st'), ('*.st',), ('text/x-smalltalk',)), - 'SmartGameFormatLexer': ('pygments.lexers.sgf', 'SmartGameFormat', ('sgf',), ('*.sgf',), ()), - 'SmartyLexer': ('pygments.lexers.templates', 'Smarty', ('smarty',), ('*.tpl',), ('application/x-smarty',)), - 'SmithyLexer': ('pygments.lexers.smithy', 'Smithy', ('smithy',), ('*.smithy',), ()), - 'SnobolLexer': ('pygments.lexers.snobol', 'Snobol', ('snobol',), ('*.snobol',), ('text/x-snobol',)), - 'SnowballLexer': ('pygments.lexers.dsls', 'Snowball', ('snowball',), ('*.sbl',), ()), - 'SolidityLexer': ('pygments.lexers.solidity', 'Solidity', ('solidity',), ('*.sol',), ()), - 'SoongLexer': ('pygments.lexers.soong', 'Soong', ('androidbp', 'bp', 'soong'), ('Android.bp',), ()), - 'SophiaLexer': ('pygments.lexers.sophia', 'Sophia', ('sophia',), ('*.aes',), ()), - 'SourcePawnLexer': ('pygments.lexers.pawn', 'SourcePawn', ('sp',), ('*.sp',), ('text/x-sourcepawn',)), - 'SourcesListLexer': ('pygments.lexers.installers', 'Debian Sourcelist', ('debsources', 'sourceslist', 'sources.list'), ('sources.list',), ()), - 'SparqlLexer': ('pygments.lexers.rdf', 'SPARQL', ('sparql',), ('*.rq', '*.sparql'), ('application/sparql-query',)), - 'SpiceLexer': ('pygments.lexers.spice', 'Spice', ('spice', 'spicelang'), ('*.spice',), ('text/x-spice',)), - 'SqlJinjaLexer': ('pygments.lexers.templates', 'SQL+Jinja', ('sql+jinja',), ('*.sql', '*.sql.j2', '*.sql.jinja2'), ()), - 'SqlLexer': ('pygments.lexers.sql', 'SQL', ('sql',), ('*.sql',), ('text/x-sql',)), - 'SqliteConsoleLexer': ('pygments.lexers.sql', 'sqlite3con', ('sqlite3',), ('*.sqlite3-console',), ('text/x-sqlite3-console',)), - 'SquidConfLexer': ('pygments.lexers.configs', 'SquidConf', ('squidconf', 'squid.conf', 'squid'), ('squid.conf',), ('text/x-squidconf',)), - 'SrcinfoLexer': ('pygments.lexers.srcinfo', 'Srcinfo', ('srcinfo',), ('.SRCINFO',), ()), - 'SspLexer': ('pygments.lexers.templates', 'Scalate Server Page', ('ssp',), ('*.ssp',), ('application/x-ssp',)), - 'StanLexer': ('pygments.lexers.modeling', 'Stan', ('stan',), ('*.stan',), ()), - 'StataLexer': ('pygments.lexers.stata', 'Stata', ('stata', 'do'), ('*.do', '*.ado'), ('text/x-stata', 'text/stata', 'application/x-stata')), - 'SuperColliderLexer': ('pygments.lexers.supercollider', 'SuperCollider', ('supercollider', 'sc'), ('*.sc', '*.scd'), ('application/supercollider', 'text/supercollider')), - 'SwiftLexer': ('pygments.lexers.objective', 'Swift', ('swift',), ('*.swift',), ('text/x-swift',)), - 'SwigLexer': ('pygments.lexers.c_like', 'SWIG', ('swig',), ('*.swg', '*.i'), ('text/swig',)), - 'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('systemverilog', 'sv'), ('*.sv', '*.svh'), ('text/x-systemverilog',)), - 'SystemdLexer': ('pygments.lexers.configs', 'Systemd', ('systemd',), ('*.service', '*.socket', '*.device', '*.mount', '*.automount', '*.swap', '*.target', '*.path', '*.timer', '*.slice', '*.scope'), ()), - 'TAPLexer': ('pygments.lexers.testing', 'TAP', ('tap',), ('*.tap',), ()), - 'TNTLexer': ('pygments.lexers.tnt', 'Typographic Number Theory', ('tnt',), ('*.tnt',), ()), - 'TOMLLexer': ('pygments.lexers.configs', 'TOML', ('toml',), ('*.toml', 'Pipfile', 'poetry.lock'), ('application/toml',)), - 'TableGenLexer': ('pygments.lexers.tablegen', 'TableGen', ('tablegen', 'td'), ('*.td',), ()), - 'TactLexer': ('pygments.lexers.tact', 'Tact', ('tact',), ('*.tact',), ()), - 'Tads3Lexer': ('pygments.lexers.int_fiction', 'TADS 3', ('tads3',), ('*.t',), ()), - 'TalLexer': ('pygments.lexers.tal', 'Tal', ('tal', 'uxntal'), ('*.tal',), ('text/x-uxntal',)), - 'TasmLexer': ('pygments.lexers.asm', 'TASM', ('tasm',), ('*.asm', '*.ASM', '*.tasm'), ('text/x-tasm',)), - 'TclLexer': ('pygments.lexers.tcl', 'Tcl', ('tcl',), ('*.tcl', '*.rvt'), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')), - 'TcshLexer': ('pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)), - 'TcshSessionLexer': ('pygments.lexers.shell', 'Tcsh Session', ('tcshcon',), (), ()), - 'TeaTemplateLexer': ('pygments.lexers.templates', 'Tea', ('tea',), ('*.tea',), ('text/x-tea',)), - 'TealLexer': ('pygments.lexers.teal', 'teal', ('teal',), ('*.teal',), ()), - 'TeraTermLexer': ('pygments.lexers.teraterm', 'Tera Term macro', ('teratermmacro', 'teraterm', 'ttl'), ('*.ttl',), ('text/x-teratermmacro',)), - 'TermcapLexer': ('pygments.lexers.configs', 'Termcap', ('termcap',), ('termcap', 'termcap.src'), ()), - 'TerminfoLexer': ('pygments.lexers.configs', 'Terminfo', ('terminfo',), ('terminfo', 'terminfo.src'), ()), - 'TerraformLexer': ('pygments.lexers.configs', 'Terraform', ('terraform', 'tf', 'hcl'), ('*.tf', '*.hcl'), ('application/x-tf', 'application/x-terraform')), - 'TexLexer': ('pygments.lexers.markup', 'TeX', ('tex', 'latex'), ('*.tex', '*.aux', '*.toc'), ('text/x-tex', 'text/x-latex')), - 'TextLexer': ('pygments.lexers.special', 'Text only', ('text',), ('*.txt',), ('text/plain',)), - 'ThingsDBLexer': ('pygments.lexers.thingsdb', 'ThingsDB', ('ti', 'thingsdb'), ('*.ti',), ()), - 'ThriftLexer': ('pygments.lexers.dsls', 'Thrift', ('thrift',), ('*.thrift',), ('application/x-thrift',)), - 'TiddlyWiki5Lexer': ('pygments.lexers.markup', 'tiddler', ('tid',), ('*.tid',), ('text/vnd.tiddlywiki',)), - 'TlbLexer': ('pygments.lexers.tlb', 'Tl-b', ('tlb',), ('*.tlb',), ()), - 'TlsLexer': ('pygments.lexers.tls', 'TLS Presentation Language', ('tls',), (), ()), - 'TodotxtLexer': ('pygments.lexers.textfmts', 'Todotxt', ('todotxt',), ('todo.txt', '*.todotxt'), ('text/x-todo',)), - 'TransactSqlLexer': ('pygments.lexers.sql', 'Transact-SQL', ('tsql', 't-sql'), ('*.sql',), ('text/x-tsql',)), - 'TreetopLexer': ('pygments.lexers.parsers', 'Treetop', ('treetop',), ('*.treetop', '*.tt'), ()), - 'TsxLexer': ('pygments.lexers.jsx', 'TSX', ('tsx',), ('*.tsx',), ('text/typescript-tsx',)), - 'TurtleLexer': ('pygments.lexers.rdf', 'Turtle', ('turtle',), ('*.ttl',), ('text/turtle', 'application/x-turtle')), - 'TwigHtmlLexer': ('pygments.lexers.templates', 'HTML+Twig', ('html+twig',), ('*.twig',), ('text/html+twig',)), - 'TwigLexer': ('pygments.lexers.templates', 'Twig', ('twig',), (), ('application/x-twig',)), - 'TypeScriptLexer': ('pygments.lexers.javascript', 'TypeScript', ('typescript', 'ts'), ('*.ts',), ('application/x-typescript', 'text/x-typescript')), - 'TypoScriptCssDataLexer': ('pygments.lexers.typoscript', 'TypoScriptCssData', ('typoscriptcssdata',), (), ()), - 'TypoScriptHtmlDataLexer': ('pygments.lexers.typoscript', 'TypoScriptHtmlData', ('typoscripthtmldata',), (), ()), - 'TypoScriptLexer': ('pygments.lexers.typoscript', 'TypoScript', ('typoscript',), ('*.typoscript',), ('text/x-typoscript',)), - 'TypstLexer': ('pygments.lexers.typst', 'Typst', ('typst',), ('*.typ',), ('text/x-typst',)), - 'UL4Lexer': ('pygments.lexers.ul4', 'UL4', ('ul4',), ('*.ul4',), ()), - 'UcodeLexer': ('pygments.lexers.unicon', 'ucode', ('ucode',), ('*.u', '*.u1', '*.u2'), ()), - 'UniconLexer': ('pygments.lexers.unicon', 'Unicon', ('unicon',), ('*.icn',), ('text/unicon',)), - 'UnixConfigLexer': ('pygments.lexers.configs', 'Unix/Linux config files', ('unixconfig', 'linuxconfig'), (), ()), - 'UrbiscriptLexer': ('pygments.lexers.urbi', 'UrbiScript', ('urbiscript',), ('*.u',), ('application/x-urbiscript',)), - 'UrlEncodedLexer': ('pygments.lexers.html', 'urlencoded', ('urlencoded',), (), ('application/x-www-form-urlencoded',)), - 'UsdLexer': ('pygments.lexers.usd', 'USD', ('usd', 'usda'), ('*.usd', '*.usda'), ()), - 'VBScriptLexer': ('pygments.lexers.basic', 'VBScript', ('vbscript',), ('*.vbs', '*.VBS'), ()), - 'VCLLexer': ('pygments.lexers.varnish', 'VCL', ('vcl',), ('*.vcl',), ('text/x-vclsrc',)), - 'VCLSnippetLexer': ('pygments.lexers.varnish', 'VCLSnippets', ('vclsnippets', 'vclsnippet'), (), ('text/x-vclsnippet',)), - 'VCTreeStatusLexer': ('pygments.lexers.console', 'VCTreeStatus', ('vctreestatus',), (), ()), - 'VGLLexer': ('pygments.lexers.dsls', 'VGL', ('vgl',), ('*.rpf',), ()), - 'ValaLexer': ('pygments.lexers.c_like', 'Vala', ('vala', 'vapi'), ('*.vala', '*.vapi'), ('text/x-vala',)), - 'VbNetAspxLexer': ('pygments.lexers.dotnet', 'aspx-vb', ('aspx-vb',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()), - 'VbNetLexer': ('pygments.lexers.dotnet', 'VB.net', ('vb.net', 'vbnet', 'lobas', 'oobas', 'sobas', 'visual-basic', 'visualbasic'), ('*.vb', '*.bas'), ('text/x-vbnet', 'text/x-vba')), - 'VelocityHtmlLexer': ('pygments.lexers.templates', 'HTML+Velocity', ('html+velocity',), (), ('text/html+velocity',)), - 'VelocityLexer': ('pygments.lexers.templates', 'Velocity', ('velocity',), ('*.vm', '*.fhtml'), ()), - 'VelocityXmlLexer': ('pygments.lexers.templates', 'XML+Velocity', ('xml+velocity',), (), ('application/xml+velocity',)), - 'VerifpalLexer': ('pygments.lexers.verifpal', 'Verifpal', ('verifpal',), ('*.vp',), ('text/x-verifpal',)), - 'VerilogLexer': ('pygments.lexers.hdl', 'verilog', ('verilog', 'v'), ('*.v',), ('text/x-verilog',)), - 'VhdlLexer': ('pygments.lexers.hdl', 'vhdl', ('vhdl',), ('*.vhdl', '*.vhd'), ('text/x-vhdl',)), - 'VimLexer': ('pygments.lexers.textedit', 'VimL', ('vim',), ('*.vim', '.vimrc', '.exrc', '.gvimrc', '_vimrc', '_exrc', '_gvimrc', 'vimrc', 'gvimrc'), ('text/x-vim',)), - 'VisualPrologGrammarLexer': ('pygments.lexers.vip', 'Visual Prolog Grammar', ('visualprologgrammar',), ('*.vipgrm',), ()), - 'VisualPrologLexer': ('pygments.lexers.vip', 'Visual Prolog', ('visualprolog',), ('*.pro', '*.cl', '*.i', '*.pack', '*.ph'), ()), - 'VueLexer': ('pygments.lexers.html', 'Vue', ('vue',), ('*.vue',), ()), - 'VyperLexer': ('pygments.lexers.vyper', 'Vyper', ('vyper',), ('*.vy',), ()), - 'WDiffLexer': ('pygments.lexers.diff', 'WDiff', ('wdiff',), ('*.wdiff',), ()), - 'WatLexer': ('pygments.lexers.webassembly', 'WebAssembly', ('wast', 'wat'), ('*.wat', '*.wast'), ()), - 'WebIDLLexer': ('pygments.lexers.webidl', 'Web IDL', ('webidl',), ('*.webidl',), ()), - 'WgslLexer': ('pygments.lexers.wgsl', 'WebGPU Shading Language', ('wgsl',), ('*.wgsl',), ('text/wgsl',)), - 'WhileyLexer': ('pygments.lexers.whiley', 'Whiley', ('whiley',), ('*.whiley',), ('text/x-whiley',)), - 'WikitextLexer': ('pygments.lexers.markup', 'Wikitext', ('wikitext', 'mediawiki'), (), ('text/x-wiki',)), - 'WoWTocLexer': ('pygments.lexers.wowtoc', 'World of Warcraft TOC', ('wowtoc',), ('*.toc',), ()), - 'WrenLexer': ('pygments.lexers.wren', 'Wren', ('wren',), ('*.wren',), ()), - 'X10Lexer': ('pygments.lexers.x10', 'X10', ('x10', 'xten'), ('*.x10',), ('text/x-x10',)), - 'XMLUL4Lexer': ('pygments.lexers.ul4', 'XML+UL4', ('xml+ul4',), ('*.xmlul4',), ()), - 'XQueryLexer': ('pygments.lexers.webmisc', 'XQuery', ('xquery', 'xqy', 'xq', 'xql', 'xqm'), ('*.xqy', '*.xquery', '*.xq', '*.xql', '*.xqm'), ('text/xquery', 'application/xquery')), - 'XmlDjangoLexer': ('pygments.lexers.templates', 'XML+Django/Jinja', ('xml+django', 'xml+jinja'), ('*.xml.j2', '*.xml.jinja2'), ('application/xml+django', 'application/xml+jinja')), - 'XmlErbLexer': ('pygments.lexers.templates', 'XML+Ruby', ('xml+ruby', 'xml+erb'), (), ('application/xml+ruby',)), - 'XmlLexer': ('pygments.lexers.html', 'XML', ('xml',), ('*.xml', '*.xsl', '*.rss', '*.xslt', '*.xsd', '*.wsdl', '*.wsf'), ('text/xml', 'application/xml', 'image/svg+xml', 'application/rss+xml', 'application/atom+xml')), - 'XmlPhpLexer': ('pygments.lexers.templates', 'XML+PHP', ('xml+php',), (), ('application/xml+php',)), - 'XmlSmartyLexer': ('pygments.lexers.templates', 'XML+Smarty', ('xml+smarty',), (), ('application/xml+smarty',)), - 'XorgLexer': ('pygments.lexers.xorg', 'Xorg', ('xorg.conf',), ('xorg.conf',), ()), - 'XppLexer': ('pygments.lexers.dotnet', 'X++', ('xpp', 'x++'), ('*.xpp',), ()), - 'XsltLexer': ('pygments.lexers.html', 'XSLT', ('xslt',), ('*.xsl', '*.xslt', '*.xpl'), ('application/xsl+xml', 'application/xslt+xml')), - 'XtendLexer': ('pygments.lexers.jvm', 'Xtend', ('xtend',), ('*.xtend',), ('text/x-xtend',)), - 'XtlangLexer': ('pygments.lexers.lisp', 'xtlang', ('extempore',), ('*.xtm',), ()), - 'YamlJinjaLexer': ('pygments.lexers.templates', 'YAML+Jinja', ('yaml+jinja', 'salt', 'sls'), ('*.sls', '*.yaml.j2', '*.yml.j2', '*.yaml.jinja2', '*.yml.jinja2'), ('text/x-yaml+jinja', 'text/x-sls')), - 'YamlLexer': ('pygments.lexers.data', 'YAML', ('yaml',), ('*.yaml', '*.yml'), ('text/x-yaml',)), - 'YangLexer': ('pygments.lexers.yang', 'YANG', ('yang',), ('*.yang',), ('application/yang',)), - 'YaraLexer': ('pygments.lexers.yara', 'YARA', ('yara', 'yar'), ('*.yar',), ('text/x-yara',)), - 'ZeekLexer': ('pygments.lexers.dsls', 'Zeek', ('zeek', 'bro'), ('*.zeek', '*.bro'), ()), - 'ZephirLexer': ('pygments.lexers.php', 'Zephir', ('zephir',), ('*.zep',), ()), - 'ZigLexer': ('pygments.lexers.zig', 'Zig', ('zig',), ('*.zig',), ('text/zig',)), - 'apdlexer': ('pygments.lexers.apdlexer', 'ANSYS parametric design language', ('ansys', 'apdl'), ('*.ans',), ()), + "ABAPLexer": ( + "pygments.lexers.business", + "ABAP", + ("abap",), + ("*.abap", "*.ABAP"), + ("text/x-abap",), + ), + "AMDGPULexer": ("pygments.lexers.amdgpu", "AMDGPU", ("amdgpu",), ("*.isa",), ()), + "APLLexer": ( + "pygments.lexers.apl", + "APL", + ("apl",), + ("*.apl", "*.aplf", "*.aplo", "*.apln", "*.aplc", "*.apli", "*.dyalog"), + (), + ), + "AbnfLexer": ( + "pygments.lexers.grammar_notation", + "ABNF", + ("abnf",), + ("*.abnf",), + ("text/x-abnf",), + ), + "ActionScript3Lexer": ( + "pygments.lexers.actionscript", + "ActionScript 3", + ("actionscript3", "as3"), + ("*.as",), + ("application/x-actionscript3", "text/x-actionscript3", "text/actionscript3"), + ), + "ActionScriptLexer": ( + "pygments.lexers.actionscript", + "ActionScript", + ("actionscript", "as"), + ("*.as",), + ("application/x-actionscript", "text/x-actionscript", "text/actionscript"), + ), + "AdaLexer": ( + "pygments.lexers.ada", + "Ada", + ("ada", "ada95", "ada2005"), + ("*.adb", "*.ads", "*.ada"), + ("text/x-ada",), + ), + "AdlLexer": ( + "pygments.lexers.archetype", + "ADL", + ("adl",), + ("*.adl", "*.adls", "*.adlf", "*.adlx"), + (), + ), + "AgdaLexer": ( + "pygments.lexers.haskell", + "Agda", + ("agda",), + ("*.agda",), + ("text/x-agda",), + ), + "AheuiLexer": ("pygments.lexers.esoteric", "Aheui", ("aheui",), ("*.aheui",), ()), + "AlloyLexer": ( + "pygments.lexers.dsls", + "Alloy", + ("alloy",), + ("*.als",), + ("text/x-alloy",), + ), + "AmbientTalkLexer": ( + "pygments.lexers.ambient", + "AmbientTalk", + ("ambienttalk", "ambienttalk/2", "at"), + ("*.at",), + ("text/x-ambienttalk",), + ), + "AmplLexer": ("pygments.lexers.ampl", "Ampl", ("ampl",), ("*.run",), ()), + "Angular2HtmlLexer": ( + "pygments.lexers.templates", + "HTML + Angular2", + ("html+ng2",), + ("*.ng2",), + (), + ), + "Angular2Lexer": ("pygments.lexers.templates", "Angular2", ("ng2",), (), ()), + "AntlrActionScriptLexer": ( + "pygments.lexers.parsers", + "ANTLR With ActionScript Target", + ("antlr-actionscript", "antlr-as"), + ("*.G", "*.g"), + (), + ), + "AntlrCSharpLexer": ( + "pygments.lexers.parsers", + "ANTLR With C# Target", + ("antlr-csharp", "antlr-c#"), + ("*.G", "*.g"), + (), + ), + "AntlrCppLexer": ( + "pygments.lexers.parsers", + "ANTLR With CPP Target", + ("antlr-cpp",), + ("*.G", "*.g"), + (), + ), + "AntlrJavaLexer": ( + "pygments.lexers.parsers", + "ANTLR With Java Target", + ("antlr-java",), + ("*.G", "*.g"), + (), + ), + "AntlrLexer": ("pygments.lexers.parsers", "ANTLR", ("antlr",), (), ()), + "AntlrObjectiveCLexer": ( + "pygments.lexers.parsers", + "ANTLR With ObjectiveC Target", + ("antlr-objc",), + ("*.G", "*.g"), + (), + ), + "AntlrPerlLexer": ( + "pygments.lexers.parsers", + "ANTLR With Perl Target", + ("antlr-perl",), + ("*.G", "*.g"), + (), + ), + "AntlrPythonLexer": ( + "pygments.lexers.parsers", + "ANTLR With Python Target", + ("antlr-python",), + ("*.G", "*.g"), + (), + ), + "AntlrRubyLexer": ( + "pygments.lexers.parsers", + "ANTLR With Ruby Target", + ("antlr-ruby", "antlr-rb"), + ("*.G", "*.g"), + (), + ), + "ApacheConfLexer": ( + "pygments.lexers.configs", + "ApacheConf", + ("apacheconf", "aconf", "apache"), + (".htaccess", "apache.conf", "apache2.conf"), + ("text/x-apacheconf",), + ), + "AppleScriptLexer": ( + "pygments.lexers.scripting", + "AppleScript", + ("applescript",), + ("*.applescript",), + (), + ), + "ArduinoLexer": ( + "pygments.lexers.c_like", + "Arduino", + ("arduino",), + ("*.ino",), + ("text/x-arduino",), + ), + "ArrowLexer": ("pygments.lexers.arrow", "Arrow", ("arrow",), ("*.arw",), ()), + "ArturoLexer": ( + "pygments.lexers.arturo", + "Arturo", + ("arturo", "art"), + ("*.art",), + (), + ), + "AscLexer": ( + "pygments.lexers.asc", + "ASCII armored", + ("asc", "pem"), + ( + "*.asc", + "*.pem", + "id_dsa", + "id_ecdsa", + "id_ecdsa_sk", + "id_ed25519", + "id_ed25519_sk", + "id_rsa", + ), + ( + "application/pgp-keys", + "application/pgp-encrypted", + "application/pgp-signature", + "application/pem-certificate-chain", + ), + ), + "Asn1Lexer": ("pygments.lexers.asn1", "ASN.1", ("asn1",), ("*.asn1",), ()), + "AspectJLexer": ( + "pygments.lexers.jvm", + "AspectJ", + ("aspectj",), + ("*.aj",), + ("text/x-aspectj",), + ), + "AsymptoteLexer": ( + "pygments.lexers.graphics", + "Asymptote", + ("asymptote", "asy"), + ("*.asy",), + ("text/x-asymptote",), + ), + "AugeasLexer": ("pygments.lexers.configs", "Augeas", ("augeas",), ("*.aug",), ()), + "AutoItLexer": ( + "pygments.lexers.automation", + "AutoIt", + ("autoit",), + ("*.au3",), + ("text/x-autoit",), + ), + "AutohotkeyLexer": ( + "pygments.lexers.automation", + "autohotkey", + ("autohotkey", "ahk"), + ("*.ahk", "*.ahkl"), + ("text/x-autohotkey",), + ), + "AwkLexer": ( + "pygments.lexers.textedit", + "Awk", + ("awk", "gawk", "mawk", "nawk"), + ("*.awk",), + ("application/x-awk",), + ), + "BBCBasicLexer": ( + "pygments.lexers.basic", + "BBC Basic", + ("bbcbasic",), + ("*.bbc",), + (), + ), + "BBCodeLexer": ( + "pygments.lexers.markup", + "BBCode", + ("bbcode",), + (), + ("text/x-bbcode",), + ), + "BCLexer": ("pygments.lexers.algebra", "BC", ("bc",), ("*.bc",), ()), + "BQNLexer": ("pygments.lexers.bqn", "BQN", ("bqn",), ("*.bqn",), ()), + "BSTLexer": ( + "pygments.lexers.bibtex", + "BST", + ("bst", "bst-pybtex"), + ("*.bst",), + (), + ), + "BareLexer": ("pygments.lexers.bare", "BARE", ("bare",), ("*.bare",), ()), + "BaseMakefileLexer": ( + "pygments.lexers.make", + "Base Makefile", + ("basemake",), + (), + (), + ), + "BashLexer": ( + "pygments.lexers.shell", + "Bash", + ("bash", "sh", "ksh", "zsh", "shell", "openrc"), + ( + "*.sh", + "*.ksh", + "*.bash", + "*.ebuild", + "*.eclass", + "*.exheres-0", + "*.exlib", + "*.zsh", + ".bashrc", + "bashrc", + ".bash_*", + "bash_*", + "zshrc", + ".zshrc", + ".kshrc", + "kshrc", + "PKGBUILD", + ), + ("application/x-sh", "application/x-shellscript", "text/x-shellscript"), + ), + "BashSessionLexer": ( + "pygments.lexers.shell", + "Bash Session", + ("console", "shell-session"), + ("*.sh-session", "*.shell-session"), + ("application/x-shell-session", "application/x-sh-session"), + ), + "BatchLexer": ( + "pygments.lexers.shell", + "Batchfile", + ("batch", "bat", "dosbatch", "winbatch"), + ("*.bat", "*.cmd"), + ("application/x-dos-batch",), + ), + "BddLexer": ( + "pygments.lexers.bdd", + "Bdd", + ("bdd",), + ("*.feature",), + ("text/x-bdd",), + ), + "BefungeLexer": ( + "pygments.lexers.esoteric", + "Befunge", + ("befunge",), + ("*.befunge",), + ("application/x-befunge",), + ), + "BerryLexer": ( + "pygments.lexers.berry", + "Berry", + ("berry", "be"), + ("*.be",), + ("text/x-berry", "application/x-berry"), + ), + "BibTeXLexer": ( + "pygments.lexers.bibtex", + "BibTeX", + ("bibtex", "bib"), + ("*.bib",), + ("text/x-bibtex",), + ), + "BlitzBasicLexer": ( + "pygments.lexers.basic", + "BlitzBasic", + ("blitzbasic", "b3d", "bplus"), + ("*.bb", "*.decls"), + ("text/x-bb",), + ), + "BlitzMaxLexer": ( + "pygments.lexers.basic", + "BlitzMax", + ("blitzmax", "bmax"), + ("*.bmx",), + ("text/x-bmx",), + ), + "BlueprintLexer": ( + "pygments.lexers.blueprint", + "Blueprint", + ("blueprint",), + ("*.blp",), + ("text/x-blueprint",), + ), + "BnfLexer": ( + "pygments.lexers.grammar_notation", + "BNF", + ("bnf",), + ("*.bnf",), + ("text/x-bnf",), + ), + "BoaLexer": ("pygments.lexers.boa", "Boa", ("boa",), ("*.boa",), ()), + "BooLexer": ( + "pygments.lexers.dotnet", + "Boo", + ("boo",), + ("*.boo",), + ("text/x-boo",), + ), + "BoogieLexer": ( + "pygments.lexers.verification", + "Boogie", + ("boogie",), + ("*.bpl",), + (), + ), + "BrainfuckLexer": ( + "pygments.lexers.esoteric", + "Brainfuck", + ("brainfuck", "bf"), + ("*.bf", "*.b"), + ("application/x-brainfuck",), + ), + "BugsLexer": ( + "pygments.lexers.modeling", + "BUGS", + ("bugs", "winbugs", "openbugs"), + ("*.bug",), + (), + ), + "CAmkESLexer": ( + "pygments.lexers.esoteric", + "CAmkES", + ("camkes", "idl4"), + ("*.camkes", "*.idl4"), + (), + ), + "CLexer": ( + "pygments.lexers.c_cpp", + "C", + ("c",), + ("*.c", "*.h", "*.idc", "*.x[bp]m"), + ("text/x-chdr", "text/x-csrc", "image/x-xbitmap", "image/x-xpixmap"), + ), + "CMakeLexer": ( + "pygments.lexers.make", + "CMake", + ("cmake",), + ("*.cmake", "CMakeLists.txt"), + ("text/x-cmake",), + ), + "CObjdumpLexer": ( + "pygments.lexers.asm", + "c-objdump", + ("c-objdump",), + ("*.c-objdump",), + ("text/x-c-objdump",), + ), + "CPSALexer": ("pygments.lexers.lisp", "CPSA", ("cpsa",), ("*.cpsa",), ()), + "CSSUL4Lexer": ("pygments.lexers.ul4", "CSS+UL4", ("css+ul4",), ("*.cssul4",), ()), + "CSharpAspxLexer": ( + "pygments.lexers.dotnet", + "aspx-cs", + ("aspx-cs",), + ("*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"), + (), + ), + "CSharpLexer": ( + "pygments.lexers.dotnet", + "C#", + ("csharp", "c#", "cs"), + ("*.cs",), + ("text/x-csharp",), + ), + "Ca65Lexer": ("pygments.lexers.asm", "ca65 assembler", ("ca65",), ("*.s",), ()), + "CadlLexer": ("pygments.lexers.archetype", "cADL", ("cadl",), ("*.cadl",), ()), + "CapDLLexer": ("pygments.lexers.esoteric", "CapDL", ("capdl",), ("*.cdl",), ()), + "CapnProtoLexer": ( + "pygments.lexers.capnproto", + "Cap'n Proto", + ("capnp",), + ("*.capnp",), + (), + ), + "CarbonLexer": ( + "pygments.lexers.carbon", + "Carbon", + ("carbon",), + ("*.carbon",), + ("text/x-carbon",), + ), + "CbmBasicV2Lexer": ( + "pygments.lexers.basic", + "CBM BASIC V2", + ("cbmbas",), + ("*.bas",), + (), + ), + "CddlLexer": ( + "pygments.lexers.cddl", + "CDDL", + ("cddl",), + ("*.cddl",), + ("text/x-cddl",), + ), + "CeylonLexer": ( + "pygments.lexers.jvm", + "Ceylon", + ("ceylon",), + ("*.ceylon",), + ("text/x-ceylon",), + ), + "Cfengine3Lexer": ( + "pygments.lexers.configs", + "CFEngine3", + ("cfengine3", "cf3"), + ("*.cf",), + (), + ), + "ChaiscriptLexer": ( + "pygments.lexers.scripting", + "ChaiScript", + ("chaiscript", "chai"), + ("*.chai",), + ("text/x-chaiscript", "application/x-chaiscript"), + ), + "ChapelLexer": ( + "pygments.lexers.chapel", + "Chapel", + ("chapel", "chpl"), + ("*.chpl",), + (), + ), + "CharmciLexer": ("pygments.lexers.c_like", "Charmci", ("charmci",), ("*.ci",), ()), + "CheetahHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Cheetah", + ("html+cheetah", "html+spitfire", "htmlcheetah"), + (), + ("text/html+cheetah", "text/html+spitfire"), + ), + "CheetahJavascriptLexer": ( + "pygments.lexers.templates", + "JavaScript+Cheetah", + ("javascript+cheetah", "js+cheetah", "javascript+spitfire", "js+spitfire"), + (), + ( + "application/x-javascript+cheetah", + "text/x-javascript+cheetah", + "text/javascript+cheetah", + "application/x-javascript+spitfire", + "text/x-javascript+spitfire", + "text/javascript+spitfire", + ), + ), + "CheetahLexer": ( + "pygments.lexers.templates", + "Cheetah", + ("cheetah", "spitfire"), + ("*.tmpl", "*.spt"), + ("application/x-cheetah", "application/x-spitfire"), + ), + "CheetahXmlLexer": ( + "pygments.lexers.templates", + "XML+Cheetah", + ("xml+cheetah", "xml+spitfire"), + (), + ("application/xml+cheetah", "application/xml+spitfire"), + ), + "CirruLexer": ( + "pygments.lexers.webmisc", + "Cirru", + ("cirru",), + ("*.cirru",), + ("text/x-cirru",), + ), + "ClayLexer": ( + "pygments.lexers.c_like", + "Clay", + ("clay",), + ("*.clay",), + ("text/x-clay",), + ), + "CleanLexer": ( + "pygments.lexers.clean", + "Clean", + ("clean",), + ("*.icl", "*.dcl"), + (), + ), + "ClojureLexer": ( + "pygments.lexers.jvm", + "Clojure", + ("clojure", "clj"), + ("*.clj", "*.cljc"), + ("text/x-clojure", "application/x-clojure"), + ), + "ClojureScriptLexer": ( + "pygments.lexers.jvm", + "ClojureScript", + ("clojurescript", "cljs"), + ("*.cljs",), + ("text/x-clojurescript", "application/x-clojurescript"), + ), + "CobolFreeformatLexer": ( + "pygments.lexers.business", + "COBOLFree", + ("cobolfree",), + ("*.cbl", "*.CBL"), + (), + ), + "CobolLexer": ( + "pygments.lexers.business", + "COBOL", + ("cobol",), + ("*.cob", "*.COB", "*.cpy", "*.CPY"), + ("text/x-cobol",), + ), + "CodeQLLexer": ( + "pygments.lexers.codeql", + "CodeQL", + ("codeql", "ql"), + ("*.ql", "*.qll"), + (), + ), + "CoffeeScriptLexer": ( + "pygments.lexers.javascript", + "CoffeeScript", + ("coffeescript", "coffee-script", "coffee"), + ("*.coffee",), + ("text/coffeescript",), + ), + "ColdfusionCFCLexer": ( + "pygments.lexers.templates", + "Coldfusion CFC", + ("cfc",), + ("*.cfc",), + (), + ), + "ColdfusionHtmlLexer": ( + "pygments.lexers.templates", + "Coldfusion HTML", + ("cfm",), + ("*.cfm", "*.cfml"), + ("application/x-coldfusion",), + ), + "ColdfusionLexer": ("pygments.lexers.templates", "cfstatement", ("cfs",), (), ()), + "Comal80Lexer": ( + "pygments.lexers.comal", + "COMAL-80", + ("comal", "comal80"), + ("*.cml", "*.comal"), + (), + ), + "CommonLispLexer": ( + "pygments.lexers.lisp", + "Common Lisp", + ("common-lisp", "cl", "lisp"), + ("*.cl", "*.lisp"), + ("text/x-common-lisp",), + ), + "ComponentPascalLexer": ( + "pygments.lexers.oberon", + "Component Pascal", + ("componentpascal", "cp"), + ("*.cp", "*.cps"), + ("text/x-component-pascal",), + ), + "CoqLexer": ("pygments.lexers.theorem", "Coq", ("coq",), ("*.v",), ("text/x-coq",)), + "CplintLexer": ( + "pygments.lexers.cplint", + "cplint", + ("cplint",), + ("*.ecl", "*.prolog", "*.pro", "*.pl", "*.P", "*.lpad", "*.cpl"), + ("text/x-cplint",), + ), + "CppLexer": ( + "pygments.lexers.c_cpp", + "C++", + ("cpp", "c++"), + ( + "*.cpp", + "*.hpp", + "*.c++", + "*.h++", + "*.cc", + "*.hh", + "*.cxx", + "*.hxx", + "*.C", + "*.H", + "*.cp", + "*.CPP", + "*.tpp", + ), + ("text/x-c++hdr", "text/x-c++src"), + ), + "CppObjdumpLexer": ( + "pygments.lexers.asm", + "cpp-objdump", + ("cpp-objdump", "c++-objdumb", "cxx-objdump"), + ("*.cpp-objdump", "*.c++-objdump", "*.cxx-objdump"), + ("text/x-cpp-objdump",), + ), + "CrmshLexer": ( + "pygments.lexers.dsls", + "Crmsh", + ("crmsh", "pcmk"), + ("*.crmsh", "*.pcmk"), + (), + ), + "CrocLexer": ( + "pygments.lexers.d", + "Croc", + ("croc",), + ("*.croc",), + ("text/x-crocsrc",), + ), + "CryptolLexer": ( + "pygments.lexers.haskell", + "Cryptol", + ("cryptol", "cry"), + ("*.cry",), + ("text/x-cryptol",), + ), + "CrystalLexer": ( + "pygments.lexers.crystal", + "Crystal", + ("cr", "crystal"), + ("*.cr",), + ("text/x-crystal",), + ), + "CsoundDocumentLexer": ( + "pygments.lexers.csound", + "Csound Document", + ("csound-document", "csound-csd"), + ("*.csd",), + (), + ), + "CsoundOrchestraLexer": ( + "pygments.lexers.csound", + "Csound Orchestra", + ("csound", "csound-orc"), + ("*.orc", "*.udo"), + (), + ), + "CsoundScoreLexer": ( + "pygments.lexers.csound", + "Csound Score", + ("csound-score", "csound-sco"), + ("*.sco",), + (), + ), + "CssDjangoLexer": ( + "pygments.lexers.templates", + "CSS+Django/Jinja", + ("css+django", "css+jinja"), + ("*.css.j2", "*.css.jinja2"), + ("text/css+django", "text/css+jinja"), + ), + "CssErbLexer": ( + "pygments.lexers.templates", + "CSS+Ruby", + ("css+ruby", "css+erb"), + (), + ("text/css+ruby",), + ), + "CssGenshiLexer": ( + "pygments.lexers.templates", + "CSS+Genshi Text", + ("css+genshitext", "css+genshi"), + (), + ("text/css+genshi",), + ), + "CssLexer": ("pygments.lexers.css", "CSS", ("css",), ("*.css",), ("text/css",)), + "CssPhpLexer": ( + "pygments.lexers.templates", + "CSS+PHP", + ("css+php",), + (), + ("text/css+php",), + ), + "CssSmartyLexer": ( + "pygments.lexers.templates", + "CSS+Smarty", + ("css+smarty",), + (), + ("text/css+smarty",), + ), + "CudaLexer": ( + "pygments.lexers.c_like", + "CUDA", + ("cuda", "cu"), + ("*.cu", "*.cuh"), + ("text/x-cuda",), + ), + "CypherLexer": ( + "pygments.lexers.graph", + "Cypher", + ("cypher",), + ("*.cyp", "*.cypher"), + (), + ), + "CythonLexer": ( + "pygments.lexers.python", + "Cython", + ("cython", "pyx", "pyrex"), + ("*.pyx", "*.pxd", "*.pxi"), + ("text/x-cython", "application/x-cython"), + ), + "DLexer": ("pygments.lexers.d", "D", ("d",), ("*.d", "*.di"), ("text/x-dsrc",)), + "DObjdumpLexer": ( + "pygments.lexers.asm", + "d-objdump", + ("d-objdump",), + ("*.d-objdump",), + ("text/x-d-objdump",), + ), + "DarcsPatchLexer": ( + "pygments.lexers.diff", + "Darcs Patch", + ("dpatch",), + ("*.dpatch", "*.darcspatch"), + (), + ), + "DartLexer": ( + "pygments.lexers.javascript", + "Dart", + ("dart",), + ("*.dart",), + ("text/x-dart",), + ), + "Dasm16Lexer": ( + "pygments.lexers.asm", + "DASM16", + ("dasm16",), + ("*.dasm16", "*.dasm"), + ("text/x-dasm16",), + ), + "DaxLexer": ("pygments.lexers.dax", "Dax", ("dax",), ("*.dax",), ()), + "DebianControlLexer": ( + "pygments.lexers.installers", + "Debian Control file", + ("debcontrol", "control"), + ("control",), + (), + ), + "DebianSourcesLexer": ( + "pygments.lexers.installers", + "Debian Sources file", + ("debian.sources",), + ("*.sources",), + (), + ), + "DelphiLexer": ( + "pygments.lexers.pascal", + "Delphi", + ("delphi", "pas", "pascal", "objectpascal"), + ("*.pas", "*.dpr"), + ("text/x-pascal",), + ), + "DesktopLexer": ( + "pygments.lexers.configs", + "Desktop file", + ("desktop",), + ("*.desktop",), + ("application/x-desktop",), + ), + "DevicetreeLexer": ( + "pygments.lexers.devicetree", + "Devicetree", + ("devicetree", "dts"), + ("*.dts", "*.dtsi"), + ("text/x-c",), + ), + "DgLexer": ("pygments.lexers.python", "dg", ("dg",), ("*.dg",), ("text/x-dg",)), + "DiffLexer": ( + "pygments.lexers.diff", + "Diff", + ("diff", "udiff"), + ("*.diff", "*.patch"), + ("text/x-diff", "text/x-patch"), + ), + "DjangoLexer": ( + "pygments.lexers.templates", + "Django/Jinja", + ("django", "jinja"), + (), + ("application/x-django-templating", "application/x-jinja"), + ), + "DnsZoneLexer": ( + "pygments.lexers.dns", + "Zone", + ("zone",), + ("*.zone",), + ("text/dns",), + ), + "DockerLexer": ( + "pygments.lexers.configs", + "Docker", + ("docker", "dockerfile"), + ("Dockerfile", "*.docker"), + ("text/x-dockerfile-config",), + ), + "DtdLexer": ( + "pygments.lexers.html", + "DTD", + ("dtd",), + ("*.dtd",), + ("application/xml-dtd",), + ), + "DuelLexer": ( + "pygments.lexers.webmisc", + "Duel", + ("duel", "jbst", "jsonml+bst"), + ("*.duel", "*.jbst"), + ("text/x-duel", "text/x-jbst"), + ), + "DylanConsoleLexer": ( + "pygments.lexers.dylan", + "Dylan session", + ("dylan-console", "dylan-repl"), + ("*.dylan-console",), + ("text/x-dylan-console",), + ), + "DylanLexer": ( + "pygments.lexers.dylan", + "Dylan", + ("dylan",), + ("*.dylan", "*.dyl", "*.intr"), + ("text/x-dylan",), + ), + "DylanLidLexer": ( + "pygments.lexers.dylan", + "DylanLID", + ("dylan-lid", "lid"), + ("*.lid", "*.hdp"), + ("text/x-dylan-lid",), + ), + "ECLLexer": ( + "pygments.lexers.ecl", + "ECL", + ("ecl",), + ("*.ecl",), + ("application/x-ecl",), + ), + "ECLexer": ( + "pygments.lexers.c_like", + "eC", + ("ec",), + ("*.ec", "*.eh"), + ("text/x-echdr", "text/x-ecsrc"), + ), + "EarlGreyLexer": ( + "pygments.lexers.javascript", + "Earl Grey", + ("earl-grey", "earlgrey", "eg"), + ("*.eg",), + ("text/x-earl-grey",), + ), + "EasytrieveLexer": ( + "pygments.lexers.scripting", + "Easytrieve", + ("easytrieve",), + ("*.ezt", "*.mac"), + ("text/x-easytrieve",), + ), + "EbnfLexer": ( + "pygments.lexers.parsers", + "EBNF", + ("ebnf",), + ("*.ebnf",), + ("text/x-ebnf",), + ), + "EiffelLexer": ( + "pygments.lexers.eiffel", + "Eiffel", + ("eiffel",), + ("*.e",), + ("text/x-eiffel",), + ), + "ElixirConsoleLexer": ( + "pygments.lexers.erlang", + "Elixir iex session", + ("iex",), + (), + ("text/x-elixir-shellsession",), + ), + "ElixirLexer": ( + "pygments.lexers.erlang", + "Elixir", + ("elixir", "ex", "exs"), + ("*.ex", "*.eex", "*.exs", "*.leex"), + ("text/x-elixir",), + ), + "ElmLexer": ("pygments.lexers.elm", "Elm", ("elm",), ("*.elm",), ("text/x-elm",)), + "ElpiLexer": ( + "pygments.lexers.elpi", + "Elpi", + ("elpi",), + ("*.elpi",), + ("text/x-elpi",), + ), + "EmacsLispLexer": ( + "pygments.lexers.lisp", + "EmacsLisp", + ("emacs-lisp", "elisp", "emacs"), + ("*.el",), + ("text/x-elisp", "application/x-elisp"), + ), + "EmailLexer": ( + "pygments.lexers.email", + "E-mail", + ("email", "eml"), + ("*.eml",), + ("message/rfc822",), + ), + "ErbLexer": ( + "pygments.lexers.templates", + "ERB", + ("erb",), + (), + ("application/x-ruby-templating",), + ), + "ErlangLexer": ( + "pygments.lexers.erlang", + "Erlang", + ("erlang",), + ("*.erl", "*.hrl", "*.es", "*.escript"), + ("text/x-erlang",), + ), + "ErlangShellLexer": ( + "pygments.lexers.erlang", + "Erlang erl session", + ("erl",), + ("*.erl-sh",), + ("text/x-erl-shellsession",), + ), + "EvoqueHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Evoque", + ("html+evoque",), + (), + ("text/html+evoque",), + ), + "EvoqueLexer": ( + "pygments.lexers.templates", + "Evoque", + ("evoque",), + ("*.evoque",), + ("application/x-evoque",), + ), + "EvoqueXmlLexer": ( + "pygments.lexers.templates", + "XML+Evoque", + ("xml+evoque",), + (), + ("application/xml+evoque",), + ), + "ExeclineLexer": ( + "pygments.lexers.shell", + "execline", + ("execline",), + ("*.exec",), + (), + ), + "EzhilLexer": ( + "pygments.lexers.ezhil", + "Ezhil", + ("ezhil",), + ("*.n",), + ("text/x-ezhil",), + ), + "FSharpLexer": ( + "pygments.lexers.dotnet", + "F#", + ("fsharp", "f#"), + ("*.fs", "*.fsi", "*.fsx"), + ("text/x-fsharp",), + ), + "FStarLexer": ( + "pygments.lexers.ml", + "FStar", + ("fstar",), + ("*.fst", "*.fsti"), + ("text/x-fstar",), + ), + "FactorLexer": ( + "pygments.lexers.factor", + "Factor", + ("factor",), + ("*.factor",), + ("text/x-factor",), + ), + "FancyLexer": ( + "pygments.lexers.ruby", + "Fancy", + ("fancy", "fy"), + ("*.fy", "*.fancypack"), + ("text/x-fancysrc",), + ), + "FantomLexer": ( + "pygments.lexers.fantom", + "Fantom", + ("fan",), + ("*.fan",), + ("application/x-fantom",), + ), + "FelixLexer": ( + "pygments.lexers.felix", + "Felix", + ("felix", "flx"), + ("*.flx", "*.flxh"), + ("text/x-felix",), + ), + "FennelLexer": ( + "pygments.lexers.lisp", + "Fennel", + ("fennel", "fnl"), + ("*.fnl",), + (), + ), + "FiftLexer": ("pygments.lexers.fift", "Fift", ("fift", "fif"), ("*.fif",), ()), + "FishShellLexer": ( + "pygments.lexers.shell", + "Fish", + ("fish", "fishshell"), + ("*.fish", "*.load"), + ("application/x-fish",), + ), + "FlatlineLexer": ( + "pygments.lexers.dsls", + "Flatline", + ("flatline",), + (), + ("text/x-flatline",), + ), + "FloScriptLexer": ( + "pygments.lexers.floscript", + "FloScript", + ("floscript", "flo"), + ("*.flo",), + (), + ), + "ForthLexer": ( + "pygments.lexers.forth", + "Forth", + ("forth",), + ("*.frt", "*.fs"), + ("application/x-forth",), + ), + "FortranFixedLexer": ( + "pygments.lexers.fortran", + "FortranFixed", + ("fortranfixed",), + ("*.f", "*.F"), + (), + ), + "FortranLexer": ( + "pygments.lexers.fortran", + "Fortran", + ("fortran", "f90"), + ("*.f03", "*.f90", "*.F03", "*.F90"), + ("text/x-fortran",), + ), + "FoxProLexer": ( + "pygments.lexers.foxpro", + "FoxPro", + ("foxpro", "vfp", "clipper", "xbase"), + ("*.PRG", "*.prg"), + (), + ), + "FreeFemLexer": ( + "pygments.lexers.freefem", + "Freefem", + ("freefem",), + ("*.edp",), + ("text/x-freefem",), + ), + "FuncLexer": ( + "pygments.lexers.func", + "FunC", + ("func", "fc"), + ("*.fc", "*.func"), + (), + ), + "FutharkLexer": ( + "pygments.lexers.futhark", + "Futhark", + ("futhark",), + ("*.fut",), + ("text/x-futhark",), + ), + "GAPConsoleLexer": ( + "pygments.lexers.algebra", + "GAP session", + ("gap-console", "gap-repl"), + ("*.tst",), + (), + ), + "GAPLexer": ( + "pygments.lexers.algebra", + "GAP", + ("gap",), + ("*.g", "*.gd", "*.gi", "*.gap"), + (), + ), + "GDScriptLexer": ( + "pygments.lexers.gdscript", + "GDScript", + ("gdscript", "gd"), + ("*.gd",), + ("text/x-gdscript", "application/x-gdscript"), + ), + "GLShaderLexer": ( + "pygments.lexers.graphics", + "GLSL", + ("glsl",), + ("*.vert", "*.frag", "*.geo"), + ("text/x-glslsrc",), + ), + "GSQLLexer": ("pygments.lexers.gsql", "GSQL", ("gsql",), ("*.gsql",), ()), + "GasLexer": ( + "pygments.lexers.asm", + "GAS", + ("gas", "asm"), + ("*.s", "*.S"), + ("text/x-gas",), + ), + "GcodeLexer": ( + "pygments.lexers.gcodelexer", + "g-code", + ("gcode",), + ("*.gcode",), + (), + ), + "GenshiLexer": ( + "pygments.lexers.templates", + "Genshi", + ("genshi", "kid", "xml+genshi", "xml+kid"), + ("*.kid",), + ("application/x-genshi", "application/x-kid"), + ), + "GenshiTextLexer": ( + "pygments.lexers.templates", + "Genshi Text", + ("genshitext",), + (), + ("application/x-genshi-text", "text/x-genshi"), + ), + "GettextLexer": ( + "pygments.lexers.textfmts", + "Gettext Catalog", + ("pot", "po"), + ("*.pot", "*.po"), + ("application/x-gettext", "text/x-gettext", "text/gettext"), + ), + "GherkinLexer": ( + "pygments.lexers.testing", + "Gherkin", + ("gherkin", "cucumber"), + ("*.feature",), + ("text/x-gherkin",), + ), + "GleamLexer": ( + "pygments.lexers.gleam", + "Gleam", + ("gleam",), + ("*.gleam",), + ("text/x-gleam",), + ), + "GnuplotLexer": ( + "pygments.lexers.graphics", + "Gnuplot", + ("gnuplot",), + ("*.plot", "*.plt"), + ("text/x-gnuplot",), + ), + "GoLexer": ( + "pygments.lexers.go", + "Go", + ("go", "golang"), + ("*.go",), + ("text/x-gosrc",), + ), + "GoloLexer": ("pygments.lexers.jvm", "Golo", ("golo",), ("*.golo",), ()), + "GoodDataCLLexer": ( + "pygments.lexers.business", + "GoodData-CL", + ("gooddata-cl",), + ("*.gdc",), + ("text/x-gooddata-cl",), + ), + "GoogleSqlLexer": ( + "pygments.lexers.sql", + "GoogleSQL", + ("googlesql", "zetasql"), + ("*.googlesql", "*.googlesql.sql"), + ("text/x-google-sql", "text/x-google-sql-aux"), + ), + "GosuLexer": ( + "pygments.lexers.jvm", + "Gosu", + ("gosu",), + ("*.gs", "*.gsx", "*.gsp", "*.vark"), + ("text/x-gosu",), + ), + "GosuTemplateLexer": ( + "pygments.lexers.jvm", + "Gosu Template", + ("gst",), + ("*.gst",), + ("text/x-gosu-template",), + ), + "GraphQLLexer": ( + "pygments.lexers.graphql", + "GraphQL", + ("graphql",), + ("*.graphql",), + (), + ), + "GraphvizLexer": ( + "pygments.lexers.graphviz", + "Graphviz", + ("graphviz", "dot"), + ("*.gv", "*.dot"), + ("text/x-graphviz", "text/vnd.graphviz"), + ), + "GroffLexer": ( + "pygments.lexers.markup", + "Groff", + ("groff", "nroff", "man"), + ("*.[1-9]", "*.man", "*.1p", "*.3pm"), + ("application/x-troff", "text/troff"), + ), + "GroovyLexer": ( + "pygments.lexers.jvm", + "Groovy", + ("groovy",), + ("*.groovy", "*.gradle"), + ("text/x-groovy",), + ), + "HLSLShaderLexer": ( + "pygments.lexers.graphics", + "HLSL", + ("hlsl",), + ("*.hlsl", "*.hlsli"), + ("text/x-hlsl",), + ), + "HTMLUL4Lexer": ( + "pygments.lexers.ul4", + "HTML+UL4", + ("html+ul4",), + ("*.htmlul4",), + (), + ), + "HamlLexer": ( + "pygments.lexers.html", + "Haml", + ("haml",), + ("*.haml",), + ("text/x-haml",), + ), + "HandlebarsHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Handlebars", + ("html+handlebars",), + ("*.handlebars", "*.hbs"), + ("text/html+handlebars", "text/x-handlebars-template"), + ), + "HandlebarsLexer": ( + "pygments.lexers.templates", + "Handlebars", + ("handlebars",), + (), + (), + ), + "HareLexer": ( + "pygments.lexers.hare", + "Hare", + ("hare",), + ("*.ha",), + ("text/x-hare",), + ), + "HaskellLexer": ( + "pygments.lexers.haskell", + "Haskell", + ("haskell", "hs"), + ("*.hs",), + ("text/x-haskell",), + ), + "HaxeLexer": ( + "pygments.lexers.haxe", + "Haxe", + ("haxe", "hxsl", "hx"), + ("*.hx", "*.hxsl"), + ("text/haxe", "text/x-haxe", "text/x-hx"), + ), + "HexdumpLexer": ("pygments.lexers.hexdump", "Hexdump", ("hexdump",), (), ()), + "HsailLexer": ( + "pygments.lexers.asm", + "HSAIL", + ("hsail", "hsa"), + ("*.hsail",), + ("text/x-hsail",), + ), + "HspecLexer": ("pygments.lexers.haskell", "Hspec", ("hspec",), ("*Spec.hs",), ()), + "HtmlDjangoLexer": ( + "pygments.lexers.templates", + "HTML+Django/Jinja", + ("html+django", "html+jinja", "htmldjango"), + ( + "*.html.j2", + "*.htm.j2", + "*.xhtml.j2", + "*.html.jinja2", + "*.htm.jinja2", + "*.xhtml.jinja2", + ), + ("text/html+django", "text/html+jinja"), + ), + "HtmlGenshiLexer": ( + "pygments.lexers.templates", + "HTML+Genshi", + ("html+genshi", "html+kid"), + (), + ("text/html+genshi",), + ), + "HtmlLexer": ( + "pygments.lexers.html", + "HTML", + ("html",), + ("*.html", "*.htm", "*.xhtml", "*.xslt"), + ("text/html", "application/xhtml+xml"), + ), + "HtmlPhpLexer": ( + "pygments.lexers.templates", + "HTML+PHP", + ("html+php",), + ("*.phtml",), + ( + "application/x-php", + "application/x-httpd-php", + "application/x-httpd-php3", + "application/x-httpd-php4", + "application/x-httpd-php5", + ), + ), + "HtmlSmartyLexer": ( + "pygments.lexers.templates", + "HTML+Smarty", + ("html+smarty",), + (), + ("text/html+smarty",), + ), + "HttpLexer": ("pygments.lexers.textfmts", "HTTP", ("http",), (), ()), + "HxmlLexer": ("pygments.lexers.haxe", "Hxml", ("haxeml", "hxml"), ("*.hxml",), ()), + "HyLexer": ( + "pygments.lexers.lisp", + "Hy", + ("hylang", "hy"), + ("*.hy",), + ("text/x-hy", "application/x-hy"), + ), + "HybrisLexer": ( + "pygments.lexers.scripting", + "Hybris", + ("hybris",), + ("*.hyb",), + ("text/x-hybris", "application/x-hybris"), + ), + "IDLLexer": ("pygments.lexers.idl", "IDL", ("idl",), ("*.pro",), ("text/idl",)), + "IconLexer": ( + "pygments.lexers.unicon", + "Icon", + ("icon",), + ("*.icon", "*.ICON"), + (), + ), + "IdrisLexer": ( + "pygments.lexers.haskell", + "Idris", + ("idris", "idr"), + ("*.idr",), + ("text/x-idris",), + ), + "IgorLexer": ( + "pygments.lexers.igor", + "Igor", + ("igor", "igorpro"), + ("*.ipf",), + ("text/ipf",), + ), + "Inform6Lexer": ( + "pygments.lexers.int_fiction", + "Inform 6", + ("inform6", "i6"), + ("*.inf",), + (), + ), + "Inform6TemplateLexer": ( + "pygments.lexers.int_fiction", + "Inform 6 template", + ("i6t",), + ("*.i6t",), + (), + ), + "Inform7Lexer": ( + "pygments.lexers.int_fiction", + "Inform 7", + ("inform7", "i7"), + ("*.ni", "*.i7x"), + (), + ), + "IniLexer": ( + "pygments.lexers.configs", + "INI", + ("ini", "cfg", "dosini"), + ("*.ini", "*.cfg", "*.inf", ".editorconfig"), + ("text/x-ini", "text/inf"), + ), + "IoLexer": ("pygments.lexers.iolang", "Io", ("io",), ("*.io",), ("text/x-iosrc",)), + "IokeLexer": ( + "pygments.lexers.jvm", + "Ioke", + ("ioke", "ik"), + ("*.ik",), + ("text/x-iokesrc",), + ), + "IrcLogsLexer": ( + "pygments.lexers.textfmts", + "IRC logs", + ("irc",), + ("*.weechatlog",), + ("text/x-irclog",), + ), + "IsabelleLexer": ( + "pygments.lexers.theorem", + "Isabelle", + ("isabelle",), + ("*.thy",), + ("text/x-isabelle",), + ), + "JLexer": ("pygments.lexers.j", "J", ("j",), ("*.ijs",), ("text/x-j",)), + "JMESPathLexer": ( + "pygments.lexers.jmespath", + "JMESPath", + ("jmespath", "jp"), + ("*.jp",), + (), + ), + "JSLTLexer": ( + "pygments.lexers.jslt", + "JSLT", + ("jslt",), + ("*.jslt",), + ("text/x-jslt",), + ), + "JagsLexer": ( + "pygments.lexers.modeling", + "JAGS", + ("jags",), + ("*.jag", "*.bug"), + (), + ), + "JanetLexer": ( + "pygments.lexers.lisp", + "Janet", + ("janet",), + ("*.janet", "*.jdn"), + ("text/x-janet", "application/x-janet"), + ), + "JasminLexer": ( + "pygments.lexers.jvm", + "Jasmin", + ("jasmin", "jasminxt"), + ("*.j",), + (), + ), + "JavaLexer": ( + "pygments.lexers.jvm", + "Java", + ("java",), + ("*.java",), + ("text/x-java",), + ), + "JavascriptDjangoLexer": ( + "pygments.lexers.templates", + "JavaScript+Django/Jinja", + ("javascript+django", "js+django", "javascript+jinja", "js+jinja"), + ("*.js.j2", "*.js.jinja2"), + ( + "application/x-javascript+django", + "application/x-javascript+jinja", + "text/x-javascript+django", + "text/x-javascript+jinja", + "text/javascript+django", + "text/javascript+jinja", + ), + ), + "JavascriptErbLexer": ( + "pygments.lexers.templates", + "JavaScript+Ruby", + ("javascript+ruby", "js+ruby", "javascript+erb", "js+erb"), + (), + ( + "application/x-javascript+ruby", + "text/x-javascript+ruby", + "text/javascript+ruby", + ), + ), + "JavascriptGenshiLexer": ( + "pygments.lexers.templates", + "JavaScript+Genshi Text", + ("js+genshitext", "js+genshi", "javascript+genshitext", "javascript+genshi"), + (), + ( + "application/x-javascript+genshi", + "text/x-javascript+genshi", + "text/javascript+genshi", + ), + ), + "JavascriptLexer": ( + "pygments.lexers.javascript", + "JavaScript", + ("javascript", "js"), + ("*.js", "*.jsm", "*.mjs", "*.cjs"), + ( + "application/javascript", + "application/x-javascript", + "text/x-javascript", + "text/javascript", + ), + ), + "JavascriptPhpLexer": ( + "pygments.lexers.templates", + "JavaScript+PHP", + ("javascript+php", "js+php"), + (), + ( + "application/x-javascript+php", + "text/x-javascript+php", + "text/javascript+php", + ), + ), + "JavascriptSmartyLexer": ( + "pygments.lexers.templates", + "JavaScript+Smarty", + ("javascript+smarty", "js+smarty"), + (), + ( + "application/x-javascript+smarty", + "text/x-javascript+smarty", + "text/javascript+smarty", + ), + ), + "JavascriptUL4Lexer": ( + "pygments.lexers.ul4", + "Javascript+UL4", + ("js+ul4",), + ("*.jsul4",), + (), + ), + "JclLexer": ( + "pygments.lexers.scripting", + "JCL", + ("jcl",), + ("*.jcl",), + ("text/x-jcl",), + ), + "JsgfLexer": ( + "pygments.lexers.grammar_notation", + "JSGF", + ("jsgf",), + ("*.jsgf",), + ("application/jsgf", "application/x-jsgf", "text/jsgf"), + ), + "Json5Lexer": ("pygments.lexers.json5", "JSON5", ("json5",), ("*.json5",), ()), + "JsonBareObjectLexer": ("pygments.lexers.data", "JSONBareObject", (), (), ()), + "JsonLdLexer": ( + "pygments.lexers.data", + "JSON-LD", + ("jsonld", "json-ld"), + ("*.jsonld",), + ("application/ld+json",), + ), + "JsonLexer": ( + "pygments.lexers.data", + "JSON", + ("json", "json-object"), + ("*.json", "*.jsonl", "*.ndjson", "Pipfile.lock"), + ( + "application/json", + "application/json-object", + "application/x-ndjson", + "application/jsonl", + "application/json-seq", + ), + ), + "JsonnetLexer": ( + "pygments.lexers.jsonnet", + "Jsonnet", + ("jsonnet",), + ("*.jsonnet", "*.libsonnet"), + (), + ), + "JspLexer": ( + "pygments.lexers.templates", + "Java Server Page", + ("jsp",), + ("*.jsp",), + ("application/x-jsp",), + ), + "JsxLexer": ( + "pygments.lexers.jsx", + "JSX", + ("jsx", "react"), + ("*.jsx", "*.react"), + ("text/jsx", "text/typescript-jsx"), + ), + "JuliaConsoleLexer": ( + "pygments.lexers.julia", + "Julia console", + ("jlcon", "julia-repl"), + (), + (), + ), + "JuliaLexer": ( + "pygments.lexers.julia", + "Julia", + ("julia", "jl"), + ("*.jl",), + ("text/x-julia", "application/x-julia"), + ), + "JuttleLexer": ( + "pygments.lexers.javascript", + "Juttle", + ("juttle",), + ("*.juttle",), + ("application/juttle", "application/x-juttle", "text/x-juttle", "text/juttle"), + ), + "KLexer": ("pygments.lexers.q", "K", ("k",), ("*.k",), ()), + "KalLexer": ( + "pygments.lexers.javascript", + "Kal", + ("kal",), + ("*.kal",), + ("text/kal", "application/kal"), + ), + "KconfigLexer": ( + "pygments.lexers.configs", + "Kconfig", + ("kconfig", "menuconfig", "linux-config", "kernel-config"), + ("Kconfig*", "*Config.in*", "external.in*", "standard-modules.in"), + ("text/x-kconfig",), + ), + "KernelLogLexer": ( + "pygments.lexers.textfmts", + "Kernel log", + ("kmsg", "dmesg"), + ("*.kmsg", "*.dmesg"), + (), + ), + "KokaLexer": ( + "pygments.lexers.haskell", + "Koka", + ("koka",), + ("*.kk", "*.kki"), + ("text/x-koka",), + ), + "KotlinLexer": ( + "pygments.lexers.jvm", + "Kotlin", + ("kotlin",), + ("*.kt", "*.kts"), + ("text/x-kotlin",), + ), + "KuinLexer": ("pygments.lexers.kuin", "Kuin", ("kuin",), ("*.kn",), ()), + "KustoLexer": ( + "pygments.lexers.kusto", + "Kusto", + ("kql", "kusto"), + ("*.kql", "*.kusto", ".csl"), + (), + ), + "LSLLexer": ( + "pygments.lexers.scripting", + "LSL", + ("lsl",), + ("*.lsl",), + ("text/x-lsl",), + ), + "LassoCssLexer": ( + "pygments.lexers.templates", + "CSS+Lasso", + ("css+lasso",), + (), + ("text/css+lasso",), + ), + "LassoHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Lasso", + ("html+lasso",), + (), + ( + "text/html+lasso", + "application/x-httpd-lasso", + "application/x-httpd-lasso[89]", + ), + ), + "LassoJavascriptLexer": ( + "pygments.lexers.templates", + "JavaScript+Lasso", + ("javascript+lasso", "js+lasso"), + (), + ( + "application/x-javascript+lasso", + "text/x-javascript+lasso", + "text/javascript+lasso", + ), + ), + "LassoLexer": ( + "pygments.lexers.javascript", + "Lasso", + ("lasso", "lassoscript"), + ("*.lasso", "*.lasso[89]"), + ("text/x-lasso",), + ), + "LassoXmlLexer": ( + "pygments.lexers.templates", + "XML+Lasso", + ("xml+lasso",), + (), + ("application/xml+lasso",), + ), + "LdaprcLexer": ( + "pygments.lexers.ldap", + "LDAP configuration file", + ("ldapconf", "ldaprc"), + (".ldaprc", "ldaprc", "ldap.conf"), + ("text/x-ldapconf",), + ), + "LdifLexer": ( + "pygments.lexers.ldap", + "LDIF", + ("ldif",), + ("*.ldif",), + ("text/x-ldif",), + ), + "Lean3Lexer": ( + "pygments.lexers.lean", + "Lean", + ("lean", "lean3"), + ("*.lean",), + ("text/x-lean", "text/x-lean3"), + ), + "Lean4Lexer": ( + "pygments.lexers.lean", + "Lean4", + ("lean4",), + ("*.lean",), + ("text/x-lean4",), + ), + "LessCssLexer": ( + "pygments.lexers.css", + "LessCss", + ("less",), + ("*.less",), + ("text/x-less-css",), + ), + "LighttpdConfLexer": ( + "pygments.lexers.configs", + "Lighttpd configuration file", + ("lighttpd", "lighty"), + ("lighttpd.conf",), + ("text/x-lighttpd-conf",), + ), + "LilyPondLexer": ( + "pygments.lexers.lilypond", + "LilyPond", + ("lilypond",), + ("*.ly",), + (), + ), + "LimboLexer": ( + "pygments.lexers.inferno", + "Limbo", + ("limbo",), + ("*.b",), + ("text/limbo",), + ), + "LiquidLexer": ( + "pygments.lexers.templates", + "liquid", + ("liquid",), + ("*.liquid",), + (), + ), + "LiterateAgdaLexer": ( + "pygments.lexers.haskell", + "Literate Agda", + ("literate-agda", "lagda"), + ("*.lagda",), + ("text/x-literate-agda",), + ), + "LiterateCryptolLexer": ( + "pygments.lexers.haskell", + "Literate Cryptol", + ("literate-cryptol", "lcryptol", "lcry"), + ("*.lcry",), + ("text/x-literate-cryptol",), + ), + "LiterateHaskellLexer": ( + "pygments.lexers.haskell", + "Literate Haskell", + ("literate-haskell", "lhaskell", "lhs"), + ("*.lhs",), + ("text/x-literate-haskell",), + ), + "LiterateIdrisLexer": ( + "pygments.lexers.haskell", + "Literate Idris", + ("literate-idris", "lidris", "lidr"), + ("*.lidr",), + ("text/x-literate-idris",), + ), + "LiveScriptLexer": ( + "pygments.lexers.javascript", + "LiveScript", + ("livescript", "live-script"), + ("*.ls",), + ("text/livescript",), + ), + "LlvmLexer": ( + "pygments.lexers.asm", + "LLVM", + ("llvm",), + ("*.ll",), + ("text/x-llvm",), + ), + "LlvmMirBodyLexer": ( + "pygments.lexers.asm", + "LLVM-MIR Body", + ("llvm-mir-body",), + (), + (), + ), + "LlvmMirLexer": ("pygments.lexers.asm", "LLVM-MIR", ("llvm-mir",), ("*.mir",), ()), + "LogosLexer": ( + "pygments.lexers.objective", + "Logos", + ("logos",), + ("*.x", "*.xi", "*.xm", "*.xmi"), + ("text/x-logos",), + ), + "LogtalkLexer": ( + "pygments.lexers.prolog", + "Logtalk", + ("logtalk",), + ("*.lgt", "*.logtalk"), + ("text/x-logtalk",), + ), + "LuaLexer": ( + "pygments.lexers.scripting", + "Lua", + ("lua",), + ("*.lua", "*.wlua"), + ("text/x-lua", "application/x-lua"), + ), + "LuauLexer": ("pygments.lexers.scripting", "Luau", ("luau",), ("*.luau",), ()), + "MCFunctionLexer": ( + "pygments.lexers.minecraft", + "MCFunction", + ("mcfunction", "mcf"), + ("*.mcfunction",), + ("text/mcfunction",), + ), + "MCSchemaLexer": ( + "pygments.lexers.minecraft", + "MCSchema", + ("mcschema",), + ("*.mcschema",), + ("text/mcschema",), + ), + "MIMELexer": ( + "pygments.lexers.mime", + "MIME", + ("mime",), + (), + ("multipart/mixed", "multipart/related", "multipart/alternative"), + ), + "MIPSLexer": ("pygments.lexers.mips", "MIPS", ("mips",), ("*.mips", "*.MIPS"), ()), + "MOOCodeLexer": ( + "pygments.lexers.scripting", + "MOOCode", + ("moocode", "moo"), + ("*.moo",), + ("text/x-moocode",), + ), + "MSDOSSessionLexer": ( + "pygments.lexers.shell", + "MSDOS Session", + ("doscon",), + (), + (), + ), + "Macaulay2Lexer": ( + "pygments.lexers.macaulay2", + "Macaulay2", + ("macaulay2",), + ("*.m2",), + (), + ), + "MakefileLexer": ( + "pygments.lexers.make", + "Makefile", + ("make", "makefile", "mf", "bsdmake"), + ("*.mak", "*.mk", "Makefile", "makefile", "Makefile.*", "GNUmakefile"), + ("text/x-makefile",), + ), + "MakoCssLexer": ( + "pygments.lexers.templates", + "CSS+Mako", + ("css+mako",), + (), + ("text/css+mako",), + ), + "MakoHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Mako", + ("html+mako",), + (), + ("text/html+mako",), + ), + "MakoJavascriptLexer": ( + "pygments.lexers.templates", + "JavaScript+Mako", + ("javascript+mako", "js+mako"), + (), + ( + "application/x-javascript+mako", + "text/x-javascript+mako", + "text/javascript+mako", + ), + ), + "MakoLexer": ( + "pygments.lexers.templates", + "Mako", + ("mako",), + ("*.mao",), + ("application/x-mako",), + ), + "MakoXmlLexer": ( + "pygments.lexers.templates", + "XML+Mako", + ("xml+mako",), + (), + ("application/xml+mako",), + ), + "MapleLexer": ( + "pygments.lexers.maple", + "Maple", + ("maple",), + ("*.mpl", "*.mi", "*.mm"), + ("text/x-maple",), + ), + "MaqlLexer": ( + "pygments.lexers.business", + "MAQL", + ("maql",), + ("*.maql",), + ("text/x-gooddata-maql", "application/x-gooddata-maql"), + ), + "MarkdownLexer": ( + "pygments.lexers.markup", + "Markdown", + ("markdown", "md"), + ("*.md", "*.markdown"), + ("text/x-markdown",), + ), + "MaskLexer": ( + "pygments.lexers.javascript", + "Mask", + ("mask",), + ("*.mask",), + ("text/x-mask",), + ), + "MasonLexer": ( + "pygments.lexers.templates", + "Mason", + ("mason",), + ("*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"), + ("application/x-mason",), + ), + "MathematicaLexer": ( + "pygments.lexers.algebra", + "Mathematica", + ("mathematica", "mma", "nb"), + ("*.nb", "*.cdf", "*.nbp", "*.ma"), + ( + "application/mathematica", + "application/vnd.wolfram.mathematica", + "application/vnd.wolfram.mathematica.package", + "application/vnd.wolfram.cdf", + ), + ), + "MatlabLexer": ( + "pygments.lexers.matlab", + "Matlab", + ("matlab",), + ("*.m",), + ("text/matlab",), + ), + "MatlabSessionLexer": ( + "pygments.lexers.matlab", + "Matlab session", + ("matlabsession",), + (), + (), + ), + "MaximaLexer": ( + "pygments.lexers.maxima", + "Maxima", + ("maxima", "macsyma"), + ("*.mac", "*.max"), + (), + ), + "MesonLexer": ( + "pygments.lexers.meson", + "Meson", + ("meson", "meson.build"), + ("meson.build", "meson_options.txt"), + ("text/x-meson",), + ), + "MiniDLexer": ("pygments.lexers.d", "MiniD", ("minid",), (), ("text/x-minidsrc",)), + "MiniScriptLexer": ( + "pygments.lexers.scripting", + "MiniScript", + ("miniscript", "ms"), + ("*.ms",), + ("text/x-minicript", "application/x-miniscript"), + ), + "ModelicaLexer": ( + "pygments.lexers.modeling", + "Modelica", + ("modelica",), + ("*.mo",), + ("text/x-modelica",), + ), + "Modula2Lexer": ( + "pygments.lexers.modula2", + "Modula-2", + ("modula2", "m2"), + ("*.def", "*.mod"), + ("text/x-modula2",), + ), + "MoinWikiLexer": ( + "pygments.lexers.markup", + "MoinMoin/Trac Wiki markup", + ("trac-wiki", "moin"), + (), + ("text/x-trac-wiki",), + ), + "MojoLexer": ( + "pygments.lexers.mojo", + "Mojo", + ("mojo", "🔥"), + ("*.mojo", "*.🔥"), + ("text/x-mojo", "application/x-mojo"), + ), + "MonkeyLexer": ( + "pygments.lexers.basic", + "Monkey", + ("monkey",), + ("*.monkey",), + ("text/x-monkey",), + ), + "MonteLexer": ("pygments.lexers.monte", "Monte", ("monte",), ("*.mt",), ()), + "MoonScriptLexer": ( + "pygments.lexers.scripting", + "MoonScript", + ("moonscript", "moon"), + ("*.moon",), + ("text/x-moonscript", "application/x-moonscript"), + ), + "MoselLexer": ("pygments.lexers.mosel", "Mosel", ("mosel",), ("*.mos",), ()), + "MozPreprocCssLexer": ( + "pygments.lexers.markup", + "CSS+mozpreproc", + ("css+mozpreproc",), + ("*.css.in",), + (), + ), + "MozPreprocHashLexer": ( + "pygments.lexers.markup", + "mozhashpreproc", + ("mozhashpreproc",), + (), + (), + ), + "MozPreprocJavascriptLexer": ( + "pygments.lexers.markup", + "Javascript+mozpreproc", + ("javascript+mozpreproc",), + ("*.js.in",), + (), + ), + "MozPreprocPercentLexer": ( + "pygments.lexers.markup", + "mozpercentpreproc", + ("mozpercentpreproc",), + (), + (), + ), + "MozPreprocXulLexer": ( + "pygments.lexers.markup", + "XUL+mozpreproc", + ("xul+mozpreproc",), + ("*.xul.in",), + (), + ), + "MqlLexer": ( + "pygments.lexers.c_like", + "MQL", + ("mql", "mq4", "mq5", "mql4", "mql5"), + ("*.mq4", "*.mq5", "*.mqh"), + ("text/x-mql",), + ), + "MscgenLexer": ( + "pygments.lexers.dsls", + "Mscgen", + ("mscgen", "msc"), + ("*.msc",), + (), + ), + "MuPADLexer": ("pygments.lexers.algebra", "MuPAD", ("mupad",), ("*.mu",), ()), + "MxmlLexer": ("pygments.lexers.actionscript", "MXML", ("mxml",), ("*.mxml",), ()), + "MySqlLexer": ("pygments.lexers.sql", "MySQL", ("mysql",), (), ("text/x-mysql",)), + "MyghtyCssLexer": ( + "pygments.lexers.templates", + "CSS+Myghty", + ("css+myghty",), + (), + ("text/css+myghty",), + ), + "MyghtyHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Myghty", + ("html+myghty",), + (), + ("text/html+myghty",), + ), + "MyghtyJavascriptLexer": ( + "pygments.lexers.templates", + "JavaScript+Myghty", + ("javascript+myghty", "js+myghty"), + (), + ( + "application/x-javascript+myghty", + "text/x-javascript+myghty", + "text/javascript+mygthy", + ), + ), + "MyghtyLexer": ( + "pygments.lexers.templates", + "Myghty", + ("myghty",), + ("*.myt", "autodelegate"), + ("application/x-myghty",), + ), + "MyghtyXmlLexer": ( + "pygments.lexers.templates", + "XML+Myghty", + ("xml+myghty",), + (), + ("application/xml+myghty",), + ), + "NCLLexer": ("pygments.lexers.ncl", "NCL", ("ncl",), ("*.ncl",), ("text/ncl",)), + "NSISLexer": ( + "pygments.lexers.installers", + "NSIS", + ("nsis", "nsi", "nsh"), + ("*.nsi", "*.nsh"), + ("text/x-nsis",), + ), + "NasmLexer": ( + "pygments.lexers.asm", + "NASM", + ("nasm",), + ("*.asm", "*.ASM", "*.nasm"), + ("text/x-nasm",), + ), + "NasmObjdumpLexer": ( + "pygments.lexers.asm", + "objdump-nasm", + ("objdump-nasm",), + ("*.objdump-intel",), + ("text/x-nasm-objdump",), + ), + "NemerleLexer": ( + "pygments.lexers.dotnet", + "Nemerle", + ("nemerle",), + ("*.n",), + ("text/x-nemerle",), + ), + "NesCLexer": ( + "pygments.lexers.c_like", + "nesC", + ("nesc",), + ("*.nc",), + ("text/x-nescsrc",), + ), + "NestedTextLexer": ( + "pygments.lexers.configs", + "NestedText", + ("nestedtext", "nt"), + ("*.nt",), + (), + ), + "NewLispLexer": ( + "pygments.lexers.lisp", + "NewLisp", + ("newlisp",), + ("*.lsp", "*.nl", "*.kif"), + ("text/x-newlisp", "application/x-newlisp"), + ), + "NewspeakLexer": ( + "pygments.lexers.smalltalk", + "Newspeak", + ("newspeak",), + ("*.ns2",), + ("text/x-newspeak",), + ), + "NginxConfLexer": ( + "pygments.lexers.configs", + "Nginx configuration file", + ("nginx",), + ("nginx.conf",), + ("text/x-nginx-conf",), + ), + "NimrodLexer": ( + "pygments.lexers.nimrod", + "Nimrod", + ("nimrod", "nim"), + ("*.nim", "*.nimrod"), + ("text/x-nim",), + ), + "NitLexer": ("pygments.lexers.nit", "Nit", ("nit",), ("*.nit",), ()), + "NixLexer": ( + "pygments.lexers.nix", + "Nix", + ("nixos", "nix"), + ("*.nix",), + ("text/x-nix",), + ), + "NodeConsoleLexer": ( + "pygments.lexers.javascript", + "Node.js REPL console session", + ("nodejsrepl",), + (), + ("text/x-nodejsrepl",), + ), + "NotmuchLexer": ("pygments.lexers.textfmts", "Notmuch", ("notmuch",), (), ()), + "NuSMVLexer": ("pygments.lexers.smv", "NuSMV", ("nusmv",), ("*.smv",), ()), + "NumPyLexer": ("pygments.lexers.python", "NumPy", ("numpy",), (), ()), + "NumbaIRLexer": ( + "pygments.lexers.numbair", + "Numba_IR", + ("numba_ir", "numbair"), + ("*.numba_ir",), + ("text/x-numba_ir", "text/x-numbair"), + ), + "ObjdumpLexer": ( + "pygments.lexers.asm", + "objdump", + ("objdump",), + ("*.objdump",), + ("text/x-objdump",), + ), + "ObjectiveCLexer": ( + "pygments.lexers.objective", + "Objective-C", + ("objective-c", "objectivec", "obj-c", "objc"), + ("*.m", "*.h"), + ("text/x-objective-c",), + ), + "ObjectiveCppLexer": ( + "pygments.lexers.objective", + "Objective-C++", + ("objective-c++", "objectivec++", "obj-c++", "objc++"), + ("*.mm", "*.hh"), + ("text/x-objective-c++",), + ), + "ObjectiveJLexer": ( + "pygments.lexers.javascript", + "Objective-J", + ("objective-j", "objectivej", "obj-j", "objj"), + ("*.j",), + ("text/x-objective-j",), + ), + "OcamlLexer": ( + "pygments.lexers.ml", + "OCaml", + ("ocaml",), + ("*.ml", "*.mli", "*.mll", "*.mly"), + ("text/x-ocaml",), + ), + "OctaveLexer": ( + "pygments.lexers.matlab", + "Octave", + ("octave",), + ("*.m",), + ("text/octave",), + ), + "OdinLexer": ( + "pygments.lexers.archetype", + "ODIN", + ("odin",), + ("*.odin",), + ("text/odin",), + ), + "OmgIdlLexer": ( + "pygments.lexers.c_like", + "OMG Interface Definition Language", + ("omg-idl",), + ("*.idl", "*.pidl"), + (), + ), + "OocLexer": ("pygments.lexers.ooc", "Ooc", ("ooc",), ("*.ooc",), ("text/x-ooc",)), + "OpaLexer": ("pygments.lexers.ml", "Opa", ("opa",), ("*.opa",), ("text/x-opa",)), + "OpenEdgeLexer": ( + "pygments.lexers.business", + "OpenEdge ABL", + ("openedge", "abl", "progress"), + ("*.p", "*.cls"), + ("text/x-openedge", "application/x-openedge"), + ), + "OpenScadLexer": ( + "pygments.lexers.openscad", + "OpenSCAD", + ("openscad",), + ("*.scad",), + ("application/x-openscad",), + ), + "OrgLexer": ( + "pygments.lexers.markup", + "Org Mode", + ("org", "orgmode", "org-mode"), + ("*.org",), + ("text/org",), + ), + "OutputLexer": ("pygments.lexers.special", "Text output", ("output",), (), ()), + "PacmanConfLexer": ( + "pygments.lexers.configs", + "PacmanConf", + ("pacmanconf",), + ("pacman.conf",), + (), + ), + "PanLexer": ("pygments.lexers.dsls", "Pan", ("pan",), ("*.pan",), ()), + "ParaSailLexer": ( + "pygments.lexers.parasail", + "ParaSail", + ("parasail",), + ("*.psi", "*.psl"), + ("text/x-parasail",), + ), + "PawnLexer": ( + "pygments.lexers.pawn", + "Pawn", + ("pawn",), + ("*.p", "*.pwn", "*.inc"), + ("text/x-pawn",), + ), + "PddlLexer": ("pygments.lexers.pddl", "PDDL", ("pddl",), ("*.pddl",), ()), + "PegLexer": ( + "pygments.lexers.grammar_notation", + "PEG", + ("peg",), + ("*.peg",), + ("text/x-peg",), + ), + "Perl6Lexer": ( + "pygments.lexers.perl", + "Perl6", + ("perl6", "pl6", "raku"), + ( + "*.pl", + "*.pm", + "*.nqp", + "*.p6", + "*.6pl", + "*.p6l", + "*.pl6", + "*.6pm", + "*.p6m", + "*.pm6", + "*.t", + "*.raku", + "*.rakumod", + "*.rakutest", + "*.rakudoc", + ), + ("text/x-perl6", "application/x-perl6"), + ), + "PerlLexer": ( + "pygments.lexers.perl", + "Perl", + ("perl", "pl"), + ("*.pl", "*.pm", "*.t", "*.perl"), + ("text/x-perl", "application/x-perl"), + ), + "PhixLexer": ( + "pygments.lexers.phix", + "Phix", + ("phix",), + ("*.exw",), + ("text/x-phix",), + ), + "PhpLexer": ( + "pygments.lexers.php", + "PHP", + ("php", "php3", "php4", "php5"), + ("*.php", "*.php[345]", "*.inc"), + ("text/x-php",), + ), + "PigLexer": ("pygments.lexers.jvm", "Pig", ("pig",), ("*.pig",), ("text/x-pig",)), + "PikeLexer": ( + "pygments.lexers.c_like", + "Pike", + ("pike",), + ("*.pike", "*.pmod"), + ("text/x-pike",), + ), + "PkgConfigLexer": ( + "pygments.lexers.configs", + "PkgConfig", + ("pkgconfig",), + ("*.pc",), + (), + ), + "PlPgsqlLexer": ( + "pygments.lexers.sql", + "PL/pgSQL", + ("plpgsql",), + (), + ("text/x-plpgsql",), + ), + "PointlessLexer": ( + "pygments.lexers.pointless", + "Pointless", + ("pointless",), + ("*.ptls",), + (), + ), + "PonyLexer": ("pygments.lexers.pony", "Pony", ("pony",), ("*.pony",), ()), + "PortugolLexer": ( + "pygments.lexers.pascal", + "Portugol", + ("portugol",), + ("*.alg", "*.portugol"), + (), + ), + "PostScriptLexer": ( + "pygments.lexers.graphics", + "PostScript", + ("postscript", "postscr"), + ("*.ps", "*.eps"), + ("application/postscript",), + ), + "PostgresConsoleLexer": ( + "pygments.lexers.sql", + "PostgreSQL console (psql)", + ("psql", "postgresql-console", "postgres-console"), + (), + ("text/x-postgresql-psql",), + ), + "PostgresExplainLexer": ( + "pygments.lexers.sql", + "PostgreSQL EXPLAIN dialect", + ("postgres-explain",), + ("*.explain",), + ("text/x-postgresql-explain",), + ), + "PostgresLexer": ( + "pygments.lexers.sql", + "PostgreSQL SQL dialect", + ("postgresql", "postgres"), + (), + ("text/x-postgresql",), + ), + "PovrayLexer": ( + "pygments.lexers.graphics", + "POVRay", + ("pov",), + ("*.pov", "*.inc"), + ("text/x-povray",), + ), + "PowerShellLexer": ( + "pygments.lexers.shell", + "PowerShell", + ("powershell", "pwsh", "posh", "ps1", "psm1"), + ("*.ps1", "*.psm1"), + ("text/x-powershell",), + ), + "PowerShellSessionLexer": ( + "pygments.lexers.shell", + "PowerShell Session", + ("pwsh-session", "ps1con"), + (), + (), + ), + "PraatLexer": ( + "pygments.lexers.praat", + "Praat", + ("praat",), + ("*.praat", "*.proc", "*.psc"), + (), + ), + "ProcfileLexer": ( + "pygments.lexers.procfile", + "Procfile", + ("procfile",), + ("Procfile",), + (), + ), + "PrologLexer": ( + "pygments.lexers.prolog", + "Prolog", + ("prolog",), + ("*.ecl", "*.prolog", "*.pro", "*.pl"), + ("text/x-prolog",), + ), + "PromQLLexer": ("pygments.lexers.promql", "PromQL", ("promql",), ("*.promql",), ()), + "PromelaLexer": ( + "pygments.lexers.c_like", + "Promela", + ("promela",), + ("*.pml", "*.prom", "*.prm", "*.promela", "*.pr", "*.pm"), + ("text/x-promela",), + ), + "PropertiesLexer": ( + "pygments.lexers.configs", + "Properties", + ("properties", "jproperties"), + ("*.properties",), + ("text/x-java-properties",), + ), + "ProtoBufLexer": ( + "pygments.lexers.dsls", + "Protocol Buffer", + ("protobuf", "proto"), + ("*.proto",), + (), + ), + "PrqlLexer": ( + "pygments.lexers.prql", + "PRQL", + ("prql",), + ("*.prql",), + ("application/prql", "application/x-prql"), + ), + "PsyshConsoleLexer": ( + "pygments.lexers.php", + "PsySH console session for PHP", + ("psysh",), + (), + (), + ), + "PtxLexer": ("pygments.lexers.ptx", "PTX", ("ptx",), ("*.ptx",), ("text/x-ptx",)), + "PugLexer": ( + "pygments.lexers.html", + "Pug", + ("pug", "jade"), + ("*.pug", "*.jade"), + ("text/x-pug", "text/x-jade"), + ), + "PuppetLexer": ("pygments.lexers.dsls", "Puppet", ("puppet",), ("*.pp",), ()), + "PyPyLogLexer": ( + "pygments.lexers.console", + "PyPy Log", + ("pypylog", "pypy"), + ("*.pypylog",), + ("application/x-pypylog",), + ), + "Python2Lexer": ( + "pygments.lexers.python", + "Python 2.x", + ("python2", "py2"), + (), + ("text/x-python2", "application/x-python2"), + ), + "Python2TracebackLexer": ( + "pygments.lexers.python", + "Python 2.x Traceback", + ("py2tb",), + ("*.py2tb",), + ("text/x-python2-traceback",), + ), + "PythonConsoleLexer": ( + "pygments.lexers.python", + "Python console session", + ("pycon", "python-console"), + (), + ("text/x-python-doctest",), + ), + "PythonLexer": ( + "pygments.lexers.python", + "Python", + ("python", "py", "sage", "python3", "py3", "bazel", "starlark", "pyi"), + ( + "*.py", + "*.pyw", + "*.pyi", + "*.jy", + "*.sage", + "*.sc", + "SConstruct", + "SConscript", + "*.bzl", + "BUCK", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "*.tac", + ), + ( + "text/x-python", + "application/x-python", + "text/x-python3", + "application/x-python3", + ), + ), + "PythonTracebackLexer": ( + "pygments.lexers.python", + "Python Traceback", + ("pytb", "py3tb"), + ("*.pytb", "*.py3tb"), + ("text/x-python-traceback", "text/x-python3-traceback"), + ), + "PythonUL4Lexer": ( + "pygments.lexers.ul4", + "Python+UL4", + ("py+ul4",), + ("*.pyul4",), + (), + ), + "QBasicLexer": ( + "pygments.lexers.basic", + "QBasic", + ("qbasic", "basic"), + ("*.BAS", "*.bas"), + ("text/basic",), + ), + "QLexer": ("pygments.lexers.q", "Q", ("q",), ("*.q",), ()), + "QVToLexer": ("pygments.lexers.qvt", "QVTO", ("qvto", "qvt"), ("*.qvto",), ()), + "QlikLexer": ( + "pygments.lexers.qlik", + "Qlik", + ("qlik", "qlikview", "qliksense", "qlikscript"), + ("*.qvs", "*.qvw"), + (), + ), + "QmlLexer": ( + "pygments.lexers.webmisc", + "QML", + ("qml", "qbs"), + ("*.qml", "*.qbs"), + ("application/x-qml", "application/x-qt.qbs+qml"), + ), + "RConsoleLexer": ( + "pygments.lexers.r", + "RConsole", + ("rconsole", "rout"), + ("*.Rout",), + (), + ), + "RNCCompactLexer": ( + "pygments.lexers.rnc", + "Relax-NG Compact", + ("rng-compact", "rnc"), + ("*.rnc",), + (), + ), + "RPMSpecLexer": ( + "pygments.lexers.installers", + "RPMSpec", + ("spec",), + ("*.spec",), + ("text/x-rpm-spec",), + ), + "RacketLexer": ( + "pygments.lexers.lisp", + "Racket", + ("racket", "rkt"), + ("*.rkt", "*.rktd", "*.rktl"), + ("text/x-racket", "application/x-racket"), + ), + "RagelCLexer": ( + "pygments.lexers.parsers", + "Ragel in C Host", + ("ragel-c",), + ("*.rl",), + (), + ), + "RagelCppLexer": ( + "pygments.lexers.parsers", + "Ragel in CPP Host", + ("ragel-cpp",), + ("*.rl",), + (), + ), + "RagelDLexer": ( + "pygments.lexers.parsers", + "Ragel in D Host", + ("ragel-d",), + ("*.rl",), + (), + ), + "RagelEmbeddedLexer": ( + "pygments.lexers.parsers", + "Embedded Ragel", + ("ragel-em",), + ("*.rl",), + (), + ), + "RagelJavaLexer": ( + "pygments.lexers.parsers", + "Ragel in Java Host", + ("ragel-java",), + ("*.rl",), + (), + ), + "RagelLexer": ("pygments.lexers.parsers", "Ragel", ("ragel",), (), ()), + "RagelObjectiveCLexer": ( + "pygments.lexers.parsers", + "Ragel in Objective C Host", + ("ragel-objc",), + ("*.rl",), + (), + ), + "RagelRubyLexer": ( + "pygments.lexers.parsers", + "Ragel in Ruby Host", + ("ragel-ruby", "ragel-rb"), + ("*.rl",), + (), + ), + "RawTokenLexer": ( + "pygments.lexers.special", + "Raw token data", + (), + (), + ("application/x-pygments-tokens",), + ), + "RdLexer": ("pygments.lexers.r", "Rd", ("rd",), ("*.Rd",), ("text/x-r-doc",)), + "ReasonLexer": ( + "pygments.lexers.ml", + "ReasonML", + ("reasonml", "reason"), + ("*.re", "*.rei"), + ("text/x-reasonml",), + ), + "RebolLexer": ( + "pygments.lexers.rebol", + "REBOL", + ("rebol",), + ("*.r", "*.r3", "*.reb"), + ("text/x-rebol",), + ), + "RedLexer": ( + "pygments.lexers.rebol", + "Red", + ("red", "red/system"), + ("*.red", "*.reds"), + ("text/x-red", "text/x-red-system"), + ), + "RedcodeLexer": ( + "pygments.lexers.esoteric", + "Redcode", + ("redcode",), + ("*.cw",), + (), + ), + "RegeditLexer": ( + "pygments.lexers.configs", + "reg", + ("registry",), + ("*.reg",), + ("text/x-windows-registry",), + ), + "RegoLexer": ( + "pygments.lexers.rego", + "Rego", + ("rego",), + ("*.rego",), + ("text/x-rego",), + ), + "ResourceLexer": ( + "pygments.lexers.resource", + "ResourceBundle", + ("resourcebundle", "resource"), + (), + (), + ), + "RexxLexer": ( + "pygments.lexers.scripting", + "Rexx", + ("rexx", "arexx"), + ("*.rexx", "*.rex", "*.rx", "*.arexx"), + ("text/x-rexx",), + ), + "RhtmlLexer": ( + "pygments.lexers.templates", + "RHTML", + ("rhtml", "html+erb", "html+ruby"), + ("*.rhtml",), + ("text/html+ruby",), + ), + "RideLexer": ( + "pygments.lexers.ride", + "Ride", + ("ride",), + ("*.ride",), + ("text/x-ride",), + ), + "RitaLexer": ( + "pygments.lexers.rita", + "Rita", + ("rita",), + ("*.rita",), + ("text/rita",), + ), + "RoboconfGraphLexer": ( + "pygments.lexers.roboconf", + "Roboconf Graph", + ("roboconf-graph",), + ("*.graph",), + (), + ), + "RoboconfInstancesLexer": ( + "pygments.lexers.roboconf", + "Roboconf Instances", + ("roboconf-instances",), + ("*.instances",), + (), + ), + "RobotFrameworkLexer": ( + "pygments.lexers.robotframework", + "RobotFramework", + ("robotframework",), + ("*.robot", "*.resource"), + ("text/x-robotframework",), + ), + "RqlLexer": ("pygments.lexers.sql", "RQL", ("rql",), ("*.rql",), ("text/x-rql",)), + "RslLexer": ("pygments.lexers.dsls", "RSL", ("rsl",), ("*.rsl",), ("text/rsl",)), + "RstLexer": ( + "pygments.lexers.markup", + "reStructuredText", + ("restructuredtext", "rst", "rest"), + ("*.rst", "*.rest"), + ("text/x-rst", "text/prs.fallenstein.rst"), + ), + "RtsLexer": ( + "pygments.lexers.trafficscript", + "TrafficScript", + ("trafficscript", "rts"), + ("*.rts",), + (), + ), + "RubyConsoleLexer": ( + "pygments.lexers.ruby", + "Ruby irb session", + ("rbcon", "irb"), + (), + ("text/x-ruby-shellsession",), + ), + "RubyLexer": ( + "pygments.lexers.ruby", + "Ruby", + ("ruby", "rb", "duby"), + ( + "*.rb", + "*.rbw", + "Rakefile", + "*.rake", + "*.gemspec", + "*.rbx", + "*.duby", + "Gemfile", + "Vagrantfile", + ), + ("text/x-ruby", "application/x-ruby"), + ), + "RustLexer": ( + "pygments.lexers.rust", + "Rust", + ("rust", "rs"), + ("*.rs", "*.rs.in"), + ("text/rust", "text/x-rust"), + ), + "SASLexer": ( + "pygments.lexers.sas", + "SAS", + ("sas",), + ("*.SAS", "*.sas"), + ("text/x-sas", "text/sas", "application/x-sas"), + ), + "SLexer": ( + "pygments.lexers.r", + "S", + ("splus", "s", "r"), + ("*.S", "*.R", ".Rhistory", ".Rprofile", ".Renviron"), + ( + "text/S-plus", + "text/S", + "text/x-r-source", + "text/x-r", + "text/x-R", + "text/x-r-history", + "text/x-r-profile", + ), + ), + "SMLLexer": ( + "pygments.lexers.ml", + "Standard ML", + ("sml",), + ("*.sml", "*.sig", "*.fun"), + ("text/x-standardml", "application/x-standardml"), + ), + "SNBTLexer": ( + "pygments.lexers.minecraft", + "SNBT", + ("snbt",), + ("*.snbt",), + ("text/snbt",), + ), + "SarlLexer": ( + "pygments.lexers.jvm", + "SARL", + ("sarl",), + ("*.sarl",), + ("text/x-sarl",), + ), + "SassLexer": ( + "pygments.lexers.css", + "Sass", + ("sass",), + ("*.sass",), + ("text/x-sass",), + ), + "SaviLexer": ("pygments.lexers.savi", "Savi", ("savi",), ("*.savi",), ()), + "ScalaLexer": ( + "pygments.lexers.jvm", + "Scala", + ("scala",), + ("*.scala",), + ("text/x-scala",), + ), + "ScamlLexer": ( + "pygments.lexers.html", + "Scaml", + ("scaml",), + ("*.scaml",), + ("text/x-scaml",), + ), + "ScdocLexer": ( + "pygments.lexers.scdoc", + "scdoc", + ("scdoc", "scd"), + ("*.scd", "*.scdoc"), + (), + ), + "SchemeLexer": ( + "pygments.lexers.lisp", + "Scheme", + ("scheme", "scm"), + ("*.scm", "*.ss"), + ("text/x-scheme", "application/x-scheme"), + ), + "ScilabLexer": ( + "pygments.lexers.matlab", + "Scilab", + ("scilab",), + ("*.sci", "*.sce", "*.tst"), + ("text/scilab",), + ), + "ScssLexer": ( + "pygments.lexers.css", + "SCSS", + ("scss",), + ("*.scss",), + ("text/x-scss",), + ), + "SedLexer": ( + "pygments.lexers.textedit", + "Sed", + ("sed", "gsed", "ssed"), + ("*.sed", "*.[gs]sed"), + ("text/x-sed",), + ), + "ShExCLexer": ( + "pygments.lexers.rdf", + "ShExC", + ("shexc", "shex"), + ("*.shex",), + ("text/shex",), + ), + "ShenLexer": ( + "pygments.lexers.lisp", + "Shen", + ("shen",), + ("*.shen",), + ("text/x-shen", "application/x-shen"), + ), + "SieveLexer": ( + "pygments.lexers.sieve", + "Sieve", + ("sieve",), + ("*.siv", "*.sieve"), + (), + ), + "SilverLexer": ( + "pygments.lexers.verification", + "Silver", + ("silver",), + ("*.sil", "*.vpr"), + (), + ), + "SingularityLexer": ( + "pygments.lexers.configs", + "Singularity", + ("singularity",), + ("*.def", "Singularity"), + (), + ), + "SlashLexer": ("pygments.lexers.slash", "Slash", ("slash",), ("*.sla",), ()), + "SlimLexer": ( + "pygments.lexers.webmisc", + "Slim", + ("slim",), + ("*.slim",), + ("text/x-slim",), + ), + "SlurmBashLexer": ( + "pygments.lexers.shell", + "Slurm", + ("slurm", "sbatch"), + ("*.sl",), + (), + ), + "SmaliLexer": ( + "pygments.lexers.dalvik", + "Smali", + ("smali",), + ("*.smali",), + ("text/smali",), + ), + "SmalltalkLexer": ( + "pygments.lexers.smalltalk", + "Smalltalk", + ("smalltalk", "squeak", "st"), + ("*.st",), + ("text/x-smalltalk",), + ), + "SmartGameFormatLexer": ( + "pygments.lexers.sgf", + "SmartGameFormat", + ("sgf",), + ("*.sgf",), + (), + ), + "SmartyLexer": ( + "pygments.lexers.templates", + "Smarty", + ("smarty",), + ("*.tpl",), + ("application/x-smarty",), + ), + "SmithyLexer": ("pygments.lexers.smithy", "Smithy", ("smithy",), ("*.smithy",), ()), + "SnobolLexer": ( + "pygments.lexers.snobol", + "Snobol", + ("snobol",), + ("*.snobol",), + ("text/x-snobol",), + ), + "SnowballLexer": ( + "pygments.lexers.dsls", + "Snowball", + ("snowball",), + ("*.sbl",), + (), + ), + "SolidityLexer": ( + "pygments.lexers.solidity", + "Solidity", + ("solidity",), + ("*.sol",), + (), + ), + "SoongLexer": ( + "pygments.lexers.soong", + "Soong", + ("androidbp", "bp", "soong"), + ("Android.bp",), + (), + ), + "SophiaLexer": ("pygments.lexers.sophia", "Sophia", ("sophia",), ("*.aes",), ()), + "SourcePawnLexer": ( + "pygments.lexers.pawn", + "SourcePawn", + ("sp",), + ("*.sp",), + ("text/x-sourcepawn",), + ), + "SourcesListLexer": ( + "pygments.lexers.installers", + "Debian Sourcelist", + ("debsources", "sourceslist", "sources.list"), + ("sources.list",), + (), + ), + "SparqlLexer": ( + "pygments.lexers.rdf", + "SPARQL", + ("sparql",), + ("*.rq", "*.sparql"), + ("application/sparql-query",), + ), + "SpiceLexer": ( + "pygments.lexers.spice", + "Spice", + ("spice", "spicelang"), + ("*.spice",), + ("text/x-spice",), + ), + "SqlJinjaLexer": ( + "pygments.lexers.templates", + "SQL+Jinja", + ("sql+jinja",), + ("*.sql", "*.sql.j2", "*.sql.jinja2"), + (), + ), + "SqlLexer": ("pygments.lexers.sql", "SQL", ("sql",), ("*.sql",), ("text/x-sql",)), + "SqliteConsoleLexer": ( + "pygments.lexers.sql", + "sqlite3con", + ("sqlite3",), + ("*.sqlite3-console",), + ("text/x-sqlite3-console",), + ), + "SquidConfLexer": ( + "pygments.lexers.configs", + "SquidConf", + ("squidconf", "squid.conf", "squid"), + ("squid.conf",), + ("text/x-squidconf",), + ), + "SrcinfoLexer": ( + "pygments.lexers.srcinfo", + "Srcinfo", + ("srcinfo",), + (".SRCINFO",), + (), + ), + "SspLexer": ( + "pygments.lexers.templates", + "Scalate Server Page", + ("ssp",), + ("*.ssp",), + ("application/x-ssp",), + ), + "StanLexer": ("pygments.lexers.modeling", "Stan", ("stan",), ("*.stan",), ()), + "StataLexer": ( + "pygments.lexers.stata", + "Stata", + ("stata", "do"), + ("*.do", "*.ado"), + ("text/x-stata", "text/stata", "application/x-stata"), + ), + "SuperColliderLexer": ( + "pygments.lexers.supercollider", + "SuperCollider", + ("supercollider", "sc"), + ("*.sc", "*.scd"), + ("application/supercollider", "text/supercollider"), + ), + "SwiftLexer": ( + "pygments.lexers.objective", + "Swift", + ("swift",), + ("*.swift",), + ("text/x-swift",), + ), + "SwigLexer": ( + "pygments.lexers.c_like", + "SWIG", + ("swig",), + ("*.swg", "*.i"), + ("text/swig",), + ), + "SystemVerilogLexer": ( + "pygments.lexers.hdl", + "systemverilog", + ("systemverilog", "sv"), + ("*.sv", "*.svh"), + ("text/x-systemverilog",), + ), + "SystemdLexer": ( + "pygments.lexers.configs", + "Systemd", + ("systemd",), + ( + "*.service", + "*.socket", + "*.device", + "*.mount", + "*.automount", + "*.swap", + "*.target", + "*.path", + "*.timer", + "*.slice", + "*.scope", + ), + (), + ), + "TAPLexer": ("pygments.lexers.testing", "TAP", ("tap",), ("*.tap",), ()), + "TNTLexer": ( + "pygments.lexers.tnt", + "Typographic Number Theory", + ("tnt",), + ("*.tnt",), + (), + ), + "TOMLLexer": ( + "pygments.lexers.configs", + "TOML", + ("toml",), + ("*.toml", "Pipfile", "poetry.lock"), + ("application/toml",), + ), + "TableGenLexer": ( + "pygments.lexers.tablegen", + "TableGen", + ("tablegen", "td"), + ("*.td",), + (), + ), + "TactLexer": ("pygments.lexers.tact", "Tact", ("tact",), ("*.tact",), ()), + "Tads3Lexer": ("pygments.lexers.int_fiction", "TADS 3", ("tads3",), ("*.t",), ()), + "TalLexer": ( + "pygments.lexers.tal", + "Tal", + ("tal", "uxntal"), + ("*.tal",), + ("text/x-uxntal",), + ), + "TasmLexer": ( + "pygments.lexers.asm", + "TASM", + ("tasm",), + ("*.asm", "*.ASM", "*.tasm"), + ("text/x-tasm",), + ), + "TclLexer": ( + "pygments.lexers.tcl", + "Tcl", + ("tcl",), + ("*.tcl", "*.rvt"), + ("text/x-tcl", "text/x-script.tcl", "application/x-tcl"), + ), + "TcshLexer": ( + "pygments.lexers.shell", + "Tcsh", + ("tcsh", "csh"), + ("*.tcsh", "*.csh"), + ("application/x-csh",), + ), + "TcshSessionLexer": ("pygments.lexers.shell", "Tcsh Session", ("tcshcon",), (), ()), + "TeaTemplateLexer": ( + "pygments.lexers.templates", + "Tea", + ("tea",), + ("*.tea",), + ("text/x-tea",), + ), + "TealLexer": ("pygments.lexers.teal", "teal", ("teal",), ("*.teal",), ()), + "TeraTermLexer": ( + "pygments.lexers.teraterm", + "Tera Term macro", + ("teratermmacro", "teraterm", "ttl"), + ("*.ttl",), + ("text/x-teratermmacro",), + ), + "TermcapLexer": ( + "pygments.lexers.configs", + "Termcap", + ("termcap",), + ("termcap", "termcap.src"), + (), + ), + "TerminfoLexer": ( + "pygments.lexers.configs", + "Terminfo", + ("terminfo",), + ("terminfo", "terminfo.src"), + (), + ), + "TerraformLexer": ( + "pygments.lexers.configs", + "Terraform", + ("terraform", "tf", "hcl"), + ("*.tf", "*.hcl"), + ("application/x-tf", "application/x-terraform"), + ), + "TexLexer": ( + "pygments.lexers.markup", + "TeX", + ("tex", "latex"), + ("*.tex", "*.aux", "*.toc"), + ("text/x-tex", "text/x-latex"), + ), + "TextLexer": ( + "pygments.lexers.special", + "Text only", + ("text",), + ("*.txt",), + ("text/plain",), + ), + "ThingsDBLexer": ( + "pygments.lexers.thingsdb", + "ThingsDB", + ("ti", "thingsdb"), + ("*.ti",), + (), + ), + "ThriftLexer": ( + "pygments.lexers.dsls", + "Thrift", + ("thrift",), + ("*.thrift",), + ("application/x-thrift",), + ), + "TiddlyWiki5Lexer": ( + "pygments.lexers.markup", + "tiddler", + ("tid",), + ("*.tid",), + ("text/vnd.tiddlywiki",), + ), + "TlbLexer": ("pygments.lexers.tlb", "Tl-b", ("tlb",), ("*.tlb",), ()), + "TlsLexer": ("pygments.lexers.tls", "TLS Presentation Language", ("tls",), (), ()), + "TodotxtLexer": ( + "pygments.lexers.textfmts", + "Todotxt", + ("todotxt",), + ("todo.txt", "*.todotxt"), + ("text/x-todo",), + ), + "TransactSqlLexer": ( + "pygments.lexers.sql", + "Transact-SQL", + ("tsql", "t-sql"), + ("*.sql",), + ("text/x-tsql",), + ), + "TreetopLexer": ( + "pygments.lexers.parsers", + "Treetop", + ("treetop",), + ("*.treetop", "*.tt"), + (), + ), + "TsxLexer": ( + "pygments.lexers.jsx", + "TSX", + ("tsx",), + ("*.tsx",), + ("text/typescript-tsx",), + ), + "TurtleLexer": ( + "pygments.lexers.rdf", + "Turtle", + ("turtle",), + ("*.ttl",), + ("text/turtle", "application/x-turtle"), + ), + "TwigHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Twig", + ("html+twig",), + ("*.twig",), + ("text/html+twig",), + ), + "TwigLexer": ( + "pygments.lexers.templates", + "Twig", + ("twig",), + (), + ("application/x-twig",), + ), + "TypeScriptLexer": ( + "pygments.lexers.javascript", + "TypeScript", + ("typescript", "ts"), + ("*.ts",), + ("application/x-typescript", "text/x-typescript"), + ), + "TypoScriptCssDataLexer": ( + "pygments.lexers.typoscript", + "TypoScriptCssData", + ("typoscriptcssdata",), + (), + (), + ), + "TypoScriptHtmlDataLexer": ( + "pygments.lexers.typoscript", + "TypoScriptHtmlData", + ("typoscripthtmldata",), + (), + (), + ), + "TypoScriptLexer": ( + "pygments.lexers.typoscript", + "TypoScript", + ("typoscript",), + ("*.typoscript",), + ("text/x-typoscript",), + ), + "TypstLexer": ( + "pygments.lexers.typst", + "Typst", + ("typst",), + ("*.typ",), + ("text/x-typst",), + ), + "UL4Lexer": ("pygments.lexers.ul4", "UL4", ("ul4",), ("*.ul4",), ()), + "UcodeLexer": ( + "pygments.lexers.unicon", + "ucode", + ("ucode",), + ("*.u", "*.u1", "*.u2"), + (), + ), + "UniconLexer": ( + "pygments.lexers.unicon", + "Unicon", + ("unicon",), + ("*.icn",), + ("text/unicon",), + ), + "UnixConfigLexer": ( + "pygments.lexers.configs", + "Unix/Linux config files", + ("unixconfig", "linuxconfig"), + (), + (), + ), + "UrbiscriptLexer": ( + "pygments.lexers.urbi", + "UrbiScript", + ("urbiscript",), + ("*.u",), + ("application/x-urbiscript",), + ), + "UrlEncodedLexer": ( + "pygments.lexers.html", + "urlencoded", + ("urlencoded",), + (), + ("application/x-www-form-urlencoded",), + ), + "UsdLexer": ( + "pygments.lexers.usd", + "USD", + ("usd", "usda"), + ("*.usd", "*.usda"), + (), + ), + "VBScriptLexer": ( + "pygments.lexers.basic", + "VBScript", + ("vbscript",), + ("*.vbs", "*.VBS"), + (), + ), + "VCLLexer": ( + "pygments.lexers.varnish", + "VCL", + ("vcl",), + ("*.vcl",), + ("text/x-vclsrc",), + ), + "VCLSnippetLexer": ( + "pygments.lexers.varnish", + "VCLSnippets", + ("vclsnippets", "vclsnippet"), + (), + ("text/x-vclsnippet",), + ), + "VCTreeStatusLexer": ( + "pygments.lexers.console", + "VCTreeStatus", + ("vctreestatus",), + (), + (), + ), + "VGLLexer": ("pygments.lexers.dsls", "VGL", ("vgl",), ("*.rpf",), ()), + "ValaLexer": ( + "pygments.lexers.c_like", + "Vala", + ("vala", "vapi"), + ("*.vala", "*.vapi"), + ("text/x-vala",), + ), + "VbNetAspxLexer": ( + "pygments.lexers.dotnet", + "aspx-vb", + ("aspx-vb",), + ("*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"), + (), + ), + "VbNetLexer": ( + "pygments.lexers.dotnet", + "VB.net", + ("vb.net", "vbnet", "lobas", "oobas", "sobas", "visual-basic", "visualbasic"), + ("*.vb", "*.bas"), + ("text/x-vbnet", "text/x-vba"), + ), + "VelocityHtmlLexer": ( + "pygments.lexers.templates", + "HTML+Velocity", + ("html+velocity",), + (), + ("text/html+velocity",), + ), + "VelocityLexer": ( + "pygments.lexers.templates", + "Velocity", + ("velocity",), + ("*.vm", "*.fhtml"), + (), + ), + "VelocityXmlLexer": ( + "pygments.lexers.templates", + "XML+Velocity", + ("xml+velocity",), + (), + ("application/xml+velocity",), + ), + "VerifpalLexer": ( + "pygments.lexers.verifpal", + "Verifpal", + ("verifpal",), + ("*.vp",), + ("text/x-verifpal",), + ), + "VerilogLexer": ( + "pygments.lexers.hdl", + "verilog", + ("verilog", "v"), + ("*.v",), + ("text/x-verilog",), + ), + "VhdlLexer": ( + "pygments.lexers.hdl", + "vhdl", + ("vhdl",), + ("*.vhdl", "*.vhd"), + ("text/x-vhdl",), + ), + "VimLexer": ( + "pygments.lexers.textedit", + "VimL", + ("vim",), + ( + "*.vim", + ".vimrc", + ".exrc", + ".gvimrc", + "_vimrc", + "_exrc", + "_gvimrc", + "vimrc", + "gvimrc", + ), + ("text/x-vim",), + ), + "VisualPrologGrammarLexer": ( + "pygments.lexers.vip", + "Visual Prolog Grammar", + ("visualprologgrammar",), + ("*.vipgrm",), + (), + ), + "VisualPrologLexer": ( + "pygments.lexers.vip", + "Visual Prolog", + ("visualprolog",), + ("*.pro", "*.cl", "*.i", "*.pack", "*.ph"), + (), + ), + "VueLexer": ("pygments.lexers.html", "Vue", ("vue",), ("*.vue",), ()), + "VyperLexer": ("pygments.lexers.vyper", "Vyper", ("vyper",), ("*.vy",), ()), + "WDiffLexer": ("pygments.lexers.diff", "WDiff", ("wdiff",), ("*.wdiff",), ()), + "WatLexer": ( + "pygments.lexers.webassembly", + "WebAssembly", + ("wast", "wat"), + ("*.wat", "*.wast"), + (), + ), + "WebIDLLexer": ( + "pygments.lexers.webidl", + "Web IDL", + ("webidl",), + ("*.webidl",), + (), + ), + "WgslLexer": ( + "pygments.lexers.wgsl", + "WebGPU Shading Language", + ("wgsl",), + ("*.wgsl",), + ("text/wgsl",), + ), + "WhileyLexer": ( + "pygments.lexers.whiley", + "Whiley", + ("whiley",), + ("*.whiley",), + ("text/x-whiley",), + ), + "WikitextLexer": ( + "pygments.lexers.markup", + "Wikitext", + ("wikitext", "mediawiki"), + (), + ("text/x-wiki",), + ), + "WoWTocLexer": ( + "pygments.lexers.wowtoc", + "World of Warcraft TOC", + ("wowtoc",), + ("*.toc",), + (), + ), + "WrenLexer": ("pygments.lexers.wren", "Wren", ("wren",), ("*.wren",), ()), + "X10Lexer": ( + "pygments.lexers.x10", + "X10", + ("x10", "xten"), + ("*.x10",), + ("text/x-x10",), + ), + "XMLUL4Lexer": ("pygments.lexers.ul4", "XML+UL4", ("xml+ul4",), ("*.xmlul4",), ()), + "XQueryLexer": ( + "pygments.lexers.webmisc", + "XQuery", + ("xquery", "xqy", "xq", "xql", "xqm"), + ("*.xqy", "*.xquery", "*.xq", "*.xql", "*.xqm"), + ("text/xquery", "application/xquery"), + ), + "XmlDjangoLexer": ( + "pygments.lexers.templates", + "XML+Django/Jinja", + ("xml+django", "xml+jinja"), + ("*.xml.j2", "*.xml.jinja2"), + ("application/xml+django", "application/xml+jinja"), + ), + "XmlErbLexer": ( + "pygments.lexers.templates", + "XML+Ruby", + ("xml+ruby", "xml+erb"), + (), + ("application/xml+ruby",), + ), + "XmlLexer": ( + "pygments.lexers.html", + "XML", + ("xml",), + ("*.xml", "*.xsl", "*.rss", "*.xslt", "*.xsd", "*.wsdl", "*.wsf"), + ( + "text/xml", + "application/xml", + "image/svg+xml", + "application/rss+xml", + "application/atom+xml", + ), + ), + "XmlPhpLexer": ( + "pygments.lexers.templates", + "XML+PHP", + ("xml+php",), + (), + ("application/xml+php",), + ), + "XmlSmartyLexer": ( + "pygments.lexers.templates", + "XML+Smarty", + ("xml+smarty",), + (), + ("application/xml+smarty",), + ), + "XorgLexer": ("pygments.lexers.xorg", "Xorg", ("xorg.conf",), ("xorg.conf",), ()), + "XppLexer": ("pygments.lexers.dotnet", "X++", ("xpp", "x++"), ("*.xpp",), ()), + "XsltLexer": ( + "pygments.lexers.html", + "XSLT", + ("xslt",), + ("*.xsl", "*.xslt", "*.xpl"), + ("application/xsl+xml", "application/xslt+xml"), + ), + "XtendLexer": ( + "pygments.lexers.jvm", + "Xtend", + ("xtend",), + ("*.xtend",), + ("text/x-xtend",), + ), + "XtlangLexer": ("pygments.lexers.lisp", "xtlang", ("extempore",), ("*.xtm",), ()), + "YamlJinjaLexer": ( + "pygments.lexers.templates", + "YAML+Jinja", + ("yaml+jinja", "salt", "sls"), + ("*.sls", "*.yaml.j2", "*.yml.j2", "*.yaml.jinja2", "*.yml.jinja2"), + ("text/x-yaml+jinja", "text/x-sls"), + ), + "YamlLexer": ( + "pygments.lexers.data", + "YAML", + ("yaml",), + ("*.yaml", "*.yml"), + ("text/x-yaml",), + ), + "YangLexer": ( + "pygments.lexers.yang", + "YANG", + ("yang",), + ("*.yang",), + ("application/yang",), + ), + "YaraLexer": ( + "pygments.lexers.yara", + "YARA", + ("yara", "yar"), + ("*.yar",), + ("text/x-yara",), + ), + "ZeekLexer": ( + "pygments.lexers.dsls", + "Zeek", + ("zeek", "bro"), + ("*.zeek", "*.bro"), + (), + ), + "ZephirLexer": ("pygments.lexers.php", "Zephir", ("zephir",), ("*.zep",), ()), + "ZigLexer": ("pygments.lexers.zig", "Zig", ("zig",), ("*.zig",), ("text/zig",)), + "apdlexer": ( + "pygments.lexers.apdlexer", + "ANSYS parametric design language", + ("ansys", "apdl"), + ("*.ans",), + (), + ), } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mql_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mql_builtins.py index 181c25d..8fa1ed2 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mql_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mql_builtins.py @@ -1,1171 +1,1199 @@ """ - pygments.lexers._mql_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._mql_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Builtins for the MqlLexer. +Builtins for the MqlLexer. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ + types = ( - 'AccountBalance', - 'AccountCompany', - 'AccountCredit', - 'AccountCurrency', - 'AccountEquity', - 'AccountFreeMarginCheck', - 'AccountFreeMarginMode', - 'AccountFreeMargin', - 'AccountInfoDouble', - 'AccountInfoInteger', - 'AccountInfoString', - 'AccountLeverage', - 'AccountMargin', - 'AccountName', - 'AccountNumber', - 'AccountProfit', - 'AccountServer', - 'AccountStopoutLevel', - 'AccountStopoutMode', - 'Alert', - 'ArrayBsearch', - 'ArrayCompare', - 'ArrayCopyRates', - 'ArrayCopySeries', - 'ArrayCopy', - 'ArrayDimension', - 'ArrayFill', - 'ArrayFree', - 'ArrayGetAsSeries', - 'ArrayInitialize', - 'ArrayIsDynamic', - 'ArrayIsSeries', - 'ArrayMaximum', - 'ArrayMinimum', - 'ArrayRange', - 'ArrayResize', - 'ArraySetAsSeries', - 'ArraySize', - 'ArraySort', - 'CharArrayToString', - 'CharToString', - 'CharToStr', - 'CheckPointer', - 'ColorToARGB', - 'ColorToString', - 'Comment', - 'CopyClose', - 'CopyHigh', - 'CopyLow', - 'CopyOpen', - 'CopyRates', - 'CopyRealVolume', - 'CopySpread', - 'CopyTickVolume', - 'CopyTime', - 'DayOfWeek', - 'DayOfYear', - 'Day', - 'DebugBreak', - 'Digits', - 'DoubleToString', - 'DoubleToStr', - 'EnumToString', - 'EventChartCustom', - 'EventKillTimer', - 'EventSetMillisecondTimer', - 'EventSetTimer', - 'ExpertRemove', - 'FileClose', - 'FileCopy', - 'FileDelete', - 'FileFindClose', - 'FileFindFirst', - 'FileFindNext', - 'FileFlush', - 'FileGetInteger', - 'FileIsEnding', - 'FileIsExist', - 'FileIsLineEnding', - 'FileMove', - 'FileOpenHistory', - 'FileOpen', - 'FileReadArray', - 'FileReadBool', - 'FileReadDatetime', - 'FileReadDouble', - 'FileReadFloat', - 'FileReadInteger', - 'FileReadLong', - 'FileReadNumber', - 'FileReadString', - 'FileReadStruct', - 'FileSeek', - 'FileSize', - 'FileTell', - 'FileWriteArray', - 'FileWriteDouble', - 'FileWriteFloat', - 'FileWriteInteger', - 'FileWriteLong', - 'FileWriteString', - 'FileWriteStruct', - 'FileWrite', - 'FolderClean', - 'FolderCreate', - 'FolderDelete', - 'GetLastError', - 'GetPointer', - 'GetTickCount', - 'GlobalVariableCheck', - 'GlobalVariableDel', - 'GlobalVariableGet', - 'GlobalVariableName', - 'GlobalVariableSetOnCondition', - 'GlobalVariableSet', - 'GlobalVariableTemp', - 'GlobalVariableTime', - 'GlobalVariablesDeleteAll', - 'GlobalVariablesFlush', - 'GlobalVariablesTotal', - 'HideTestIndicators', - 'Hour', - 'IndicatorBuffers', - 'IndicatorCounted', - 'IndicatorDigits', - 'IndicatorSetDouble', - 'IndicatorSetInteger', - 'IndicatorSetString', - 'IndicatorShortName', - 'IntegerToString', - 'IsConnected', - 'IsDemo', - 'IsDllsAllowed', - 'IsExpertEnabled', - 'IsLibrariesAllowed', - 'IsOptimization', - 'IsStopped', - 'IsTesting', - 'IsTradeAllowed', - 'IsTradeContextBusy', - 'IsVisualMode', - 'MQLInfoInteger', - 'MQLInfoString', - 'MarketInfo', - 'MathAbs', - 'MathArccos', - 'MathArcsin', - 'MathArctan', - 'MathCeil', - 'MathCos', - 'MathExp', - 'MathFloor', - 'MathIsValidNumber', - 'MathLog', - 'MathMax', - 'MathMin', - 'MathMod', - 'MathPow', - 'MathRand', - 'MathRound', - 'MathSin', - 'MathSqrt', - 'MathSrand', - 'MathTan', - 'MessageBox', - 'Minute', - 'Month', - 'NormalizeDouble', - 'ObjectCreate', - 'ObjectDelete', - 'ObjectDescription', - 'ObjectFind', - 'ObjectGetDouble', - 'ObjectGetFiboDescription', - 'ObjectGetInteger', - 'ObjectGetShiftByValue', - 'ObjectGetString', - 'ObjectGetTimeByValue', - 'ObjectGetValueByShift', - 'ObjectGetValueByTime', - 'ObjectGet', - 'ObjectMove', - 'ObjectName', - 'ObjectSetDouble', - 'ObjectSetFiboDescription', - 'ObjectSetInteger', - 'ObjectSetString', - 'ObjectSetText', - 'ObjectSet', - 'ObjectType', - 'ObjectsDeleteAll', - 'ObjectsTotal', - 'OrderCloseBy', - 'OrderClosePrice', - 'OrderCloseTime', - 'OrderClose', - 'OrderComment', - 'OrderCommission', - 'OrderDelete', - 'OrderExpiration', - 'OrderLots', - 'OrderMagicNumber', - 'OrderModify', - 'OrderOpenPrice', - 'OrderOpenTime', - 'OrderPrint', - 'OrderProfit', - 'OrderSelect', - 'OrderSend', - 'OrderStopLoss', - 'OrderSwap', - 'OrderSymbol', - 'OrderTakeProfit', - 'OrderTicket', - 'OrderType', - 'OrdersHistoryTotal', - 'OrdersTotal', - 'PeriodSeconds', - 'Period', - 'PlaySound', - 'Point', - 'PrintFormat', - 'Print', - 'RefreshRates', - 'ResetLastError', - 'ResourceCreate', - 'ResourceFree', - 'ResourceReadImage', - 'ResourceSave', - 'Seconds', - 'SendFTP', - 'SendMail', - 'SendNotification', - 'SeriesInfoInteger', - 'SetIndexArrow', - 'SetIndexBuffer', - 'SetIndexDrawBegin', - 'SetIndexEmptyValue', - 'SetIndexLabel', - 'SetIndexShift', - 'SetIndexStyle', - 'SetLevelStyle', - 'SetLevelValue', - 'ShortArrayToString', - 'ShortToString', - 'Sleep', - 'StrToDouble', - 'StrToInteger', - 'StrToTime', - 'StringAdd', - 'StringBufferLen', - 'StringCompare', - 'StringConcatenate', - 'StringFill', - 'StringFind', - 'StringFormat', - 'StringGetCharacter', - 'StringGetChar', - 'StringInit', - 'StringLen', - 'StringReplace', - 'StringSetCharacter', - 'StringSetChar', - 'StringSplit', - 'StringSubstr', - 'StringToCharArray', - 'StringToColor', - 'StringToDouble', - 'StringToInteger', - 'StringToLower', - 'StringToShortArray', - 'StringToTime', - 'StringToUpper', - 'StringTrimLeft', - 'StringTrimRight', - 'StructToTime', - 'SymbolInfoDouble', - 'SymbolInfoInteger', - 'SymbolInfoSessionQuote', - 'SymbolInfoSessionTrade', - 'SymbolInfoString', - 'SymbolInfoTick', - 'SymbolIsSynchronized', - 'SymbolName', - 'SymbolSelect', - 'SymbolsTotal', - 'Symbol', - 'TerminalClose', - 'TerminalCompany', - 'TerminalName', - 'TerminalPath', - 'TesterStatistics', - 'TextGetSize', - 'TextOut', - 'TextSetFont', - 'TimeCurrent', - 'TimeDayOfWeek', - 'TimeDayOfYear', - 'TimeDaylightSavings', - 'TimeDay', - 'TimeGMTOffset', - 'TimeGMT', - 'TimeHour', - 'TimeLocal', - 'TimeMinute', - 'TimeMonth', - 'TimeSeconds', - 'TimeToString', - 'TimeToStruct', - 'TimeToStr', - 'TimeTradeServer', - 'TimeYear', - 'UninitializeReason', - 'WindowBarsPerChart', - 'WindowExpertName', - 'WindowFind', - 'WindowFirstVisibleBar', - 'WindowHandle', - 'WindowIsVisible', - 'WindowOnDropped', - 'WindowPriceMax', - 'WindowPriceMin', - 'WindowPriceOnDropped', - 'WindowRedraw', - 'WindowScreenShot', - 'WindowTimeOnDropped', - 'WindowXOnDropped', - 'WindowYOnDropped', - 'WindowsTotal', - 'Year', - 'ZeroMemory', - 'iAC', - 'iADX', - 'iAD', - 'iAO', - 'iATR', - 'iAlligator', - 'iBWMFI', - 'iBandsOnArray', - 'iBands', - 'iBarShift', - 'iBars', - 'iBearsPower', - 'iBullsPower', - 'iCCIOnArray', - 'iCCI', - 'iClose', - 'iCustom', - 'iDeMarker', - 'iEnvelopesOnArray', - 'iEnvelopes', - 'iForce', - 'iFractals', - 'iGator', - 'iHighest', - 'iHigh', - 'iIchimoku', - 'iLowest', - 'iLow', - 'iMACD', - 'iMAOnArray', - 'iMA', - 'iMFI', - 'iMomentumOnArray', - 'iMomentum', - 'iOBV', - 'iOpen', - 'iOsMA', - 'iRSIOnArray', - 'iRSI', - 'iRVI', - 'iSAR', - 'iStdDevOnArray', - 'iStdDev', - 'iStochastic', - 'iTime', - 'iVolume', - 'iWPR', + "AccountBalance", + "AccountCompany", + "AccountCredit", + "AccountCurrency", + "AccountEquity", + "AccountFreeMarginCheck", + "AccountFreeMarginMode", + "AccountFreeMargin", + "AccountInfoDouble", + "AccountInfoInteger", + "AccountInfoString", + "AccountLeverage", + "AccountMargin", + "AccountName", + "AccountNumber", + "AccountProfit", + "AccountServer", + "AccountStopoutLevel", + "AccountStopoutMode", + "Alert", + "ArrayBsearch", + "ArrayCompare", + "ArrayCopyRates", + "ArrayCopySeries", + "ArrayCopy", + "ArrayDimension", + "ArrayFill", + "ArrayFree", + "ArrayGetAsSeries", + "ArrayInitialize", + "ArrayIsDynamic", + "ArrayIsSeries", + "ArrayMaximum", + "ArrayMinimum", + "ArrayRange", + "ArrayResize", + "ArraySetAsSeries", + "ArraySize", + "ArraySort", + "CharArrayToString", + "CharToString", + "CharToStr", + "CheckPointer", + "ColorToARGB", + "ColorToString", + "Comment", + "CopyClose", + "CopyHigh", + "CopyLow", + "CopyOpen", + "CopyRates", + "CopyRealVolume", + "CopySpread", + "CopyTickVolume", + "CopyTime", + "DayOfWeek", + "DayOfYear", + "Day", + "DebugBreak", + "Digits", + "DoubleToString", + "DoubleToStr", + "EnumToString", + "EventChartCustom", + "EventKillTimer", + "EventSetMillisecondTimer", + "EventSetTimer", + "ExpertRemove", + "FileClose", + "FileCopy", + "FileDelete", + "FileFindClose", + "FileFindFirst", + "FileFindNext", + "FileFlush", + "FileGetInteger", + "FileIsEnding", + "FileIsExist", + "FileIsLineEnding", + "FileMove", + "FileOpenHistory", + "FileOpen", + "FileReadArray", + "FileReadBool", + "FileReadDatetime", + "FileReadDouble", + "FileReadFloat", + "FileReadInteger", + "FileReadLong", + "FileReadNumber", + "FileReadString", + "FileReadStruct", + "FileSeek", + "FileSize", + "FileTell", + "FileWriteArray", + "FileWriteDouble", + "FileWriteFloat", + "FileWriteInteger", + "FileWriteLong", + "FileWriteString", + "FileWriteStruct", + "FileWrite", + "FolderClean", + "FolderCreate", + "FolderDelete", + "GetLastError", + "GetPointer", + "GetTickCount", + "GlobalVariableCheck", + "GlobalVariableDel", + "GlobalVariableGet", + "GlobalVariableName", + "GlobalVariableSetOnCondition", + "GlobalVariableSet", + "GlobalVariableTemp", + "GlobalVariableTime", + "GlobalVariablesDeleteAll", + "GlobalVariablesFlush", + "GlobalVariablesTotal", + "HideTestIndicators", + "Hour", + "IndicatorBuffers", + "IndicatorCounted", + "IndicatorDigits", + "IndicatorSetDouble", + "IndicatorSetInteger", + "IndicatorSetString", + "IndicatorShortName", + "IntegerToString", + "IsConnected", + "IsDemo", + "IsDllsAllowed", + "IsExpertEnabled", + "IsLibrariesAllowed", + "IsOptimization", + "IsStopped", + "IsTesting", + "IsTradeAllowed", + "IsTradeContextBusy", + "IsVisualMode", + "MQLInfoInteger", + "MQLInfoString", + "MarketInfo", + "MathAbs", + "MathArccos", + "MathArcsin", + "MathArctan", + "MathCeil", + "MathCos", + "MathExp", + "MathFloor", + "MathIsValidNumber", + "MathLog", + "MathMax", + "MathMin", + "MathMod", + "MathPow", + "MathRand", + "MathRound", + "MathSin", + "MathSqrt", + "MathSrand", + "MathTan", + "MessageBox", + "Minute", + "Month", + "NormalizeDouble", + "ObjectCreate", + "ObjectDelete", + "ObjectDescription", + "ObjectFind", + "ObjectGetDouble", + "ObjectGetFiboDescription", + "ObjectGetInteger", + "ObjectGetShiftByValue", + "ObjectGetString", + "ObjectGetTimeByValue", + "ObjectGetValueByShift", + "ObjectGetValueByTime", + "ObjectGet", + "ObjectMove", + "ObjectName", + "ObjectSetDouble", + "ObjectSetFiboDescription", + "ObjectSetInteger", + "ObjectSetString", + "ObjectSetText", + "ObjectSet", + "ObjectType", + "ObjectsDeleteAll", + "ObjectsTotal", + "OrderCloseBy", + "OrderClosePrice", + "OrderCloseTime", + "OrderClose", + "OrderComment", + "OrderCommission", + "OrderDelete", + "OrderExpiration", + "OrderLots", + "OrderMagicNumber", + "OrderModify", + "OrderOpenPrice", + "OrderOpenTime", + "OrderPrint", + "OrderProfit", + "OrderSelect", + "OrderSend", + "OrderStopLoss", + "OrderSwap", + "OrderSymbol", + "OrderTakeProfit", + "OrderTicket", + "OrderType", + "OrdersHistoryTotal", + "OrdersTotal", + "PeriodSeconds", + "Period", + "PlaySound", + "Point", + "PrintFormat", + "Print", + "RefreshRates", + "ResetLastError", + "ResourceCreate", + "ResourceFree", + "ResourceReadImage", + "ResourceSave", + "Seconds", + "SendFTP", + "SendMail", + "SendNotification", + "SeriesInfoInteger", + "SetIndexArrow", + "SetIndexBuffer", + "SetIndexDrawBegin", + "SetIndexEmptyValue", + "SetIndexLabel", + "SetIndexShift", + "SetIndexStyle", + "SetLevelStyle", + "SetLevelValue", + "ShortArrayToString", + "ShortToString", + "Sleep", + "StrToDouble", + "StrToInteger", + "StrToTime", + "StringAdd", + "StringBufferLen", + "StringCompare", + "StringConcatenate", + "StringFill", + "StringFind", + "StringFormat", + "StringGetCharacter", + "StringGetChar", + "StringInit", + "StringLen", + "StringReplace", + "StringSetCharacter", + "StringSetChar", + "StringSplit", + "StringSubstr", + "StringToCharArray", + "StringToColor", + "StringToDouble", + "StringToInteger", + "StringToLower", + "StringToShortArray", + "StringToTime", + "StringToUpper", + "StringTrimLeft", + "StringTrimRight", + "StructToTime", + "SymbolInfoDouble", + "SymbolInfoInteger", + "SymbolInfoSessionQuote", + "SymbolInfoSessionTrade", + "SymbolInfoString", + "SymbolInfoTick", + "SymbolIsSynchronized", + "SymbolName", + "SymbolSelect", + "SymbolsTotal", + "Symbol", + "TerminalClose", + "TerminalCompany", + "TerminalName", + "TerminalPath", + "TesterStatistics", + "TextGetSize", + "TextOut", + "TextSetFont", + "TimeCurrent", + "TimeDayOfWeek", + "TimeDayOfYear", + "TimeDaylightSavings", + "TimeDay", + "TimeGMTOffset", + "TimeGMT", + "TimeHour", + "TimeLocal", + "TimeMinute", + "TimeMonth", + "TimeSeconds", + "TimeToString", + "TimeToStruct", + "TimeToStr", + "TimeTradeServer", + "TimeYear", + "UninitializeReason", + "WindowBarsPerChart", + "WindowExpertName", + "WindowFind", + "WindowFirstVisibleBar", + "WindowHandle", + "WindowIsVisible", + "WindowOnDropped", + "WindowPriceMax", + "WindowPriceMin", + "WindowPriceOnDropped", + "WindowRedraw", + "WindowScreenShot", + "WindowTimeOnDropped", + "WindowXOnDropped", + "WindowYOnDropped", + "WindowsTotal", + "Year", + "ZeroMemory", + "iAC", + "iADX", + "iAD", + "iAO", + "iATR", + "iAlligator", + "iBWMFI", + "iBandsOnArray", + "iBands", + "iBarShift", + "iBars", + "iBearsPower", + "iBullsPower", + "iCCIOnArray", + "iCCI", + "iClose", + "iCustom", + "iDeMarker", + "iEnvelopesOnArray", + "iEnvelopes", + "iForce", + "iFractals", + "iGator", + "iHighest", + "iHigh", + "iIchimoku", + "iLowest", + "iLow", + "iMACD", + "iMAOnArray", + "iMA", + "iMFI", + "iMomentumOnArray", + "iMomentum", + "iOBV", + "iOpen", + "iOsMA", + "iRSIOnArray", + "iRSI", + "iRVI", + "iSAR", + "iStdDevOnArray", + "iStdDev", + "iStochastic", + "iTime", + "iVolume", + "iWPR", ) constants = ( - 'ACCOUNT_BALANCE', - 'ACCOUNT_COMPANY', - 'ACCOUNT_CREDIT', - 'ACCOUNT_CURRENCY', - 'ACCOUNT_EQUITY', - 'ACCOUNT_FREEMARGIN', - 'ACCOUNT_LEVERAGE', - 'ACCOUNT_LIMIT_ORDERS', - 'ACCOUNT_LOGIN', - 'ACCOUNT_MARGIN', - 'ACCOUNT_MARGIN_LEVEL', - 'ACCOUNT_MARGIN_SO_CALL', - 'ACCOUNT_MARGIN_SO_MODE', - 'ACCOUNT_MARGIN_SO_SO', - 'ACCOUNT_NAME', - 'ACCOUNT_PROFIT', - 'ACCOUNT_SERVER', - 'ACCOUNT_STOPOUT_MODE_MONEY', - 'ACCOUNT_STOPOUT_MODE_PERCENT', - 'ACCOUNT_TRADE_ALLOWED', - 'ACCOUNT_TRADE_EXPERT', - 'ACCOUNT_TRADE_MODE', - 'ACCOUNT_TRADE_MODE_CONTEST', - 'ACCOUNT_TRADE_MODE_DEMO', - 'ACCOUNT_TRADE_MODE_REAL', - 'ALIGN_CENTER', - 'ALIGN_LEFT', - 'ALIGN_RIGHT', - 'ANCHOR_BOTTOM', - 'ANCHOR_CENTER', - 'ANCHOR_LEFT', - 'ANCHOR_LEFT_LOWER', - 'ANCHOR_LEFT_UPPER', - 'ANCHOR_LOWER', - 'ANCHOR_RIGHT', - 'ANCHOR_RIGHT_LOWER', - 'ANCHOR_RIGHT_UPPER', - 'ANCHOR_TOP', - 'ANCHOR_UPPER', - 'BORDER_FLAT', - 'BORDER_RAISED', - 'BORDER_SUNKEN', - 'CHARTEVENT_CHART_CHANGE', - 'CHARTEVENT_CLICK', - 'CHARTEVENT_CUSTOM', - 'CHARTEVENT_CUSTOM_LAST', - 'CHARTEVENT_KEYDOWN', - 'CHARTEVENT_MOUSE_MOVE', - 'CHARTEVENT_OBJECT_CHANGE', - 'CHARTEVENT_OBJECT_CLICK', - 'CHARTEVENT_OBJECT_CREATE', - 'CHARTEVENT_OBJECT_DELETE', - 'CHARTEVENT_OBJECT_DRAG', - 'CHARTEVENT_OBJECT_ENDEDIT', - 'CHARTS_MAX', - 'CHART_AUTOSCROLL', - 'CHART_BARS', - 'CHART_BEGIN', - 'CHART_BRING_TO_TOP', - 'CHART_CANDLES', - 'CHART_COLOR_ASK', - 'CHART_COLOR_BACKGROUND', - 'CHART_COLOR_BID', - 'CHART_COLOR_CANDLE_BEAR', - 'CHART_COLOR_CANDLE_BULL', - 'CHART_COLOR_CHART_DOWN', - 'CHART_COLOR_CHART_LINE', - 'CHART_COLOR_CHART_UP', - 'CHART_COLOR_FOREGROUND', - 'CHART_COLOR_GRID', - 'CHART_COLOR_LAST', - 'CHART_COLOR_STOP_LEVEL', - 'CHART_COLOR_VOLUME', - 'CHART_COMMENT', - 'CHART_CURRENT_POS', - 'CHART_DRAG_TRADE_LEVELS', - 'CHART_END', - 'CHART_EVENT_MOUSE_MOVE', - 'CHART_EVENT_OBJECT_CREATE', - 'CHART_EVENT_OBJECT_DELETE', - 'CHART_FIRST_VISIBLE_BAR', - 'CHART_FIXED_MAX', - 'CHART_FIXED_MIN', - 'CHART_FIXED_POSITION', - 'CHART_FOREGROUND', - 'CHART_HEIGHT_IN_PIXELS', - 'CHART_IS_OBJECT', - 'CHART_LINE', - 'CHART_MODE', - 'CHART_MOUSE_SCROLL', - 'CHART_POINTS_PER_BAR', - 'CHART_PRICE_MAX', - 'CHART_PRICE_MIN', - 'CHART_SCALEFIX', - 'CHART_SCALEFIX_11', - 'CHART_SCALE', - 'CHART_SCALE_PT_PER_BAR', - 'CHART_SHIFT', - 'CHART_SHIFT_SIZE', - 'CHART_SHOW_ASK_LINE', - 'CHART_SHOW_BID_LINE', - 'CHART_SHOW_DATE_SCALE', - 'CHART_SHOW_GRID', - 'CHART_SHOW_LAST_LINE', - 'CHART_SHOW_OBJECT_DESCR', - 'CHART_SHOW_OHLC', - 'CHART_SHOW_PERIOD_SEP', - 'CHART_SHOW_PRICE_SCALE', - 'CHART_SHOW_TRADE_LEVELS', - 'CHART_SHOW_VOLUMES', - 'CHART_VISIBLE_BARS', - 'CHART_VOLUME_HIDE', - 'CHART_VOLUME_REAL', - 'CHART_VOLUME_TICK', - 'CHART_WIDTH_IN_BARS', - 'CHART_WIDTH_IN_PIXELS', - 'CHART_WINDOWS_TOTAL', - 'CHART_WINDOW_HANDLE', - 'CHART_WINDOW_IS_VISIBLE', - 'CHART_WINDOW_YDISTANCE', - 'CHAR_MAX', - 'CHAR_MIN', - 'CLR_NONE', - 'CORNER_LEFT_LOWER', - 'CORNER_LEFT_UPPER', - 'CORNER_RIGHT_LOWER', - 'CORNER_RIGHT_UPPER', - 'CP_ACP', - 'CP_MACCP', - 'CP_OEMCP', - 'CP_SYMBOL', - 'CP_THREAD_ACP', - 'CP_UTF7', - 'CP_UTF8', - 'DBL_DIG', - 'DBL_EPSILON', - 'DBL_MANT_DIG', - 'DBL_MAX', - 'DBL_MAX_10_EXP', - 'DBL_MAX_EXP', - 'DBL_MIN', - 'DBL_MIN_10_EXP', - 'DBL_MIN_EXP', - 'DRAW_ARROW', - 'DRAW_FILLING', - 'DRAW_HISTOGRAM', - 'DRAW_LINE', - 'DRAW_NONE', - 'DRAW_SECTION', - 'DRAW_ZIGZAG', - 'EMPTY', - 'EMPTY_VALUE', - 'ERR_ACCOUNT_DISABLED', - 'ERR_BROKER_BUSY', - 'ERR_COMMON_ERROR', - 'ERR_INVALID_ACCOUNT', - 'ERR_INVALID_PRICE', - 'ERR_INVALID_STOPS', - 'ERR_INVALID_TRADE_PARAMETERS', - 'ERR_INVALID_TRADE_VOLUME', - 'ERR_LONG_POSITIONS_ONLY_ALLOWED', - 'ERR_MALFUNCTIONAL_TRADE', - 'ERR_MARKET_CLOSED', - 'ERR_NOT_ENOUGH_MONEY', - 'ERR_NOT_ENOUGH_RIGHTS', - 'ERR_NO_CONNECTION', - 'ERR_NO_ERROR', - 'ERR_NO_RESULT', - 'ERR_OFF_QUOTES', - 'ERR_OLD_VERSION', - 'ERR_ORDER_LOCKED', - 'ERR_PRICE_CHANGED', - 'ERR_REQUOTE', - 'ERR_SERVER_BUSY', - 'ERR_TOO_FREQUENT_REQUESTS', - 'ERR_TOO_MANY_REQUESTS', - 'ERR_TRADE_CONTEXT_BUSY', - 'ERR_TRADE_DISABLED', - 'ERR_TRADE_EXPIRATION_DENIED', - 'ERR_TRADE_HEDGE_PROHIBITED', - 'ERR_TRADE_MODIFY_DENIED', - 'ERR_TRADE_PROHIBITED_BY_FIFO', - 'ERR_TRADE_TIMEOUT', - 'ERR_TRADE_TOO_MANY_ORDERS', - 'FILE_ACCESS_DATE', - 'FILE_ANSI', - 'FILE_BIN', - 'FILE_COMMON', - 'FILE_CREATE_DATE', - 'FILE_CSV', - 'FILE_END', - 'FILE_EXISTS', - 'FILE_IS_ANSI', - 'FILE_IS_BINARY', - 'FILE_IS_COMMON', - 'FILE_IS_CSV', - 'FILE_IS_READABLE', - 'FILE_IS_TEXT', - 'FILE_IS_WRITABLE', - 'FILE_LINE_END', - 'FILE_MODIFY_DATE', - 'FILE_POSITION', - 'FILE_READ', - 'FILE_REWRITE', - 'FILE_SHARE_READ', - 'FILE_SHARE_WRITE', - 'FILE_SIZE', - 'FILE_TXT', - 'FILE_UNICODE', - 'FILE_WRITE', - 'FLT_DIG', - 'FLT_EPSILON', - 'FLT_MANT_DIG', - 'FLT_MAX', - 'FLT_MAX_10_EXP', - 'FLT_MAX_EXP', - 'FLT_MIN', - 'FLT_MIN_10_EXP', - 'FLT_MIN_EXP', - 'FRIDAY', - 'GANN_DOWN_TREND', - 'GANN_UP_TREND', - 'IDABORT', - 'IDCANCEL', - 'IDCONTINUE', - 'IDIGNORE', - 'IDNO', - 'IDOK', - 'IDRETRY', - 'IDTRYAGAIN', - 'IDYES', - 'INDICATOR_CALCULATIONS', - 'INDICATOR_COLOR_INDEX', - 'INDICATOR_DATA', - 'INDICATOR_DIGITS', - 'INDICATOR_HEIGHT', - 'INDICATOR_LEVELCOLOR', - 'INDICATOR_LEVELSTYLE', - 'INDICATOR_LEVELS', - 'INDICATOR_LEVELTEXT', - 'INDICATOR_LEVELVALUE', - 'INDICATOR_LEVELWIDTH', - 'INDICATOR_MAXIMUM', - 'INDICATOR_MINIMUM', - 'INDICATOR_SHORTNAME', - 'INT_MAX', - 'INT_MIN', - 'INVALID_HANDLE', - 'IS_DEBUG_MODE', - 'IS_PROFILE_MODE', - 'LICENSE_DEMO', - 'LICENSE_FREE', - 'LICENSE_FULL', - 'LICENSE_TIME', - 'LONG_MAX', - 'LONG_MIN', - 'MB_ABORTRETRYIGNORE', - 'MB_CANCELTRYCONTINUE', - 'MB_DEFBUTTON1', - 'MB_DEFBUTTON2', - 'MB_DEFBUTTON3', - 'MB_DEFBUTTON4', - 'MB_ICONASTERISK', - 'MB_ICONERROR', - 'MB_ICONEXCLAMATION', - 'MB_ICONHAND', - 'MB_ICONINFORMATION', - 'MB_ICONQUESTION', - 'MB_ICONSTOP', - 'MB_ICONWARNING', - 'MB_OKCANCEL', - 'MB_OK', - 'MB_RETRYCANCEL', - 'MB_YESNOCANCEL', - 'MB_YESNO', - 'MODE_ASK', - 'MODE_BID', - 'MODE_CHINKOUSPAN', - 'MODE_CLOSE', - 'MODE_DIGITS', - 'MODE_EMA', - 'MODE_EXPIRATION', - 'MODE_FREEZELEVEL', - 'MODE_GATORJAW', - 'MODE_GATORLIPS', - 'MODE_GATORTEETH', - 'MODE_HIGH', - 'MODE_KIJUNSEN', - 'MODE_LOTSIZE', - 'MODE_LOTSTEP', - 'MODE_LOWER', - 'MODE_LOW', - 'MODE_LWMA', - 'MODE_MAIN', - 'MODE_MARGINCALCMODE', - 'MODE_MARGINHEDGED', - 'MODE_MARGININIT', - 'MODE_MARGINMAINTENANCE', - 'MODE_MARGINREQUIRED', - 'MODE_MAXLOT', - 'MODE_MINLOT', - 'MODE_MINUSDI', - 'MODE_OPEN', - 'MODE_PLUSDI', - 'MODE_POINT', - 'MODE_PROFITCALCMODE', - 'MODE_SENKOUSPANA', - 'MODE_SENKOUSPANB', - 'MODE_SIGNAL', - 'MODE_SMA', - 'MODE_SMMA', - 'MODE_SPREAD', - 'MODE_STARTING', - 'MODE_STOPLEVEL', - 'MODE_SWAPLONG', - 'MODE_SWAPSHORT', - 'MODE_SWAPTYPE', - 'MODE_TENKANSEN', - 'MODE_TICKSIZE', - 'MODE_TICKVALUE', - 'MODE_TIME', - 'MODE_TRADEALLOWED', - 'MODE_UPPER', - 'MODE_VOLUME', - 'MONDAY', - 'MQL_DEBUG', - 'MQL_DLLS_ALLOWED', - 'MQL_FRAME_MODE', - 'MQL_LICENSE_TYPE', - 'MQL_OPTIMIZATION', - 'MQL_PROFILER', - 'MQL_PROGRAM_NAME', - 'MQL_PROGRAM_PATH', - 'MQL_PROGRAM_TYPE', - 'MQL_TESTER', - 'MQL_TRADE_ALLOWED', - 'MQL_VISUAL_MODE', - 'M_1_PI', - 'M_2_PI', - 'M_2_SQRTPI', - 'M_E', - 'M_LN2', - 'M_LN10', - 'M_LOG2E', - 'M_LOG10E', - 'M_PI', - 'M_PI_2', - 'M_PI_4', - 'M_SQRT1_2', - 'M_SQRT2', - 'NULL', - 'OBJPROP_ALIGN', - 'OBJPROP_ANCHOR', - 'OBJPROP_ANGLE', - 'OBJPROP_ARROWCODE', - 'OBJPROP_BACK', - 'OBJPROP_BGCOLOR', - 'OBJPROP_BMPFILE', - 'OBJPROP_BORDER_COLOR', - 'OBJPROP_BORDER_TYPE', - 'OBJPROP_CHART_ID', - 'OBJPROP_CHART_SCALE', - 'OBJPROP_COLOR', - 'OBJPROP_CORNER', - 'OBJPROP_CREATETIME', - 'OBJPROP_DATE_SCALE', - 'OBJPROP_DEVIATION', - 'OBJPROP_DRAWLINES', - 'OBJPROP_ELLIPSE', - 'OBJPROP_FIBOLEVELS', - 'OBJPROP_FILL', - 'OBJPROP_FIRSTLEVEL', - 'OBJPROP_FONTSIZE', - 'OBJPROP_FONT', - 'OBJPROP_HIDDEN', - 'OBJPROP_LEVELCOLOR', - 'OBJPROP_LEVELSTYLE', - 'OBJPROP_LEVELS', - 'OBJPROP_LEVELTEXT', - 'OBJPROP_LEVELVALUE', - 'OBJPROP_LEVELWIDTH', - 'OBJPROP_NAME', - 'OBJPROP_PERIOD', - 'OBJPROP_PRICE1', - 'OBJPROP_PRICE2', - 'OBJPROP_PRICE3', - 'OBJPROP_PRICE', - 'OBJPROP_PRICE_SCALE', - 'OBJPROP_RAY', - 'OBJPROP_RAY_RIGHT', - 'OBJPROP_READONLY', - 'OBJPROP_SCALE', - 'OBJPROP_SELECTABLE', - 'OBJPROP_SELECTED', - 'OBJPROP_STATE', - 'OBJPROP_STYLE', - 'OBJPROP_SYMBOL', - 'OBJPROP_TEXT', - 'OBJPROP_TIME1', - 'OBJPROP_TIME2', - 'OBJPROP_TIME3', - 'OBJPROP_TIMEFRAMES', - 'OBJPROP_TIME', - 'OBJPROP_TOOLTIP', - 'OBJPROP_TYPE', - 'OBJPROP_WIDTH', - 'OBJPROP_XDISTANCE', - 'OBJPROP_XOFFSET', - 'OBJPROP_XSIZE', - 'OBJPROP_YDISTANCE', - 'OBJPROP_YOFFSET', - 'OBJPROP_YSIZE', - 'OBJPROP_ZORDER', - 'OBJ_ALL_PERIODS', - 'OBJ_ARROW', - 'OBJ_ARROW_BUY', - 'OBJ_ARROW_CHECK', - 'OBJ_ARROW_DOWN', - 'OBJ_ARROW_LEFT_PRICE', - 'OBJ_ARROW_RIGHT_PRICE', - 'OBJ_ARROW_SELL', - 'OBJ_ARROW_STOP', - 'OBJ_ARROW_THUMB_DOWN', - 'OBJ_ARROW_THUMB_UP', - 'OBJ_ARROW_UP', - 'OBJ_BITMAP', - 'OBJ_BITMAP_LABEL', - 'OBJ_BUTTON', - 'OBJ_CHANNEL', - 'OBJ_CYCLES', - 'OBJ_EDIT', - 'OBJ_ELLIPSE', - 'OBJ_EVENT', - 'OBJ_EXPANSION', - 'OBJ_FIBOARC', - 'OBJ_FIBOCHANNEL', - 'OBJ_FIBOFAN', - 'OBJ_FIBOTIMES', - 'OBJ_FIBO', - 'OBJ_GANNFAN', - 'OBJ_GANNGRID', - 'OBJ_GANNLINE', - 'OBJ_HLINE', - 'OBJ_LABEL', - 'OBJ_NO_PERIODS', - 'OBJ_PERIOD_D1', - 'OBJ_PERIOD_H1', - 'OBJ_PERIOD_H4', - 'OBJ_PERIOD_M1', - 'OBJ_PERIOD_M5', - 'OBJ_PERIOD_M15', - 'OBJ_PERIOD_M30', - 'OBJ_PERIOD_MN1', - 'OBJ_PERIOD_W1', - 'OBJ_PITCHFORK', - 'OBJ_RECTANGLE', - 'OBJ_RECTANGLE_LABEL', - 'OBJ_REGRESSION', - 'OBJ_STDDEVCHANNEL', - 'OBJ_TEXT', - 'OBJ_TRENDBYANGLE', - 'OBJ_TREND', - 'OBJ_TRIANGLE', - 'OBJ_VLINE', - 'OP_BUYLIMIT', - 'OP_BUYSTOP', - 'OP_BUY', - 'OP_SELLLIMIT', - 'OP_SELLSTOP', - 'OP_SELL', - 'PERIOD_CURRENT', - 'PERIOD_D1', - 'PERIOD_H1', - 'PERIOD_H2', - 'PERIOD_H3', - 'PERIOD_H4', - 'PERIOD_H6', - 'PERIOD_H8', - 'PERIOD_H12', - 'PERIOD_M1', - 'PERIOD_M2', - 'PERIOD_M3', - 'PERIOD_M4', - 'PERIOD_M5', - 'PERIOD_M6', - 'PERIOD_M10', - 'PERIOD_M12', - 'PERIOD_M15', - 'PERIOD_M20', - 'PERIOD_M30', - 'PERIOD_MN1', - 'PERIOD_W1', - 'POINTER_AUTOMATIC', - 'POINTER_DYNAMIC', - 'POINTER_INVALID', - 'PRICE_CLOSE', - 'PRICE_HIGH', - 'PRICE_LOW', - 'PRICE_MEDIAN', - 'PRICE_OPEN', - 'PRICE_TYPICAL', - 'PRICE_WEIGHTED', - 'PROGRAM_EXPERT', - 'PROGRAM_INDICATOR', - 'PROGRAM_SCRIPT', - 'REASON_ACCOUNT', - 'REASON_CHARTCHANGE', - 'REASON_CHARTCLOSE', - 'REASON_CLOSE', - 'REASON_INITFAILED', - 'REASON_PARAMETERS', - 'REASON_PROGRAM' - 'REASON_RECOMPILE', - 'REASON_REMOVE', - 'REASON_TEMPLATE', - 'SATURDAY', - 'SEEK_CUR', - 'SEEK_END', - 'SEEK_SET', - 'SERIES_BARS_COUNT', - 'SERIES_FIRSTDATE', - 'SERIES_LASTBAR_DATE', - 'SERIES_SERVER_FIRSTDATE', - 'SERIES_SYNCHRONIZED', - 'SERIES_TERMINAL_FIRSTDATE', - 'SHORT_MAX', - 'SHORT_MIN', - 'STAT_BALANCEDD_PERCENT', - 'STAT_BALANCEMIN', - 'STAT_BALANCE_DDREL_PERCENT', - 'STAT_BALANCE_DD', - 'STAT_BALANCE_DD_RELATIVE', - 'STAT_CONLOSSMAX', - 'STAT_CONLOSSMAX_TRADES', - 'STAT_CONPROFITMAX', - 'STAT_CONPROFITMAX_TRADES', - 'STAT_CUSTOM_ONTESTER', - 'STAT_DEALS', - 'STAT_EQUITYDD_PERCENT', - 'STAT_EQUITYMIN', - 'STAT_EQUITY_DDREL_PERCENT', - 'STAT_EQUITY_DD', - 'STAT_EQUITY_DD_RELATIVE', - 'STAT_EXPECTED_PAYOFF', - 'STAT_GROSS_LOSS', - 'STAT_GROSS_PROFIT', - 'STAT_INITIAL_DEPOSIT', - 'STAT_LONG_TRADES', - 'STAT_LOSSTRADES_AVGCON', - 'STAT_LOSS_TRADES', - 'STAT_MAX_CONLOSSES', - 'STAT_MAX_CONLOSS_TRADES', - 'STAT_MAX_CONPROFIT_TRADES', - 'STAT_MAX_CONWINS', - 'STAT_MAX_LOSSTRADE', - 'STAT_MAX_PROFITTRADE', - 'STAT_MIN_MARGINLEVEL', - 'STAT_PROFITTRADES_AVGCON', - 'STAT_PROFIT', - 'STAT_PROFIT_FACTOR', - 'STAT_PROFIT_LONGTRADES', - 'STAT_PROFIT_SHORTTRADES', - 'STAT_PROFIT_TRADES', - 'STAT_RECOVERY_FACTOR', - 'STAT_SHARPE_RATIO', - 'STAT_SHORT_TRADES', - 'STAT_TRADES', - 'STAT_WITHDRAWAL', - 'STO_CLOSECLOSE', - 'STO_LOWHIGH', - 'STYLE_DASHDOTDOT', - 'STYLE_DASHDOT', - 'STYLE_DASH', - 'STYLE_DOT', - 'STYLE_SOLID', - 'SUNDAY', - 'SYMBOL_ARROWDOWN', - 'SYMBOL_ARROWUP', - 'SYMBOL_CHECKSIGN', - 'SYMBOL_LEFTPRICE', - 'SYMBOL_RIGHTPRICE', - 'SYMBOL_STOPSIGN', - 'SYMBOL_THUMBSDOWN', - 'SYMBOL_THUMBSUP', - 'TERMINAL_BUILD', - 'TERMINAL_CODEPAGE', - 'TERMINAL_COMMONDATA_PATH', - 'TERMINAL_COMPANY', - 'TERMINAL_CONNECTED', - 'TERMINAL_CPU_CORES', - 'TERMINAL_DATA_PATH', - 'TERMINAL_DISK_SPACE', - 'TERMINAL_DLLS_ALLOWED', - 'TERMINAL_EMAIL_ENABLED', - 'TERMINAL_FTP_ENABLED', - 'TERMINAL_LANGUAGE', - 'TERMINAL_MAXBARS', - 'TERMINAL_MEMORY_AVAILABLE', - 'TERMINAL_MEMORY_PHYSICAL', - 'TERMINAL_MEMORY_TOTAL', - 'TERMINAL_MEMORY_USED', - 'TERMINAL_NAME', - 'TERMINAL_OPENCL_SUPPORT', - 'TERMINAL_PATH', - 'TERMINAL_TRADE_ALLOWED', - 'TERMINAL_X64', - 'THURSDAY', - 'TRADE_ACTION_DEAL', - 'TRADE_ACTION_MODIFY', - 'TRADE_ACTION_PENDING', - 'TRADE_ACTION_REMOVE', - 'TRADE_ACTION_SLTP', - 'TUESDAY', - 'UCHAR_MAX', - 'UINT_MAX', - 'ULONG_MAX', - 'USHORT_MAX', - 'VOLUME_REAL', - 'VOLUME_TICK', - 'WEDNESDAY', - 'WHOLE_ARRAY', - 'WRONG_VALUE', - 'clrNONE', - '__DATETIME__', - '__DATE__', - '__FILE__', - '__FUNCSIG__', - '__FUNCTION__', - '__LINE__', - '__MQL4BUILD__', - '__MQLBUILD__', - '__PATH__', + "ACCOUNT_BALANCE", + "ACCOUNT_COMPANY", + "ACCOUNT_CREDIT", + "ACCOUNT_CURRENCY", + "ACCOUNT_EQUITY", + "ACCOUNT_FREEMARGIN", + "ACCOUNT_LEVERAGE", + "ACCOUNT_LIMIT_ORDERS", + "ACCOUNT_LOGIN", + "ACCOUNT_MARGIN", + "ACCOUNT_MARGIN_LEVEL", + "ACCOUNT_MARGIN_SO_CALL", + "ACCOUNT_MARGIN_SO_MODE", + "ACCOUNT_MARGIN_SO_SO", + "ACCOUNT_NAME", + "ACCOUNT_PROFIT", + "ACCOUNT_SERVER", + "ACCOUNT_STOPOUT_MODE_MONEY", + "ACCOUNT_STOPOUT_MODE_PERCENT", + "ACCOUNT_TRADE_ALLOWED", + "ACCOUNT_TRADE_EXPERT", + "ACCOUNT_TRADE_MODE", + "ACCOUNT_TRADE_MODE_CONTEST", + "ACCOUNT_TRADE_MODE_DEMO", + "ACCOUNT_TRADE_MODE_REAL", + "ALIGN_CENTER", + "ALIGN_LEFT", + "ALIGN_RIGHT", + "ANCHOR_BOTTOM", + "ANCHOR_CENTER", + "ANCHOR_LEFT", + "ANCHOR_LEFT_LOWER", + "ANCHOR_LEFT_UPPER", + "ANCHOR_LOWER", + "ANCHOR_RIGHT", + "ANCHOR_RIGHT_LOWER", + "ANCHOR_RIGHT_UPPER", + "ANCHOR_TOP", + "ANCHOR_UPPER", + "BORDER_FLAT", + "BORDER_RAISED", + "BORDER_SUNKEN", + "CHARTEVENT_CHART_CHANGE", + "CHARTEVENT_CLICK", + "CHARTEVENT_CUSTOM", + "CHARTEVENT_CUSTOM_LAST", + "CHARTEVENT_KEYDOWN", + "CHARTEVENT_MOUSE_MOVE", + "CHARTEVENT_OBJECT_CHANGE", + "CHARTEVENT_OBJECT_CLICK", + "CHARTEVENT_OBJECT_CREATE", + "CHARTEVENT_OBJECT_DELETE", + "CHARTEVENT_OBJECT_DRAG", + "CHARTEVENT_OBJECT_ENDEDIT", + "CHARTS_MAX", + "CHART_AUTOSCROLL", + "CHART_BARS", + "CHART_BEGIN", + "CHART_BRING_TO_TOP", + "CHART_CANDLES", + "CHART_COLOR_ASK", + "CHART_COLOR_BACKGROUND", + "CHART_COLOR_BID", + "CHART_COLOR_CANDLE_BEAR", + "CHART_COLOR_CANDLE_BULL", + "CHART_COLOR_CHART_DOWN", + "CHART_COLOR_CHART_LINE", + "CHART_COLOR_CHART_UP", + "CHART_COLOR_FOREGROUND", + "CHART_COLOR_GRID", + "CHART_COLOR_LAST", + "CHART_COLOR_STOP_LEVEL", + "CHART_COLOR_VOLUME", + "CHART_COMMENT", + "CHART_CURRENT_POS", + "CHART_DRAG_TRADE_LEVELS", + "CHART_END", + "CHART_EVENT_MOUSE_MOVE", + "CHART_EVENT_OBJECT_CREATE", + "CHART_EVENT_OBJECT_DELETE", + "CHART_FIRST_VISIBLE_BAR", + "CHART_FIXED_MAX", + "CHART_FIXED_MIN", + "CHART_FIXED_POSITION", + "CHART_FOREGROUND", + "CHART_HEIGHT_IN_PIXELS", + "CHART_IS_OBJECT", + "CHART_LINE", + "CHART_MODE", + "CHART_MOUSE_SCROLL", + "CHART_POINTS_PER_BAR", + "CHART_PRICE_MAX", + "CHART_PRICE_MIN", + "CHART_SCALEFIX", + "CHART_SCALEFIX_11", + "CHART_SCALE", + "CHART_SCALE_PT_PER_BAR", + "CHART_SHIFT", + "CHART_SHIFT_SIZE", + "CHART_SHOW_ASK_LINE", + "CHART_SHOW_BID_LINE", + "CHART_SHOW_DATE_SCALE", + "CHART_SHOW_GRID", + "CHART_SHOW_LAST_LINE", + "CHART_SHOW_OBJECT_DESCR", + "CHART_SHOW_OHLC", + "CHART_SHOW_PERIOD_SEP", + "CHART_SHOW_PRICE_SCALE", + "CHART_SHOW_TRADE_LEVELS", + "CHART_SHOW_VOLUMES", + "CHART_VISIBLE_BARS", + "CHART_VOLUME_HIDE", + "CHART_VOLUME_REAL", + "CHART_VOLUME_TICK", + "CHART_WIDTH_IN_BARS", + "CHART_WIDTH_IN_PIXELS", + "CHART_WINDOWS_TOTAL", + "CHART_WINDOW_HANDLE", + "CHART_WINDOW_IS_VISIBLE", + "CHART_WINDOW_YDISTANCE", + "CHAR_MAX", + "CHAR_MIN", + "CLR_NONE", + "CORNER_LEFT_LOWER", + "CORNER_LEFT_UPPER", + "CORNER_RIGHT_LOWER", + "CORNER_RIGHT_UPPER", + "CP_ACP", + "CP_MACCP", + "CP_OEMCP", + "CP_SYMBOL", + "CP_THREAD_ACP", + "CP_UTF7", + "CP_UTF8", + "DBL_DIG", + "DBL_EPSILON", + "DBL_MANT_DIG", + "DBL_MAX", + "DBL_MAX_10_EXP", + "DBL_MAX_EXP", + "DBL_MIN", + "DBL_MIN_10_EXP", + "DBL_MIN_EXP", + "DRAW_ARROW", + "DRAW_FILLING", + "DRAW_HISTOGRAM", + "DRAW_LINE", + "DRAW_NONE", + "DRAW_SECTION", + "DRAW_ZIGZAG", + "EMPTY", + "EMPTY_VALUE", + "ERR_ACCOUNT_DISABLED", + "ERR_BROKER_BUSY", + "ERR_COMMON_ERROR", + "ERR_INVALID_ACCOUNT", + "ERR_INVALID_PRICE", + "ERR_INVALID_STOPS", + "ERR_INVALID_TRADE_PARAMETERS", + "ERR_INVALID_TRADE_VOLUME", + "ERR_LONG_POSITIONS_ONLY_ALLOWED", + "ERR_MALFUNCTIONAL_TRADE", + "ERR_MARKET_CLOSED", + "ERR_NOT_ENOUGH_MONEY", + "ERR_NOT_ENOUGH_RIGHTS", + "ERR_NO_CONNECTION", + "ERR_NO_ERROR", + "ERR_NO_RESULT", + "ERR_OFF_QUOTES", + "ERR_OLD_VERSION", + "ERR_ORDER_LOCKED", + "ERR_PRICE_CHANGED", + "ERR_REQUOTE", + "ERR_SERVER_BUSY", + "ERR_TOO_FREQUENT_REQUESTS", + "ERR_TOO_MANY_REQUESTS", + "ERR_TRADE_CONTEXT_BUSY", + "ERR_TRADE_DISABLED", + "ERR_TRADE_EXPIRATION_DENIED", + "ERR_TRADE_HEDGE_PROHIBITED", + "ERR_TRADE_MODIFY_DENIED", + "ERR_TRADE_PROHIBITED_BY_FIFO", + "ERR_TRADE_TIMEOUT", + "ERR_TRADE_TOO_MANY_ORDERS", + "FILE_ACCESS_DATE", + "FILE_ANSI", + "FILE_BIN", + "FILE_COMMON", + "FILE_CREATE_DATE", + "FILE_CSV", + "FILE_END", + "FILE_EXISTS", + "FILE_IS_ANSI", + "FILE_IS_BINARY", + "FILE_IS_COMMON", + "FILE_IS_CSV", + "FILE_IS_READABLE", + "FILE_IS_TEXT", + "FILE_IS_WRITABLE", + "FILE_LINE_END", + "FILE_MODIFY_DATE", + "FILE_POSITION", + "FILE_READ", + "FILE_REWRITE", + "FILE_SHARE_READ", + "FILE_SHARE_WRITE", + "FILE_SIZE", + "FILE_TXT", + "FILE_UNICODE", + "FILE_WRITE", + "FLT_DIG", + "FLT_EPSILON", + "FLT_MANT_DIG", + "FLT_MAX", + "FLT_MAX_10_EXP", + "FLT_MAX_EXP", + "FLT_MIN", + "FLT_MIN_10_EXP", + "FLT_MIN_EXP", + "FRIDAY", + "GANN_DOWN_TREND", + "GANN_UP_TREND", + "IDABORT", + "IDCANCEL", + "IDCONTINUE", + "IDIGNORE", + "IDNO", + "IDOK", + "IDRETRY", + "IDTRYAGAIN", + "IDYES", + "INDICATOR_CALCULATIONS", + "INDICATOR_COLOR_INDEX", + "INDICATOR_DATA", + "INDICATOR_DIGITS", + "INDICATOR_HEIGHT", + "INDICATOR_LEVELCOLOR", + "INDICATOR_LEVELSTYLE", + "INDICATOR_LEVELS", + "INDICATOR_LEVELTEXT", + "INDICATOR_LEVELVALUE", + "INDICATOR_LEVELWIDTH", + "INDICATOR_MAXIMUM", + "INDICATOR_MINIMUM", + "INDICATOR_SHORTNAME", + "INT_MAX", + "INT_MIN", + "INVALID_HANDLE", + "IS_DEBUG_MODE", + "IS_PROFILE_MODE", + "LICENSE_DEMO", + "LICENSE_FREE", + "LICENSE_FULL", + "LICENSE_TIME", + "LONG_MAX", + "LONG_MIN", + "MB_ABORTRETRYIGNORE", + "MB_CANCELTRYCONTINUE", + "MB_DEFBUTTON1", + "MB_DEFBUTTON2", + "MB_DEFBUTTON3", + "MB_DEFBUTTON4", + "MB_ICONASTERISK", + "MB_ICONERROR", + "MB_ICONEXCLAMATION", + "MB_ICONHAND", + "MB_ICONINFORMATION", + "MB_ICONQUESTION", + "MB_ICONSTOP", + "MB_ICONWARNING", + "MB_OKCANCEL", + "MB_OK", + "MB_RETRYCANCEL", + "MB_YESNOCANCEL", + "MB_YESNO", + "MODE_ASK", + "MODE_BID", + "MODE_CHINKOUSPAN", + "MODE_CLOSE", + "MODE_DIGITS", + "MODE_EMA", + "MODE_EXPIRATION", + "MODE_FREEZELEVEL", + "MODE_GATORJAW", + "MODE_GATORLIPS", + "MODE_GATORTEETH", + "MODE_HIGH", + "MODE_KIJUNSEN", + "MODE_LOTSIZE", + "MODE_LOTSTEP", + "MODE_LOWER", + "MODE_LOW", + "MODE_LWMA", + "MODE_MAIN", + "MODE_MARGINCALCMODE", + "MODE_MARGINHEDGED", + "MODE_MARGININIT", + "MODE_MARGINMAINTENANCE", + "MODE_MARGINREQUIRED", + "MODE_MAXLOT", + "MODE_MINLOT", + "MODE_MINUSDI", + "MODE_OPEN", + "MODE_PLUSDI", + "MODE_POINT", + "MODE_PROFITCALCMODE", + "MODE_SENKOUSPANA", + "MODE_SENKOUSPANB", + "MODE_SIGNAL", + "MODE_SMA", + "MODE_SMMA", + "MODE_SPREAD", + "MODE_STARTING", + "MODE_STOPLEVEL", + "MODE_SWAPLONG", + "MODE_SWAPSHORT", + "MODE_SWAPTYPE", + "MODE_TENKANSEN", + "MODE_TICKSIZE", + "MODE_TICKVALUE", + "MODE_TIME", + "MODE_TRADEALLOWED", + "MODE_UPPER", + "MODE_VOLUME", + "MONDAY", + "MQL_DEBUG", + "MQL_DLLS_ALLOWED", + "MQL_FRAME_MODE", + "MQL_LICENSE_TYPE", + "MQL_OPTIMIZATION", + "MQL_PROFILER", + "MQL_PROGRAM_NAME", + "MQL_PROGRAM_PATH", + "MQL_PROGRAM_TYPE", + "MQL_TESTER", + "MQL_TRADE_ALLOWED", + "MQL_VISUAL_MODE", + "M_1_PI", + "M_2_PI", + "M_2_SQRTPI", + "M_E", + "M_LN2", + "M_LN10", + "M_LOG2E", + "M_LOG10E", + "M_PI", + "M_PI_2", + "M_PI_4", + "M_SQRT1_2", + "M_SQRT2", + "NULL", + "OBJPROP_ALIGN", + "OBJPROP_ANCHOR", + "OBJPROP_ANGLE", + "OBJPROP_ARROWCODE", + "OBJPROP_BACK", + "OBJPROP_BGCOLOR", + "OBJPROP_BMPFILE", + "OBJPROP_BORDER_COLOR", + "OBJPROP_BORDER_TYPE", + "OBJPROP_CHART_ID", + "OBJPROP_CHART_SCALE", + "OBJPROP_COLOR", + "OBJPROP_CORNER", + "OBJPROP_CREATETIME", + "OBJPROP_DATE_SCALE", + "OBJPROP_DEVIATION", + "OBJPROP_DRAWLINES", + "OBJPROP_ELLIPSE", + "OBJPROP_FIBOLEVELS", + "OBJPROP_FILL", + "OBJPROP_FIRSTLEVEL", + "OBJPROP_FONTSIZE", + "OBJPROP_FONT", + "OBJPROP_HIDDEN", + "OBJPROP_LEVELCOLOR", + "OBJPROP_LEVELSTYLE", + "OBJPROP_LEVELS", + "OBJPROP_LEVELTEXT", + "OBJPROP_LEVELVALUE", + "OBJPROP_LEVELWIDTH", + "OBJPROP_NAME", + "OBJPROP_PERIOD", + "OBJPROP_PRICE1", + "OBJPROP_PRICE2", + "OBJPROP_PRICE3", + "OBJPROP_PRICE", + "OBJPROP_PRICE_SCALE", + "OBJPROP_RAY", + "OBJPROP_RAY_RIGHT", + "OBJPROP_READONLY", + "OBJPROP_SCALE", + "OBJPROP_SELECTABLE", + "OBJPROP_SELECTED", + "OBJPROP_STATE", + "OBJPROP_STYLE", + "OBJPROP_SYMBOL", + "OBJPROP_TEXT", + "OBJPROP_TIME1", + "OBJPROP_TIME2", + "OBJPROP_TIME3", + "OBJPROP_TIMEFRAMES", + "OBJPROP_TIME", + "OBJPROP_TOOLTIP", + "OBJPROP_TYPE", + "OBJPROP_WIDTH", + "OBJPROP_XDISTANCE", + "OBJPROP_XOFFSET", + "OBJPROP_XSIZE", + "OBJPROP_YDISTANCE", + "OBJPROP_YOFFSET", + "OBJPROP_YSIZE", + "OBJPROP_ZORDER", + "OBJ_ALL_PERIODS", + "OBJ_ARROW", + "OBJ_ARROW_BUY", + "OBJ_ARROW_CHECK", + "OBJ_ARROW_DOWN", + "OBJ_ARROW_LEFT_PRICE", + "OBJ_ARROW_RIGHT_PRICE", + "OBJ_ARROW_SELL", + "OBJ_ARROW_STOP", + "OBJ_ARROW_THUMB_DOWN", + "OBJ_ARROW_THUMB_UP", + "OBJ_ARROW_UP", + "OBJ_BITMAP", + "OBJ_BITMAP_LABEL", + "OBJ_BUTTON", + "OBJ_CHANNEL", + "OBJ_CYCLES", + "OBJ_EDIT", + "OBJ_ELLIPSE", + "OBJ_EVENT", + "OBJ_EXPANSION", + "OBJ_FIBOARC", + "OBJ_FIBOCHANNEL", + "OBJ_FIBOFAN", + "OBJ_FIBOTIMES", + "OBJ_FIBO", + "OBJ_GANNFAN", + "OBJ_GANNGRID", + "OBJ_GANNLINE", + "OBJ_HLINE", + "OBJ_LABEL", + "OBJ_NO_PERIODS", + "OBJ_PERIOD_D1", + "OBJ_PERIOD_H1", + "OBJ_PERIOD_H4", + "OBJ_PERIOD_M1", + "OBJ_PERIOD_M5", + "OBJ_PERIOD_M15", + "OBJ_PERIOD_M30", + "OBJ_PERIOD_MN1", + "OBJ_PERIOD_W1", + "OBJ_PITCHFORK", + "OBJ_RECTANGLE", + "OBJ_RECTANGLE_LABEL", + "OBJ_REGRESSION", + "OBJ_STDDEVCHANNEL", + "OBJ_TEXT", + "OBJ_TRENDBYANGLE", + "OBJ_TREND", + "OBJ_TRIANGLE", + "OBJ_VLINE", + "OP_BUYLIMIT", + "OP_BUYSTOP", + "OP_BUY", + "OP_SELLLIMIT", + "OP_SELLSTOP", + "OP_SELL", + "PERIOD_CURRENT", + "PERIOD_D1", + "PERIOD_H1", + "PERIOD_H2", + "PERIOD_H3", + "PERIOD_H4", + "PERIOD_H6", + "PERIOD_H8", + "PERIOD_H12", + "PERIOD_M1", + "PERIOD_M2", + "PERIOD_M3", + "PERIOD_M4", + "PERIOD_M5", + "PERIOD_M6", + "PERIOD_M10", + "PERIOD_M12", + "PERIOD_M15", + "PERIOD_M20", + "PERIOD_M30", + "PERIOD_MN1", + "PERIOD_W1", + "POINTER_AUTOMATIC", + "POINTER_DYNAMIC", + "POINTER_INVALID", + "PRICE_CLOSE", + "PRICE_HIGH", + "PRICE_LOW", + "PRICE_MEDIAN", + "PRICE_OPEN", + "PRICE_TYPICAL", + "PRICE_WEIGHTED", + "PROGRAM_EXPERT", + "PROGRAM_INDICATOR", + "PROGRAM_SCRIPT", + "REASON_ACCOUNT", + "REASON_CHARTCHANGE", + "REASON_CHARTCLOSE", + "REASON_CLOSE", + "REASON_INITFAILED", + "REASON_PARAMETERS", + "REASON_PROGRAM" "REASON_RECOMPILE", + "REASON_REMOVE", + "REASON_TEMPLATE", + "SATURDAY", + "SEEK_CUR", + "SEEK_END", + "SEEK_SET", + "SERIES_BARS_COUNT", + "SERIES_FIRSTDATE", + "SERIES_LASTBAR_DATE", + "SERIES_SERVER_FIRSTDATE", + "SERIES_SYNCHRONIZED", + "SERIES_TERMINAL_FIRSTDATE", + "SHORT_MAX", + "SHORT_MIN", + "STAT_BALANCEDD_PERCENT", + "STAT_BALANCEMIN", + "STAT_BALANCE_DDREL_PERCENT", + "STAT_BALANCE_DD", + "STAT_BALANCE_DD_RELATIVE", + "STAT_CONLOSSMAX", + "STAT_CONLOSSMAX_TRADES", + "STAT_CONPROFITMAX", + "STAT_CONPROFITMAX_TRADES", + "STAT_CUSTOM_ONTESTER", + "STAT_DEALS", + "STAT_EQUITYDD_PERCENT", + "STAT_EQUITYMIN", + "STAT_EQUITY_DDREL_PERCENT", + "STAT_EQUITY_DD", + "STAT_EQUITY_DD_RELATIVE", + "STAT_EXPECTED_PAYOFF", + "STAT_GROSS_LOSS", + "STAT_GROSS_PROFIT", + "STAT_INITIAL_DEPOSIT", + "STAT_LONG_TRADES", + "STAT_LOSSTRADES_AVGCON", + "STAT_LOSS_TRADES", + "STAT_MAX_CONLOSSES", + "STAT_MAX_CONLOSS_TRADES", + "STAT_MAX_CONPROFIT_TRADES", + "STAT_MAX_CONWINS", + "STAT_MAX_LOSSTRADE", + "STAT_MAX_PROFITTRADE", + "STAT_MIN_MARGINLEVEL", + "STAT_PROFITTRADES_AVGCON", + "STAT_PROFIT", + "STAT_PROFIT_FACTOR", + "STAT_PROFIT_LONGTRADES", + "STAT_PROFIT_SHORTTRADES", + "STAT_PROFIT_TRADES", + "STAT_RECOVERY_FACTOR", + "STAT_SHARPE_RATIO", + "STAT_SHORT_TRADES", + "STAT_TRADES", + "STAT_WITHDRAWAL", + "STO_CLOSECLOSE", + "STO_LOWHIGH", + "STYLE_DASHDOTDOT", + "STYLE_DASHDOT", + "STYLE_DASH", + "STYLE_DOT", + "STYLE_SOLID", + "SUNDAY", + "SYMBOL_ARROWDOWN", + "SYMBOL_ARROWUP", + "SYMBOL_CHECKSIGN", + "SYMBOL_LEFTPRICE", + "SYMBOL_RIGHTPRICE", + "SYMBOL_STOPSIGN", + "SYMBOL_THUMBSDOWN", + "SYMBOL_THUMBSUP", + "TERMINAL_BUILD", + "TERMINAL_CODEPAGE", + "TERMINAL_COMMONDATA_PATH", + "TERMINAL_COMPANY", + "TERMINAL_CONNECTED", + "TERMINAL_CPU_CORES", + "TERMINAL_DATA_PATH", + "TERMINAL_DISK_SPACE", + "TERMINAL_DLLS_ALLOWED", + "TERMINAL_EMAIL_ENABLED", + "TERMINAL_FTP_ENABLED", + "TERMINAL_LANGUAGE", + "TERMINAL_MAXBARS", + "TERMINAL_MEMORY_AVAILABLE", + "TERMINAL_MEMORY_PHYSICAL", + "TERMINAL_MEMORY_TOTAL", + "TERMINAL_MEMORY_USED", + "TERMINAL_NAME", + "TERMINAL_OPENCL_SUPPORT", + "TERMINAL_PATH", + "TERMINAL_TRADE_ALLOWED", + "TERMINAL_X64", + "THURSDAY", + "TRADE_ACTION_DEAL", + "TRADE_ACTION_MODIFY", + "TRADE_ACTION_PENDING", + "TRADE_ACTION_REMOVE", + "TRADE_ACTION_SLTP", + "TUESDAY", + "UCHAR_MAX", + "UINT_MAX", + "ULONG_MAX", + "USHORT_MAX", + "VOLUME_REAL", + "VOLUME_TICK", + "WEDNESDAY", + "WHOLE_ARRAY", + "WRONG_VALUE", + "clrNONE", + "__DATETIME__", + "__DATE__", + "__FILE__", + "__FUNCSIG__", + "__FUNCTION__", + "__LINE__", + "__MQL4BUILD__", + "__MQLBUILD__", + "__PATH__", ) colors = ( - 'AliceBlue', - 'AntiqueWhite', - 'Aquamarine', - 'Aqua', - 'Beige', - 'Bisque', - 'Black', - 'BlanchedAlmond', - 'BlueViolet', - 'Blue', - 'Brown', - 'BurlyWood', - 'CadetBlue', - 'Chartreuse', - 'Chocolate', - 'Coral', - 'CornflowerBlue', - 'Cornsilk', - 'Crimson', - 'DarkBlue', - 'DarkGoldenrod', - 'DarkGray', - 'DarkGreen', - 'DarkKhaki', - 'DarkOliveGreen', - 'DarkOrange', - 'DarkOrchid', - 'DarkSalmon', - 'DarkSeaGreen', - 'DarkSlateBlue', - 'DarkSlateGray', - 'DarkTurquoise', - 'DarkViolet', - 'DeepPink', - 'DeepSkyBlue', - 'DimGray', - 'DodgerBlue', - 'FireBrick', - 'ForestGreen', - 'Gainsboro', - 'Goldenrod', - 'Gold', - 'Gray', - 'GreenYellow', - 'Green', - 'Honeydew', - 'HotPink', - 'IndianRed', - 'Indigo', - 'Ivory', - 'Khaki', - 'LavenderBlush', - 'Lavender', - 'LawnGreen', - 'LemonChiffon', - 'LightBlue', - 'LightCoral', - 'LightCyan', - 'LightGoldenrod', - 'LightGray', - 'LightGreen', - 'LightPink', - 'LightSalmon', - 'LightSeaGreen', - 'LightSkyBlue', - 'LightSlateGray', - 'LightSteelBlue', - 'LightYellow', - 'LimeGreen', - 'Lime', - 'Linen', - 'Magenta', - 'Maroon', - 'MediumAquamarine', - 'MediumBlue', - 'MediumOrchid', - 'MediumPurple', - 'MediumSeaGreen', - 'MediumSlateBlue', - 'MediumSpringGreen', - 'MediumTurquoise', - 'MediumVioletRed', - 'MidnightBlue', - 'MintCream', - 'MistyRose', - 'Moccasin', - 'NavajoWhite', - 'Navy', - 'OldLace', - 'OliveDrab', - 'Olive', - 'OrangeRed', - 'Orange', - 'Orchid', - 'PaleGoldenrod', - 'PaleGreen', - 'PaleTurquoise', - 'PaleVioletRed', - 'PapayaWhip', - 'PeachPuff', - 'Peru', - 'Pink', - 'Plum', - 'PowderBlue', - 'Purple', - 'Red', - 'RosyBrown', - 'RoyalBlue', - 'SaddleBrown', - 'Salmon', - 'SandyBrown', - 'SeaGreen', - 'Seashell', - 'Sienna', - 'Silver', - 'SkyBlue', - 'SlateBlue', - 'SlateGray', - 'Snow', - 'SpringGreen', - 'SteelBlue', - 'Tan', - 'Teal', - 'Thistle', - 'Tomato', - 'Turquoise', - 'Violet', - 'Wheat', - 'WhiteSmoke', - 'White', - 'YellowGreen', - 'Yellow', + "AliceBlue", + "AntiqueWhite", + "Aquamarine", + "Aqua", + "Beige", + "Bisque", + "Black", + "BlanchedAlmond", + "BlueViolet", + "Blue", + "Brown", + "BurlyWood", + "CadetBlue", + "Chartreuse", + "Chocolate", + "Coral", + "CornflowerBlue", + "Cornsilk", + "Crimson", + "DarkBlue", + "DarkGoldenrod", + "DarkGray", + "DarkGreen", + "DarkKhaki", + "DarkOliveGreen", + "DarkOrange", + "DarkOrchid", + "DarkSalmon", + "DarkSeaGreen", + "DarkSlateBlue", + "DarkSlateGray", + "DarkTurquoise", + "DarkViolet", + "DeepPink", + "DeepSkyBlue", + "DimGray", + "DodgerBlue", + "FireBrick", + "ForestGreen", + "Gainsboro", + "Goldenrod", + "Gold", + "Gray", + "GreenYellow", + "Green", + "Honeydew", + "HotPink", + "IndianRed", + "Indigo", + "Ivory", + "Khaki", + "LavenderBlush", + "Lavender", + "LawnGreen", + "LemonChiffon", + "LightBlue", + "LightCoral", + "LightCyan", + "LightGoldenrod", + "LightGray", + "LightGreen", + "LightPink", + "LightSalmon", + "LightSeaGreen", + "LightSkyBlue", + "LightSlateGray", + "LightSteelBlue", + "LightYellow", + "LimeGreen", + "Lime", + "Linen", + "Magenta", + "Maroon", + "MediumAquamarine", + "MediumBlue", + "MediumOrchid", + "MediumPurple", + "MediumSeaGreen", + "MediumSlateBlue", + "MediumSpringGreen", + "MediumTurquoise", + "MediumVioletRed", + "MidnightBlue", + "MintCream", + "MistyRose", + "Moccasin", + "NavajoWhite", + "Navy", + "OldLace", + "OliveDrab", + "Olive", + "OrangeRed", + "Orange", + "Orchid", + "PaleGoldenrod", + "PaleGreen", + "PaleTurquoise", + "PaleVioletRed", + "PapayaWhip", + "PeachPuff", + "Peru", + "Pink", + "Plum", + "PowderBlue", + "Purple", + "Red", + "RosyBrown", + "RoyalBlue", + "SaddleBrown", + "Salmon", + "SandyBrown", + "SeaGreen", + "Seashell", + "Sienna", + "Silver", + "SkyBlue", + "SlateBlue", + "SlateGray", + "Snow", + "SpringGreen", + "SteelBlue", + "Tan", + "Teal", + "Thistle", + "Tomato", + "Turquoise", + "Violet", + "Wheat", + "WhiteSmoke", + "White", + "YellowGreen", + "Yellow", ) keywords = ( - 'input', '_Digits', '_Point', '_LastError', '_Period', '_RandomSeed', - '_StopFlag', '_Symbol', '_UninitReason', 'Ask', 'Bars', 'Bid', - 'Close', 'Digits', 'High', 'Low', 'Open', 'Point', 'Time', - 'Volume', + "input", + "_Digits", + "_Point", + "_LastError", + "_Period", + "_RandomSeed", + "_StopFlag", + "_Symbol", + "_UninitReason", + "Ask", + "Bars", + "Bid", + "Close", + "Digits", + "High", + "Low", + "Open", + "Point", + "Time", + "Volume", ) c_types = ( - 'void', 'char', 'uchar', 'bool', 'short', 'ushort', 'int', 'uint', - 'color', 'long', 'ulong', 'datetime', 'float', 'double', - 'string', + "void", + "char", + "uchar", + "bool", + "short", + "ushort", + "int", + "uint", + "color", + "long", + "ulong", + "datetime", + "float", + "double", + "string", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mysql_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mysql_builtins.py index d4a9099..a949893 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mysql_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_mysql_builtins.py @@ -1,21 +1,20 @@ """ - pygments.lexers._mysql_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._mysql_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Self-updating data files for the MySQL lexer. +Self-updating data files for the MySQL lexer. - Run with `python -I` to update. +Run with `python -I` to update. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ - MYSQL_CONSTANTS = ( - 'false', - 'null', - 'true', - 'unknown', + "false", + "null", + "true", + "unknown", ) @@ -34,74 +33,70 @@ MYSQL_CONSTANTS = ( # MYSQL_DATATYPES = ( # Numeric data types - 'bigint', - 'bit', - 'bool', - 'boolean', - 'dec', - 'decimal', - 'double', - 'fixed', - 'float', - 'float4', - 'float8', - 'int', - 'int1', - 'int2', - 'int3', - 'int4', - 'int8', - 'integer', - 'mediumint', - 'middleint', - 'numeric', - 'precision', - 'real', - 'serial', - 'smallint', - 'tinyint', - + "bigint", + "bit", + "bool", + "boolean", + "dec", + "decimal", + "double", + "fixed", + "float", + "float4", + "float8", + "int", + "int1", + "int2", + "int3", + "int4", + "int8", + "integer", + "mediumint", + "middleint", + "numeric", + "precision", + "real", + "serial", + "smallint", + "tinyint", # Date and time data types - 'date', - 'datetime', - 'time', - 'timestamp', - 'year', - + "date", + "datetime", + "time", + "timestamp", + "year", # String data types - 'binary', - 'blob', - 'char', - 'enum', - 'long', - 'longblob', - 'longtext', - 'mediumblob', - 'mediumtext', - 'national', - 'nchar', - 'nvarchar', - 'set', - 'text', - 'tinyblob', - 'tinytext', - 'varbinary', - 'varchar', - 'varcharacter', - 'varying', - + "binary", + "blob", + "char", + "enum", + "long", + "longblob", + "longtext", + "mediumblob", + "mediumtext", + "national", + "nchar", + "nvarchar", + "set", + "text", + "tinyblob", + "tinytext", + "varbinary", + "varchar", + "varcharacter", + "varying", # Spatial data types - 'geometry', - 'geometrycollection', - 'linestring', - 'multilinestring', - 'multipoint', - 'multipolygon', - 'point', - 'polygon', - + "geometry", + "geometrycollection", + "linestring", + "multilinestring", + "multipoint", + "multipolygon", + "point", + "polygon", # JSON data types - 'json', + "json", ) # Everything below this line is auto-generated from the MySQL source code. @@ -109,1211 +104,1211 @@ MYSQL_DATATYPES = ( # ----------------------------------------------------------------------------- MYSQL_FUNCTIONS = ( - 'abs', - 'acos', - 'adddate', - 'addtime', - 'aes_decrypt', - 'aes_encrypt', - 'any_value', - 'asin', - 'atan', - 'atan2', - 'benchmark', - 'bin', - 'bin_to_uuid', - 'bit_and', - 'bit_count', - 'bit_length', - 'bit_or', - 'bit_xor', - 'can_access_column', - 'can_access_database', - 'can_access_event', - 'can_access_resource_group', - 'can_access_routine', - 'can_access_table', - 'can_access_trigger', - 'can_access_user', - 'can_access_view', - 'cast', - 'ceil', - 'ceiling', - 'char_length', - 'character_length', - 'coercibility', - 'compress', - 'concat', - 'concat_ws', - 'connection_id', - 'conv', - 'convert_cpu_id_mask', - 'convert_interval_to_user_interval', - 'convert_tz', - 'cos', - 'cot', - 'count', - 'crc32', - 'curdate', - 'current_role', - 'curtime', - 'date_add', - 'date_format', - 'date_sub', - 'datediff', - 'dayname', - 'dayofmonth', - 'dayofweek', - 'dayofyear', - 'degrees', - 'elt', - 'exp', - 'export_set', - 'extract', - 'extractvalue', - 'field', - 'find_in_set', - 'floor', - 'format_bytes', - 'format_pico_time', - 'found_rows', - 'from_base64', - 'from_days', - 'from_unixtime', - 'get_dd_column_privileges', - 'get_dd_create_options', - 'get_dd_index_private_data', - 'get_dd_index_sub_part_length', - 'get_dd_property_key_value', - 'get_dd_schema_options', - 'get_dd_tablespace_private_data', - 'get_lock', - 'greatest', - 'group_concat', - 'gtid_subset', - 'gtid_subtract', - 'hex', - 'icu_version', - 'ifnull', - 'inet6_aton', - 'inet6_ntoa', - 'inet_aton', - 'inet_ntoa', - 'instr', - 'internal_auto_increment', - 'internal_avg_row_length', - 'internal_check_time', - 'internal_checksum', - 'internal_data_free', - 'internal_data_length', - 'internal_dd_char_length', - 'internal_get_comment_or_error', - 'internal_get_dd_column_extra', - 'internal_get_enabled_role_json', - 'internal_get_hostname', - 'internal_get_mandatory_roles_json', - 'internal_get_partition_nodegroup', - 'internal_get_username', - 'internal_get_view_warning_or_error', - 'internal_index_column_cardinality', - 'internal_index_length', - 'internal_is_enabled_role', - 'internal_is_mandatory_role', - 'internal_keys_disabled', - 'internal_max_data_length', - 'internal_table_rows', - 'internal_tablespace_autoextend_size', - 'internal_tablespace_data_free', - 'internal_tablespace_extent_size', - 'internal_tablespace_extra', - 'internal_tablespace_free_extents', - 'internal_tablespace_id', - 'internal_tablespace_initial_size', - 'internal_tablespace_logfile_group_name', - 'internal_tablespace_logfile_group_number', - 'internal_tablespace_maximum_size', - 'internal_tablespace_row_format', - 'internal_tablespace_status', - 'internal_tablespace_total_extents', - 'internal_tablespace_type', - 'internal_tablespace_version', - 'internal_update_time', - 'is_free_lock', - 'is_ipv4', - 'is_ipv4_compat', - 'is_ipv4_mapped', - 'is_ipv6', - 'is_used_lock', - 'is_uuid', - 'is_visible_dd_object', - 'isnull', - 'json_array', - 'json_array_append', - 'json_array_insert', - 'json_arrayagg', - 'json_contains', - 'json_contains_path', - 'json_depth', - 'json_extract', - 'json_insert', - 'json_keys', - 'json_length', - 'json_merge', - 'json_merge_patch', - 'json_merge_preserve', - 'json_object', - 'json_objectagg', - 'json_overlaps', - 'json_pretty', - 'json_quote', - 'json_remove', - 'json_replace', - 'json_schema_valid', - 'json_schema_validation_report', - 'json_search', - 'json_set', - 'json_storage_free', - 'json_storage_size', - 'json_type', - 'json_unquote', - 'json_valid', - 'last_day', - 'last_insert_id', - 'lcase', - 'least', - 'length', - 'like_range_max', - 'like_range_min', - 'ln', - 'load_file', - 'locate', - 'log', - 'log10', - 'log2', - 'lower', - 'lpad', - 'ltrim', - 'make_set', - 'makedate', - 'maketime', - 'master_pos_wait', - 'max', - 'mbrcontains', - 'mbrcoveredby', - 'mbrcovers', - 'mbrdisjoint', - 'mbrequals', - 'mbrintersects', - 'mbroverlaps', - 'mbrtouches', - 'mbrwithin', - 'md5', - 'mid', - 'min', - 'monthname', - 'name_const', - 'now', - 'nullif', - 'oct', - 'octet_length', - 'ord', - 'period_add', - 'period_diff', - 'pi', - 'position', - 'pow', - 'power', - 'ps_current_thread_id', - 'ps_thread_id', - 'quote', - 'radians', - 'rand', - 'random_bytes', - 'regexp_instr', - 'regexp_like', - 'regexp_replace', - 'regexp_substr', - 'release_all_locks', - 'release_lock', - 'remove_dd_property_key', - 'reverse', - 'roles_graphml', - 'round', - 'rpad', - 'rtrim', - 'sec_to_time', - 'session_user', - 'sha', - 'sha1', - 'sha2', - 'sign', - 'sin', - 'sleep', - 'soundex', - 'source_pos_wait', - 'space', - 'sqrt', - 'st_area', - 'st_asbinary', - 'st_asgeojson', - 'st_astext', - 'st_aswkb', - 'st_aswkt', - 'st_buffer', - 'st_buffer_strategy', - 'st_centroid', - 'st_collect', - 'st_contains', - 'st_convexhull', - 'st_crosses', - 'st_difference', - 'st_dimension', - 'st_disjoint', - 'st_distance', - 'st_distance_sphere', - 'st_endpoint', - 'st_envelope', - 'st_equals', - 'st_exteriorring', - 'st_frechetdistance', - 'st_geohash', - 'st_geomcollfromtext', - 'st_geomcollfromtxt', - 'st_geomcollfromwkb', - 'st_geometrycollectionfromtext', - 'st_geometrycollectionfromwkb', - 'st_geometryfromtext', - 'st_geometryfromwkb', - 'st_geometryn', - 'st_geometrytype', - 'st_geomfromgeojson', - 'st_geomfromtext', - 'st_geomfromwkb', - 'st_hausdorffdistance', - 'st_interiorringn', - 'st_intersection', - 'st_intersects', - 'st_isclosed', - 'st_isempty', - 'st_issimple', - 'st_isvalid', - 'st_latfromgeohash', - 'st_latitude', - 'st_length', - 'st_linefromtext', - 'st_linefromwkb', - 'st_lineinterpolatepoint', - 'st_lineinterpolatepoints', - 'st_linestringfromtext', - 'st_linestringfromwkb', - 'st_longfromgeohash', - 'st_longitude', - 'st_makeenvelope', - 'st_mlinefromtext', - 'st_mlinefromwkb', - 'st_mpointfromtext', - 'st_mpointfromwkb', - 'st_mpolyfromtext', - 'st_mpolyfromwkb', - 'st_multilinestringfromtext', - 'st_multilinestringfromwkb', - 'st_multipointfromtext', - 'st_multipointfromwkb', - 'st_multipolygonfromtext', - 'st_multipolygonfromwkb', - 'st_numgeometries', - 'st_numinteriorring', - 'st_numinteriorrings', - 'st_numpoints', - 'st_overlaps', - 'st_pointatdistance', - 'st_pointfromgeohash', - 'st_pointfromtext', - 'st_pointfromwkb', - 'st_pointn', - 'st_polyfromtext', - 'st_polyfromwkb', - 'st_polygonfromtext', - 'st_polygonfromwkb', - 'st_simplify', - 'st_srid', - 'st_startpoint', - 'st_swapxy', - 'st_symdifference', - 'st_touches', - 'st_transform', - 'st_union', - 'st_validate', - 'st_within', - 'st_x', - 'st_y', - 'statement_digest', - 'statement_digest_text', - 'std', - 'stddev', - 'stddev_pop', - 'stddev_samp', - 'str_to_date', - 'strcmp', - 'subdate', - 'substr', - 'substring', - 'substring_index', - 'subtime', - 'sum', - 'sysdate', - 'system_user', - 'tan', - 'time_format', - 'time_to_sec', - 'timediff', - 'to_base64', - 'to_days', - 'to_seconds', - 'trim', - 'ucase', - 'uncompress', - 'uncompressed_length', - 'unhex', - 'unix_timestamp', - 'updatexml', - 'upper', - 'uuid', - 'uuid_short', - 'uuid_to_bin', - 'validate_password_strength', - 'var_pop', - 'var_samp', - 'variance', - 'version', - 'wait_for_executed_gtid_set', - 'wait_until_sql_thread_after_gtids', - 'weekday', - 'weekofyear', - 'yearweek', + "abs", + "acos", + "adddate", + "addtime", + "aes_decrypt", + "aes_encrypt", + "any_value", + "asin", + "atan", + "atan2", + "benchmark", + "bin", + "bin_to_uuid", + "bit_and", + "bit_count", + "bit_length", + "bit_or", + "bit_xor", + "can_access_column", + "can_access_database", + "can_access_event", + "can_access_resource_group", + "can_access_routine", + "can_access_table", + "can_access_trigger", + "can_access_user", + "can_access_view", + "cast", + "ceil", + "ceiling", + "char_length", + "character_length", + "coercibility", + "compress", + "concat", + "concat_ws", + "connection_id", + "conv", + "convert_cpu_id_mask", + "convert_interval_to_user_interval", + "convert_tz", + "cos", + "cot", + "count", + "crc32", + "curdate", + "current_role", + "curtime", + "date_add", + "date_format", + "date_sub", + "datediff", + "dayname", + "dayofmonth", + "dayofweek", + "dayofyear", + "degrees", + "elt", + "exp", + "export_set", + "extract", + "extractvalue", + "field", + "find_in_set", + "floor", + "format_bytes", + "format_pico_time", + "found_rows", + "from_base64", + "from_days", + "from_unixtime", + "get_dd_column_privileges", + "get_dd_create_options", + "get_dd_index_private_data", + "get_dd_index_sub_part_length", + "get_dd_property_key_value", + "get_dd_schema_options", + "get_dd_tablespace_private_data", + "get_lock", + "greatest", + "group_concat", + "gtid_subset", + "gtid_subtract", + "hex", + "icu_version", + "ifnull", + "inet6_aton", + "inet6_ntoa", + "inet_aton", + "inet_ntoa", + "instr", + "internal_auto_increment", + "internal_avg_row_length", + "internal_check_time", + "internal_checksum", + "internal_data_free", + "internal_data_length", + "internal_dd_char_length", + "internal_get_comment_or_error", + "internal_get_dd_column_extra", + "internal_get_enabled_role_json", + "internal_get_hostname", + "internal_get_mandatory_roles_json", + "internal_get_partition_nodegroup", + "internal_get_username", + "internal_get_view_warning_or_error", + "internal_index_column_cardinality", + "internal_index_length", + "internal_is_enabled_role", + "internal_is_mandatory_role", + "internal_keys_disabled", + "internal_max_data_length", + "internal_table_rows", + "internal_tablespace_autoextend_size", + "internal_tablespace_data_free", + "internal_tablespace_extent_size", + "internal_tablespace_extra", + "internal_tablespace_free_extents", + "internal_tablespace_id", + "internal_tablespace_initial_size", + "internal_tablespace_logfile_group_name", + "internal_tablespace_logfile_group_number", + "internal_tablespace_maximum_size", + "internal_tablespace_row_format", + "internal_tablespace_status", + "internal_tablespace_total_extents", + "internal_tablespace_type", + "internal_tablespace_version", + "internal_update_time", + "is_free_lock", + "is_ipv4", + "is_ipv4_compat", + "is_ipv4_mapped", + "is_ipv6", + "is_used_lock", + "is_uuid", + "is_visible_dd_object", + "isnull", + "json_array", + "json_array_append", + "json_array_insert", + "json_arrayagg", + "json_contains", + "json_contains_path", + "json_depth", + "json_extract", + "json_insert", + "json_keys", + "json_length", + "json_merge", + "json_merge_patch", + "json_merge_preserve", + "json_object", + "json_objectagg", + "json_overlaps", + "json_pretty", + "json_quote", + "json_remove", + "json_replace", + "json_schema_valid", + "json_schema_validation_report", + "json_search", + "json_set", + "json_storage_free", + "json_storage_size", + "json_type", + "json_unquote", + "json_valid", + "last_day", + "last_insert_id", + "lcase", + "least", + "length", + "like_range_max", + "like_range_min", + "ln", + "load_file", + "locate", + "log", + "log10", + "log2", + "lower", + "lpad", + "ltrim", + "make_set", + "makedate", + "maketime", + "master_pos_wait", + "max", + "mbrcontains", + "mbrcoveredby", + "mbrcovers", + "mbrdisjoint", + "mbrequals", + "mbrintersects", + "mbroverlaps", + "mbrtouches", + "mbrwithin", + "md5", + "mid", + "min", + "monthname", + "name_const", + "now", + "nullif", + "oct", + "octet_length", + "ord", + "period_add", + "period_diff", + "pi", + "position", + "pow", + "power", + "ps_current_thread_id", + "ps_thread_id", + "quote", + "radians", + "rand", + "random_bytes", + "regexp_instr", + "regexp_like", + "regexp_replace", + "regexp_substr", + "release_all_locks", + "release_lock", + "remove_dd_property_key", + "reverse", + "roles_graphml", + "round", + "rpad", + "rtrim", + "sec_to_time", + "session_user", + "sha", + "sha1", + "sha2", + "sign", + "sin", + "sleep", + "soundex", + "source_pos_wait", + "space", + "sqrt", + "st_area", + "st_asbinary", + "st_asgeojson", + "st_astext", + "st_aswkb", + "st_aswkt", + "st_buffer", + "st_buffer_strategy", + "st_centroid", + "st_collect", + "st_contains", + "st_convexhull", + "st_crosses", + "st_difference", + "st_dimension", + "st_disjoint", + "st_distance", + "st_distance_sphere", + "st_endpoint", + "st_envelope", + "st_equals", + "st_exteriorring", + "st_frechetdistance", + "st_geohash", + "st_geomcollfromtext", + "st_geomcollfromtxt", + "st_geomcollfromwkb", + "st_geometrycollectionfromtext", + "st_geometrycollectionfromwkb", + "st_geometryfromtext", + "st_geometryfromwkb", + "st_geometryn", + "st_geometrytype", + "st_geomfromgeojson", + "st_geomfromtext", + "st_geomfromwkb", + "st_hausdorffdistance", + "st_interiorringn", + "st_intersection", + "st_intersects", + "st_isclosed", + "st_isempty", + "st_issimple", + "st_isvalid", + "st_latfromgeohash", + "st_latitude", + "st_length", + "st_linefromtext", + "st_linefromwkb", + "st_lineinterpolatepoint", + "st_lineinterpolatepoints", + "st_linestringfromtext", + "st_linestringfromwkb", + "st_longfromgeohash", + "st_longitude", + "st_makeenvelope", + "st_mlinefromtext", + "st_mlinefromwkb", + "st_mpointfromtext", + "st_mpointfromwkb", + "st_mpolyfromtext", + "st_mpolyfromwkb", + "st_multilinestringfromtext", + "st_multilinestringfromwkb", + "st_multipointfromtext", + "st_multipointfromwkb", + "st_multipolygonfromtext", + "st_multipolygonfromwkb", + "st_numgeometries", + "st_numinteriorring", + "st_numinteriorrings", + "st_numpoints", + "st_overlaps", + "st_pointatdistance", + "st_pointfromgeohash", + "st_pointfromtext", + "st_pointfromwkb", + "st_pointn", + "st_polyfromtext", + "st_polyfromwkb", + "st_polygonfromtext", + "st_polygonfromwkb", + "st_simplify", + "st_srid", + "st_startpoint", + "st_swapxy", + "st_symdifference", + "st_touches", + "st_transform", + "st_union", + "st_validate", + "st_within", + "st_x", + "st_y", + "statement_digest", + "statement_digest_text", + "std", + "stddev", + "stddev_pop", + "stddev_samp", + "str_to_date", + "strcmp", + "subdate", + "substr", + "substring", + "substring_index", + "subtime", + "sum", + "sysdate", + "system_user", + "tan", + "time_format", + "time_to_sec", + "timediff", + "to_base64", + "to_days", + "to_seconds", + "trim", + "ucase", + "uncompress", + "uncompressed_length", + "unhex", + "unix_timestamp", + "updatexml", + "upper", + "uuid", + "uuid_short", + "uuid_to_bin", + "validate_password_strength", + "var_pop", + "var_samp", + "variance", + "version", + "wait_for_executed_gtid_set", + "wait_until_sql_thread_after_gtids", + "weekday", + "weekofyear", + "yearweek", ) MYSQL_OPTIMIZER_HINTS = ( - 'bka', - 'bnl', - 'derived_condition_pushdown', - 'dupsweedout', - 'firstmatch', - 'group_index', - 'hash_join', - 'index', - 'index_merge', - 'intoexists', - 'join_fixed_order', - 'join_index', - 'join_order', - 'join_prefix', - 'join_suffix', - 'loosescan', - 'materialization', - 'max_execution_time', - 'merge', - 'mrr', - 'no_bka', - 'no_bnl', - 'no_derived_condition_pushdown', - 'no_group_index', - 'no_hash_join', - 'no_icp', - 'no_index', - 'no_index_merge', - 'no_join_index', - 'no_merge', - 'no_mrr', - 'no_order_index', - 'no_range_optimization', - 'no_semijoin', - 'no_skip_scan', - 'order_index', - 'qb_name', - 'resource_group', - 'semijoin', - 'set_var', - 'skip_scan', - 'subquery', + "bka", + "bnl", + "derived_condition_pushdown", + "dupsweedout", + "firstmatch", + "group_index", + "hash_join", + "index", + "index_merge", + "intoexists", + "join_fixed_order", + "join_index", + "join_order", + "join_prefix", + "join_suffix", + "loosescan", + "materialization", + "max_execution_time", + "merge", + "mrr", + "no_bka", + "no_bnl", + "no_derived_condition_pushdown", + "no_group_index", + "no_hash_join", + "no_icp", + "no_index", + "no_index_merge", + "no_join_index", + "no_merge", + "no_mrr", + "no_order_index", + "no_range_optimization", + "no_semijoin", + "no_skip_scan", + "order_index", + "qb_name", + "resource_group", + "semijoin", + "set_var", + "skip_scan", + "subquery", ) MYSQL_KEYWORDS = ( - 'accessible', - 'account', - 'action', - 'active', - 'add', - 'admin', - 'after', - 'against', - 'aggregate', - 'algorithm', - 'all', - 'alter', - 'always', - 'analyze', - 'and', - 'any', - 'array', - 'as', - 'asc', - 'ascii', - 'asensitive', - 'assign_gtids_to_anonymous_transactions', - 'at', - 'attribute', - 'authentication', - 'auto_increment', - 'autoextend_size', - 'avg', - 'avg_row_length', - 'backup', - 'before', - 'begin', - 'between', - 'binlog', - 'block', - 'both', - 'btree', - 'buckets', - 'by', - 'byte', - 'cache', - 'call', - 'cascade', - 'cascaded', - 'case', - 'catalog_name', - 'chain', - 'challenge_response', - 'change', - 'changed', - 'channel', - 'character', - 'charset', - 'check', - 'checksum', - 'cipher', - 'class_origin', - 'client', - 'clone', - 'close', - 'coalesce', - 'code', - 'collate', - 'collation', - 'column', - 'column_format', - 'column_name', - 'columns', - 'comment', - 'commit', - 'committed', - 'compact', - 'completion', - 'component', - 'compressed', - 'compression', - 'concurrent', - 'condition', - 'connection', - 'consistent', - 'constraint', - 'constraint_catalog', - 'constraint_name', - 'constraint_schema', - 'contains', - 'context', - 'continue', - 'convert', - 'cpu', - 'create', - 'cross', - 'cube', - 'cume_dist', - 'current', - 'current_date', - 'current_time', - 'current_timestamp', - 'current_user', - 'cursor', - 'cursor_name', - 'data', - 'database', - 'databases', - 'datafile', - 'day', - 'day_hour', - 'day_microsecond', - 'day_minute', - 'day_second', - 'deallocate', - 'declare', - 'default', - 'default_auth', - 'definer', - 'definition', - 'delay_key_write', - 'delayed', - 'delete', - 'dense_rank', - 'desc', - 'describe', - 'description', - 'deterministic', - 'diagnostics', - 'directory', - 'disable', - 'discard', - 'disk', - 'distinct', - 'distinctrow', - 'div', - 'do', - 'drop', - 'dual', - 'dumpfile', - 'duplicate', - 'dynamic', - 'each', - 'else', - 'elseif', - 'empty', - 'enable', - 'enclosed', - 'encryption', - 'end', - 'ends', - 'enforced', - 'engine', - 'engine_attribute', - 'engines', - 'error', - 'errors', - 'escape', - 'escaped', - 'event', - 'events', - 'every', - 'except', - 'exchange', - 'exclude', - 'execute', - 'exists', - 'exit', - 'expansion', - 'expire', - 'explain', - 'export', - 'extended', - 'extent_size', - 'factor', - 'failed_login_attempts', - 'false', - 'fast', - 'faults', - 'fetch', - 'fields', - 'file', - 'file_block_size', - 'filter', - 'finish', - 'first', - 'first_value', - 'flush', - 'following', - 'follows', - 'for', - 'force', - 'foreign', - 'format', - 'found', - 'from', - 'full', - 'fulltext', - 'function', - 'general', - 'generated', - 'geomcollection', - 'get', - 'get_format', - 'get_master_public_key', - 'get_source_public_key', - 'global', - 'grant', - 'grants', - 'group', - 'group_replication', - 'grouping', - 'groups', - 'gtid_only', - 'handler', - 'hash', - 'having', - 'help', - 'high_priority', - 'histogram', - 'history', - 'host', - 'hosts', - 'hour', - 'hour_microsecond', - 'hour_minute', - 'hour_second', - 'identified', - 'if', - 'ignore', - 'ignore_server_ids', - 'import', - 'in', - 'inactive', - 'index', - 'indexes', - 'infile', - 'initial', - 'initial_size', - 'initiate', - 'inner', - 'inout', - 'insensitive', - 'insert', - 'insert_method', - 'install', - 'instance', - 'interval', - 'into', - 'invisible', - 'invoker', - 'io', - 'io_after_gtids', - 'io_before_gtids', - 'io_thread', - 'ipc', - 'is', - 'isolation', - 'issuer', - 'iterate', - 'join', - 'json_table', - 'json_value', - 'key', - 'key_block_size', - 'keyring', - 'keys', - 'kill', - 'lag', - 'language', - 'last', - 'last_value', - 'lateral', - 'lead', - 'leading', - 'leave', - 'leaves', - 'left', - 'less', - 'level', - 'like', - 'limit', - 'linear', - 'lines', - 'list', - 'load', - 'local', - 'localtime', - 'localtimestamp', - 'lock', - 'locked', - 'locks', - 'logfile', - 'logs', - 'loop', - 'low_priority', - 'master', - 'master_auto_position', - 'master_bind', - 'master_compression_algorithms', - 'master_connect_retry', - 'master_delay', - 'master_heartbeat_period', - 'master_host', - 'master_log_file', - 'master_log_pos', - 'master_password', - 'master_port', - 'master_public_key_path', - 'master_retry_count', - 'master_ssl', - 'master_ssl_ca', - 'master_ssl_capath', - 'master_ssl_cert', - 'master_ssl_cipher', - 'master_ssl_crl', - 'master_ssl_crlpath', - 'master_ssl_key', - 'master_ssl_verify_server_cert', - 'master_tls_ciphersuites', - 'master_tls_version', - 'master_user', - 'master_zstd_compression_level', - 'match', - 'max_connections_per_hour', - 'max_queries_per_hour', - 'max_rows', - 'max_size', - 'max_updates_per_hour', - 'max_user_connections', - 'maxvalue', - 'medium', - 'member', - 'memory', - 'merge', - 'message_text', - 'microsecond', - 'migrate', - 'min_rows', - 'minute', - 'minute_microsecond', - 'minute_second', - 'mod', - 'mode', - 'modifies', - 'modify', - 'month', - 'mutex', - 'mysql_errno', - 'name', - 'names', - 'natural', - 'ndb', - 'ndbcluster', - 'nested', - 'network_namespace', - 'never', - 'new', - 'next', - 'no', - 'no_wait', - 'no_write_to_binlog', - 'nodegroup', - 'none', - 'not', - 'nowait', - 'nth_value', - 'ntile', - 'null', - 'nulls', - 'number', - 'of', - 'off', - 'offset', - 'oj', - 'old', - 'on', - 'one', - 'only', - 'open', - 'optimize', - 'optimizer_costs', - 'option', - 'optional', - 'optionally', - 'options', - 'or', - 'order', - 'ordinality', - 'organization', - 'others', - 'out', - 'outer', - 'outfile', - 'over', - 'owner', - 'pack_keys', - 'page', - 'parser', - 'partial', - 'partition', - 'partitioning', - 'partitions', - 'password', - 'password_lock_time', - 'path', - 'percent_rank', - 'persist', - 'persist_only', - 'phase', - 'plugin', - 'plugin_dir', - 'plugins', - 'port', - 'precedes', - 'preceding', - 'prepare', - 'preserve', - 'prev', - 'primary', - 'privilege_checks_user', - 'privileges', - 'procedure', - 'process', - 'processlist', - 'profile', - 'profiles', - 'proxy', - 'purge', - 'quarter', - 'query', - 'quick', - 'random', - 'range', - 'rank', - 'read', - 'read_only', - 'read_write', - 'reads', - 'rebuild', - 'recover', - 'recursive', - 'redo_buffer_size', - 'redundant', - 'reference', - 'references', - 'regexp', - 'registration', - 'relay', - 'relay_log_file', - 'relay_log_pos', - 'relay_thread', - 'relaylog', - 'release', - 'reload', - 'remove', - 'rename', - 'reorganize', - 'repair', - 'repeat', - 'repeatable', - 'replace', - 'replica', - 'replicas', - 'replicate_do_db', - 'replicate_do_table', - 'replicate_ignore_db', - 'replicate_ignore_table', - 'replicate_rewrite_db', - 'replicate_wild_do_table', - 'replicate_wild_ignore_table', - 'replication', - 'require', - 'require_row_format', - 'require_table_primary_key_check', - 'reset', - 'resignal', - 'resource', - 'respect', - 'restart', - 'restore', - 'restrict', - 'resume', - 'retain', - 'return', - 'returned_sqlstate', - 'returning', - 'returns', - 'reuse', - 'reverse', - 'revoke', - 'right', - 'rlike', - 'role', - 'rollback', - 'rollup', - 'rotate', - 'routine', - 'row', - 'row_count', - 'row_format', - 'row_number', - 'rows', - 'rtree', - 'savepoint', - 'schedule', - 'schema', - 'schema_name', - 'schemas', - 'second', - 'second_microsecond', - 'secondary', - 'secondary_engine', - 'secondary_engine_attribute', - 'secondary_load', - 'secondary_unload', - 'security', - 'select', - 'sensitive', - 'separator', - 'serializable', - 'server', - 'session', - 'share', - 'show', - 'shutdown', - 'signal', - 'signed', - 'simple', - 'skip', - 'slave', - 'slow', - 'snapshot', - 'socket', - 'some', - 'soname', - 'sounds', - 'source', - 'source_auto_position', - 'source_bind', - 'source_compression_algorithms', - 'source_connect_retry', - 'source_connection_auto_failover', - 'source_delay', - 'source_heartbeat_period', - 'source_host', - 'source_log_file', - 'source_log_pos', - 'source_password', - 'source_port', - 'source_public_key_path', - 'source_retry_count', - 'source_ssl', - 'source_ssl_ca', - 'source_ssl_capath', - 'source_ssl_cert', - 'source_ssl_cipher', - 'source_ssl_crl', - 'source_ssl_crlpath', - 'source_ssl_key', - 'source_ssl_verify_server_cert', - 'source_tls_ciphersuites', - 'source_tls_version', - 'source_user', - 'source_zstd_compression_level', - 'spatial', - 'specific', - 'sql', - 'sql_after_gtids', - 'sql_after_mts_gaps', - 'sql_before_gtids', - 'sql_big_result', - 'sql_buffer_result', - 'sql_calc_found_rows', - 'sql_no_cache', - 'sql_small_result', - 'sql_thread', - 'sql_tsi_day', - 'sql_tsi_hour', - 'sql_tsi_minute', - 'sql_tsi_month', - 'sql_tsi_quarter', - 'sql_tsi_second', - 'sql_tsi_week', - 'sql_tsi_year', - 'sqlexception', - 'sqlstate', - 'sqlwarning', - 'srid', - 'ssl', - 'stacked', - 'start', - 'starting', - 'starts', - 'stats_auto_recalc', - 'stats_persistent', - 'stats_sample_pages', - 'status', - 'stop', - 'storage', - 'stored', - 'straight_join', - 'stream', - 'string', - 'subclass_origin', - 'subject', - 'subpartition', - 'subpartitions', - 'super', - 'suspend', - 'swaps', - 'switches', - 'system', - 'table', - 'table_checksum', - 'table_name', - 'tables', - 'tablespace', - 'temporary', - 'temptable', - 'terminated', - 'than', - 'then', - 'thread_priority', - 'ties', - 'timestampadd', - 'timestampdiff', - 'tls', - 'to', - 'trailing', - 'transaction', - 'trigger', - 'triggers', - 'true', - 'truncate', - 'type', - 'types', - 'unbounded', - 'uncommitted', - 'undefined', - 'undo', - 'undo_buffer_size', - 'undofile', - 'unicode', - 'uninstall', - 'union', - 'unique', - 'unknown', - 'unlock', - 'unregister', - 'unsigned', - 'until', - 'update', - 'upgrade', - 'usage', - 'use', - 'use_frm', - 'user', - 'user_resources', - 'using', - 'utc_date', - 'utc_time', - 'utc_timestamp', - 'validation', - 'value', - 'values', - 'variables', - 'vcpu', - 'view', - 'virtual', - 'visible', - 'wait', - 'warnings', - 'week', - 'weight_string', - 'when', - 'where', - 'while', - 'window', - 'with', - 'without', - 'work', - 'wrapper', - 'write', - 'x509', - 'xa', - 'xid', - 'xml', - 'xor', - 'year_month', - 'zerofill', - 'zone', + "accessible", + "account", + "action", + "active", + "add", + "admin", + "after", + "against", + "aggregate", + "algorithm", + "all", + "alter", + "always", + "analyze", + "and", + "any", + "array", + "as", + "asc", + "ascii", + "asensitive", + "assign_gtids_to_anonymous_transactions", + "at", + "attribute", + "authentication", + "auto_increment", + "autoextend_size", + "avg", + "avg_row_length", + "backup", + "before", + "begin", + "between", + "binlog", + "block", + "both", + "btree", + "buckets", + "by", + "byte", + "cache", + "call", + "cascade", + "cascaded", + "case", + "catalog_name", + "chain", + "challenge_response", + "change", + "changed", + "channel", + "character", + "charset", + "check", + "checksum", + "cipher", + "class_origin", + "client", + "clone", + "close", + "coalesce", + "code", + "collate", + "collation", + "column", + "column_format", + "column_name", + "columns", + "comment", + "commit", + "committed", + "compact", + "completion", + "component", + "compressed", + "compression", + "concurrent", + "condition", + "connection", + "consistent", + "constraint", + "constraint_catalog", + "constraint_name", + "constraint_schema", + "contains", + "context", + "continue", + "convert", + "cpu", + "create", + "cross", + "cube", + "cume_dist", + "current", + "current_date", + "current_time", + "current_timestamp", + "current_user", + "cursor", + "cursor_name", + "data", + "database", + "databases", + "datafile", + "day", + "day_hour", + "day_microsecond", + "day_minute", + "day_second", + "deallocate", + "declare", + "default", + "default_auth", + "definer", + "definition", + "delay_key_write", + "delayed", + "delete", + "dense_rank", + "desc", + "describe", + "description", + "deterministic", + "diagnostics", + "directory", + "disable", + "discard", + "disk", + "distinct", + "distinctrow", + "div", + "do", + "drop", + "dual", + "dumpfile", + "duplicate", + "dynamic", + "each", + "else", + "elseif", + "empty", + "enable", + "enclosed", + "encryption", + "end", + "ends", + "enforced", + "engine", + "engine_attribute", + "engines", + "error", + "errors", + "escape", + "escaped", + "event", + "events", + "every", + "except", + "exchange", + "exclude", + "execute", + "exists", + "exit", + "expansion", + "expire", + "explain", + "export", + "extended", + "extent_size", + "factor", + "failed_login_attempts", + "false", + "fast", + "faults", + "fetch", + "fields", + "file", + "file_block_size", + "filter", + "finish", + "first", + "first_value", + "flush", + "following", + "follows", + "for", + "force", + "foreign", + "format", + "found", + "from", + "full", + "fulltext", + "function", + "general", + "generated", + "geomcollection", + "get", + "get_format", + "get_master_public_key", + "get_source_public_key", + "global", + "grant", + "grants", + "group", + "group_replication", + "grouping", + "groups", + "gtid_only", + "handler", + "hash", + "having", + "help", + "high_priority", + "histogram", + "history", + "host", + "hosts", + "hour", + "hour_microsecond", + "hour_minute", + "hour_second", + "identified", + "if", + "ignore", + "ignore_server_ids", + "import", + "in", + "inactive", + "index", + "indexes", + "infile", + "initial", + "initial_size", + "initiate", + "inner", + "inout", + "insensitive", + "insert", + "insert_method", + "install", + "instance", + "interval", + "into", + "invisible", + "invoker", + "io", + "io_after_gtids", + "io_before_gtids", + "io_thread", + "ipc", + "is", + "isolation", + "issuer", + "iterate", + "join", + "json_table", + "json_value", + "key", + "key_block_size", + "keyring", + "keys", + "kill", + "lag", + "language", + "last", + "last_value", + "lateral", + "lead", + "leading", + "leave", + "leaves", + "left", + "less", + "level", + "like", + "limit", + "linear", + "lines", + "list", + "load", + "local", + "localtime", + "localtimestamp", + "lock", + "locked", + "locks", + "logfile", + "logs", + "loop", + "low_priority", + "master", + "master_auto_position", + "master_bind", + "master_compression_algorithms", + "master_connect_retry", + "master_delay", + "master_heartbeat_period", + "master_host", + "master_log_file", + "master_log_pos", + "master_password", + "master_port", + "master_public_key_path", + "master_retry_count", + "master_ssl", + "master_ssl_ca", + "master_ssl_capath", + "master_ssl_cert", + "master_ssl_cipher", + "master_ssl_crl", + "master_ssl_crlpath", + "master_ssl_key", + "master_ssl_verify_server_cert", + "master_tls_ciphersuites", + "master_tls_version", + "master_user", + "master_zstd_compression_level", + "match", + "max_connections_per_hour", + "max_queries_per_hour", + "max_rows", + "max_size", + "max_updates_per_hour", + "max_user_connections", + "maxvalue", + "medium", + "member", + "memory", + "merge", + "message_text", + "microsecond", + "migrate", + "min_rows", + "minute", + "minute_microsecond", + "minute_second", + "mod", + "mode", + "modifies", + "modify", + "month", + "mutex", + "mysql_errno", + "name", + "names", + "natural", + "ndb", + "ndbcluster", + "nested", + "network_namespace", + "never", + "new", + "next", + "no", + "no_wait", + "no_write_to_binlog", + "nodegroup", + "none", + "not", + "nowait", + "nth_value", + "ntile", + "null", + "nulls", + "number", + "of", + "off", + "offset", + "oj", + "old", + "on", + "one", + "only", + "open", + "optimize", + "optimizer_costs", + "option", + "optional", + "optionally", + "options", + "or", + "order", + "ordinality", + "organization", + "others", + "out", + "outer", + "outfile", + "over", + "owner", + "pack_keys", + "page", + "parser", + "partial", + "partition", + "partitioning", + "partitions", + "password", + "password_lock_time", + "path", + "percent_rank", + "persist", + "persist_only", + "phase", + "plugin", + "plugin_dir", + "plugins", + "port", + "precedes", + "preceding", + "prepare", + "preserve", + "prev", + "primary", + "privilege_checks_user", + "privileges", + "procedure", + "process", + "processlist", + "profile", + "profiles", + "proxy", + "purge", + "quarter", + "query", + "quick", + "random", + "range", + "rank", + "read", + "read_only", + "read_write", + "reads", + "rebuild", + "recover", + "recursive", + "redo_buffer_size", + "redundant", + "reference", + "references", + "regexp", + "registration", + "relay", + "relay_log_file", + "relay_log_pos", + "relay_thread", + "relaylog", + "release", + "reload", + "remove", + "rename", + "reorganize", + "repair", + "repeat", + "repeatable", + "replace", + "replica", + "replicas", + "replicate_do_db", + "replicate_do_table", + "replicate_ignore_db", + "replicate_ignore_table", + "replicate_rewrite_db", + "replicate_wild_do_table", + "replicate_wild_ignore_table", + "replication", + "require", + "require_row_format", + "require_table_primary_key_check", + "reset", + "resignal", + "resource", + "respect", + "restart", + "restore", + "restrict", + "resume", + "retain", + "return", + "returned_sqlstate", + "returning", + "returns", + "reuse", + "reverse", + "revoke", + "right", + "rlike", + "role", + "rollback", + "rollup", + "rotate", + "routine", + "row", + "row_count", + "row_format", + "row_number", + "rows", + "rtree", + "savepoint", + "schedule", + "schema", + "schema_name", + "schemas", + "second", + "second_microsecond", + "secondary", + "secondary_engine", + "secondary_engine_attribute", + "secondary_load", + "secondary_unload", + "security", + "select", + "sensitive", + "separator", + "serializable", + "server", + "session", + "share", + "show", + "shutdown", + "signal", + "signed", + "simple", + "skip", + "slave", + "slow", + "snapshot", + "socket", + "some", + "soname", + "sounds", + "source", + "source_auto_position", + "source_bind", + "source_compression_algorithms", + "source_connect_retry", + "source_connection_auto_failover", + "source_delay", + "source_heartbeat_period", + "source_host", + "source_log_file", + "source_log_pos", + "source_password", + "source_port", + "source_public_key_path", + "source_retry_count", + "source_ssl", + "source_ssl_ca", + "source_ssl_capath", + "source_ssl_cert", + "source_ssl_cipher", + "source_ssl_crl", + "source_ssl_crlpath", + "source_ssl_key", + "source_ssl_verify_server_cert", + "source_tls_ciphersuites", + "source_tls_version", + "source_user", + "source_zstd_compression_level", + "spatial", + "specific", + "sql", + "sql_after_gtids", + "sql_after_mts_gaps", + "sql_before_gtids", + "sql_big_result", + "sql_buffer_result", + "sql_calc_found_rows", + "sql_no_cache", + "sql_small_result", + "sql_thread", + "sql_tsi_day", + "sql_tsi_hour", + "sql_tsi_minute", + "sql_tsi_month", + "sql_tsi_quarter", + "sql_tsi_second", + "sql_tsi_week", + "sql_tsi_year", + "sqlexception", + "sqlstate", + "sqlwarning", + "srid", + "ssl", + "stacked", + "start", + "starting", + "starts", + "stats_auto_recalc", + "stats_persistent", + "stats_sample_pages", + "status", + "stop", + "storage", + "stored", + "straight_join", + "stream", + "string", + "subclass_origin", + "subject", + "subpartition", + "subpartitions", + "super", + "suspend", + "swaps", + "switches", + "system", + "table", + "table_checksum", + "table_name", + "tables", + "tablespace", + "temporary", + "temptable", + "terminated", + "than", + "then", + "thread_priority", + "ties", + "timestampadd", + "timestampdiff", + "tls", + "to", + "trailing", + "transaction", + "trigger", + "triggers", + "true", + "truncate", + "type", + "types", + "unbounded", + "uncommitted", + "undefined", + "undo", + "undo_buffer_size", + "undofile", + "unicode", + "uninstall", + "union", + "unique", + "unknown", + "unlock", + "unregister", + "unsigned", + "until", + "update", + "upgrade", + "usage", + "use", + "use_frm", + "user", + "user_resources", + "using", + "utc_date", + "utc_time", + "utc_timestamp", + "validation", + "value", + "values", + "variables", + "vcpu", + "view", + "virtual", + "visible", + "wait", + "warnings", + "week", + "weight_string", + "when", + "where", + "while", + "window", + "with", + "without", + "work", + "wrapper", + "write", + "x509", + "xa", + "xid", + "xml", + "xor", + "year_month", + "zerofill", + "zone", ) -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import re from urllib.request import urlopen from pygments.util import format_lines # MySQL source code - SOURCE_URL = 'https://github.com/mysql/mysql-server/raw/8.0' - LEX_URL = SOURCE_URL + '/sql/lex.h' - ITEM_CREATE_URL = SOURCE_URL + '/sql/item_create.cc' - + SOURCE_URL = "https://github.com/mysql/mysql-server/raw/8.0" + LEX_URL = SOURCE_URL + "/sql/lex.h" + ITEM_CREATE_URL = SOURCE_URL + "/sql/item_create.cc" def update_myself(): # Pull content from lex.h. - lex_file = urlopen(LEX_URL).read().decode('utf8', errors='ignore') + lex_file = urlopen(LEX_URL).read().decode("utf8", errors="ignore") keywords = parse_lex_keywords(lex_file) functions = parse_lex_functions(lex_file) optimizer_hints = parse_lex_optimizer_hints(lex_file) # Parse content in item_create.cc. - item_create_file = urlopen(ITEM_CREATE_URL).read().decode('utf8', errors='ignore') + item_create_file = ( + urlopen(ITEM_CREATE_URL).read().decode("utf8", errors="ignore") + ) functions.update(parse_item_create_functions(item_create_file)) # Remove data types from the set of keywords. keywords -= set(MYSQL_DATATYPES) - update_content('MYSQL_FUNCTIONS', tuple(sorted(functions))) - update_content('MYSQL_KEYWORDS', tuple(sorted(keywords))) - update_content('MYSQL_OPTIMIZER_HINTS', tuple(sorted(optimizer_hints))) - + update_content("MYSQL_FUNCTIONS", tuple(sorted(functions))) + update_content("MYSQL_KEYWORDS", tuple(sorted(keywords))) + update_content("MYSQL_OPTIMIZER_HINTS", tuple(sorted(optimizer_hints))) def parse_lex_keywords(f): """Parse keywords in lex.h.""" results = set() - for m in re.finditer(r'{SYM(?:_HK)?\("(?P[a-z0-9_]+)",', f, flags=re.I): - results.add(m.group('keyword').lower()) + for m in re.finditer( + r'{SYM(?:_HK)?\("(?P[a-z0-9_]+)",', f, flags=re.I + ): + results.add(m.group("keyword").lower()) if not results: - raise ValueError('No keywords found') + raise ValueError("No keywords found") return results - def parse_lex_optimizer_hints(f): """Parse optimizer hints in lex.h.""" results = set() for m in re.finditer(r'{SYM_H\("(?P[a-z0-9_]+)",', f, flags=re.I): - results.add(m.group('keyword').lower()) + results.add(m.group("keyword").lower()) if not results: - raise ValueError('No optimizer hints found') + raise ValueError("No optimizer hints found") return results - def parse_lex_functions(f): """Parse MySQL function names from lex.h.""" results = set() for m in re.finditer(r'{SYM_FN?\("(?P[a-z0-9_]+)",', f, flags=re.I): - results.add(m.group('function').lower()) + results.add(m.group("function").lower()) if not results: - raise ValueError('No lex functions found') + raise ValueError("No lex functions found") return results - def parse_item_create_functions(f): """Parse MySQL function names from item_create.cc.""" results = set() - for m in re.finditer(r'{"(?P[^"]+?)",\s*SQL_F[^(]+?\(', f, flags=re.I): - results.add(m.group('function').lower()) + for m in re.finditer( + r'{"(?P[^"]+?)",\s*SQL_F[^(]+?\(', f, flags=re.I + ): + results.add(m.group("function").lower()) if not results: - raise ValueError('No item_create functions found') + raise ValueError("No item_create functions found") return results - def update_content(field_name, content): """Overwrite this file with content parsed from MySQL's source code.""" @@ -1321,15 +1316,15 @@ if __name__ == '__main__': # pragma: no cover data = f.read() # Line to start/end inserting - re_match = re.compile(rf'^{field_name}\s*=\s*\($.*?^\s*\)$', re.M | re.S) + re_match = re.compile(rf"^{field_name}\s*=\s*\($.*?^\s*\)$", re.M | re.S) m = re_match.search(data) if not m: - raise ValueError(f'Could not find an existing definition for {field_name}') + raise ValueError(f"Could not find an existing definition for {field_name}") new_block = format_lines(field_name, content) - data = data[:m.start()] + new_block + data[m.end():] + data = data[: m.start()] + new_block + data[m.end() :] - with open(__file__, 'w', encoding='utf-8', newline='\n') as f: + with open(__file__, "w", encoding="utf-8", newline="\n") as f: f.write(data) update_myself() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_openedge_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_openedge_builtins.py index 33a1333..d860143 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_openedge_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_openedge_builtins.py @@ -1,2600 +1,2600 @@ """ - pygments.lexers._openedge_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._openedge_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Builtin list for the OpenEdgeLexer. +Builtin list for the OpenEdgeLexer. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ OPENEDGEKEYWORDS = ( - 'ABS', - 'ABSO', - 'ABSOL', - 'ABSOLU', - 'ABSOLUT', - 'ABSOLUTE', - 'ABSTRACT', - 'ACCELERATOR', - 'ACCUM', - 'ACCUMU', - 'ACCUMUL', - 'ACCUMULA', - 'ACCUMULAT', - 'ACCUMULATE', - 'ACTIVE-FORM', - 'ACTIVE-WINDOW', - 'ADD', - 'ADD-BUFFER', - 'ADD-CALC-COLUMN', - 'ADD-COLUMNS-FROM', - 'ADD-EVENTS-PROCEDURE', - 'ADD-FIELDS-FROM', - 'ADD-FIRST', - 'ADD-INDEX-FIELD', - 'ADD-LAST', - 'ADD-LIKE-COLUMN', - 'ADD-LIKE-FIELD', - 'ADD-LIKE-INDEX', - 'ADD-NEW-FIELD', - 'ADD-NEW-INDEX', - 'ADD-SCHEMA-LOCATION', - 'ADD-SUPER-PROCEDURE', - 'ADM-DATA', - 'ADVISE', - 'ALERT-BOX', - 'ALIAS', - 'ALL', - 'ALLOW-COLUMN-SEARCHING', - 'ALLOW-REPLICATION', - 'ALTER', - 'ALWAYS-ON-TOP', - 'AMBIG', - 'AMBIGU', - 'AMBIGUO', - 'AMBIGUOU', - 'AMBIGUOUS', - 'ANALYZ', - 'ANALYZE', - 'AND', - 'ANSI-ONLY', - 'ANY', - 'ANYWHERE', - 'APPEND', - 'APPL-ALERT', - 'APPL-ALERT-', - 'APPL-ALERT-B', - 'APPL-ALERT-BO', - 'APPL-ALERT-BOX', - 'APPL-ALERT-BOXE', - 'APPL-ALERT-BOXES', - 'APPL-CONTEXT-ID', - 'APPLICATION', - 'APPLY', - 'APPSERVER-INFO', - 'APPSERVER-PASSWORD', - 'APPSERVER-USERID', - 'ARRAY-MESSAGE', - 'AS', - 'ASC', - 'ASCE', - 'ASCEN', - 'ASCEND', - 'ASCENDI', - 'ASCENDIN', - 'ASCENDING', - 'ASK-OVERWRITE', - 'ASSEMBLY', - 'ASSIGN', - 'ASYNC-REQUEST-COUNT', - 'ASYNC-REQUEST-HANDLE', - 'ASYNCHRONOUS', - 'AT', - 'ATTACHED-PAIRLIST', - 'ATTR', - 'ATTR-SPACE', - 'ATTRI', - 'ATTRIB', - 'ATTRIBU', - 'ATTRIBUT', - 'AUDIT-CONTROL', - 'AUDIT-ENABLED', - 'AUDIT-EVENT-CONTEXT', - 'AUDIT-POLICY', - 'AUTHENTICATION-FAILED', - 'AUTHORIZATION', - 'AUTO-COMP', - 'AUTO-COMPL', - 'AUTO-COMPLE', - 'AUTO-COMPLET', - 'AUTO-COMPLETI', - 'AUTO-COMPLETIO', - 'AUTO-COMPLETION', - 'AUTO-END-KEY', - 'AUTO-ENDKEY', - 'AUTO-GO', - 'AUTO-IND', - 'AUTO-INDE', - 'AUTO-INDEN', - 'AUTO-INDENT', - 'AUTO-RESIZE', - 'AUTO-RET', - 'AUTO-RETU', - 'AUTO-RETUR', - 'AUTO-RETURN', - 'AUTO-SYNCHRONIZE', - 'AUTO-Z', - 'AUTO-ZA', - 'AUTO-ZAP', - 'AUTOMATIC', - 'AVAIL', - 'AVAILA', - 'AVAILAB', - 'AVAILABL', - 'AVAILABLE', - 'AVAILABLE-FORMATS', - 'AVE', - 'AVER', - 'AVERA', - 'AVERAG', - 'AVERAGE', - 'AVG', - 'BACK', - 'BACKG', - 'BACKGR', - 'BACKGRO', - 'BACKGROU', - 'BACKGROUN', - 'BACKGROUND', - 'BACKWARD', - 'BACKWARDS', - 'BASE64-DECODE', - 'BASE64-ENCODE', - 'BASE-ADE', - 'BASE-KEY', - 'BATCH', - 'BATCH-', - 'BATCH-M', - 'BATCH-MO', - 'BATCH-MOD', - 'BATCH-MODE', - 'BATCH-SIZE', - 'BEFORE-H', - 'BEFORE-HI', - 'BEFORE-HID', - 'BEFORE-HIDE', - 'BEGIN-EVENT-GROUP', - 'BEGINS', - 'BELL', - 'BETWEEN', - 'BGC', - 'BGCO', - 'BGCOL', - 'BGCOLO', - 'BGCOLOR', - 'BIG-ENDIAN', - 'BINARY', - 'BIND', - 'BIND-WHERE', - 'BLANK', - 'BLOCK-ITERATION-DISPLAY', - 'BLOCK-LEVEL', - 'BORDER-B', - 'BORDER-BO', - 'BORDER-BOT', - 'BORDER-BOTT', - 'BORDER-BOTTO', - 'BORDER-BOTTOM-CHARS', - 'BORDER-BOTTOM-P', - 'BORDER-BOTTOM-PI', - 'BORDER-BOTTOM-PIX', - 'BORDER-BOTTOM-PIXE', - 'BORDER-BOTTOM-PIXEL', - 'BORDER-BOTTOM-PIXELS', - 'BORDER-L', - 'BORDER-LE', - 'BORDER-LEF', - 'BORDER-LEFT', - 'BORDER-LEFT-', - 'BORDER-LEFT-C', - 'BORDER-LEFT-CH', - 'BORDER-LEFT-CHA', - 'BORDER-LEFT-CHAR', - 'BORDER-LEFT-CHARS', - 'BORDER-LEFT-P', - 'BORDER-LEFT-PI', - 'BORDER-LEFT-PIX', - 'BORDER-LEFT-PIXE', - 'BORDER-LEFT-PIXEL', - 'BORDER-LEFT-PIXELS', - 'BORDER-R', - 'BORDER-RI', - 'BORDER-RIG', - 'BORDER-RIGH', - 'BORDER-RIGHT', - 'BORDER-RIGHT-', - 'BORDER-RIGHT-C', - 'BORDER-RIGHT-CH', - 'BORDER-RIGHT-CHA', - 'BORDER-RIGHT-CHAR', - 'BORDER-RIGHT-CHARS', - 'BORDER-RIGHT-P', - 'BORDER-RIGHT-PI', - 'BORDER-RIGHT-PIX', - 'BORDER-RIGHT-PIXE', - 'BORDER-RIGHT-PIXEL', - 'BORDER-RIGHT-PIXELS', - 'BORDER-T', - 'BORDER-TO', - 'BORDER-TOP', - 'BORDER-TOP-', - 'BORDER-TOP-C', - 'BORDER-TOP-CH', - 'BORDER-TOP-CHA', - 'BORDER-TOP-CHAR', - 'BORDER-TOP-CHARS', - 'BORDER-TOP-P', - 'BORDER-TOP-PI', - 'BORDER-TOP-PIX', - 'BORDER-TOP-PIXE', - 'BORDER-TOP-PIXEL', - 'BORDER-TOP-PIXELS', - 'BOX', - 'BOX-SELECT', - 'BOX-SELECTA', - 'BOX-SELECTAB', - 'BOX-SELECTABL', - 'BOX-SELECTABLE', - 'BREAK', - 'BROWSE', - 'BUFFER', - 'BUFFER-CHARS', - 'BUFFER-COMPARE', - 'BUFFER-COPY', - 'BUFFER-CREATE', - 'BUFFER-DELETE', - 'BUFFER-FIELD', - 'BUFFER-HANDLE', - 'BUFFER-LINES', - 'BUFFER-NAME', - 'BUFFER-PARTITION-ID', - 'BUFFER-RELEASE', - 'BUFFER-VALUE', - 'BUTTON', - 'BUTTONS', - 'BY', - 'BY-POINTER', - 'BY-VARIANT-POINTER', - 'CACHE', - 'CACHE-SIZE', - 'CALL', - 'CALL-NAME', - 'CALL-TYPE', - 'CAN-CREATE', - 'CAN-DELETE', - 'CAN-DO', - 'CAN-DO-DOMAIN-SUPPORT', - 'CAN-FIND', - 'CAN-QUERY', - 'CAN-READ', - 'CAN-SET', - 'CAN-WRITE', - 'CANCEL-BREAK', - 'CANCEL-BUTTON', - 'CAPS', - 'CAREFUL-PAINT', - 'CASE', - 'CASE-SEN', - 'CASE-SENS', - 'CASE-SENSI', - 'CASE-SENSIT', - 'CASE-SENSITI', - 'CASE-SENSITIV', - 'CASE-SENSITIVE', - 'CAST', - 'CATCH', - 'CDECL', - 'CENTER', - 'CENTERE', - 'CENTERED', - 'CHAINED', - 'CHARACTER', - 'CHARACTER_LENGTH', - 'CHARSET', - 'CHECK', - 'CHECKED', - 'CHOOSE', - 'CHR', - 'CLASS', - 'CLASS-TYPE', - 'CLEAR', - 'CLEAR-APPL-CONTEXT', - 'CLEAR-LOG', - 'CLEAR-SELECT', - 'CLEAR-SELECTI', - 'CLEAR-SELECTIO', - 'CLEAR-SELECTION', - 'CLEAR-SORT-ARROW', - 'CLEAR-SORT-ARROWS', - 'CLIENT-CONNECTION-ID', - 'CLIENT-PRINCIPAL', - 'CLIENT-TTY', - 'CLIENT-TYPE', - 'CLIENT-WORKSTATION', - 'CLIPBOARD', - 'CLOSE', - 'CLOSE-LOG', - 'CODE', - 'CODEBASE-LOCATOR', - 'CODEPAGE', - 'CODEPAGE-CONVERT', - 'COL', - 'COL-OF', - 'COLLATE', - 'COLON', - 'COLON-ALIGN', - 'COLON-ALIGNE', - 'COLON-ALIGNED', - 'COLOR', - 'COLOR-TABLE', - 'COLU', - 'COLUM', - 'COLUMN', - 'COLUMN-BGCOLOR', - 'COLUMN-DCOLOR', - 'COLUMN-FGCOLOR', - 'COLUMN-FONT', - 'COLUMN-LAB', - 'COLUMN-LABE', - 'COLUMN-LABEL', - 'COLUMN-MOVABLE', - 'COLUMN-OF', - 'COLUMN-PFCOLOR', - 'COLUMN-READ-ONLY', - 'COLUMN-RESIZABLE', - 'COLUMN-SCROLLING', - 'COLUMNS', - 'COM-HANDLE', - 'COM-SELF', - 'COMBO-BOX', - 'COMMAND', - 'COMPARES', - 'COMPILE', - 'COMPILER', - 'COMPLETE', - 'CONFIG-NAME', - 'CONNECT', - 'CONNECTED', - 'CONSTRUCTOR', - 'CONTAINS', - 'CONTENTS', - 'CONTEXT', - 'CONTEXT-HELP', - 'CONTEXT-HELP-FILE', - 'CONTEXT-HELP-ID', - 'CONTEXT-POPUP', - 'CONTROL', - 'CONTROL-BOX', - 'CONTROL-FRAME', - 'CONVERT', - 'CONVERT-3D-COLORS', - 'CONVERT-TO-OFFS', - 'CONVERT-TO-OFFSE', - 'CONVERT-TO-OFFSET', - 'COPY-DATASET', - 'COPY-LOB', - 'COPY-SAX-ATTRIBUTES', - 'COPY-TEMP-TABLE', - 'COUNT', - 'COUNT-OF', - 'CPCASE', - 'CPCOLL', - 'CPINTERNAL', - 'CPLOG', - 'CPPRINT', - 'CPRCODEIN', - 'CPRCODEOUT', - 'CPSTREAM', - 'CPTERM', - 'CRC-VALUE', - 'CREATE', - 'CREATE-LIKE', - 'CREATE-LIKE-SEQUENTIAL', - 'CREATE-NODE-NAMESPACE', - 'CREATE-RESULT-LIST-ENTRY', - 'CREATE-TEST-FILE', - 'CURRENT', - 'CURRENT-CHANGED', - 'CURRENT-COLUMN', - 'CURRENT-ENV', - 'CURRENT-ENVI', - 'CURRENT-ENVIR', - 'CURRENT-ENVIRO', - 'CURRENT-ENVIRON', - 'CURRENT-ENVIRONM', - 'CURRENT-ENVIRONME', - 'CURRENT-ENVIRONMEN', - 'CURRENT-ENVIRONMENT', - 'CURRENT-ITERATION', - 'CURRENT-LANG', - 'CURRENT-LANGU', - 'CURRENT-LANGUA', - 'CURRENT-LANGUAG', - 'CURRENT-LANGUAGE', - 'CURRENT-QUERY', - 'CURRENT-REQUEST-INFO', - 'CURRENT-RESPONSE-INFO', - 'CURRENT-RESULT-ROW', - 'CURRENT-ROW-MODIFIED', - 'CURRENT-VALUE', - 'CURRENT-WINDOW', - 'CURRENT_DATE', - 'CURS', - 'CURSO', - 'CURSOR', - 'CURSOR-CHAR', - 'CURSOR-LINE', - 'CURSOR-OFFSET', - 'DATA-BIND', - 'DATA-ENTRY-RET', - 'DATA-ENTRY-RETU', - 'DATA-ENTRY-RETUR', - 'DATA-ENTRY-RETURN', - 'DATA-REL', - 'DATA-RELA', - 'DATA-RELAT', - 'DATA-RELATI', - 'DATA-RELATIO', - 'DATA-RELATION', - 'DATA-SOURCE', - 'DATA-SOURCE-COMPLETE-MAP', - 'DATA-SOURCE-MODIFIED', - 'DATA-SOURCE-ROWID', - 'DATA-T', - 'DATA-TY', - 'DATA-TYP', - 'DATA-TYPE', - 'DATABASE', - 'DATASERVERS', - 'DATASET', - 'DATASET-HANDLE', - 'DATE', - 'DATE-F', - 'DATE-FO', - 'DATE-FOR', - 'DATE-FORM', - 'DATE-FORMA', - 'DATE-FORMAT', - 'DAY', - 'DB-CONTEXT', - 'DB-REFERENCES', - 'DBCODEPAGE', - 'DBCOLLATION', - 'DBNAME', - 'DBPARAM', - 'DBREST', - 'DBRESTR', - 'DBRESTRI', - 'DBRESTRIC', - 'DBRESTRICT', - 'DBRESTRICTI', - 'DBRESTRICTIO', - 'DBRESTRICTION', - 'DBRESTRICTIONS', - 'DBTASKID', - 'DBTYPE', - 'DBVERS', - 'DBVERSI', - 'DBVERSIO', - 'DBVERSION', - 'DCOLOR', - 'DDE', - 'DDE-ERROR', - 'DDE-I', - 'DDE-ID', - 'DDE-ITEM', - 'DDE-NAME', - 'DDE-TOPIC', - 'DEBLANK', - 'DEBU', - 'DEBUG', - 'DEBUG-ALERT', - 'DEBUG-LIST', - 'DEBUGGER', - 'DECIMAL', - 'DECIMALS', - 'DECLARE', - 'DECLARE-NAMESPACE', - 'DECRYPT', - 'DEFAULT', - 'DEFAULT-B', - 'DEFAULT-BU', - 'DEFAULT-BUFFER-HANDLE', - 'DEFAULT-BUT', - 'DEFAULT-BUTT', - 'DEFAULT-BUTTO', - 'DEFAULT-BUTTON', - 'DEFAULT-COMMIT', - 'DEFAULT-EX', - 'DEFAULT-EXT', - 'DEFAULT-EXTE', - 'DEFAULT-EXTEN', - 'DEFAULT-EXTENS', - 'DEFAULT-EXTENSI', - 'DEFAULT-EXTENSIO', - 'DEFAULT-EXTENSION', - 'DEFAULT-NOXL', - 'DEFAULT-NOXLA', - 'DEFAULT-NOXLAT', - 'DEFAULT-NOXLATE', - 'DEFAULT-VALUE', - 'DEFAULT-WINDOW', - 'DEFINE', - 'DEFINE-USER-EVENT-MANAGER', - 'DEFINED', - 'DEL', - 'DELE', - 'DELEGATE', - 'DELET', - 'DELETE PROCEDURE', - 'DELETE', - 'DELETE-CHAR', - 'DELETE-CHARA', - 'DELETE-CHARAC', - 'DELETE-CHARACT', - 'DELETE-CHARACTE', - 'DELETE-CHARACTER', - 'DELETE-CURRENT-ROW', - 'DELETE-LINE', - 'DELETE-RESULT-LIST-ENTRY', - 'DELETE-SELECTED-ROW', - 'DELETE-SELECTED-ROWS', - 'DELIMITER', - 'DESC', - 'DESCE', - 'DESCEN', - 'DESCEND', - 'DESCENDI', - 'DESCENDIN', - 'DESCENDING', - 'DESELECT-FOCUSED-ROW', - 'DESELECT-ROWS', - 'DESELECT-SELECTED-ROW', - 'DESELECTION', - 'DESTRUCTOR', - 'DIALOG-BOX', - 'DICT', - 'DICTI', - 'DICTIO', - 'DICTION', - 'DICTIONA', - 'DICTIONAR', - 'DICTIONARY', - 'DIR', - 'DISABLE', - 'DISABLE-AUTO-ZAP', - 'DISABLE-DUMP-TRIGGERS', - 'DISABLE-LOAD-TRIGGERS', - 'DISABLED', - 'DISCON', - 'DISCONN', - 'DISCONNE', - 'DISCONNEC', - 'DISCONNECT', - 'DISP', - 'DISPL', - 'DISPLA', - 'DISPLAY', - 'DISPLAY-MESSAGE', - 'DISPLAY-T', - 'DISPLAY-TY', - 'DISPLAY-TYP', - 'DISPLAY-TYPE', - 'DISTINCT', - 'DO', - 'DOMAIN-DESCRIPTION', - 'DOMAIN-NAME', - 'DOMAIN-TYPE', - 'DOS', - 'DOUBLE', - 'DOWN', - 'DRAG-ENABLED', - 'DROP', - 'DROP-DOWN', - 'DROP-DOWN-LIST', - 'DROP-FILE-NOTIFY', - 'DROP-TARGET', - 'DS-CLOSE-CURSOR', - 'DSLOG-MANAGER', - 'DUMP', - 'DYNAMIC', - 'DYNAMIC-ENUM', - 'DYNAMIC-FUNCTION', - 'DYNAMIC-INVOKE', - 'EACH', - 'ECHO', - 'EDGE', - 'EDGE-', - 'EDGE-C', - 'EDGE-CH', - 'EDGE-CHA', - 'EDGE-CHAR', - 'EDGE-CHARS', - 'EDGE-P', - 'EDGE-PI', - 'EDGE-PIX', - 'EDGE-PIXE', - 'EDGE-PIXEL', - 'EDGE-PIXELS', - 'EDIT-CAN-PASTE', - 'EDIT-CAN-UNDO', - 'EDIT-CLEAR', - 'EDIT-COPY', - 'EDIT-CUT', - 'EDIT-PASTE', - 'EDIT-UNDO', - 'EDITING', - 'EDITOR', - 'ELSE', - 'EMPTY', - 'EMPTY-TEMP-TABLE', - 'ENABLE', - 'ENABLED-FIELDS', - 'ENCODE', - 'ENCRYPT', - 'ENCRYPT-AUDIT-MAC-KEY', - 'ENCRYPTION-SALT', - 'END', - 'END-DOCUMENT', - 'END-ELEMENT', - 'END-EVENT-GROUP', - 'END-FILE-DROP', - 'END-KEY', - 'END-MOVE', - 'END-RESIZE', - 'END-ROW-RESIZE', - 'END-USER-PROMPT', - 'ENDKEY', - 'ENTERED', - 'ENTITY-EXPANSION-LIMIT', - 'ENTRY', - 'ENUM', - 'EQ', - 'ERROR', - 'ERROR-COL', - 'ERROR-COLU', - 'ERROR-COLUM', - 'ERROR-COLUMN', - 'ERROR-ROW', - 'ERROR-STACK-TRACE', - 'ERROR-STAT', - 'ERROR-STATU', - 'ERROR-STATUS', - 'ESCAPE', - 'ETIME', - 'EVENT', - 'EVENT-GROUP-ID', - 'EVENT-PROCEDURE', - 'EVENT-PROCEDURE-CONTEXT', - 'EVENT-T', - 'EVENT-TY', - 'EVENT-TYP', - 'EVENT-TYPE', - 'EVENTS', - 'EXCEPT', - 'EXCLUSIVE', - 'EXCLUSIVE-', - 'EXCLUSIVE-ID', - 'EXCLUSIVE-L', - 'EXCLUSIVE-LO', - 'EXCLUSIVE-LOC', - 'EXCLUSIVE-LOCK', - 'EXCLUSIVE-WEB-USER', - 'EXECUTE', - 'EXISTS', - 'EXP', - 'EXPAND', - 'EXPANDABLE', - 'EXPLICIT', - 'EXPORT', - 'EXPORT-PRINCIPAL', - 'EXTENDED', - 'EXTENT', - 'EXTERNAL', - 'FALSE', - 'FETCH', - 'FETCH-SELECTED-ROW', - 'FGC', - 'FGCO', - 'FGCOL', - 'FGCOLO', - 'FGCOLOR', - 'FIELD', - 'FIELDS', - 'FILE', - 'FILE-CREATE-DATE', - 'FILE-CREATE-TIME', - 'FILE-INFO', - 'FILE-INFOR', - 'FILE-INFORM', - 'FILE-INFORMA', - 'FILE-INFORMAT', - 'FILE-INFORMATI', - 'FILE-INFORMATIO', - 'FILE-INFORMATION', - 'FILE-MOD-DATE', - 'FILE-MOD-TIME', - 'FILE-NAME', - 'FILE-OFF', - 'FILE-OFFS', - 'FILE-OFFSE', - 'FILE-OFFSET', - 'FILE-SIZE', - 'FILE-TYPE', - 'FILENAME', - 'FILL', - 'FILL-IN', - 'FILLED', - 'FILTERS', - 'FINAL', - 'FINALLY', - 'FIND', - 'FIND-BY-ROWID', - 'FIND-CASE-SENSITIVE', - 'FIND-CURRENT', - 'FIND-FIRST', - 'FIND-GLOBAL', - 'FIND-LAST', - 'FIND-NEXT-OCCURRENCE', - 'FIND-PREV-OCCURRENCE', - 'FIND-SELECT', - 'FIND-UNIQUE', - 'FIND-WRAP-AROUND', - 'FINDER', - 'FIRST', - 'FIRST-ASYNCH-REQUEST', - 'FIRST-CHILD', - 'FIRST-COLUMN', - 'FIRST-FORM', - 'FIRST-OBJECT', - 'FIRST-OF', - 'FIRST-PROC', - 'FIRST-PROCE', - 'FIRST-PROCED', - 'FIRST-PROCEDU', - 'FIRST-PROCEDUR', - 'FIRST-PROCEDURE', - 'FIRST-SERVER', - 'FIRST-TAB-I', - 'FIRST-TAB-IT', - 'FIRST-TAB-ITE', - 'FIRST-TAB-ITEM', - 'FIT-LAST-COLUMN', - 'FIXED-ONLY', - 'FLAT-BUTTON', - 'FLOAT', - 'FOCUS', - 'FOCUSED-ROW', - 'FOCUSED-ROW-SELECTED', - 'FONT', - 'FONT-TABLE', - 'FOR', - 'FORCE-FILE', - 'FORE', - 'FOREG', - 'FOREGR', - 'FOREGRO', - 'FOREGROU', - 'FOREGROUN', - 'FOREGROUND', - 'FORM INPUT', - 'FORM', - 'FORM-LONG-INPUT', - 'FORMA', - 'FORMAT', - 'FORMATTE', - 'FORMATTED', - 'FORWARD', - 'FORWARDS', - 'FRAGMEN', - 'FRAGMENT', - 'FRAM', - 'FRAME', - 'FRAME-COL', - 'FRAME-DB', - 'FRAME-DOWN', - 'FRAME-FIELD', - 'FRAME-FILE', - 'FRAME-INDE', - 'FRAME-INDEX', - 'FRAME-LINE', - 'FRAME-NAME', - 'FRAME-ROW', - 'FRAME-SPA', - 'FRAME-SPAC', - 'FRAME-SPACI', - 'FRAME-SPACIN', - 'FRAME-SPACING', - 'FRAME-VAL', - 'FRAME-VALU', - 'FRAME-VALUE', - 'FRAME-X', - 'FRAME-Y', - 'FREQUENCY', - 'FROM', - 'FROM-C', - 'FROM-CH', - 'FROM-CHA', - 'FROM-CHAR', - 'FROM-CHARS', - 'FROM-CUR', - 'FROM-CURR', - 'FROM-CURRE', - 'FROM-CURREN', - 'FROM-CURRENT', - 'FROM-P', - 'FROM-PI', - 'FROM-PIX', - 'FROM-PIXE', - 'FROM-PIXEL', - 'FROM-PIXELS', - 'FULL-HEIGHT', - 'FULL-HEIGHT-', - 'FULL-HEIGHT-C', - 'FULL-HEIGHT-CH', - 'FULL-HEIGHT-CHA', - 'FULL-HEIGHT-CHAR', - 'FULL-HEIGHT-CHARS', - 'FULL-HEIGHT-P', - 'FULL-HEIGHT-PI', - 'FULL-HEIGHT-PIX', - 'FULL-HEIGHT-PIXE', - 'FULL-HEIGHT-PIXEL', - 'FULL-HEIGHT-PIXELS', - 'FULL-PATHN', - 'FULL-PATHNA', - 'FULL-PATHNAM', - 'FULL-PATHNAME', - 'FULL-WIDTH', - 'FULL-WIDTH-', - 'FULL-WIDTH-C', - 'FULL-WIDTH-CH', - 'FULL-WIDTH-CHA', - 'FULL-WIDTH-CHAR', - 'FULL-WIDTH-CHARS', - 'FULL-WIDTH-P', - 'FULL-WIDTH-PI', - 'FULL-WIDTH-PIX', - 'FULL-WIDTH-PIXE', - 'FULL-WIDTH-PIXEL', - 'FULL-WIDTH-PIXELS', - 'FUNCTION', - 'FUNCTION-CALL-TYPE', - 'GATEWAY', - 'GATEWAYS', - 'GE', - 'GENERATE-MD5', - 'GENERATE-PBE-KEY', - 'GENERATE-PBE-SALT', - 'GENERATE-RANDOM-KEY', - 'GENERATE-UUID', - 'GET', - 'GET-ATTR-CALL-TYPE', - 'GET-ATTRIBUTE-NODE', - 'GET-BINARY-DATA', - 'GET-BLUE', - 'GET-BLUE-', - 'GET-BLUE-V', - 'GET-BLUE-VA', - 'GET-BLUE-VAL', - 'GET-BLUE-VALU', - 'GET-BLUE-VALUE', - 'GET-BROWSE-COLUMN', - 'GET-BUFFER-HANDLE', - 'GET-BYTE', - 'GET-CALLBACK-PROC-CONTEXT', - 'GET-CALLBACK-PROC-NAME', - 'GET-CGI-LIST', - 'GET-CGI-LONG-VALUE', - 'GET-CGI-VALUE', - 'GET-CLASS', - 'GET-CODEPAGES', - 'GET-COLLATIONS', - 'GET-CONFIG-VALUE', - 'GET-CURRENT', - 'GET-DOUBLE', - 'GET-DROPPED-FILE', - 'GET-DYNAMIC', - 'GET-ERROR-COLUMN', - 'GET-ERROR-ROW', - 'GET-FILE', - 'GET-FILE-NAME', - 'GET-FILE-OFFSE', - 'GET-FILE-OFFSET', - 'GET-FIRST', - 'GET-FLOAT', - 'GET-GREEN', - 'GET-GREEN-', - 'GET-GREEN-V', - 'GET-GREEN-VA', - 'GET-GREEN-VAL', - 'GET-GREEN-VALU', - 'GET-GREEN-VALUE', - 'GET-INDEX-BY-NAMESPACE-NAME', - 'GET-INDEX-BY-QNAME', - 'GET-INT64', - 'GET-ITERATION', - 'GET-KEY-VAL', - 'GET-KEY-VALU', - 'GET-KEY-VALUE', - 'GET-LAST', - 'GET-LOCALNAME-BY-INDEX', - 'GET-LONG', - 'GET-MESSAGE', - 'GET-NEXT', - 'GET-NUMBER', - 'GET-POINTER-VALUE', - 'GET-PREV', - 'GET-PRINTERS', - 'GET-PROPERTY', - 'GET-QNAME-BY-INDEX', - 'GET-RED', - 'GET-RED-', - 'GET-RED-V', - 'GET-RED-VA', - 'GET-RED-VAL', - 'GET-RED-VALU', - 'GET-RED-VALUE', - 'GET-REPOSITIONED-ROW', - 'GET-RGB-VALUE', - 'GET-SELECTED', - 'GET-SELECTED-', - 'GET-SELECTED-W', - 'GET-SELECTED-WI', - 'GET-SELECTED-WID', - 'GET-SELECTED-WIDG', - 'GET-SELECTED-WIDGE', - 'GET-SELECTED-WIDGET', - 'GET-SHORT', - 'GET-SIGNATURE', - 'GET-SIZE', - 'GET-STRING', - 'GET-TAB-ITEM', - 'GET-TEXT-HEIGHT', - 'GET-TEXT-HEIGHT-', - 'GET-TEXT-HEIGHT-C', - 'GET-TEXT-HEIGHT-CH', - 'GET-TEXT-HEIGHT-CHA', - 'GET-TEXT-HEIGHT-CHAR', - 'GET-TEXT-HEIGHT-CHARS', - 'GET-TEXT-HEIGHT-P', - 'GET-TEXT-HEIGHT-PI', - 'GET-TEXT-HEIGHT-PIX', - 'GET-TEXT-HEIGHT-PIXE', - 'GET-TEXT-HEIGHT-PIXEL', - 'GET-TEXT-HEIGHT-PIXELS', - 'GET-TEXT-WIDTH', - 'GET-TEXT-WIDTH-', - 'GET-TEXT-WIDTH-C', - 'GET-TEXT-WIDTH-CH', - 'GET-TEXT-WIDTH-CHA', - 'GET-TEXT-WIDTH-CHAR', - 'GET-TEXT-WIDTH-CHARS', - 'GET-TEXT-WIDTH-P', - 'GET-TEXT-WIDTH-PI', - 'GET-TEXT-WIDTH-PIX', - 'GET-TEXT-WIDTH-PIXE', - 'GET-TEXT-WIDTH-PIXEL', - 'GET-TEXT-WIDTH-PIXELS', - 'GET-TYPE-BY-INDEX', - 'GET-TYPE-BY-NAMESPACE-NAME', - 'GET-TYPE-BY-QNAME', - 'GET-UNSIGNED-LONG', - 'GET-UNSIGNED-SHORT', - 'GET-URI-BY-INDEX', - 'GET-VALUE-BY-INDEX', - 'GET-VALUE-BY-NAMESPACE-NAME', - 'GET-VALUE-BY-QNAME', - 'GET-WAIT-STATE', - 'GETBYTE', - 'GLOBAL', - 'GO-ON', - 'GO-PEND', - 'GO-PENDI', - 'GO-PENDIN', - 'GO-PENDING', - 'GRANT', - 'GRAPHIC-E', - 'GRAPHIC-ED', - 'GRAPHIC-EDG', - 'GRAPHIC-EDGE', - 'GRID-FACTOR-H', - 'GRID-FACTOR-HO', - 'GRID-FACTOR-HOR', - 'GRID-FACTOR-HORI', - 'GRID-FACTOR-HORIZ', - 'GRID-FACTOR-HORIZO', - 'GRID-FACTOR-HORIZON', - 'GRID-FACTOR-HORIZONT', - 'GRID-FACTOR-HORIZONTA', - 'GRID-FACTOR-HORIZONTAL', - 'GRID-FACTOR-V', - 'GRID-FACTOR-VE', - 'GRID-FACTOR-VER', - 'GRID-FACTOR-VERT', - 'GRID-FACTOR-VERTI', - 'GRID-FACTOR-VERTIC', - 'GRID-FACTOR-VERTICA', - 'GRID-FACTOR-VERTICAL', - 'GRID-SNAP', - 'GRID-UNIT-HEIGHT', - 'GRID-UNIT-HEIGHT-', - 'GRID-UNIT-HEIGHT-C', - 'GRID-UNIT-HEIGHT-CH', - 'GRID-UNIT-HEIGHT-CHA', - 'GRID-UNIT-HEIGHT-CHARS', - 'GRID-UNIT-HEIGHT-P', - 'GRID-UNIT-HEIGHT-PI', - 'GRID-UNIT-HEIGHT-PIX', - 'GRID-UNIT-HEIGHT-PIXE', - 'GRID-UNIT-HEIGHT-PIXEL', - 'GRID-UNIT-HEIGHT-PIXELS', - 'GRID-UNIT-WIDTH', - 'GRID-UNIT-WIDTH-', - 'GRID-UNIT-WIDTH-C', - 'GRID-UNIT-WIDTH-CH', - 'GRID-UNIT-WIDTH-CHA', - 'GRID-UNIT-WIDTH-CHAR', - 'GRID-UNIT-WIDTH-CHARS', - 'GRID-UNIT-WIDTH-P', - 'GRID-UNIT-WIDTH-PI', - 'GRID-UNIT-WIDTH-PIX', - 'GRID-UNIT-WIDTH-PIXE', - 'GRID-UNIT-WIDTH-PIXEL', - 'GRID-UNIT-WIDTH-PIXELS', - 'GRID-VISIBLE', - 'GROUP', - 'GT', - 'GUID', - 'HANDLE', - 'HANDLER', - 'HAS-RECORDS', - 'HAVING', - 'HEADER', - 'HEIGHT', - 'HEIGHT-', - 'HEIGHT-C', - 'HEIGHT-CH', - 'HEIGHT-CHA', - 'HEIGHT-CHAR', - 'HEIGHT-CHARS', - 'HEIGHT-P', - 'HEIGHT-PI', - 'HEIGHT-PIX', - 'HEIGHT-PIXE', - 'HEIGHT-PIXEL', - 'HEIGHT-PIXELS', - 'HELP', - 'HEX-DECODE', - 'HEX-ENCODE', - 'HIDDEN', - 'HIDE', - 'HORI', - 'HORIZ', - 'HORIZO', - 'HORIZON', - 'HORIZONT', - 'HORIZONTA', - 'HORIZONTAL', - 'HOST-BYTE-ORDER', - 'HTML-CHARSET', - 'HTML-END-OF-LINE', - 'HTML-END-OF-PAGE', - 'HTML-FRAME-BEGIN', - 'HTML-FRAME-END', - 'HTML-HEADER-BEGIN', - 'HTML-HEADER-END', - 'HTML-TITLE-BEGIN', - 'HTML-TITLE-END', - 'HWND', - 'ICON', - 'IF', - 'IMAGE', - 'IMAGE-DOWN', - 'IMAGE-INSENSITIVE', - 'IMAGE-SIZE', - 'IMAGE-SIZE-C', - 'IMAGE-SIZE-CH', - 'IMAGE-SIZE-CHA', - 'IMAGE-SIZE-CHAR', - 'IMAGE-SIZE-CHARS', - 'IMAGE-SIZE-P', - 'IMAGE-SIZE-PI', - 'IMAGE-SIZE-PIX', - 'IMAGE-SIZE-PIXE', - 'IMAGE-SIZE-PIXEL', - 'IMAGE-SIZE-PIXELS', - 'IMAGE-UP', - 'IMMEDIATE-DISPLAY', - 'IMPLEMENTS', - 'IMPORT', - 'IMPORT-PRINCIPAL', - 'IN', - 'IN-HANDLE', - 'INCREMENT-EXCLUSIVE-ID', - 'INDEX', - 'INDEX-HINT', - 'INDEX-INFORMATION', - 'INDEXED-REPOSITION', - 'INDICATOR', - 'INFO', - 'INFOR', - 'INFORM', - 'INFORMA', - 'INFORMAT', - 'INFORMATI', - 'INFORMATIO', - 'INFORMATION', - 'INHERIT-BGC', - 'INHERIT-BGCO', - 'INHERIT-BGCOL', - 'INHERIT-BGCOLO', - 'INHERIT-BGCOLOR', - 'INHERIT-FGC', - 'INHERIT-FGCO', - 'INHERIT-FGCOL', - 'INHERIT-FGCOLO', - 'INHERIT-FGCOLOR', - 'INHERITS', - 'INIT', - 'INITI', - 'INITIA', - 'INITIAL', - 'INITIAL-DIR', - 'INITIAL-FILTER', - 'INITIALIZE-DOCUMENT-TYPE', - 'INITIATE', - 'INNER-CHARS', - 'INNER-LINES', - 'INPUT', - 'INPUT-O', - 'INPUT-OU', - 'INPUT-OUT', - 'INPUT-OUTP', - 'INPUT-OUTPU', - 'INPUT-OUTPUT', - 'INPUT-VALUE', - 'INSERT', - 'INSERT-ATTRIBUTE', - 'INSERT-B', - 'INSERT-BA', - 'INSERT-BAC', - 'INSERT-BACK', - 'INSERT-BACKT', - 'INSERT-BACKTA', - 'INSERT-BACKTAB', - 'INSERT-FILE', - 'INSERT-ROW', - 'INSERT-STRING', - 'INSERT-T', - 'INSERT-TA', - 'INSERT-TAB', - 'INT64', - 'INT', - 'INTEGER', - 'INTERFACE', - 'INTERNAL-ENTRIES', - 'INTO', - 'INVOKE', - 'IS', - 'IS-ATTR', - 'IS-ATTR-', - 'IS-ATTR-S', - 'IS-ATTR-SP', - 'IS-ATTR-SPA', - 'IS-ATTR-SPAC', - 'IS-ATTR-SPACE', - 'IS-CLASS', - 'IS-JSON', - 'IS-LEAD-BYTE', - 'IS-OPEN', - 'IS-PARAMETER-SET', - 'IS-PARTITIONED', - 'IS-ROW-SELECTED', - 'IS-SELECTED', - 'IS-XML', - 'ITEM', - 'ITEMS-PER-ROW', - 'JOIN', - 'JOIN-BY-SQLDB', - 'KBLABEL', - 'KEEP-CONNECTION-OPEN', - 'KEEP-FRAME-Z', - 'KEEP-FRAME-Z-', - 'KEEP-FRAME-Z-O', - 'KEEP-FRAME-Z-OR', - 'KEEP-FRAME-Z-ORD', - 'KEEP-FRAME-Z-ORDE', - 'KEEP-FRAME-Z-ORDER', - 'KEEP-MESSAGES', - 'KEEP-SECURITY-CACHE', - 'KEEP-TAB-ORDER', - 'KEY', - 'KEY-CODE', - 'KEY-FUNC', - 'KEY-FUNCT', - 'KEY-FUNCTI', - 'KEY-FUNCTIO', - 'KEY-FUNCTION', - 'KEY-LABEL', - 'KEYCODE', - 'KEYFUNC', - 'KEYFUNCT', - 'KEYFUNCTI', - 'KEYFUNCTIO', - 'KEYFUNCTION', - 'KEYLABEL', - 'KEYS', - 'KEYWORD', - 'KEYWORD-ALL', - 'LABEL', - 'LABEL-BGC', - 'LABEL-BGCO', - 'LABEL-BGCOL', - 'LABEL-BGCOLO', - 'LABEL-BGCOLOR', - 'LABEL-DC', - 'LABEL-DCO', - 'LABEL-DCOL', - 'LABEL-DCOLO', - 'LABEL-DCOLOR', - 'LABEL-FGC', - 'LABEL-FGCO', - 'LABEL-FGCOL', - 'LABEL-FGCOLO', - 'LABEL-FGCOLOR', - 'LABEL-FONT', - 'LABEL-PFC', - 'LABEL-PFCO', - 'LABEL-PFCOL', - 'LABEL-PFCOLO', - 'LABEL-PFCOLOR', - 'LABELS', - 'LABELS-HAVE-COLONS', - 'LANDSCAPE', - 'LANGUAGE', - 'LANGUAGES', - 'LARGE', - 'LARGE-TO-SMALL', - 'LAST', - 'LAST-ASYNCH-REQUEST', - 'LAST-BATCH', - 'LAST-CHILD', - 'LAST-EVEN', - 'LAST-EVENT', - 'LAST-FORM', - 'LAST-KEY', - 'LAST-OBJECT', - 'LAST-OF', - 'LAST-PROCE', - 'LAST-PROCED', - 'LAST-PROCEDU', - 'LAST-PROCEDUR', - 'LAST-PROCEDURE', - 'LAST-SERVER', - 'LAST-TAB-I', - 'LAST-TAB-IT', - 'LAST-TAB-ITE', - 'LAST-TAB-ITEM', - 'LASTKEY', - 'LC', - 'LDBNAME', - 'LE', - 'LEAVE', - 'LEFT-ALIGN', - 'LEFT-ALIGNE', - 'LEFT-ALIGNED', - 'LEFT-TRIM', - 'LENGTH', - 'LIBRARY', - 'LIKE', - 'LIKE-SEQUENTIAL', - 'LINE', - 'LINE-COUNT', - 'LINE-COUNTE', - 'LINE-COUNTER', - 'LIST-EVENTS', - 'LIST-ITEM-PAIRS', - 'LIST-ITEMS', - 'LIST-PROPERTY-NAMES', - 'LIST-QUERY-ATTRS', - 'LIST-SET-ATTRS', - 'LIST-WIDGETS', - 'LISTI', - 'LISTIN', - 'LISTING', - 'LITERAL-QUESTION', - 'LITTLE-ENDIAN', - 'LOAD', - 'LOAD-DOMAINS', - 'LOAD-ICON', - 'LOAD-IMAGE', - 'LOAD-IMAGE-DOWN', - 'LOAD-IMAGE-INSENSITIVE', - 'LOAD-IMAGE-UP', - 'LOAD-MOUSE-P', - 'LOAD-MOUSE-PO', - 'LOAD-MOUSE-POI', - 'LOAD-MOUSE-POIN', - 'LOAD-MOUSE-POINT', - 'LOAD-MOUSE-POINTE', - 'LOAD-MOUSE-POINTER', - 'LOAD-PICTURE', - 'LOAD-SMALL-ICON', - 'LOCAL-NAME', - 'LOCAL-VERSION-INFO', - 'LOCATOR-COLUMN-NUMBER', - 'LOCATOR-LINE-NUMBER', - 'LOCATOR-PUBLIC-ID', - 'LOCATOR-SYSTEM-ID', - 'LOCATOR-TYPE', - 'LOCK-REGISTRATION', - 'LOCKED', - 'LOG', - 'LOG-AUDIT-EVENT', - 'LOG-MANAGER', - 'LOGICAL', - 'LOGIN-EXPIRATION-TIMESTAMP', - 'LOGIN-HOST', - 'LOGIN-STATE', - 'LOGOUT', - 'LONGCHAR', - 'LOOKAHEAD', - 'LOOKUP', - 'LT', - 'MACHINE-CLASS', - 'MANDATORY', - 'MANUAL-HIGHLIGHT', - 'MAP', - 'MARGIN-EXTRA', - 'MARGIN-HEIGHT', - 'MARGIN-HEIGHT-', - 'MARGIN-HEIGHT-C', - 'MARGIN-HEIGHT-CH', - 'MARGIN-HEIGHT-CHA', - 'MARGIN-HEIGHT-CHAR', - 'MARGIN-HEIGHT-CHARS', - 'MARGIN-HEIGHT-P', - 'MARGIN-HEIGHT-PI', - 'MARGIN-HEIGHT-PIX', - 'MARGIN-HEIGHT-PIXE', - 'MARGIN-HEIGHT-PIXEL', - 'MARGIN-HEIGHT-PIXELS', - 'MARGIN-WIDTH', - 'MARGIN-WIDTH-', - 'MARGIN-WIDTH-C', - 'MARGIN-WIDTH-CH', - 'MARGIN-WIDTH-CHA', - 'MARGIN-WIDTH-CHAR', - 'MARGIN-WIDTH-CHARS', - 'MARGIN-WIDTH-P', - 'MARGIN-WIDTH-PI', - 'MARGIN-WIDTH-PIX', - 'MARGIN-WIDTH-PIXE', - 'MARGIN-WIDTH-PIXEL', - 'MARGIN-WIDTH-PIXELS', - 'MARK-NEW', - 'MARK-ROW-STATE', - 'MATCHES', - 'MAX', - 'MAX-BUTTON', - 'MAX-CHARS', - 'MAX-DATA-GUESS', - 'MAX-HEIGHT', - 'MAX-HEIGHT-C', - 'MAX-HEIGHT-CH', - 'MAX-HEIGHT-CHA', - 'MAX-HEIGHT-CHAR', - 'MAX-HEIGHT-CHARS', - 'MAX-HEIGHT-P', - 'MAX-HEIGHT-PI', - 'MAX-HEIGHT-PIX', - 'MAX-HEIGHT-PIXE', - 'MAX-HEIGHT-PIXEL', - 'MAX-HEIGHT-PIXELS', - 'MAX-ROWS', - 'MAX-SIZE', - 'MAX-VAL', - 'MAX-VALU', - 'MAX-VALUE', - 'MAX-WIDTH', - 'MAX-WIDTH-', - 'MAX-WIDTH-C', - 'MAX-WIDTH-CH', - 'MAX-WIDTH-CHA', - 'MAX-WIDTH-CHAR', - 'MAX-WIDTH-CHARS', - 'MAX-WIDTH-P', - 'MAX-WIDTH-PI', - 'MAX-WIDTH-PIX', - 'MAX-WIDTH-PIXE', - 'MAX-WIDTH-PIXEL', - 'MAX-WIDTH-PIXELS', - 'MAXI', - 'MAXIM', - 'MAXIMIZE', - 'MAXIMU', - 'MAXIMUM', - 'MAXIMUM-LEVEL', - 'MD5-DIGEST', - 'MEMBER', - 'MEMPTR-TO-NODE-VALUE', - 'MENU', - 'MENU-BAR', - 'MENU-ITEM', - 'MENU-K', - 'MENU-KE', - 'MENU-KEY', - 'MENU-M', - 'MENU-MO', - 'MENU-MOU', - 'MENU-MOUS', - 'MENU-MOUSE', - 'MENUBAR', - 'MERGE-BY-FIELD', - 'MESSAGE', - 'MESSAGE-AREA', - 'MESSAGE-AREA-FONT', - 'MESSAGE-LINES', - 'METHOD', - 'MIN', - 'MIN-BUTTON', - 'MIN-COLUMN-WIDTH-C', - 'MIN-COLUMN-WIDTH-CH', - 'MIN-COLUMN-WIDTH-CHA', - 'MIN-COLUMN-WIDTH-CHAR', - 'MIN-COLUMN-WIDTH-CHARS', - 'MIN-COLUMN-WIDTH-P', - 'MIN-COLUMN-WIDTH-PI', - 'MIN-COLUMN-WIDTH-PIX', - 'MIN-COLUMN-WIDTH-PIXE', - 'MIN-COLUMN-WIDTH-PIXEL', - 'MIN-COLUMN-WIDTH-PIXELS', - 'MIN-HEIGHT', - 'MIN-HEIGHT-', - 'MIN-HEIGHT-C', - 'MIN-HEIGHT-CH', - 'MIN-HEIGHT-CHA', - 'MIN-HEIGHT-CHAR', - 'MIN-HEIGHT-CHARS', - 'MIN-HEIGHT-P', - 'MIN-HEIGHT-PI', - 'MIN-HEIGHT-PIX', - 'MIN-HEIGHT-PIXE', - 'MIN-HEIGHT-PIXEL', - 'MIN-HEIGHT-PIXELS', - 'MIN-SIZE', - 'MIN-VAL', - 'MIN-VALU', - 'MIN-VALUE', - 'MIN-WIDTH', - 'MIN-WIDTH-', - 'MIN-WIDTH-C', - 'MIN-WIDTH-CH', - 'MIN-WIDTH-CHA', - 'MIN-WIDTH-CHAR', - 'MIN-WIDTH-CHARS', - 'MIN-WIDTH-P', - 'MIN-WIDTH-PI', - 'MIN-WIDTH-PIX', - 'MIN-WIDTH-PIXE', - 'MIN-WIDTH-PIXEL', - 'MIN-WIDTH-PIXELS', - 'MINI', - 'MINIM', - 'MINIMU', - 'MINIMUM', - 'MOD', - 'MODIFIED', - 'MODU', - 'MODUL', - 'MODULO', - 'MONTH', - 'MOUSE', - 'MOUSE-P', - 'MOUSE-PO', - 'MOUSE-POI', - 'MOUSE-POIN', - 'MOUSE-POINT', - 'MOUSE-POINTE', - 'MOUSE-POINTER', - 'MOVABLE', - 'MOVE-AFTER', - 'MOVE-AFTER-', - 'MOVE-AFTER-T', - 'MOVE-AFTER-TA', - 'MOVE-AFTER-TAB', - 'MOVE-AFTER-TAB-', - 'MOVE-AFTER-TAB-I', - 'MOVE-AFTER-TAB-IT', - 'MOVE-AFTER-TAB-ITE', - 'MOVE-AFTER-TAB-ITEM', - 'MOVE-BEFOR', - 'MOVE-BEFORE', - 'MOVE-BEFORE-', - 'MOVE-BEFORE-T', - 'MOVE-BEFORE-TA', - 'MOVE-BEFORE-TAB', - 'MOVE-BEFORE-TAB-', - 'MOVE-BEFORE-TAB-I', - 'MOVE-BEFORE-TAB-IT', - 'MOVE-BEFORE-TAB-ITE', - 'MOVE-BEFORE-TAB-ITEM', - 'MOVE-COL', - 'MOVE-COLU', - 'MOVE-COLUM', - 'MOVE-COLUMN', - 'MOVE-TO-B', - 'MOVE-TO-BO', - 'MOVE-TO-BOT', - 'MOVE-TO-BOTT', - 'MOVE-TO-BOTTO', - 'MOVE-TO-BOTTOM', - 'MOVE-TO-EOF', - 'MOVE-TO-T', - 'MOVE-TO-TO', - 'MOVE-TO-TOP', - 'MPE', - 'MTIME', - 'MULTI-COMPILE', - 'MULTIPLE', - 'MULTIPLE-KEY', - 'MULTITASKING-INTERVAL', - 'MUST-EXIST', - 'NAME', - 'NAMESPACE-PREFIX', - 'NAMESPACE-URI', - 'NATIVE', - 'NE', - 'NEEDS-APPSERVER-PROMPT', - 'NEEDS-PROMPT', - 'NEW', - 'NEW-INSTANCE', - 'NEW-ROW', - 'NEXT', - 'NEXT-COLUMN', - 'NEXT-PROMPT', - 'NEXT-ROWID', - 'NEXT-SIBLING', - 'NEXT-TAB-I', - 'NEXT-TAB-IT', - 'NEXT-TAB-ITE', - 'NEXT-TAB-ITEM', - 'NEXT-VALUE', - 'NO', - 'NO-APPLY', - 'NO-ARRAY-MESSAGE', - 'NO-ASSIGN', - 'NO-ATTR', - 'NO-ATTR-', - 'NO-ATTR-L', - 'NO-ATTR-LI', - 'NO-ATTR-LIS', - 'NO-ATTR-LIST', - 'NO-ATTR-S', - 'NO-ATTR-SP', - 'NO-ATTR-SPA', - 'NO-ATTR-SPAC', - 'NO-ATTR-SPACE', - 'NO-AUTO-VALIDATE', - 'NO-BIND-WHERE', - 'NO-BOX', - 'NO-CONSOLE', - 'NO-CONVERT', - 'NO-CONVERT-3D-COLORS', - 'NO-CURRENT-VALUE', - 'NO-DEBUG', - 'NO-DRAG', - 'NO-ECHO', - 'NO-EMPTY-SPACE', - 'NO-ERROR', - 'NO-F', - 'NO-FI', - 'NO-FIL', - 'NO-FILL', - 'NO-FOCUS', - 'NO-HELP', - 'NO-HIDE', - 'NO-INDEX-HINT', - 'NO-INHERIT-BGC', - 'NO-INHERIT-BGCO', - 'NO-INHERIT-BGCOLOR', - 'NO-INHERIT-FGC', - 'NO-INHERIT-FGCO', - 'NO-INHERIT-FGCOL', - 'NO-INHERIT-FGCOLO', - 'NO-INHERIT-FGCOLOR', - 'NO-JOIN-BY-SQLDB', - 'NO-LABE', - 'NO-LABELS', - 'NO-LOBS', - 'NO-LOCK', - 'NO-LOOKAHEAD', - 'NO-MAP', - 'NO-MES', - 'NO-MESS', - 'NO-MESSA', - 'NO-MESSAG', - 'NO-MESSAGE', - 'NO-PAUSE', - 'NO-PREFE', - 'NO-PREFET', - 'NO-PREFETC', - 'NO-PREFETCH', - 'NO-ROW-MARKERS', - 'NO-SCROLLBAR-VERTICAL', - 'NO-SEPARATE-CONNECTION', - 'NO-SEPARATORS', - 'NO-TAB-STOP', - 'NO-UND', - 'NO-UNDE', - 'NO-UNDER', - 'NO-UNDERL', - 'NO-UNDERLI', - 'NO-UNDERLIN', - 'NO-UNDERLINE', - 'NO-UNDO', - 'NO-VAL', - 'NO-VALI', - 'NO-VALID', - 'NO-VALIDA', - 'NO-VALIDAT', - 'NO-VALIDATE', - 'NO-WAIT', - 'NO-WORD-WRAP', - 'NODE-VALUE-TO-MEMPTR', - 'NONAMESPACE-SCHEMA-LOCATION', - 'NONE', - 'NORMALIZE', - 'NOT', - 'NOT-ACTIVE', - 'NOW', - 'NULL', - 'NUM-ALI', - 'NUM-ALIA', - 'NUM-ALIAS', - 'NUM-ALIASE', - 'NUM-ALIASES', - 'NUM-BUFFERS', - 'NUM-BUT', - 'NUM-BUTT', - 'NUM-BUTTO', - 'NUM-BUTTON', - 'NUM-BUTTONS', - 'NUM-COL', - 'NUM-COLU', - 'NUM-COLUM', - 'NUM-COLUMN', - 'NUM-COLUMNS', - 'NUM-COPIES', - 'NUM-DBS', - 'NUM-DROPPED-FILES', - 'NUM-ENTRIES', - 'NUM-FIELDS', - 'NUM-FORMATS', - 'NUM-ITEMS', - 'NUM-ITERATIONS', - 'NUM-LINES', - 'NUM-LOCKED-COL', - 'NUM-LOCKED-COLU', - 'NUM-LOCKED-COLUM', - 'NUM-LOCKED-COLUMN', - 'NUM-LOCKED-COLUMNS', - 'NUM-MESSAGES', - 'NUM-PARAMETERS', - 'NUM-REFERENCES', - 'NUM-REPLACED', - 'NUM-RESULTS', - 'NUM-SELECTED', - 'NUM-SELECTED-', - 'NUM-SELECTED-ROWS', - 'NUM-SELECTED-W', - 'NUM-SELECTED-WI', - 'NUM-SELECTED-WID', - 'NUM-SELECTED-WIDG', - 'NUM-SELECTED-WIDGE', - 'NUM-SELECTED-WIDGET', - 'NUM-SELECTED-WIDGETS', - 'NUM-TABS', - 'NUM-TO-RETAIN', - 'NUM-VISIBLE-COLUMNS', - 'NUMERIC', - 'NUMERIC-F', - 'NUMERIC-FO', - 'NUMERIC-FOR', - 'NUMERIC-FORM', - 'NUMERIC-FORMA', - 'NUMERIC-FORMAT', - 'OCTET-LENGTH', - 'OF', - 'OFF', - 'OK', - 'OK-CANCEL', - 'OLD', - 'ON', - 'ON-FRAME', - 'ON-FRAME-', - 'ON-FRAME-B', - 'ON-FRAME-BO', - 'ON-FRAME-BOR', - 'ON-FRAME-BORD', - 'ON-FRAME-BORDE', - 'ON-FRAME-BORDER', - 'OPEN', - 'OPSYS', - 'OPTION', - 'OR', - 'ORDERED-JOIN', - 'ORDINAL', - 'OS-APPEND', - 'OS-COMMAND', - 'OS-COPY', - 'OS-CREATE-DIR', - 'OS-DELETE', - 'OS-DIR', - 'OS-DRIVE', - 'OS-DRIVES', - 'OS-ERROR', - 'OS-GETENV', - 'OS-RENAME', - 'OTHERWISE', - 'OUTPUT', - 'OVERLAY', - 'OVERRIDE', - 'OWNER', - 'PAGE', - 'PAGE-BOT', - 'PAGE-BOTT', - 'PAGE-BOTTO', - 'PAGE-BOTTOM', - 'PAGE-NUM', - 'PAGE-NUMB', - 'PAGE-NUMBE', - 'PAGE-NUMBER', - 'PAGE-SIZE', - 'PAGE-TOP', - 'PAGE-WID', - 'PAGE-WIDT', - 'PAGE-WIDTH', - 'PAGED', - 'PARAM', - 'PARAME', - 'PARAMET', - 'PARAMETE', - 'PARAMETER', - 'PARENT', - 'PARSE-STATUS', - 'PARTIAL-KEY', - 'PASCAL', - 'PASSWORD-FIELD', - 'PATHNAME', - 'PAUSE', - 'PBE-HASH-ALG', - 'PBE-HASH-ALGO', - 'PBE-HASH-ALGOR', - 'PBE-HASH-ALGORI', - 'PBE-HASH-ALGORIT', - 'PBE-HASH-ALGORITH', - 'PBE-HASH-ALGORITHM', - 'PBE-KEY-ROUNDS', - 'PDBNAME', - 'PERSIST', - 'PERSISTE', - 'PERSISTEN', - 'PERSISTENT', - 'PERSISTENT-CACHE-DISABLED', - 'PFC', - 'PFCO', - 'PFCOL', - 'PFCOLO', - 'PFCOLOR', - 'PIXELS', - 'PIXELS-PER-COL', - 'PIXELS-PER-COLU', - 'PIXELS-PER-COLUM', - 'PIXELS-PER-COLUMN', - 'PIXELS-PER-ROW', - 'POPUP-M', - 'POPUP-ME', - 'POPUP-MEN', - 'POPUP-MENU', - 'POPUP-O', - 'POPUP-ON', - 'POPUP-ONL', - 'POPUP-ONLY', - 'PORTRAIT', - 'POSITION', - 'PRECISION', - 'PREFER-DATASET', - 'PREPARE-STRING', - 'PREPARED', - 'PREPROC', - 'PREPROCE', - 'PREPROCES', - 'PREPROCESS', - 'PRESEL', - 'PRESELE', - 'PRESELEC', - 'PRESELECT', - 'PREV', - 'PREV-COLUMN', - 'PREV-SIBLING', - 'PREV-TAB-I', - 'PREV-TAB-IT', - 'PREV-TAB-ITE', - 'PREV-TAB-ITEM', - 'PRIMARY', - 'PRINTER', - 'PRINTER-CONTROL-HANDLE', - 'PRINTER-HDC', - 'PRINTER-NAME', - 'PRINTER-PORT', - 'PRINTER-SETUP', - 'PRIVATE', - 'PRIVATE-D', - 'PRIVATE-DA', - 'PRIVATE-DAT', - 'PRIVATE-DATA', - 'PRIVILEGES', - 'PROC-HA', - 'PROC-HAN', - 'PROC-HAND', - 'PROC-HANDL', - 'PROC-HANDLE', - 'PROC-ST', - 'PROC-STA', - 'PROC-STAT', - 'PROC-STATU', - 'PROC-STATUS', - 'PROC-TEXT', - 'PROC-TEXT-BUFFER', - 'PROCE', - 'PROCED', - 'PROCEDU', - 'PROCEDUR', - 'PROCEDURE', - 'PROCEDURE-CALL-TYPE', - 'PROCEDURE-TYPE', - 'PROCESS', - 'PROFILER', - 'PROGRAM-NAME', - 'PROGRESS', - 'PROGRESS-S', - 'PROGRESS-SO', - 'PROGRESS-SOU', - 'PROGRESS-SOUR', - 'PROGRESS-SOURC', - 'PROGRESS-SOURCE', - 'PROMPT', - 'PROMPT-F', - 'PROMPT-FO', - 'PROMPT-FOR', - 'PROMSGS', - 'PROPATH', - 'PROPERTY', - 'PROTECTED', - 'PROVERS', - 'PROVERSI', - 'PROVERSIO', - 'PROVERSION', - 'PROXY', - 'PROXY-PASSWORD', - 'PROXY-USERID', - 'PUBLIC', - 'PUBLIC-ID', - 'PUBLISH', - 'PUBLISHED-EVENTS', - 'PUT', - 'PUT-BYTE', - 'PUT-DOUBLE', - 'PUT-FLOAT', - 'PUT-INT64', - 'PUT-KEY-VAL', - 'PUT-KEY-VALU', - 'PUT-KEY-VALUE', - 'PUT-LONG', - 'PUT-SHORT', - 'PUT-STRING', - 'PUT-UNSIGNED-LONG', - 'PUTBYTE', - 'QUERY', - 'QUERY-CLOSE', - 'QUERY-OFF-END', - 'QUERY-OPEN', - 'QUERY-PREPARE', - 'QUERY-TUNING', - 'QUESTION', - 'QUIT', - 'QUOTER', - 'R-INDEX', - 'RADIO-BUTTONS', - 'RADIO-SET', - 'RANDOM', - 'RAW', - 'RAW-TRANSFER', - 'RCODE-INFO', - 'RCODE-INFOR', - 'RCODE-INFORM', - 'RCODE-INFORMA', - 'RCODE-INFORMAT', - 'RCODE-INFORMATI', - 'RCODE-INFORMATIO', - 'RCODE-INFORMATION', - 'READ-AVAILABLE', - 'READ-EXACT-NUM', - 'READ-FILE', - 'READ-JSON', - 'READ-ONLY', - 'READ-XML', - 'READ-XMLSCHEMA', - 'READKEY', - 'REAL', - 'RECID', - 'RECORD-LENGTH', - 'RECT', - 'RECTA', - 'RECTAN', - 'RECTANG', - 'RECTANGL', - 'RECTANGLE', - 'RECURSIVE', - 'REFERENCE-ONLY', - 'REFRESH', - 'REFRESH-AUDIT-POLICY', - 'REFRESHABLE', - 'REGISTER-DOMAIN', - 'RELEASE', - 'REMOTE', - 'REMOVE-EVENTS-PROCEDURE', - 'REMOVE-SUPER-PROCEDURE', - 'REPEAT', - 'REPLACE', - 'REPLACE-SELECTION-TEXT', - 'REPOSITION', - 'REPOSITION-BACKWARD', - 'REPOSITION-FORWARD', - 'REPOSITION-MODE', - 'REPOSITION-TO-ROW', - 'REPOSITION-TO-ROWID', - 'REQUEST', - 'REQUEST-INFO', - 'RESET', - 'RESIZA', - 'RESIZAB', - 'RESIZABL', - 'RESIZABLE', - 'RESIZE', - 'RESPONSE-INFO', - 'RESTART-ROW', - 'RESTART-ROWID', - 'RETAIN', - 'RETAIN-SHAPE', - 'RETRY', - 'RETRY-CANCEL', - 'RETURN', - 'RETURN-ALIGN', - 'RETURN-ALIGNE', - 'RETURN-INS', - 'RETURN-INSE', - 'RETURN-INSER', - 'RETURN-INSERT', - 'RETURN-INSERTE', - 'RETURN-INSERTED', - 'RETURN-TO-START-DI', - 'RETURN-TO-START-DIR', - 'RETURN-VAL', - 'RETURN-VALU', - 'RETURN-VALUE', - 'RETURN-VALUE-DATA-TYPE', - 'RETURNS', - 'REVERSE-FROM', - 'REVERT', - 'REVOKE', - 'RGB-VALUE', - 'RIGHT-ALIGNED', - 'RIGHT-TRIM', - 'ROLES', - 'ROUND', - 'ROUTINE-LEVEL', - 'ROW', - 'ROW-HEIGHT-CHARS', - 'ROW-HEIGHT-PIXELS', - 'ROW-MARKERS', - 'ROW-OF', - 'ROW-RESIZABLE', - 'ROWID', - 'RULE', - 'RUN', - 'RUN-PROCEDURE', - 'SAVE CACHE', - 'SAVE', - 'SAVE-AS', - 'SAVE-FILE', - 'SAX-COMPLE', - 'SAX-COMPLET', - 'SAX-COMPLETE', - 'SAX-PARSE', - 'SAX-PARSE-FIRST', - 'SAX-PARSE-NEXT', - 'SAX-PARSER-ERROR', - 'SAX-RUNNING', - 'SAX-UNINITIALIZED', - 'SAX-WRITE-BEGIN', - 'SAX-WRITE-COMPLETE', - 'SAX-WRITE-CONTENT', - 'SAX-WRITE-ELEMENT', - 'SAX-WRITE-ERROR', - 'SAX-WRITE-IDLE', - 'SAX-WRITE-TAG', - 'SAX-WRITER', - 'SCHEMA', - 'SCHEMA-LOCATION', - 'SCHEMA-MARSHAL', - 'SCHEMA-PATH', - 'SCREEN', - 'SCREEN-IO', - 'SCREEN-LINES', - 'SCREEN-VAL', - 'SCREEN-VALU', - 'SCREEN-VALUE', - 'SCROLL', - 'SCROLL-BARS', - 'SCROLL-DELTA', - 'SCROLL-OFFSET', - 'SCROLL-TO-CURRENT-ROW', - 'SCROLL-TO-I', - 'SCROLL-TO-IT', - 'SCROLL-TO-ITE', - 'SCROLL-TO-ITEM', - 'SCROLL-TO-SELECTED-ROW', - 'SCROLLABLE', - 'SCROLLBAR-H', - 'SCROLLBAR-HO', - 'SCROLLBAR-HOR', - 'SCROLLBAR-HORI', - 'SCROLLBAR-HORIZ', - 'SCROLLBAR-HORIZO', - 'SCROLLBAR-HORIZON', - 'SCROLLBAR-HORIZONT', - 'SCROLLBAR-HORIZONTA', - 'SCROLLBAR-HORIZONTAL', - 'SCROLLBAR-V', - 'SCROLLBAR-VE', - 'SCROLLBAR-VER', - 'SCROLLBAR-VERT', - 'SCROLLBAR-VERTI', - 'SCROLLBAR-VERTIC', - 'SCROLLBAR-VERTICA', - 'SCROLLBAR-VERTICAL', - 'SCROLLED-ROW-POS', - 'SCROLLED-ROW-POSI', - 'SCROLLED-ROW-POSIT', - 'SCROLLED-ROW-POSITI', - 'SCROLLED-ROW-POSITIO', - 'SCROLLED-ROW-POSITION', - 'SCROLLING', - 'SDBNAME', - 'SEAL', - 'SEAL-TIMESTAMP', - 'SEARCH', - 'SEARCH-SELF', - 'SEARCH-TARGET', - 'SECTION', - 'SECURITY-POLICY', - 'SEEK', - 'SELECT', - 'SELECT-ALL', - 'SELECT-FOCUSED-ROW', - 'SELECT-NEXT-ROW', - 'SELECT-PREV-ROW', - 'SELECT-ROW', - 'SELECTABLE', - 'SELECTED', - 'SELECTION', - 'SELECTION-END', - 'SELECTION-LIST', - 'SELECTION-START', - 'SELECTION-TEXT', - 'SELF', - 'SEND', - 'SEND-SQL-STATEMENT', - 'SENSITIVE', - 'SEPARATE-CONNECTION', - 'SEPARATOR-FGCOLOR', - 'SEPARATORS', - 'SERIALIZABLE', - 'SERIALIZE-HIDDEN', - 'SERIALIZE-NAME', - 'SERVER', - 'SERVER-CONNECTION-BOUND', - 'SERVER-CONNECTION-BOUND-REQUEST', - 'SERVER-CONNECTION-CONTEXT', - 'SERVER-CONNECTION-ID', - 'SERVER-OPERATING-MODE', - 'SESSION', - 'SESSION-ID', - 'SET', - 'SET-APPL-CONTEXT', - 'SET-ATTR-CALL-TYPE', - 'SET-ATTRIBUTE-NODE', - 'SET-BLUE', - 'SET-BLUE-', - 'SET-BLUE-V', - 'SET-BLUE-VA', - 'SET-BLUE-VAL', - 'SET-BLUE-VALU', - 'SET-BLUE-VALUE', - 'SET-BREAK', - 'SET-BUFFERS', - 'SET-CALLBACK', - 'SET-CLIENT', - 'SET-COMMIT', - 'SET-CONTENTS', - 'SET-CURRENT-VALUE', - 'SET-DB-CLIENT', - 'SET-DYNAMIC', - 'SET-EVENT-MANAGER-OPTION', - 'SET-GREEN', - 'SET-GREEN-', - 'SET-GREEN-V', - 'SET-GREEN-VA', - 'SET-GREEN-VAL', - 'SET-GREEN-VALU', - 'SET-GREEN-VALUE', - 'SET-INPUT-SOURCE', - 'SET-OPTION', - 'SET-OUTPUT-DESTINATION', - 'SET-PARAMETER', - 'SET-POINTER-VALUE', - 'SET-PROPERTY', - 'SET-RED', - 'SET-RED-', - 'SET-RED-V', - 'SET-RED-VA', - 'SET-RED-VAL', - 'SET-RED-VALU', - 'SET-RED-VALUE', - 'SET-REPOSITIONED-ROW', - 'SET-RGB-VALUE', - 'SET-ROLLBACK', - 'SET-SELECTION', - 'SET-SIZE', - 'SET-SORT-ARROW', - 'SET-WAIT-STATE', - 'SETUSER', - 'SETUSERI', - 'SETUSERID', - 'SHA1-DIGEST', - 'SHARE', - 'SHARE-', - 'SHARE-L', - 'SHARE-LO', - 'SHARE-LOC', - 'SHARE-LOCK', - 'SHARED', - 'SHOW-IN-TASKBAR', - 'SHOW-STAT', - 'SHOW-STATS', - 'SIDE-LAB', - 'SIDE-LABE', - 'SIDE-LABEL', - 'SIDE-LABEL-H', - 'SIDE-LABEL-HA', - 'SIDE-LABEL-HAN', - 'SIDE-LABEL-HAND', - 'SIDE-LABEL-HANDL', - 'SIDE-LABEL-HANDLE', - 'SIDE-LABELS', - 'SIGNATURE', - 'SILENT', - 'SIMPLE', - 'SINGLE', - 'SINGLE-RUN', - 'SINGLETON', - 'SIZE', - 'SIZE-C', - 'SIZE-CH', - 'SIZE-CHA', - 'SIZE-CHAR', - 'SIZE-CHARS', - 'SIZE-P', - 'SIZE-PI', - 'SIZE-PIX', - 'SIZE-PIXE', - 'SIZE-PIXEL', - 'SIZE-PIXELS', - 'SKIP', - 'SKIP-DELETED-RECORD', - 'SLIDER', - 'SMALL-ICON', - 'SMALL-TITLE', - 'SMALLINT', - 'SOME', - 'SORT', - 'SORT-ASCENDING', - 'SORT-NUMBER', - 'SOURCE', - 'SOURCE-PROCEDURE', - 'SPACE', - 'SQL', - 'SQRT', - 'SSL-SERVER-NAME', - 'STANDALONE', - 'START', - 'START-DOCUMENT', - 'START-ELEMENT', - 'START-MOVE', - 'START-RESIZE', - 'START-ROW-RESIZE', - 'STATE-DETAIL', - 'STATIC', - 'STATUS', - 'STATUS-AREA', - 'STATUS-AREA-FONT', - 'STDCALL', - 'STOP', - 'STOP-AFTER', - 'STOP-PARSING', - 'STOPPE', - 'STOPPED', - 'STORED-PROC', - 'STORED-PROCE', - 'STORED-PROCED', - 'STORED-PROCEDU', - 'STORED-PROCEDUR', - 'STORED-PROCEDURE', - 'STREAM', - 'STREAM-HANDLE', - 'STREAM-IO', - 'STRETCH-TO-FIT', - 'STRICT', - 'STRICT-ENTITY-RESOLUTION', - 'STRING', - 'STRING-VALUE', - 'STRING-XREF', - 'SUB-AVE', - 'SUB-AVER', - 'SUB-AVERA', - 'SUB-AVERAG', - 'SUB-AVERAGE', - 'SUB-COUNT', - 'SUB-MAXIMUM', - 'SUB-MENU', - 'SUB-MIN', - 'SUB-MINIMUM', - 'SUB-TOTAL', - 'SUBSCRIBE', - 'SUBST', - 'SUBSTI', - 'SUBSTIT', - 'SUBSTITU', - 'SUBSTITUT', - 'SUBSTITUTE', - 'SUBSTR', - 'SUBSTRI', - 'SUBSTRIN', - 'SUBSTRING', - 'SUBTYPE', - 'SUM', - 'SUM-MAX', - 'SUM-MAXI', - 'SUM-MAXIM', - 'SUM-MAXIMU', - 'SUPER', - 'SUPER-PROCEDURES', - 'SUPPRESS-NAMESPACE-PROCESSING', - 'SUPPRESS-W', - 'SUPPRESS-WA', - 'SUPPRESS-WAR', - 'SUPPRESS-WARN', - 'SUPPRESS-WARNI', - 'SUPPRESS-WARNIN', - 'SUPPRESS-WARNING', - 'SUPPRESS-WARNINGS', - 'SYMMETRIC-ENCRYPTION-ALGORITHM', - 'SYMMETRIC-ENCRYPTION-IV', - 'SYMMETRIC-ENCRYPTION-KEY', - 'SYMMETRIC-SUPPORT', - 'SYSTEM-ALERT', - 'SYSTEM-ALERT-', - 'SYSTEM-ALERT-B', - 'SYSTEM-ALERT-BO', - 'SYSTEM-ALERT-BOX', - 'SYSTEM-ALERT-BOXE', - 'SYSTEM-ALERT-BOXES', - 'SYSTEM-DIALOG', - 'SYSTEM-HELP', - 'SYSTEM-ID', - 'TAB-POSITION', - 'TAB-STOP', - 'TABLE', - 'TABLE-HANDLE', - 'TABLE-NUMBER', - 'TABLE-SCAN', - 'TARGET', - 'TARGET-PROCEDURE', - 'TEMP-DIR', - 'TEMP-DIRE', - 'TEMP-DIREC', - 'TEMP-DIRECT', - 'TEMP-DIRECTO', - 'TEMP-DIRECTOR', - 'TEMP-DIRECTORY', - 'TEMP-TABLE', - 'TEMP-TABLE-PREPARE', - 'TERM', - 'TERMI', - 'TERMIN', - 'TERMINA', - 'TERMINAL', - 'TERMINATE', - 'TEXT', - 'TEXT-CURSOR', - 'TEXT-SEG-GROW', - 'TEXT-SELECTED', - 'THEN', - 'THIS-OBJECT', - 'THIS-PROCEDURE', - 'THREAD-SAFE', - 'THREE-D', - 'THROUGH', - 'THROW', - 'THRU', - 'TIC-MARKS', - 'TIME', - 'TIME-SOURCE', - 'TITLE', - 'TITLE-BGC', - 'TITLE-BGCO', - 'TITLE-BGCOL', - 'TITLE-BGCOLO', - 'TITLE-BGCOLOR', - 'TITLE-DC', - 'TITLE-DCO', - 'TITLE-DCOL', - 'TITLE-DCOLO', - 'TITLE-DCOLOR', - 'TITLE-FGC', - 'TITLE-FGCO', - 'TITLE-FGCOL', - 'TITLE-FGCOLO', - 'TITLE-FGCOLOR', - 'TITLE-FO', - 'TITLE-FON', - 'TITLE-FONT', - 'TO', - 'TO-ROWID', - 'TODAY', - 'TOGGLE-BOX', - 'TOOLTIP', - 'TOOLTIPS', - 'TOP-NAV-QUERY', - 'TOP-ONLY', - 'TOPIC', - 'TOTAL', - 'TRAILING', - 'TRANS', - 'TRANS-INIT-PROCEDURE', - 'TRANSACTION', - 'TRANSACTION-MODE', - 'TRANSPARENT', - 'TRIGGER', - 'TRIGGERS', - 'TRIM', - 'TRUE', - 'TRUNC', - 'TRUNCA', - 'TRUNCAT', - 'TRUNCATE', - 'TYPE', - 'TYPE-OF', - 'UNBOX', - 'UNBUFF', - 'UNBUFFE', - 'UNBUFFER', - 'UNBUFFERE', - 'UNBUFFERED', - 'UNDERL', - 'UNDERLI', - 'UNDERLIN', - 'UNDERLINE', - 'UNDO', - 'UNFORM', - 'UNFORMA', - 'UNFORMAT', - 'UNFORMATT', - 'UNFORMATTE', - 'UNFORMATTED', - 'UNION', - 'UNIQUE', - 'UNIQUE-ID', - 'UNIQUE-MATCH', - 'UNIX', - 'UNLESS-HIDDEN', - 'UNLOAD', - 'UNSIGNED-LONG', - 'UNSUBSCRIBE', - 'UP', - 'UPDATE', - 'UPDATE-ATTRIBUTE', - 'URL', - 'URL-DECODE', - 'URL-ENCODE', - 'URL-PASSWORD', - 'URL-USERID', - 'USE', - 'USE-DICT-EXPS', - 'USE-FILENAME', - 'USE-INDEX', - 'USE-REVVIDEO', - 'USE-TEXT', - 'USE-UNDERLINE', - 'USE-WIDGET-POOL', - 'USER', - 'USER-ID', - 'USERID', - 'USING', - 'V6DISPLAY', - 'V6FRAME', - 'VALID-EVENT', - 'VALID-HANDLE', - 'VALID-OBJECT', - 'VALIDATE', - 'VALIDATE-EXPRESSION', - 'VALIDATE-MESSAGE', - 'VALIDATE-SEAL', - 'VALIDATION-ENABLED', - 'VALUE', - 'VALUE-CHANGED', - 'VALUES', - 'VAR', - 'VARI', - 'VARIA', - 'VARIAB', - 'VARIABL', - 'VARIABLE', - 'VERBOSE', - 'VERSION', - 'VERT', - 'VERTI', - 'VERTIC', - 'VERTICA', - 'VERTICAL', - 'VIEW', - 'VIEW-AS', - 'VIEW-FIRST-COLUMN-ON-REOPEN', - 'VIRTUAL-HEIGHT', - 'VIRTUAL-HEIGHT-', - 'VIRTUAL-HEIGHT-C', - 'VIRTUAL-HEIGHT-CH', - 'VIRTUAL-HEIGHT-CHA', - 'VIRTUAL-HEIGHT-CHAR', - 'VIRTUAL-HEIGHT-CHARS', - 'VIRTUAL-HEIGHT-P', - 'VIRTUAL-HEIGHT-PI', - 'VIRTUAL-HEIGHT-PIX', - 'VIRTUAL-HEIGHT-PIXE', - 'VIRTUAL-HEIGHT-PIXEL', - 'VIRTUAL-HEIGHT-PIXELS', - 'VIRTUAL-WIDTH', - 'VIRTUAL-WIDTH-', - 'VIRTUAL-WIDTH-C', - 'VIRTUAL-WIDTH-CH', - 'VIRTUAL-WIDTH-CHA', - 'VIRTUAL-WIDTH-CHAR', - 'VIRTUAL-WIDTH-CHARS', - 'VIRTUAL-WIDTH-P', - 'VIRTUAL-WIDTH-PI', - 'VIRTUAL-WIDTH-PIX', - 'VIRTUAL-WIDTH-PIXE', - 'VIRTUAL-WIDTH-PIXEL', - 'VIRTUAL-WIDTH-PIXELS', - 'VISIBLE', - 'VOID', - 'WAIT', - 'WAIT-FOR', - 'WARNING', - 'WEB-CONTEXT', - 'WEEKDAY', - 'WHEN', - 'WHERE', - 'WHILE', - 'WIDGET', - 'WIDGET-E', - 'WIDGET-EN', - 'WIDGET-ENT', - 'WIDGET-ENTE', - 'WIDGET-ENTER', - 'WIDGET-ID', - 'WIDGET-L', - 'WIDGET-LE', - 'WIDGET-LEA', - 'WIDGET-LEAV', - 'WIDGET-LEAVE', - 'WIDGET-POOL', - 'WIDTH', - 'WIDTH-', - 'WIDTH-C', - 'WIDTH-CH', - 'WIDTH-CHA', - 'WIDTH-CHAR', - 'WIDTH-CHARS', - 'WIDTH-P', - 'WIDTH-PI', - 'WIDTH-PIX', - 'WIDTH-PIXE', - 'WIDTH-PIXEL', - 'WIDTH-PIXELS', - 'WINDOW', - 'WINDOW-MAXIM', - 'WINDOW-MAXIMI', - 'WINDOW-MAXIMIZ', - 'WINDOW-MAXIMIZE', - 'WINDOW-MAXIMIZED', - 'WINDOW-MINIM', - 'WINDOW-MINIMI', - 'WINDOW-MINIMIZ', - 'WINDOW-MINIMIZE', - 'WINDOW-MINIMIZED', - 'WINDOW-NAME', - 'WINDOW-NORMAL', - 'WINDOW-STA', - 'WINDOW-STAT', - 'WINDOW-STATE', - 'WINDOW-SYSTEM', - 'WITH', - 'WORD-INDEX', - 'WORD-WRAP', - 'WORK-AREA-HEIGHT-PIXELS', - 'WORK-AREA-WIDTH-PIXELS', - 'WORK-AREA-X', - 'WORK-AREA-Y', - 'WORK-TAB', - 'WORK-TABL', - 'WORK-TABLE', - 'WORKFILE', - 'WRITE', - 'WRITE-CDATA', - 'WRITE-CHARACTERS', - 'WRITE-COMMENT', - 'WRITE-DATA-ELEMENT', - 'WRITE-EMPTY-ELEMENT', - 'WRITE-ENTITY-REF', - 'WRITE-EXTERNAL-DTD', - 'WRITE-FRAGMENT', - 'WRITE-JSON', - 'WRITE-MESSAGE', - 'WRITE-PROCESSING-INSTRUCTION', - 'WRITE-STATUS', - 'WRITE-XML', - 'WRITE-XMLSCHEMA', - 'X', - 'X-OF', - 'XCODE', - 'XML-DATA-TYPE', - 'XML-ENTITY-EXPANSION-LIMIT', - 'XML-NODE-TYPE', - 'XML-SCHEMA-PATH', - 'XML-STRICT-ENTITY-RESOLUTION', - 'XML-SUPPRESS-NAMESPACE-PROCESSING', - 'XREF', - 'XREF-XML', - 'Y', - 'Y-OF', - 'YEAR', - 'YEAR-OFFSET', - 'YES', - 'YES-NO', - 'YES-NO-CANCEL' + "ABS", + "ABSO", + "ABSOL", + "ABSOLU", + "ABSOLUT", + "ABSOLUTE", + "ABSTRACT", + "ACCELERATOR", + "ACCUM", + "ACCUMU", + "ACCUMUL", + "ACCUMULA", + "ACCUMULAT", + "ACCUMULATE", + "ACTIVE-FORM", + "ACTIVE-WINDOW", + "ADD", + "ADD-BUFFER", + "ADD-CALC-COLUMN", + "ADD-COLUMNS-FROM", + "ADD-EVENTS-PROCEDURE", + "ADD-FIELDS-FROM", + "ADD-FIRST", + "ADD-INDEX-FIELD", + "ADD-LAST", + "ADD-LIKE-COLUMN", + "ADD-LIKE-FIELD", + "ADD-LIKE-INDEX", + "ADD-NEW-FIELD", + "ADD-NEW-INDEX", + "ADD-SCHEMA-LOCATION", + "ADD-SUPER-PROCEDURE", + "ADM-DATA", + "ADVISE", + "ALERT-BOX", + "ALIAS", + "ALL", + "ALLOW-COLUMN-SEARCHING", + "ALLOW-REPLICATION", + "ALTER", + "ALWAYS-ON-TOP", + "AMBIG", + "AMBIGU", + "AMBIGUO", + "AMBIGUOU", + "AMBIGUOUS", + "ANALYZ", + "ANALYZE", + "AND", + "ANSI-ONLY", + "ANY", + "ANYWHERE", + "APPEND", + "APPL-ALERT", + "APPL-ALERT-", + "APPL-ALERT-B", + "APPL-ALERT-BO", + "APPL-ALERT-BOX", + "APPL-ALERT-BOXE", + "APPL-ALERT-BOXES", + "APPL-CONTEXT-ID", + "APPLICATION", + "APPLY", + "APPSERVER-INFO", + "APPSERVER-PASSWORD", + "APPSERVER-USERID", + "ARRAY-MESSAGE", + "AS", + "ASC", + "ASCE", + "ASCEN", + "ASCEND", + "ASCENDI", + "ASCENDIN", + "ASCENDING", + "ASK-OVERWRITE", + "ASSEMBLY", + "ASSIGN", + "ASYNC-REQUEST-COUNT", + "ASYNC-REQUEST-HANDLE", + "ASYNCHRONOUS", + "AT", + "ATTACHED-PAIRLIST", + "ATTR", + "ATTR-SPACE", + "ATTRI", + "ATTRIB", + "ATTRIBU", + "ATTRIBUT", + "AUDIT-CONTROL", + "AUDIT-ENABLED", + "AUDIT-EVENT-CONTEXT", + "AUDIT-POLICY", + "AUTHENTICATION-FAILED", + "AUTHORIZATION", + "AUTO-COMP", + "AUTO-COMPL", + "AUTO-COMPLE", + "AUTO-COMPLET", + "AUTO-COMPLETI", + "AUTO-COMPLETIO", + "AUTO-COMPLETION", + "AUTO-END-KEY", + "AUTO-ENDKEY", + "AUTO-GO", + "AUTO-IND", + "AUTO-INDE", + "AUTO-INDEN", + "AUTO-INDENT", + "AUTO-RESIZE", + "AUTO-RET", + "AUTO-RETU", + "AUTO-RETUR", + "AUTO-RETURN", + "AUTO-SYNCHRONIZE", + "AUTO-Z", + "AUTO-ZA", + "AUTO-ZAP", + "AUTOMATIC", + "AVAIL", + "AVAILA", + "AVAILAB", + "AVAILABL", + "AVAILABLE", + "AVAILABLE-FORMATS", + "AVE", + "AVER", + "AVERA", + "AVERAG", + "AVERAGE", + "AVG", + "BACK", + "BACKG", + "BACKGR", + "BACKGRO", + "BACKGROU", + "BACKGROUN", + "BACKGROUND", + "BACKWARD", + "BACKWARDS", + "BASE64-DECODE", + "BASE64-ENCODE", + "BASE-ADE", + "BASE-KEY", + "BATCH", + "BATCH-", + "BATCH-M", + "BATCH-MO", + "BATCH-MOD", + "BATCH-MODE", + "BATCH-SIZE", + "BEFORE-H", + "BEFORE-HI", + "BEFORE-HID", + "BEFORE-HIDE", + "BEGIN-EVENT-GROUP", + "BEGINS", + "BELL", + "BETWEEN", + "BGC", + "BGCO", + "BGCOL", + "BGCOLO", + "BGCOLOR", + "BIG-ENDIAN", + "BINARY", + "BIND", + "BIND-WHERE", + "BLANK", + "BLOCK-ITERATION-DISPLAY", + "BLOCK-LEVEL", + "BORDER-B", + "BORDER-BO", + "BORDER-BOT", + "BORDER-BOTT", + "BORDER-BOTTO", + "BORDER-BOTTOM-CHARS", + "BORDER-BOTTOM-P", + "BORDER-BOTTOM-PI", + "BORDER-BOTTOM-PIX", + "BORDER-BOTTOM-PIXE", + "BORDER-BOTTOM-PIXEL", + "BORDER-BOTTOM-PIXELS", + "BORDER-L", + "BORDER-LE", + "BORDER-LEF", + "BORDER-LEFT", + "BORDER-LEFT-", + "BORDER-LEFT-C", + "BORDER-LEFT-CH", + "BORDER-LEFT-CHA", + "BORDER-LEFT-CHAR", + "BORDER-LEFT-CHARS", + "BORDER-LEFT-P", + "BORDER-LEFT-PI", + "BORDER-LEFT-PIX", + "BORDER-LEFT-PIXE", + "BORDER-LEFT-PIXEL", + "BORDER-LEFT-PIXELS", + "BORDER-R", + "BORDER-RI", + "BORDER-RIG", + "BORDER-RIGH", + "BORDER-RIGHT", + "BORDER-RIGHT-", + "BORDER-RIGHT-C", + "BORDER-RIGHT-CH", + "BORDER-RIGHT-CHA", + "BORDER-RIGHT-CHAR", + "BORDER-RIGHT-CHARS", + "BORDER-RIGHT-P", + "BORDER-RIGHT-PI", + "BORDER-RIGHT-PIX", + "BORDER-RIGHT-PIXE", + "BORDER-RIGHT-PIXEL", + "BORDER-RIGHT-PIXELS", + "BORDER-T", + "BORDER-TO", + "BORDER-TOP", + "BORDER-TOP-", + "BORDER-TOP-C", + "BORDER-TOP-CH", + "BORDER-TOP-CHA", + "BORDER-TOP-CHAR", + "BORDER-TOP-CHARS", + "BORDER-TOP-P", + "BORDER-TOP-PI", + "BORDER-TOP-PIX", + "BORDER-TOP-PIXE", + "BORDER-TOP-PIXEL", + "BORDER-TOP-PIXELS", + "BOX", + "BOX-SELECT", + "BOX-SELECTA", + "BOX-SELECTAB", + "BOX-SELECTABL", + "BOX-SELECTABLE", + "BREAK", + "BROWSE", + "BUFFER", + "BUFFER-CHARS", + "BUFFER-COMPARE", + "BUFFER-COPY", + "BUFFER-CREATE", + "BUFFER-DELETE", + "BUFFER-FIELD", + "BUFFER-HANDLE", + "BUFFER-LINES", + "BUFFER-NAME", + "BUFFER-PARTITION-ID", + "BUFFER-RELEASE", + "BUFFER-VALUE", + "BUTTON", + "BUTTONS", + "BY", + "BY-POINTER", + "BY-VARIANT-POINTER", + "CACHE", + "CACHE-SIZE", + "CALL", + "CALL-NAME", + "CALL-TYPE", + "CAN-CREATE", + "CAN-DELETE", + "CAN-DO", + "CAN-DO-DOMAIN-SUPPORT", + "CAN-FIND", + "CAN-QUERY", + "CAN-READ", + "CAN-SET", + "CAN-WRITE", + "CANCEL-BREAK", + "CANCEL-BUTTON", + "CAPS", + "CAREFUL-PAINT", + "CASE", + "CASE-SEN", + "CASE-SENS", + "CASE-SENSI", + "CASE-SENSIT", + "CASE-SENSITI", + "CASE-SENSITIV", + "CASE-SENSITIVE", + "CAST", + "CATCH", + "CDECL", + "CENTER", + "CENTERE", + "CENTERED", + "CHAINED", + "CHARACTER", + "CHARACTER_LENGTH", + "CHARSET", + "CHECK", + "CHECKED", + "CHOOSE", + "CHR", + "CLASS", + "CLASS-TYPE", + "CLEAR", + "CLEAR-APPL-CONTEXT", + "CLEAR-LOG", + "CLEAR-SELECT", + "CLEAR-SELECTI", + "CLEAR-SELECTIO", + "CLEAR-SELECTION", + "CLEAR-SORT-ARROW", + "CLEAR-SORT-ARROWS", + "CLIENT-CONNECTION-ID", + "CLIENT-PRINCIPAL", + "CLIENT-TTY", + "CLIENT-TYPE", + "CLIENT-WORKSTATION", + "CLIPBOARD", + "CLOSE", + "CLOSE-LOG", + "CODE", + "CODEBASE-LOCATOR", + "CODEPAGE", + "CODEPAGE-CONVERT", + "COL", + "COL-OF", + "COLLATE", + "COLON", + "COLON-ALIGN", + "COLON-ALIGNE", + "COLON-ALIGNED", + "COLOR", + "COLOR-TABLE", + "COLU", + "COLUM", + "COLUMN", + "COLUMN-BGCOLOR", + "COLUMN-DCOLOR", + "COLUMN-FGCOLOR", + "COLUMN-FONT", + "COLUMN-LAB", + "COLUMN-LABE", + "COLUMN-LABEL", + "COLUMN-MOVABLE", + "COLUMN-OF", + "COLUMN-PFCOLOR", + "COLUMN-READ-ONLY", + "COLUMN-RESIZABLE", + "COLUMN-SCROLLING", + "COLUMNS", + "COM-HANDLE", + "COM-SELF", + "COMBO-BOX", + "COMMAND", + "COMPARES", + "COMPILE", + "COMPILER", + "COMPLETE", + "CONFIG-NAME", + "CONNECT", + "CONNECTED", + "CONSTRUCTOR", + "CONTAINS", + "CONTENTS", + "CONTEXT", + "CONTEXT-HELP", + "CONTEXT-HELP-FILE", + "CONTEXT-HELP-ID", + "CONTEXT-POPUP", + "CONTROL", + "CONTROL-BOX", + "CONTROL-FRAME", + "CONVERT", + "CONVERT-3D-COLORS", + "CONVERT-TO-OFFS", + "CONVERT-TO-OFFSE", + "CONVERT-TO-OFFSET", + "COPY-DATASET", + "COPY-LOB", + "COPY-SAX-ATTRIBUTES", + "COPY-TEMP-TABLE", + "COUNT", + "COUNT-OF", + "CPCASE", + "CPCOLL", + "CPINTERNAL", + "CPLOG", + "CPPRINT", + "CPRCODEIN", + "CPRCODEOUT", + "CPSTREAM", + "CPTERM", + "CRC-VALUE", + "CREATE", + "CREATE-LIKE", + "CREATE-LIKE-SEQUENTIAL", + "CREATE-NODE-NAMESPACE", + "CREATE-RESULT-LIST-ENTRY", + "CREATE-TEST-FILE", + "CURRENT", + "CURRENT-CHANGED", + "CURRENT-COLUMN", + "CURRENT-ENV", + "CURRENT-ENVI", + "CURRENT-ENVIR", + "CURRENT-ENVIRO", + "CURRENT-ENVIRON", + "CURRENT-ENVIRONM", + "CURRENT-ENVIRONME", + "CURRENT-ENVIRONMEN", + "CURRENT-ENVIRONMENT", + "CURRENT-ITERATION", + "CURRENT-LANG", + "CURRENT-LANGU", + "CURRENT-LANGUA", + "CURRENT-LANGUAG", + "CURRENT-LANGUAGE", + "CURRENT-QUERY", + "CURRENT-REQUEST-INFO", + "CURRENT-RESPONSE-INFO", + "CURRENT-RESULT-ROW", + "CURRENT-ROW-MODIFIED", + "CURRENT-VALUE", + "CURRENT-WINDOW", + "CURRENT_DATE", + "CURS", + "CURSO", + "CURSOR", + "CURSOR-CHAR", + "CURSOR-LINE", + "CURSOR-OFFSET", + "DATA-BIND", + "DATA-ENTRY-RET", + "DATA-ENTRY-RETU", + "DATA-ENTRY-RETUR", + "DATA-ENTRY-RETURN", + "DATA-REL", + "DATA-RELA", + "DATA-RELAT", + "DATA-RELATI", + "DATA-RELATIO", + "DATA-RELATION", + "DATA-SOURCE", + "DATA-SOURCE-COMPLETE-MAP", + "DATA-SOURCE-MODIFIED", + "DATA-SOURCE-ROWID", + "DATA-T", + "DATA-TY", + "DATA-TYP", + "DATA-TYPE", + "DATABASE", + "DATASERVERS", + "DATASET", + "DATASET-HANDLE", + "DATE", + "DATE-F", + "DATE-FO", + "DATE-FOR", + "DATE-FORM", + "DATE-FORMA", + "DATE-FORMAT", + "DAY", + "DB-CONTEXT", + "DB-REFERENCES", + "DBCODEPAGE", + "DBCOLLATION", + "DBNAME", + "DBPARAM", + "DBREST", + "DBRESTR", + "DBRESTRI", + "DBRESTRIC", + "DBRESTRICT", + "DBRESTRICTI", + "DBRESTRICTIO", + "DBRESTRICTION", + "DBRESTRICTIONS", + "DBTASKID", + "DBTYPE", + "DBVERS", + "DBVERSI", + "DBVERSIO", + "DBVERSION", + "DCOLOR", + "DDE", + "DDE-ERROR", + "DDE-I", + "DDE-ID", + "DDE-ITEM", + "DDE-NAME", + "DDE-TOPIC", + "DEBLANK", + "DEBU", + "DEBUG", + "DEBUG-ALERT", + "DEBUG-LIST", + "DEBUGGER", + "DECIMAL", + "DECIMALS", + "DECLARE", + "DECLARE-NAMESPACE", + "DECRYPT", + "DEFAULT", + "DEFAULT-B", + "DEFAULT-BU", + "DEFAULT-BUFFER-HANDLE", + "DEFAULT-BUT", + "DEFAULT-BUTT", + "DEFAULT-BUTTO", + "DEFAULT-BUTTON", + "DEFAULT-COMMIT", + "DEFAULT-EX", + "DEFAULT-EXT", + "DEFAULT-EXTE", + "DEFAULT-EXTEN", + "DEFAULT-EXTENS", + "DEFAULT-EXTENSI", + "DEFAULT-EXTENSIO", + "DEFAULT-EXTENSION", + "DEFAULT-NOXL", + "DEFAULT-NOXLA", + "DEFAULT-NOXLAT", + "DEFAULT-NOXLATE", + "DEFAULT-VALUE", + "DEFAULT-WINDOW", + "DEFINE", + "DEFINE-USER-EVENT-MANAGER", + "DEFINED", + "DEL", + "DELE", + "DELEGATE", + "DELET", + "DELETE PROCEDURE", + "DELETE", + "DELETE-CHAR", + "DELETE-CHARA", + "DELETE-CHARAC", + "DELETE-CHARACT", + "DELETE-CHARACTE", + "DELETE-CHARACTER", + "DELETE-CURRENT-ROW", + "DELETE-LINE", + "DELETE-RESULT-LIST-ENTRY", + "DELETE-SELECTED-ROW", + "DELETE-SELECTED-ROWS", + "DELIMITER", + "DESC", + "DESCE", + "DESCEN", + "DESCEND", + "DESCENDI", + "DESCENDIN", + "DESCENDING", + "DESELECT-FOCUSED-ROW", + "DESELECT-ROWS", + "DESELECT-SELECTED-ROW", + "DESELECTION", + "DESTRUCTOR", + "DIALOG-BOX", + "DICT", + "DICTI", + "DICTIO", + "DICTION", + "DICTIONA", + "DICTIONAR", + "DICTIONARY", + "DIR", + "DISABLE", + "DISABLE-AUTO-ZAP", + "DISABLE-DUMP-TRIGGERS", + "DISABLE-LOAD-TRIGGERS", + "DISABLED", + "DISCON", + "DISCONN", + "DISCONNE", + "DISCONNEC", + "DISCONNECT", + "DISP", + "DISPL", + "DISPLA", + "DISPLAY", + "DISPLAY-MESSAGE", + "DISPLAY-T", + "DISPLAY-TY", + "DISPLAY-TYP", + "DISPLAY-TYPE", + "DISTINCT", + "DO", + "DOMAIN-DESCRIPTION", + "DOMAIN-NAME", + "DOMAIN-TYPE", + "DOS", + "DOUBLE", + "DOWN", + "DRAG-ENABLED", + "DROP", + "DROP-DOWN", + "DROP-DOWN-LIST", + "DROP-FILE-NOTIFY", + "DROP-TARGET", + "DS-CLOSE-CURSOR", + "DSLOG-MANAGER", + "DUMP", + "DYNAMIC", + "DYNAMIC-ENUM", + "DYNAMIC-FUNCTION", + "DYNAMIC-INVOKE", + "EACH", + "ECHO", + "EDGE", + "EDGE-", + "EDGE-C", + "EDGE-CH", + "EDGE-CHA", + "EDGE-CHAR", + "EDGE-CHARS", + "EDGE-P", + "EDGE-PI", + "EDGE-PIX", + "EDGE-PIXE", + "EDGE-PIXEL", + "EDGE-PIXELS", + "EDIT-CAN-PASTE", + "EDIT-CAN-UNDO", + "EDIT-CLEAR", + "EDIT-COPY", + "EDIT-CUT", + "EDIT-PASTE", + "EDIT-UNDO", + "EDITING", + "EDITOR", + "ELSE", + "EMPTY", + "EMPTY-TEMP-TABLE", + "ENABLE", + "ENABLED-FIELDS", + "ENCODE", + "ENCRYPT", + "ENCRYPT-AUDIT-MAC-KEY", + "ENCRYPTION-SALT", + "END", + "END-DOCUMENT", + "END-ELEMENT", + "END-EVENT-GROUP", + "END-FILE-DROP", + "END-KEY", + "END-MOVE", + "END-RESIZE", + "END-ROW-RESIZE", + "END-USER-PROMPT", + "ENDKEY", + "ENTERED", + "ENTITY-EXPANSION-LIMIT", + "ENTRY", + "ENUM", + "EQ", + "ERROR", + "ERROR-COL", + "ERROR-COLU", + "ERROR-COLUM", + "ERROR-COLUMN", + "ERROR-ROW", + "ERROR-STACK-TRACE", + "ERROR-STAT", + "ERROR-STATU", + "ERROR-STATUS", + "ESCAPE", + "ETIME", + "EVENT", + "EVENT-GROUP-ID", + "EVENT-PROCEDURE", + "EVENT-PROCEDURE-CONTEXT", + "EVENT-T", + "EVENT-TY", + "EVENT-TYP", + "EVENT-TYPE", + "EVENTS", + "EXCEPT", + "EXCLUSIVE", + "EXCLUSIVE-", + "EXCLUSIVE-ID", + "EXCLUSIVE-L", + "EXCLUSIVE-LO", + "EXCLUSIVE-LOC", + "EXCLUSIVE-LOCK", + "EXCLUSIVE-WEB-USER", + "EXECUTE", + "EXISTS", + "EXP", + "EXPAND", + "EXPANDABLE", + "EXPLICIT", + "EXPORT", + "EXPORT-PRINCIPAL", + "EXTENDED", + "EXTENT", + "EXTERNAL", + "FALSE", + "FETCH", + "FETCH-SELECTED-ROW", + "FGC", + "FGCO", + "FGCOL", + "FGCOLO", + "FGCOLOR", + "FIELD", + "FIELDS", + "FILE", + "FILE-CREATE-DATE", + "FILE-CREATE-TIME", + "FILE-INFO", + "FILE-INFOR", + "FILE-INFORM", + "FILE-INFORMA", + "FILE-INFORMAT", + "FILE-INFORMATI", + "FILE-INFORMATIO", + "FILE-INFORMATION", + "FILE-MOD-DATE", + "FILE-MOD-TIME", + "FILE-NAME", + "FILE-OFF", + "FILE-OFFS", + "FILE-OFFSE", + "FILE-OFFSET", + "FILE-SIZE", + "FILE-TYPE", + "FILENAME", + "FILL", + "FILL-IN", + "FILLED", + "FILTERS", + "FINAL", + "FINALLY", + "FIND", + "FIND-BY-ROWID", + "FIND-CASE-SENSITIVE", + "FIND-CURRENT", + "FIND-FIRST", + "FIND-GLOBAL", + "FIND-LAST", + "FIND-NEXT-OCCURRENCE", + "FIND-PREV-OCCURRENCE", + "FIND-SELECT", + "FIND-UNIQUE", + "FIND-WRAP-AROUND", + "FINDER", + "FIRST", + "FIRST-ASYNCH-REQUEST", + "FIRST-CHILD", + "FIRST-COLUMN", + "FIRST-FORM", + "FIRST-OBJECT", + "FIRST-OF", + "FIRST-PROC", + "FIRST-PROCE", + "FIRST-PROCED", + "FIRST-PROCEDU", + "FIRST-PROCEDUR", + "FIRST-PROCEDURE", + "FIRST-SERVER", + "FIRST-TAB-I", + "FIRST-TAB-IT", + "FIRST-TAB-ITE", + "FIRST-TAB-ITEM", + "FIT-LAST-COLUMN", + "FIXED-ONLY", + "FLAT-BUTTON", + "FLOAT", + "FOCUS", + "FOCUSED-ROW", + "FOCUSED-ROW-SELECTED", + "FONT", + "FONT-TABLE", + "FOR", + "FORCE-FILE", + "FORE", + "FOREG", + "FOREGR", + "FOREGRO", + "FOREGROU", + "FOREGROUN", + "FOREGROUND", + "FORM INPUT", + "FORM", + "FORM-LONG-INPUT", + "FORMA", + "FORMAT", + "FORMATTE", + "FORMATTED", + "FORWARD", + "FORWARDS", + "FRAGMEN", + "FRAGMENT", + "FRAM", + "FRAME", + "FRAME-COL", + "FRAME-DB", + "FRAME-DOWN", + "FRAME-FIELD", + "FRAME-FILE", + "FRAME-INDE", + "FRAME-INDEX", + "FRAME-LINE", + "FRAME-NAME", + "FRAME-ROW", + "FRAME-SPA", + "FRAME-SPAC", + "FRAME-SPACI", + "FRAME-SPACIN", + "FRAME-SPACING", + "FRAME-VAL", + "FRAME-VALU", + "FRAME-VALUE", + "FRAME-X", + "FRAME-Y", + "FREQUENCY", + "FROM", + "FROM-C", + "FROM-CH", + "FROM-CHA", + "FROM-CHAR", + "FROM-CHARS", + "FROM-CUR", + "FROM-CURR", + "FROM-CURRE", + "FROM-CURREN", + "FROM-CURRENT", + "FROM-P", + "FROM-PI", + "FROM-PIX", + "FROM-PIXE", + "FROM-PIXEL", + "FROM-PIXELS", + "FULL-HEIGHT", + "FULL-HEIGHT-", + "FULL-HEIGHT-C", + "FULL-HEIGHT-CH", + "FULL-HEIGHT-CHA", + "FULL-HEIGHT-CHAR", + "FULL-HEIGHT-CHARS", + "FULL-HEIGHT-P", + "FULL-HEIGHT-PI", + "FULL-HEIGHT-PIX", + "FULL-HEIGHT-PIXE", + "FULL-HEIGHT-PIXEL", + "FULL-HEIGHT-PIXELS", + "FULL-PATHN", + "FULL-PATHNA", + "FULL-PATHNAM", + "FULL-PATHNAME", + "FULL-WIDTH", + "FULL-WIDTH-", + "FULL-WIDTH-C", + "FULL-WIDTH-CH", + "FULL-WIDTH-CHA", + "FULL-WIDTH-CHAR", + "FULL-WIDTH-CHARS", + "FULL-WIDTH-P", + "FULL-WIDTH-PI", + "FULL-WIDTH-PIX", + "FULL-WIDTH-PIXE", + "FULL-WIDTH-PIXEL", + "FULL-WIDTH-PIXELS", + "FUNCTION", + "FUNCTION-CALL-TYPE", + "GATEWAY", + "GATEWAYS", + "GE", + "GENERATE-MD5", + "GENERATE-PBE-KEY", + "GENERATE-PBE-SALT", + "GENERATE-RANDOM-KEY", + "GENERATE-UUID", + "GET", + "GET-ATTR-CALL-TYPE", + "GET-ATTRIBUTE-NODE", + "GET-BINARY-DATA", + "GET-BLUE", + "GET-BLUE-", + "GET-BLUE-V", + "GET-BLUE-VA", + "GET-BLUE-VAL", + "GET-BLUE-VALU", + "GET-BLUE-VALUE", + "GET-BROWSE-COLUMN", + "GET-BUFFER-HANDLE", + "GET-BYTE", + "GET-CALLBACK-PROC-CONTEXT", + "GET-CALLBACK-PROC-NAME", + "GET-CGI-LIST", + "GET-CGI-LONG-VALUE", + "GET-CGI-VALUE", + "GET-CLASS", + "GET-CODEPAGES", + "GET-COLLATIONS", + "GET-CONFIG-VALUE", + "GET-CURRENT", + "GET-DOUBLE", + "GET-DROPPED-FILE", + "GET-DYNAMIC", + "GET-ERROR-COLUMN", + "GET-ERROR-ROW", + "GET-FILE", + "GET-FILE-NAME", + "GET-FILE-OFFSE", + "GET-FILE-OFFSET", + "GET-FIRST", + "GET-FLOAT", + "GET-GREEN", + "GET-GREEN-", + "GET-GREEN-V", + "GET-GREEN-VA", + "GET-GREEN-VAL", + "GET-GREEN-VALU", + "GET-GREEN-VALUE", + "GET-INDEX-BY-NAMESPACE-NAME", + "GET-INDEX-BY-QNAME", + "GET-INT64", + "GET-ITERATION", + "GET-KEY-VAL", + "GET-KEY-VALU", + "GET-KEY-VALUE", + "GET-LAST", + "GET-LOCALNAME-BY-INDEX", + "GET-LONG", + "GET-MESSAGE", + "GET-NEXT", + "GET-NUMBER", + "GET-POINTER-VALUE", + "GET-PREV", + "GET-PRINTERS", + "GET-PROPERTY", + "GET-QNAME-BY-INDEX", + "GET-RED", + "GET-RED-", + "GET-RED-V", + "GET-RED-VA", + "GET-RED-VAL", + "GET-RED-VALU", + "GET-RED-VALUE", + "GET-REPOSITIONED-ROW", + "GET-RGB-VALUE", + "GET-SELECTED", + "GET-SELECTED-", + "GET-SELECTED-W", + "GET-SELECTED-WI", + "GET-SELECTED-WID", + "GET-SELECTED-WIDG", + "GET-SELECTED-WIDGE", + "GET-SELECTED-WIDGET", + "GET-SHORT", + "GET-SIGNATURE", + "GET-SIZE", + "GET-STRING", + "GET-TAB-ITEM", + "GET-TEXT-HEIGHT", + "GET-TEXT-HEIGHT-", + "GET-TEXT-HEIGHT-C", + "GET-TEXT-HEIGHT-CH", + "GET-TEXT-HEIGHT-CHA", + "GET-TEXT-HEIGHT-CHAR", + "GET-TEXT-HEIGHT-CHARS", + "GET-TEXT-HEIGHT-P", + "GET-TEXT-HEIGHT-PI", + "GET-TEXT-HEIGHT-PIX", + "GET-TEXT-HEIGHT-PIXE", + "GET-TEXT-HEIGHT-PIXEL", + "GET-TEXT-HEIGHT-PIXELS", + "GET-TEXT-WIDTH", + "GET-TEXT-WIDTH-", + "GET-TEXT-WIDTH-C", + "GET-TEXT-WIDTH-CH", + "GET-TEXT-WIDTH-CHA", + "GET-TEXT-WIDTH-CHAR", + "GET-TEXT-WIDTH-CHARS", + "GET-TEXT-WIDTH-P", + "GET-TEXT-WIDTH-PI", + "GET-TEXT-WIDTH-PIX", + "GET-TEXT-WIDTH-PIXE", + "GET-TEXT-WIDTH-PIXEL", + "GET-TEXT-WIDTH-PIXELS", + "GET-TYPE-BY-INDEX", + "GET-TYPE-BY-NAMESPACE-NAME", + "GET-TYPE-BY-QNAME", + "GET-UNSIGNED-LONG", + "GET-UNSIGNED-SHORT", + "GET-URI-BY-INDEX", + "GET-VALUE-BY-INDEX", + "GET-VALUE-BY-NAMESPACE-NAME", + "GET-VALUE-BY-QNAME", + "GET-WAIT-STATE", + "GETBYTE", + "GLOBAL", + "GO-ON", + "GO-PEND", + "GO-PENDI", + "GO-PENDIN", + "GO-PENDING", + "GRANT", + "GRAPHIC-E", + "GRAPHIC-ED", + "GRAPHIC-EDG", + "GRAPHIC-EDGE", + "GRID-FACTOR-H", + "GRID-FACTOR-HO", + "GRID-FACTOR-HOR", + "GRID-FACTOR-HORI", + "GRID-FACTOR-HORIZ", + "GRID-FACTOR-HORIZO", + "GRID-FACTOR-HORIZON", + "GRID-FACTOR-HORIZONT", + "GRID-FACTOR-HORIZONTA", + "GRID-FACTOR-HORIZONTAL", + "GRID-FACTOR-V", + "GRID-FACTOR-VE", + "GRID-FACTOR-VER", + "GRID-FACTOR-VERT", + "GRID-FACTOR-VERTI", + "GRID-FACTOR-VERTIC", + "GRID-FACTOR-VERTICA", + "GRID-FACTOR-VERTICAL", + "GRID-SNAP", + "GRID-UNIT-HEIGHT", + "GRID-UNIT-HEIGHT-", + "GRID-UNIT-HEIGHT-C", + "GRID-UNIT-HEIGHT-CH", + "GRID-UNIT-HEIGHT-CHA", + "GRID-UNIT-HEIGHT-CHARS", + "GRID-UNIT-HEIGHT-P", + "GRID-UNIT-HEIGHT-PI", + "GRID-UNIT-HEIGHT-PIX", + "GRID-UNIT-HEIGHT-PIXE", + "GRID-UNIT-HEIGHT-PIXEL", + "GRID-UNIT-HEIGHT-PIXELS", + "GRID-UNIT-WIDTH", + "GRID-UNIT-WIDTH-", + "GRID-UNIT-WIDTH-C", + "GRID-UNIT-WIDTH-CH", + "GRID-UNIT-WIDTH-CHA", + "GRID-UNIT-WIDTH-CHAR", + "GRID-UNIT-WIDTH-CHARS", + "GRID-UNIT-WIDTH-P", + "GRID-UNIT-WIDTH-PI", + "GRID-UNIT-WIDTH-PIX", + "GRID-UNIT-WIDTH-PIXE", + "GRID-UNIT-WIDTH-PIXEL", + "GRID-UNIT-WIDTH-PIXELS", + "GRID-VISIBLE", + "GROUP", + "GT", + "GUID", + "HANDLE", + "HANDLER", + "HAS-RECORDS", + "HAVING", + "HEADER", + "HEIGHT", + "HEIGHT-", + "HEIGHT-C", + "HEIGHT-CH", + "HEIGHT-CHA", + "HEIGHT-CHAR", + "HEIGHT-CHARS", + "HEIGHT-P", + "HEIGHT-PI", + "HEIGHT-PIX", + "HEIGHT-PIXE", + "HEIGHT-PIXEL", + "HEIGHT-PIXELS", + "HELP", + "HEX-DECODE", + "HEX-ENCODE", + "HIDDEN", + "HIDE", + "HORI", + "HORIZ", + "HORIZO", + "HORIZON", + "HORIZONT", + "HORIZONTA", + "HORIZONTAL", + "HOST-BYTE-ORDER", + "HTML-CHARSET", + "HTML-END-OF-LINE", + "HTML-END-OF-PAGE", + "HTML-FRAME-BEGIN", + "HTML-FRAME-END", + "HTML-HEADER-BEGIN", + "HTML-HEADER-END", + "HTML-TITLE-BEGIN", + "HTML-TITLE-END", + "HWND", + "ICON", + "IF", + "IMAGE", + "IMAGE-DOWN", + "IMAGE-INSENSITIVE", + "IMAGE-SIZE", + "IMAGE-SIZE-C", + "IMAGE-SIZE-CH", + "IMAGE-SIZE-CHA", + "IMAGE-SIZE-CHAR", + "IMAGE-SIZE-CHARS", + "IMAGE-SIZE-P", + "IMAGE-SIZE-PI", + "IMAGE-SIZE-PIX", + "IMAGE-SIZE-PIXE", + "IMAGE-SIZE-PIXEL", + "IMAGE-SIZE-PIXELS", + "IMAGE-UP", + "IMMEDIATE-DISPLAY", + "IMPLEMENTS", + "IMPORT", + "IMPORT-PRINCIPAL", + "IN", + "IN-HANDLE", + "INCREMENT-EXCLUSIVE-ID", + "INDEX", + "INDEX-HINT", + "INDEX-INFORMATION", + "INDEXED-REPOSITION", + "INDICATOR", + "INFO", + "INFOR", + "INFORM", + "INFORMA", + "INFORMAT", + "INFORMATI", + "INFORMATIO", + "INFORMATION", + "INHERIT-BGC", + "INHERIT-BGCO", + "INHERIT-BGCOL", + "INHERIT-BGCOLO", + "INHERIT-BGCOLOR", + "INHERIT-FGC", + "INHERIT-FGCO", + "INHERIT-FGCOL", + "INHERIT-FGCOLO", + "INHERIT-FGCOLOR", + "INHERITS", + "INIT", + "INITI", + "INITIA", + "INITIAL", + "INITIAL-DIR", + "INITIAL-FILTER", + "INITIALIZE-DOCUMENT-TYPE", + "INITIATE", + "INNER-CHARS", + "INNER-LINES", + "INPUT", + "INPUT-O", + "INPUT-OU", + "INPUT-OUT", + "INPUT-OUTP", + "INPUT-OUTPU", + "INPUT-OUTPUT", + "INPUT-VALUE", + "INSERT", + "INSERT-ATTRIBUTE", + "INSERT-B", + "INSERT-BA", + "INSERT-BAC", + "INSERT-BACK", + "INSERT-BACKT", + "INSERT-BACKTA", + "INSERT-BACKTAB", + "INSERT-FILE", + "INSERT-ROW", + "INSERT-STRING", + "INSERT-T", + "INSERT-TA", + "INSERT-TAB", + "INT64", + "INT", + "INTEGER", + "INTERFACE", + "INTERNAL-ENTRIES", + "INTO", + "INVOKE", + "IS", + "IS-ATTR", + "IS-ATTR-", + "IS-ATTR-S", + "IS-ATTR-SP", + "IS-ATTR-SPA", + "IS-ATTR-SPAC", + "IS-ATTR-SPACE", + "IS-CLASS", + "IS-JSON", + "IS-LEAD-BYTE", + "IS-OPEN", + "IS-PARAMETER-SET", + "IS-PARTITIONED", + "IS-ROW-SELECTED", + "IS-SELECTED", + "IS-XML", + "ITEM", + "ITEMS-PER-ROW", + "JOIN", + "JOIN-BY-SQLDB", + "KBLABEL", + "KEEP-CONNECTION-OPEN", + "KEEP-FRAME-Z", + "KEEP-FRAME-Z-", + "KEEP-FRAME-Z-O", + "KEEP-FRAME-Z-OR", + "KEEP-FRAME-Z-ORD", + "KEEP-FRAME-Z-ORDE", + "KEEP-FRAME-Z-ORDER", + "KEEP-MESSAGES", + "KEEP-SECURITY-CACHE", + "KEEP-TAB-ORDER", + "KEY", + "KEY-CODE", + "KEY-FUNC", + "KEY-FUNCT", + "KEY-FUNCTI", + "KEY-FUNCTIO", + "KEY-FUNCTION", + "KEY-LABEL", + "KEYCODE", + "KEYFUNC", + "KEYFUNCT", + "KEYFUNCTI", + "KEYFUNCTIO", + "KEYFUNCTION", + "KEYLABEL", + "KEYS", + "KEYWORD", + "KEYWORD-ALL", + "LABEL", + "LABEL-BGC", + "LABEL-BGCO", + "LABEL-BGCOL", + "LABEL-BGCOLO", + "LABEL-BGCOLOR", + "LABEL-DC", + "LABEL-DCO", + "LABEL-DCOL", + "LABEL-DCOLO", + "LABEL-DCOLOR", + "LABEL-FGC", + "LABEL-FGCO", + "LABEL-FGCOL", + "LABEL-FGCOLO", + "LABEL-FGCOLOR", + "LABEL-FONT", + "LABEL-PFC", + "LABEL-PFCO", + "LABEL-PFCOL", + "LABEL-PFCOLO", + "LABEL-PFCOLOR", + "LABELS", + "LABELS-HAVE-COLONS", + "LANDSCAPE", + "LANGUAGE", + "LANGUAGES", + "LARGE", + "LARGE-TO-SMALL", + "LAST", + "LAST-ASYNCH-REQUEST", + "LAST-BATCH", + "LAST-CHILD", + "LAST-EVEN", + "LAST-EVENT", + "LAST-FORM", + "LAST-KEY", + "LAST-OBJECT", + "LAST-OF", + "LAST-PROCE", + "LAST-PROCED", + "LAST-PROCEDU", + "LAST-PROCEDUR", + "LAST-PROCEDURE", + "LAST-SERVER", + "LAST-TAB-I", + "LAST-TAB-IT", + "LAST-TAB-ITE", + "LAST-TAB-ITEM", + "LASTKEY", + "LC", + "LDBNAME", + "LE", + "LEAVE", + "LEFT-ALIGN", + "LEFT-ALIGNE", + "LEFT-ALIGNED", + "LEFT-TRIM", + "LENGTH", + "LIBRARY", + "LIKE", + "LIKE-SEQUENTIAL", + "LINE", + "LINE-COUNT", + "LINE-COUNTE", + "LINE-COUNTER", + "LIST-EVENTS", + "LIST-ITEM-PAIRS", + "LIST-ITEMS", + "LIST-PROPERTY-NAMES", + "LIST-QUERY-ATTRS", + "LIST-SET-ATTRS", + "LIST-WIDGETS", + "LISTI", + "LISTIN", + "LISTING", + "LITERAL-QUESTION", + "LITTLE-ENDIAN", + "LOAD", + "LOAD-DOMAINS", + "LOAD-ICON", + "LOAD-IMAGE", + "LOAD-IMAGE-DOWN", + "LOAD-IMAGE-INSENSITIVE", + "LOAD-IMAGE-UP", + "LOAD-MOUSE-P", + "LOAD-MOUSE-PO", + "LOAD-MOUSE-POI", + "LOAD-MOUSE-POIN", + "LOAD-MOUSE-POINT", + "LOAD-MOUSE-POINTE", + "LOAD-MOUSE-POINTER", + "LOAD-PICTURE", + "LOAD-SMALL-ICON", + "LOCAL-NAME", + "LOCAL-VERSION-INFO", + "LOCATOR-COLUMN-NUMBER", + "LOCATOR-LINE-NUMBER", + "LOCATOR-PUBLIC-ID", + "LOCATOR-SYSTEM-ID", + "LOCATOR-TYPE", + "LOCK-REGISTRATION", + "LOCKED", + "LOG", + "LOG-AUDIT-EVENT", + "LOG-MANAGER", + "LOGICAL", + "LOGIN-EXPIRATION-TIMESTAMP", + "LOGIN-HOST", + "LOGIN-STATE", + "LOGOUT", + "LONGCHAR", + "LOOKAHEAD", + "LOOKUP", + "LT", + "MACHINE-CLASS", + "MANDATORY", + "MANUAL-HIGHLIGHT", + "MAP", + "MARGIN-EXTRA", + "MARGIN-HEIGHT", + "MARGIN-HEIGHT-", + "MARGIN-HEIGHT-C", + "MARGIN-HEIGHT-CH", + "MARGIN-HEIGHT-CHA", + "MARGIN-HEIGHT-CHAR", + "MARGIN-HEIGHT-CHARS", + "MARGIN-HEIGHT-P", + "MARGIN-HEIGHT-PI", + "MARGIN-HEIGHT-PIX", + "MARGIN-HEIGHT-PIXE", + "MARGIN-HEIGHT-PIXEL", + "MARGIN-HEIGHT-PIXELS", + "MARGIN-WIDTH", + "MARGIN-WIDTH-", + "MARGIN-WIDTH-C", + "MARGIN-WIDTH-CH", + "MARGIN-WIDTH-CHA", + "MARGIN-WIDTH-CHAR", + "MARGIN-WIDTH-CHARS", + "MARGIN-WIDTH-P", + "MARGIN-WIDTH-PI", + "MARGIN-WIDTH-PIX", + "MARGIN-WIDTH-PIXE", + "MARGIN-WIDTH-PIXEL", + "MARGIN-WIDTH-PIXELS", + "MARK-NEW", + "MARK-ROW-STATE", + "MATCHES", + "MAX", + "MAX-BUTTON", + "MAX-CHARS", + "MAX-DATA-GUESS", + "MAX-HEIGHT", + "MAX-HEIGHT-C", + "MAX-HEIGHT-CH", + "MAX-HEIGHT-CHA", + "MAX-HEIGHT-CHAR", + "MAX-HEIGHT-CHARS", + "MAX-HEIGHT-P", + "MAX-HEIGHT-PI", + "MAX-HEIGHT-PIX", + "MAX-HEIGHT-PIXE", + "MAX-HEIGHT-PIXEL", + "MAX-HEIGHT-PIXELS", + "MAX-ROWS", + "MAX-SIZE", + "MAX-VAL", + "MAX-VALU", + "MAX-VALUE", + "MAX-WIDTH", + "MAX-WIDTH-", + "MAX-WIDTH-C", + "MAX-WIDTH-CH", + "MAX-WIDTH-CHA", + "MAX-WIDTH-CHAR", + "MAX-WIDTH-CHARS", + "MAX-WIDTH-P", + "MAX-WIDTH-PI", + "MAX-WIDTH-PIX", + "MAX-WIDTH-PIXE", + "MAX-WIDTH-PIXEL", + "MAX-WIDTH-PIXELS", + "MAXI", + "MAXIM", + "MAXIMIZE", + "MAXIMU", + "MAXIMUM", + "MAXIMUM-LEVEL", + "MD5-DIGEST", + "MEMBER", + "MEMPTR-TO-NODE-VALUE", + "MENU", + "MENU-BAR", + "MENU-ITEM", + "MENU-K", + "MENU-KE", + "MENU-KEY", + "MENU-M", + "MENU-MO", + "MENU-MOU", + "MENU-MOUS", + "MENU-MOUSE", + "MENUBAR", + "MERGE-BY-FIELD", + "MESSAGE", + "MESSAGE-AREA", + "MESSAGE-AREA-FONT", + "MESSAGE-LINES", + "METHOD", + "MIN", + "MIN-BUTTON", + "MIN-COLUMN-WIDTH-C", + "MIN-COLUMN-WIDTH-CH", + "MIN-COLUMN-WIDTH-CHA", + "MIN-COLUMN-WIDTH-CHAR", + "MIN-COLUMN-WIDTH-CHARS", + "MIN-COLUMN-WIDTH-P", + "MIN-COLUMN-WIDTH-PI", + "MIN-COLUMN-WIDTH-PIX", + "MIN-COLUMN-WIDTH-PIXE", + "MIN-COLUMN-WIDTH-PIXEL", + "MIN-COLUMN-WIDTH-PIXELS", + "MIN-HEIGHT", + "MIN-HEIGHT-", + "MIN-HEIGHT-C", + "MIN-HEIGHT-CH", + "MIN-HEIGHT-CHA", + "MIN-HEIGHT-CHAR", + "MIN-HEIGHT-CHARS", + "MIN-HEIGHT-P", + "MIN-HEIGHT-PI", + "MIN-HEIGHT-PIX", + "MIN-HEIGHT-PIXE", + "MIN-HEIGHT-PIXEL", + "MIN-HEIGHT-PIXELS", + "MIN-SIZE", + "MIN-VAL", + "MIN-VALU", + "MIN-VALUE", + "MIN-WIDTH", + "MIN-WIDTH-", + "MIN-WIDTH-C", + "MIN-WIDTH-CH", + "MIN-WIDTH-CHA", + "MIN-WIDTH-CHAR", + "MIN-WIDTH-CHARS", + "MIN-WIDTH-P", + "MIN-WIDTH-PI", + "MIN-WIDTH-PIX", + "MIN-WIDTH-PIXE", + "MIN-WIDTH-PIXEL", + "MIN-WIDTH-PIXELS", + "MINI", + "MINIM", + "MINIMU", + "MINIMUM", + "MOD", + "MODIFIED", + "MODU", + "MODUL", + "MODULO", + "MONTH", + "MOUSE", + "MOUSE-P", + "MOUSE-PO", + "MOUSE-POI", + "MOUSE-POIN", + "MOUSE-POINT", + "MOUSE-POINTE", + "MOUSE-POINTER", + "MOVABLE", + "MOVE-AFTER", + "MOVE-AFTER-", + "MOVE-AFTER-T", + "MOVE-AFTER-TA", + "MOVE-AFTER-TAB", + "MOVE-AFTER-TAB-", + "MOVE-AFTER-TAB-I", + "MOVE-AFTER-TAB-IT", + "MOVE-AFTER-TAB-ITE", + "MOVE-AFTER-TAB-ITEM", + "MOVE-BEFOR", + "MOVE-BEFORE", + "MOVE-BEFORE-", + "MOVE-BEFORE-T", + "MOVE-BEFORE-TA", + "MOVE-BEFORE-TAB", + "MOVE-BEFORE-TAB-", + "MOVE-BEFORE-TAB-I", + "MOVE-BEFORE-TAB-IT", + "MOVE-BEFORE-TAB-ITE", + "MOVE-BEFORE-TAB-ITEM", + "MOVE-COL", + "MOVE-COLU", + "MOVE-COLUM", + "MOVE-COLUMN", + "MOVE-TO-B", + "MOVE-TO-BO", + "MOVE-TO-BOT", + "MOVE-TO-BOTT", + "MOVE-TO-BOTTO", + "MOVE-TO-BOTTOM", + "MOVE-TO-EOF", + "MOVE-TO-T", + "MOVE-TO-TO", + "MOVE-TO-TOP", + "MPE", + "MTIME", + "MULTI-COMPILE", + "MULTIPLE", + "MULTIPLE-KEY", + "MULTITASKING-INTERVAL", + "MUST-EXIST", + "NAME", + "NAMESPACE-PREFIX", + "NAMESPACE-URI", + "NATIVE", + "NE", + "NEEDS-APPSERVER-PROMPT", + "NEEDS-PROMPT", + "NEW", + "NEW-INSTANCE", + "NEW-ROW", + "NEXT", + "NEXT-COLUMN", + "NEXT-PROMPT", + "NEXT-ROWID", + "NEXT-SIBLING", + "NEXT-TAB-I", + "NEXT-TAB-IT", + "NEXT-TAB-ITE", + "NEXT-TAB-ITEM", + "NEXT-VALUE", + "NO", + "NO-APPLY", + "NO-ARRAY-MESSAGE", + "NO-ASSIGN", + "NO-ATTR", + "NO-ATTR-", + "NO-ATTR-L", + "NO-ATTR-LI", + "NO-ATTR-LIS", + "NO-ATTR-LIST", + "NO-ATTR-S", + "NO-ATTR-SP", + "NO-ATTR-SPA", + "NO-ATTR-SPAC", + "NO-ATTR-SPACE", + "NO-AUTO-VALIDATE", + "NO-BIND-WHERE", + "NO-BOX", + "NO-CONSOLE", + "NO-CONVERT", + "NO-CONVERT-3D-COLORS", + "NO-CURRENT-VALUE", + "NO-DEBUG", + "NO-DRAG", + "NO-ECHO", + "NO-EMPTY-SPACE", + "NO-ERROR", + "NO-F", + "NO-FI", + "NO-FIL", + "NO-FILL", + "NO-FOCUS", + "NO-HELP", + "NO-HIDE", + "NO-INDEX-HINT", + "NO-INHERIT-BGC", + "NO-INHERIT-BGCO", + "NO-INHERIT-BGCOLOR", + "NO-INHERIT-FGC", + "NO-INHERIT-FGCO", + "NO-INHERIT-FGCOL", + "NO-INHERIT-FGCOLO", + "NO-INHERIT-FGCOLOR", + "NO-JOIN-BY-SQLDB", + "NO-LABE", + "NO-LABELS", + "NO-LOBS", + "NO-LOCK", + "NO-LOOKAHEAD", + "NO-MAP", + "NO-MES", + "NO-MESS", + "NO-MESSA", + "NO-MESSAG", + "NO-MESSAGE", + "NO-PAUSE", + "NO-PREFE", + "NO-PREFET", + "NO-PREFETC", + "NO-PREFETCH", + "NO-ROW-MARKERS", + "NO-SCROLLBAR-VERTICAL", + "NO-SEPARATE-CONNECTION", + "NO-SEPARATORS", + "NO-TAB-STOP", + "NO-UND", + "NO-UNDE", + "NO-UNDER", + "NO-UNDERL", + "NO-UNDERLI", + "NO-UNDERLIN", + "NO-UNDERLINE", + "NO-UNDO", + "NO-VAL", + "NO-VALI", + "NO-VALID", + "NO-VALIDA", + "NO-VALIDAT", + "NO-VALIDATE", + "NO-WAIT", + "NO-WORD-WRAP", + "NODE-VALUE-TO-MEMPTR", + "NONAMESPACE-SCHEMA-LOCATION", + "NONE", + "NORMALIZE", + "NOT", + "NOT-ACTIVE", + "NOW", + "NULL", + "NUM-ALI", + "NUM-ALIA", + "NUM-ALIAS", + "NUM-ALIASE", + "NUM-ALIASES", + "NUM-BUFFERS", + "NUM-BUT", + "NUM-BUTT", + "NUM-BUTTO", + "NUM-BUTTON", + "NUM-BUTTONS", + "NUM-COL", + "NUM-COLU", + "NUM-COLUM", + "NUM-COLUMN", + "NUM-COLUMNS", + "NUM-COPIES", + "NUM-DBS", + "NUM-DROPPED-FILES", + "NUM-ENTRIES", + "NUM-FIELDS", + "NUM-FORMATS", + "NUM-ITEMS", + "NUM-ITERATIONS", + "NUM-LINES", + "NUM-LOCKED-COL", + "NUM-LOCKED-COLU", + "NUM-LOCKED-COLUM", + "NUM-LOCKED-COLUMN", + "NUM-LOCKED-COLUMNS", + "NUM-MESSAGES", + "NUM-PARAMETERS", + "NUM-REFERENCES", + "NUM-REPLACED", + "NUM-RESULTS", + "NUM-SELECTED", + "NUM-SELECTED-", + "NUM-SELECTED-ROWS", + "NUM-SELECTED-W", + "NUM-SELECTED-WI", + "NUM-SELECTED-WID", + "NUM-SELECTED-WIDG", + "NUM-SELECTED-WIDGE", + "NUM-SELECTED-WIDGET", + "NUM-SELECTED-WIDGETS", + "NUM-TABS", + "NUM-TO-RETAIN", + "NUM-VISIBLE-COLUMNS", + "NUMERIC", + "NUMERIC-F", + "NUMERIC-FO", + "NUMERIC-FOR", + "NUMERIC-FORM", + "NUMERIC-FORMA", + "NUMERIC-FORMAT", + "OCTET-LENGTH", + "OF", + "OFF", + "OK", + "OK-CANCEL", + "OLD", + "ON", + "ON-FRAME", + "ON-FRAME-", + "ON-FRAME-B", + "ON-FRAME-BO", + "ON-FRAME-BOR", + "ON-FRAME-BORD", + "ON-FRAME-BORDE", + "ON-FRAME-BORDER", + "OPEN", + "OPSYS", + "OPTION", + "OR", + "ORDERED-JOIN", + "ORDINAL", + "OS-APPEND", + "OS-COMMAND", + "OS-COPY", + "OS-CREATE-DIR", + "OS-DELETE", + "OS-DIR", + "OS-DRIVE", + "OS-DRIVES", + "OS-ERROR", + "OS-GETENV", + "OS-RENAME", + "OTHERWISE", + "OUTPUT", + "OVERLAY", + "OVERRIDE", + "OWNER", + "PAGE", + "PAGE-BOT", + "PAGE-BOTT", + "PAGE-BOTTO", + "PAGE-BOTTOM", + "PAGE-NUM", + "PAGE-NUMB", + "PAGE-NUMBE", + "PAGE-NUMBER", + "PAGE-SIZE", + "PAGE-TOP", + "PAGE-WID", + "PAGE-WIDT", + "PAGE-WIDTH", + "PAGED", + "PARAM", + "PARAME", + "PARAMET", + "PARAMETE", + "PARAMETER", + "PARENT", + "PARSE-STATUS", + "PARTIAL-KEY", + "PASCAL", + "PASSWORD-FIELD", + "PATHNAME", + "PAUSE", + "PBE-HASH-ALG", + "PBE-HASH-ALGO", + "PBE-HASH-ALGOR", + "PBE-HASH-ALGORI", + "PBE-HASH-ALGORIT", + "PBE-HASH-ALGORITH", + "PBE-HASH-ALGORITHM", + "PBE-KEY-ROUNDS", + "PDBNAME", + "PERSIST", + "PERSISTE", + "PERSISTEN", + "PERSISTENT", + "PERSISTENT-CACHE-DISABLED", + "PFC", + "PFCO", + "PFCOL", + "PFCOLO", + "PFCOLOR", + "PIXELS", + "PIXELS-PER-COL", + "PIXELS-PER-COLU", + "PIXELS-PER-COLUM", + "PIXELS-PER-COLUMN", + "PIXELS-PER-ROW", + "POPUP-M", + "POPUP-ME", + "POPUP-MEN", + "POPUP-MENU", + "POPUP-O", + "POPUP-ON", + "POPUP-ONL", + "POPUP-ONLY", + "PORTRAIT", + "POSITION", + "PRECISION", + "PREFER-DATASET", + "PREPARE-STRING", + "PREPARED", + "PREPROC", + "PREPROCE", + "PREPROCES", + "PREPROCESS", + "PRESEL", + "PRESELE", + "PRESELEC", + "PRESELECT", + "PREV", + "PREV-COLUMN", + "PREV-SIBLING", + "PREV-TAB-I", + "PREV-TAB-IT", + "PREV-TAB-ITE", + "PREV-TAB-ITEM", + "PRIMARY", + "PRINTER", + "PRINTER-CONTROL-HANDLE", + "PRINTER-HDC", + "PRINTER-NAME", + "PRINTER-PORT", + "PRINTER-SETUP", + "PRIVATE", + "PRIVATE-D", + "PRIVATE-DA", + "PRIVATE-DAT", + "PRIVATE-DATA", + "PRIVILEGES", + "PROC-HA", + "PROC-HAN", + "PROC-HAND", + "PROC-HANDL", + "PROC-HANDLE", + "PROC-ST", + "PROC-STA", + "PROC-STAT", + "PROC-STATU", + "PROC-STATUS", + "PROC-TEXT", + "PROC-TEXT-BUFFER", + "PROCE", + "PROCED", + "PROCEDU", + "PROCEDUR", + "PROCEDURE", + "PROCEDURE-CALL-TYPE", + "PROCEDURE-TYPE", + "PROCESS", + "PROFILER", + "PROGRAM-NAME", + "PROGRESS", + "PROGRESS-S", + "PROGRESS-SO", + "PROGRESS-SOU", + "PROGRESS-SOUR", + "PROGRESS-SOURC", + "PROGRESS-SOURCE", + "PROMPT", + "PROMPT-F", + "PROMPT-FO", + "PROMPT-FOR", + "PROMSGS", + "PROPATH", + "PROPERTY", + "PROTECTED", + "PROVERS", + "PROVERSI", + "PROVERSIO", + "PROVERSION", + "PROXY", + "PROXY-PASSWORD", + "PROXY-USERID", + "PUBLIC", + "PUBLIC-ID", + "PUBLISH", + "PUBLISHED-EVENTS", + "PUT", + "PUT-BYTE", + "PUT-DOUBLE", + "PUT-FLOAT", + "PUT-INT64", + "PUT-KEY-VAL", + "PUT-KEY-VALU", + "PUT-KEY-VALUE", + "PUT-LONG", + "PUT-SHORT", + "PUT-STRING", + "PUT-UNSIGNED-LONG", + "PUTBYTE", + "QUERY", + "QUERY-CLOSE", + "QUERY-OFF-END", + "QUERY-OPEN", + "QUERY-PREPARE", + "QUERY-TUNING", + "QUESTION", + "QUIT", + "QUOTER", + "R-INDEX", + "RADIO-BUTTONS", + "RADIO-SET", + "RANDOM", + "RAW", + "RAW-TRANSFER", + "RCODE-INFO", + "RCODE-INFOR", + "RCODE-INFORM", + "RCODE-INFORMA", + "RCODE-INFORMAT", + "RCODE-INFORMATI", + "RCODE-INFORMATIO", + "RCODE-INFORMATION", + "READ-AVAILABLE", + "READ-EXACT-NUM", + "READ-FILE", + "READ-JSON", + "READ-ONLY", + "READ-XML", + "READ-XMLSCHEMA", + "READKEY", + "REAL", + "RECID", + "RECORD-LENGTH", + "RECT", + "RECTA", + "RECTAN", + "RECTANG", + "RECTANGL", + "RECTANGLE", + "RECURSIVE", + "REFERENCE-ONLY", + "REFRESH", + "REFRESH-AUDIT-POLICY", + "REFRESHABLE", + "REGISTER-DOMAIN", + "RELEASE", + "REMOTE", + "REMOVE-EVENTS-PROCEDURE", + "REMOVE-SUPER-PROCEDURE", + "REPEAT", + "REPLACE", + "REPLACE-SELECTION-TEXT", + "REPOSITION", + "REPOSITION-BACKWARD", + "REPOSITION-FORWARD", + "REPOSITION-MODE", + "REPOSITION-TO-ROW", + "REPOSITION-TO-ROWID", + "REQUEST", + "REQUEST-INFO", + "RESET", + "RESIZA", + "RESIZAB", + "RESIZABL", + "RESIZABLE", + "RESIZE", + "RESPONSE-INFO", + "RESTART-ROW", + "RESTART-ROWID", + "RETAIN", + "RETAIN-SHAPE", + "RETRY", + "RETRY-CANCEL", + "RETURN", + "RETURN-ALIGN", + "RETURN-ALIGNE", + "RETURN-INS", + "RETURN-INSE", + "RETURN-INSER", + "RETURN-INSERT", + "RETURN-INSERTE", + "RETURN-INSERTED", + "RETURN-TO-START-DI", + "RETURN-TO-START-DIR", + "RETURN-VAL", + "RETURN-VALU", + "RETURN-VALUE", + "RETURN-VALUE-DATA-TYPE", + "RETURNS", + "REVERSE-FROM", + "REVERT", + "REVOKE", + "RGB-VALUE", + "RIGHT-ALIGNED", + "RIGHT-TRIM", + "ROLES", + "ROUND", + "ROUTINE-LEVEL", + "ROW", + "ROW-HEIGHT-CHARS", + "ROW-HEIGHT-PIXELS", + "ROW-MARKERS", + "ROW-OF", + "ROW-RESIZABLE", + "ROWID", + "RULE", + "RUN", + "RUN-PROCEDURE", + "SAVE CACHE", + "SAVE", + "SAVE-AS", + "SAVE-FILE", + "SAX-COMPLE", + "SAX-COMPLET", + "SAX-COMPLETE", + "SAX-PARSE", + "SAX-PARSE-FIRST", + "SAX-PARSE-NEXT", + "SAX-PARSER-ERROR", + "SAX-RUNNING", + "SAX-UNINITIALIZED", + "SAX-WRITE-BEGIN", + "SAX-WRITE-COMPLETE", + "SAX-WRITE-CONTENT", + "SAX-WRITE-ELEMENT", + "SAX-WRITE-ERROR", + "SAX-WRITE-IDLE", + "SAX-WRITE-TAG", + "SAX-WRITER", + "SCHEMA", + "SCHEMA-LOCATION", + "SCHEMA-MARSHAL", + "SCHEMA-PATH", + "SCREEN", + "SCREEN-IO", + "SCREEN-LINES", + "SCREEN-VAL", + "SCREEN-VALU", + "SCREEN-VALUE", + "SCROLL", + "SCROLL-BARS", + "SCROLL-DELTA", + "SCROLL-OFFSET", + "SCROLL-TO-CURRENT-ROW", + "SCROLL-TO-I", + "SCROLL-TO-IT", + "SCROLL-TO-ITE", + "SCROLL-TO-ITEM", + "SCROLL-TO-SELECTED-ROW", + "SCROLLABLE", + "SCROLLBAR-H", + "SCROLLBAR-HO", + "SCROLLBAR-HOR", + "SCROLLBAR-HORI", + "SCROLLBAR-HORIZ", + "SCROLLBAR-HORIZO", + "SCROLLBAR-HORIZON", + "SCROLLBAR-HORIZONT", + "SCROLLBAR-HORIZONTA", + "SCROLLBAR-HORIZONTAL", + "SCROLLBAR-V", + "SCROLLBAR-VE", + "SCROLLBAR-VER", + "SCROLLBAR-VERT", + "SCROLLBAR-VERTI", + "SCROLLBAR-VERTIC", + "SCROLLBAR-VERTICA", + "SCROLLBAR-VERTICAL", + "SCROLLED-ROW-POS", + "SCROLLED-ROW-POSI", + "SCROLLED-ROW-POSIT", + "SCROLLED-ROW-POSITI", + "SCROLLED-ROW-POSITIO", + "SCROLLED-ROW-POSITION", + "SCROLLING", + "SDBNAME", + "SEAL", + "SEAL-TIMESTAMP", + "SEARCH", + "SEARCH-SELF", + "SEARCH-TARGET", + "SECTION", + "SECURITY-POLICY", + "SEEK", + "SELECT", + "SELECT-ALL", + "SELECT-FOCUSED-ROW", + "SELECT-NEXT-ROW", + "SELECT-PREV-ROW", + "SELECT-ROW", + "SELECTABLE", + "SELECTED", + "SELECTION", + "SELECTION-END", + "SELECTION-LIST", + "SELECTION-START", + "SELECTION-TEXT", + "SELF", + "SEND", + "SEND-SQL-STATEMENT", + "SENSITIVE", + "SEPARATE-CONNECTION", + "SEPARATOR-FGCOLOR", + "SEPARATORS", + "SERIALIZABLE", + "SERIALIZE-HIDDEN", + "SERIALIZE-NAME", + "SERVER", + "SERVER-CONNECTION-BOUND", + "SERVER-CONNECTION-BOUND-REQUEST", + "SERVER-CONNECTION-CONTEXT", + "SERVER-CONNECTION-ID", + "SERVER-OPERATING-MODE", + "SESSION", + "SESSION-ID", + "SET", + "SET-APPL-CONTEXT", + "SET-ATTR-CALL-TYPE", + "SET-ATTRIBUTE-NODE", + "SET-BLUE", + "SET-BLUE-", + "SET-BLUE-V", + "SET-BLUE-VA", + "SET-BLUE-VAL", + "SET-BLUE-VALU", + "SET-BLUE-VALUE", + "SET-BREAK", + "SET-BUFFERS", + "SET-CALLBACK", + "SET-CLIENT", + "SET-COMMIT", + "SET-CONTENTS", + "SET-CURRENT-VALUE", + "SET-DB-CLIENT", + "SET-DYNAMIC", + "SET-EVENT-MANAGER-OPTION", + "SET-GREEN", + "SET-GREEN-", + "SET-GREEN-V", + "SET-GREEN-VA", + "SET-GREEN-VAL", + "SET-GREEN-VALU", + "SET-GREEN-VALUE", + "SET-INPUT-SOURCE", + "SET-OPTION", + "SET-OUTPUT-DESTINATION", + "SET-PARAMETER", + "SET-POINTER-VALUE", + "SET-PROPERTY", + "SET-RED", + "SET-RED-", + "SET-RED-V", + "SET-RED-VA", + "SET-RED-VAL", + "SET-RED-VALU", + "SET-RED-VALUE", + "SET-REPOSITIONED-ROW", + "SET-RGB-VALUE", + "SET-ROLLBACK", + "SET-SELECTION", + "SET-SIZE", + "SET-SORT-ARROW", + "SET-WAIT-STATE", + "SETUSER", + "SETUSERI", + "SETUSERID", + "SHA1-DIGEST", + "SHARE", + "SHARE-", + "SHARE-L", + "SHARE-LO", + "SHARE-LOC", + "SHARE-LOCK", + "SHARED", + "SHOW-IN-TASKBAR", + "SHOW-STAT", + "SHOW-STATS", + "SIDE-LAB", + "SIDE-LABE", + "SIDE-LABEL", + "SIDE-LABEL-H", + "SIDE-LABEL-HA", + "SIDE-LABEL-HAN", + "SIDE-LABEL-HAND", + "SIDE-LABEL-HANDL", + "SIDE-LABEL-HANDLE", + "SIDE-LABELS", + "SIGNATURE", + "SILENT", + "SIMPLE", + "SINGLE", + "SINGLE-RUN", + "SINGLETON", + "SIZE", + "SIZE-C", + "SIZE-CH", + "SIZE-CHA", + "SIZE-CHAR", + "SIZE-CHARS", + "SIZE-P", + "SIZE-PI", + "SIZE-PIX", + "SIZE-PIXE", + "SIZE-PIXEL", + "SIZE-PIXELS", + "SKIP", + "SKIP-DELETED-RECORD", + "SLIDER", + "SMALL-ICON", + "SMALL-TITLE", + "SMALLINT", + "SOME", + "SORT", + "SORT-ASCENDING", + "SORT-NUMBER", + "SOURCE", + "SOURCE-PROCEDURE", + "SPACE", + "SQL", + "SQRT", + "SSL-SERVER-NAME", + "STANDALONE", + "START", + "START-DOCUMENT", + "START-ELEMENT", + "START-MOVE", + "START-RESIZE", + "START-ROW-RESIZE", + "STATE-DETAIL", + "STATIC", + "STATUS", + "STATUS-AREA", + "STATUS-AREA-FONT", + "STDCALL", + "STOP", + "STOP-AFTER", + "STOP-PARSING", + "STOPPE", + "STOPPED", + "STORED-PROC", + "STORED-PROCE", + "STORED-PROCED", + "STORED-PROCEDU", + "STORED-PROCEDUR", + "STORED-PROCEDURE", + "STREAM", + "STREAM-HANDLE", + "STREAM-IO", + "STRETCH-TO-FIT", + "STRICT", + "STRICT-ENTITY-RESOLUTION", + "STRING", + "STRING-VALUE", + "STRING-XREF", + "SUB-AVE", + "SUB-AVER", + "SUB-AVERA", + "SUB-AVERAG", + "SUB-AVERAGE", + "SUB-COUNT", + "SUB-MAXIMUM", + "SUB-MENU", + "SUB-MIN", + "SUB-MINIMUM", + "SUB-TOTAL", + "SUBSCRIBE", + "SUBST", + "SUBSTI", + "SUBSTIT", + "SUBSTITU", + "SUBSTITUT", + "SUBSTITUTE", + "SUBSTR", + "SUBSTRI", + "SUBSTRIN", + "SUBSTRING", + "SUBTYPE", + "SUM", + "SUM-MAX", + "SUM-MAXI", + "SUM-MAXIM", + "SUM-MAXIMU", + "SUPER", + "SUPER-PROCEDURES", + "SUPPRESS-NAMESPACE-PROCESSING", + "SUPPRESS-W", + "SUPPRESS-WA", + "SUPPRESS-WAR", + "SUPPRESS-WARN", + "SUPPRESS-WARNI", + "SUPPRESS-WARNIN", + "SUPPRESS-WARNING", + "SUPPRESS-WARNINGS", + "SYMMETRIC-ENCRYPTION-ALGORITHM", + "SYMMETRIC-ENCRYPTION-IV", + "SYMMETRIC-ENCRYPTION-KEY", + "SYMMETRIC-SUPPORT", + "SYSTEM-ALERT", + "SYSTEM-ALERT-", + "SYSTEM-ALERT-B", + "SYSTEM-ALERT-BO", + "SYSTEM-ALERT-BOX", + "SYSTEM-ALERT-BOXE", + "SYSTEM-ALERT-BOXES", + "SYSTEM-DIALOG", + "SYSTEM-HELP", + "SYSTEM-ID", + "TAB-POSITION", + "TAB-STOP", + "TABLE", + "TABLE-HANDLE", + "TABLE-NUMBER", + "TABLE-SCAN", + "TARGET", + "TARGET-PROCEDURE", + "TEMP-DIR", + "TEMP-DIRE", + "TEMP-DIREC", + "TEMP-DIRECT", + "TEMP-DIRECTO", + "TEMP-DIRECTOR", + "TEMP-DIRECTORY", + "TEMP-TABLE", + "TEMP-TABLE-PREPARE", + "TERM", + "TERMI", + "TERMIN", + "TERMINA", + "TERMINAL", + "TERMINATE", + "TEXT", + "TEXT-CURSOR", + "TEXT-SEG-GROW", + "TEXT-SELECTED", + "THEN", + "THIS-OBJECT", + "THIS-PROCEDURE", + "THREAD-SAFE", + "THREE-D", + "THROUGH", + "THROW", + "THRU", + "TIC-MARKS", + "TIME", + "TIME-SOURCE", + "TITLE", + "TITLE-BGC", + "TITLE-BGCO", + "TITLE-BGCOL", + "TITLE-BGCOLO", + "TITLE-BGCOLOR", + "TITLE-DC", + "TITLE-DCO", + "TITLE-DCOL", + "TITLE-DCOLO", + "TITLE-DCOLOR", + "TITLE-FGC", + "TITLE-FGCO", + "TITLE-FGCOL", + "TITLE-FGCOLO", + "TITLE-FGCOLOR", + "TITLE-FO", + "TITLE-FON", + "TITLE-FONT", + "TO", + "TO-ROWID", + "TODAY", + "TOGGLE-BOX", + "TOOLTIP", + "TOOLTIPS", + "TOP-NAV-QUERY", + "TOP-ONLY", + "TOPIC", + "TOTAL", + "TRAILING", + "TRANS", + "TRANS-INIT-PROCEDURE", + "TRANSACTION", + "TRANSACTION-MODE", + "TRANSPARENT", + "TRIGGER", + "TRIGGERS", + "TRIM", + "TRUE", + "TRUNC", + "TRUNCA", + "TRUNCAT", + "TRUNCATE", + "TYPE", + "TYPE-OF", + "UNBOX", + "UNBUFF", + "UNBUFFE", + "UNBUFFER", + "UNBUFFERE", + "UNBUFFERED", + "UNDERL", + "UNDERLI", + "UNDERLIN", + "UNDERLINE", + "UNDO", + "UNFORM", + "UNFORMA", + "UNFORMAT", + "UNFORMATT", + "UNFORMATTE", + "UNFORMATTED", + "UNION", + "UNIQUE", + "UNIQUE-ID", + "UNIQUE-MATCH", + "UNIX", + "UNLESS-HIDDEN", + "UNLOAD", + "UNSIGNED-LONG", + "UNSUBSCRIBE", + "UP", + "UPDATE", + "UPDATE-ATTRIBUTE", + "URL", + "URL-DECODE", + "URL-ENCODE", + "URL-PASSWORD", + "URL-USERID", + "USE", + "USE-DICT-EXPS", + "USE-FILENAME", + "USE-INDEX", + "USE-REVVIDEO", + "USE-TEXT", + "USE-UNDERLINE", + "USE-WIDGET-POOL", + "USER", + "USER-ID", + "USERID", + "USING", + "V6DISPLAY", + "V6FRAME", + "VALID-EVENT", + "VALID-HANDLE", + "VALID-OBJECT", + "VALIDATE", + "VALIDATE-EXPRESSION", + "VALIDATE-MESSAGE", + "VALIDATE-SEAL", + "VALIDATION-ENABLED", + "VALUE", + "VALUE-CHANGED", + "VALUES", + "VAR", + "VARI", + "VARIA", + "VARIAB", + "VARIABL", + "VARIABLE", + "VERBOSE", + "VERSION", + "VERT", + "VERTI", + "VERTIC", + "VERTICA", + "VERTICAL", + "VIEW", + "VIEW-AS", + "VIEW-FIRST-COLUMN-ON-REOPEN", + "VIRTUAL-HEIGHT", + "VIRTUAL-HEIGHT-", + "VIRTUAL-HEIGHT-C", + "VIRTUAL-HEIGHT-CH", + "VIRTUAL-HEIGHT-CHA", + "VIRTUAL-HEIGHT-CHAR", + "VIRTUAL-HEIGHT-CHARS", + "VIRTUAL-HEIGHT-P", + "VIRTUAL-HEIGHT-PI", + "VIRTUAL-HEIGHT-PIX", + "VIRTUAL-HEIGHT-PIXE", + "VIRTUAL-HEIGHT-PIXEL", + "VIRTUAL-HEIGHT-PIXELS", + "VIRTUAL-WIDTH", + "VIRTUAL-WIDTH-", + "VIRTUAL-WIDTH-C", + "VIRTUAL-WIDTH-CH", + "VIRTUAL-WIDTH-CHA", + "VIRTUAL-WIDTH-CHAR", + "VIRTUAL-WIDTH-CHARS", + "VIRTUAL-WIDTH-P", + "VIRTUAL-WIDTH-PI", + "VIRTUAL-WIDTH-PIX", + "VIRTUAL-WIDTH-PIXE", + "VIRTUAL-WIDTH-PIXEL", + "VIRTUAL-WIDTH-PIXELS", + "VISIBLE", + "VOID", + "WAIT", + "WAIT-FOR", + "WARNING", + "WEB-CONTEXT", + "WEEKDAY", + "WHEN", + "WHERE", + "WHILE", + "WIDGET", + "WIDGET-E", + "WIDGET-EN", + "WIDGET-ENT", + "WIDGET-ENTE", + "WIDGET-ENTER", + "WIDGET-ID", + "WIDGET-L", + "WIDGET-LE", + "WIDGET-LEA", + "WIDGET-LEAV", + "WIDGET-LEAVE", + "WIDGET-POOL", + "WIDTH", + "WIDTH-", + "WIDTH-C", + "WIDTH-CH", + "WIDTH-CHA", + "WIDTH-CHAR", + "WIDTH-CHARS", + "WIDTH-P", + "WIDTH-PI", + "WIDTH-PIX", + "WIDTH-PIXE", + "WIDTH-PIXEL", + "WIDTH-PIXELS", + "WINDOW", + "WINDOW-MAXIM", + "WINDOW-MAXIMI", + "WINDOW-MAXIMIZ", + "WINDOW-MAXIMIZE", + "WINDOW-MAXIMIZED", + "WINDOW-MINIM", + "WINDOW-MINIMI", + "WINDOW-MINIMIZ", + "WINDOW-MINIMIZE", + "WINDOW-MINIMIZED", + "WINDOW-NAME", + "WINDOW-NORMAL", + "WINDOW-STA", + "WINDOW-STAT", + "WINDOW-STATE", + "WINDOW-SYSTEM", + "WITH", + "WORD-INDEX", + "WORD-WRAP", + "WORK-AREA-HEIGHT-PIXELS", + "WORK-AREA-WIDTH-PIXELS", + "WORK-AREA-X", + "WORK-AREA-Y", + "WORK-TAB", + "WORK-TABL", + "WORK-TABLE", + "WORKFILE", + "WRITE", + "WRITE-CDATA", + "WRITE-CHARACTERS", + "WRITE-COMMENT", + "WRITE-DATA-ELEMENT", + "WRITE-EMPTY-ELEMENT", + "WRITE-ENTITY-REF", + "WRITE-EXTERNAL-DTD", + "WRITE-FRAGMENT", + "WRITE-JSON", + "WRITE-MESSAGE", + "WRITE-PROCESSING-INSTRUCTION", + "WRITE-STATUS", + "WRITE-XML", + "WRITE-XMLSCHEMA", + "X", + "X-OF", + "XCODE", + "XML-DATA-TYPE", + "XML-ENTITY-EXPANSION-LIMIT", + "XML-NODE-TYPE", + "XML-SCHEMA-PATH", + "XML-STRICT-ENTITY-RESOLUTION", + "XML-SUPPRESS-NAMESPACE-PROCESSING", + "XREF", + "XREF-XML", + "Y", + "Y-OF", + "YEAR", + "YEAR-OFFSET", + "YES", + "YES-NO", + "YES-NO-CANCEL", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_php_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_php_builtins.py index 19825fa..af21cf1 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_php_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_php_builtins.py @@ -1,3251 +1,3458 @@ """ - pygments.lexers._php_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._php_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - This file loads the function names and their modules from the - php webpage and generates itself. +This file loads the function names and their modules from the +php webpage and generates itself. - Run with `python -I` to regenerate. +Run with `python -I` to regenerate. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ -MODULES = {'APCu': ('apcu_add', - 'apcu_cache_info', - 'apcu_cas', - 'apcu_clear_cache', - 'apcu_dec', - 'apcu_delete', - 'apcu_enabled', - 'apcu_entry', - 'apcu_exists', - 'apcu_fetch', - 'apcu_inc', - 'apcu_key_info', - 'apcu_sma_info', - 'apcu_store'), - 'Aliases and deprecated Mysqli': ('mysqli_connect', - 'mysqli_execute', - 'mysqli_get_client_stats', - 'mysqli_get_links_stats', - 'mysqli_report'), - 'Apache': ('apache_child_terminate', - 'apache_get_modules', - 'apache_get_version', - 'apache_getenv', - 'apache_lookup_uri', - 'apache_note', - 'apache_request_headers', - 'apache_response_headers', - 'apache_setenv', - 'getallheaders', - 'virtual'), - 'Array': ('array_change_key_case', - 'array_chunk', - 'array_column', - 'array_combine', - 'array_count_values', - 'array_diff_assoc', - 'array_diff_key', - 'array_diff_uassoc', - 'array_diff_ukey', - 'array_diff', - 'array_fill_keys', - 'array_fill', - 'array_filter', - 'array_flip', - 'array_intersect_assoc', - 'array_intersect_key', - 'array_intersect_uassoc', - 'array_intersect_ukey', - 'array_intersect', - 'array_is_list', - 'array_key_exists', - 'array_key_first', - 'array_key_last', - 'array_keys', - 'array_map', - 'array_merge_recursive', - 'array_merge', - 'array_multisort', - 'array_pad', - 'array_pop', - 'array_product', - 'array_push', - 'array_rand', - 'array_reduce', - 'array_replace_recursive', - 'array_replace', - 'array_reverse', - 'array_search', - 'array_shift', - 'array_slice', - 'array_splice', - 'array_sum', - 'array_udiff_assoc', - 'array_udiff_uassoc', - 'array_udiff', - 'array_uintersect_assoc', - 'array_uintersect_uassoc', - 'array_uintersect', - 'array_unique', - 'array_unshift', - 'array_values', - 'array_walk_recursive', - 'array_walk', - 'array', - 'arsort', - 'asort', - 'compact', - 'count', - 'current', - 'each', - 'end', - 'extract', - 'in_array', - 'key_exists', - 'key', - 'krsort', - 'ksort', - 'list', - 'natcasesort', - 'natsort', - 'next', - 'pos', - 'prev', - 'range', - 'reset', - 'rsort', - 'shuffle', - 'sizeof', - 'sort', - 'uasort', - 'uksort', - 'usort'), - 'BC Math': ('bcadd', - 'bccomp', - 'bcdiv', - 'bcmod', - 'bcmul', - 'bcpow', - 'bcpowmod', - 'bcscale', - 'bcsqrt', - 'bcsub'), - 'Bzip2': ('bzclose', - 'bzcompress', - 'bzdecompress', - 'bzerrno', - 'bzerror', - 'bzerrstr', - 'bzflush', - 'bzopen', - 'bzread', - 'bzwrite'), - 'COM': ('com_create_guid', - 'com_event_sink', - 'com_get_active_object', - 'com_load_typelib', - 'com_message_pump', - 'com_print_typeinfo', - 'variant_abs', - 'variant_add', - 'variant_and', - 'variant_cast', - 'variant_cat', - 'variant_cmp', - 'variant_date_from_timestamp', - 'variant_date_to_timestamp', - 'variant_div', - 'variant_eqv', - 'variant_fix', - 'variant_get_type', - 'variant_idiv', - 'variant_imp', - 'variant_int', - 'variant_mod', - 'variant_mul', - 'variant_neg', - 'variant_not', - 'variant_or', - 'variant_pow', - 'variant_round', - 'variant_set_type', - 'variant_set', - 'variant_sub', - 'variant_xor'), - 'CSPRNG': ('random_bytes', 'random_int'), - 'CUBRID': ('cubrid_bind', - 'cubrid_close_prepare', - 'cubrid_close_request', - 'cubrid_col_get', - 'cubrid_col_size', - 'cubrid_column_names', - 'cubrid_column_types', - 'cubrid_commit', - 'cubrid_connect_with_url', - 'cubrid_connect', - 'cubrid_current_oid', - 'cubrid_disconnect', - 'cubrid_drop', - 'cubrid_error_code_facility', - 'cubrid_error_code', - 'cubrid_error_msg', - 'cubrid_execute', - 'cubrid_fetch', - 'cubrid_free_result', - 'cubrid_get_autocommit', - 'cubrid_get_charset', - 'cubrid_get_class_name', - 'cubrid_get_client_info', - 'cubrid_get_db_parameter', - 'cubrid_get_query_timeout', - 'cubrid_get_server_info', - 'cubrid_get', - 'cubrid_insert_id', - 'cubrid_is_instance', - 'cubrid_lob_close', - 'cubrid_lob_export', - 'cubrid_lob_get', - 'cubrid_lob_send', - 'cubrid_lob_size', - 'cubrid_lob2_bind', - 'cubrid_lob2_close', - 'cubrid_lob2_export', - 'cubrid_lob2_import', - 'cubrid_lob2_new', - 'cubrid_lob2_read', - 'cubrid_lob2_seek64', - 'cubrid_lob2_seek', - 'cubrid_lob2_size64', - 'cubrid_lob2_size', - 'cubrid_lob2_tell64', - 'cubrid_lob2_tell', - 'cubrid_lob2_write', - 'cubrid_lock_read', - 'cubrid_lock_write', - 'cubrid_move_cursor', - 'cubrid_next_result', - 'cubrid_num_cols', - 'cubrid_num_rows', - 'cubrid_pconnect_with_url', - 'cubrid_pconnect', - 'cubrid_prepare', - 'cubrid_put', - 'cubrid_rollback', - 'cubrid_schema', - 'cubrid_seq_drop', - 'cubrid_seq_insert', - 'cubrid_seq_put', - 'cubrid_set_add', - 'cubrid_set_autocommit', - 'cubrid_set_db_parameter', - 'cubrid_set_drop', - 'cubrid_set_query_timeout', - 'cubrid_version'), - 'Calendar': ('cal_days_in_month', - 'cal_from_jd', - 'cal_info', - 'cal_to_jd', - 'easter_date', - 'easter_days', - 'frenchtojd', - 'gregoriantojd', - 'jddayofweek', - 'jdmonthname', - 'jdtofrench', - 'jdtogregorian', - 'jdtojewish', - 'jdtojulian', - 'jdtounix', - 'jewishtojd', - 'juliantojd', - 'unixtojd'), - 'Classes/Object': ('__autoload', - 'class_alias', - 'class_exists', - 'enum_exists', - 'get_called_class', - 'get_class_methods', - 'get_class_vars', - 'get_class', - 'get_declared_classes', - 'get_declared_interfaces', - 'get_declared_traits', - 'get_mangled_object_vars', - 'get_object_vars', - 'get_parent_class', - 'interface_exists', - 'is_a', - 'is_subclass_of', - 'method_exists', - 'property_exists', - 'trait_exists'), - 'Ctype': ('ctype_alnum', - 'ctype_alpha', - 'ctype_cntrl', - 'ctype_digit', - 'ctype_graph', - 'ctype_lower', - 'ctype_print', - 'ctype_punct', - 'ctype_space', - 'ctype_upper', - 'ctype_xdigit'), - 'DBA': ('dba_close', - 'dba_delete', - 'dba_exists', - 'dba_fetch', - 'dba_firstkey', - 'dba_handlers', - 'dba_insert', - 'dba_key_split', - 'dba_list', - 'dba_nextkey', - 'dba_open', - 'dba_optimize', - 'dba_popen', - 'dba_replace', - 'dba_sync'), - 'DOM': ('dom_import_simplexml',), - 'Date/Time': ('checkdate', - 'date_add', - 'date_create_from_format', - 'date_create_immutable_from_format', - 'date_create_immutable', - 'date_create', - 'date_date_set', - 'date_default_timezone_get', - 'date_default_timezone_set', - 'date_diff', - 'date_format', - 'date_get_last_errors', - 'date_interval_create_from_date_string', - 'date_interval_format', - 'date_isodate_set', - 'date_modify', - 'date_offset_get', - 'date_parse_from_format', - 'date_parse', - 'date_sub', - 'date_sun_info', - 'date_sunrise', - 'date_sunset', - 'date_time_set', - 'date_timestamp_get', - 'date_timestamp_set', - 'date_timezone_get', - 'date_timezone_set', - 'date', - 'getdate', - 'gettimeofday', - 'gmdate', - 'gmmktime', - 'gmstrftime', - 'idate', - 'localtime', - 'microtime', - 'mktime', - 'strftime', - 'strptime', - 'strtotime', - 'time', - 'timezone_abbreviations_list', - 'timezone_identifiers_list', - 'timezone_location_get', - 'timezone_name_from_abbr', - 'timezone_name_get', - 'timezone_offset_get', - 'timezone_open', - 'timezone_transitions_get', - 'timezone_version_get'), - 'Direct IO': ('dio_close', - 'dio_fcntl', - 'dio_open', - 'dio_read', - 'dio_seek', - 'dio_stat', - 'dio_tcsetattr', - 'dio_truncate', - 'dio_write'), - 'Directory': ('chdir', - 'chroot', - 'closedir', - 'dir', - 'getcwd', - 'opendir', - 'readdir', - 'rewinddir', - 'scandir'), - 'Eio': ('eio_busy', - 'eio_cancel', - 'eio_chmod', - 'eio_chown', - 'eio_close', - 'eio_custom', - 'eio_dup2', - 'eio_event_loop', - 'eio_fallocate', - 'eio_fchmod', - 'eio_fchown', - 'eio_fdatasync', - 'eio_fstat', - 'eio_fstatvfs', - 'eio_fsync', - 'eio_ftruncate', - 'eio_futime', - 'eio_get_event_stream', - 'eio_get_last_error', - 'eio_grp_add', - 'eio_grp_cancel', - 'eio_grp_limit', - 'eio_grp', - 'eio_init', - 'eio_link', - 'eio_lstat', - 'eio_mkdir', - 'eio_mknod', - 'eio_nop', - 'eio_npending', - 'eio_nready', - 'eio_nreqs', - 'eio_nthreads', - 'eio_open', - 'eio_poll', - 'eio_read', - 'eio_readahead', - 'eio_readdir', - 'eio_readlink', - 'eio_realpath', - 'eio_rename', - 'eio_rmdir', - 'eio_seek', - 'eio_sendfile', - 'eio_set_max_idle', - 'eio_set_max_parallel', - 'eio_set_max_poll_reqs', - 'eio_set_max_poll_time', - 'eio_set_min_parallel', - 'eio_stat', - 'eio_statvfs', - 'eio_symlink', - 'eio_sync_file_range', - 'eio_sync', - 'eio_syncfs', - 'eio_truncate', - 'eio_unlink', - 'eio_utime', - 'eio_write'), - 'Enchant': ('enchant_broker_describe', - 'enchant_broker_dict_exists', - 'enchant_broker_free_dict', - 'enchant_broker_free', - 'enchant_broker_get_dict_path', - 'enchant_broker_get_error', - 'enchant_broker_init', - 'enchant_broker_list_dicts', - 'enchant_broker_request_dict', - 'enchant_broker_request_pwl_dict', - 'enchant_broker_set_dict_path', - 'enchant_broker_set_ordering', - 'enchant_dict_add_to_personal', - 'enchant_dict_add_to_session', - 'enchant_dict_add', - 'enchant_dict_check', - 'enchant_dict_describe', - 'enchant_dict_get_error', - 'enchant_dict_is_added', - 'enchant_dict_is_in_session', - 'enchant_dict_quick_check', - 'enchant_dict_store_replacement', - 'enchant_dict_suggest'), - 'Error Handling': ('debug_backtrace', - 'debug_print_backtrace', - 'error_clear_last', - 'error_get_last', - 'error_log', - 'error_reporting', - 'restore_error_handler', - 'restore_exception_handler', - 'set_error_handler', - 'set_exception_handler', - 'trigger_error', - 'user_error'), - 'Exif': ('exif_imagetype', - 'exif_read_data', - 'exif_tagname', - 'exif_thumbnail', - 'read_exif_data'), - 'Expect': ('expect_expectl', 'expect_popen'), - 'FDF': ('fdf_add_doc_javascript', - 'fdf_add_template', - 'fdf_close', - 'fdf_create', - 'fdf_enum_values', - 'fdf_errno', - 'fdf_error', - 'fdf_get_ap', - 'fdf_get_attachment', - 'fdf_get_encoding', - 'fdf_get_file', - 'fdf_get_flags', - 'fdf_get_opt', - 'fdf_get_status', - 'fdf_get_value', - 'fdf_get_version', - 'fdf_header', - 'fdf_next_field_name', - 'fdf_open_string', - 'fdf_open', - 'fdf_remove_item', - 'fdf_save_string', - 'fdf_save', - 'fdf_set_ap', - 'fdf_set_encoding', - 'fdf_set_file', - 'fdf_set_flags', - 'fdf_set_javascript_action', - 'fdf_set_on_import_javascript', - 'fdf_set_opt', - 'fdf_set_status', - 'fdf_set_submit_form_action', - 'fdf_set_target_frame', - 'fdf_set_value', - 'fdf_set_version'), - 'FPM': ('fastcgi_finish_request',), - 'FTP': ('ftp_alloc', - 'ftp_append', - 'ftp_cdup', - 'ftp_chdir', - 'ftp_chmod', - 'ftp_close', - 'ftp_connect', - 'ftp_delete', - 'ftp_exec', - 'ftp_fget', - 'ftp_fput', - 'ftp_get_option', - 'ftp_get', - 'ftp_login', - 'ftp_mdtm', - 'ftp_mkdir', - 'ftp_mlsd', - 'ftp_nb_continue', - 'ftp_nb_fget', - 'ftp_nb_fput', - 'ftp_nb_get', - 'ftp_nb_put', - 'ftp_nlist', - 'ftp_pasv', - 'ftp_put', - 'ftp_pwd', - 'ftp_quit', - 'ftp_raw', - 'ftp_rawlist', - 'ftp_rename', - 'ftp_rmdir', - 'ftp_set_option', - 'ftp_site', - 'ftp_size', - 'ftp_ssl_connect', - 'ftp_systype'), - 'Fann': ('fann_cascadetrain_on_data', - 'fann_cascadetrain_on_file', - 'fann_clear_scaling_params', - 'fann_copy', - 'fann_create_from_file', - 'fann_create_shortcut_array', - 'fann_create_shortcut', - 'fann_create_sparse_array', - 'fann_create_sparse', - 'fann_create_standard_array', - 'fann_create_standard', - 'fann_create_train_from_callback', - 'fann_create_train', - 'fann_descale_input', - 'fann_descale_output', - 'fann_descale_train', - 'fann_destroy_train', - 'fann_destroy', - 'fann_duplicate_train_data', - 'fann_get_activation_function', - 'fann_get_activation_steepness', - 'fann_get_bias_array', - 'fann_get_bit_fail_limit', - 'fann_get_bit_fail', - 'fann_get_cascade_activation_functions_count', - 'fann_get_cascade_activation_functions', - 'fann_get_cascade_activation_steepnesses_count', - 'fann_get_cascade_activation_steepnesses', - 'fann_get_cascade_candidate_change_fraction', - 'fann_get_cascade_candidate_limit', - 'fann_get_cascade_candidate_stagnation_epochs', - 'fann_get_cascade_max_cand_epochs', - 'fann_get_cascade_max_out_epochs', - 'fann_get_cascade_min_cand_epochs', - 'fann_get_cascade_min_out_epochs', - 'fann_get_cascade_num_candidate_groups', - 'fann_get_cascade_num_candidates', - 'fann_get_cascade_output_change_fraction', - 'fann_get_cascade_output_stagnation_epochs', - 'fann_get_cascade_weight_multiplier', - 'fann_get_connection_array', - 'fann_get_connection_rate', - 'fann_get_errno', - 'fann_get_errstr', - 'fann_get_layer_array', - 'fann_get_learning_momentum', - 'fann_get_learning_rate', - 'fann_get_MSE', - 'fann_get_network_type', - 'fann_get_num_input', - 'fann_get_num_layers', - 'fann_get_num_output', - 'fann_get_quickprop_decay', - 'fann_get_quickprop_mu', - 'fann_get_rprop_decrease_factor', - 'fann_get_rprop_delta_max', - 'fann_get_rprop_delta_min', - 'fann_get_rprop_delta_zero', - 'fann_get_rprop_increase_factor', - 'fann_get_sarprop_step_error_shift', - 'fann_get_sarprop_step_error_threshold_factor', - 'fann_get_sarprop_temperature', - 'fann_get_sarprop_weight_decay_shift', - 'fann_get_total_connections', - 'fann_get_total_neurons', - 'fann_get_train_error_function', - 'fann_get_train_stop_function', - 'fann_get_training_algorithm', - 'fann_init_weights', - 'fann_length_train_data', - 'fann_merge_train_data', - 'fann_num_input_train_data', - 'fann_num_output_train_data', - 'fann_print_error', - 'fann_randomize_weights', - 'fann_read_train_from_file', - 'fann_reset_errno', - 'fann_reset_errstr', - 'fann_reset_MSE', - 'fann_run', - 'fann_save_train', - 'fann_save', - 'fann_scale_input_train_data', - 'fann_scale_input', - 'fann_scale_output_train_data', - 'fann_scale_output', - 'fann_scale_train_data', - 'fann_scale_train', - 'fann_set_activation_function_hidden', - 'fann_set_activation_function_layer', - 'fann_set_activation_function_output', - 'fann_set_activation_function', - 'fann_set_activation_steepness_hidden', - 'fann_set_activation_steepness_layer', - 'fann_set_activation_steepness_output', - 'fann_set_activation_steepness', - 'fann_set_bit_fail_limit', - 'fann_set_callback', - 'fann_set_cascade_activation_functions', - 'fann_set_cascade_activation_steepnesses', - 'fann_set_cascade_candidate_change_fraction', - 'fann_set_cascade_candidate_limit', - 'fann_set_cascade_candidate_stagnation_epochs', - 'fann_set_cascade_max_cand_epochs', - 'fann_set_cascade_max_out_epochs', - 'fann_set_cascade_min_cand_epochs', - 'fann_set_cascade_min_out_epochs', - 'fann_set_cascade_num_candidate_groups', - 'fann_set_cascade_output_change_fraction', - 'fann_set_cascade_output_stagnation_epochs', - 'fann_set_cascade_weight_multiplier', - 'fann_set_error_log', - 'fann_set_input_scaling_params', - 'fann_set_learning_momentum', - 'fann_set_learning_rate', - 'fann_set_output_scaling_params', - 'fann_set_quickprop_decay', - 'fann_set_quickprop_mu', - 'fann_set_rprop_decrease_factor', - 'fann_set_rprop_delta_max', - 'fann_set_rprop_delta_min', - 'fann_set_rprop_delta_zero', - 'fann_set_rprop_increase_factor', - 'fann_set_sarprop_step_error_shift', - 'fann_set_sarprop_step_error_threshold_factor', - 'fann_set_sarprop_temperature', - 'fann_set_sarprop_weight_decay_shift', - 'fann_set_scaling_params', - 'fann_set_train_error_function', - 'fann_set_train_stop_function', - 'fann_set_training_algorithm', - 'fann_set_weight_array', - 'fann_set_weight', - 'fann_shuffle_train_data', - 'fann_subset_train_data', - 'fann_test_data', - 'fann_test', - 'fann_train_epoch', - 'fann_train_on_data', - 'fann_train_on_file', - 'fann_train'), - 'Fileinfo': ('finfo_buffer', - 'finfo_close', - 'finfo_file', - 'finfo_open', - 'finfo_set_flags', - 'mime_content_type'), - 'Filesystem': ('basename', - 'chgrp', - 'chmod', - 'chown', - 'clearstatcache', - 'copy', - 'dirname', - 'disk_free_space', - 'disk_total_space', - 'diskfreespace', - 'fclose', - 'fdatasync', - 'feof', - 'fflush', - 'fgetc', - 'fgetcsv', - 'fgets', - 'fgetss', - 'file_exists', - 'file_get_contents', - 'file_put_contents', - 'file', - 'fileatime', - 'filectime', - 'filegroup', - 'fileinode', - 'filemtime', - 'fileowner', - 'fileperms', - 'filesize', - 'filetype', - 'flock', - 'fnmatch', - 'fopen', - 'fpassthru', - 'fputcsv', - 'fputs', - 'fread', - 'fscanf', - 'fseek', - 'fstat', - 'fsync', - 'ftell', - 'ftruncate', - 'fwrite', - 'glob', - 'is_dir', - 'is_executable', - 'is_file', - 'is_link', - 'is_readable', - 'is_uploaded_file', - 'is_writable', - 'is_writeable', - 'lchgrp', - 'lchown', - 'link', - 'linkinfo', - 'lstat', - 'mkdir', - 'move_uploaded_file', - 'parse_ini_file', - 'parse_ini_string', - 'pathinfo', - 'pclose', - 'popen', - 'readfile', - 'readlink', - 'realpath_cache_get', - 'realpath_cache_size', - 'realpath', - 'rename', - 'rewind', - 'rmdir', - 'set_file_buffer', - 'stat', - 'symlink', - 'tempnam', - 'tmpfile', - 'touch', - 'umask', - 'unlink'), - 'Filter': ('filter_has_var', - 'filter_id', - 'filter_input_array', - 'filter_input', - 'filter_list', - 'filter_var_array', - 'filter_var'), - 'Firebird/InterBase': ('fbird_add_user', - 'fbird_affected_rows', - 'fbird_backup', - 'fbird_blob_add', - 'fbird_blob_cancel', - 'fbird_blob_close', - 'fbird_blob_create', - 'fbird_blob_echo', - 'fbird_blob_get', - 'fbird_blob_import', - 'fbird_blob_info', - 'fbird_blob_open', - 'fbird_close', - 'fbird_commit_ret', - 'fbird_commit', - 'fbird_connect', - 'fbird_db_info', - 'fbird_delete_user', - 'fbird_drop_db', - 'fbird_errcode', - 'fbird_errmsg', - 'fbird_execute', - 'fbird_fetch_assoc', - 'fbird_fetch_object', - 'fbird_fetch_row', - 'fbird_field_info', - 'fbird_free_event_handler', - 'fbird_free_query', - 'fbird_free_result', - 'fbird_gen_id', - 'fbird_maintain_db', - 'fbird_modify_user', - 'fbird_name_result', - 'fbird_num_fields', - 'fbird_num_params', - 'fbird_param_info', - 'fbird_pconnect', - 'fbird_prepare', - 'fbird_query', - 'fbird_restore', - 'fbird_rollback_ret', - 'fbird_rollback', - 'fbird_server_info', - 'fbird_service_attach', - 'fbird_service_detach', - 'fbird_set_event_handler', - 'fbird_trans', - 'fbird_wait_event', - 'ibase_add_user', - 'ibase_affected_rows', - 'ibase_backup', - 'ibase_blob_add', - 'ibase_blob_cancel', - 'ibase_blob_close', - 'ibase_blob_create', - 'ibase_blob_echo', - 'ibase_blob_get', - 'ibase_blob_import', - 'ibase_blob_info', - 'ibase_blob_open', - 'ibase_close', - 'ibase_commit_ret', - 'ibase_commit', - 'ibase_connect', - 'ibase_db_info', - 'ibase_delete_user', - 'ibase_drop_db', - 'ibase_errcode', - 'ibase_errmsg', - 'ibase_execute', - 'ibase_fetch_assoc', - 'ibase_fetch_object', - 'ibase_fetch_row', - 'ibase_field_info', - 'ibase_free_event_handler', - 'ibase_free_query', - 'ibase_free_result', - 'ibase_gen_id', - 'ibase_maintain_db', - 'ibase_modify_user', - 'ibase_name_result', - 'ibase_num_fields', - 'ibase_num_params', - 'ibase_param_info', - 'ibase_pconnect', - 'ibase_prepare', - 'ibase_query', - 'ibase_restore', - 'ibase_rollback_ret', - 'ibase_rollback', - 'ibase_server_info', - 'ibase_service_attach', - 'ibase_service_detach', - 'ibase_set_event_handler', - 'ibase_trans', - 'ibase_wait_event'), - 'Function handling': ('call_user_func_array', - 'call_user_func', - 'create_function', - 'forward_static_call_array', - 'forward_static_call', - 'func_get_arg', - 'func_get_args', - 'func_num_args', - 'function_exists', - 'get_defined_functions', - 'register_shutdown_function', - 'register_tick_function', - 'unregister_tick_function'), - 'GD and Image': ('gd_info', - 'getimagesize', - 'getimagesizefromstring', - 'image_type_to_extension', - 'image_type_to_mime_type', - 'image2wbmp', - 'imageaffine', - 'imageaffinematrixconcat', - 'imageaffinematrixget', - 'imagealphablending', - 'imageantialias', - 'imagearc', - 'imageavif', - 'imagebmp', - 'imagechar', - 'imagecharup', - 'imagecolorallocate', - 'imagecolorallocatealpha', - 'imagecolorat', - 'imagecolorclosest', - 'imagecolorclosestalpha', - 'imagecolorclosesthwb', - 'imagecolordeallocate', - 'imagecolorexact', - 'imagecolorexactalpha', - 'imagecolormatch', - 'imagecolorresolve', - 'imagecolorresolvealpha', - 'imagecolorset', - 'imagecolorsforindex', - 'imagecolorstotal', - 'imagecolortransparent', - 'imageconvolution', - 'imagecopy', - 'imagecopymerge', - 'imagecopymergegray', - 'imagecopyresampled', - 'imagecopyresized', - 'imagecreate', - 'imagecreatefromavif', - 'imagecreatefrombmp', - 'imagecreatefromgd2', - 'imagecreatefromgd2part', - 'imagecreatefromgd', - 'imagecreatefromgif', - 'imagecreatefromjpeg', - 'imagecreatefrompng', - 'imagecreatefromstring', - 'imagecreatefromtga', - 'imagecreatefromwbmp', - 'imagecreatefromwebp', - 'imagecreatefromxbm', - 'imagecreatefromxpm', - 'imagecreatetruecolor', - 'imagecrop', - 'imagecropauto', - 'imagedashedline', - 'imagedestroy', - 'imageellipse', - 'imagefill', - 'imagefilledarc', - 'imagefilledellipse', - 'imagefilledpolygon', - 'imagefilledrectangle', - 'imagefilltoborder', - 'imagefilter', - 'imageflip', - 'imagefontheight', - 'imagefontwidth', - 'imageftbbox', - 'imagefttext', - 'imagegammacorrect', - 'imagegd2', - 'imagegd', - 'imagegetclip', - 'imagegetinterpolation', - 'imagegif', - 'imagegrabscreen', - 'imagegrabwindow', - 'imageinterlace', - 'imageistruecolor', - 'imagejpeg', - 'imagelayereffect', - 'imageline', - 'imageloadfont', - 'imageopenpolygon', - 'imagepalettecopy', - 'imagepalettetotruecolor', - 'imagepng', - 'imagepolygon', - 'imagerectangle', - 'imageresolution', - 'imagerotate', - 'imagesavealpha', - 'imagescale', - 'imagesetbrush', - 'imagesetclip', - 'imagesetinterpolation', - 'imagesetpixel', - 'imagesetstyle', - 'imagesetthickness', - 'imagesettile', - 'imagestring', - 'imagestringup', - 'imagesx', - 'imagesy', - 'imagetruecolortopalette', - 'imagettfbbox', - 'imagettftext', - 'imagetypes', - 'imagewbmp', - 'imagewebp', - 'imagexbm', - 'iptcembed', - 'iptcparse', - 'jpeg2wbmp', - 'png2wbmp'), - 'GMP': ('gmp_abs', - 'gmp_add', - 'gmp_and', - 'gmp_binomial', - 'gmp_clrbit', - 'gmp_cmp', - 'gmp_com', - 'gmp_div_q', - 'gmp_div_qr', - 'gmp_div_r', - 'gmp_div', - 'gmp_divexact', - 'gmp_export', - 'gmp_fact', - 'gmp_gcd', - 'gmp_gcdext', - 'gmp_hamdist', - 'gmp_import', - 'gmp_init', - 'gmp_intval', - 'gmp_invert', - 'gmp_jacobi', - 'gmp_kronecker', - 'gmp_lcm', - 'gmp_legendre', - 'gmp_mod', - 'gmp_mul', - 'gmp_neg', - 'gmp_nextprime', - 'gmp_or', - 'gmp_perfect_power', - 'gmp_perfect_square', - 'gmp_popcount', - 'gmp_pow', - 'gmp_powm', - 'gmp_prob_prime', - 'gmp_random_bits', - 'gmp_random_range', - 'gmp_random_seed', - 'gmp_random', - 'gmp_root', - 'gmp_rootrem', - 'gmp_scan0', - 'gmp_scan1', - 'gmp_setbit', - 'gmp_sign', - 'gmp_sqrt', - 'gmp_sqrtrem', - 'gmp_strval', - 'gmp_sub', - 'gmp_testbit', - 'gmp_xor'), - 'GeoIP': ('geoip_asnum_by_name', - 'geoip_continent_code_by_name', - 'geoip_country_code_by_name', - 'geoip_country_code3_by_name', - 'geoip_country_name_by_name', - 'geoip_database_info', - 'geoip_db_avail', - 'geoip_db_filename', - 'geoip_db_get_all_info', - 'geoip_domain_by_name', - 'geoip_id_by_name', - 'geoip_isp_by_name', - 'geoip_netspeedcell_by_name', - 'geoip_org_by_name', - 'geoip_record_by_name', - 'geoip_region_by_name', - 'geoip_region_name_by_code', - 'geoip_setup_custom_directory', - 'geoip_time_zone_by_country_and_region'), - 'Gettext': ('bind_textdomain_codeset', - 'bindtextdomain', - 'dcgettext', - 'dcngettext', - 'dgettext', - 'dngettext', - 'gettext', - 'ngettext', - 'textdomain'), - 'GnuPG': ('gnupg_adddecryptkey', - 'gnupg_addencryptkey', - 'gnupg_addsignkey', - 'gnupg_cleardecryptkeys', - 'gnupg_clearencryptkeys', - 'gnupg_clearsignkeys', - 'gnupg_decrypt', - 'gnupg_decryptverify', - 'gnupg_encrypt', - 'gnupg_encryptsign', - 'gnupg_export', - 'gnupg_getengineinfo', - 'gnupg_geterror', - 'gnupg_geterrorinfo', - 'gnupg_getprotocol', - 'gnupg_import', - 'gnupg_init', - 'gnupg_keyinfo', - 'gnupg_setarmor', - 'gnupg_seterrormode', - 'gnupg_setsignmode', - 'gnupg_sign', - 'gnupg_verify'), - 'Grapheme': ('grapheme_extract', - 'grapheme_stripos', - 'grapheme_stristr', - 'grapheme_strlen', - 'grapheme_strpos', - 'grapheme_strripos', - 'grapheme_strrpos', - 'grapheme_strstr', - 'grapheme_substr'), - 'Hash': ('hash_algos', - 'hash_copy', - 'hash_equals', - 'hash_file', - 'hash_final', - 'hash_hkdf', - 'hash_hmac_algos', - 'hash_hmac_file', - 'hash_hmac', - 'hash_init', - 'hash_pbkdf2', - 'hash_update_file', - 'hash_update_stream', - 'hash_update', - 'hash'), - 'IBM DB2': ('db2_autocommit', - 'db2_bind_param', - 'db2_client_info', - 'db2_close', - 'db2_column_privileges', - 'db2_columns', - 'db2_commit', - 'db2_conn_error', - 'db2_conn_errormsg', - 'db2_connect', - 'db2_cursor_type', - 'db2_escape_string', - 'db2_exec', - 'db2_execute', - 'db2_fetch_array', - 'db2_fetch_assoc', - 'db2_fetch_both', - 'db2_fetch_object', - 'db2_fetch_row', - 'db2_field_display_size', - 'db2_field_name', - 'db2_field_num', - 'db2_field_precision', - 'db2_field_scale', - 'db2_field_type', - 'db2_field_width', - 'db2_foreign_keys', - 'db2_free_result', - 'db2_free_stmt', - 'db2_get_option', - 'db2_last_insert_id', - 'db2_lob_read', - 'db2_next_result', - 'db2_num_fields', - 'db2_num_rows', - 'db2_pclose', - 'db2_pconnect', - 'db2_prepare', - 'db2_primary_keys', - 'db2_procedure_columns', - 'db2_procedures', - 'db2_result', - 'db2_rollback', - 'db2_server_info', - 'db2_set_option', - 'db2_special_columns', - 'db2_statistics', - 'db2_stmt_error', - 'db2_stmt_errormsg', - 'db2_table_privileges', - 'db2_tables'), - 'IDN': ('idn_to_ascii', 'idn_to_utf8'), - 'IMAP': ('imap_8bit', - 'imap_alerts', - 'imap_append', - 'imap_base64', - 'imap_binary', - 'imap_body', - 'imap_bodystruct', - 'imap_check', - 'imap_clearflag_full', - 'imap_close', - 'imap_create', - 'imap_createmailbox', - 'imap_delete', - 'imap_deletemailbox', - 'imap_errors', - 'imap_expunge', - 'imap_fetch_overview', - 'imap_fetchbody', - 'imap_fetchheader', - 'imap_fetchmime', - 'imap_fetchstructure', - 'imap_fetchtext', - 'imap_gc', - 'imap_get_quota', - 'imap_get_quotaroot', - 'imap_getacl', - 'imap_getmailboxes', - 'imap_getsubscribed', - 'imap_header', - 'imap_headerinfo', - 'imap_headers', - 'imap_last_error', - 'imap_list', - 'imap_listmailbox', - 'imap_listscan', - 'imap_listsubscribed', - 'imap_lsub', - 'imap_mail_compose', - 'imap_mail_copy', - 'imap_mail_move', - 'imap_mail', - 'imap_mailboxmsginfo', - 'imap_mime_header_decode', - 'imap_msgno', - 'imap_mutf7_to_utf8', - 'imap_num_msg', - 'imap_num_recent', - 'imap_open', - 'imap_ping', - 'imap_qprint', - 'imap_rename', - 'imap_renamemailbox', - 'imap_reopen', - 'imap_rfc822_parse_adrlist', - 'imap_rfc822_parse_headers', - 'imap_rfc822_write_address', - 'imap_savebody', - 'imap_scan', - 'imap_scanmailbox', - 'imap_search', - 'imap_set_quota', - 'imap_setacl', - 'imap_setflag_full', - 'imap_sort', - 'imap_status', - 'imap_subscribe', - 'imap_thread', - 'imap_timeout', - 'imap_uid', - 'imap_undelete', - 'imap_unsubscribe', - 'imap_utf7_decode', - 'imap_utf7_encode', - 'imap_utf8_to_mutf7', - 'imap_utf8'), - 'Igbinary': ('igbinary_serialize', 'igbinary_unserialize'), - 'Inotify': ('inotify_add_watch', - 'inotify_init', - 'inotify_queue_len', - 'inotify_read', - 'inotify_rm_watch'), - 'JSON': ('json_decode', - 'json_encode', - 'json_last_error_msg', - 'json_last_error'), - 'LDAP': ('ldap_8859_to_t61', - 'ldap_add_ext', - 'ldap_add', - 'ldap_bind_ext', - 'ldap_bind', - 'ldap_close', - 'ldap_compare', - 'ldap_connect', - 'ldap_control_paged_result_response', - 'ldap_control_paged_result', - 'ldap_count_entries', - 'ldap_count_references', - 'ldap_delete_ext', - 'ldap_delete', - 'ldap_dn2ufn', - 'ldap_err2str', - 'ldap_errno', - 'ldap_error', - 'ldap_escape', - 'ldap_exop_passwd', - 'ldap_exop_refresh', - 'ldap_exop_whoami', - 'ldap_exop', - 'ldap_explode_dn', - 'ldap_first_attribute', - 'ldap_first_entry', - 'ldap_first_reference', - 'ldap_free_result', - 'ldap_get_attributes', - 'ldap_get_dn', - 'ldap_get_entries', - 'ldap_get_option', - 'ldap_get_values_len', - 'ldap_get_values', - 'ldap_list', - 'ldap_mod_add_ext', - 'ldap_mod_add', - 'ldap_mod_del_ext', - 'ldap_mod_del', - 'ldap_mod_replace_ext', - 'ldap_mod_replace', - 'ldap_modify_batch', - 'ldap_modify', - 'ldap_next_attribute', - 'ldap_next_entry', - 'ldap_next_reference', - 'ldap_parse_exop', - 'ldap_parse_reference', - 'ldap_parse_result', - 'ldap_read', - 'ldap_rename_ext', - 'ldap_rename', - 'ldap_sasl_bind', - 'ldap_search', - 'ldap_set_option', - 'ldap_set_rebind_proc', - 'ldap_sort', - 'ldap_start_tls', - 'ldap_t61_to_8859', - 'ldap_unbind'), - 'LZF': ('lzf_compress', 'lzf_decompress', 'lzf_optimized_for'), - 'Mail': ('ezmlm_hash', 'mail'), - 'Mailparse': ('mailparse_determine_best_xfer_encoding', - 'mailparse_msg_create', - 'mailparse_msg_extract_part_file', - 'mailparse_msg_extract_part', - 'mailparse_msg_extract_whole_part_file', - 'mailparse_msg_free', - 'mailparse_msg_get_part_data', - 'mailparse_msg_get_part', - 'mailparse_msg_get_structure', - 'mailparse_msg_parse_file', - 'mailparse_msg_parse', - 'mailparse_rfc822_parse_addresses', - 'mailparse_stream_encode', - 'mailparse_uudecode_all'), - 'Math': ('abs', - 'acos', - 'acosh', - 'asin', - 'asinh', - 'atan2', - 'atan', - 'atanh', - 'base_convert', - 'bindec', - 'ceil', - 'cos', - 'cosh', - 'decbin', - 'dechex', - 'decoct', - 'deg2rad', - 'exp', - 'expm1', - 'fdiv', - 'floor', - 'fmod', - 'getrandmax', - 'hexdec', - 'hypot', - 'intdiv', - 'is_finite', - 'is_infinite', - 'is_nan', - 'lcg_value', - 'log10', - 'log1p', - 'log', - 'max', - 'min', - 'mt_getrandmax', - 'mt_rand', - 'mt_srand', - 'octdec', - 'pi', - 'pow', - 'rad2deg', - 'rand', - 'round', - 'sin', - 'sinh', - 'sqrt', - 'srand', - 'tan', - 'tanh'), - 'Mcrypt': ('mcrypt_create_iv', - 'mcrypt_decrypt', - 'mcrypt_enc_get_algorithms_name', - 'mcrypt_enc_get_block_size', - 'mcrypt_enc_get_iv_size', - 'mcrypt_enc_get_key_size', - 'mcrypt_enc_get_modes_name', - 'mcrypt_enc_get_supported_key_sizes', - 'mcrypt_enc_is_block_algorithm_mode', - 'mcrypt_enc_is_block_algorithm', - 'mcrypt_enc_is_block_mode', - 'mcrypt_enc_self_test', - 'mcrypt_encrypt', - 'mcrypt_generic_deinit', - 'mcrypt_generic_init', - 'mcrypt_generic', - 'mcrypt_get_block_size', - 'mcrypt_get_cipher_name', - 'mcrypt_get_iv_size', - 'mcrypt_get_key_size', - 'mcrypt_list_algorithms', - 'mcrypt_list_modes', - 'mcrypt_module_close', - 'mcrypt_module_get_algo_block_size', - 'mcrypt_module_get_algo_key_size', - 'mcrypt_module_get_supported_key_sizes', - 'mcrypt_module_is_block_algorithm_mode', - 'mcrypt_module_is_block_algorithm', - 'mcrypt_module_is_block_mode', - 'mcrypt_module_open', - 'mcrypt_module_self_test', - 'mdecrypt_generic'), - 'Memcache': ('memcache_debug',), - 'Mhash': ('mhash_count', - 'mhash_get_block_size', - 'mhash_get_hash_name', - 'mhash_keygen_s2k', - 'mhash'), - 'Misc.': ('connection_aborted', - 'connection_status', - 'constant', - 'define', - 'defined', - 'die', - 'eval', - 'exit', - 'get_browser', - '__halt_compiler', - 'highlight_file', - 'highlight_string', - 'hrtime', - 'ignore_user_abort', - 'pack', - 'php_strip_whitespace', - 'sapi_windows_cp_conv', - 'sapi_windows_cp_get', - 'sapi_windows_cp_is_utf8', - 'sapi_windows_cp_set', - 'sapi_windows_generate_ctrl_event', - 'sapi_windows_set_ctrl_handler', - 'sapi_windows_vt100_support', - 'show_source', - 'sleep', - 'sys_getloadavg', - 'time_nanosleep', - 'time_sleep_until', - 'uniqid', - 'unpack', - 'usleep'), - 'Multibyte String': ('mb_check_encoding', - 'mb_chr', - 'mb_convert_case', - 'mb_convert_encoding', - 'mb_convert_kana', - 'mb_convert_variables', - 'mb_decode_mimeheader', - 'mb_decode_numericentity', - 'mb_detect_encoding', - 'mb_detect_order', - 'mb_encode_mimeheader', - 'mb_encode_numericentity', - 'mb_encoding_aliases', - 'mb_ereg_match', - 'mb_ereg_replace_callback', - 'mb_ereg_replace', - 'mb_ereg_search_getpos', - 'mb_ereg_search_getregs', - 'mb_ereg_search_init', - 'mb_ereg_search_pos', - 'mb_ereg_search_regs', - 'mb_ereg_search_setpos', - 'mb_ereg_search', - 'mb_ereg', - 'mb_eregi_replace', - 'mb_eregi', - 'mb_get_info', - 'mb_http_input', - 'mb_http_output', - 'mb_internal_encoding', - 'mb_language', - 'mb_list_encodings', - 'mb_ord', - 'mb_output_handler', - 'mb_parse_str', - 'mb_preferred_mime_name', - 'mb_regex_encoding', - 'mb_regex_set_options', - 'mb_scrub', - 'mb_send_mail', - 'mb_split', - 'mb_str_split', - 'mb_strcut', - 'mb_strimwidth', - 'mb_stripos', - 'mb_stristr', - 'mb_strlen', - 'mb_strpos', - 'mb_strrchr', - 'mb_strrichr', - 'mb_strripos', - 'mb_strrpos', - 'mb_strstr', - 'mb_strtolower', - 'mb_strtoupper', - 'mb_strwidth', - 'mb_substitute_character', - 'mb_substr_count', - 'mb_substr'), - 'MySQL': ('mysql_affected_rows', - 'mysql_client_encoding', - 'mysql_close', - 'mysql_connect', - 'mysql_create_db', - 'mysql_data_seek', - 'mysql_db_name', - 'mysql_db_query', - 'mysql_drop_db', - 'mysql_errno', - 'mysql_error', - 'mysql_escape_string', - 'mysql_fetch_array', - 'mysql_fetch_assoc', - 'mysql_fetch_field', - 'mysql_fetch_lengths', - 'mysql_fetch_object', - 'mysql_fetch_row', - 'mysql_field_flags', - 'mysql_field_len', - 'mysql_field_name', - 'mysql_field_seek', - 'mysql_field_table', - 'mysql_field_type', - 'mysql_free_result', - 'mysql_get_client_info', - 'mysql_get_host_info', - 'mysql_get_proto_info', - 'mysql_get_server_info', - 'mysql_info', - 'mysql_insert_id', - 'mysql_list_dbs', - 'mysql_list_fields', - 'mysql_list_processes', - 'mysql_list_tables', - 'mysql_num_fields', - 'mysql_num_rows', - 'mysql_pconnect', - 'mysql_ping', - 'mysql_query', - 'mysql_real_escape_string', - 'mysql_result', - 'mysql_select_db', - 'mysql_set_charset', - 'mysql_stat', - 'mysql_tablename', - 'mysql_thread_id', - 'mysql_unbuffered_query'), - 'Mysql_xdevapi': ('expression', 'getSession'), - 'Network': ('checkdnsrr', - 'closelog', - 'dns_check_record', - 'dns_get_mx', - 'dns_get_record', - 'fsockopen', - 'gethostbyaddr', - 'gethostbyname', - 'gethostbynamel', - 'gethostname', - 'getmxrr', - 'getprotobyname', - 'getprotobynumber', - 'getservbyname', - 'getservbyport', - 'header_register_callback', - 'header_remove', - 'header', - 'headers_list', - 'headers_sent', - 'http_response_code', - 'inet_ntop', - 'inet_pton', - 'ip2long', - 'long2ip', - 'net_get_interfaces', - 'openlog', - 'pfsockopen', - 'setcookie', - 'setrawcookie', - 'socket_get_status', - 'socket_set_blocking', - 'socket_set_timeout', - 'syslog'), - 'OAuth': ('oauth_get_sbs', 'oauth_urlencode'), - 'OCI8': ('oci_bind_array_by_name', - 'oci_bind_by_name', - 'oci_cancel', - 'oci_client_version', - 'oci_close', - 'oci_commit', - 'oci_connect', - 'oci_define_by_name', - 'oci_error', - 'oci_execute', - 'oci_fetch_all', - 'oci_fetch_array', - 'oci_fetch_assoc', - 'oci_fetch_object', - 'oci_fetch_row', - 'oci_fetch', - 'oci_field_is_null', - 'oci_field_name', - 'oci_field_precision', - 'oci_field_scale', - 'oci_field_size', - 'oci_field_type_raw', - 'oci_field_type', - 'oci_free_descriptor', - 'oci_free_statement', - 'oci_get_implicit_resultset', - 'oci_lob_copy', - 'oci_lob_is_equal', - 'oci_new_collection', - 'oci_new_connect', - 'oci_new_cursor', - 'oci_new_descriptor', - 'oci_num_fields', - 'oci_num_rows', - 'oci_parse', - 'oci_password_change', - 'oci_pconnect', - 'oci_register_taf_callback', - 'oci_result', - 'oci_rollback', - 'oci_server_version', - 'oci_set_action', - 'oci_set_call_timeout', - 'oci_set_client_identifier', - 'oci_set_client_info', - 'oci_set_db_operation', - 'oci_set_edition', - 'oci_set_module_name', - 'oci_set_prefetch_lob', - 'oci_set_prefetch', - 'oci_statement_type', - 'oci_unregister_taf_callback'), - 'ODBC': ('odbc_autocommit', - 'odbc_binmode', - 'odbc_close_all', - 'odbc_close', - 'odbc_columnprivileges', - 'odbc_columns', - 'odbc_commit', - 'odbc_connect', - 'odbc_cursor', - 'odbc_data_source', - 'odbc_do', - 'odbc_error', - 'odbc_errormsg', - 'odbc_exec', - 'odbc_execute', - 'odbc_fetch_array', - 'odbc_fetch_into', - 'odbc_fetch_object', - 'odbc_fetch_row', - 'odbc_field_len', - 'odbc_field_name', - 'odbc_field_num', - 'odbc_field_precision', - 'odbc_field_scale', - 'odbc_field_type', - 'odbc_foreignkeys', - 'odbc_free_result', - 'odbc_gettypeinfo', - 'odbc_longreadlen', - 'odbc_next_result', - 'odbc_num_fields', - 'odbc_num_rows', - 'odbc_pconnect', - 'odbc_prepare', - 'odbc_primarykeys', - 'odbc_procedurecolumns', - 'odbc_procedures', - 'odbc_result_all', - 'odbc_result', - 'odbc_rollback', - 'odbc_setoption', - 'odbc_specialcolumns', - 'odbc_statistics', - 'odbc_tableprivileges', - 'odbc_tables'), - 'OPcache': ('opcache_compile_file', - 'opcache_get_configuration', - 'opcache_get_status', - 'opcache_invalidate', - 'opcache_is_script_cached', - 'opcache_reset'), - 'OpenAL': ('openal_buffer_create', - 'openal_buffer_data', - 'openal_buffer_destroy', - 'openal_buffer_get', - 'openal_buffer_loadwav', - 'openal_context_create', - 'openal_context_current', - 'openal_context_destroy', - 'openal_context_process', - 'openal_context_suspend', - 'openal_device_close', - 'openal_device_open', - 'openal_listener_get', - 'openal_listener_set', - 'openal_source_create', - 'openal_source_destroy', - 'openal_source_get', - 'openal_source_pause', - 'openal_source_play', - 'openal_source_rewind', - 'openal_source_set', - 'openal_source_stop', - 'openal_stream'), - 'OpenSSL': ('openssl_cipher_iv_length', - 'openssl_cms_decrypt', - 'openssl_cms_encrypt', - 'openssl_cms_read', - 'openssl_cms_sign', - 'openssl_cms_verify', - 'openssl_csr_export_to_file', - 'openssl_csr_export', - 'openssl_csr_get_public_key', - 'openssl_csr_get_subject', - 'openssl_csr_new', - 'openssl_csr_sign', - 'openssl_decrypt', - 'openssl_dh_compute_key', - 'openssl_digest', - 'openssl_encrypt', - 'openssl_error_string', - 'openssl_free_key', - 'openssl_get_cert_locations', - 'openssl_get_cipher_methods', - 'openssl_get_curve_names', - 'openssl_get_md_methods', - 'openssl_get_privatekey', - 'openssl_get_publickey', - 'openssl_open', - 'openssl_pbkdf2', - 'openssl_pkcs12_export_to_file', - 'openssl_pkcs12_export', - 'openssl_pkcs12_read', - 'openssl_pkcs7_decrypt', - 'openssl_pkcs7_encrypt', - 'openssl_pkcs7_read', - 'openssl_pkcs7_sign', - 'openssl_pkcs7_verify', - 'openssl_pkey_derive', - 'openssl_pkey_export_to_file', - 'openssl_pkey_export', - 'openssl_pkey_free', - 'openssl_pkey_get_details', - 'openssl_pkey_get_private', - 'openssl_pkey_get_public', - 'openssl_pkey_new', - 'openssl_private_decrypt', - 'openssl_private_encrypt', - 'openssl_public_decrypt', - 'openssl_public_encrypt', - 'openssl_random_pseudo_bytes', - 'openssl_seal', - 'openssl_sign', - 'openssl_spki_export_challenge', - 'openssl_spki_export', - 'openssl_spki_new', - 'openssl_spki_verify', - 'openssl_verify', - 'openssl_x509_check_private_key', - 'openssl_x509_checkpurpose', - 'openssl_x509_export_to_file', - 'openssl_x509_export', - 'openssl_x509_fingerprint', - 'openssl_x509_free', - 'openssl_x509_parse', - 'openssl_x509_read', - 'openssl_x509_verify'), - 'Output Control': ('flush', - 'ob_clean', - 'ob_end_clean', - 'ob_end_flush', - 'ob_flush', - 'ob_get_clean', - 'ob_get_contents', - 'ob_get_flush', - 'ob_get_length', - 'ob_get_level', - 'ob_get_status', - 'ob_gzhandler', - 'ob_implicit_flush', - 'ob_list_handlers', - 'ob_start', - 'output_add_rewrite_var', - 'output_reset_rewrite_vars'), - 'PCNTL': ('pcntl_alarm', - 'pcntl_async_signals', - 'pcntl_errno', - 'pcntl_exec', - 'pcntl_fork', - 'pcntl_get_last_error', - 'pcntl_getpriority', - 'pcntl_setpriority', - 'pcntl_signal_dispatch', - 'pcntl_signal_get_handler', - 'pcntl_signal', - 'pcntl_sigprocmask', - 'pcntl_sigtimedwait', - 'pcntl_sigwaitinfo', - 'pcntl_strerror', - 'pcntl_wait', - 'pcntl_waitpid', - 'pcntl_wexitstatus', - 'pcntl_wifexited', - 'pcntl_wifsignaled', - 'pcntl_wifstopped', - 'pcntl_wstopsig', - 'pcntl_wtermsig'), - 'PCRE': ('preg_filter', - 'preg_grep', - 'preg_last_error_msg', - 'preg_last_error', - 'preg_match_all', - 'preg_match', - 'preg_quote', - 'preg_replace_callback_array', - 'preg_replace_callback', - 'preg_replace', - 'preg_split'), - 'PHP Options/Info': ('assert_options', - 'assert', - 'cli_get_process_title', - 'cli_set_process_title', - 'dl', - 'extension_loaded', - 'gc_collect_cycles', - 'gc_disable', - 'gc_enable', - 'gc_enabled', - 'gc_mem_caches', - 'gc_status', - 'get_cfg_var', - 'get_current_user', - 'get_defined_constants', - 'get_extension_funcs', - 'get_include_path', - 'get_included_files', - 'get_loaded_extensions', - 'get_magic_quotes_gpc', - 'get_magic_quotes_runtime', - 'get_required_files', - 'get_resources', - 'getenv', - 'getlastmod', - 'getmygid', - 'getmyinode', - 'getmypid', - 'getmyuid', - 'getopt', - 'getrusage', - 'ini_alter', - 'ini_get_all', - 'ini_get', - 'ini_restore', - 'ini_set', - 'memory_get_peak_usage', - 'memory_get_usage', - 'php_ini_loaded_file', - 'php_ini_scanned_files', - 'php_sapi_name', - 'php_uname', - 'phpcredits', - 'phpinfo', - 'phpversion', - 'putenv', - 'restore_include_path', - 'set_include_path', - 'set_time_limit', - 'sys_get_temp_dir', - 'version_compare', - 'zend_thread_id', - 'zend_version'), - 'POSIX': ('posix_access', - 'posix_ctermid', - 'posix_errno', - 'posix_get_last_error', - 'posix_getcwd', - 'posix_getegid', - 'posix_geteuid', - 'posix_getgid', - 'posix_getgrgid', - 'posix_getgrnam', - 'posix_getgroups', - 'posix_getlogin', - 'posix_getpgid', - 'posix_getpgrp', - 'posix_getpid', - 'posix_getppid', - 'posix_getpwnam', - 'posix_getpwuid', - 'posix_getrlimit', - 'posix_getsid', - 'posix_getuid', - 'posix_initgroups', - 'posix_isatty', - 'posix_kill', - 'posix_mkfifo', - 'posix_mknod', - 'posix_setegid', - 'posix_seteuid', - 'posix_setgid', - 'posix_setpgid', - 'posix_setrlimit', - 'posix_setsid', - 'posix_setuid', - 'posix_strerror', - 'posix_times', - 'posix_ttyname', - 'posix_uname'), - 'PS': ('ps_add_bookmark', - 'ps_add_launchlink', - 'ps_add_locallink', - 'ps_add_note', - 'ps_add_pdflink', - 'ps_add_weblink', - 'ps_arc', - 'ps_arcn', - 'ps_begin_page', - 'ps_begin_pattern', - 'ps_begin_template', - 'ps_circle', - 'ps_clip', - 'ps_close_image', - 'ps_close', - 'ps_closepath_stroke', - 'ps_closepath', - 'ps_continue_text', - 'ps_curveto', - 'ps_delete', - 'ps_end_page', - 'ps_end_pattern', - 'ps_end_template', - 'ps_fill_stroke', - 'ps_fill', - 'ps_findfont', - 'ps_get_buffer', - 'ps_get_parameter', - 'ps_get_value', - 'ps_hyphenate', - 'ps_include_file', - 'ps_lineto', - 'ps_makespotcolor', - 'ps_moveto', - 'ps_new', - 'ps_open_file', - 'ps_open_image_file', - 'ps_open_image', - 'ps_open_memory_image', - 'ps_place_image', - 'ps_rect', - 'ps_restore', - 'ps_rotate', - 'ps_save', - 'ps_scale', - 'ps_set_border_color', - 'ps_set_border_dash', - 'ps_set_border_style', - 'ps_set_info', - 'ps_set_parameter', - 'ps_set_text_pos', - 'ps_set_value', - 'ps_setcolor', - 'ps_setdash', - 'ps_setflat', - 'ps_setfont', - 'ps_setgray', - 'ps_setlinecap', - 'ps_setlinejoin', - 'ps_setlinewidth', - 'ps_setmiterlimit', - 'ps_setoverprintmode', - 'ps_setpolydash', - 'ps_shading_pattern', - 'ps_shading', - 'ps_shfill', - 'ps_show_boxed', - 'ps_show_xy2', - 'ps_show_xy', - 'ps_show2', - 'ps_show', - 'ps_string_geometry', - 'ps_stringwidth', - 'ps_stroke', - 'ps_symbol_name', - 'ps_symbol_width', - 'ps_symbol', - 'ps_translate'), - 'Password Hashing': ('password_algos', - 'password_get_info', - 'password_hash', - 'password_needs_rehash', - 'password_verify'), - 'PostgreSQL': ('pg_affected_rows', - 'pg_cancel_query', - 'pg_client_encoding', - 'pg_close', - 'pg_connect_poll', - 'pg_connect', - 'pg_connection_busy', - 'pg_connection_reset', - 'pg_connection_status', - 'pg_consume_input', - 'pg_convert', - 'pg_copy_from', - 'pg_copy_to', - 'pg_dbname', - 'pg_delete', - 'pg_end_copy', - 'pg_escape_bytea', - 'pg_escape_identifier', - 'pg_escape_literal', - 'pg_escape_string', - 'pg_execute', - 'pg_fetch_all_columns', - 'pg_fetch_all', - 'pg_fetch_array', - 'pg_fetch_assoc', - 'pg_fetch_object', - 'pg_fetch_result', - 'pg_fetch_row', - 'pg_field_is_null', - 'pg_field_name', - 'pg_field_num', - 'pg_field_prtlen', - 'pg_field_size', - 'pg_field_table', - 'pg_field_type_oid', - 'pg_field_type', - 'pg_flush', - 'pg_free_result', - 'pg_get_notify', - 'pg_get_pid', - 'pg_get_result', - 'pg_host', - 'pg_insert', - 'pg_last_error', - 'pg_last_notice', - 'pg_last_oid', - 'pg_lo_close', - 'pg_lo_create', - 'pg_lo_export', - 'pg_lo_import', - 'pg_lo_open', - 'pg_lo_read_all', - 'pg_lo_read', - 'pg_lo_seek', - 'pg_lo_tell', - 'pg_lo_truncate', - 'pg_lo_unlink', - 'pg_lo_write', - 'pg_meta_data', - 'pg_num_fields', - 'pg_num_rows', - 'pg_options', - 'pg_parameter_status', - 'pg_pconnect', - 'pg_ping', - 'pg_port', - 'pg_prepare', - 'pg_put_line', - 'pg_query_params', - 'pg_query', - 'pg_result_error_field', - 'pg_result_error', - 'pg_result_seek', - 'pg_result_status', - 'pg_select', - 'pg_send_execute', - 'pg_send_prepare', - 'pg_send_query_params', - 'pg_send_query', - 'pg_set_client_encoding', - 'pg_set_error_verbosity', - 'pg_socket', - 'pg_trace', - 'pg_transaction_status', - 'pg_tty', - 'pg_unescape_bytea', - 'pg_untrace', - 'pg_update', - 'pg_version'), - 'Program execution': ('escapeshellarg', - 'escapeshellcmd', - 'exec', - 'passthru', - 'proc_close', - 'proc_get_status', - 'proc_nice', - 'proc_open', - 'proc_terminate', - 'shell_exec', - 'system'), - 'Pspell': ('pspell_add_to_personal', - 'pspell_add_to_session', - 'pspell_check', - 'pspell_clear_session', - 'pspell_config_create', - 'pspell_config_data_dir', - 'pspell_config_dict_dir', - 'pspell_config_ignore', - 'pspell_config_mode', - 'pspell_config_personal', - 'pspell_config_repl', - 'pspell_config_runtogether', - 'pspell_config_save_repl', - 'pspell_new_config', - 'pspell_new_personal', - 'pspell_new', - 'pspell_save_wordlist', - 'pspell_store_replacement', - 'pspell_suggest'), - 'RRD': ('rrd_create', - 'rrd_error', - 'rrd_fetch', - 'rrd_first', - 'rrd_graph', - 'rrd_info', - 'rrd_last', - 'rrd_lastupdate', - 'rrd_restore', - 'rrd_tune', - 'rrd_update', - 'rrd_version', - 'rrd_xport', - 'rrdc_disconnect'), - 'Radius': ('radius_acct_open', - 'radius_add_server', - 'radius_auth_open', - 'radius_close', - 'radius_config', - 'radius_create_request', - 'radius_cvt_addr', - 'radius_cvt_int', - 'radius_cvt_string', - 'radius_demangle_mppe_key', - 'radius_demangle', - 'radius_get_attr', - 'radius_get_tagged_attr_data', - 'radius_get_tagged_attr_tag', - 'radius_get_vendor_attr', - 'radius_put_addr', - 'radius_put_attr', - 'radius_put_int', - 'radius_put_string', - 'radius_put_vendor_addr', - 'radius_put_vendor_attr', - 'radius_put_vendor_int', - 'radius_put_vendor_string', - 'radius_request_authenticator', - 'radius_salt_encrypt_attr', - 'radius_send_request', - 'radius_server_secret', - 'radius_strerror'), - 'Rar': ('rar_wrapper_cache_stats',), - 'Readline': ('readline_add_history', - 'readline_callback_handler_install', - 'readline_callback_handler_remove', - 'readline_callback_read_char', - 'readline_clear_history', - 'readline_completion_function', - 'readline_info', - 'readline_list_history', - 'readline_on_new_line', - 'readline_read_history', - 'readline_redisplay', - 'readline_write_history', - 'readline'), - 'Recode': ('recode_file', 'recode_string', 'recode'), - 'RpmInfo': ('rpmaddtag', 'rpmdbinfo', 'rpmdbsearch', 'rpminfo', 'rpmvercmp'), - 'SNMP': ('snmp_get_quick_print', - 'snmp_get_valueretrieval', - 'snmp_read_mib', - 'snmp_set_enum_print', - 'snmp_set_oid_numeric_print', - 'snmp_set_oid_output_format', - 'snmp_set_quick_print', - 'snmp_set_valueretrieval', - 'snmp2_get', - 'snmp2_getnext', - 'snmp2_real_walk', - 'snmp2_set', - 'snmp2_walk', - 'snmp3_get', - 'snmp3_getnext', - 'snmp3_real_walk', - 'snmp3_set', - 'snmp3_walk', - 'snmpget', - 'snmpgetnext', - 'snmprealwalk', - 'snmpset', - 'snmpwalk', - 'snmpwalkoid'), - 'SOAP': ('is_soap_fault', 'use_soap_error_handler'), - 'SPL': ('class_implements', - 'class_parents', - 'class_uses', - 'iterator_apply', - 'iterator_count', - 'iterator_to_array', - 'spl_autoload_call', - 'spl_autoload_extensions', - 'spl_autoload_functions', - 'spl_autoload_register', - 'spl_autoload_unregister', - 'spl_autoload', - 'spl_classes', - 'spl_object_hash', - 'spl_object_id'), - 'SQLSRV': ('sqlsrv_begin_transaction', - 'sqlsrv_cancel', - 'sqlsrv_client_info', - 'sqlsrv_close', - 'sqlsrv_commit', - 'sqlsrv_configure', - 'sqlsrv_connect', - 'sqlsrv_errors', - 'sqlsrv_execute', - 'sqlsrv_fetch_array', - 'sqlsrv_fetch_object', - 'sqlsrv_fetch', - 'sqlsrv_field_metadata', - 'sqlsrv_free_stmt', - 'sqlsrv_get_config', - 'sqlsrv_get_field', - 'sqlsrv_has_rows', - 'sqlsrv_next_result', - 'sqlsrv_num_fields', - 'sqlsrv_num_rows', - 'sqlsrv_prepare', - 'sqlsrv_query', - 'sqlsrv_rollback', - 'sqlsrv_rows_affected', - 'sqlsrv_send_stream_data', - 'sqlsrv_server_info'), - 'SSH2': ('ssh2_auth_agent', - 'ssh2_auth_hostbased_file', - 'ssh2_auth_none', - 'ssh2_auth_password', - 'ssh2_auth_pubkey_file', - 'ssh2_connect', - 'ssh2_disconnect', - 'ssh2_exec', - 'ssh2_fetch_stream', - 'ssh2_fingerprint', - 'ssh2_forward_accept', - 'ssh2_forward_listen', - 'ssh2_methods_negotiated', - 'ssh2_poll', - 'ssh2_publickey_add', - 'ssh2_publickey_init', - 'ssh2_publickey_list', - 'ssh2_publickey_remove', - 'ssh2_scp_recv', - 'ssh2_scp_send', - 'ssh2_send_eof', - 'ssh2_sftp_chmod', - 'ssh2_sftp_lstat', - 'ssh2_sftp_mkdir', - 'ssh2_sftp_readlink', - 'ssh2_sftp_realpath', - 'ssh2_sftp_rename', - 'ssh2_sftp_rmdir', - 'ssh2_sftp_stat', - 'ssh2_sftp_symlink', - 'ssh2_sftp_unlink', - 'ssh2_sftp', - 'ssh2_shell', - 'ssh2_tunnel'), - 'SVN': ('svn_add', - 'svn_auth_get_parameter', - 'svn_auth_set_parameter', - 'svn_blame', - 'svn_cat', - 'svn_checkout', - 'svn_cleanup', - 'svn_client_version', - 'svn_commit', - 'svn_delete', - 'svn_diff', - 'svn_export', - 'svn_fs_abort_txn', - 'svn_fs_apply_text', - 'svn_fs_begin_txn2', - 'svn_fs_change_node_prop', - 'svn_fs_check_path', - 'svn_fs_contents_changed', - 'svn_fs_copy', - 'svn_fs_delete', - 'svn_fs_dir_entries', - 'svn_fs_file_contents', - 'svn_fs_file_length', - 'svn_fs_is_dir', - 'svn_fs_is_file', - 'svn_fs_make_dir', - 'svn_fs_make_file', - 'svn_fs_node_created_rev', - 'svn_fs_node_prop', - 'svn_fs_props_changed', - 'svn_fs_revision_prop', - 'svn_fs_revision_root', - 'svn_fs_txn_root', - 'svn_fs_youngest_rev', - 'svn_import', - 'svn_log', - 'svn_ls', - 'svn_mkdir', - 'svn_repos_create', - 'svn_repos_fs_begin_txn_for_commit', - 'svn_repos_fs_commit_txn', - 'svn_repos_fs', - 'svn_repos_hotcopy', - 'svn_repos_open', - 'svn_repos_recover', - 'svn_revert', - 'svn_status', - 'svn_update'), - 'Scoutapm': ('scoutapm_get_calls', 'scoutapm_list_instrumented_functions'), - 'Seaslog': ('seaslog_get_author', 'seaslog_get_version'), - 'Semaphore': ('ftok', - 'msg_get_queue', - 'msg_queue_exists', - 'msg_receive', - 'msg_remove_queue', - 'msg_send', - 'msg_set_queue', - 'msg_stat_queue', - 'sem_acquire', - 'sem_get', - 'sem_release', - 'sem_remove', - 'shm_attach', - 'shm_detach', - 'shm_get_var', - 'shm_has_var', - 'shm_put_var', - 'shm_remove_var', - 'shm_remove'), - 'Session': ('session_abort', - 'session_cache_expire', - 'session_cache_limiter', - 'session_commit', - 'session_create_id', - 'session_decode', - 'session_destroy', - 'session_encode', - 'session_gc', - 'session_get_cookie_params', - 'session_id', - 'session_module_name', - 'session_name', - 'session_regenerate_id', - 'session_register_shutdown', - 'session_reset', - 'session_save_path', - 'session_set_cookie_params', - 'session_set_save_handler', - 'session_start', - 'session_status', - 'session_unset', - 'session_write_close'), - 'Shared Memory': ('shmop_close', - 'shmop_delete', - 'shmop_open', - 'shmop_read', - 'shmop_size', - 'shmop_write'), - 'SimpleXML': ('simplexml_import_dom', - 'simplexml_load_file', - 'simplexml_load_string'), - 'Socket': ('socket_accept', - 'socket_addrinfo_bind', - 'socket_addrinfo_connect', - 'socket_addrinfo_explain', - 'socket_addrinfo_lookup', - 'socket_bind', - 'socket_clear_error', - 'socket_close', - 'socket_cmsg_space', - 'socket_connect', - 'socket_create_listen', - 'socket_create_pair', - 'socket_create', - 'socket_export_stream', - 'socket_get_option', - 'socket_getopt', - 'socket_getpeername', - 'socket_getsockname', - 'socket_import_stream', - 'socket_last_error', - 'socket_listen', - 'socket_read', - 'socket_recv', - 'socket_recvfrom', - 'socket_recvmsg', - 'socket_select', - 'socket_send', - 'socket_sendmsg', - 'socket_sendto', - 'socket_set_block', - 'socket_set_nonblock', - 'socket_set_option', - 'socket_setopt', - 'socket_shutdown', - 'socket_strerror', - 'socket_write', - 'socket_wsaprotocol_info_export', - 'socket_wsaprotocol_info_import', - 'socket_wsaprotocol_info_release'), - 'Sodium': ('sodium_add', - 'sodium_base642bin', - 'sodium_bin2base64', - 'sodium_bin2hex', - 'sodium_compare', - 'sodium_crypto_aead_aes256gcm_decrypt', - 'sodium_crypto_aead_aes256gcm_encrypt', - 'sodium_crypto_aead_aes256gcm_is_available', - 'sodium_crypto_aead_aes256gcm_keygen', - 'sodium_crypto_aead_chacha20poly1305_decrypt', - 'sodium_crypto_aead_chacha20poly1305_encrypt', - 'sodium_crypto_aead_chacha20poly1305_ietf_decrypt', - 'sodium_crypto_aead_chacha20poly1305_ietf_encrypt', - 'sodium_crypto_aead_chacha20poly1305_ietf_keygen', - 'sodium_crypto_aead_chacha20poly1305_keygen', - 'sodium_crypto_aead_xchacha20poly1305_ietf_decrypt', - 'sodium_crypto_aead_xchacha20poly1305_ietf_encrypt', - 'sodium_crypto_aead_xchacha20poly1305_ietf_keygen', - 'sodium_crypto_auth_keygen', - 'sodium_crypto_auth_verify', - 'sodium_crypto_auth', - 'sodium_crypto_box_keypair_from_secretkey_and_publickey', - 'sodium_crypto_box_keypair', - 'sodium_crypto_box_open', - 'sodium_crypto_box_publickey_from_secretkey', - 'sodium_crypto_box_publickey', - 'sodium_crypto_box_seal_open', - 'sodium_crypto_box_seal', - 'sodium_crypto_box_secretkey', - 'sodium_crypto_box_seed_keypair', - 'sodium_crypto_box', - 'sodium_crypto_generichash_final', - 'sodium_crypto_generichash_init', - 'sodium_crypto_generichash_keygen', - 'sodium_crypto_generichash_update', - 'sodium_crypto_generichash', - 'sodium_crypto_kdf_derive_from_key', - 'sodium_crypto_kdf_keygen', - 'sodium_crypto_kx_client_session_keys', - 'sodium_crypto_kx_keypair', - 'sodium_crypto_kx_publickey', - 'sodium_crypto_kx_secretkey', - 'sodium_crypto_kx_seed_keypair', - 'sodium_crypto_kx_server_session_keys', - 'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify', - 'sodium_crypto_pwhash_scryptsalsa208sha256_str', - 'sodium_crypto_pwhash_scryptsalsa208sha256', - 'sodium_crypto_pwhash_str_needs_rehash', - 'sodium_crypto_pwhash_str_verify', - 'sodium_crypto_pwhash_str', - 'sodium_crypto_pwhash', - 'sodium_crypto_scalarmult_base', - 'sodium_crypto_scalarmult', - 'sodium_crypto_secretbox_keygen', - 'sodium_crypto_secretbox_open', - 'sodium_crypto_secretbox', - 'sodium_crypto_secretstream_xchacha20poly1305_init_pull', - 'sodium_crypto_secretstream_xchacha20poly1305_init_push', - 'sodium_crypto_secretstream_xchacha20poly1305_keygen', - 'sodium_crypto_secretstream_xchacha20poly1305_pull', - 'sodium_crypto_secretstream_xchacha20poly1305_push', - 'sodium_crypto_secretstream_xchacha20poly1305_rekey', - 'sodium_crypto_shorthash_keygen', - 'sodium_crypto_shorthash', - 'sodium_crypto_sign_detached', - 'sodium_crypto_sign_ed25519_pk_to_curve25519', - 'sodium_crypto_sign_ed25519_sk_to_curve25519', - 'sodium_crypto_sign_keypair_from_secretkey_and_publickey', - 'sodium_crypto_sign_keypair', - 'sodium_crypto_sign_open', - 'sodium_crypto_sign_publickey_from_secretkey', - 'sodium_crypto_sign_publickey', - 'sodium_crypto_sign_secretkey', - 'sodium_crypto_sign_seed_keypair', - 'sodium_crypto_sign_verify_detached', - 'sodium_crypto_sign', - 'sodium_crypto_stream_keygen', - 'sodium_crypto_stream_xor', - 'sodium_crypto_stream', - 'sodium_hex2bin', - 'sodium_increment', - 'sodium_memcmp', - 'sodium_memzero', - 'sodium_pad', - 'sodium_unpad'), - 'Solr': ('solr_get_version',), - 'Stomp': ('stomp_connect_error', 'stomp_version'), - 'Stream': ('stream_bucket_append', - 'stream_bucket_make_writeable', - 'stream_bucket_new', - 'stream_bucket_prepend', - 'stream_context_create', - 'stream_context_get_default', - 'stream_context_get_options', - 'stream_context_get_params', - 'stream_context_set_default', - 'stream_context_set_option', - 'stream_context_set_params', - 'stream_copy_to_stream', - 'stream_filter_append', - 'stream_filter_prepend', - 'stream_filter_register', - 'stream_filter_remove', - 'stream_get_contents', - 'stream_get_filters', - 'stream_get_line', - 'stream_get_meta_data', - 'stream_get_transports', - 'stream_get_wrappers', - 'stream_is_local', - 'stream_isatty', - 'stream_notification_callback', - 'stream_register_wrapper', - 'stream_resolve_include_path', - 'stream_select', - 'stream_set_blocking', - 'stream_set_chunk_size', - 'stream_set_read_buffer', - 'stream_set_timeout', - 'stream_set_write_buffer', - 'stream_socket_accept', - 'stream_socket_client', - 'stream_socket_enable_crypto', - 'stream_socket_get_name', - 'stream_socket_pair', - 'stream_socket_recvfrom', - 'stream_socket_sendto', - 'stream_socket_server', - 'stream_socket_shutdown', - 'stream_supports_lock', - 'stream_wrapper_register', - 'stream_wrapper_restore', - 'stream_wrapper_unregister'), - 'String': ('addcslashes', - 'addslashes', - 'bin2hex', - 'chop', - 'chr', - 'chunk_split', - 'convert_cyr_string', - 'convert_uudecode', - 'convert_uuencode', - 'count_chars', - 'crc32', - 'crypt', - 'echo', - 'explode', - 'fprintf', - 'get_html_translation_table', - 'hebrev', - 'hebrevc', - 'hex2bin', - 'html_entity_decode', - 'htmlentities', - 'htmlspecialchars_decode', - 'htmlspecialchars', - 'implode', - 'join', - 'lcfirst', - 'levenshtein', - 'localeconv', - 'ltrim', - 'md5_file', - 'md5', - 'metaphone', - 'money_format', - 'nl_langinfo', - 'nl2br', - 'number_format', - 'ord', - 'parse_str', - 'print', - 'printf', - 'quoted_printable_decode', - 'quoted_printable_encode', - 'quotemeta', - 'rtrim', - 'setlocale', - 'sha1_file', - 'sha1', - 'similar_text', - 'soundex', - 'sprintf', - 'sscanf', - 'str_contains', - 'str_ends_with', - 'str_getcsv', - 'str_ireplace', - 'str_pad', - 'str_repeat', - 'str_replace', - 'str_rot13', - 'str_shuffle', - 'str_split', - 'str_starts_with', - 'str_word_count', - 'strcasecmp', - 'strchr', - 'strcmp', - 'strcoll', - 'strcspn', - 'strip_tags', - 'stripcslashes', - 'stripos', - 'stripslashes', - 'stristr', - 'strlen', - 'strnatcasecmp', - 'strnatcmp', - 'strncasecmp', - 'strncmp', - 'strpbrk', - 'strpos', - 'strrchr', - 'strrev', - 'strripos', - 'strrpos', - 'strspn', - 'strstr', - 'strtok', - 'strtolower', - 'strtoupper', - 'strtr', - 'substr_compare', - 'substr_count', - 'substr_replace', - 'substr', - 'trim', - 'ucfirst', - 'ucwords', - 'vfprintf', - 'vprintf', - 'vsprintf', - 'wordwrap'), - 'Swoole': ('swoole_async_dns_lookup', - 'swoole_async_read', - 'swoole_async_readfile', - 'swoole_async_set', - 'swoole_async_write', - 'swoole_async_writefile', - 'swoole_clear_error', - 'swoole_client_select', - 'swoole_cpu_num', - 'swoole_errno', - 'swoole_error_log', - 'swoole_event_add', - 'swoole_event_defer', - 'swoole_event_del', - 'swoole_event_exit', - 'swoole_event_set', - 'swoole_event_wait', - 'swoole_event_write', - 'swoole_get_local_ip', - 'swoole_last_error', - 'swoole_load_module', - 'swoole_select', - 'swoole_set_process_name', - 'swoole_strerror', - 'swoole_timer_after', - 'swoole_timer_exists', - 'swoole_timer_tick', - 'swoole_version'), - 'TCP': ('tcpwrap_check',), - 'Taint': ('is_tainted', 'taint', 'untaint'), - 'Tidy': ('ob_tidyhandler', - 'tidy_access_count', - 'tidy_config_count', - 'tidy_error_count', - 'tidy_get_output', - 'tidy_warning_count'), - 'Tokenizer': ('token_get_all', 'token_name'), - 'Trader': ('trader_acos', - 'trader_ad', - 'trader_add', - 'trader_adosc', - 'trader_adx', - 'trader_adxr', - 'trader_apo', - 'trader_aroon', - 'trader_aroonosc', - 'trader_asin', - 'trader_atan', - 'trader_atr', - 'trader_avgprice', - 'trader_bbands', - 'trader_beta', - 'trader_bop', - 'trader_cci', - 'trader_cdl2crows', - 'trader_cdl3blackcrows', - 'trader_cdl3inside', - 'trader_cdl3linestrike', - 'trader_cdl3outside', - 'trader_cdl3starsinsouth', - 'trader_cdl3whitesoldiers', - 'trader_cdlabandonedbaby', - 'trader_cdladvanceblock', - 'trader_cdlbelthold', - 'trader_cdlbreakaway', - 'trader_cdlclosingmarubozu', - 'trader_cdlconcealbabyswall', - 'trader_cdlcounterattack', - 'trader_cdldarkcloudcover', - 'trader_cdldoji', - 'trader_cdldojistar', - 'trader_cdldragonflydoji', - 'trader_cdlengulfing', - 'trader_cdleveningdojistar', - 'trader_cdleveningstar', - 'trader_cdlgapsidesidewhite', - 'trader_cdlgravestonedoji', - 'trader_cdlhammer', - 'trader_cdlhangingman', - 'trader_cdlharami', - 'trader_cdlharamicross', - 'trader_cdlhighwave', - 'trader_cdlhikkake', - 'trader_cdlhikkakemod', - 'trader_cdlhomingpigeon', - 'trader_cdlidentical3crows', - 'trader_cdlinneck', - 'trader_cdlinvertedhammer', - 'trader_cdlkicking', - 'trader_cdlkickingbylength', - 'trader_cdlladderbottom', - 'trader_cdllongleggeddoji', - 'trader_cdllongline', - 'trader_cdlmarubozu', - 'trader_cdlmatchinglow', - 'trader_cdlmathold', - 'trader_cdlmorningdojistar', - 'trader_cdlmorningstar', - 'trader_cdlonneck', - 'trader_cdlpiercing', - 'trader_cdlrickshawman', - 'trader_cdlrisefall3methods', - 'trader_cdlseparatinglines', - 'trader_cdlshootingstar', - 'trader_cdlshortline', - 'trader_cdlspinningtop', - 'trader_cdlstalledpattern', - 'trader_cdlsticksandwich', - 'trader_cdltakuri', - 'trader_cdltasukigap', - 'trader_cdlthrusting', - 'trader_cdltristar', - 'trader_cdlunique3river', - 'trader_cdlupsidegap2crows', - 'trader_cdlxsidegap3methods', - 'trader_ceil', - 'trader_cmo', - 'trader_correl', - 'trader_cos', - 'trader_cosh', - 'trader_dema', - 'trader_div', - 'trader_dx', - 'trader_ema', - 'trader_errno', - 'trader_exp', - 'trader_floor', - 'trader_get_compat', - 'trader_get_unstable_period', - 'trader_ht_dcperiod', - 'trader_ht_dcphase', - 'trader_ht_phasor', - 'trader_ht_sine', - 'trader_ht_trendline', - 'trader_ht_trendmode', - 'trader_kama', - 'trader_linearreg_angle', - 'trader_linearreg_intercept', - 'trader_linearreg_slope', - 'trader_linearreg', - 'trader_ln', - 'trader_log10', - 'trader_ma', - 'trader_macd', - 'trader_macdext', - 'trader_macdfix', - 'trader_mama', - 'trader_mavp', - 'trader_max', - 'trader_maxindex', - 'trader_medprice', - 'trader_mfi', - 'trader_midpoint', - 'trader_midprice', - 'trader_min', - 'trader_minindex', - 'trader_minmax', - 'trader_minmaxindex', - 'trader_minus_di', - 'trader_minus_dm', - 'trader_mom', - 'trader_mult', - 'trader_natr', - 'trader_obv', - 'trader_plus_di', - 'trader_plus_dm', - 'trader_ppo', - 'trader_roc', - 'trader_rocp', - 'trader_rocr100', - 'trader_rocr', - 'trader_rsi', - 'trader_sar', - 'trader_sarext', - 'trader_set_compat', - 'trader_set_unstable_period', - 'trader_sin', - 'trader_sinh', - 'trader_sma', - 'trader_sqrt', - 'trader_stddev', - 'trader_stoch', - 'trader_stochf', - 'trader_stochrsi', - 'trader_sub', - 'trader_sum', - 'trader_t3', - 'trader_tan', - 'trader_tanh', - 'trader_tema', - 'trader_trange', - 'trader_trima', - 'trader_trix', - 'trader_tsf', - 'trader_typprice', - 'trader_ultosc', - 'trader_var', - 'trader_wclprice', - 'trader_willr', - 'trader_wma'), - 'URL': ('base64_decode', - 'base64_encode', - 'get_headers', - 'get_meta_tags', - 'http_build_query', - 'parse_url', - 'rawurldecode', - 'rawurlencode', - 'urldecode', - 'urlencode'), - 'Uopz': ('uopz_add_function', - 'uopz_allow_exit', - 'uopz_backup', - 'uopz_compose', - 'uopz_copy', - 'uopz_del_function', - 'uopz_delete', - 'uopz_extend', - 'uopz_flags', - 'uopz_function', - 'uopz_get_exit_status', - 'uopz_get_hook', - 'uopz_get_mock', - 'uopz_get_property', - 'uopz_get_return', - 'uopz_get_static', - 'uopz_implement', - 'uopz_overload', - 'uopz_redefine', - 'uopz_rename', - 'uopz_restore', - 'uopz_set_hook', - 'uopz_set_mock', - 'uopz_set_property', - 'uopz_set_return', - 'uopz_set_static', - 'uopz_undefine', - 'uopz_unset_hook', - 'uopz_unset_mock', - 'uopz_unset_return'), - 'Variable handling': ('boolval', - 'debug_zval_dump', - 'doubleval', - 'empty', - 'floatval', - 'get_debug_type', - 'get_defined_vars', - 'get_resource_id', - 'get_resource_type', - 'gettype', - 'intval', - 'is_array', - 'is_bool', - 'is_callable', - 'is_countable', - 'is_double', - 'is_float', - 'is_int', - 'is_integer', - 'is_iterable', - 'is_long', - 'is_null', - 'is_numeric', - 'is_object', - 'is_real', - 'is_resource', - 'is_scalar', - 'is_string', - 'isset', - 'print_r', - 'serialize', - 'settype', - 'strval', - 'unserialize', - 'unset', - 'var_dump', - 'var_export'), - 'WDDX': ('wddx_add_vars', - 'wddx_deserialize', - 'wddx_packet_end', - 'wddx_packet_start', - 'wddx_serialize_value', - 'wddx_serialize_vars'), - 'WinCache': ('wincache_fcache_fileinfo', - 'wincache_fcache_meminfo', - 'wincache_lock', - 'wincache_ocache_fileinfo', - 'wincache_ocache_meminfo', - 'wincache_refresh_if_changed', - 'wincache_rplist_fileinfo', - 'wincache_rplist_meminfo', - 'wincache_scache_info', - 'wincache_scache_meminfo', - 'wincache_ucache_add', - 'wincache_ucache_cas', - 'wincache_ucache_clear', - 'wincache_ucache_dec', - 'wincache_ucache_delete', - 'wincache_ucache_exists', - 'wincache_ucache_get', - 'wincache_ucache_inc', - 'wincache_ucache_info', - 'wincache_ucache_meminfo', - 'wincache_ucache_set', - 'wincache_unlock'), - 'XML Parser': ('utf8_decode', - 'utf8_encode', - 'xml_error_string', - 'xml_get_current_byte_index', - 'xml_get_current_column_number', - 'xml_get_current_line_number', - 'xml_get_error_code', - 'xml_parse_into_struct', - 'xml_parse', - 'xml_parser_create_ns', - 'xml_parser_create', - 'xml_parser_free', - 'xml_parser_get_option', - 'xml_parser_set_option', - 'xml_set_character_data_handler', - 'xml_set_default_handler', - 'xml_set_element_handler', - 'xml_set_end_namespace_decl_handler', - 'xml_set_external_entity_ref_handler', - 'xml_set_notation_decl_handler', - 'xml_set_object', - 'xml_set_processing_instruction_handler', - 'xml_set_start_namespace_decl_handler', - 'xml_set_unparsed_entity_decl_handler'), - 'XML-RPC': ('xmlrpc_decode_request', - 'xmlrpc_decode', - 'xmlrpc_encode_request', - 'xmlrpc_encode', - 'xmlrpc_get_type', - 'xmlrpc_is_fault', - 'xmlrpc_parse_method_descriptions', - 'xmlrpc_server_add_introspection_data', - 'xmlrpc_server_call_method', - 'xmlrpc_server_create', - 'xmlrpc_server_destroy', - 'xmlrpc_server_register_introspection_callback', - 'xmlrpc_server_register_method', - 'xmlrpc_set_type'), - 'Xhprof': ('xhprof_disable', - 'xhprof_enable', - 'xhprof_sample_disable', - 'xhprof_sample_enable'), - 'YAZ': ('yaz_addinfo', - 'yaz_ccl_conf', - 'yaz_ccl_parse', - 'yaz_close', - 'yaz_connect', - 'yaz_database', - 'yaz_element', - 'yaz_errno', - 'yaz_error', - 'yaz_es_result', - 'yaz_es', - 'yaz_get_option', - 'yaz_hits', - 'yaz_itemorder', - 'yaz_present', - 'yaz_range', - 'yaz_record', - 'yaz_scan_result', - 'yaz_scan', - 'yaz_schema', - 'yaz_search', - 'yaz_set_option', - 'yaz_sort', - 'yaz_syntax', - 'yaz_wait'), - 'Yaml': ('yaml_emit_file', - 'yaml_emit', - 'yaml_parse_file', - 'yaml_parse_url', - 'yaml_parse'), - 'Zip': ('zip_close', - 'zip_entry_close', - 'zip_entry_compressedsize', - 'zip_entry_compressionmethod', - 'zip_entry_filesize', - 'zip_entry_name', - 'zip_entry_open', - 'zip_entry_read', - 'zip_open', - 'zip_read'), - 'Zlib': ('deflate_add', - 'deflate_init', - 'gzclose', - 'gzcompress', - 'gzdecode', - 'gzdeflate', - 'gzencode', - 'gzeof', - 'gzfile', - 'gzgetc', - 'gzgets', - 'gzgetss', - 'gzinflate', - 'gzopen', - 'gzpassthru', - 'gzputs', - 'gzread', - 'gzrewind', - 'gzseek', - 'gztell', - 'gzuncompress', - 'gzwrite', - 'inflate_add', - 'inflate_get_read_len', - 'inflate_get_status', - 'inflate_init', - 'readgzfile', - 'zlib_decode', - 'zlib_encode', - 'zlib_get_coding_type'), - 'ZooKeeper': ('zookeeper_dispatch',), - 'cURL': ('curl_close', - 'curl_copy_handle', - 'curl_errno', - 'curl_error', - 'curl_escape', - 'curl_exec', - 'curl_file_create', - 'curl_getinfo', - 'curl_init', - 'curl_multi_add_handle', - 'curl_multi_close', - 'curl_multi_errno', - 'curl_multi_exec', - 'curl_multi_getcontent', - 'curl_multi_info_read', - 'curl_multi_init', - 'curl_multi_remove_handle', - 'curl_multi_select', - 'curl_multi_setopt', - 'curl_multi_strerror', - 'curl_pause', - 'curl_reset', - 'curl_setopt_array', - 'curl_setopt', - 'curl_share_close', - 'curl_share_errno', - 'curl_share_init', - 'curl_share_setopt', - 'curl_share_strerror', - 'curl_strerror', - 'curl_unescape', - 'curl_version'), - 'dBase': ('dbase_add_record', - 'dbase_close', - 'dbase_create', - 'dbase_delete_record', - 'dbase_get_header_info', - 'dbase_get_record_with_names', - 'dbase_get_record', - 'dbase_numfields', - 'dbase_numrecords', - 'dbase_open', - 'dbase_pack', - 'dbase_replace_record'), - 'iconv': ('iconv_get_encoding', - 'iconv_mime_decode_headers', - 'iconv_mime_decode', - 'iconv_mime_encode', - 'iconv_set_encoding', - 'iconv_strlen', - 'iconv_strpos', - 'iconv_strrpos', - 'iconv_substr', - 'iconv', - 'ob_iconv_handler'), - 'intl': ('intl_error_name', - 'intl_get_error_code', - 'intl_get_error_message', - 'intl_is_failure'), - 'libxml': ('libxml_clear_errors', - 'libxml_disable_entity_loader', - 'libxml_get_errors', - 'libxml_get_last_error', - 'libxml_set_external_entity_loader', - 'libxml_set_streams_context', - 'libxml_use_internal_errors'), - 'mqseries': ('mqseries_back', - 'mqseries_begin', - 'mqseries_close', - 'mqseries_cmit', - 'mqseries_conn', - 'mqseries_connx', - 'mqseries_disc', - 'mqseries_get', - 'mqseries_inq', - 'mqseries_open', - 'mqseries_put1', - 'mqseries_put', - 'mqseries_set', - 'mqseries_strerror'), - 'phpdbg': ('phpdbg_break_file', - 'phpdbg_break_function', - 'phpdbg_break_method', - 'phpdbg_break_next', - 'phpdbg_clear', - 'phpdbg_color', - 'phpdbg_end_oplog', - 'phpdbg_exec', - 'phpdbg_get_executable', - 'phpdbg_prompt', - 'phpdbg_start_oplog'), - 'runkit7': ('runkit7_constant_add', - 'runkit7_constant_redefine', - 'runkit7_constant_remove', - 'runkit7_function_add', - 'runkit7_function_copy', - 'runkit7_function_redefine', - 'runkit7_function_remove', - 'runkit7_function_rename', - 'runkit7_import', - 'runkit7_method_add', - 'runkit7_method_copy', - 'runkit7_method_redefine', - 'runkit7_method_remove', - 'runkit7_method_rename', - 'runkit7_object_id', - 'runkit7_superglobals', - 'runkit7_zval_inspect'), - 'ssdeep': ('ssdeep_fuzzy_compare', - 'ssdeep_fuzzy_hash_filename', - 'ssdeep_fuzzy_hash'), - 'var_representation': ('var_representation',), - 'win32service': ('win32_continue_service', - 'win32_create_service', - 'win32_delete_service', - 'win32_get_last_control_message', - 'win32_pause_service', - 'win32_query_service_status', - 'win32_send_custom_control', - 'win32_set_service_exit_code', - 'win32_set_service_exit_mode', - 'win32_set_service_status', - 'win32_start_service_ctrl_dispatcher', - 'win32_start_service', - 'win32_stop_service'), - 'xattr': ('xattr_get', - 'xattr_list', - 'xattr_remove', - 'xattr_set', - 'xattr_supported'), - 'xdiff': ('xdiff_file_bdiff_size', - 'xdiff_file_bdiff', - 'xdiff_file_bpatch', - 'xdiff_file_diff_binary', - 'xdiff_file_diff', - 'xdiff_file_merge3', - 'xdiff_file_patch_binary', - 'xdiff_file_patch', - 'xdiff_file_rabdiff', - 'xdiff_string_bdiff_size', - 'xdiff_string_bdiff', - 'xdiff_string_bpatch', - 'xdiff_string_diff_binary', - 'xdiff_string_diff', - 'xdiff_string_merge3', - 'xdiff_string_patch_binary', - 'xdiff_string_patch', - 'xdiff_string_rabdiff')} +MODULES = { + "APCu": ( + "apcu_add", + "apcu_cache_info", + "apcu_cas", + "apcu_clear_cache", + "apcu_dec", + "apcu_delete", + "apcu_enabled", + "apcu_entry", + "apcu_exists", + "apcu_fetch", + "apcu_inc", + "apcu_key_info", + "apcu_sma_info", + "apcu_store", + ), + "Aliases and deprecated Mysqli": ( + "mysqli_connect", + "mysqli_execute", + "mysqli_get_client_stats", + "mysqli_get_links_stats", + "mysqli_report", + ), + "Apache": ( + "apache_child_terminate", + "apache_get_modules", + "apache_get_version", + "apache_getenv", + "apache_lookup_uri", + "apache_note", + "apache_request_headers", + "apache_response_headers", + "apache_setenv", + "getallheaders", + "virtual", + ), + "Array": ( + "array_change_key_case", + "array_chunk", + "array_column", + "array_combine", + "array_count_values", + "array_diff_assoc", + "array_diff_key", + "array_diff_uassoc", + "array_diff_ukey", + "array_diff", + "array_fill_keys", + "array_fill", + "array_filter", + "array_flip", + "array_intersect_assoc", + "array_intersect_key", + "array_intersect_uassoc", + "array_intersect_ukey", + "array_intersect", + "array_is_list", + "array_key_exists", + "array_key_first", + "array_key_last", + "array_keys", + "array_map", + "array_merge_recursive", + "array_merge", + "array_multisort", + "array_pad", + "array_pop", + "array_product", + "array_push", + "array_rand", + "array_reduce", + "array_replace_recursive", + "array_replace", + "array_reverse", + "array_search", + "array_shift", + "array_slice", + "array_splice", + "array_sum", + "array_udiff_assoc", + "array_udiff_uassoc", + "array_udiff", + "array_uintersect_assoc", + "array_uintersect_uassoc", + "array_uintersect", + "array_unique", + "array_unshift", + "array_values", + "array_walk_recursive", + "array_walk", + "array", + "arsort", + "asort", + "compact", + "count", + "current", + "each", + "end", + "extract", + "in_array", + "key_exists", + "key", + "krsort", + "ksort", + "list", + "natcasesort", + "natsort", + "next", + "pos", + "prev", + "range", + "reset", + "rsort", + "shuffle", + "sizeof", + "sort", + "uasort", + "uksort", + "usort", + ), + "BC Math": ( + "bcadd", + "bccomp", + "bcdiv", + "bcmod", + "bcmul", + "bcpow", + "bcpowmod", + "bcscale", + "bcsqrt", + "bcsub", + ), + "Bzip2": ( + "bzclose", + "bzcompress", + "bzdecompress", + "bzerrno", + "bzerror", + "bzerrstr", + "bzflush", + "bzopen", + "bzread", + "bzwrite", + ), + "COM": ( + "com_create_guid", + "com_event_sink", + "com_get_active_object", + "com_load_typelib", + "com_message_pump", + "com_print_typeinfo", + "variant_abs", + "variant_add", + "variant_and", + "variant_cast", + "variant_cat", + "variant_cmp", + "variant_date_from_timestamp", + "variant_date_to_timestamp", + "variant_div", + "variant_eqv", + "variant_fix", + "variant_get_type", + "variant_idiv", + "variant_imp", + "variant_int", + "variant_mod", + "variant_mul", + "variant_neg", + "variant_not", + "variant_or", + "variant_pow", + "variant_round", + "variant_set_type", + "variant_set", + "variant_sub", + "variant_xor", + ), + "CSPRNG": ("random_bytes", "random_int"), + "CUBRID": ( + "cubrid_bind", + "cubrid_close_prepare", + "cubrid_close_request", + "cubrid_col_get", + "cubrid_col_size", + "cubrid_column_names", + "cubrid_column_types", + "cubrid_commit", + "cubrid_connect_with_url", + "cubrid_connect", + "cubrid_current_oid", + "cubrid_disconnect", + "cubrid_drop", + "cubrid_error_code_facility", + "cubrid_error_code", + "cubrid_error_msg", + "cubrid_execute", + "cubrid_fetch", + "cubrid_free_result", + "cubrid_get_autocommit", + "cubrid_get_charset", + "cubrid_get_class_name", + "cubrid_get_client_info", + "cubrid_get_db_parameter", + "cubrid_get_query_timeout", + "cubrid_get_server_info", + "cubrid_get", + "cubrid_insert_id", + "cubrid_is_instance", + "cubrid_lob_close", + "cubrid_lob_export", + "cubrid_lob_get", + "cubrid_lob_send", + "cubrid_lob_size", + "cubrid_lob2_bind", + "cubrid_lob2_close", + "cubrid_lob2_export", + "cubrid_lob2_import", + "cubrid_lob2_new", + "cubrid_lob2_read", + "cubrid_lob2_seek64", + "cubrid_lob2_seek", + "cubrid_lob2_size64", + "cubrid_lob2_size", + "cubrid_lob2_tell64", + "cubrid_lob2_tell", + "cubrid_lob2_write", + "cubrid_lock_read", + "cubrid_lock_write", + "cubrid_move_cursor", + "cubrid_next_result", + "cubrid_num_cols", + "cubrid_num_rows", + "cubrid_pconnect_with_url", + "cubrid_pconnect", + "cubrid_prepare", + "cubrid_put", + "cubrid_rollback", + "cubrid_schema", + "cubrid_seq_drop", + "cubrid_seq_insert", + "cubrid_seq_put", + "cubrid_set_add", + "cubrid_set_autocommit", + "cubrid_set_db_parameter", + "cubrid_set_drop", + "cubrid_set_query_timeout", + "cubrid_version", + ), + "Calendar": ( + "cal_days_in_month", + "cal_from_jd", + "cal_info", + "cal_to_jd", + "easter_date", + "easter_days", + "frenchtojd", + "gregoriantojd", + "jddayofweek", + "jdmonthname", + "jdtofrench", + "jdtogregorian", + "jdtojewish", + "jdtojulian", + "jdtounix", + "jewishtojd", + "juliantojd", + "unixtojd", + ), + "Classes/Object": ( + "__autoload", + "class_alias", + "class_exists", + "enum_exists", + "get_called_class", + "get_class_methods", + "get_class_vars", + "get_class", + "get_declared_classes", + "get_declared_interfaces", + "get_declared_traits", + "get_mangled_object_vars", + "get_object_vars", + "get_parent_class", + "interface_exists", + "is_a", + "is_subclass_of", + "method_exists", + "property_exists", + "trait_exists", + ), + "Ctype": ( + "ctype_alnum", + "ctype_alpha", + "ctype_cntrl", + "ctype_digit", + "ctype_graph", + "ctype_lower", + "ctype_print", + "ctype_punct", + "ctype_space", + "ctype_upper", + "ctype_xdigit", + ), + "DBA": ( + "dba_close", + "dba_delete", + "dba_exists", + "dba_fetch", + "dba_firstkey", + "dba_handlers", + "dba_insert", + "dba_key_split", + "dba_list", + "dba_nextkey", + "dba_open", + "dba_optimize", + "dba_popen", + "dba_replace", + "dba_sync", + ), + "DOM": ("dom_import_simplexml",), + "Date/Time": ( + "checkdate", + "date_add", + "date_create_from_format", + "date_create_immutable_from_format", + "date_create_immutable", + "date_create", + "date_date_set", + "date_default_timezone_get", + "date_default_timezone_set", + "date_diff", + "date_format", + "date_get_last_errors", + "date_interval_create_from_date_string", + "date_interval_format", + "date_isodate_set", + "date_modify", + "date_offset_get", + "date_parse_from_format", + "date_parse", + "date_sub", + "date_sun_info", + "date_sunrise", + "date_sunset", + "date_time_set", + "date_timestamp_get", + "date_timestamp_set", + "date_timezone_get", + "date_timezone_set", + "date", + "getdate", + "gettimeofday", + "gmdate", + "gmmktime", + "gmstrftime", + "idate", + "localtime", + "microtime", + "mktime", + "strftime", + "strptime", + "strtotime", + "time", + "timezone_abbreviations_list", + "timezone_identifiers_list", + "timezone_location_get", + "timezone_name_from_abbr", + "timezone_name_get", + "timezone_offset_get", + "timezone_open", + "timezone_transitions_get", + "timezone_version_get", + ), + "Direct IO": ( + "dio_close", + "dio_fcntl", + "dio_open", + "dio_read", + "dio_seek", + "dio_stat", + "dio_tcsetattr", + "dio_truncate", + "dio_write", + ), + "Directory": ( + "chdir", + "chroot", + "closedir", + "dir", + "getcwd", + "opendir", + "readdir", + "rewinddir", + "scandir", + ), + "Eio": ( + "eio_busy", + "eio_cancel", + "eio_chmod", + "eio_chown", + "eio_close", + "eio_custom", + "eio_dup2", + "eio_event_loop", + "eio_fallocate", + "eio_fchmod", + "eio_fchown", + "eio_fdatasync", + "eio_fstat", + "eio_fstatvfs", + "eio_fsync", + "eio_ftruncate", + "eio_futime", + "eio_get_event_stream", + "eio_get_last_error", + "eio_grp_add", + "eio_grp_cancel", + "eio_grp_limit", + "eio_grp", + "eio_init", + "eio_link", + "eio_lstat", + "eio_mkdir", + "eio_mknod", + "eio_nop", + "eio_npending", + "eio_nready", + "eio_nreqs", + "eio_nthreads", + "eio_open", + "eio_poll", + "eio_read", + "eio_readahead", + "eio_readdir", + "eio_readlink", + "eio_realpath", + "eio_rename", + "eio_rmdir", + "eio_seek", + "eio_sendfile", + "eio_set_max_idle", + "eio_set_max_parallel", + "eio_set_max_poll_reqs", + "eio_set_max_poll_time", + "eio_set_min_parallel", + "eio_stat", + "eio_statvfs", + "eio_symlink", + "eio_sync_file_range", + "eio_sync", + "eio_syncfs", + "eio_truncate", + "eio_unlink", + "eio_utime", + "eio_write", + ), + "Enchant": ( + "enchant_broker_describe", + "enchant_broker_dict_exists", + "enchant_broker_free_dict", + "enchant_broker_free", + "enchant_broker_get_dict_path", + "enchant_broker_get_error", + "enchant_broker_init", + "enchant_broker_list_dicts", + "enchant_broker_request_dict", + "enchant_broker_request_pwl_dict", + "enchant_broker_set_dict_path", + "enchant_broker_set_ordering", + "enchant_dict_add_to_personal", + "enchant_dict_add_to_session", + "enchant_dict_add", + "enchant_dict_check", + "enchant_dict_describe", + "enchant_dict_get_error", + "enchant_dict_is_added", + "enchant_dict_is_in_session", + "enchant_dict_quick_check", + "enchant_dict_store_replacement", + "enchant_dict_suggest", + ), + "Error Handling": ( + "debug_backtrace", + "debug_print_backtrace", + "error_clear_last", + "error_get_last", + "error_log", + "error_reporting", + "restore_error_handler", + "restore_exception_handler", + "set_error_handler", + "set_exception_handler", + "trigger_error", + "user_error", + ), + "Exif": ( + "exif_imagetype", + "exif_read_data", + "exif_tagname", + "exif_thumbnail", + "read_exif_data", + ), + "Expect": ("expect_expectl", "expect_popen"), + "FDF": ( + "fdf_add_doc_javascript", + "fdf_add_template", + "fdf_close", + "fdf_create", + "fdf_enum_values", + "fdf_errno", + "fdf_error", + "fdf_get_ap", + "fdf_get_attachment", + "fdf_get_encoding", + "fdf_get_file", + "fdf_get_flags", + "fdf_get_opt", + "fdf_get_status", + "fdf_get_value", + "fdf_get_version", + "fdf_header", + "fdf_next_field_name", + "fdf_open_string", + "fdf_open", + "fdf_remove_item", + "fdf_save_string", + "fdf_save", + "fdf_set_ap", + "fdf_set_encoding", + "fdf_set_file", + "fdf_set_flags", + "fdf_set_javascript_action", + "fdf_set_on_import_javascript", + "fdf_set_opt", + "fdf_set_status", + "fdf_set_submit_form_action", + "fdf_set_target_frame", + "fdf_set_value", + "fdf_set_version", + ), + "FPM": ("fastcgi_finish_request",), + "FTP": ( + "ftp_alloc", + "ftp_append", + "ftp_cdup", + "ftp_chdir", + "ftp_chmod", + "ftp_close", + "ftp_connect", + "ftp_delete", + "ftp_exec", + "ftp_fget", + "ftp_fput", + "ftp_get_option", + "ftp_get", + "ftp_login", + "ftp_mdtm", + "ftp_mkdir", + "ftp_mlsd", + "ftp_nb_continue", + "ftp_nb_fget", + "ftp_nb_fput", + "ftp_nb_get", + "ftp_nb_put", + "ftp_nlist", + "ftp_pasv", + "ftp_put", + "ftp_pwd", + "ftp_quit", + "ftp_raw", + "ftp_rawlist", + "ftp_rename", + "ftp_rmdir", + "ftp_set_option", + "ftp_site", + "ftp_size", + "ftp_ssl_connect", + "ftp_systype", + ), + "Fann": ( + "fann_cascadetrain_on_data", + "fann_cascadetrain_on_file", + "fann_clear_scaling_params", + "fann_copy", + "fann_create_from_file", + "fann_create_shortcut_array", + "fann_create_shortcut", + "fann_create_sparse_array", + "fann_create_sparse", + "fann_create_standard_array", + "fann_create_standard", + "fann_create_train_from_callback", + "fann_create_train", + "fann_descale_input", + "fann_descale_output", + "fann_descale_train", + "fann_destroy_train", + "fann_destroy", + "fann_duplicate_train_data", + "fann_get_activation_function", + "fann_get_activation_steepness", + "fann_get_bias_array", + "fann_get_bit_fail_limit", + "fann_get_bit_fail", + "fann_get_cascade_activation_functions_count", + "fann_get_cascade_activation_functions", + "fann_get_cascade_activation_steepnesses_count", + "fann_get_cascade_activation_steepnesses", + "fann_get_cascade_candidate_change_fraction", + "fann_get_cascade_candidate_limit", + "fann_get_cascade_candidate_stagnation_epochs", + "fann_get_cascade_max_cand_epochs", + "fann_get_cascade_max_out_epochs", + "fann_get_cascade_min_cand_epochs", + "fann_get_cascade_min_out_epochs", + "fann_get_cascade_num_candidate_groups", + "fann_get_cascade_num_candidates", + "fann_get_cascade_output_change_fraction", + "fann_get_cascade_output_stagnation_epochs", + "fann_get_cascade_weight_multiplier", + "fann_get_connection_array", + "fann_get_connection_rate", + "fann_get_errno", + "fann_get_errstr", + "fann_get_layer_array", + "fann_get_learning_momentum", + "fann_get_learning_rate", + "fann_get_MSE", + "fann_get_network_type", + "fann_get_num_input", + "fann_get_num_layers", + "fann_get_num_output", + "fann_get_quickprop_decay", + "fann_get_quickprop_mu", + "fann_get_rprop_decrease_factor", + "fann_get_rprop_delta_max", + "fann_get_rprop_delta_min", + "fann_get_rprop_delta_zero", + "fann_get_rprop_increase_factor", + "fann_get_sarprop_step_error_shift", + "fann_get_sarprop_step_error_threshold_factor", + "fann_get_sarprop_temperature", + "fann_get_sarprop_weight_decay_shift", + "fann_get_total_connections", + "fann_get_total_neurons", + "fann_get_train_error_function", + "fann_get_train_stop_function", + "fann_get_training_algorithm", + "fann_init_weights", + "fann_length_train_data", + "fann_merge_train_data", + "fann_num_input_train_data", + "fann_num_output_train_data", + "fann_print_error", + "fann_randomize_weights", + "fann_read_train_from_file", + "fann_reset_errno", + "fann_reset_errstr", + "fann_reset_MSE", + "fann_run", + "fann_save_train", + "fann_save", + "fann_scale_input_train_data", + "fann_scale_input", + "fann_scale_output_train_data", + "fann_scale_output", + "fann_scale_train_data", + "fann_scale_train", + "fann_set_activation_function_hidden", + "fann_set_activation_function_layer", + "fann_set_activation_function_output", + "fann_set_activation_function", + "fann_set_activation_steepness_hidden", + "fann_set_activation_steepness_layer", + "fann_set_activation_steepness_output", + "fann_set_activation_steepness", + "fann_set_bit_fail_limit", + "fann_set_callback", + "fann_set_cascade_activation_functions", + "fann_set_cascade_activation_steepnesses", + "fann_set_cascade_candidate_change_fraction", + "fann_set_cascade_candidate_limit", + "fann_set_cascade_candidate_stagnation_epochs", + "fann_set_cascade_max_cand_epochs", + "fann_set_cascade_max_out_epochs", + "fann_set_cascade_min_cand_epochs", + "fann_set_cascade_min_out_epochs", + "fann_set_cascade_num_candidate_groups", + "fann_set_cascade_output_change_fraction", + "fann_set_cascade_output_stagnation_epochs", + "fann_set_cascade_weight_multiplier", + "fann_set_error_log", + "fann_set_input_scaling_params", + "fann_set_learning_momentum", + "fann_set_learning_rate", + "fann_set_output_scaling_params", + "fann_set_quickprop_decay", + "fann_set_quickprop_mu", + "fann_set_rprop_decrease_factor", + "fann_set_rprop_delta_max", + "fann_set_rprop_delta_min", + "fann_set_rprop_delta_zero", + "fann_set_rprop_increase_factor", + "fann_set_sarprop_step_error_shift", + "fann_set_sarprop_step_error_threshold_factor", + "fann_set_sarprop_temperature", + "fann_set_sarprop_weight_decay_shift", + "fann_set_scaling_params", + "fann_set_train_error_function", + "fann_set_train_stop_function", + "fann_set_training_algorithm", + "fann_set_weight_array", + "fann_set_weight", + "fann_shuffle_train_data", + "fann_subset_train_data", + "fann_test_data", + "fann_test", + "fann_train_epoch", + "fann_train_on_data", + "fann_train_on_file", + "fann_train", + ), + "Fileinfo": ( + "finfo_buffer", + "finfo_close", + "finfo_file", + "finfo_open", + "finfo_set_flags", + "mime_content_type", + ), + "Filesystem": ( + "basename", + "chgrp", + "chmod", + "chown", + "clearstatcache", + "copy", + "dirname", + "disk_free_space", + "disk_total_space", + "diskfreespace", + "fclose", + "fdatasync", + "feof", + "fflush", + "fgetc", + "fgetcsv", + "fgets", + "fgetss", + "file_exists", + "file_get_contents", + "file_put_contents", + "file", + "fileatime", + "filectime", + "filegroup", + "fileinode", + "filemtime", + "fileowner", + "fileperms", + "filesize", + "filetype", + "flock", + "fnmatch", + "fopen", + "fpassthru", + "fputcsv", + "fputs", + "fread", + "fscanf", + "fseek", + "fstat", + "fsync", + "ftell", + "ftruncate", + "fwrite", + "glob", + "is_dir", + "is_executable", + "is_file", + "is_link", + "is_readable", + "is_uploaded_file", + "is_writable", + "is_writeable", + "lchgrp", + "lchown", + "link", + "linkinfo", + "lstat", + "mkdir", + "move_uploaded_file", + "parse_ini_file", + "parse_ini_string", + "pathinfo", + "pclose", + "popen", + "readfile", + "readlink", + "realpath_cache_get", + "realpath_cache_size", + "realpath", + "rename", + "rewind", + "rmdir", + "set_file_buffer", + "stat", + "symlink", + "tempnam", + "tmpfile", + "touch", + "umask", + "unlink", + ), + "Filter": ( + "filter_has_var", + "filter_id", + "filter_input_array", + "filter_input", + "filter_list", + "filter_var_array", + "filter_var", + ), + "Firebird/InterBase": ( + "fbird_add_user", + "fbird_affected_rows", + "fbird_backup", + "fbird_blob_add", + "fbird_blob_cancel", + "fbird_blob_close", + "fbird_blob_create", + "fbird_blob_echo", + "fbird_blob_get", + "fbird_blob_import", + "fbird_blob_info", + "fbird_blob_open", + "fbird_close", + "fbird_commit_ret", + "fbird_commit", + "fbird_connect", + "fbird_db_info", + "fbird_delete_user", + "fbird_drop_db", + "fbird_errcode", + "fbird_errmsg", + "fbird_execute", + "fbird_fetch_assoc", + "fbird_fetch_object", + "fbird_fetch_row", + "fbird_field_info", + "fbird_free_event_handler", + "fbird_free_query", + "fbird_free_result", + "fbird_gen_id", + "fbird_maintain_db", + "fbird_modify_user", + "fbird_name_result", + "fbird_num_fields", + "fbird_num_params", + "fbird_param_info", + "fbird_pconnect", + "fbird_prepare", + "fbird_query", + "fbird_restore", + "fbird_rollback_ret", + "fbird_rollback", + "fbird_server_info", + "fbird_service_attach", + "fbird_service_detach", + "fbird_set_event_handler", + "fbird_trans", + "fbird_wait_event", + "ibase_add_user", + "ibase_affected_rows", + "ibase_backup", + "ibase_blob_add", + "ibase_blob_cancel", + "ibase_blob_close", + "ibase_blob_create", + "ibase_blob_echo", + "ibase_blob_get", + "ibase_blob_import", + "ibase_blob_info", + "ibase_blob_open", + "ibase_close", + "ibase_commit_ret", + "ibase_commit", + "ibase_connect", + "ibase_db_info", + "ibase_delete_user", + "ibase_drop_db", + "ibase_errcode", + "ibase_errmsg", + "ibase_execute", + "ibase_fetch_assoc", + "ibase_fetch_object", + "ibase_fetch_row", + "ibase_field_info", + "ibase_free_event_handler", + "ibase_free_query", + "ibase_free_result", + "ibase_gen_id", + "ibase_maintain_db", + "ibase_modify_user", + "ibase_name_result", + "ibase_num_fields", + "ibase_num_params", + "ibase_param_info", + "ibase_pconnect", + "ibase_prepare", + "ibase_query", + "ibase_restore", + "ibase_rollback_ret", + "ibase_rollback", + "ibase_server_info", + "ibase_service_attach", + "ibase_service_detach", + "ibase_set_event_handler", + "ibase_trans", + "ibase_wait_event", + ), + "Function handling": ( + "call_user_func_array", + "call_user_func", + "create_function", + "forward_static_call_array", + "forward_static_call", + "func_get_arg", + "func_get_args", + "func_num_args", + "function_exists", + "get_defined_functions", + "register_shutdown_function", + "register_tick_function", + "unregister_tick_function", + ), + "GD and Image": ( + "gd_info", + "getimagesize", + "getimagesizefromstring", + "image_type_to_extension", + "image_type_to_mime_type", + "image2wbmp", + "imageaffine", + "imageaffinematrixconcat", + "imageaffinematrixget", + "imagealphablending", + "imageantialias", + "imagearc", + "imageavif", + "imagebmp", + "imagechar", + "imagecharup", + "imagecolorallocate", + "imagecolorallocatealpha", + "imagecolorat", + "imagecolorclosest", + "imagecolorclosestalpha", + "imagecolorclosesthwb", + "imagecolordeallocate", + "imagecolorexact", + "imagecolorexactalpha", + "imagecolormatch", + "imagecolorresolve", + "imagecolorresolvealpha", + "imagecolorset", + "imagecolorsforindex", + "imagecolorstotal", + "imagecolortransparent", + "imageconvolution", + "imagecopy", + "imagecopymerge", + "imagecopymergegray", + "imagecopyresampled", + "imagecopyresized", + "imagecreate", + "imagecreatefromavif", + "imagecreatefrombmp", + "imagecreatefromgd2", + "imagecreatefromgd2part", + "imagecreatefromgd", + "imagecreatefromgif", + "imagecreatefromjpeg", + "imagecreatefrompng", + "imagecreatefromstring", + "imagecreatefromtga", + "imagecreatefromwbmp", + "imagecreatefromwebp", + "imagecreatefromxbm", + "imagecreatefromxpm", + "imagecreatetruecolor", + "imagecrop", + "imagecropauto", + "imagedashedline", + "imagedestroy", + "imageellipse", + "imagefill", + "imagefilledarc", + "imagefilledellipse", + "imagefilledpolygon", + "imagefilledrectangle", + "imagefilltoborder", + "imagefilter", + "imageflip", + "imagefontheight", + "imagefontwidth", + "imageftbbox", + "imagefttext", + "imagegammacorrect", + "imagegd2", + "imagegd", + "imagegetclip", + "imagegetinterpolation", + "imagegif", + "imagegrabscreen", + "imagegrabwindow", + "imageinterlace", + "imageistruecolor", + "imagejpeg", + "imagelayereffect", + "imageline", + "imageloadfont", + "imageopenpolygon", + "imagepalettecopy", + "imagepalettetotruecolor", + "imagepng", + "imagepolygon", + "imagerectangle", + "imageresolution", + "imagerotate", + "imagesavealpha", + "imagescale", + "imagesetbrush", + "imagesetclip", + "imagesetinterpolation", + "imagesetpixel", + "imagesetstyle", + "imagesetthickness", + "imagesettile", + "imagestring", + "imagestringup", + "imagesx", + "imagesy", + "imagetruecolortopalette", + "imagettfbbox", + "imagettftext", + "imagetypes", + "imagewbmp", + "imagewebp", + "imagexbm", + "iptcembed", + "iptcparse", + "jpeg2wbmp", + "png2wbmp", + ), + "GMP": ( + "gmp_abs", + "gmp_add", + "gmp_and", + "gmp_binomial", + "gmp_clrbit", + "gmp_cmp", + "gmp_com", + "gmp_div_q", + "gmp_div_qr", + "gmp_div_r", + "gmp_div", + "gmp_divexact", + "gmp_export", + "gmp_fact", + "gmp_gcd", + "gmp_gcdext", + "gmp_hamdist", + "gmp_import", + "gmp_init", + "gmp_intval", + "gmp_invert", + "gmp_jacobi", + "gmp_kronecker", + "gmp_lcm", + "gmp_legendre", + "gmp_mod", + "gmp_mul", + "gmp_neg", + "gmp_nextprime", + "gmp_or", + "gmp_perfect_power", + "gmp_perfect_square", + "gmp_popcount", + "gmp_pow", + "gmp_powm", + "gmp_prob_prime", + "gmp_random_bits", + "gmp_random_range", + "gmp_random_seed", + "gmp_random", + "gmp_root", + "gmp_rootrem", + "gmp_scan0", + "gmp_scan1", + "gmp_setbit", + "gmp_sign", + "gmp_sqrt", + "gmp_sqrtrem", + "gmp_strval", + "gmp_sub", + "gmp_testbit", + "gmp_xor", + ), + "GeoIP": ( + "geoip_asnum_by_name", + "geoip_continent_code_by_name", + "geoip_country_code_by_name", + "geoip_country_code3_by_name", + "geoip_country_name_by_name", + "geoip_database_info", + "geoip_db_avail", + "geoip_db_filename", + "geoip_db_get_all_info", + "geoip_domain_by_name", + "geoip_id_by_name", + "geoip_isp_by_name", + "geoip_netspeedcell_by_name", + "geoip_org_by_name", + "geoip_record_by_name", + "geoip_region_by_name", + "geoip_region_name_by_code", + "geoip_setup_custom_directory", + "geoip_time_zone_by_country_and_region", + ), + "Gettext": ( + "bind_textdomain_codeset", + "bindtextdomain", + "dcgettext", + "dcngettext", + "dgettext", + "dngettext", + "gettext", + "ngettext", + "textdomain", + ), + "GnuPG": ( + "gnupg_adddecryptkey", + "gnupg_addencryptkey", + "gnupg_addsignkey", + "gnupg_cleardecryptkeys", + "gnupg_clearencryptkeys", + "gnupg_clearsignkeys", + "gnupg_decrypt", + "gnupg_decryptverify", + "gnupg_encrypt", + "gnupg_encryptsign", + "gnupg_export", + "gnupg_getengineinfo", + "gnupg_geterror", + "gnupg_geterrorinfo", + "gnupg_getprotocol", + "gnupg_import", + "gnupg_init", + "gnupg_keyinfo", + "gnupg_setarmor", + "gnupg_seterrormode", + "gnupg_setsignmode", + "gnupg_sign", + "gnupg_verify", + ), + "Grapheme": ( + "grapheme_extract", + "grapheme_stripos", + "grapheme_stristr", + "grapheme_strlen", + "grapheme_strpos", + "grapheme_strripos", + "grapheme_strrpos", + "grapheme_strstr", + "grapheme_substr", + ), + "Hash": ( + "hash_algos", + "hash_copy", + "hash_equals", + "hash_file", + "hash_final", + "hash_hkdf", + "hash_hmac_algos", + "hash_hmac_file", + "hash_hmac", + "hash_init", + "hash_pbkdf2", + "hash_update_file", + "hash_update_stream", + "hash_update", + "hash", + ), + "IBM DB2": ( + "db2_autocommit", + "db2_bind_param", + "db2_client_info", + "db2_close", + "db2_column_privileges", + "db2_columns", + "db2_commit", + "db2_conn_error", + "db2_conn_errormsg", + "db2_connect", + "db2_cursor_type", + "db2_escape_string", + "db2_exec", + "db2_execute", + "db2_fetch_array", + "db2_fetch_assoc", + "db2_fetch_both", + "db2_fetch_object", + "db2_fetch_row", + "db2_field_display_size", + "db2_field_name", + "db2_field_num", + "db2_field_precision", + "db2_field_scale", + "db2_field_type", + "db2_field_width", + "db2_foreign_keys", + "db2_free_result", + "db2_free_stmt", + "db2_get_option", + "db2_last_insert_id", + "db2_lob_read", + "db2_next_result", + "db2_num_fields", + "db2_num_rows", + "db2_pclose", + "db2_pconnect", + "db2_prepare", + "db2_primary_keys", + "db2_procedure_columns", + "db2_procedures", + "db2_result", + "db2_rollback", + "db2_server_info", + "db2_set_option", + "db2_special_columns", + "db2_statistics", + "db2_stmt_error", + "db2_stmt_errormsg", + "db2_table_privileges", + "db2_tables", + ), + "IDN": ("idn_to_ascii", "idn_to_utf8"), + "IMAP": ( + "imap_8bit", + "imap_alerts", + "imap_append", + "imap_base64", + "imap_binary", + "imap_body", + "imap_bodystruct", + "imap_check", + "imap_clearflag_full", + "imap_close", + "imap_create", + "imap_createmailbox", + "imap_delete", + "imap_deletemailbox", + "imap_errors", + "imap_expunge", + "imap_fetch_overview", + "imap_fetchbody", + "imap_fetchheader", + "imap_fetchmime", + "imap_fetchstructure", + "imap_fetchtext", + "imap_gc", + "imap_get_quota", + "imap_get_quotaroot", + "imap_getacl", + "imap_getmailboxes", + "imap_getsubscribed", + "imap_header", + "imap_headerinfo", + "imap_headers", + "imap_last_error", + "imap_list", + "imap_listmailbox", + "imap_listscan", + "imap_listsubscribed", + "imap_lsub", + "imap_mail_compose", + "imap_mail_copy", + "imap_mail_move", + "imap_mail", + "imap_mailboxmsginfo", + "imap_mime_header_decode", + "imap_msgno", + "imap_mutf7_to_utf8", + "imap_num_msg", + "imap_num_recent", + "imap_open", + "imap_ping", + "imap_qprint", + "imap_rename", + "imap_renamemailbox", + "imap_reopen", + "imap_rfc822_parse_adrlist", + "imap_rfc822_parse_headers", + "imap_rfc822_write_address", + "imap_savebody", + "imap_scan", + "imap_scanmailbox", + "imap_search", + "imap_set_quota", + "imap_setacl", + "imap_setflag_full", + "imap_sort", + "imap_status", + "imap_subscribe", + "imap_thread", + "imap_timeout", + "imap_uid", + "imap_undelete", + "imap_unsubscribe", + "imap_utf7_decode", + "imap_utf7_encode", + "imap_utf8_to_mutf7", + "imap_utf8", + ), + "Igbinary": ("igbinary_serialize", "igbinary_unserialize"), + "Inotify": ( + "inotify_add_watch", + "inotify_init", + "inotify_queue_len", + "inotify_read", + "inotify_rm_watch", + ), + "JSON": ("json_decode", "json_encode", "json_last_error_msg", "json_last_error"), + "LDAP": ( + "ldap_8859_to_t61", + "ldap_add_ext", + "ldap_add", + "ldap_bind_ext", + "ldap_bind", + "ldap_close", + "ldap_compare", + "ldap_connect", + "ldap_control_paged_result_response", + "ldap_control_paged_result", + "ldap_count_entries", + "ldap_count_references", + "ldap_delete_ext", + "ldap_delete", + "ldap_dn2ufn", + "ldap_err2str", + "ldap_errno", + "ldap_error", + "ldap_escape", + "ldap_exop_passwd", + "ldap_exop_refresh", + "ldap_exop_whoami", + "ldap_exop", + "ldap_explode_dn", + "ldap_first_attribute", + "ldap_first_entry", + "ldap_first_reference", + "ldap_free_result", + "ldap_get_attributes", + "ldap_get_dn", + "ldap_get_entries", + "ldap_get_option", + "ldap_get_values_len", + "ldap_get_values", + "ldap_list", + "ldap_mod_add_ext", + "ldap_mod_add", + "ldap_mod_del_ext", + "ldap_mod_del", + "ldap_mod_replace_ext", + "ldap_mod_replace", + "ldap_modify_batch", + "ldap_modify", + "ldap_next_attribute", + "ldap_next_entry", + "ldap_next_reference", + "ldap_parse_exop", + "ldap_parse_reference", + "ldap_parse_result", + "ldap_read", + "ldap_rename_ext", + "ldap_rename", + "ldap_sasl_bind", + "ldap_search", + "ldap_set_option", + "ldap_set_rebind_proc", + "ldap_sort", + "ldap_start_tls", + "ldap_t61_to_8859", + "ldap_unbind", + ), + "LZF": ("lzf_compress", "lzf_decompress", "lzf_optimized_for"), + "Mail": ("ezmlm_hash", "mail"), + "Mailparse": ( + "mailparse_determine_best_xfer_encoding", + "mailparse_msg_create", + "mailparse_msg_extract_part_file", + "mailparse_msg_extract_part", + "mailparse_msg_extract_whole_part_file", + "mailparse_msg_free", + "mailparse_msg_get_part_data", + "mailparse_msg_get_part", + "mailparse_msg_get_structure", + "mailparse_msg_parse_file", + "mailparse_msg_parse", + "mailparse_rfc822_parse_addresses", + "mailparse_stream_encode", + "mailparse_uudecode_all", + ), + "Math": ( + "abs", + "acos", + "acosh", + "asin", + "asinh", + "atan2", + "atan", + "atanh", + "base_convert", + "bindec", + "ceil", + "cos", + "cosh", + "decbin", + "dechex", + "decoct", + "deg2rad", + "exp", + "expm1", + "fdiv", + "floor", + "fmod", + "getrandmax", + "hexdec", + "hypot", + "intdiv", + "is_finite", + "is_infinite", + "is_nan", + "lcg_value", + "log10", + "log1p", + "log", + "max", + "min", + "mt_getrandmax", + "mt_rand", + "mt_srand", + "octdec", + "pi", + "pow", + "rad2deg", + "rand", + "round", + "sin", + "sinh", + "sqrt", + "srand", + "tan", + "tanh", + ), + "Mcrypt": ( + "mcrypt_create_iv", + "mcrypt_decrypt", + "mcrypt_enc_get_algorithms_name", + "mcrypt_enc_get_block_size", + "mcrypt_enc_get_iv_size", + "mcrypt_enc_get_key_size", + "mcrypt_enc_get_modes_name", + "mcrypt_enc_get_supported_key_sizes", + "mcrypt_enc_is_block_algorithm_mode", + "mcrypt_enc_is_block_algorithm", + "mcrypt_enc_is_block_mode", + "mcrypt_enc_self_test", + "mcrypt_encrypt", + "mcrypt_generic_deinit", + "mcrypt_generic_init", + "mcrypt_generic", + "mcrypt_get_block_size", + "mcrypt_get_cipher_name", + "mcrypt_get_iv_size", + "mcrypt_get_key_size", + "mcrypt_list_algorithms", + "mcrypt_list_modes", + "mcrypt_module_close", + "mcrypt_module_get_algo_block_size", + "mcrypt_module_get_algo_key_size", + "mcrypt_module_get_supported_key_sizes", + "mcrypt_module_is_block_algorithm_mode", + "mcrypt_module_is_block_algorithm", + "mcrypt_module_is_block_mode", + "mcrypt_module_open", + "mcrypt_module_self_test", + "mdecrypt_generic", + ), + "Memcache": ("memcache_debug",), + "Mhash": ( + "mhash_count", + "mhash_get_block_size", + "mhash_get_hash_name", + "mhash_keygen_s2k", + "mhash", + ), + "Misc.": ( + "connection_aborted", + "connection_status", + "constant", + "define", + "defined", + "die", + "eval", + "exit", + "get_browser", + "__halt_compiler", + "highlight_file", + "highlight_string", + "hrtime", + "ignore_user_abort", + "pack", + "php_strip_whitespace", + "sapi_windows_cp_conv", + "sapi_windows_cp_get", + "sapi_windows_cp_is_utf8", + "sapi_windows_cp_set", + "sapi_windows_generate_ctrl_event", + "sapi_windows_set_ctrl_handler", + "sapi_windows_vt100_support", + "show_source", + "sleep", + "sys_getloadavg", + "time_nanosleep", + "time_sleep_until", + "uniqid", + "unpack", + "usleep", + ), + "Multibyte String": ( + "mb_check_encoding", + "mb_chr", + "mb_convert_case", + "mb_convert_encoding", + "mb_convert_kana", + "mb_convert_variables", + "mb_decode_mimeheader", + "mb_decode_numericentity", + "mb_detect_encoding", + "mb_detect_order", + "mb_encode_mimeheader", + "mb_encode_numericentity", + "mb_encoding_aliases", + "mb_ereg_match", + "mb_ereg_replace_callback", + "mb_ereg_replace", + "mb_ereg_search_getpos", + "mb_ereg_search_getregs", + "mb_ereg_search_init", + "mb_ereg_search_pos", + "mb_ereg_search_regs", + "mb_ereg_search_setpos", + "mb_ereg_search", + "mb_ereg", + "mb_eregi_replace", + "mb_eregi", + "mb_get_info", + "mb_http_input", + "mb_http_output", + "mb_internal_encoding", + "mb_language", + "mb_list_encodings", + "mb_ord", + "mb_output_handler", + "mb_parse_str", + "mb_preferred_mime_name", + "mb_regex_encoding", + "mb_regex_set_options", + "mb_scrub", + "mb_send_mail", + "mb_split", + "mb_str_split", + "mb_strcut", + "mb_strimwidth", + "mb_stripos", + "mb_stristr", + "mb_strlen", + "mb_strpos", + "mb_strrchr", + "mb_strrichr", + "mb_strripos", + "mb_strrpos", + "mb_strstr", + "mb_strtolower", + "mb_strtoupper", + "mb_strwidth", + "mb_substitute_character", + "mb_substr_count", + "mb_substr", + ), + "MySQL": ( + "mysql_affected_rows", + "mysql_client_encoding", + "mysql_close", + "mysql_connect", + "mysql_create_db", + "mysql_data_seek", + "mysql_db_name", + "mysql_db_query", + "mysql_drop_db", + "mysql_errno", + "mysql_error", + "mysql_escape_string", + "mysql_fetch_array", + "mysql_fetch_assoc", + "mysql_fetch_field", + "mysql_fetch_lengths", + "mysql_fetch_object", + "mysql_fetch_row", + "mysql_field_flags", + "mysql_field_len", + "mysql_field_name", + "mysql_field_seek", + "mysql_field_table", + "mysql_field_type", + "mysql_free_result", + "mysql_get_client_info", + "mysql_get_host_info", + "mysql_get_proto_info", + "mysql_get_server_info", + "mysql_info", + "mysql_insert_id", + "mysql_list_dbs", + "mysql_list_fields", + "mysql_list_processes", + "mysql_list_tables", + "mysql_num_fields", + "mysql_num_rows", + "mysql_pconnect", + "mysql_ping", + "mysql_query", + "mysql_real_escape_string", + "mysql_result", + "mysql_select_db", + "mysql_set_charset", + "mysql_stat", + "mysql_tablename", + "mysql_thread_id", + "mysql_unbuffered_query", + ), + "Mysql_xdevapi": ("expression", "getSession"), + "Network": ( + "checkdnsrr", + "closelog", + "dns_check_record", + "dns_get_mx", + "dns_get_record", + "fsockopen", + "gethostbyaddr", + "gethostbyname", + "gethostbynamel", + "gethostname", + "getmxrr", + "getprotobyname", + "getprotobynumber", + "getservbyname", + "getservbyport", + "header_register_callback", + "header_remove", + "header", + "headers_list", + "headers_sent", + "http_response_code", + "inet_ntop", + "inet_pton", + "ip2long", + "long2ip", + "net_get_interfaces", + "openlog", + "pfsockopen", + "setcookie", + "setrawcookie", + "socket_get_status", + "socket_set_blocking", + "socket_set_timeout", + "syslog", + ), + "OAuth": ("oauth_get_sbs", "oauth_urlencode"), + "OCI8": ( + "oci_bind_array_by_name", + "oci_bind_by_name", + "oci_cancel", + "oci_client_version", + "oci_close", + "oci_commit", + "oci_connect", + "oci_define_by_name", + "oci_error", + "oci_execute", + "oci_fetch_all", + "oci_fetch_array", + "oci_fetch_assoc", + "oci_fetch_object", + "oci_fetch_row", + "oci_fetch", + "oci_field_is_null", + "oci_field_name", + "oci_field_precision", + "oci_field_scale", + "oci_field_size", + "oci_field_type_raw", + "oci_field_type", + "oci_free_descriptor", + "oci_free_statement", + "oci_get_implicit_resultset", + "oci_lob_copy", + "oci_lob_is_equal", + "oci_new_collection", + "oci_new_connect", + "oci_new_cursor", + "oci_new_descriptor", + "oci_num_fields", + "oci_num_rows", + "oci_parse", + "oci_password_change", + "oci_pconnect", + "oci_register_taf_callback", + "oci_result", + "oci_rollback", + "oci_server_version", + "oci_set_action", + "oci_set_call_timeout", + "oci_set_client_identifier", + "oci_set_client_info", + "oci_set_db_operation", + "oci_set_edition", + "oci_set_module_name", + "oci_set_prefetch_lob", + "oci_set_prefetch", + "oci_statement_type", + "oci_unregister_taf_callback", + ), + "ODBC": ( + "odbc_autocommit", + "odbc_binmode", + "odbc_close_all", + "odbc_close", + "odbc_columnprivileges", + "odbc_columns", + "odbc_commit", + "odbc_connect", + "odbc_cursor", + "odbc_data_source", + "odbc_do", + "odbc_error", + "odbc_errormsg", + "odbc_exec", + "odbc_execute", + "odbc_fetch_array", + "odbc_fetch_into", + "odbc_fetch_object", + "odbc_fetch_row", + "odbc_field_len", + "odbc_field_name", + "odbc_field_num", + "odbc_field_precision", + "odbc_field_scale", + "odbc_field_type", + "odbc_foreignkeys", + "odbc_free_result", + "odbc_gettypeinfo", + "odbc_longreadlen", + "odbc_next_result", + "odbc_num_fields", + "odbc_num_rows", + "odbc_pconnect", + "odbc_prepare", + "odbc_primarykeys", + "odbc_procedurecolumns", + "odbc_procedures", + "odbc_result_all", + "odbc_result", + "odbc_rollback", + "odbc_setoption", + "odbc_specialcolumns", + "odbc_statistics", + "odbc_tableprivileges", + "odbc_tables", + ), + "OPcache": ( + "opcache_compile_file", + "opcache_get_configuration", + "opcache_get_status", + "opcache_invalidate", + "opcache_is_script_cached", + "opcache_reset", + ), + "OpenAL": ( + "openal_buffer_create", + "openal_buffer_data", + "openal_buffer_destroy", + "openal_buffer_get", + "openal_buffer_loadwav", + "openal_context_create", + "openal_context_current", + "openal_context_destroy", + "openal_context_process", + "openal_context_suspend", + "openal_device_close", + "openal_device_open", + "openal_listener_get", + "openal_listener_set", + "openal_source_create", + "openal_source_destroy", + "openal_source_get", + "openal_source_pause", + "openal_source_play", + "openal_source_rewind", + "openal_source_set", + "openal_source_stop", + "openal_stream", + ), + "OpenSSL": ( + "openssl_cipher_iv_length", + "openssl_cms_decrypt", + "openssl_cms_encrypt", + "openssl_cms_read", + "openssl_cms_sign", + "openssl_cms_verify", + "openssl_csr_export_to_file", + "openssl_csr_export", + "openssl_csr_get_public_key", + "openssl_csr_get_subject", + "openssl_csr_new", + "openssl_csr_sign", + "openssl_decrypt", + "openssl_dh_compute_key", + "openssl_digest", + "openssl_encrypt", + "openssl_error_string", + "openssl_free_key", + "openssl_get_cert_locations", + "openssl_get_cipher_methods", + "openssl_get_curve_names", + "openssl_get_md_methods", + "openssl_get_privatekey", + "openssl_get_publickey", + "openssl_open", + "openssl_pbkdf2", + "openssl_pkcs12_export_to_file", + "openssl_pkcs12_export", + "openssl_pkcs12_read", + "openssl_pkcs7_decrypt", + "openssl_pkcs7_encrypt", + "openssl_pkcs7_read", + "openssl_pkcs7_sign", + "openssl_pkcs7_verify", + "openssl_pkey_derive", + "openssl_pkey_export_to_file", + "openssl_pkey_export", + "openssl_pkey_free", + "openssl_pkey_get_details", + "openssl_pkey_get_private", + "openssl_pkey_get_public", + "openssl_pkey_new", + "openssl_private_decrypt", + "openssl_private_encrypt", + "openssl_public_decrypt", + "openssl_public_encrypt", + "openssl_random_pseudo_bytes", + "openssl_seal", + "openssl_sign", + "openssl_spki_export_challenge", + "openssl_spki_export", + "openssl_spki_new", + "openssl_spki_verify", + "openssl_verify", + "openssl_x509_check_private_key", + "openssl_x509_checkpurpose", + "openssl_x509_export_to_file", + "openssl_x509_export", + "openssl_x509_fingerprint", + "openssl_x509_free", + "openssl_x509_parse", + "openssl_x509_read", + "openssl_x509_verify", + ), + "Output Control": ( + "flush", + "ob_clean", + "ob_end_clean", + "ob_end_flush", + "ob_flush", + "ob_get_clean", + "ob_get_contents", + "ob_get_flush", + "ob_get_length", + "ob_get_level", + "ob_get_status", + "ob_gzhandler", + "ob_implicit_flush", + "ob_list_handlers", + "ob_start", + "output_add_rewrite_var", + "output_reset_rewrite_vars", + ), + "PCNTL": ( + "pcntl_alarm", + "pcntl_async_signals", + "pcntl_errno", + "pcntl_exec", + "pcntl_fork", + "pcntl_get_last_error", + "pcntl_getpriority", + "pcntl_setpriority", + "pcntl_signal_dispatch", + "pcntl_signal_get_handler", + "pcntl_signal", + "pcntl_sigprocmask", + "pcntl_sigtimedwait", + "pcntl_sigwaitinfo", + "pcntl_strerror", + "pcntl_wait", + "pcntl_waitpid", + "pcntl_wexitstatus", + "pcntl_wifexited", + "pcntl_wifsignaled", + "pcntl_wifstopped", + "pcntl_wstopsig", + "pcntl_wtermsig", + ), + "PCRE": ( + "preg_filter", + "preg_grep", + "preg_last_error_msg", + "preg_last_error", + "preg_match_all", + "preg_match", + "preg_quote", + "preg_replace_callback_array", + "preg_replace_callback", + "preg_replace", + "preg_split", + ), + "PHP Options/Info": ( + "assert_options", + "assert", + "cli_get_process_title", + "cli_set_process_title", + "dl", + "extension_loaded", + "gc_collect_cycles", + "gc_disable", + "gc_enable", + "gc_enabled", + "gc_mem_caches", + "gc_status", + "get_cfg_var", + "get_current_user", + "get_defined_constants", + "get_extension_funcs", + "get_include_path", + "get_included_files", + "get_loaded_extensions", + "get_magic_quotes_gpc", + "get_magic_quotes_runtime", + "get_required_files", + "get_resources", + "getenv", + "getlastmod", + "getmygid", + "getmyinode", + "getmypid", + "getmyuid", + "getopt", + "getrusage", + "ini_alter", + "ini_get_all", + "ini_get", + "ini_restore", + "ini_set", + "memory_get_peak_usage", + "memory_get_usage", + "php_ini_loaded_file", + "php_ini_scanned_files", + "php_sapi_name", + "php_uname", + "phpcredits", + "phpinfo", + "phpversion", + "putenv", + "restore_include_path", + "set_include_path", + "set_time_limit", + "sys_get_temp_dir", + "version_compare", + "zend_thread_id", + "zend_version", + ), + "POSIX": ( + "posix_access", + "posix_ctermid", + "posix_errno", + "posix_get_last_error", + "posix_getcwd", + "posix_getegid", + "posix_geteuid", + "posix_getgid", + "posix_getgrgid", + "posix_getgrnam", + "posix_getgroups", + "posix_getlogin", + "posix_getpgid", + "posix_getpgrp", + "posix_getpid", + "posix_getppid", + "posix_getpwnam", + "posix_getpwuid", + "posix_getrlimit", + "posix_getsid", + "posix_getuid", + "posix_initgroups", + "posix_isatty", + "posix_kill", + "posix_mkfifo", + "posix_mknod", + "posix_setegid", + "posix_seteuid", + "posix_setgid", + "posix_setpgid", + "posix_setrlimit", + "posix_setsid", + "posix_setuid", + "posix_strerror", + "posix_times", + "posix_ttyname", + "posix_uname", + ), + "PS": ( + "ps_add_bookmark", + "ps_add_launchlink", + "ps_add_locallink", + "ps_add_note", + "ps_add_pdflink", + "ps_add_weblink", + "ps_arc", + "ps_arcn", + "ps_begin_page", + "ps_begin_pattern", + "ps_begin_template", + "ps_circle", + "ps_clip", + "ps_close_image", + "ps_close", + "ps_closepath_stroke", + "ps_closepath", + "ps_continue_text", + "ps_curveto", + "ps_delete", + "ps_end_page", + "ps_end_pattern", + "ps_end_template", + "ps_fill_stroke", + "ps_fill", + "ps_findfont", + "ps_get_buffer", + "ps_get_parameter", + "ps_get_value", + "ps_hyphenate", + "ps_include_file", + "ps_lineto", + "ps_makespotcolor", + "ps_moveto", + "ps_new", + "ps_open_file", + "ps_open_image_file", + "ps_open_image", + "ps_open_memory_image", + "ps_place_image", + "ps_rect", + "ps_restore", + "ps_rotate", + "ps_save", + "ps_scale", + "ps_set_border_color", + "ps_set_border_dash", + "ps_set_border_style", + "ps_set_info", + "ps_set_parameter", + "ps_set_text_pos", + "ps_set_value", + "ps_setcolor", + "ps_setdash", + "ps_setflat", + "ps_setfont", + "ps_setgray", + "ps_setlinecap", + "ps_setlinejoin", + "ps_setlinewidth", + "ps_setmiterlimit", + "ps_setoverprintmode", + "ps_setpolydash", + "ps_shading_pattern", + "ps_shading", + "ps_shfill", + "ps_show_boxed", + "ps_show_xy2", + "ps_show_xy", + "ps_show2", + "ps_show", + "ps_string_geometry", + "ps_stringwidth", + "ps_stroke", + "ps_symbol_name", + "ps_symbol_width", + "ps_symbol", + "ps_translate", + ), + "Password Hashing": ( + "password_algos", + "password_get_info", + "password_hash", + "password_needs_rehash", + "password_verify", + ), + "PostgreSQL": ( + "pg_affected_rows", + "pg_cancel_query", + "pg_client_encoding", + "pg_close", + "pg_connect_poll", + "pg_connect", + "pg_connection_busy", + "pg_connection_reset", + "pg_connection_status", + "pg_consume_input", + "pg_convert", + "pg_copy_from", + "pg_copy_to", + "pg_dbname", + "pg_delete", + "pg_end_copy", + "pg_escape_bytea", + "pg_escape_identifier", + "pg_escape_literal", + "pg_escape_string", + "pg_execute", + "pg_fetch_all_columns", + "pg_fetch_all", + "pg_fetch_array", + "pg_fetch_assoc", + "pg_fetch_object", + "pg_fetch_result", + "pg_fetch_row", + "pg_field_is_null", + "pg_field_name", + "pg_field_num", + "pg_field_prtlen", + "pg_field_size", + "pg_field_table", + "pg_field_type_oid", + "pg_field_type", + "pg_flush", + "pg_free_result", + "pg_get_notify", + "pg_get_pid", + "pg_get_result", + "pg_host", + "pg_insert", + "pg_last_error", + "pg_last_notice", + "pg_last_oid", + "pg_lo_close", + "pg_lo_create", + "pg_lo_export", + "pg_lo_import", + "pg_lo_open", + "pg_lo_read_all", + "pg_lo_read", + "pg_lo_seek", + "pg_lo_tell", + "pg_lo_truncate", + "pg_lo_unlink", + "pg_lo_write", + "pg_meta_data", + "pg_num_fields", + "pg_num_rows", + "pg_options", + "pg_parameter_status", + "pg_pconnect", + "pg_ping", + "pg_port", + "pg_prepare", + "pg_put_line", + "pg_query_params", + "pg_query", + "pg_result_error_field", + "pg_result_error", + "pg_result_seek", + "pg_result_status", + "pg_select", + "pg_send_execute", + "pg_send_prepare", + "pg_send_query_params", + "pg_send_query", + "pg_set_client_encoding", + "pg_set_error_verbosity", + "pg_socket", + "pg_trace", + "pg_transaction_status", + "pg_tty", + "pg_unescape_bytea", + "pg_untrace", + "pg_update", + "pg_version", + ), + "Program execution": ( + "escapeshellarg", + "escapeshellcmd", + "exec", + "passthru", + "proc_close", + "proc_get_status", + "proc_nice", + "proc_open", + "proc_terminate", + "shell_exec", + "system", + ), + "Pspell": ( + "pspell_add_to_personal", + "pspell_add_to_session", + "pspell_check", + "pspell_clear_session", + "pspell_config_create", + "pspell_config_data_dir", + "pspell_config_dict_dir", + "pspell_config_ignore", + "pspell_config_mode", + "pspell_config_personal", + "pspell_config_repl", + "pspell_config_runtogether", + "pspell_config_save_repl", + "pspell_new_config", + "pspell_new_personal", + "pspell_new", + "pspell_save_wordlist", + "pspell_store_replacement", + "pspell_suggest", + ), + "RRD": ( + "rrd_create", + "rrd_error", + "rrd_fetch", + "rrd_first", + "rrd_graph", + "rrd_info", + "rrd_last", + "rrd_lastupdate", + "rrd_restore", + "rrd_tune", + "rrd_update", + "rrd_version", + "rrd_xport", + "rrdc_disconnect", + ), + "Radius": ( + "radius_acct_open", + "radius_add_server", + "radius_auth_open", + "radius_close", + "radius_config", + "radius_create_request", + "radius_cvt_addr", + "radius_cvt_int", + "radius_cvt_string", + "radius_demangle_mppe_key", + "radius_demangle", + "radius_get_attr", + "radius_get_tagged_attr_data", + "radius_get_tagged_attr_tag", + "radius_get_vendor_attr", + "radius_put_addr", + "radius_put_attr", + "radius_put_int", + "radius_put_string", + "radius_put_vendor_addr", + "radius_put_vendor_attr", + "radius_put_vendor_int", + "radius_put_vendor_string", + "radius_request_authenticator", + "radius_salt_encrypt_attr", + "radius_send_request", + "radius_server_secret", + "radius_strerror", + ), + "Rar": ("rar_wrapper_cache_stats",), + "Readline": ( + "readline_add_history", + "readline_callback_handler_install", + "readline_callback_handler_remove", + "readline_callback_read_char", + "readline_clear_history", + "readline_completion_function", + "readline_info", + "readline_list_history", + "readline_on_new_line", + "readline_read_history", + "readline_redisplay", + "readline_write_history", + "readline", + ), + "Recode": ("recode_file", "recode_string", "recode"), + "RpmInfo": ("rpmaddtag", "rpmdbinfo", "rpmdbsearch", "rpminfo", "rpmvercmp"), + "SNMP": ( + "snmp_get_quick_print", + "snmp_get_valueretrieval", + "snmp_read_mib", + "snmp_set_enum_print", + "snmp_set_oid_numeric_print", + "snmp_set_oid_output_format", + "snmp_set_quick_print", + "snmp_set_valueretrieval", + "snmp2_get", + "snmp2_getnext", + "snmp2_real_walk", + "snmp2_set", + "snmp2_walk", + "snmp3_get", + "snmp3_getnext", + "snmp3_real_walk", + "snmp3_set", + "snmp3_walk", + "snmpget", + "snmpgetnext", + "snmprealwalk", + "snmpset", + "snmpwalk", + "snmpwalkoid", + ), + "SOAP": ("is_soap_fault", "use_soap_error_handler"), + "SPL": ( + "class_implements", + "class_parents", + "class_uses", + "iterator_apply", + "iterator_count", + "iterator_to_array", + "spl_autoload_call", + "spl_autoload_extensions", + "spl_autoload_functions", + "spl_autoload_register", + "spl_autoload_unregister", + "spl_autoload", + "spl_classes", + "spl_object_hash", + "spl_object_id", + ), + "SQLSRV": ( + "sqlsrv_begin_transaction", + "sqlsrv_cancel", + "sqlsrv_client_info", + "sqlsrv_close", + "sqlsrv_commit", + "sqlsrv_configure", + "sqlsrv_connect", + "sqlsrv_errors", + "sqlsrv_execute", + "sqlsrv_fetch_array", + "sqlsrv_fetch_object", + "sqlsrv_fetch", + "sqlsrv_field_metadata", + "sqlsrv_free_stmt", + "sqlsrv_get_config", + "sqlsrv_get_field", + "sqlsrv_has_rows", + "sqlsrv_next_result", + "sqlsrv_num_fields", + "sqlsrv_num_rows", + "sqlsrv_prepare", + "sqlsrv_query", + "sqlsrv_rollback", + "sqlsrv_rows_affected", + "sqlsrv_send_stream_data", + "sqlsrv_server_info", + ), + "SSH2": ( + "ssh2_auth_agent", + "ssh2_auth_hostbased_file", + "ssh2_auth_none", + "ssh2_auth_password", + "ssh2_auth_pubkey_file", + "ssh2_connect", + "ssh2_disconnect", + "ssh2_exec", + "ssh2_fetch_stream", + "ssh2_fingerprint", + "ssh2_forward_accept", + "ssh2_forward_listen", + "ssh2_methods_negotiated", + "ssh2_poll", + "ssh2_publickey_add", + "ssh2_publickey_init", + "ssh2_publickey_list", + "ssh2_publickey_remove", + "ssh2_scp_recv", + "ssh2_scp_send", + "ssh2_send_eof", + "ssh2_sftp_chmod", + "ssh2_sftp_lstat", + "ssh2_sftp_mkdir", + "ssh2_sftp_readlink", + "ssh2_sftp_realpath", + "ssh2_sftp_rename", + "ssh2_sftp_rmdir", + "ssh2_sftp_stat", + "ssh2_sftp_symlink", + "ssh2_sftp_unlink", + "ssh2_sftp", + "ssh2_shell", + "ssh2_tunnel", + ), + "SVN": ( + "svn_add", + "svn_auth_get_parameter", + "svn_auth_set_parameter", + "svn_blame", + "svn_cat", + "svn_checkout", + "svn_cleanup", + "svn_client_version", + "svn_commit", + "svn_delete", + "svn_diff", + "svn_export", + "svn_fs_abort_txn", + "svn_fs_apply_text", + "svn_fs_begin_txn2", + "svn_fs_change_node_prop", + "svn_fs_check_path", + "svn_fs_contents_changed", + "svn_fs_copy", + "svn_fs_delete", + "svn_fs_dir_entries", + "svn_fs_file_contents", + "svn_fs_file_length", + "svn_fs_is_dir", + "svn_fs_is_file", + "svn_fs_make_dir", + "svn_fs_make_file", + "svn_fs_node_created_rev", + "svn_fs_node_prop", + "svn_fs_props_changed", + "svn_fs_revision_prop", + "svn_fs_revision_root", + "svn_fs_txn_root", + "svn_fs_youngest_rev", + "svn_import", + "svn_log", + "svn_ls", + "svn_mkdir", + "svn_repos_create", + "svn_repos_fs_begin_txn_for_commit", + "svn_repos_fs_commit_txn", + "svn_repos_fs", + "svn_repos_hotcopy", + "svn_repos_open", + "svn_repos_recover", + "svn_revert", + "svn_status", + "svn_update", + ), + "Scoutapm": ("scoutapm_get_calls", "scoutapm_list_instrumented_functions"), + "Seaslog": ("seaslog_get_author", "seaslog_get_version"), + "Semaphore": ( + "ftok", + "msg_get_queue", + "msg_queue_exists", + "msg_receive", + "msg_remove_queue", + "msg_send", + "msg_set_queue", + "msg_stat_queue", + "sem_acquire", + "sem_get", + "sem_release", + "sem_remove", + "shm_attach", + "shm_detach", + "shm_get_var", + "shm_has_var", + "shm_put_var", + "shm_remove_var", + "shm_remove", + ), + "Session": ( + "session_abort", + "session_cache_expire", + "session_cache_limiter", + "session_commit", + "session_create_id", + "session_decode", + "session_destroy", + "session_encode", + "session_gc", + "session_get_cookie_params", + "session_id", + "session_module_name", + "session_name", + "session_regenerate_id", + "session_register_shutdown", + "session_reset", + "session_save_path", + "session_set_cookie_params", + "session_set_save_handler", + "session_start", + "session_status", + "session_unset", + "session_write_close", + ), + "Shared Memory": ( + "shmop_close", + "shmop_delete", + "shmop_open", + "shmop_read", + "shmop_size", + "shmop_write", + ), + "SimpleXML": ( + "simplexml_import_dom", + "simplexml_load_file", + "simplexml_load_string", + ), + "Socket": ( + "socket_accept", + "socket_addrinfo_bind", + "socket_addrinfo_connect", + "socket_addrinfo_explain", + "socket_addrinfo_lookup", + "socket_bind", + "socket_clear_error", + "socket_close", + "socket_cmsg_space", + "socket_connect", + "socket_create_listen", + "socket_create_pair", + "socket_create", + "socket_export_stream", + "socket_get_option", + "socket_getopt", + "socket_getpeername", + "socket_getsockname", + "socket_import_stream", + "socket_last_error", + "socket_listen", + "socket_read", + "socket_recv", + "socket_recvfrom", + "socket_recvmsg", + "socket_select", + "socket_send", + "socket_sendmsg", + "socket_sendto", + "socket_set_block", + "socket_set_nonblock", + "socket_set_option", + "socket_setopt", + "socket_shutdown", + "socket_strerror", + "socket_write", + "socket_wsaprotocol_info_export", + "socket_wsaprotocol_info_import", + "socket_wsaprotocol_info_release", + ), + "Sodium": ( + "sodium_add", + "sodium_base642bin", + "sodium_bin2base64", + "sodium_bin2hex", + "sodium_compare", + "sodium_crypto_aead_aes256gcm_decrypt", + "sodium_crypto_aead_aes256gcm_encrypt", + "sodium_crypto_aead_aes256gcm_is_available", + "sodium_crypto_aead_aes256gcm_keygen", + "sodium_crypto_aead_chacha20poly1305_decrypt", + "sodium_crypto_aead_chacha20poly1305_encrypt", + "sodium_crypto_aead_chacha20poly1305_ietf_decrypt", + "sodium_crypto_aead_chacha20poly1305_ietf_encrypt", + "sodium_crypto_aead_chacha20poly1305_ietf_keygen", + "sodium_crypto_aead_chacha20poly1305_keygen", + "sodium_crypto_aead_xchacha20poly1305_ietf_decrypt", + "sodium_crypto_aead_xchacha20poly1305_ietf_encrypt", + "sodium_crypto_aead_xchacha20poly1305_ietf_keygen", + "sodium_crypto_auth_keygen", + "sodium_crypto_auth_verify", + "sodium_crypto_auth", + "sodium_crypto_box_keypair_from_secretkey_and_publickey", + "sodium_crypto_box_keypair", + "sodium_crypto_box_open", + "sodium_crypto_box_publickey_from_secretkey", + "sodium_crypto_box_publickey", + "sodium_crypto_box_seal_open", + "sodium_crypto_box_seal", + "sodium_crypto_box_secretkey", + "sodium_crypto_box_seed_keypair", + "sodium_crypto_box", + "sodium_crypto_generichash_final", + "sodium_crypto_generichash_init", + "sodium_crypto_generichash_keygen", + "sodium_crypto_generichash_update", + "sodium_crypto_generichash", + "sodium_crypto_kdf_derive_from_key", + "sodium_crypto_kdf_keygen", + "sodium_crypto_kx_client_session_keys", + "sodium_crypto_kx_keypair", + "sodium_crypto_kx_publickey", + "sodium_crypto_kx_secretkey", + "sodium_crypto_kx_seed_keypair", + "sodium_crypto_kx_server_session_keys", + "sodium_crypto_pwhash_scryptsalsa208sha256_str_verify", + "sodium_crypto_pwhash_scryptsalsa208sha256_str", + "sodium_crypto_pwhash_scryptsalsa208sha256", + "sodium_crypto_pwhash_str_needs_rehash", + "sodium_crypto_pwhash_str_verify", + "sodium_crypto_pwhash_str", + "sodium_crypto_pwhash", + "sodium_crypto_scalarmult_base", + "sodium_crypto_scalarmult", + "sodium_crypto_secretbox_keygen", + "sodium_crypto_secretbox_open", + "sodium_crypto_secretbox", + "sodium_crypto_secretstream_xchacha20poly1305_init_pull", + "sodium_crypto_secretstream_xchacha20poly1305_init_push", + "sodium_crypto_secretstream_xchacha20poly1305_keygen", + "sodium_crypto_secretstream_xchacha20poly1305_pull", + "sodium_crypto_secretstream_xchacha20poly1305_push", + "sodium_crypto_secretstream_xchacha20poly1305_rekey", + "sodium_crypto_shorthash_keygen", + "sodium_crypto_shorthash", + "sodium_crypto_sign_detached", + "sodium_crypto_sign_ed25519_pk_to_curve25519", + "sodium_crypto_sign_ed25519_sk_to_curve25519", + "sodium_crypto_sign_keypair_from_secretkey_and_publickey", + "sodium_crypto_sign_keypair", + "sodium_crypto_sign_open", + "sodium_crypto_sign_publickey_from_secretkey", + "sodium_crypto_sign_publickey", + "sodium_crypto_sign_secretkey", + "sodium_crypto_sign_seed_keypair", + "sodium_crypto_sign_verify_detached", + "sodium_crypto_sign", + "sodium_crypto_stream_keygen", + "sodium_crypto_stream_xor", + "sodium_crypto_stream", + "sodium_hex2bin", + "sodium_increment", + "sodium_memcmp", + "sodium_memzero", + "sodium_pad", + "sodium_unpad", + ), + "Solr": ("solr_get_version",), + "Stomp": ("stomp_connect_error", "stomp_version"), + "Stream": ( + "stream_bucket_append", + "stream_bucket_make_writeable", + "stream_bucket_new", + "stream_bucket_prepend", + "stream_context_create", + "stream_context_get_default", + "stream_context_get_options", + "stream_context_get_params", + "stream_context_set_default", + "stream_context_set_option", + "stream_context_set_params", + "stream_copy_to_stream", + "stream_filter_append", + "stream_filter_prepend", + "stream_filter_register", + "stream_filter_remove", + "stream_get_contents", + "stream_get_filters", + "stream_get_line", + "stream_get_meta_data", + "stream_get_transports", + "stream_get_wrappers", + "stream_is_local", + "stream_isatty", + "stream_notification_callback", + "stream_register_wrapper", + "stream_resolve_include_path", + "stream_select", + "stream_set_blocking", + "stream_set_chunk_size", + "stream_set_read_buffer", + "stream_set_timeout", + "stream_set_write_buffer", + "stream_socket_accept", + "stream_socket_client", + "stream_socket_enable_crypto", + "stream_socket_get_name", + "stream_socket_pair", + "stream_socket_recvfrom", + "stream_socket_sendto", + "stream_socket_server", + "stream_socket_shutdown", + "stream_supports_lock", + "stream_wrapper_register", + "stream_wrapper_restore", + "stream_wrapper_unregister", + ), + "String": ( + "addcslashes", + "addslashes", + "bin2hex", + "chop", + "chr", + "chunk_split", + "convert_cyr_string", + "convert_uudecode", + "convert_uuencode", + "count_chars", + "crc32", + "crypt", + "echo", + "explode", + "fprintf", + "get_html_translation_table", + "hebrev", + "hebrevc", + "hex2bin", + "html_entity_decode", + "htmlentities", + "htmlspecialchars_decode", + "htmlspecialchars", + "implode", + "join", + "lcfirst", + "levenshtein", + "localeconv", + "ltrim", + "md5_file", + "md5", + "metaphone", + "money_format", + "nl_langinfo", + "nl2br", + "number_format", + "ord", + "parse_str", + "print", + "printf", + "quoted_printable_decode", + "quoted_printable_encode", + "quotemeta", + "rtrim", + "setlocale", + "sha1_file", + "sha1", + "similar_text", + "soundex", + "sprintf", + "sscanf", + "str_contains", + "str_ends_with", + "str_getcsv", + "str_ireplace", + "str_pad", + "str_repeat", + "str_replace", + "str_rot13", + "str_shuffle", + "str_split", + "str_starts_with", + "str_word_count", + "strcasecmp", + "strchr", + "strcmp", + "strcoll", + "strcspn", + "strip_tags", + "stripcslashes", + "stripos", + "stripslashes", + "stristr", + "strlen", + "strnatcasecmp", + "strnatcmp", + "strncasecmp", + "strncmp", + "strpbrk", + "strpos", + "strrchr", + "strrev", + "strripos", + "strrpos", + "strspn", + "strstr", + "strtok", + "strtolower", + "strtoupper", + "strtr", + "substr_compare", + "substr_count", + "substr_replace", + "substr", + "trim", + "ucfirst", + "ucwords", + "vfprintf", + "vprintf", + "vsprintf", + "wordwrap", + ), + "Swoole": ( + "swoole_async_dns_lookup", + "swoole_async_read", + "swoole_async_readfile", + "swoole_async_set", + "swoole_async_write", + "swoole_async_writefile", + "swoole_clear_error", + "swoole_client_select", + "swoole_cpu_num", + "swoole_errno", + "swoole_error_log", + "swoole_event_add", + "swoole_event_defer", + "swoole_event_del", + "swoole_event_exit", + "swoole_event_set", + "swoole_event_wait", + "swoole_event_write", + "swoole_get_local_ip", + "swoole_last_error", + "swoole_load_module", + "swoole_select", + "swoole_set_process_name", + "swoole_strerror", + "swoole_timer_after", + "swoole_timer_exists", + "swoole_timer_tick", + "swoole_version", + ), + "TCP": ("tcpwrap_check",), + "Taint": ("is_tainted", "taint", "untaint"), + "Tidy": ( + "ob_tidyhandler", + "tidy_access_count", + "tidy_config_count", + "tidy_error_count", + "tidy_get_output", + "tidy_warning_count", + ), + "Tokenizer": ("token_get_all", "token_name"), + "Trader": ( + "trader_acos", + "trader_ad", + "trader_add", + "trader_adosc", + "trader_adx", + "trader_adxr", + "trader_apo", + "trader_aroon", + "trader_aroonosc", + "trader_asin", + "trader_atan", + "trader_atr", + "trader_avgprice", + "trader_bbands", + "trader_beta", + "trader_bop", + "trader_cci", + "trader_cdl2crows", + "trader_cdl3blackcrows", + "trader_cdl3inside", + "trader_cdl3linestrike", + "trader_cdl3outside", + "trader_cdl3starsinsouth", + "trader_cdl3whitesoldiers", + "trader_cdlabandonedbaby", + "trader_cdladvanceblock", + "trader_cdlbelthold", + "trader_cdlbreakaway", + "trader_cdlclosingmarubozu", + "trader_cdlconcealbabyswall", + "trader_cdlcounterattack", + "trader_cdldarkcloudcover", + "trader_cdldoji", + "trader_cdldojistar", + "trader_cdldragonflydoji", + "trader_cdlengulfing", + "trader_cdleveningdojistar", + "trader_cdleveningstar", + "trader_cdlgapsidesidewhite", + "trader_cdlgravestonedoji", + "trader_cdlhammer", + "trader_cdlhangingman", + "trader_cdlharami", + "trader_cdlharamicross", + "trader_cdlhighwave", + "trader_cdlhikkake", + "trader_cdlhikkakemod", + "trader_cdlhomingpigeon", + "trader_cdlidentical3crows", + "trader_cdlinneck", + "trader_cdlinvertedhammer", + "trader_cdlkicking", + "trader_cdlkickingbylength", + "trader_cdlladderbottom", + "trader_cdllongleggeddoji", + "trader_cdllongline", + "trader_cdlmarubozu", + "trader_cdlmatchinglow", + "trader_cdlmathold", + "trader_cdlmorningdojistar", + "trader_cdlmorningstar", + "trader_cdlonneck", + "trader_cdlpiercing", + "trader_cdlrickshawman", + "trader_cdlrisefall3methods", + "trader_cdlseparatinglines", + "trader_cdlshootingstar", + "trader_cdlshortline", + "trader_cdlspinningtop", + "trader_cdlstalledpattern", + "trader_cdlsticksandwich", + "trader_cdltakuri", + "trader_cdltasukigap", + "trader_cdlthrusting", + "trader_cdltristar", + "trader_cdlunique3river", + "trader_cdlupsidegap2crows", + "trader_cdlxsidegap3methods", + "trader_ceil", + "trader_cmo", + "trader_correl", + "trader_cos", + "trader_cosh", + "trader_dema", + "trader_div", + "trader_dx", + "trader_ema", + "trader_errno", + "trader_exp", + "trader_floor", + "trader_get_compat", + "trader_get_unstable_period", + "trader_ht_dcperiod", + "trader_ht_dcphase", + "trader_ht_phasor", + "trader_ht_sine", + "trader_ht_trendline", + "trader_ht_trendmode", + "trader_kama", + "trader_linearreg_angle", + "trader_linearreg_intercept", + "trader_linearreg_slope", + "trader_linearreg", + "trader_ln", + "trader_log10", + "trader_ma", + "trader_macd", + "trader_macdext", + "trader_macdfix", + "trader_mama", + "trader_mavp", + "trader_max", + "trader_maxindex", + "trader_medprice", + "trader_mfi", + "trader_midpoint", + "trader_midprice", + "trader_min", + "trader_minindex", + "trader_minmax", + "trader_minmaxindex", + "trader_minus_di", + "trader_minus_dm", + "trader_mom", + "trader_mult", + "trader_natr", + "trader_obv", + "trader_plus_di", + "trader_plus_dm", + "trader_ppo", + "trader_roc", + "trader_rocp", + "trader_rocr100", + "trader_rocr", + "trader_rsi", + "trader_sar", + "trader_sarext", + "trader_set_compat", + "trader_set_unstable_period", + "trader_sin", + "trader_sinh", + "trader_sma", + "trader_sqrt", + "trader_stddev", + "trader_stoch", + "trader_stochf", + "trader_stochrsi", + "trader_sub", + "trader_sum", + "trader_t3", + "trader_tan", + "trader_tanh", + "trader_tema", + "trader_trange", + "trader_trima", + "trader_trix", + "trader_tsf", + "trader_typprice", + "trader_ultosc", + "trader_var", + "trader_wclprice", + "trader_willr", + "trader_wma", + ), + "URL": ( + "base64_decode", + "base64_encode", + "get_headers", + "get_meta_tags", + "http_build_query", + "parse_url", + "rawurldecode", + "rawurlencode", + "urldecode", + "urlencode", + ), + "Uopz": ( + "uopz_add_function", + "uopz_allow_exit", + "uopz_backup", + "uopz_compose", + "uopz_copy", + "uopz_del_function", + "uopz_delete", + "uopz_extend", + "uopz_flags", + "uopz_function", + "uopz_get_exit_status", + "uopz_get_hook", + "uopz_get_mock", + "uopz_get_property", + "uopz_get_return", + "uopz_get_static", + "uopz_implement", + "uopz_overload", + "uopz_redefine", + "uopz_rename", + "uopz_restore", + "uopz_set_hook", + "uopz_set_mock", + "uopz_set_property", + "uopz_set_return", + "uopz_set_static", + "uopz_undefine", + "uopz_unset_hook", + "uopz_unset_mock", + "uopz_unset_return", + ), + "Variable handling": ( + "boolval", + "debug_zval_dump", + "doubleval", + "empty", + "floatval", + "get_debug_type", + "get_defined_vars", + "get_resource_id", + "get_resource_type", + "gettype", + "intval", + "is_array", + "is_bool", + "is_callable", + "is_countable", + "is_double", + "is_float", + "is_int", + "is_integer", + "is_iterable", + "is_long", + "is_null", + "is_numeric", + "is_object", + "is_real", + "is_resource", + "is_scalar", + "is_string", + "isset", + "print_r", + "serialize", + "settype", + "strval", + "unserialize", + "unset", + "var_dump", + "var_export", + ), + "WDDX": ( + "wddx_add_vars", + "wddx_deserialize", + "wddx_packet_end", + "wddx_packet_start", + "wddx_serialize_value", + "wddx_serialize_vars", + ), + "WinCache": ( + "wincache_fcache_fileinfo", + "wincache_fcache_meminfo", + "wincache_lock", + "wincache_ocache_fileinfo", + "wincache_ocache_meminfo", + "wincache_refresh_if_changed", + "wincache_rplist_fileinfo", + "wincache_rplist_meminfo", + "wincache_scache_info", + "wincache_scache_meminfo", + "wincache_ucache_add", + "wincache_ucache_cas", + "wincache_ucache_clear", + "wincache_ucache_dec", + "wincache_ucache_delete", + "wincache_ucache_exists", + "wincache_ucache_get", + "wincache_ucache_inc", + "wincache_ucache_info", + "wincache_ucache_meminfo", + "wincache_ucache_set", + "wincache_unlock", + ), + "XML Parser": ( + "utf8_decode", + "utf8_encode", + "xml_error_string", + "xml_get_current_byte_index", + "xml_get_current_column_number", + "xml_get_current_line_number", + "xml_get_error_code", + "xml_parse_into_struct", + "xml_parse", + "xml_parser_create_ns", + "xml_parser_create", + "xml_parser_free", + "xml_parser_get_option", + "xml_parser_set_option", + "xml_set_character_data_handler", + "xml_set_default_handler", + "xml_set_element_handler", + "xml_set_end_namespace_decl_handler", + "xml_set_external_entity_ref_handler", + "xml_set_notation_decl_handler", + "xml_set_object", + "xml_set_processing_instruction_handler", + "xml_set_start_namespace_decl_handler", + "xml_set_unparsed_entity_decl_handler", + ), + "XML-RPC": ( + "xmlrpc_decode_request", + "xmlrpc_decode", + "xmlrpc_encode_request", + "xmlrpc_encode", + "xmlrpc_get_type", + "xmlrpc_is_fault", + "xmlrpc_parse_method_descriptions", + "xmlrpc_server_add_introspection_data", + "xmlrpc_server_call_method", + "xmlrpc_server_create", + "xmlrpc_server_destroy", + "xmlrpc_server_register_introspection_callback", + "xmlrpc_server_register_method", + "xmlrpc_set_type", + ), + "Xhprof": ( + "xhprof_disable", + "xhprof_enable", + "xhprof_sample_disable", + "xhprof_sample_enable", + ), + "YAZ": ( + "yaz_addinfo", + "yaz_ccl_conf", + "yaz_ccl_parse", + "yaz_close", + "yaz_connect", + "yaz_database", + "yaz_element", + "yaz_errno", + "yaz_error", + "yaz_es_result", + "yaz_es", + "yaz_get_option", + "yaz_hits", + "yaz_itemorder", + "yaz_present", + "yaz_range", + "yaz_record", + "yaz_scan_result", + "yaz_scan", + "yaz_schema", + "yaz_search", + "yaz_set_option", + "yaz_sort", + "yaz_syntax", + "yaz_wait", + ), + "Yaml": ( + "yaml_emit_file", + "yaml_emit", + "yaml_parse_file", + "yaml_parse_url", + "yaml_parse", + ), + "Zip": ( + "zip_close", + "zip_entry_close", + "zip_entry_compressedsize", + "zip_entry_compressionmethod", + "zip_entry_filesize", + "zip_entry_name", + "zip_entry_open", + "zip_entry_read", + "zip_open", + "zip_read", + ), + "Zlib": ( + "deflate_add", + "deflate_init", + "gzclose", + "gzcompress", + "gzdecode", + "gzdeflate", + "gzencode", + "gzeof", + "gzfile", + "gzgetc", + "gzgets", + "gzgetss", + "gzinflate", + "gzopen", + "gzpassthru", + "gzputs", + "gzread", + "gzrewind", + "gzseek", + "gztell", + "gzuncompress", + "gzwrite", + "inflate_add", + "inflate_get_read_len", + "inflate_get_status", + "inflate_init", + "readgzfile", + "zlib_decode", + "zlib_encode", + "zlib_get_coding_type", + ), + "ZooKeeper": ("zookeeper_dispatch",), + "cURL": ( + "curl_close", + "curl_copy_handle", + "curl_errno", + "curl_error", + "curl_escape", + "curl_exec", + "curl_file_create", + "curl_getinfo", + "curl_init", + "curl_multi_add_handle", + "curl_multi_close", + "curl_multi_errno", + "curl_multi_exec", + "curl_multi_getcontent", + "curl_multi_info_read", + "curl_multi_init", + "curl_multi_remove_handle", + "curl_multi_select", + "curl_multi_setopt", + "curl_multi_strerror", + "curl_pause", + "curl_reset", + "curl_setopt_array", + "curl_setopt", + "curl_share_close", + "curl_share_errno", + "curl_share_init", + "curl_share_setopt", + "curl_share_strerror", + "curl_strerror", + "curl_unescape", + "curl_version", + ), + "dBase": ( + "dbase_add_record", + "dbase_close", + "dbase_create", + "dbase_delete_record", + "dbase_get_header_info", + "dbase_get_record_with_names", + "dbase_get_record", + "dbase_numfields", + "dbase_numrecords", + "dbase_open", + "dbase_pack", + "dbase_replace_record", + ), + "iconv": ( + "iconv_get_encoding", + "iconv_mime_decode_headers", + "iconv_mime_decode", + "iconv_mime_encode", + "iconv_set_encoding", + "iconv_strlen", + "iconv_strpos", + "iconv_strrpos", + "iconv_substr", + "iconv", + "ob_iconv_handler", + ), + "intl": ( + "intl_error_name", + "intl_get_error_code", + "intl_get_error_message", + "intl_is_failure", + ), + "libxml": ( + "libxml_clear_errors", + "libxml_disable_entity_loader", + "libxml_get_errors", + "libxml_get_last_error", + "libxml_set_external_entity_loader", + "libxml_set_streams_context", + "libxml_use_internal_errors", + ), + "mqseries": ( + "mqseries_back", + "mqseries_begin", + "mqseries_close", + "mqseries_cmit", + "mqseries_conn", + "mqseries_connx", + "mqseries_disc", + "mqseries_get", + "mqseries_inq", + "mqseries_open", + "mqseries_put1", + "mqseries_put", + "mqseries_set", + "mqseries_strerror", + ), + "phpdbg": ( + "phpdbg_break_file", + "phpdbg_break_function", + "phpdbg_break_method", + "phpdbg_break_next", + "phpdbg_clear", + "phpdbg_color", + "phpdbg_end_oplog", + "phpdbg_exec", + "phpdbg_get_executable", + "phpdbg_prompt", + "phpdbg_start_oplog", + ), + "runkit7": ( + "runkit7_constant_add", + "runkit7_constant_redefine", + "runkit7_constant_remove", + "runkit7_function_add", + "runkit7_function_copy", + "runkit7_function_redefine", + "runkit7_function_remove", + "runkit7_function_rename", + "runkit7_import", + "runkit7_method_add", + "runkit7_method_copy", + "runkit7_method_redefine", + "runkit7_method_remove", + "runkit7_method_rename", + "runkit7_object_id", + "runkit7_superglobals", + "runkit7_zval_inspect", + ), + "ssdeep": ( + "ssdeep_fuzzy_compare", + "ssdeep_fuzzy_hash_filename", + "ssdeep_fuzzy_hash", + ), + "var_representation": ("var_representation",), + "win32service": ( + "win32_continue_service", + "win32_create_service", + "win32_delete_service", + "win32_get_last_control_message", + "win32_pause_service", + "win32_query_service_status", + "win32_send_custom_control", + "win32_set_service_exit_code", + "win32_set_service_exit_mode", + "win32_set_service_status", + "win32_start_service_ctrl_dispatcher", + "win32_start_service", + "win32_stop_service", + ), + "xattr": ( + "xattr_get", + "xattr_list", + "xattr_remove", + "xattr_set", + "xattr_supported", + ), + "xdiff": ( + "xdiff_file_bdiff_size", + "xdiff_file_bdiff", + "xdiff_file_bpatch", + "xdiff_file_diff_binary", + "xdiff_file_diff", + "xdiff_file_merge3", + "xdiff_file_patch_binary", + "xdiff_file_patch", + "xdiff_file_rabdiff", + "xdiff_string_bdiff_size", + "xdiff_string_bdiff", + "xdiff_string_bpatch", + "xdiff_string_diff_binary", + "xdiff_string_diff", + "xdiff_string_merge3", + "xdiff_string_patch_binary", + "xdiff_string_patch", + "xdiff_string_rabdiff", + ), +} -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import glob import os import pprint @@ -3254,20 +3461,20 @@ if __name__ == '__main__': # pragma: no cover import tarfile from urllib.request import urlretrieve - PHP_MANUAL_URL = 'http://us3.php.net/distributions/manual/php_manual_en.tar.gz' - PHP_MANUAL_DIR = './php-chunked-xhtml/' - PHP_REFERENCE_GLOB = 'ref.*' - PHP_FUNCTION_RE = r'(.*?)' - PHP_MODULE_RE = '(.*?) Functions' + PHP_MANUAL_URL = "http://us3.php.net/distributions/manual/php_manual_en.tar.gz" + PHP_MANUAL_DIR = "./php-chunked-xhtml/" + PHP_REFERENCE_GLOB = "ref.*" + PHP_FUNCTION_RE = r'(.*?)' + PHP_MODULE_RE = "(.*?) Functions" def get_php_functions(): function_re = re.compile(PHP_FUNCTION_RE) - module_re = re.compile(PHP_MODULE_RE) - modules = {} + module_re = re.compile(PHP_MODULE_RE) + modules = {} for file in get_php_references(): - module = '' - with open(file, encoding='utf-8') as f: + module = "" + with open(file, encoding="utf-8") as f: for line in f: if not module: search = module_re.search(line) @@ -3278,15 +3485,19 @@ if __name__ == '__main__': # pragma: no cover elif 'href="function.' in line: for match in function_re.finditer(line): fn = match.group(1) - if '»' not in fn and '«' not in fn and \ - '::' not in fn and '\\' not in fn and \ - fn not in modules[module]: + if ( + "»" not in fn + and "«" not in fn + and "::" not in fn + and "\\" not in fn + and fn not in modules[module] + ): modules[module].append(fn) if module: # These are dummy manual pages, not actual functions - if module == 'Filesystem': - modules[module].remove('delete') + if module == "Filesystem": + modules[module].remove("delete") if not modules[module]: del modules[module] @@ -3303,22 +3514,22 @@ if __name__ == '__main__': # pragma: no cover os.remove(download[0]) def regenerate(filename, modules): - with open(filename, encoding='utf-8') as fp: + with open(filename, encoding="utf-8") as fp: content = fp.read() - header = content[:content.find('MODULES = {')] - footer = content[content.find("if __name__ == '__main__':"):] + header = content[: content.find("MODULES = {")] + footer = content[content.find("if __name__ == '__main__':") :] - with open(filename, 'w', encoding='utf-8') as fp: + with open(filename, "w", encoding="utf-8") as fp: fp.write(header) - fp.write(f'MODULES = {pprint.pformat(modules)}\n\n') + fp.write(f"MODULES = {pprint.pformat(modules)}\n\n") fp.write(footer) def run(): - print('>> Downloading Function Index') + print(">> Downloading Function Index") modules = get_php_functions() total = sum(len(v) for v in modules.values()) - print('%d functions found' % total) + print("%d functions found" % total) regenerate(__file__, modules) shutil.rmtree(PHP_MANUAL_DIR) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_postgres_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_postgres_builtins.py index 80bc728..2b63e66 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_postgres_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_postgres_builtins.py @@ -1,655 +1,670 @@ """ - pygments.lexers._postgres_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._postgres_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Self-updating data files for PostgreSQL lexer. +Self-updating data files for PostgreSQL lexer. - Run with `python -I` to update itself. +Run with `python -I` to update itself. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # Autogenerated: please edit them if you like wasting your time. KEYWORDS = ( - 'ABORT', - 'ABSOLUTE', - 'ACCESS', - 'ACTION', - 'ADD', - 'ADMIN', - 'AFTER', - 'AGGREGATE', - 'ALL', - 'ALSO', - 'ALTER', - 'ALWAYS', - 'ANALYSE', - 'ANALYZE', - 'AND', - 'ANY', - 'ARRAY', - 'AS', - 'ASC', - 'ASENSITIVE', - 'ASSERTION', - 'ASSIGNMENT', - 'ASYMMETRIC', - 'AT', - 'ATOMIC', - 'ATTACH', - 'ATTRIBUTE', - 'AUTHORIZATION', - 'BACKWARD', - 'BEFORE', - 'BEGIN', - 'BETWEEN', - 'BIGINT', - 'BINARY', - 'BIT', - 'BOOLEAN', - 'BOTH', - 'BREADTH', - 'BY', - 'CACHE', - 'CALL', - 'CALLED', - 'CASCADE', - 'CASCADED', - 'CASE', - 'CAST', - 'CATALOG', - 'CHAIN', - 'CHAR', - 'CHARACTER', - 'CHARACTERISTICS', - 'CHECK', - 'CHECKPOINT', - 'CLASS', - 'CLOSE', - 'CLUSTER', - 'COALESCE', - 'COLLATE', - 'COLLATION', - 'COLUMN', - 'COLUMNS', - 'COMMENT', - 'COMMENTS', - 'COMMIT', - 'COMMITTED', - 'COMPRESSION', - 'CONCURRENTLY', - 'CONFIGURATION', - 'CONFLICT', - 'CONNECTION', - 'CONSTRAINT', - 'CONSTRAINTS', - 'CONTENT', - 'CONTINUE', - 'CONVERSION', - 'COPY', - 'COST', - 'CREATE', - 'CROSS', - 'CSV', - 'CUBE', - 'CURRENT', - 'CURRENT_CATALOG', - 'CURRENT_DATE', - 'CURRENT_ROLE', - 'CURRENT_SCHEMA', - 'CURRENT_TIME', - 'CURRENT_TIMESTAMP', - 'CURRENT_USER', - 'CURSOR', - 'CYCLE', - 'DATA', - 'DATABASE', - 'DAY', - 'DEALLOCATE', - 'DEC', - 'DECIMAL', - 'DECLARE', - 'DEFAULT', - 'DEFAULTS', - 'DEFERRABLE', - 'DEFERRED', - 'DEFINER', - 'DELETE', - 'DELIMITER', - 'DELIMITERS', - 'DEPENDS', - 'DEPTH', - 'DESC', - 'DETACH', - 'DICTIONARY', - 'DISABLE', - 'DISCARD', - 'DISTINCT', - 'DO', - 'DOCUMENT', - 'DOMAIN', - 'DOUBLE', - 'DROP', - 'EACH', - 'ELSE', - 'ENABLE', - 'ENCODING', - 'ENCRYPTED', - 'END', - 'ENUM', - 'ESCAPE', - 'EVENT', - 'EXCEPT', - 'EXCLUDE', - 'EXCLUDING', - 'EXCLUSIVE', - 'EXECUTE', - 'EXISTS', - 'EXPLAIN', - 'EXPRESSION', - 'EXTENSION', - 'EXTERNAL', - 'EXTRACT', - 'FALSE', - 'FAMILY', - 'FETCH', - 'FILTER', - 'FINALIZE', - 'FIRST', - 'FLOAT', - 'FOLLOWING', - 'FOR', - 'FORCE', - 'FOREIGN', - 'FORWARD', - 'FREEZE', - 'FROM', - 'FULL', - 'FUNCTION', - 'FUNCTIONS', - 'GENERATED', - 'GLOBAL', - 'GRANT', - 'GRANTED', - 'GREATEST', - 'GROUP', - 'GROUPING', - 'GROUPS', - 'HANDLER', - 'HAVING', - 'HEADER', - 'HOLD', - 'HOUR', - 'IDENTITY', - 'IF', - 'ILIKE', - 'IMMEDIATE', - 'IMMUTABLE', - 'IMPLICIT', - 'IMPORT', - 'IN', - 'INCLUDE', - 'INCLUDING', - 'INCREMENT', - 'INDEX', - 'INDEXES', - 'INHERIT', - 'INHERITS', - 'INITIALLY', - 'INLINE', - 'INNER', - 'INOUT', - 'INPUT', - 'INSENSITIVE', - 'INSERT', - 'INSTEAD', - 'INT', - 'INTEGER', - 'INTERSECT', - 'INTERVAL', - 'INTO', - 'INVOKER', - 'IS', - 'ISNULL', - 'ISOLATION', - 'JOIN', - 'KEY', - 'LABEL', - 'LANGUAGE', - 'LARGE', - 'LAST', - 'LATERAL', - 'LEADING', - 'LEAKPROOF', - 'LEAST', - 'LEFT', - 'LEVEL', - 'LIKE', - 'LIMIT', - 'LISTEN', - 'LOAD', - 'LOCAL', - 'LOCALTIME', - 'LOCALTIMESTAMP', - 'LOCATION', - 'LOCK', - 'LOCKED', - 'LOGGED', - 'MAPPING', - 'MATCH', - 'MATERIALIZED', - 'MAXVALUE', - 'METHOD', - 'MINUTE', - 'MINVALUE', - 'MODE', - 'MONTH', - 'MOVE', - 'NAME', - 'NAMES', - 'NATIONAL', - 'NATURAL', - 'NCHAR', - 'NEW', - 'NEXT', - 'NFC', - 'NFD', - 'NFKC', - 'NFKD', - 'NO', - 'NONE', - 'NORMALIZE', - 'NORMALIZED', - 'NOT', - 'NOTHING', - 'NOTIFY', - 'NOTNULL', - 'NOWAIT', - 'NULL', - 'NULLIF', - 'NULLS', - 'NUMERIC', - 'OBJECT', - 'OF', - 'OFF', - 'OFFSET', - 'OIDS', - 'OLD', - 'ON', - 'ONLY', - 'OPERATOR', - 'OPTION', - 'OPTIONS', - 'OR', - 'ORDER', - 'ORDINALITY', - 'OTHERS', - 'OUT', - 'OUTER', - 'OVER', - 'OVERLAPS', - 'OVERLAY', - 'OVERRIDING', - 'OWNED', - 'OWNER', - 'PARALLEL', - 'PARSER', - 'PARTIAL', - 'PARTITION', - 'PASSING', - 'PASSWORD', - 'PLACING', - 'PLANS', - 'POLICY', - 'POSITION', - 'PRECEDING', - 'PRECISION', - 'PREPARE', - 'PREPARED', - 'PRESERVE', - 'PRIMARY', - 'PRIOR', - 'PRIVILEGES', - 'PROCEDURAL', - 'PROCEDURE', - 'PROCEDURES', - 'PROGRAM', - 'PUBLICATION', - 'QUOTE', - 'RANGE', - 'READ', - 'REAL', - 'REASSIGN', - 'RECHECK', - 'RECURSIVE', - 'REF', - 'REFERENCES', - 'REFERENCING', - 'REFRESH', - 'REINDEX', - 'RELATIVE', - 'RELEASE', - 'RENAME', - 'REPEATABLE', - 'REPLACE', - 'REPLICA', - 'RESET', - 'RESTART', - 'RESTRICT', - 'RETURN', - 'RETURNING', - 'RETURNS', - 'REVOKE', - 'RIGHT', - 'ROLE', - 'ROLLBACK', - 'ROLLUP', - 'ROUTINE', - 'ROUTINES', - 'ROW', - 'ROWS', - 'RULE', - 'SAVEPOINT', - 'SCHEMA', - 'SCHEMAS', - 'SCROLL', - 'SEARCH', - 'SECOND', - 'SECURITY', - 'SELECT', - 'SEQUENCE', - 'SEQUENCES', - 'SERIALIZABLE', - 'SERVER', - 'SESSION', - 'SESSION_USER', - 'SET', - 'SETOF', - 'SETS', - 'SHARE', - 'SHOW', - 'SIMILAR', - 'SIMPLE', - 'SKIP', - 'SMALLINT', - 'SNAPSHOT', - 'SOME', - 'SQL', - 'STABLE', - 'STANDALONE', - 'START', - 'STATEMENT', - 'STATISTICS', - 'STDIN', - 'STDOUT', - 'STORAGE', - 'STORED', - 'STRICT', - 'STRIP', - 'SUBSCRIPTION', - 'SUBSTRING', - 'SUPPORT', - 'SYMMETRIC', - 'SYSID', - 'SYSTEM', - 'TABLE', - 'TABLES', - 'TABLESAMPLE', - 'TABLESPACE', - 'TEMP', - 'TEMPLATE', - 'TEMPORARY', - 'TEXT', - 'THEN', - 'TIES', - 'TIME', - 'TIMESTAMP', - 'TO', - 'TRAILING', - 'TRANSACTION', - 'TRANSFORM', - 'TREAT', - 'TRIGGER', - 'TRIM', - 'TRUE', - 'TRUNCATE', - 'TRUSTED', - 'TYPE', - 'TYPES', - 'UESCAPE', - 'UNBOUNDED', - 'UNCOMMITTED', - 'UNENCRYPTED', - 'UNION', - 'UNIQUE', - 'UNKNOWN', - 'UNLISTEN', - 'UNLOGGED', - 'UNTIL', - 'UPDATE', - 'USER', - 'USING', - 'VACUUM', - 'VALID', - 'VALIDATE', - 'VALIDATOR', - 'VALUE', - 'VALUES', - 'VARCHAR', - 'VARIADIC', - 'VARYING', - 'VERBOSE', - 'VERSION', - 'VIEW', - 'VIEWS', - 'VOLATILE', - 'WHEN', - 'WHERE', - 'WHITESPACE', - 'WINDOW', - 'WITH', - 'WITHIN', - 'WITHOUT', - 'WORK', - 'WRAPPER', - 'WRITE', - 'XML', - 'XMLATTRIBUTES', - 'XMLCONCAT', - 'XMLELEMENT', - 'XMLEXISTS', - 'XMLFOREST', - 'XMLNAMESPACES', - 'XMLPARSE', - 'XMLPI', - 'XMLROOT', - 'XMLSERIALIZE', - 'XMLTABLE', - 'YEAR', - 'YES', - 'ZONE', + "ABORT", + "ABSOLUTE", + "ACCESS", + "ACTION", + "ADD", + "ADMIN", + "AFTER", + "AGGREGATE", + "ALL", + "ALSO", + "ALTER", + "ALWAYS", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARRAY", + "AS", + "ASC", + "ASENSITIVE", + "ASSERTION", + "ASSIGNMENT", + "ASYMMETRIC", + "AT", + "ATOMIC", + "ATTACH", + "ATTRIBUTE", + "AUTHORIZATION", + "BACKWARD", + "BEFORE", + "BEGIN", + "BETWEEN", + "BIGINT", + "BINARY", + "BIT", + "BOOLEAN", + "BOTH", + "BREADTH", + "BY", + "CACHE", + "CALL", + "CALLED", + "CASCADE", + "CASCADED", + "CASE", + "CAST", + "CATALOG", + "CHAIN", + "CHAR", + "CHARACTER", + "CHARACTERISTICS", + "CHECK", + "CHECKPOINT", + "CLASS", + "CLOSE", + "CLUSTER", + "COALESCE", + "COLLATE", + "COLLATION", + "COLUMN", + "COLUMNS", + "COMMENT", + "COMMENTS", + "COMMIT", + "COMMITTED", + "COMPRESSION", + "CONCURRENTLY", + "CONFIGURATION", + "CONFLICT", + "CONNECTION", + "CONSTRAINT", + "CONSTRAINTS", + "CONTENT", + "CONTINUE", + "CONVERSION", + "COPY", + "COST", + "CREATE", + "CROSS", + "CSV", + "CUBE", + "CURRENT", + "CURRENT_CATALOG", + "CURRENT_DATE", + "CURRENT_ROLE", + "CURRENT_SCHEMA", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "CYCLE", + "DATA", + "DATABASE", + "DAY", + "DEALLOCATE", + "DEC", + "DECIMAL", + "DECLARE", + "DEFAULT", + "DEFAULTS", + "DEFERRABLE", + "DEFERRED", + "DEFINER", + "DELETE", + "DELIMITER", + "DELIMITERS", + "DEPENDS", + "DEPTH", + "DESC", + "DETACH", + "DICTIONARY", + "DISABLE", + "DISCARD", + "DISTINCT", + "DO", + "DOCUMENT", + "DOMAIN", + "DOUBLE", + "DROP", + "EACH", + "ELSE", + "ENABLE", + "ENCODING", + "ENCRYPTED", + "END", + "ENUM", + "ESCAPE", + "EVENT", + "EXCEPT", + "EXCLUDE", + "EXCLUDING", + "EXCLUSIVE", + "EXECUTE", + "EXISTS", + "EXPLAIN", + "EXPRESSION", + "EXTENSION", + "EXTERNAL", + "EXTRACT", + "FALSE", + "FAMILY", + "FETCH", + "FILTER", + "FINALIZE", + "FIRST", + "FLOAT", + "FOLLOWING", + "FOR", + "FORCE", + "FOREIGN", + "FORWARD", + "FREEZE", + "FROM", + "FULL", + "FUNCTION", + "FUNCTIONS", + "GENERATED", + "GLOBAL", + "GRANT", + "GRANTED", + "GREATEST", + "GROUP", + "GROUPING", + "GROUPS", + "HANDLER", + "HAVING", + "HEADER", + "HOLD", + "HOUR", + "IDENTITY", + "IF", + "ILIKE", + "IMMEDIATE", + "IMMUTABLE", + "IMPLICIT", + "IMPORT", + "IN", + "INCLUDE", + "INCLUDING", + "INCREMENT", + "INDEX", + "INDEXES", + "INHERIT", + "INHERITS", + "INITIALLY", + "INLINE", + "INNER", + "INOUT", + "INPUT", + "INSENSITIVE", + "INSERT", + "INSTEAD", + "INT", + "INTEGER", + "INTERSECT", + "INTERVAL", + "INTO", + "INVOKER", + "IS", + "ISNULL", + "ISOLATION", + "JOIN", + "KEY", + "LABEL", + "LANGUAGE", + "LARGE", + "LAST", + "LATERAL", + "LEADING", + "LEAKPROOF", + "LEAST", + "LEFT", + "LEVEL", + "LIKE", + "LIMIT", + "LISTEN", + "LOAD", + "LOCAL", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCATION", + "LOCK", + "LOCKED", + "LOGGED", + "MAPPING", + "MATCH", + "MATERIALIZED", + "MAXVALUE", + "METHOD", + "MINUTE", + "MINVALUE", + "MODE", + "MONTH", + "MOVE", + "NAME", + "NAMES", + "NATIONAL", + "NATURAL", + "NCHAR", + "NEW", + "NEXT", + "NFC", + "NFD", + "NFKC", + "NFKD", + "NO", + "NONE", + "NORMALIZE", + "NORMALIZED", + "NOT", + "NOTHING", + "NOTIFY", + "NOTNULL", + "NOWAIT", + "NULL", + "NULLIF", + "NULLS", + "NUMERIC", + "OBJECT", + "OF", + "OFF", + "OFFSET", + "OIDS", + "OLD", + "ON", + "ONLY", + "OPERATOR", + "OPTION", + "OPTIONS", + "OR", + "ORDER", + "ORDINALITY", + "OTHERS", + "OUT", + "OUTER", + "OVER", + "OVERLAPS", + "OVERLAY", + "OVERRIDING", + "OWNED", + "OWNER", + "PARALLEL", + "PARSER", + "PARTIAL", + "PARTITION", + "PASSING", + "PASSWORD", + "PLACING", + "PLANS", + "POLICY", + "POSITION", + "PRECEDING", + "PRECISION", + "PREPARE", + "PREPARED", + "PRESERVE", + "PRIMARY", + "PRIOR", + "PRIVILEGES", + "PROCEDURAL", + "PROCEDURE", + "PROCEDURES", + "PROGRAM", + "PUBLICATION", + "QUOTE", + "RANGE", + "READ", + "REAL", + "REASSIGN", + "RECHECK", + "RECURSIVE", + "REF", + "REFERENCES", + "REFERENCING", + "REFRESH", + "REINDEX", + "RELATIVE", + "RELEASE", + "RENAME", + "REPEATABLE", + "REPLACE", + "REPLICA", + "RESET", + "RESTART", + "RESTRICT", + "RETURN", + "RETURNING", + "RETURNS", + "REVOKE", + "RIGHT", + "ROLE", + "ROLLBACK", + "ROLLUP", + "ROUTINE", + "ROUTINES", + "ROW", + "ROWS", + "RULE", + "SAVEPOINT", + "SCHEMA", + "SCHEMAS", + "SCROLL", + "SEARCH", + "SECOND", + "SECURITY", + "SELECT", + "SEQUENCE", + "SEQUENCES", + "SERIALIZABLE", + "SERVER", + "SESSION", + "SESSION_USER", + "SET", + "SETOF", + "SETS", + "SHARE", + "SHOW", + "SIMILAR", + "SIMPLE", + "SKIP", + "SMALLINT", + "SNAPSHOT", + "SOME", + "SQL", + "STABLE", + "STANDALONE", + "START", + "STATEMENT", + "STATISTICS", + "STDIN", + "STDOUT", + "STORAGE", + "STORED", + "STRICT", + "STRIP", + "SUBSCRIPTION", + "SUBSTRING", + "SUPPORT", + "SYMMETRIC", + "SYSID", + "SYSTEM", + "TABLE", + "TABLES", + "TABLESAMPLE", + "TABLESPACE", + "TEMP", + "TEMPLATE", + "TEMPORARY", + "TEXT", + "THEN", + "TIES", + "TIME", + "TIMESTAMP", + "TO", + "TRAILING", + "TRANSACTION", + "TRANSFORM", + "TREAT", + "TRIGGER", + "TRIM", + "TRUE", + "TRUNCATE", + "TRUSTED", + "TYPE", + "TYPES", + "UESCAPE", + "UNBOUNDED", + "UNCOMMITTED", + "UNENCRYPTED", + "UNION", + "UNIQUE", + "UNKNOWN", + "UNLISTEN", + "UNLOGGED", + "UNTIL", + "UPDATE", + "USER", + "USING", + "VACUUM", + "VALID", + "VALIDATE", + "VALIDATOR", + "VALUE", + "VALUES", + "VARCHAR", + "VARIADIC", + "VARYING", + "VERBOSE", + "VERSION", + "VIEW", + "VIEWS", + "VOLATILE", + "WHEN", + "WHERE", + "WHITESPACE", + "WINDOW", + "WITH", + "WITHIN", + "WITHOUT", + "WORK", + "WRAPPER", + "WRITE", + "XML", + "XMLATTRIBUTES", + "XMLCONCAT", + "XMLELEMENT", + "XMLEXISTS", + "XMLFOREST", + "XMLNAMESPACES", + "XMLPARSE", + "XMLPI", + "XMLROOT", + "XMLSERIALIZE", + "XMLTABLE", + "YEAR", + "YES", + "ZONE", ) DATATYPES = ( - 'bigint', - 'bigserial', - 'bit', - 'bit varying', - 'bool', - 'boolean', - 'box', - 'bytea', - 'char', - 'character', - 'character varying', - 'cidr', - 'circle', - 'date', - 'decimal', - 'double precision', - 'float4', - 'float8', - 'inet', - 'int', - 'int2', - 'int4', - 'int8', - 'integer', - 'interval', - 'json', - 'jsonb', - 'line', - 'lseg', - 'macaddr', - 'macaddr8', - 'money', - 'numeric', - 'path', - 'pg_lsn', - 'pg_snapshot', - 'point', - 'polygon', - 'real', - 'serial', - 'serial2', - 'serial4', - 'serial8', - 'smallint', - 'smallserial', - 'text', - 'time', - 'timestamp', - 'timestamptz', - 'timetz', - 'tsquery', - 'tsvector', - 'txid_snapshot', - 'uuid', - 'varbit', - 'varchar', - 'with time zone', - 'without time zone', - 'xml', + "bigint", + "bigserial", + "bit", + "bit varying", + "bool", + "boolean", + "box", + "bytea", + "char", + "character", + "character varying", + "cidr", + "circle", + "date", + "decimal", + "double precision", + "float4", + "float8", + "inet", + "int", + "int2", + "int4", + "int8", + "integer", + "interval", + "json", + "jsonb", + "line", + "lseg", + "macaddr", + "macaddr8", + "money", + "numeric", + "path", + "pg_lsn", + "pg_snapshot", + "point", + "polygon", + "real", + "serial", + "serial2", + "serial4", + "serial8", + "smallint", + "smallserial", + "text", + "time", + "timestamp", + "timestamptz", + "timetz", + "tsquery", + "tsvector", + "txid_snapshot", + "uuid", + "varbit", + "varchar", + "with time zone", + "without time zone", + "xml", ) PSEUDO_TYPES = ( - 'any', - 'anyarray', - 'anycompatible', - 'anycompatiblearray', - 'anycompatiblemultirange', - 'anycompatiblenonarray', - 'anycompatiblerange', - 'anyelement', - 'anyenum', - 'anymultirange', - 'anynonarray', - 'anyrange', - 'cstring', - 'event_trigger', - 'fdw_handler', - 'index_am_handler', - 'internal', - 'language_handler', - 'pg_ddl_command', - 'record', - 'table_am_handler', - 'trigger', - 'tsm_handler', - 'unknown', - 'void', + "any", + "anyarray", + "anycompatible", + "anycompatiblearray", + "anycompatiblemultirange", + "anycompatiblenonarray", + "anycompatiblerange", + "anyelement", + "anyenum", + "anymultirange", + "anynonarray", + "anyrange", + "cstring", + "event_trigger", + "fdw_handler", + "index_am_handler", + "internal", + "language_handler", + "pg_ddl_command", + "record", + "table_am_handler", + "trigger", + "tsm_handler", + "unknown", + "void", ) # Remove 'trigger' from types PSEUDO_TYPES = tuple(sorted(set(PSEUDO_TYPES) - set(map(str.lower, KEYWORDS)))) PLPGSQL_KEYWORDS = ( - 'ALIAS', 'CONSTANT', 'DIAGNOSTICS', 'ELSIF', 'EXCEPTION', 'EXIT', - 'FOREACH', 'GET', 'LOOP', 'NOTICE', 'OPEN', 'PERFORM', 'QUERY', 'RAISE', - 'RETURN', 'REVERSE', 'SQLSTATE', 'WHILE', + "ALIAS", + "CONSTANT", + "DIAGNOSTICS", + "ELSIF", + "EXCEPTION", + "EXIT", + "FOREACH", + "GET", + "LOOP", + "NOTICE", + "OPEN", + "PERFORM", + "QUERY", + "RAISE", + "RETURN", + "REVERSE", + "SQLSTATE", + "WHILE", ) # Most of these keywords are from ExplainNode function # in src/backend/commands/explain.c EXPLAIN_KEYWORDS = ( - 'Aggregate', - 'Append', - 'Bitmap Heap Scan', - 'Bitmap Index Scan', - 'BitmapAnd', - 'BitmapOr', - 'CTE Scan', - 'Custom Scan', - 'Delete', - 'Foreign Scan', - 'Function Scan', - 'Gather Merge', - 'Gather', - 'Group', - 'GroupAggregate', - 'Hash Join', - 'Hash', - 'HashAggregate', - 'Incremental Sort', - 'Index Only Scan', - 'Index Scan', - 'Insert', - 'Limit', - 'LockRows', - 'Materialize', - 'Memoize', - 'Merge Append', - 'Merge Join', - 'Merge', - 'MixedAggregate', - 'Named Tuplestore Scan', - 'Nested Loop', - 'ProjectSet', - 'Recursive Union', - 'Result', - 'Sample Scan', - 'Seq Scan', - 'SetOp', - 'Sort', - 'SubPlan', - 'Subquery Scan', - 'Table Function Scan', - 'Tid Range Scan', - 'Tid Scan', - 'Unique', - 'Update', - 'Values Scan', - 'WindowAgg', - 'WorkTable Scan', + "Aggregate", + "Append", + "Bitmap Heap Scan", + "Bitmap Index Scan", + "BitmapAnd", + "BitmapOr", + "CTE Scan", + "Custom Scan", + "Delete", + "Foreign Scan", + "Function Scan", + "Gather Merge", + "Gather", + "Group", + "GroupAggregate", + "Hash Join", + "Hash", + "HashAggregate", + "Incremental Sort", + "Index Only Scan", + "Index Scan", + "Insert", + "Limit", + "LockRows", + "Materialize", + "Memoize", + "Merge Append", + "Merge Join", + "Merge", + "MixedAggregate", + "Named Tuplestore Scan", + "Nested Loop", + "ProjectSet", + "Recursive Union", + "Result", + "Sample Scan", + "Seq Scan", + "SetOp", + "Sort", + "SubPlan", + "Subquery Scan", + "Table Function Scan", + "Tid Range Scan", + "Tid Scan", + "Unique", + "Update", + "Values Scan", + "WindowAgg", + "WorkTable Scan", ) -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import re from urllib.request import urlopen from pygments.util import format_lines # One man's constant is another man's variable. - SOURCE_URL = 'https://github.com/postgres/postgres/raw/master' - KEYWORDS_URL = SOURCE_URL + '/src/include/parser/kwlist.h' - DATATYPES_URL = SOURCE_URL + '/doc/src/sgml/datatype.sgml' + SOURCE_URL = "https://github.com/postgres/postgres/raw/master" + KEYWORDS_URL = SOURCE_URL + "/src/include/parser/kwlist.h" + DATATYPES_URL = SOURCE_URL + "/doc/src/sgml/datatype.sgml" def update_myself(): - content = urlopen(DATATYPES_URL).read().decode('utf-8', errors='ignore') + content = urlopen(DATATYPES_URL).read().decode("utf-8", errors="ignore") data_file = list(content.splitlines()) datatypes = parse_datatypes(data_file) pseudos = parse_pseudos(data_file) - content = urlopen(KEYWORDS_URL).read().decode('utf-8', errors='ignore') + content = urlopen(KEYWORDS_URL).read().decode("utf-8", errors="ignore") keywords = parse_keywords(content) - update_consts(__file__, 'DATATYPES', datatypes) - update_consts(__file__, 'PSEUDO_TYPES', pseudos) - update_consts(__file__, 'KEYWORDS', keywords) + update_consts(__file__, "DATATYPES", datatypes) + update_consts(__file__, "PSEUDO_TYPES", pseudos) + update_consts(__file__, "KEYWORDS", keywords) def parse_keywords(f): kw = [] @@ -657,7 +672,7 @@ if __name__ == '__main__': # pragma: no cover kw.append(m.group(1).upper()) if not kw: - raise ValueError('no keyword found') + raise ValueError("no keyword found") kw.sort() return kw @@ -665,9 +680,9 @@ if __name__ == '__main__': # pragma: no cover def parse_datatypes(f): dt = set() for line in f: - if '' not in line: + if "" not in line: continue # Parse a string such as @@ -679,9 +694,10 @@ if __name__ == '__main__': # pragma: no cover line = re.sub("<[^>]+>", "", line) # Drop the parts containing braces - for tmp in [t for tmp in line.split('[') - for t in tmp.split(']') if "(" not in t]: - for t in tmp.split(','): + for tmp in [ + t for tmp in line.split("[") for t in tmp.split("]") if "(" not in t + ]: + for t in tmp.split(","): t = t.strip() if not t: continue @@ -694,15 +710,15 @@ if __name__ == '__main__': # pragma: no cover def parse_pseudos(f): dt = [] re_start = re.compile(r'\s*') - re_entry = re.compile(r'\s*(.+?)') - re_end = re.compile(r'\s*
') + re_entry = re.compile(r"\s*(.+?)") + re_end = re.compile(r"\s*") f = iter(f) for line in f: if re_start.match(line) is not None: break else: - raise ValueError('pseudo datatypes table not found') + raise ValueError("pseudo datatypes table not found") for line in f: m = re_entry.match(line) @@ -712,28 +728,28 @@ if __name__ == '__main__': # pragma: no cover if re_end.match(line) is not None: break else: - raise ValueError('end of pseudo datatypes table not found') + raise ValueError("end of pseudo datatypes table not found") if not dt: - raise ValueError('pseudo datatypes not found') + raise ValueError("pseudo datatypes not found") dt.sort() return dt def update_consts(filename, constname, content): - with open(filename, encoding='utf-8') as f: + with open(filename, encoding="utf-8") as f: data = f.read() # Line to start/end inserting - re_match = re.compile(rf'^{constname}\s*=\s*\($.*?^\s*\)$', re.M | re.S) + re_match = re.compile(rf"^{constname}\s*=\s*\($.*?^\s*\)$", re.M | re.S) m = re_match.search(data) if not m: - raise ValueError(f'Could not find existing definition for {constname}') + raise ValueError(f"Could not find existing definition for {constname}") new_block = format_lines(constname, content) - data = data[:m.start()] + new_block + data[m.end():] + data = data[: m.start()] + new_block + data[m.end() :] - with open(filename, 'w', encoding='utf-8', newline='\n') as f: + with open(filename, "w", encoding="utf-8", newline="\n") as f: f.write(data) update_myself() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_qlik_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_qlik_builtins.py index c2fe0cf..b76192d 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_qlik_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_qlik_builtins.py @@ -1,11 +1,11 @@ """ - pygments.lexers._qlik_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._qlik_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Qlik builtins. +Qlik builtins. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # operators diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scheme_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scheme_builtins.py index c35a533..770d483 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scheme_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scheme_builtins.py @@ -1,11 +1,11 @@ """ - pygments.lexers._scheme_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._scheme_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Scheme builtins. +Scheme builtins. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # Autogenerated by external/scheme-builtins-generator.scm @@ -1606,4 +1606,3 @@ scheme_builtins = { "zero?", "zip", } - diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scilab_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scilab_builtins.py index af49b46..57ca194 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scilab_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_scilab_builtins.py @@ -1,3093 +1,3096 @@ """ - pygments.lexers._scilab_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._scilab_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Builtin list for the ScilabLexer. +Builtin list for the ScilabLexer. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # Autogenerated commands_kw = ( - 'abort', - 'apropos', - 'break', - 'case', - 'catch', - 'continue', - 'do', - 'else', - 'elseif', - 'end', - 'endfunction', - 'for', - 'function', - 'help', - 'if', - 'pause', - 'quit', - 'select', - 'then', - 'try', - 'while', + "abort", + "apropos", + "break", + "case", + "catch", + "continue", + "do", + "else", + "elseif", + "end", + "endfunction", + "for", + "function", + "help", + "if", + "pause", + "quit", + "select", + "then", + "try", + "while", ) functions_kw = ( - '!!_invoke_', - '%H5Object_e', - '%H5Object_fieldnames', - '%H5Object_p', - '%XMLAttr_6', - '%XMLAttr_e', - '%XMLAttr_i_XMLElem', - '%XMLAttr_length', - '%XMLAttr_p', - '%XMLAttr_size', - '%XMLDoc_6', - '%XMLDoc_e', - '%XMLDoc_i_XMLList', - '%XMLDoc_p', - '%XMLElem_6', - '%XMLElem_e', - '%XMLElem_i_XMLDoc', - '%XMLElem_i_XMLElem', - '%XMLElem_i_XMLList', - '%XMLElem_p', - '%XMLList_6', - '%XMLList_e', - '%XMLList_i_XMLElem', - '%XMLList_i_XMLList', - '%XMLList_length', - '%XMLList_p', - '%XMLList_size', - '%XMLNs_6', - '%XMLNs_e', - '%XMLNs_i_XMLElem', - '%XMLNs_p', - '%XMLSet_6', - '%XMLSet_e', - '%XMLSet_length', - '%XMLSet_p', - '%XMLSet_size', - '%XMLValid_p', - '%_EClass_6', - '%_EClass_e', - '%_EClass_p', - '%_EObj_0', - '%_EObj_1__EObj', - '%_EObj_1_b', - '%_EObj_1_c', - '%_EObj_1_i', - '%_EObj_1_s', - '%_EObj_2__EObj', - '%_EObj_2_b', - '%_EObj_2_c', - '%_EObj_2_i', - '%_EObj_2_s', - '%_EObj_3__EObj', - '%_EObj_3_b', - '%_EObj_3_c', - '%_EObj_3_i', - '%_EObj_3_s', - '%_EObj_4__EObj', - '%_EObj_4_b', - '%_EObj_4_c', - '%_EObj_4_i', - '%_EObj_4_s', - '%_EObj_5', - '%_EObj_6', - '%_EObj_a__EObj', - '%_EObj_a_b', - '%_EObj_a_c', - '%_EObj_a_i', - '%_EObj_a_s', - '%_EObj_d__EObj', - '%_EObj_d_b', - '%_EObj_d_c', - '%_EObj_d_i', - '%_EObj_d_s', - '%_EObj_disp', - '%_EObj_e', - '%_EObj_g__EObj', - '%_EObj_g_b', - '%_EObj_g_c', - '%_EObj_g_i', - '%_EObj_g_s', - '%_EObj_h__EObj', - '%_EObj_h_b', - '%_EObj_h_c', - '%_EObj_h_i', - '%_EObj_h_s', - '%_EObj_i__EObj', - '%_EObj_j__EObj', - '%_EObj_j_b', - '%_EObj_j_c', - '%_EObj_j_i', - '%_EObj_j_s', - '%_EObj_k__EObj', - '%_EObj_k_b', - '%_EObj_k_c', - '%_EObj_k_i', - '%_EObj_k_s', - '%_EObj_l__EObj', - '%_EObj_l_b', - '%_EObj_l_c', - '%_EObj_l_i', - '%_EObj_l_s', - '%_EObj_m__EObj', - '%_EObj_m_b', - '%_EObj_m_c', - '%_EObj_m_i', - '%_EObj_m_s', - '%_EObj_n__EObj', - '%_EObj_n_b', - '%_EObj_n_c', - '%_EObj_n_i', - '%_EObj_n_s', - '%_EObj_o__EObj', - '%_EObj_o_b', - '%_EObj_o_c', - '%_EObj_o_i', - '%_EObj_o_s', - '%_EObj_p', - '%_EObj_p__EObj', - '%_EObj_p_b', - '%_EObj_p_c', - '%_EObj_p_i', - '%_EObj_p_s', - '%_EObj_q__EObj', - '%_EObj_q_b', - '%_EObj_q_c', - '%_EObj_q_i', - '%_EObj_q_s', - '%_EObj_r__EObj', - '%_EObj_r_b', - '%_EObj_r_c', - '%_EObj_r_i', - '%_EObj_r_s', - '%_EObj_s__EObj', - '%_EObj_s_b', - '%_EObj_s_c', - '%_EObj_s_i', - '%_EObj_s_s', - '%_EObj_t', - '%_EObj_x__EObj', - '%_EObj_x_b', - '%_EObj_x_c', - '%_EObj_x_i', - '%_EObj_x_s', - '%_EObj_y__EObj', - '%_EObj_y_b', - '%_EObj_y_c', - '%_EObj_y_i', - '%_EObj_y_s', - '%_EObj_z__EObj', - '%_EObj_z_b', - '%_EObj_z_c', - '%_EObj_z_i', - '%_EObj_z_s', - '%_eigs', - '%_load', - '%b_1__EObj', - '%b_2__EObj', - '%b_3__EObj', - '%b_4__EObj', - '%b_a__EObj', - '%b_d__EObj', - '%b_g__EObj', - '%b_h__EObj', - '%b_i_XMLList', - '%b_i__EObj', - '%b_j__EObj', - '%b_k__EObj', - '%b_l__EObj', - '%b_m__EObj', - '%b_n__EObj', - '%b_o__EObj', - '%b_p__EObj', - '%b_q__EObj', - '%b_r__EObj', - '%b_s__EObj', - '%b_x__EObj', - '%b_y__EObj', - '%b_z__EObj', - '%c_1__EObj', - '%c_2__EObj', - '%c_3__EObj', - '%c_4__EObj', - '%c_a__EObj', - '%c_d__EObj', - '%c_g__EObj', - '%c_h__EObj', - '%c_i_XMLAttr', - '%c_i_XMLDoc', - '%c_i_XMLElem', - '%c_i_XMLList', - '%c_i__EObj', - '%c_j__EObj', - '%c_k__EObj', - '%c_l__EObj', - '%c_m__EObj', - '%c_n__EObj', - '%c_o__EObj', - '%c_p__EObj', - '%c_q__EObj', - '%c_r__EObj', - '%c_s__EObj', - '%c_x__EObj', - '%c_y__EObj', - '%c_z__EObj', - '%ce_i_XMLList', - '%fptr_i_XMLList', - '%h_i_XMLList', - '%hm_i_XMLList', - '%i_1__EObj', - '%i_2__EObj', - '%i_3__EObj', - '%i_4__EObj', - '%i_a__EObj', - '%i_abs', - '%i_cumprod', - '%i_cumsum', - '%i_d__EObj', - '%i_diag', - '%i_g__EObj', - '%i_h__EObj', - '%i_i_XMLList', - '%i_i__EObj', - '%i_j__EObj', - '%i_k__EObj', - '%i_l__EObj', - '%i_m__EObj', - '%i_matrix', - '%i_max', - '%i_maxi', - '%i_min', - '%i_mini', - '%i_mput', - '%i_n__EObj', - '%i_o__EObj', - '%i_p', - '%i_p__EObj', - '%i_prod', - '%i_q__EObj', - '%i_r__EObj', - '%i_s__EObj', - '%i_sum', - '%i_tril', - '%i_triu', - '%i_x__EObj', - '%i_y__EObj', - '%i_z__EObj', - '%ip_i_XMLList', - '%l_i_XMLList', - '%l_i__EObj', - '%lss_i_XMLList', - '%mc_i_XMLList', - '%msp_full', - '%msp_i_XMLList', - '%msp_spget', - '%p_i_XMLList', - '%ptr_i_XMLList', - '%r_i_XMLList', - '%s_1__EObj', - '%s_2__EObj', - '%s_3__EObj', - '%s_4__EObj', - '%s_a__EObj', - '%s_d__EObj', - '%s_g__EObj', - '%s_h__EObj', - '%s_i_XMLList', - '%s_i__EObj', - '%s_j__EObj', - '%s_k__EObj', - '%s_l__EObj', - '%s_m__EObj', - '%s_n__EObj', - '%s_o__EObj', - '%s_p__EObj', - '%s_q__EObj', - '%s_r__EObj', - '%s_s__EObj', - '%s_x__EObj', - '%s_y__EObj', - '%s_z__EObj', - '%sp_i_XMLList', - '%spb_i_XMLList', - '%st_i_XMLList', - 'Calendar', - 'ClipBoard', - 'Matplot', - 'Matplot1', - 'PlaySound', - 'TCL_DeleteInterp', - 'TCL_DoOneEvent', - 'TCL_EvalFile', - 'TCL_EvalStr', - 'TCL_ExistArray', - 'TCL_ExistInterp', - 'TCL_ExistVar', - 'TCL_GetVar', - 'TCL_GetVersion', - 'TCL_SetVar', - 'TCL_UnsetVar', - 'TCL_UpVar', - '_', - '_code2str', - '_d', - '_str2code', - 'about', - 'abs', - 'acos', - 'addModulePreferences', - 'addcolor', - 'addf', - 'addhistory', - 'addinter', - 'addlocalizationdomain', - 'amell', - 'and', - 'argn', - 'arl2_ius', - 'ascii', - 'asin', - 'atan', - 'backslash', - 'balanc', - 'banner', - 'base2dec', - 'basename', - 'bdiag', - 'beep', - 'besselh', - 'besseli', - 'besselj', - 'besselk', - 'bessely', - 'beta', - 'bezout', - 'bfinit', - 'blkfc1i', - 'blkslvi', - 'bool2s', - 'browsehistory', - 'browsevar', - 'bsplin3val', - 'buildDoc', - 'buildouttb', - 'bvode', - 'c_link', - 'call', - 'callblk', - 'captions', - 'cd', - 'cdfbet', - 'cdfbin', - 'cdfchi', - 'cdfchn', - 'cdff', - 'cdffnc', - 'cdfgam', - 'cdfnbn', - 'cdfnor', - 'cdfpoi', - 'cdft', - 'ceil', - 'champ', - 'champ1', - 'chdir', - 'chol', - 'clc', - 'clean', - 'clear', - 'clearfun', - 'clearglobal', - 'closeEditor', - 'closeEditvar', - 'closeXcos', - 'code2str', - 'coeff', - 'color', - 'comp', - 'completion', - 'conj', - 'contour2di', - 'contr', - 'conv2', - 'convstr', - 'copy', - 'copyfile', - 'corr', - 'cos', - 'coserror', - 'createdir', - 'cshep2d', - 'csvDefault', - 'csvIsnum', - 'csvRead', - 'csvStringToDouble', - 'csvTextScan', - 'csvWrite', - 'ctree2', - 'ctree3', - 'ctree4', - 'cumprod', - 'cumsum', - 'curblock', - 'curblockc', - 'daskr', - 'dasrt', - 'dassl', - 'data2sig', - 'datatipCreate', - 'datatipManagerMode', - 'datatipMove', - 'datatipRemove', - 'datatipSetDisplay', - 'datatipSetInterp', - 'datatipSetOrientation', - 'datatipSetStyle', - 'datatipToggle', - 'dawson', - 'dct', - 'debug', - 'dec2base', - 'deff', - 'definedfields', - 'degree', - 'delbpt', - 'delete', - 'deletefile', - 'delip', - 'delmenu', - 'det', - 'dgettext', - 'dhinf', - 'diag', - 'diary', - 'diffobjs', - 'disp', - 'dispbpt', - 'displayhistory', - 'disposefftwlibrary', - 'dlgamma', - 'dnaupd', - 'dneupd', - 'double', - 'drawaxis', - 'drawlater', - 'drawnow', - 'driver', - 'dsaupd', - 'dsearch', - 'dseupd', - 'dst', - 'duplicate', - 'editvar', - 'emptystr', - 'end_scicosim', - 'ereduc', - 'erf', - 'erfc', - 'erfcx', - 'erfi', - 'errcatch', - 'errclear', - 'error', - 'eval_cshep2d', - 'exec', - 'execstr', - 'exists', - 'exit', - 'exp', - 'expm', - 'exportUI', - 'export_to_hdf5', - 'eye', - 'fadj2sp', - 'fec', - 'feval', - 'fft', - 'fftw', - 'fftw_flags', - 'fftw_forget_wisdom', - 'fftwlibraryisloaded', - 'figure', - 'file', - 'filebrowser', - 'fileext', - 'fileinfo', - 'fileparts', - 'filesep', - 'find', - 'findBD', - 'findfiles', - 'fire_closing_finished', - 'floor', - 'format', - 'fort', - 'fprintfMat', - 'freq', - 'frexp', - 'fromc', - 'fromjava', - 'fscanfMat', - 'fsolve', - 'fstair', - 'full', - 'fullpath', - 'funcprot', - 'funptr', - 'gamma', - 'gammaln', - 'geom3d', - 'get', - 'getURL', - 'get_absolute_file_path', - 'get_fftw_wisdom', - 'getblocklabel', - 'getcallbackobject', - 'getdate', - 'getdebuginfo', - 'getdefaultlanguage', - 'getdrives', - 'getdynlibext', - 'getenv', - 'getfield', - 'gethistory', - 'gethistoryfile', - 'getinstalledlookandfeels', - 'getio', - 'getlanguage', - 'getlongpathname', - 'getlookandfeel', - 'getmd5', - 'getmemory', - 'getmodules', - 'getos', - 'getpid', - 'getrelativefilename', - 'getscicosvars', - 'getscilabmode', - 'getshortpathname', - 'gettext', - 'getvariablesonstack', - 'getversion', - 'glist', - 'global', - 'glue', - 'grand', - 'graphicfunction', - 'grayplot', - 'grep', - 'gsort', - 'gstacksize', - 'h5attr', - 'h5close', - 'h5cp', - 'h5dataset', - 'h5dump', - 'h5exists', - 'h5flush', - 'h5get', - 'h5group', - 'h5isArray', - 'h5isAttr', - 'h5isCompound', - 'h5isFile', - 'h5isGroup', - 'h5isList', - 'h5isRef', - 'h5isSet', - 'h5isSpace', - 'h5isType', - 'h5isVlen', - 'h5label', - 'h5ln', - 'h5ls', - 'h5mount', - 'h5mv', - 'h5open', - 'h5read', - 'h5readattr', - 'h5rm', - 'h5umount', - 'h5write', - 'h5writeattr', - 'havewindow', - 'helpbrowser', - 'hess', - 'hinf', - 'historymanager', - 'historysize', - 'host', - 'htmlDump', - 'htmlRead', - 'htmlReadStr', - 'htmlWrite', - 'iconvert', - 'ieee', - 'ilib_verbose', - 'imag', - 'impl', - 'import_from_hdf5', - 'imult', - 'inpnvi', - 'int', - 'int16', - 'int2d', - 'int32', - 'int3d', - 'int8', - 'interp', - 'interp2d', - 'interp3d', - 'intg', - 'intppty', - 'inttype', - 'inv', - 'invoke_lu', - 'is_handle_valid', - 'is_hdf5_file', - 'isalphanum', - 'isascii', - 'isdef', - 'isdigit', - 'isdir', - 'isequal', - 'isequalbitwise', - 'iserror', - 'isfile', - 'isglobal', - 'isletter', - 'isnum', - 'isreal', - 'iswaitingforinput', - 'jallowClassReloading', - 'jarray', - 'jautoTranspose', - 'jautoUnwrap', - 'javaclasspath', - 'javalibrarypath', - 'jcast', - 'jcompile', - 'jconvMatrixMethod', - 'jcreatejar', - 'jdeff', - 'jdisableTrace', - 'jenableTrace', - 'jexists', - 'jgetclassname', - 'jgetfield', - 'jgetfields', - 'jgetinfo', - 'jgetmethods', - 'jimport', - 'jinvoke', - 'jinvoke_db', - 'jnewInstance', - 'jremove', - 'jsetfield', - 'junwrap', - 'junwraprem', - 'jwrap', - 'jwrapinfloat', - 'kron', - 'lasterror', - 'ldiv', - 'ldivf', - 'legendre', - 'length', - 'lib', - 'librarieslist', - 'libraryinfo', - 'light', - 'linear_interpn', - 'lines', - 'link', - 'linmeq', - 'list', - 'listvar_in_hdf5', - 'load', - 'loadGui', - 'loadScicos', - 'loadXcos', - 'loadfftwlibrary', - 'loadhistory', - 'log', - 'log1p', - 'lsq', - 'lsq_splin', - 'lsqrsolve', - 'lsslist', - 'lstcat', - 'lstsize', - 'ltitr', - 'lu', - 'ludel', - 'lufact', - 'luget', - 'lusolve', - 'macr2lst', - 'macr2tree', - 'matfile_close', - 'matfile_listvar', - 'matfile_open', - 'matfile_varreadnext', - 'matfile_varwrite', - 'matrix', - 'max', - 'maxfiles', - 'mclearerr', - 'mclose', - 'meof', - 'merror', - 'messagebox', - 'mfprintf', - 'mfscanf', - 'mget', - 'mgeti', - 'mgetl', - 'mgetstr', - 'min', - 'mlist', - 'mode', - 'model2blk', - 'mopen', - 'move', - 'movefile', - 'mprintf', - 'mput', - 'mputl', - 'mputstr', - 'mscanf', - 'mseek', - 'msprintf', - 'msscanf', - 'mtell', - 'mtlb_mode', - 'mtlb_sparse', - 'mucomp', - 'mulf', - 'name2rgb', - 'nearfloat', - 'newaxes', - 'newest', - 'newfun', - 'nnz', - 'norm', - 'notify', - 'number_properties', - 'ode', - 'odedc', - 'ones', - 'openged', - 'opentk', - 'optim', - 'or', - 'ordmmd', - 'parallel_concurrency', - 'parallel_run', - 'param3d', - 'param3d1', - 'part', - 'pathconvert', - 'pathsep', - 'phase_simulation', - 'plot2d', - 'plot2d1', - 'plot2d2', - 'plot2d3', - 'plot2d4', - 'plot3d', - 'plot3d1', - 'plotbrowser', - 'pointer_xproperty', - 'poly', - 'ppol', - 'pppdiv', - 'predef', - 'preferences', - 'print', - 'printf', - 'printfigure', - 'printsetupbox', - 'prod', - 'progressionbar', - 'prompt', - 'pwd', - 'qld', - 'qp_solve', - 'qr', - 'raise_window', - 'rand', - 'rankqr', - 'rat', - 'rcond', - 'rdivf', - 'read', - 'read4b', - 'read_csv', - 'readb', - 'readgateway', - 'readmps', - 'real', - 'realtime', - 'realtimeinit', - 'regexp', - 'relocate_handle', - 'remez', - 'removeModulePreferences', - 'removedir', - 'removelinehistory', - 'res_with_prec', - 'resethistory', - 'residu', - 'resume', - 'return', - 'ricc', - 'rlist', - 'roots', - 'rotate_axes', - 'round', - 'rpem', - 'rtitr', - 'rubberbox', - 'save', - 'saveGui', - 'saveafterncommands', - 'saveconsecutivecommands', - 'savehistory', - 'schur', - 'sci_haltscicos', - 'sci_tree2', - 'sci_tree3', - 'sci_tree4', - 'sciargs', - 'scicos_debug', - 'scicos_debug_count', - 'scicos_time', - 'scicosim', - 'scinotes', - 'sctree', - 'semidef', - 'set', - 'set_blockerror', - 'set_fftw_wisdom', - 'set_xproperty', - 'setbpt', - 'setdefaultlanguage', - 'setenv', - 'setfield', - 'sethistoryfile', - 'setlanguage', - 'setlookandfeel', - 'setmenu', - 'sfact', - 'sfinit', - 'show_window', - 'sident', - 'sig2data', - 'sign', - 'simp', - 'simp_mode', - 'sin', - 'size', - 'slash', - 'sleep', - 'sorder', - 'sparse', - 'spchol', - 'spcompack', - 'spec', - 'spget', - 'splin', - 'splin2d', - 'splin3d', - 'splitURL', - 'spones', - 'sprintf', - 'sqrt', - 'stacksize', - 'str2code', - 'strcat', - 'strchr', - 'strcmp', - 'strcspn', - 'strindex', - 'string', - 'stringbox', - 'stripblanks', - 'strncpy', - 'strrchr', - 'strrev', - 'strsplit', - 'strspn', - 'strstr', - 'strsubst', - 'strtod', - 'strtok', - 'subf', - 'sum', - 'svd', - 'swap_handles', - 'symfcti', - 'syredi', - 'system_getproperty', - 'system_setproperty', - 'ta2lpd', - 'tan', - 'taucs_chdel', - 'taucs_chfact', - 'taucs_chget', - 'taucs_chinfo', - 'taucs_chsolve', - 'tempname', - 'testmatrix', - 'timer', - 'tlist', - 'tohome', - 'tokens', - 'toolbar', - 'toprint', - 'tr_zer', - 'tril', - 'triu', - 'type', - 'typename', - 'uiDisplayTree', - 'uicontextmenu', - 'uicontrol', - 'uigetcolor', - 'uigetdir', - 'uigetfile', - 'uigetfont', - 'uimenu', - 'uint16', - 'uint32', - 'uint8', - 'uipopup', - 'uiputfile', - 'uiwait', - 'ulink', - 'umf_ludel', - 'umf_lufact', - 'umf_luget', - 'umf_luinfo', - 'umf_lusolve', - 'umfpack', - 'unglue', - 'unix', - 'unsetmenu', - 'unzoom', - 'updatebrowsevar', - 'usecanvas', - 'useeditor', - 'user', - 'var2vec', - 'varn', - 'vec2var', - 'waitbar', - 'warnBlockByUID', - 'warning', - 'what', - 'where', - 'whereis', - 'who', - 'winsid', - 'with_module', - 'writb', - 'write', - 'write4b', - 'write_csv', - 'x_choose', - 'x_choose_modeless', - 'x_dialog', - 'x_mdialog', - 'xarc', - 'xarcs', - 'xarrows', - 'xchange', - 'xchoicesi', - 'xclick', - 'xcos', - 'xcosAddToolsMenu', - 'xcosConfigureXmlFile', - 'xcosDiagramToScilab', - 'xcosPalCategoryAdd', - 'xcosPalDelete', - 'xcosPalDisable', - 'xcosPalEnable', - 'xcosPalGenerateIcon', - 'xcosPalGet', - 'xcosPalLoad', - 'xcosPalMove', - 'xcosSimulationStarted', - 'xcosUpdateBlock', - 'xdel', - 'xend', - 'xfarc', - 'xfarcs', - 'xfpoly', - 'xfpolys', - 'xfrect', - 'xget', - 'xgetmouse', - 'xgraduate', - 'xgrid', - 'xinit', - 'xlfont', - 'xls_open', - 'xls_read', - 'xmlAddNs', - 'xmlAppend', - 'xmlAsNumber', - 'xmlAsText', - 'xmlDTD', - 'xmlDelete', - 'xmlDocument', - 'xmlDump', - 'xmlElement', - 'xmlFormat', - 'xmlGetNsByHref', - 'xmlGetNsByPrefix', - 'xmlGetOpenDocs', - 'xmlIsValidObject', - 'xmlName', - 'xmlNs', - 'xmlRead', - 'xmlReadStr', - 'xmlRelaxNG', - 'xmlRemove', - 'xmlSchema', - 'xmlSetAttributes', - 'xmlValidate', - 'xmlWrite', - 'xmlXPath', - 'xname', - 'xpause', - 'xpoly', - 'xpolys', - 'xrect', - 'xrects', - 'xs2bmp', - 'xs2emf', - 'xs2eps', - 'xs2gif', - 'xs2jpg', - 'xs2pdf', - 'xs2png', - 'xs2ppm', - 'xs2ps', - 'xs2svg', - 'xsegs', - 'xset', - 'xstring', - 'xstringb', - 'xtitle', - 'zeros', - 'znaupd', - 'zneupd', - 'zoom_rect', + "!!_invoke_", + "%H5Object_e", + "%H5Object_fieldnames", + "%H5Object_p", + "%XMLAttr_6", + "%XMLAttr_e", + "%XMLAttr_i_XMLElem", + "%XMLAttr_length", + "%XMLAttr_p", + "%XMLAttr_size", + "%XMLDoc_6", + "%XMLDoc_e", + "%XMLDoc_i_XMLList", + "%XMLDoc_p", + "%XMLElem_6", + "%XMLElem_e", + "%XMLElem_i_XMLDoc", + "%XMLElem_i_XMLElem", + "%XMLElem_i_XMLList", + "%XMLElem_p", + "%XMLList_6", + "%XMLList_e", + "%XMLList_i_XMLElem", + "%XMLList_i_XMLList", + "%XMLList_length", + "%XMLList_p", + "%XMLList_size", + "%XMLNs_6", + "%XMLNs_e", + "%XMLNs_i_XMLElem", + "%XMLNs_p", + "%XMLSet_6", + "%XMLSet_e", + "%XMLSet_length", + "%XMLSet_p", + "%XMLSet_size", + "%XMLValid_p", + "%_EClass_6", + "%_EClass_e", + "%_EClass_p", + "%_EObj_0", + "%_EObj_1__EObj", + "%_EObj_1_b", + "%_EObj_1_c", + "%_EObj_1_i", + "%_EObj_1_s", + "%_EObj_2__EObj", + "%_EObj_2_b", + "%_EObj_2_c", + "%_EObj_2_i", + "%_EObj_2_s", + "%_EObj_3__EObj", + "%_EObj_3_b", + "%_EObj_3_c", + "%_EObj_3_i", + "%_EObj_3_s", + "%_EObj_4__EObj", + "%_EObj_4_b", + "%_EObj_4_c", + "%_EObj_4_i", + "%_EObj_4_s", + "%_EObj_5", + "%_EObj_6", + "%_EObj_a__EObj", + "%_EObj_a_b", + "%_EObj_a_c", + "%_EObj_a_i", + "%_EObj_a_s", + "%_EObj_d__EObj", + "%_EObj_d_b", + "%_EObj_d_c", + "%_EObj_d_i", + "%_EObj_d_s", + "%_EObj_disp", + "%_EObj_e", + "%_EObj_g__EObj", + "%_EObj_g_b", + "%_EObj_g_c", + "%_EObj_g_i", + "%_EObj_g_s", + "%_EObj_h__EObj", + "%_EObj_h_b", + "%_EObj_h_c", + "%_EObj_h_i", + "%_EObj_h_s", + "%_EObj_i__EObj", + "%_EObj_j__EObj", + "%_EObj_j_b", + "%_EObj_j_c", + "%_EObj_j_i", + "%_EObj_j_s", + "%_EObj_k__EObj", + "%_EObj_k_b", + "%_EObj_k_c", + "%_EObj_k_i", + "%_EObj_k_s", + "%_EObj_l__EObj", + "%_EObj_l_b", + "%_EObj_l_c", + "%_EObj_l_i", + "%_EObj_l_s", + "%_EObj_m__EObj", + "%_EObj_m_b", + "%_EObj_m_c", + "%_EObj_m_i", + "%_EObj_m_s", + "%_EObj_n__EObj", + "%_EObj_n_b", + "%_EObj_n_c", + "%_EObj_n_i", + "%_EObj_n_s", + "%_EObj_o__EObj", + "%_EObj_o_b", + "%_EObj_o_c", + "%_EObj_o_i", + "%_EObj_o_s", + "%_EObj_p", + "%_EObj_p__EObj", + "%_EObj_p_b", + "%_EObj_p_c", + "%_EObj_p_i", + "%_EObj_p_s", + "%_EObj_q__EObj", + "%_EObj_q_b", + "%_EObj_q_c", + "%_EObj_q_i", + "%_EObj_q_s", + "%_EObj_r__EObj", + "%_EObj_r_b", + "%_EObj_r_c", + "%_EObj_r_i", + "%_EObj_r_s", + "%_EObj_s__EObj", + "%_EObj_s_b", + "%_EObj_s_c", + "%_EObj_s_i", + "%_EObj_s_s", + "%_EObj_t", + "%_EObj_x__EObj", + "%_EObj_x_b", + "%_EObj_x_c", + "%_EObj_x_i", + "%_EObj_x_s", + "%_EObj_y__EObj", + "%_EObj_y_b", + "%_EObj_y_c", + "%_EObj_y_i", + "%_EObj_y_s", + "%_EObj_z__EObj", + "%_EObj_z_b", + "%_EObj_z_c", + "%_EObj_z_i", + "%_EObj_z_s", + "%_eigs", + "%_load", + "%b_1__EObj", + "%b_2__EObj", + "%b_3__EObj", + "%b_4__EObj", + "%b_a__EObj", + "%b_d__EObj", + "%b_g__EObj", + "%b_h__EObj", + "%b_i_XMLList", + "%b_i__EObj", + "%b_j__EObj", + "%b_k__EObj", + "%b_l__EObj", + "%b_m__EObj", + "%b_n__EObj", + "%b_o__EObj", + "%b_p__EObj", + "%b_q__EObj", + "%b_r__EObj", + "%b_s__EObj", + "%b_x__EObj", + "%b_y__EObj", + "%b_z__EObj", + "%c_1__EObj", + "%c_2__EObj", + "%c_3__EObj", + "%c_4__EObj", + "%c_a__EObj", + "%c_d__EObj", + "%c_g__EObj", + "%c_h__EObj", + "%c_i_XMLAttr", + "%c_i_XMLDoc", + "%c_i_XMLElem", + "%c_i_XMLList", + "%c_i__EObj", + "%c_j__EObj", + "%c_k__EObj", + "%c_l__EObj", + "%c_m__EObj", + "%c_n__EObj", + "%c_o__EObj", + "%c_p__EObj", + "%c_q__EObj", + "%c_r__EObj", + "%c_s__EObj", + "%c_x__EObj", + "%c_y__EObj", + "%c_z__EObj", + "%ce_i_XMLList", + "%fptr_i_XMLList", + "%h_i_XMLList", + "%hm_i_XMLList", + "%i_1__EObj", + "%i_2__EObj", + "%i_3__EObj", + "%i_4__EObj", + "%i_a__EObj", + "%i_abs", + "%i_cumprod", + "%i_cumsum", + "%i_d__EObj", + "%i_diag", + "%i_g__EObj", + "%i_h__EObj", + "%i_i_XMLList", + "%i_i__EObj", + "%i_j__EObj", + "%i_k__EObj", + "%i_l__EObj", + "%i_m__EObj", + "%i_matrix", + "%i_max", + "%i_maxi", + "%i_min", + "%i_mini", + "%i_mput", + "%i_n__EObj", + "%i_o__EObj", + "%i_p", + "%i_p__EObj", + "%i_prod", + "%i_q__EObj", + "%i_r__EObj", + "%i_s__EObj", + "%i_sum", + "%i_tril", + "%i_triu", + "%i_x__EObj", + "%i_y__EObj", + "%i_z__EObj", + "%ip_i_XMLList", + "%l_i_XMLList", + "%l_i__EObj", + "%lss_i_XMLList", + "%mc_i_XMLList", + "%msp_full", + "%msp_i_XMLList", + "%msp_spget", + "%p_i_XMLList", + "%ptr_i_XMLList", + "%r_i_XMLList", + "%s_1__EObj", + "%s_2__EObj", + "%s_3__EObj", + "%s_4__EObj", + "%s_a__EObj", + "%s_d__EObj", + "%s_g__EObj", + "%s_h__EObj", + "%s_i_XMLList", + "%s_i__EObj", + "%s_j__EObj", + "%s_k__EObj", + "%s_l__EObj", + "%s_m__EObj", + "%s_n__EObj", + "%s_o__EObj", + "%s_p__EObj", + "%s_q__EObj", + "%s_r__EObj", + "%s_s__EObj", + "%s_x__EObj", + "%s_y__EObj", + "%s_z__EObj", + "%sp_i_XMLList", + "%spb_i_XMLList", + "%st_i_XMLList", + "Calendar", + "ClipBoard", + "Matplot", + "Matplot1", + "PlaySound", + "TCL_DeleteInterp", + "TCL_DoOneEvent", + "TCL_EvalFile", + "TCL_EvalStr", + "TCL_ExistArray", + "TCL_ExistInterp", + "TCL_ExistVar", + "TCL_GetVar", + "TCL_GetVersion", + "TCL_SetVar", + "TCL_UnsetVar", + "TCL_UpVar", + "_", + "_code2str", + "_d", + "_str2code", + "about", + "abs", + "acos", + "addModulePreferences", + "addcolor", + "addf", + "addhistory", + "addinter", + "addlocalizationdomain", + "amell", + "and", + "argn", + "arl2_ius", + "ascii", + "asin", + "atan", + "backslash", + "balanc", + "banner", + "base2dec", + "basename", + "bdiag", + "beep", + "besselh", + "besseli", + "besselj", + "besselk", + "bessely", + "beta", + "bezout", + "bfinit", + "blkfc1i", + "blkslvi", + "bool2s", + "browsehistory", + "browsevar", + "bsplin3val", + "buildDoc", + "buildouttb", + "bvode", + "c_link", + "call", + "callblk", + "captions", + "cd", + "cdfbet", + "cdfbin", + "cdfchi", + "cdfchn", + "cdff", + "cdffnc", + "cdfgam", + "cdfnbn", + "cdfnor", + "cdfpoi", + "cdft", + "ceil", + "champ", + "champ1", + "chdir", + "chol", + "clc", + "clean", + "clear", + "clearfun", + "clearglobal", + "closeEditor", + "closeEditvar", + "closeXcos", + "code2str", + "coeff", + "color", + "comp", + "completion", + "conj", + "contour2di", + "contr", + "conv2", + "convstr", + "copy", + "copyfile", + "corr", + "cos", + "coserror", + "createdir", + "cshep2d", + "csvDefault", + "csvIsnum", + "csvRead", + "csvStringToDouble", + "csvTextScan", + "csvWrite", + "ctree2", + "ctree3", + "ctree4", + "cumprod", + "cumsum", + "curblock", + "curblockc", + "daskr", + "dasrt", + "dassl", + "data2sig", + "datatipCreate", + "datatipManagerMode", + "datatipMove", + "datatipRemove", + "datatipSetDisplay", + "datatipSetInterp", + "datatipSetOrientation", + "datatipSetStyle", + "datatipToggle", + "dawson", + "dct", + "debug", + "dec2base", + "deff", + "definedfields", + "degree", + "delbpt", + "delete", + "deletefile", + "delip", + "delmenu", + "det", + "dgettext", + "dhinf", + "diag", + "diary", + "diffobjs", + "disp", + "dispbpt", + "displayhistory", + "disposefftwlibrary", + "dlgamma", + "dnaupd", + "dneupd", + "double", + "drawaxis", + "drawlater", + "drawnow", + "driver", + "dsaupd", + "dsearch", + "dseupd", + "dst", + "duplicate", + "editvar", + "emptystr", + "end_scicosim", + "ereduc", + "erf", + "erfc", + "erfcx", + "erfi", + "errcatch", + "errclear", + "error", + "eval_cshep2d", + "exec", + "execstr", + "exists", + "exit", + "exp", + "expm", + "exportUI", + "export_to_hdf5", + "eye", + "fadj2sp", + "fec", + "feval", + "fft", + "fftw", + "fftw_flags", + "fftw_forget_wisdom", + "fftwlibraryisloaded", + "figure", + "file", + "filebrowser", + "fileext", + "fileinfo", + "fileparts", + "filesep", + "find", + "findBD", + "findfiles", + "fire_closing_finished", + "floor", + "format", + "fort", + "fprintfMat", + "freq", + "frexp", + "fromc", + "fromjava", + "fscanfMat", + "fsolve", + "fstair", + "full", + "fullpath", + "funcprot", + "funptr", + "gamma", + "gammaln", + "geom3d", + "get", + "getURL", + "get_absolute_file_path", + "get_fftw_wisdom", + "getblocklabel", + "getcallbackobject", + "getdate", + "getdebuginfo", + "getdefaultlanguage", + "getdrives", + "getdynlibext", + "getenv", + "getfield", + "gethistory", + "gethistoryfile", + "getinstalledlookandfeels", + "getio", + "getlanguage", + "getlongpathname", + "getlookandfeel", + "getmd5", + "getmemory", + "getmodules", + "getos", + "getpid", + "getrelativefilename", + "getscicosvars", + "getscilabmode", + "getshortpathname", + "gettext", + "getvariablesonstack", + "getversion", + "glist", + "global", + "glue", + "grand", + "graphicfunction", + "grayplot", + "grep", + "gsort", + "gstacksize", + "h5attr", + "h5close", + "h5cp", + "h5dataset", + "h5dump", + "h5exists", + "h5flush", + "h5get", + "h5group", + "h5isArray", + "h5isAttr", + "h5isCompound", + "h5isFile", + "h5isGroup", + "h5isList", + "h5isRef", + "h5isSet", + "h5isSpace", + "h5isType", + "h5isVlen", + "h5label", + "h5ln", + "h5ls", + "h5mount", + "h5mv", + "h5open", + "h5read", + "h5readattr", + "h5rm", + "h5umount", + "h5write", + "h5writeattr", + "havewindow", + "helpbrowser", + "hess", + "hinf", + "historymanager", + "historysize", + "host", + "htmlDump", + "htmlRead", + "htmlReadStr", + "htmlWrite", + "iconvert", + "ieee", + "ilib_verbose", + "imag", + "impl", + "import_from_hdf5", + "imult", + "inpnvi", + "int", + "int16", + "int2d", + "int32", + "int3d", + "int8", + "interp", + "interp2d", + "interp3d", + "intg", + "intppty", + "inttype", + "inv", + "invoke_lu", + "is_handle_valid", + "is_hdf5_file", + "isalphanum", + "isascii", + "isdef", + "isdigit", + "isdir", + "isequal", + "isequalbitwise", + "iserror", + "isfile", + "isglobal", + "isletter", + "isnum", + "isreal", + "iswaitingforinput", + "jallowClassReloading", + "jarray", + "jautoTranspose", + "jautoUnwrap", + "javaclasspath", + "javalibrarypath", + "jcast", + "jcompile", + "jconvMatrixMethod", + "jcreatejar", + "jdeff", + "jdisableTrace", + "jenableTrace", + "jexists", + "jgetclassname", + "jgetfield", + "jgetfields", + "jgetinfo", + "jgetmethods", + "jimport", + "jinvoke", + "jinvoke_db", + "jnewInstance", + "jremove", + "jsetfield", + "junwrap", + "junwraprem", + "jwrap", + "jwrapinfloat", + "kron", + "lasterror", + "ldiv", + "ldivf", + "legendre", + "length", + "lib", + "librarieslist", + "libraryinfo", + "light", + "linear_interpn", + "lines", + "link", + "linmeq", + "list", + "listvar_in_hdf5", + "load", + "loadGui", + "loadScicos", + "loadXcos", + "loadfftwlibrary", + "loadhistory", + "log", + "log1p", + "lsq", + "lsq_splin", + "lsqrsolve", + "lsslist", + "lstcat", + "lstsize", + "ltitr", + "lu", + "ludel", + "lufact", + "luget", + "lusolve", + "macr2lst", + "macr2tree", + "matfile_close", + "matfile_listvar", + "matfile_open", + "matfile_varreadnext", + "matfile_varwrite", + "matrix", + "max", + "maxfiles", + "mclearerr", + "mclose", + "meof", + "merror", + "messagebox", + "mfprintf", + "mfscanf", + "mget", + "mgeti", + "mgetl", + "mgetstr", + "min", + "mlist", + "mode", + "model2blk", + "mopen", + "move", + "movefile", + "mprintf", + "mput", + "mputl", + "mputstr", + "mscanf", + "mseek", + "msprintf", + "msscanf", + "mtell", + "mtlb_mode", + "mtlb_sparse", + "mucomp", + "mulf", + "name2rgb", + "nearfloat", + "newaxes", + "newest", + "newfun", + "nnz", + "norm", + "notify", + "number_properties", + "ode", + "odedc", + "ones", + "openged", + "opentk", + "optim", + "or", + "ordmmd", + "parallel_concurrency", + "parallel_run", + "param3d", + "param3d1", + "part", + "pathconvert", + "pathsep", + "phase_simulation", + "plot2d", + "plot2d1", + "plot2d2", + "plot2d3", + "plot2d4", + "plot3d", + "plot3d1", + "plotbrowser", + "pointer_xproperty", + "poly", + "ppol", + "pppdiv", + "predef", + "preferences", + "print", + "printf", + "printfigure", + "printsetupbox", + "prod", + "progressionbar", + "prompt", + "pwd", + "qld", + "qp_solve", + "qr", + "raise_window", + "rand", + "rankqr", + "rat", + "rcond", + "rdivf", + "read", + "read4b", + "read_csv", + "readb", + "readgateway", + "readmps", + "real", + "realtime", + "realtimeinit", + "regexp", + "relocate_handle", + "remez", + "removeModulePreferences", + "removedir", + "removelinehistory", + "res_with_prec", + "resethistory", + "residu", + "resume", + "return", + "ricc", + "rlist", + "roots", + "rotate_axes", + "round", + "rpem", + "rtitr", + "rubberbox", + "save", + "saveGui", + "saveafterncommands", + "saveconsecutivecommands", + "savehistory", + "schur", + "sci_haltscicos", + "sci_tree2", + "sci_tree3", + "sci_tree4", + "sciargs", + "scicos_debug", + "scicos_debug_count", + "scicos_time", + "scicosim", + "scinotes", + "sctree", + "semidef", + "set", + "set_blockerror", + "set_fftw_wisdom", + "set_xproperty", + "setbpt", + "setdefaultlanguage", + "setenv", + "setfield", + "sethistoryfile", + "setlanguage", + "setlookandfeel", + "setmenu", + "sfact", + "sfinit", + "show_window", + "sident", + "sig2data", + "sign", + "simp", + "simp_mode", + "sin", + "size", + "slash", + "sleep", + "sorder", + "sparse", + "spchol", + "spcompack", + "spec", + "spget", + "splin", + "splin2d", + "splin3d", + "splitURL", + "spones", + "sprintf", + "sqrt", + "stacksize", + "str2code", + "strcat", + "strchr", + "strcmp", + "strcspn", + "strindex", + "string", + "stringbox", + "stripblanks", + "strncpy", + "strrchr", + "strrev", + "strsplit", + "strspn", + "strstr", + "strsubst", + "strtod", + "strtok", + "subf", + "sum", + "svd", + "swap_handles", + "symfcti", + "syredi", + "system_getproperty", + "system_setproperty", + "ta2lpd", + "tan", + "taucs_chdel", + "taucs_chfact", + "taucs_chget", + "taucs_chinfo", + "taucs_chsolve", + "tempname", + "testmatrix", + "timer", + "tlist", + "tohome", + "tokens", + "toolbar", + "toprint", + "tr_zer", + "tril", + "triu", + "type", + "typename", + "uiDisplayTree", + "uicontextmenu", + "uicontrol", + "uigetcolor", + "uigetdir", + "uigetfile", + "uigetfont", + "uimenu", + "uint16", + "uint32", + "uint8", + "uipopup", + "uiputfile", + "uiwait", + "ulink", + "umf_ludel", + "umf_lufact", + "umf_luget", + "umf_luinfo", + "umf_lusolve", + "umfpack", + "unglue", + "unix", + "unsetmenu", + "unzoom", + "updatebrowsevar", + "usecanvas", + "useeditor", + "user", + "var2vec", + "varn", + "vec2var", + "waitbar", + "warnBlockByUID", + "warning", + "what", + "where", + "whereis", + "who", + "winsid", + "with_module", + "writb", + "write", + "write4b", + "write_csv", + "x_choose", + "x_choose_modeless", + "x_dialog", + "x_mdialog", + "xarc", + "xarcs", + "xarrows", + "xchange", + "xchoicesi", + "xclick", + "xcos", + "xcosAddToolsMenu", + "xcosConfigureXmlFile", + "xcosDiagramToScilab", + "xcosPalCategoryAdd", + "xcosPalDelete", + "xcosPalDisable", + "xcosPalEnable", + "xcosPalGenerateIcon", + "xcosPalGet", + "xcosPalLoad", + "xcosPalMove", + "xcosSimulationStarted", + "xcosUpdateBlock", + "xdel", + "xend", + "xfarc", + "xfarcs", + "xfpoly", + "xfpolys", + "xfrect", + "xget", + "xgetmouse", + "xgraduate", + "xgrid", + "xinit", + "xlfont", + "xls_open", + "xls_read", + "xmlAddNs", + "xmlAppend", + "xmlAsNumber", + "xmlAsText", + "xmlDTD", + "xmlDelete", + "xmlDocument", + "xmlDump", + "xmlElement", + "xmlFormat", + "xmlGetNsByHref", + "xmlGetNsByPrefix", + "xmlGetOpenDocs", + "xmlIsValidObject", + "xmlName", + "xmlNs", + "xmlRead", + "xmlReadStr", + "xmlRelaxNG", + "xmlRemove", + "xmlSchema", + "xmlSetAttributes", + "xmlValidate", + "xmlWrite", + "xmlXPath", + "xname", + "xpause", + "xpoly", + "xpolys", + "xrect", + "xrects", + "xs2bmp", + "xs2emf", + "xs2eps", + "xs2gif", + "xs2jpg", + "xs2pdf", + "xs2png", + "xs2ppm", + "xs2ps", + "xs2svg", + "xsegs", + "xset", + "xstring", + "xstringb", + "xtitle", + "zeros", + "znaupd", + "zneupd", + "zoom_rect", ) macros_kw = ( - '!_deff_wrapper', - '%0_i_st', - '%3d_i_h', - '%Block_xcosUpdateBlock', - '%TNELDER_p', - '%TNELDER_string', - '%TNMPLOT_p', - '%TNMPLOT_string', - '%TOPTIM_p', - '%TOPTIM_string', - '%TSIMPLEX_p', - '%TSIMPLEX_string', - '%_EVoid_p', - '%_gsort', - '%_listvarinfile', - '%_rlist', - '%_save', - '%_sodload', - '%_strsplit', - '%_unwrap', - '%ar_p', - '%asn', - '%b_a_b', - '%b_a_s', - '%b_c_s', - '%b_c_spb', - '%b_cumprod', - '%b_cumsum', - '%b_d_s', - '%b_diag', - '%b_e', - '%b_f_s', - '%b_f_spb', - '%b_g_s', - '%b_g_spb', - '%b_grand', - '%b_h_s', - '%b_h_spb', - '%b_i_b', - '%b_i_ce', - '%b_i_h', - '%b_i_hm', - '%b_i_s', - '%b_i_sp', - '%b_i_spb', - '%b_i_st', - '%b_iconvert', - '%b_l_b', - '%b_l_s', - '%b_m_b', - '%b_m_s', - '%b_matrix', - '%b_n_hm', - '%b_o_hm', - '%b_p_s', - '%b_prod', - '%b_r_b', - '%b_r_s', - '%b_s_b', - '%b_s_s', - '%b_string', - '%b_sum', - '%b_tril', - '%b_triu', - '%b_x_b', - '%b_x_s', - '%bicg', - '%bicgstab', - '%c_a_c', - '%c_b_c', - '%c_b_s', - '%c_diag', - '%c_dsearch', - '%c_e', - '%c_eye', - '%c_f_s', - '%c_grand', - '%c_i_c', - '%c_i_ce', - '%c_i_h', - '%c_i_hm', - '%c_i_lss', - '%c_i_r', - '%c_i_s', - '%c_i_st', - '%c_matrix', - '%c_n_l', - '%c_n_st', - '%c_o_l', - '%c_o_st', - '%c_ones', - '%c_rand', - '%c_tril', - '%c_triu', - '%cblock_c_cblock', - '%cblock_c_s', - '%cblock_e', - '%cblock_f_cblock', - '%cblock_p', - '%cblock_size', - '%ce_6', - '%ce_c_ce', - '%ce_e', - '%ce_f_ce', - '%ce_i_ce', - '%ce_i_s', - '%ce_i_st', - '%ce_matrix', - '%ce_p', - '%ce_size', - '%ce_string', - '%ce_t', - '%cgs', - '%champdat_i_h', - '%choose', - '%diagram_xcos', - '%dir_p', - '%fptr_i_st', - '%grand_perm', - '%grayplot_i_h', - '%h_i_st', - '%hmS_k_hmS_generic', - '%hm_1_hm', - '%hm_1_s', - '%hm_2_hm', - '%hm_2_s', - '%hm_3_hm', - '%hm_3_s', - '%hm_4_hm', - '%hm_4_s', - '%hm_5', - '%hm_a_hm', - '%hm_a_r', - '%hm_a_s', - '%hm_abs', - '%hm_and', - '%hm_bool2s', - '%hm_c_hm', - '%hm_ceil', - '%hm_conj', - '%hm_cos', - '%hm_cumprod', - '%hm_cumsum', - '%hm_d_hm', - '%hm_d_s', - '%hm_degree', - '%hm_dsearch', - '%hm_e', - '%hm_exp', - '%hm_eye', - '%hm_f_hm', - '%hm_find', - '%hm_floor', - '%hm_g_hm', - '%hm_grand', - '%hm_gsort', - '%hm_h_hm', - '%hm_i_b', - '%hm_i_ce', - '%hm_i_h', - '%hm_i_hm', - '%hm_i_i', - '%hm_i_p', - '%hm_i_r', - '%hm_i_s', - '%hm_i_st', - '%hm_iconvert', - '%hm_imag', - '%hm_int', - '%hm_isnan', - '%hm_isreal', - '%hm_j_hm', - '%hm_j_s', - '%hm_k_hm', - '%hm_k_s', - '%hm_log', - '%hm_m_p', - '%hm_m_r', - '%hm_m_s', - '%hm_matrix', - '%hm_max', - '%hm_mean', - '%hm_median', - '%hm_min', - '%hm_n_b', - '%hm_n_c', - '%hm_n_hm', - '%hm_n_i', - '%hm_n_p', - '%hm_n_s', - '%hm_o_b', - '%hm_o_c', - '%hm_o_hm', - '%hm_o_i', - '%hm_o_p', - '%hm_o_s', - '%hm_ones', - '%hm_or', - '%hm_p', - '%hm_prod', - '%hm_q_hm', - '%hm_r_s', - '%hm_rand', - '%hm_real', - '%hm_round', - '%hm_s', - '%hm_s_hm', - '%hm_s_r', - '%hm_s_s', - '%hm_sign', - '%hm_sin', - '%hm_size', - '%hm_sqrt', - '%hm_stdev', - '%hm_string', - '%hm_sum', - '%hm_x_hm', - '%hm_x_p', - '%hm_x_s', - '%hm_zeros', - '%i_1_s', - '%i_2_s', - '%i_3_s', - '%i_4_s', - '%i_Matplot', - '%i_a_i', - '%i_a_s', - '%i_and', - '%i_ascii', - '%i_b_s', - '%i_bezout', - '%i_champ', - '%i_champ1', - '%i_contour', - '%i_contour2d', - '%i_d_i', - '%i_d_s', - '%i_dsearch', - '%i_e', - '%i_fft', - '%i_g_i', - '%i_gcd', - '%i_grand', - '%i_h_i', - '%i_i_ce', - '%i_i_h', - '%i_i_hm', - '%i_i_i', - '%i_i_s', - '%i_i_st', - '%i_j_i', - '%i_j_s', - '%i_l_s', - '%i_lcm', - '%i_length', - '%i_m_i', - '%i_m_s', - '%i_mfprintf', - '%i_mprintf', - '%i_msprintf', - '%i_n_s', - '%i_o_s', - '%i_or', - '%i_p_i', - '%i_p_s', - '%i_plot2d', - '%i_plot2d1', - '%i_plot2d2', - '%i_q_s', - '%i_r_i', - '%i_r_s', - '%i_round', - '%i_s_i', - '%i_s_s', - '%i_sign', - '%i_string', - '%i_x_i', - '%i_x_s', - '%ip_a_s', - '%ip_i_st', - '%ip_m_s', - '%ip_n_ip', - '%ip_o_ip', - '%ip_p', - '%ip_part', - '%ip_s_s', - '%ip_string', - '%k', - '%l_i_h', - '%l_i_s', - '%l_i_st', - '%l_isequal', - '%l_n_c', - '%l_n_l', - '%l_n_m', - '%l_n_p', - '%l_n_s', - '%l_n_st', - '%l_o_c', - '%l_o_l', - '%l_o_m', - '%l_o_p', - '%l_o_s', - '%l_o_st', - '%lss_a_lss', - '%lss_a_p', - '%lss_a_r', - '%lss_a_s', - '%lss_c_lss', - '%lss_c_p', - '%lss_c_r', - '%lss_c_s', - '%lss_e', - '%lss_eye', - '%lss_f_lss', - '%lss_f_p', - '%lss_f_r', - '%lss_f_s', - '%lss_i_ce', - '%lss_i_lss', - '%lss_i_p', - '%lss_i_r', - '%lss_i_s', - '%lss_i_st', - '%lss_inv', - '%lss_l_lss', - '%lss_l_p', - '%lss_l_r', - '%lss_l_s', - '%lss_m_lss', - '%lss_m_p', - '%lss_m_r', - '%lss_m_s', - '%lss_n_lss', - '%lss_n_p', - '%lss_n_r', - '%lss_n_s', - '%lss_norm', - '%lss_o_lss', - '%lss_o_p', - '%lss_o_r', - '%lss_o_s', - '%lss_ones', - '%lss_r_lss', - '%lss_r_p', - '%lss_r_r', - '%lss_r_s', - '%lss_rand', - '%lss_s', - '%lss_s_lss', - '%lss_s_p', - '%lss_s_r', - '%lss_s_s', - '%lss_size', - '%lss_t', - '%lss_v_lss', - '%lss_v_p', - '%lss_v_r', - '%lss_v_s', - '%lt_i_s', - '%m_n_l', - '%m_o_l', - '%mc_i_h', - '%mc_i_s', - '%mc_i_st', - '%mc_n_st', - '%mc_o_st', - '%mc_string', - '%mps_p', - '%mps_string', - '%msp_a_s', - '%msp_abs', - '%msp_e', - '%msp_find', - '%msp_i_s', - '%msp_i_st', - '%msp_length', - '%msp_m_s', - '%msp_maxi', - '%msp_n_msp', - '%msp_nnz', - '%msp_o_msp', - '%msp_p', - '%msp_sparse', - '%msp_spones', - '%msp_t', - '%p_a_lss', - '%p_a_r', - '%p_c_lss', - '%p_c_r', - '%p_cumprod', - '%p_cumsum', - '%p_d_p', - '%p_d_r', - '%p_d_s', - '%p_det', - '%p_e', - '%p_f_lss', - '%p_f_r', - '%p_grand', - '%p_i_ce', - '%p_i_h', - '%p_i_hm', - '%p_i_lss', - '%p_i_p', - '%p_i_r', - '%p_i_s', - '%p_i_st', - '%p_inv', - '%p_j_s', - '%p_k_p', - '%p_k_r', - '%p_k_s', - '%p_l_lss', - '%p_l_p', - '%p_l_r', - '%p_l_s', - '%p_m_hm', - '%p_m_lss', - '%p_m_r', - '%p_matrix', - '%p_n_l', - '%p_n_lss', - '%p_n_r', - '%p_o_l', - '%p_o_lss', - '%p_o_r', - '%p_o_sp', - '%p_p_s', - '%p_part', - '%p_prod', - '%p_q_p', - '%p_q_r', - '%p_q_s', - '%p_r_lss', - '%p_r_p', - '%p_r_r', - '%p_r_s', - '%p_s_lss', - '%p_s_r', - '%p_simp', - '%p_string', - '%p_sum', - '%p_v_lss', - '%p_v_p', - '%p_v_r', - '%p_v_s', - '%p_x_hm', - '%p_x_r', - '%p_y_p', - '%p_y_r', - '%p_y_s', - '%p_z_p', - '%p_z_r', - '%p_z_s', - '%pcg', - '%plist_p', - '%plist_string', - '%r_0', - '%r_a_hm', - '%r_a_lss', - '%r_a_p', - '%r_a_r', - '%r_a_s', - '%r_c_lss', - '%r_c_p', - '%r_c_r', - '%r_c_s', - '%r_clean', - '%r_cumprod', - '%r_cumsum', - '%r_d_p', - '%r_d_r', - '%r_d_s', - '%r_det', - '%r_diag', - '%r_e', - '%r_eye', - '%r_f_lss', - '%r_f_p', - '%r_f_r', - '%r_f_s', - '%r_i_ce', - '%r_i_hm', - '%r_i_lss', - '%r_i_p', - '%r_i_r', - '%r_i_s', - '%r_i_st', - '%r_inv', - '%r_j_s', - '%r_k_p', - '%r_k_r', - '%r_k_s', - '%r_l_lss', - '%r_l_p', - '%r_l_r', - '%r_l_s', - '%r_m_hm', - '%r_m_lss', - '%r_m_p', - '%r_m_r', - '%r_m_s', - '%r_matrix', - '%r_n_lss', - '%r_n_p', - '%r_n_r', - '%r_n_s', - '%r_norm', - '%r_o_lss', - '%r_o_p', - '%r_o_r', - '%r_o_s', - '%r_ones', - '%r_p', - '%r_p_s', - '%r_prod', - '%r_q_p', - '%r_q_r', - '%r_q_s', - '%r_r_lss', - '%r_r_p', - '%r_r_r', - '%r_r_s', - '%r_rand', - '%r_s', - '%r_s_hm', - '%r_s_lss', - '%r_s_p', - '%r_s_r', - '%r_s_s', - '%r_simp', - '%r_size', - '%r_string', - '%r_sum', - '%r_t', - '%r_tril', - '%r_triu', - '%r_v_lss', - '%r_v_p', - '%r_v_r', - '%r_v_s', - '%r_varn', - '%r_x_p', - '%r_x_r', - '%r_x_s', - '%r_y_p', - '%r_y_r', - '%r_y_s', - '%r_z_p', - '%r_z_r', - '%r_z_s', - '%s_1_hm', - '%s_1_i', - '%s_2_hm', - '%s_2_i', - '%s_3_hm', - '%s_3_i', - '%s_4_hm', - '%s_4_i', - '%s_5', - '%s_a_b', - '%s_a_hm', - '%s_a_i', - '%s_a_ip', - '%s_a_lss', - '%s_a_msp', - '%s_a_r', - '%s_a_sp', - '%s_and', - '%s_b_i', - '%s_b_s', - '%s_bezout', - '%s_c_b', - '%s_c_cblock', - '%s_c_lss', - '%s_c_r', - '%s_c_sp', - '%s_d_b', - '%s_d_i', - '%s_d_p', - '%s_d_r', - '%s_d_sp', - '%s_e', - '%s_f_b', - '%s_f_cblock', - '%s_f_lss', - '%s_f_r', - '%s_f_sp', - '%s_g_b', - '%s_g_s', - '%s_gcd', - '%s_grand', - '%s_h_b', - '%s_h_s', - '%s_i_b', - '%s_i_c', - '%s_i_ce', - '%s_i_h', - '%s_i_hm', - '%s_i_i', - '%s_i_lss', - '%s_i_p', - '%s_i_r', - '%s_i_s', - '%s_i_sp', - '%s_i_spb', - '%s_i_st', - '%s_j_i', - '%s_k_hm', - '%s_k_p', - '%s_k_r', - '%s_k_sp', - '%s_l_b', - '%s_l_hm', - '%s_l_i', - '%s_l_lss', - '%s_l_p', - '%s_l_r', - '%s_l_s', - '%s_l_sp', - '%s_lcm', - '%s_m_b', - '%s_m_hm', - '%s_m_i', - '%s_m_ip', - '%s_m_lss', - '%s_m_msp', - '%s_m_r', - '%s_matrix', - '%s_n_hm', - '%s_n_i', - '%s_n_l', - '%s_n_lss', - '%s_n_r', - '%s_n_st', - '%s_o_hm', - '%s_o_i', - '%s_o_l', - '%s_o_lss', - '%s_o_r', - '%s_o_st', - '%s_or', - '%s_p_b', - '%s_p_i', - '%s_pow', - '%s_q_hm', - '%s_q_i', - '%s_q_p', - '%s_q_r', - '%s_q_sp', - '%s_r_b', - '%s_r_i', - '%s_r_lss', - '%s_r_p', - '%s_r_r', - '%s_r_s', - '%s_r_sp', - '%s_s_b', - '%s_s_hm', - '%s_s_i', - '%s_s_ip', - '%s_s_lss', - '%s_s_r', - '%s_s_sp', - '%s_simp', - '%s_v_lss', - '%s_v_p', - '%s_v_r', - '%s_v_s', - '%s_x_b', - '%s_x_hm', - '%s_x_i', - '%s_x_r', - '%s_y_p', - '%s_y_r', - '%s_y_sp', - '%s_z_p', - '%s_z_r', - '%s_z_sp', - '%sn', - '%sp_a_s', - '%sp_a_sp', - '%sp_and', - '%sp_c_s', - '%sp_ceil', - '%sp_conj', - '%sp_cos', - '%sp_cumprod', - '%sp_cumsum', - '%sp_d_s', - '%sp_d_sp', - '%sp_det', - '%sp_diag', - '%sp_e', - '%sp_exp', - '%sp_f_s', - '%sp_floor', - '%sp_grand', - '%sp_gsort', - '%sp_i_ce', - '%sp_i_h', - '%sp_i_s', - '%sp_i_sp', - '%sp_i_st', - '%sp_int', - '%sp_inv', - '%sp_k_s', - '%sp_k_sp', - '%sp_l_s', - '%sp_l_sp', - '%sp_length', - '%sp_max', - '%sp_min', - '%sp_norm', - '%sp_or', - '%sp_p_s', - '%sp_prod', - '%sp_q_s', - '%sp_q_sp', - '%sp_r_s', - '%sp_r_sp', - '%sp_round', - '%sp_s_s', - '%sp_s_sp', - '%sp_sin', - '%sp_sqrt', - '%sp_string', - '%sp_sum', - '%sp_tril', - '%sp_triu', - '%sp_y_s', - '%sp_y_sp', - '%sp_z_s', - '%sp_z_sp', - '%spb_and', - '%spb_c_b', - '%spb_cumprod', - '%spb_cumsum', - '%spb_diag', - '%spb_e', - '%spb_f_b', - '%spb_g_b', - '%spb_g_spb', - '%spb_h_b', - '%spb_h_spb', - '%spb_i_b', - '%spb_i_ce', - '%spb_i_h', - '%spb_i_st', - '%spb_or', - '%spb_prod', - '%spb_sum', - '%spb_tril', - '%spb_triu', - '%st_6', - '%st_c_st', - '%st_e', - '%st_f_st', - '%st_i_b', - '%st_i_c', - '%st_i_fptr', - '%st_i_h', - '%st_i_i', - '%st_i_ip', - '%st_i_lss', - '%st_i_msp', - '%st_i_p', - '%st_i_r', - '%st_i_s', - '%st_i_sp', - '%st_i_spb', - '%st_i_st', - '%st_matrix', - '%st_n_c', - '%st_n_l', - '%st_n_mc', - '%st_n_p', - '%st_n_s', - '%st_o_c', - '%st_o_l', - '%st_o_mc', - '%st_o_p', - '%st_o_s', - '%st_o_tl', - '%st_p', - '%st_size', - '%st_string', - '%st_t', - '%ticks_i_h', - '%xls_e', - '%xls_p', - '%xlssheet_e', - '%xlssheet_p', - '%xlssheet_size', - '%xlssheet_string', - 'DominationRank', - 'G_make', - 'IsAScalar', - 'NDcost', - 'OS_Version', - 'PlotSparse', - 'ReadHBSparse', - 'TCL_CreateSlave', - 'abcd', - 'abinv', - 'accept_func_default', - 'accept_func_vfsa', - 'acf', - 'acosd', - 'acosh', - 'acoshm', - 'acosm', - 'acot', - 'acotd', - 'acoth', - 'acsc', - 'acscd', - 'acsch', - 'add_demo', - 'add_help_chapter', - 'add_module_help_chapter', - 'add_param', - 'add_profiling', - 'adj2sp', - 'aff2ab', - 'ana_style', - 'analpf', - 'analyze', - 'aplat', - 'arhnk', - 'arl2', - 'arma2p', - 'arma2ss', - 'armac', - 'armax', - 'armax1', - 'arobasestring2strings', - 'arsimul', - 'ascii2string', - 'asciimat', - 'asec', - 'asecd', - 'asech', - 'asind', - 'asinh', - 'asinhm', - 'asinm', - 'assert_checkalmostequal', - 'assert_checkequal', - 'assert_checkerror', - 'assert_checkfalse', - 'assert_checkfilesequal', - 'assert_checktrue', - 'assert_comparecomplex', - 'assert_computedigits', - 'assert_cond2reltol', - 'assert_cond2reqdigits', - 'assert_generror', - 'atand', - 'atanh', - 'atanhm', - 'atanm', - 'atomsAutoload', - 'atomsAutoloadAdd', - 'atomsAutoloadDel', - 'atomsAutoloadList', - 'atomsCategoryList', - 'atomsCheckModule', - 'atomsDepTreeShow', - 'atomsGetConfig', - 'atomsGetInstalled', - 'atomsGetInstalledPath', - 'atomsGetLoaded', - 'atomsGetLoadedPath', - 'atomsInstall', - 'atomsIsInstalled', - 'atomsIsLoaded', - 'atomsList', - 'atomsLoad', - 'atomsQuit', - 'atomsRemove', - 'atomsRepositoryAdd', - 'atomsRepositoryDel', - 'atomsRepositoryList', - 'atomsRestoreConfig', - 'atomsSaveConfig', - 'atomsSearch', - 'atomsSetConfig', - 'atomsShow', - 'atomsSystemInit', - 'atomsSystemUpdate', - 'atomsTest', - 'atomsUpdate', - 'atomsVersion', - 'augment', - 'auread', - 'auwrite', - 'balreal', - 'bench_run', - 'bilin', - 'bilt', - 'bin2dec', - 'binomial', - 'bitand', - 'bitcmp', - 'bitget', - 'bitor', - 'bitset', - 'bitxor', - 'black', - 'blanks', - 'bloc2exp', - 'bloc2ss', - 'block_parameter_error', - 'bode', - 'bode_asymp', - 'bstap', - 'buttmag', - 'bvodeS', - 'bytecode', - 'bytecodewalk', - 'cainv', - 'calendar', - 'calerf', - 'calfrq', - 'canon', - 'casc', - 'cat', - 'cat_code', - 'cb_m2sci_gui', - 'ccontrg', - 'cell', - 'cell2mat', - 'cellstr', - 'center', - 'cepstrum', - 'cfspec', - 'char', - 'chart', - 'cheb1mag', - 'cheb2mag', - 'check_gateways', - 'check_modules_xml', - 'check_versions', - 'chepol', - 'chfact', - 'chsolve', - 'classmarkov', - 'clean_help', - 'clock', - 'cls2dls', - 'cmb_lin', - 'cmndred', - 'cmoment', - 'coding_ga_binary', - 'coding_ga_identity', - 'coff', - 'coffg', - 'colcomp', - 'colcompr', - 'colinout', - 'colregul', - 'companion', - 'complex', - 'compute_initial_temp', - 'cond', - 'cond2sp', - 'condestsp', - 'configure_msifort', - 'configure_msvc', - 'conjgrad', - 'cont_frm', - 'cont_mat', - 'contrss', - 'conv', - 'convert_to_float', - 'convertindex', - 'convol', - 'convol2d', - 'copfac', - 'correl', - 'cosd', - 'cosh', - 'coshm', - 'cosm', - 'cotd', - 'cotg', - 'coth', - 'cothm', - 'cov', - 'covar', - 'createXConfiguration', - 'createfun', - 'createstruct', - 'cross', - 'crossover_ga_binary', - 'crossover_ga_default', - 'csc', - 'cscd', - 'csch', - 'csgn', - 'csim', - 'cspect', - 'ctr_gram', - 'czt', - 'dae', - 'daeoptions', - 'damp', - 'datafit', - 'date', - 'datenum', - 'datevec', - 'dbphi', - 'dcf', - 'ddp', - 'dec2bin', - 'dec2hex', - 'dec2oct', - 'del_help_chapter', - 'del_module_help_chapter', - 'demo_begin', - 'demo_choose', - 'demo_compiler', - 'demo_end', - 'demo_file_choice', - 'demo_folder_choice', - 'demo_function_choice', - 'demo_gui', - 'demo_run', - 'demo_viewCode', - 'denom', - 'derivat', - 'derivative', - 'des2ss', - 'des2tf', - 'detectmsifort64tools', - 'detectmsvc64tools', - 'determ', - 'detr', - 'detrend', - 'devtools_run_builder', - 'dhnorm', - 'diff', - 'diophant', - 'dir', - 'dirname', - 'dispfiles', - 'dllinfo', - 'dscr', - 'dsimul', - 'dt_ility', - 'dtsi', - 'edit', - 'edit_error', - 'editor', - 'eigenmarkov', - 'eigs', - 'ell1mag', - 'enlarge_shape', - 'entropy', - 'eomday', - 'epred', - 'eqfir', - 'eqiir', - 'equil', - 'equil1', - 'erfinv', - 'etime', - 'eval', - 'evans', - 'evstr', - 'example_run', - 'expression2code', - 'extract_help_examples', - 'factor', - 'factorial', - 'factors', - 'faurre', - 'ffilt', - 'fft2', - 'fftshift', - 'fieldnames', - 'filt_sinc', - 'filter', - 'findABCD', - 'findAC', - 'findBDK', - 'findR', - 'find_freq', - 'find_links', - 'find_scicos_version', - 'findm', - 'findmsifortcompiler', - 'findmsvccompiler', - 'findx0BD', - 'firstnonsingleton', - 'fix', - 'fixedpointgcd', - 'flipdim', - 'flts', - 'fminsearch', - 'formatBlackTip', - 'formatBodeMagTip', - 'formatBodePhaseTip', - 'formatGainplotTip', - 'formatHallModuleTip', - 'formatHallPhaseTip', - 'formatNicholsGainTip', - 'formatNicholsPhaseTip', - 'formatNyquistTip', - 'formatPhaseplotTip', - 'formatSgridDampingTip', - 'formatSgridFreqTip', - 'formatZgridDampingTip', - 'formatZgridFreqTip', - 'format_txt', - 'fourplan', - 'frep2tf', - 'freson', - 'frfit', - 'frmag', - 'fseek_origin', - 'fsfirlin', - 'fspec', - 'fspecg', - 'fstabst', - 'ftest', - 'ftuneq', - 'fullfile', - 'fullrf', - 'fullrfk', - 'fun2string', - 'g_margin', - 'gainplot', - 'gamitg', - 'gcare', - 'gcd', - 'gencompilationflags_unix', - 'generateBlockImage', - 'generateBlockImages', - 'generic_i_ce', - 'generic_i_h', - 'generic_i_hm', - 'generic_i_s', - 'generic_i_st', - 'genlib', - 'genmarkov', - 'geomean', - 'getDiagramVersion', - 'getModelicaPath', - 'getPreferencesValue', - 'get_file_path', - 'get_function_path', - 'get_param', - 'get_profile', - 'get_scicos_version', - 'getd', - 'getscilabkeywords', - 'getshell', - 'gettklib', - 'gfare', - 'gfrancis', - 'givens', - 'glever', - 'gmres', - 'group', - 'gschur', - 'gspec', - 'gtild', - 'h2norm', - 'h_cl', - 'h_inf', - 'h_inf_st', - 'h_norm', - 'hallchart', - 'halt', - 'hank', - 'hankelsv', - 'harmean', - 'haveacompiler', - 'head_comments', - 'help_from_sci', - 'help_skeleton', - 'hermit', - 'hex2dec', - 'hilb', - 'hilbert', - 'histc', - 'horner', - 'householder', - 'hrmt', - 'htrianr', - 'hypermat', - 'idct', - 'idst', - 'ifft', - 'ifftshift', - 'iir', - 'iirgroup', - 'iirlp', - 'iirmod', - 'ilib_build', - 'ilib_build_jar', - 'ilib_compile', - 'ilib_for_link', - 'ilib_gen_Make', - 'ilib_gen_Make_unix', - 'ilib_gen_cleaner', - 'ilib_gen_gateway', - 'ilib_gen_loader', - 'ilib_include_flag', - 'ilib_mex_build', - 'im_inv', - 'importScicosDiagram', - 'importScicosPal', - 'importXcosDiagram', - 'imrep2ss', - 'ind2sub', - 'inistate', - 'init_ga_default', - 'init_param', - 'initial_scicos_tables', - 'input', - 'instruction2code', - 'intc', - 'intdec', - 'integrate', - 'interp1', - 'interpln', - 'intersect', - 'intl', - 'intsplin', - 'inttrap', - 'inv_coeff', - 'invr', - 'invrs', - 'invsyslin', - 'iqr', - 'isLeapYear', - 'is_absolute_path', - 'is_param', - 'iscell', - 'iscellstr', - 'iscolumn', - 'isempty', - 'isfield', - 'isinf', - 'ismatrix', - 'isnan', - 'isrow', - 'isscalar', - 'issparse', - 'issquare', - 'isstruct', - 'isvector', - 'jmat', - 'justify', - 'kalm', - 'karmarkar', - 'kernel', - 'kpure', - 'krac2', - 'kroneck', - 'lattn', - 'lattp', - 'launchtest', - 'lcf', - 'lcm', - 'lcmdiag', - 'leastsq', - 'leqe', - 'leqr', - 'lev', - 'levin', - 'lex_sort', - 'lft', - 'lin', - 'lin2mu', - 'lincos', - 'lindquist', - 'linf', - 'linfn', - 'linsolve', - 'linspace', - 'list2vec', - 'list_param', - 'listfiles', - 'listfunctions', - 'listvarinfile', - 'lmisolver', - 'lmitool', - 'loadXcosLibs', - 'loadmatfile', - 'loadwave', - 'log10', - 'log2', - 'logm', - 'logspace', - 'lqe', - 'lqg', - 'lqg2stan', - 'lqg_ltr', - 'lqr', - 'ls', - 'lyap', - 'm2sci_gui', - 'm_circle', - 'macglov', - 'macrovar', - 'mad', - 'makecell', - 'manedit', - 'mapsound', - 'markp2ss', - 'matfile2sci', - 'mdelete', - 'mean', - 'meanf', - 'median', - 'members', - 'mese', - 'meshgrid', - 'mfft', - 'mfile2sci', - 'minreal', - 'minss', - 'mkdir', - 'modulo', - 'moment', - 'mrfit', - 'msd', - 'mstr2sci', - 'mtlb', - 'mtlb_0', - 'mtlb_a', - 'mtlb_all', - 'mtlb_any', - 'mtlb_axes', - 'mtlb_axis', - 'mtlb_beta', - 'mtlb_box', - 'mtlb_choices', - 'mtlb_close', - 'mtlb_colordef', - 'mtlb_cond', - 'mtlb_cov', - 'mtlb_cumprod', - 'mtlb_cumsum', - 'mtlb_dec2hex', - 'mtlb_delete', - 'mtlb_diag', - 'mtlb_diff', - 'mtlb_dir', - 'mtlb_double', - 'mtlb_e', - 'mtlb_echo', - 'mtlb_error', - 'mtlb_eval', - 'mtlb_exist', - 'mtlb_eye', - 'mtlb_false', - 'mtlb_fft', - 'mtlb_fftshift', - 'mtlb_filter', - 'mtlb_find', - 'mtlb_findstr', - 'mtlb_fliplr', - 'mtlb_fopen', - 'mtlb_format', - 'mtlb_fprintf', - 'mtlb_fread', - 'mtlb_fscanf', - 'mtlb_full', - 'mtlb_fwrite', - 'mtlb_get', - 'mtlb_grid', - 'mtlb_hold', - 'mtlb_i', - 'mtlb_ifft', - 'mtlb_image', - 'mtlb_imp', - 'mtlb_int16', - 'mtlb_int32', - 'mtlb_int8', - 'mtlb_is', - 'mtlb_isa', - 'mtlb_isfield', - 'mtlb_isletter', - 'mtlb_isspace', - 'mtlb_l', - 'mtlb_legendre', - 'mtlb_linspace', - 'mtlb_logic', - 'mtlb_logical', - 'mtlb_loglog', - 'mtlb_lower', - 'mtlb_max', - 'mtlb_mean', - 'mtlb_median', - 'mtlb_mesh', - 'mtlb_meshdom', - 'mtlb_min', - 'mtlb_more', - 'mtlb_num2str', - 'mtlb_ones', - 'mtlb_pcolor', - 'mtlb_plot', - 'mtlb_prod', - 'mtlb_qr', - 'mtlb_qz', - 'mtlb_rand', - 'mtlb_randn', - 'mtlb_rcond', - 'mtlb_realmax', - 'mtlb_realmin', - 'mtlb_s', - 'mtlb_semilogx', - 'mtlb_semilogy', - 'mtlb_setstr', - 'mtlb_size', - 'mtlb_sort', - 'mtlb_sortrows', - 'mtlb_sprintf', - 'mtlb_sscanf', - 'mtlb_std', - 'mtlb_strcmp', - 'mtlb_strcmpi', - 'mtlb_strfind', - 'mtlb_strrep', - 'mtlb_subplot', - 'mtlb_sum', - 'mtlb_t', - 'mtlb_toeplitz', - 'mtlb_tril', - 'mtlb_triu', - 'mtlb_true', - 'mtlb_type', - 'mtlb_uint16', - 'mtlb_uint32', - 'mtlb_uint8', - 'mtlb_upper', - 'mtlb_var', - 'mtlb_zeros', - 'mu2lin', - 'mutation_ga_binary', - 'mutation_ga_default', - 'mvcorrel', - 'mvvacov', - 'nancumsum', - 'nand2mean', - 'nanmax', - 'nanmean', - 'nanmeanf', - 'nanmedian', - 'nanmin', - 'nanreglin', - 'nanstdev', - 'nansum', - 'narsimul', - 'ndgrid', - 'ndims', - 'nehari', - 'neigh_func_csa', - 'neigh_func_default', - 'neigh_func_fsa', - 'neigh_func_vfsa', - 'neldermead_cget', - 'neldermead_configure', - 'neldermead_costf', - 'neldermead_defaultoutput', - 'neldermead_destroy', - 'neldermead_function', - 'neldermead_get', - 'neldermead_log', - 'neldermead_new', - 'neldermead_restart', - 'neldermead_search', - 'neldermead_updatesimp', - 'nextpow2', - 'nfreq', - 'nicholschart', - 'nlev', - 'nmplot_cget', - 'nmplot_configure', - 'nmplot_contour', - 'nmplot_destroy', - 'nmplot_function', - 'nmplot_get', - 'nmplot_historyplot', - 'nmplot_log', - 'nmplot_new', - 'nmplot_outputcmd', - 'nmplot_restart', - 'nmplot_search', - 'nmplot_simplexhistory', - 'noisegen', - 'nonreg_test_run', - 'now', - 'nthroot', - 'null', - 'num2cell', - 'numderivative', - 'numdiff', - 'numer', - 'nyquist', - 'nyquistfrequencybounds', - 'obs_gram', - 'obscont', - 'observer', - 'obsv_mat', - 'obsvss', - 'oct2dec', - 'odeoptions', - 'optim_ga', - 'optim_moga', - 'optim_nsga', - 'optim_nsga2', - 'optim_sa', - 'optimbase_cget', - 'optimbase_checkbounds', - 'optimbase_checkcostfun', - 'optimbase_checkx0', - 'optimbase_configure', - 'optimbase_destroy', - 'optimbase_function', - 'optimbase_get', - 'optimbase_hasbounds', - 'optimbase_hasconstraints', - 'optimbase_hasnlcons', - 'optimbase_histget', - 'optimbase_histset', - 'optimbase_incriter', - 'optimbase_isfeasible', - 'optimbase_isinbounds', - 'optimbase_isinnonlincons', - 'optimbase_log', - 'optimbase_logshutdown', - 'optimbase_logstartup', - 'optimbase_new', - 'optimbase_outputcmd', - 'optimbase_outstruct', - 'optimbase_proj2bnds', - 'optimbase_set', - 'optimbase_stoplog', - 'optimbase_terminate', - 'optimget', - 'optimplotfunccount', - 'optimplotfval', - 'optimplotx', - 'optimset', - 'optimsimplex_center', - 'optimsimplex_check', - 'optimsimplex_compsomefv', - 'optimsimplex_computefv', - 'optimsimplex_deltafv', - 'optimsimplex_deltafvmax', - 'optimsimplex_destroy', - 'optimsimplex_dirmat', - 'optimsimplex_fvmean', - 'optimsimplex_fvstdev', - 'optimsimplex_fvvariance', - 'optimsimplex_getall', - 'optimsimplex_getallfv', - 'optimsimplex_getallx', - 'optimsimplex_getfv', - 'optimsimplex_getn', - 'optimsimplex_getnbve', - 'optimsimplex_getve', - 'optimsimplex_getx', - 'optimsimplex_gradientfv', - 'optimsimplex_log', - 'optimsimplex_new', - 'optimsimplex_reflect', - 'optimsimplex_setall', - 'optimsimplex_setallfv', - 'optimsimplex_setallx', - 'optimsimplex_setfv', - 'optimsimplex_setn', - 'optimsimplex_setnbve', - 'optimsimplex_setve', - 'optimsimplex_setx', - 'optimsimplex_shrink', - 'optimsimplex_size', - 'optimsimplex_sort', - 'optimsimplex_xbar', - 'orth', - 'output_ga_default', - 'output_moga_default', - 'output_nsga2_default', - 'output_nsga_default', - 'p_margin', - 'pack', - 'pareto_filter', - 'parrot', - 'pbig', - 'pca', - 'pcg', - 'pdiv', - 'pen2ea', - 'pencan', - 'pencost', - 'penlaur', - 'perctl', - 'perl', - 'perms', - 'permute', - 'pertrans', - 'pfactors', - 'pfss', - 'phasemag', - 'phaseplot', - 'phc', - 'pinv', - 'playsnd', - 'plotprofile', - 'plzr', - 'pmodulo', - 'pol2des', - 'pol2str', - 'polar', - 'polfact', - 'prbs_a', - 'prettyprint', - 'primes', - 'princomp', - 'profile', - 'proj', - 'projsl', - 'projspec', - 'psmall', - 'pspect', - 'qmr', - 'qpsolve', - 'quart', - 'quaskro', - 'rafiter', - 'randpencil', - 'range', - 'rank', - 'readxls', - 'recompilefunction', - 'recons', - 'reglin', - 'regress', - 'remezb', - 'remove_param', - 'remove_profiling', - 'repfreq', - 'replace_Ix_by_Fx', - 'repmat', - 'reset_profiling', - 'resize_matrix', - 'returntoscilab', - 'rhs2code', - 'ric_desc', - 'riccati', - 'rmdir', - 'routh_t', - 'rowcomp', - 'rowcompr', - 'rowinout', - 'rowregul', - 'rowshuff', - 'rref', - 'sample', - 'samplef', - 'samwr', - 'savematfile', - 'savewave', - 'scanf', - 'sci2exp', - 'sciGUI_init', - 'sci_sparse', - 'scicos_getvalue', - 'scicos_simulate', - 'scicos_workspace_init', - 'scisptdemo', - 'scitest', - 'sdiff', - 'sec', - 'secd', - 'sech', - 'selection_ga_elitist', - 'selection_ga_random', - 'sensi', - 'setPreferencesValue', - 'set_param', - 'setdiff', - 'sgrid', - 'show_margins', - 'show_pca', - 'showprofile', - 'signm', - 'sinc', - 'sincd', - 'sind', - 'sinh', - 'sinhm', - 'sinm', - 'sm2des', - 'sm2ss', - 'smga', - 'smooth', - 'solve', - 'sound', - 'soundsec', - 'sp2adj', - 'spaninter', - 'spanplus', - 'spantwo', - 'specfact', - 'speye', - 'sprand', - 'spzeros', - 'sqroot', - 'sqrtm', - 'squarewave', - 'squeeze', - 'srfaur', - 'srkf', - 'ss2des', - 'ss2ss', - 'ss2tf', - 'sskf', - 'ssprint', - 'ssrand', - 'st_deviation', - 'st_i_generic', - 'st_ility', - 'stabil', - 'statgain', - 'stdev', - 'stdevf', - 'steadycos', - 'strange', - 'strcmpi', - 'struct', - 'sub2ind', - 'sva', - 'svplot', - 'sylm', - 'sylv', - 'sysconv', - 'sysdiag', - 'sysfact', - 'syslin', - 'syssize', - 'system', - 'systmat', - 'tabul', - 'tand', - 'tanh', - 'tanhm', - 'tanm', - 'tbx_build_blocks', - 'tbx_build_cleaner', - 'tbx_build_gateway', - 'tbx_build_gateway_clean', - 'tbx_build_gateway_loader', - 'tbx_build_help', - 'tbx_build_help_loader', - 'tbx_build_loader', - 'tbx_build_localization', - 'tbx_build_macros', - 'tbx_build_pal_loader', - 'tbx_build_src', - 'tbx_builder', - 'tbx_builder_gateway', - 'tbx_builder_gateway_lang', - 'tbx_builder_help', - 'tbx_builder_help_lang', - 'tbx_builder_macros', - 'tbx_builder_src', - 'tbx_builder_src_lang', - 'tbx_generate_pofile', - 'temp_law_csa', - 'temp_law_default', - 'temp_law_fsa', - 'temp_law_huang', - 'temp_law_vfsa', - 'test_clean', - 'test_on_columns', - 'test_run', - 'test_run_level', - 'testexamples', - 'tf2des', - 'tf2ss', - 'thrownan', - 'tic', - 'time_id', - 'toc', - 'toeplitz', - 'tokenpos', - 'toolboxes', - 'trace', - 'trans', - 'translatepaths', - 'tree2code', - 'trfmod', - 'trianfml', - 'trimmean', - 'trisolve', - 'trzeros', - 'typeof', - 'ui_observer', - 'union', - 'unique', - 'unit_test_run', - 'unix_g', - 'unix_s', - 'unix_w', - 'unix_x', - 'unobs', - 'unpack', - 'unwrap', - 'variance', - 'variancef', - 'vec2list', - 'vectorfind', - 'ver', - 'warnobsolete', - 'wavread', - 'wavwrite', - 'wcenter', - 'weekday', - 'wfir', - 'wfir_gui', - 'whereami', - 'who_user', - 'whos', - 'wiener', - 'wigner', - 'window', - 'winlist', - 'with_javasci', - 'with_macros_source', - 'with_modelica_compiler', - 'with_tk', - 'xcorr', - 'xcosBlockEval', - 'xcosBlockInterface', - 'xcosCodeGeneration', - 'xcosConfigureModelica', - 'xcosPal', - 'xcosPalAdd', - 'xcosPalAddBlock', - 'xcosPalExport', - 'xcosPalGenerateAllIcons', - 'xcosShowBlockWarning', - 'xcosValidateBlockSet', - 'xcosValidateCompareBlock', - 'xcos_compile', - 'xcos_debug_gui', - 'xcos_run', - 'xcos_simulate', - 'xcov', - 'xmltochm', - 'xmltoformat', - 'xmltohtml', - 'xmltojar', - 'xmltopdf', - 'xmltops', - 'xmltoweb', - 'yulewalk', - 'zeropen', - 'zgrid', - 'zpbutt', - 'zpch1', - 'zpch2', - 'zpell', + "!_deff_wrapper", + "%0_i_st", + "%3d_i_h", + "%Block_xcosUpdateBlock", + "%TNELDER_p", + "%TNELDER_string", + "%TNMPLOT_p", + "%TNMPLOT_string", + "%TOPTIM_p", + "%TOPTIM_string", + "%TSIMPLEX_p", + "%TSIMPLEX_string", + "%_EVoid_p", + "%_gsort", + "%_listvarinfile", + "%_rlist", + "%_save", + "%_sodload", + "%_strsplit", + "%_unwrap", + "%ar_p", + "%asn", + "%b_a_b", + "%b_a_s", + "%b_c_s", + "%b_c_spb", + "%b_cumprod", + "%b_cumsum", + "%b_d_s", + "%b_diag", + "%b_e", + "%b_f_s", + "%b_f_spb", + "%b_g_s", + "%b_g_spb", + "%b_grand", + "%b_h_s", + "%b_h_spb", + "%b_i_b", + "%b_i_ce", + "%b_i_h", + "%b_i_hm", + "%b_i_s", + "%b_i_sp", + "%b_i_spb", + "%b_i_st", + "%b_iconvert", + "%b_l_b", + "%b_l_s", + "%b_m_b", + "%b_m_s", + "%b_matrix", + "%b_n_hm", + "%b_o_hm", + "%b_p_s", + "%b_prod", + "%b_r_b", + "%b_r_s", + "%b_s_b", + "%b_s_s", + "%b_string", + "%b_sum", + "%b_tril", + "%b_triu", + "%b_x_b", + "%b_x_s", + "%bicg", + "%bicgstab", + "%c_a_c", + "%c_b_c", + "%c_b_s", + "%c_diag", + "%c_dsearch", + "%c_e", + "%c_eye", + "%c_f_s", + "%c_grand", + "%c_i_c", + "%c_i_ce", + "%c_i_h", + "%c_i_hm", + "%c_i_lss", + "%c_i_r", + "%c_i_s", + "%c_i_st", + "%c_matrix", + "%c_n_l", + "%c_n_st", + "%c_o_l", + "%c_o_st", + "%c_ones", + "%c_rand", + "%c_tril", + "%c_triu", + "%cblock_c_cblock", + "%cblock_c_s", + "%cblock_e", + "%cblock_f_cblock", + "%cblock_p", + "%cblock_size", + "%ce_6", + "%ce_c_ce", + "%ce_e", + "%ce_f_ce", + "%ce_i_ce", + "%ce_i_s", + "%ce_i_st", + "%ce_matrix", + "%ce_p", + "%ce_size", + "%ce_string", + "%ce_t", + "%cgs", + "%champdat_i_h", + "%choose", + "%diagram_xcos", + "%dir_p", + "%fptr_i_st", + "%grand_perm", + "%grayplot_i_h", + "%h_i_st", + "%hmS_k_hmS_generic", + "%hm_1_hm", + "%hm_1_s", + "%hm_2_hm", + "%hm_2_s", + "%hm_3_hm", + "%hm_3_s", + "%hm_4_hm", + "%hm_4_s", + "%hm_5", + "%hm_a_hm", + "%hm_a_r", + "%hm_a_s", + "%hm_abs", + "%hm_and", + "%hm_bool2s", + "%hm_c_hm", + "%hm_ceil", + "%hm_conj", + "%hm_cos", + "%hm_cumprod", + "%hm_cumsum", + "%hm_d_hm", + "%hm_d_s", + "%hm_degree", + "%hm_dsearch", + "%hm_e", + "%hm_exp", + "%hm_eye", + "%hm_f_hm", + "%hm_find", + "%hm_floor", + "%hm_g_hm", + "%hm_grand", + "%hm_gsort", + "%hm_h_hm", + "%hm_i_b", + "%hm_i_ce", + "%hm_i_h", + "%hm_i_hm", + "%hm_i_i", + "%hm_i_p", + "%hm_i_r", + "%hm_i_s", + "%hm_i_st", + "%hm_iconvert", + "%hm_imag", + "%hm_int", + "%hm_isnan", + "%hm_isreal", + "%hm_j_hm", + "%hm_j_s", + "%hm_k_hm", + "%hm_k_s", + "%hm_log", + "%hm_m_p", + "%hm_m_r", + "%hm_m_s", + "%hm_matrix", + "%hm_max", + "%hm_mean", + "%hm_median", + "%hm_min", + "%hm_n_b", + "%hm_n_c", + "%hm_n_hm", + "%hm_n_i", + "%hm_n_p", + "%hm_n_s", + "%hm_o_b", + "%hm_o_c", + "%hm_o_hm", + "%hm_o_i", + "%hm_o_p", + "%hm_o_s", + "%hm_ones", + "%hm_or", + "%hm_p", + "%hm_prod", + "%hm_q_hm", + "%hm_r_s", + "%hm_rand", + "%hm_real", + "%hm_round", + "%hm_s", + "%hm_s_hm", + "%hm_s_r", + "%hm_s_s", + "%hm_sign", + "%hm_sin", + "%hm_size", + "%hm_sqrt", + "%hm_stdev", + "%hm_string", + "%hm_sum", + "%hm_x_hm", + "%hm_x_p", + "%hm_x_s", + "%hm_zeros", + "%i_1_s", + "%i_2_s", + "%i_3_s", + "%i_4_s", + "%i_Matplot", + "%i_a_i", + "%i_a_s", + "%i_and", + "%i_ascii", + "%i_b_s", + "%i_bezout", + "%i_champ", + "%i_champ1", + "%i_contour", + "%i_contour2d", + "%i_d_i", + "%i_d_s", + "%i_dsearch", + "%i_e", + "%i_fft", + "%i_g_i", + "%i_gcd", + "%i_grand", + "%i_h_i", + "%i_i_ce", + "%i_i_h", + "%i_i_hm", + "%i_i_i", + "%i_i_s", + "%i_i_st", + "%i_j_i", + "%i_j_s", + "%i_l_s", + "%i_lcm", + "%i_length", + "%i_m_i", + "%i_m_s", + "%i_mfprintf", + "%i_mprintf", + "%i_msprintf", + "%i_n_s", + "%i_o_s", + "%i_or", + "%i_p_i", + "%i_p_s", + "%i_plot2d", + "%i_plot2d1", + "%i_plot2d2", + "%i_q_s", + "%i_r_i", + "%i_r_s", + "%i_round", + "%i_s_i", + "%i_s_s", + "%i_sign", + "%i_string", + "%i_x_i", + "%i_x_s", + "%ip_a_s", + "%ip_i_st", + "%ip_m_s", + "%ip_n_ip", + "%ip_o_ip", + "%ip_p", + "%ip_part", + "%ip_s_s", + "%ip_string", + "%k", + "%l_i_h", + "%l_i_s", + "%l_i_st", + "%l_isequal", + "%l_n_c", + "%l_n_l", + "%l_n_m", + "%l_n_p", + "%l_n_s", + "%l_n_st", + "%l_o_c", + "%l_o_l", + "%l_o_m", + "%l_o_p", + "%l_o_s", + "%l_o_st", + "%lss_a_lss", + "%lss_a_p", + "%lss_a_r", + "%lss_a_s", + "%lss_c_lss", + "%lss_c_p", + "%lss_c_r", + "%lss_c_s", + "%lss_e", + "%lss_eye", + "%lss_f_lss", + "%lss_f_p", + "%lss_f_r", + "%lss_f_s", + "%lss_i_ce", + "%lss_i_lss", + "%lss_i_p", + "%lss_i_r", + "%lss_i_s", + "%lss_i_st", + "%lss_inv", + "%lss_l_lss", + "%lss_l_p", + "%lss_l_r", + "%lss_l_s", + "%lss_m_lss", + "%lss_m_p", + "%lss_m_r", + "%lss_m_s", + "%lss_n_lss", + "%lss_n_p", + "%lss_n_r", + "%lss_n_s", + "%lss_norm", + "%lss_o_lss", + "%lss_o_p", + "%lss_o_r", + "%lss_o_s", + "%lss_ones", + "%lss_r_lss", + "%lss_r_p", + "%lss_r_r", + "%lss_r_s", + "%lss_rand", + "%lss_s", + "%lss_s_lss", + "%lss_s_p", + "%lss_s_r", + "%lss_s_s", + "%lss_size", + "%lss_t", + "%lss_v_lss", + "%lss_v_p", + "%lss_v_r", + "%lss_v_s", + "%lt_i_s", + "%m_n_l", + "%m_o_l", + "%mc_i_h", + "%mc_i_s", + "%mc_i_st", + "%mc_n_st", + "%mc_o_st", + "%mc_string", + "%mps_p", + "%mps_string", + "%msp_a_s", + "%msp_abs", + "%msp_e", + "%msp_find", + "%msp_i_s", + "%msp_i_st", + "%msp_length", + "%msp_m_s", + "%msp_maxi", + "%msp_n_msp", + "%msp_nnz", + "%msp_o_msp", + "%msp_p", + "%msp_sparse", + "%msp_spones", + "%msp_t", + "%p_a_lss", + "%p_a_r", + "%p_c_lss", + "%p_c_r", + "%p_cumprod", + "%p_cumsum", + "%p_d_p", + "%p_d_r", + "%p_d_s", + "%p_det", + "%p_e", + "%p_f_lss", + "%p_f_r", + "%p_grand", + "%p_i_ce", + "%p_i_h", + "%p_i_hm", + "%p_i_lss", + "%p_i_p", + "%p_i_r", + "%p_i_s", + "%p_i_st", + "%p_inv", + "%p_j_s", + "%p_k_p", + "%p_k_r", + "%p_k_s", + "%p_l_lss", + "%p_l_p", + "%p_l_r", + "%p_l_s", + "%p_m_hm", + "%p_m_lss", + "%p_m_r", + "%p_matrix", + "%p_n_l", + "%p_n_lss", + "%p_n_r", + "%p_o_l", + "%p_o_lss", + "%p_o_r", + "%p_o_sp", + "%p_p_s", + "%p_part", + "%p_prod", + "%p_q_p", + "%p_q_r", + "%p_q_s", + "%p_r_lss", + "%p_r_p", + "%p_r_r", + "%p_r_s", + "%p_s_lss", + "%p_s_r", + "%p_simp", + "%p_string", + "%p_sum", + "%p_v_lss", + "%p_v_p", + "%p_v_r", + "%p_v_s", + "%p_x_hm", + "%p_x_r", + "%p_y_p", + "%p_y_r", + "%p_y_s", + "%p_z_p", + "%p_z_r", + "%p_z_s", + "%pcg", + "%plist_p", + "%plist_string", + "%r_0", + "%r_a_hm", + "%r_a_lss", + "%r_a_p", + "%r_a_r", + "%r_a_s", + "%r_c_lss", + "%r_c_p", + "%r_c_r", + "%r_c_s", + "%r_clean", + "%r_cumprod", + "%r_cumsum", + "%r_d_p", + "%r_d_r", + "%r_d_s", + "%r_det", + "%r_diag", + "%r_e", + "%r_eye", + "%r_f_lss", + "%r_f_p", + "%r_f_r", + "%r_f_s", + "%r_i_ce", + "%r_i_hm", + "%r_i_lss", + "%r_i_p", + "%r_i_r", + "%r_i_s", + "%r_i_st", + "%r_inv", + "%r_j_s", + "%r_k_p", + "%r_k_r", + "%r_k_s", + "%r_l_lss", + "%r_l_p", + "%r_l_r", + "%r_l_s", + "%r_m_hm", + "%r_m_lss", + "%r_m_p", + "%r_m_r", + "%r_m_s", + "%r_matrix", + "%r_n_lss", + "%r_n_p", + "%r_n_r", + "%r_n_s", + "%r_norm", + "%r_o_lss", + "%r_o_p", + "%r_o_r", + "%r_o_s", + "%r_ones", + "%r_p", + "%r_p_s", + "%r_prod", + "%r_q_p", + "%r_q_r", + "%r_q_s", + "%r_r_lss", + "%r_r_p", + "%r_r_r", + "%r_r_s", + "%r_rand", + "%r_s", + "%r_s_hm", + "%r_s_lss", + "%r_s_p", + "%r_s_r", + "%r_s_s", + "%r_simp", + "%r_size", + "%r_string", + "%r_sum", + "%r_t", + "%r_tril", + "%r_triu", + "%r_v_lss", + "%r_v_p", + "%r_v_r", + "%r_v_s", + "%r_varn", + "%r_x_p", + "%r_x_r", + "%r_x_s", + "%r_y_p", + "%r_y_r", + "%r_y_s", + "%r_z_p", + "%r_z_r", + "%r_z_s", + "%s_1_hm", + "%s_1_i", + "%s_2_hm", + "%s_2_i", + "%s_3_hm", + "%s_3_i", + "%s_4_hm", + "%s_4_i", + "%s_5", + "%s_a_b", + "%s_a_hm", + "%s_a_i", + "%s_a_ip", + "%s_a_lss", + "%s_a_msp", + "%s_a_r", + "%s_a_sp", + "%s_and", + "%s_b_i", + "%s_b_s", + "%s_bezout", + "%s_c_b", + "%s_c_cblock", + "%s_c_lss", + "%s_c_r", + "%s_c_sp", + "%s_d_b", + "%s_d_i", + "%s_d_p", + "%s_d_r", + "%s_d_sp", + "%s_e", + "%s_f_b", + "%s_f_cblock", + "%s_f_lss", + "%s_f_r", + "%s_f_sp", + "%s_g_b", + "%s_g_s", + "%s_gcd", + "%s_grand", + "%s_h_b", + "%s_h_s", + "%s_i_b", + "%s_i_c", + "%s_i_ce", + "%s_i_h", + "%s_i_hm", + "%s_i_i", + "%s_i_lss", + "%s_i_p", + "%s_i_r", + "%s_i_s", + "%s_i_sp", + "%s_i_spb", + "%s_i_st", + "%s_j_i", + "%s_k_hm", + "%s_k_p", + "%s_k_r", + "%s_k_sp", + "%s_l_b", + "%s_l_hm", + "%s_l_i", + "%s_l_lss", + "%s_l_p", + "%s_l_r", + "%s_l_s", + "%s_l_sp", + "%s_lcm", + "%s_m_b", + "%s_m_hm", + "%s_m_i", + "%s_m_ip", + "%s_m_lss", + "%s_m_msp", + "%s_m_r", + "%s_matrix", + "%s_n_hm", + "%s_n_i", + "%s_n_l", + "%s_n_lss", + "%s_n_r", + "%s_n_st", + "%s_o_hm", + "%s_o_i", + "%s_o_l", + "%s_o_lss", + "%s_o_r", + "%s_o_st", + "%s_or", + "%s_p_b", + "%s_p_i", + "%s_pow", + "%s_q_hm", + "%s_q_i", + "%s_q_p", + "%s_q_r", + "%s_q_sp", + "%s_r_b", + "%s_r_i", + "%s_r_lss", + "%s_r_p", + "%s_r_r", + "%s_r_s", + "%s_r_sp", + "%s_s_b", + "%s_s_hm", + "%s_s_i", + "%s_s_ip", + "%s_s_lss", + "%s_s_r", + "%s_s_sp", + "%s_simp", + "%s_v_lss", + "%s_v_p", + "%s_v_r", + "%s_v_s", + "%s_x_b", + "%s_x_hm", + "%s_x_i", + "%s_x_r", + "%s_y_p", + "%s_y_r", + "%s_y_sp", + "%s_z_p", + "%s_z_r", + "%s_z_sp", + "%sn", + "%sp_a_s", + "%sp_a_sp", + "%sp_and", + "%sp_c_s", + "%sp_ceil", + "%sp_conj", + "%sp_cos", + "%sp_cumprod", + "%sp_cumsum", + "%sp_d_s", + "%sp_d_sp", + "%sp_det", + "%sp_diag", + "%sp_e", + "%sp_exp", + "%sp_f_s", + "%sp_floor", + "%sp_grand", + "%sp_gsort", + "%sp_i_ce", + "%sp_i_h", + "%sp_i_s", + "%sp_i_sp", + "%sp_i_st", + "%sp_int", + "%sp_inv", + "%sp_k_s", + "%sp_k_sp", + "%sp_l_s", + "%sp_l_sp", + "%sp_length", + "%sp_max", + "%sp_min", + "%sp_norm", + "%sp_or", + "%sp_p_s", + "%sp_prod", + "%sp_q_s", + "%sp_q_sp", + "%sp_r_s", + "%sp_r_sp", + "%sp_round", + "%sp_s_s", + "%sp_s_sp", + "%sp_sin", + "%sp_sqrt", + "%sp_string", + "%sp_sum", + "%sp_tril", + "%sp_triu", + "%sp_y_s", + "%sp_y_sp", + "%sp_z_s", + "%sp_z_sp", + "%spb_and", + "%spb_c_b", + "%spb_cumprod", + "%spb_cumsum", + "%spb_diag", + "%spb_e", + "%spb_f_b", + "%spb_g_b", + "%spb_g_spb", + "%spb_h_b", + "%spb_h_spb", + "%spb_i_b", + "%spb_i_ce", + "%spb_i_h", + "%spb_i_st", + "%spb_or", + "%spb_prod", + "%spb_sum", + "%spb_tril", + "%spb_triu", + "%st_6", + "%st_c_st", + "%st_e", + "%st_f_st", + "%st_i_b", + "%st_i_c", + "%st_i_fptr", + "%st_i_h", + "%st_i_i", + "%st_i_ip", + "%st_i_lss", + "%st_i_msp", + "%st_i_p", + "%st_i_r", + "%st_i_s", + "%st_i_sp", + "%st_i_spb", + "%st_i_st", + "%st_matrix", + "%st_n_c", + "%st_n_l", + "%st_n_mc", + "%st_n_p", + "%st_n_s", + "%st_o_c", + "%st_o_l", + "%st_o_mc", + "%st_o_p", + "%st_o_s", + "%st_o_tl", + "%st_p", + "%st_size", + "%st_string", + "%st_t", + "%ticks_i_h", + "%xls_e", + "%xls_p", + "%xlssheet_e", + "%xlssheet_p", + "%xlssheet_size", + "%xlssheet_string", + "DominationRank", + "G_make", + "IsAScalar", + "NDcost", + "OS_Version", + "PlotSparse", + "ReadHBSparse", + "TCL_CreateSlave", + "abcd", + "abinv", + "accept_func_default", + "accept_func_vfsa", + "acf", + "acosd", + "acosh", + "acoshm", + "acosm", + "acot", + "acotd", + "acoth", + "acsc", + "acscd", + "acsch", + "add_demo", + "add_help_chapter", + "add_module_help_chapter", + "add_param", + "add_profiling", + "adj2sp", + "aff2ab", + "ana_style", + "analpf", + "analyze", + "aplat", + "arhnk", + "arl2", + "arma2p", + "arma2ss", + "armac", + "armax", + "armax1", + "arobasestring2strings", + "arsimul", + "ascii2string", + "asciimat", + "asec", + "asecd", + "asech", + "asind", + "asinh", + "asinhm", + "asinm", + "assert_checkalmostequal", + "assert_checkequal", + "assert_checkerror", + "assert_checkfalse", + "assert_checkfilesequal", + "assert_checktrue", + "assert_comparecomplex", + "assert_computedigits", + "assert_cond2reltol", + "assert_cond2reqdigits", + "assert_generror", + "atand", + "atanh", + "atanhm", + "atanm", + "atomsAutoload", + "atomsAutoloadAdd", + "atomsAutoloadDel", + "atomsAutoloadList", + "atomsCategoryList", + "atomsCheckModule", + "atomsDepTreeShow", + "atomsGetConfig", + "atomsGetInstalled", + "atomsGetInstalledPath", + "atomsGetLoaded", + "atomsGetLoadedPath", + "atomsInstall", + "atomsIsInstalled", + "atomsIsLoaded", + "atomsList", + "atomsLoad", + "atomsQuit", + "atomsRemove", + "atomsRepositoryAdd", + "atomsRepositoryDel", + "atomsRepositoryList", + "atomsRestoreConfig", + "atomsSaveConfig", + "atomsSearch", + "atomsSetConfig", + "atomsShow", + "atomsSystemInit", + "atomsSystemUpdate", + "atomsTest", + "atomsUpdate", + "atomsVersion", + "augment", + "auread", + "auwrite", + "balreal", + "bench_run", + "bilin", + "bilt", + "bin2dec", + "binomial", + "bitand", + "bitcmp", + "bitget", + "bitor", + "bitset", + "bitxor", + "black", + "blanks", + "bloc2exp", + "bloc2ss", + "block_parameter_error", + "bode", + "bode_asymp", + "bstap", + "buttmag", + "bvodeS", + "bytecode", + "bytecodewalk", + "cainv", + "calendar", + "calerf", + "calfrq", + "canon", + "casc", + "cat", + "cat_code", + "cb_m2sci_gui", + "ccontrg", + "cell", + "cell2mat", + "cellstr", + "center", + "cepstrum", + "cfspec", + "char", + "chart", + "cheb1mag", + "cheb2mag", + "check_gateways", + "check_modules_xml", + "check_versions", + "chepol", + "chfact", + "chsolve", + "classmarkov", + "clean_help", + "clock", + "cls2dls", + "cmb_lin", + "cmndred", + "cmoment", + "coding_ga_binary", + "coding_ga_identity", + "coff", + "coffg", + "colcomp", + "colcompr", + "colinout", + "colregul", + "companion", + "complex", + "compute_initial_temp", + "cond", + "cond2sp", + "condestsp", + "configure_msifort", + "configure_msvc", + "conjgrad", + "cont_frm", + "cont_mat", + "contrss", + "conv", + "convert_to_float", + "convertindex", + "convol", + "convol2d", + "copfac", + "correl", + "cosd", + "cosh", + "coshm", + "cosm", + "cotd", + "cotg", + "coth", + "cothm", + "cov", + "covar", + "createXConfiguration", + "createfun", + "createstruct", + "cross", + "crossover_ga_binary", + "crossover_ga_default", + "csc", + "cscd", + "csch", + "csgn", + "csim", + "cspect", + "ctr_gram", + "czt", + "dae", + "daeoptions", + "damp", + "datafit", + "date", + "datenum", + "datevec", + "dbphi", + "dcf", + "ddp", + "dec2bin", + "dec2hex", + "dec2oct", + "del_help_chapter", + "del_module_help_chapter", + "demo_begin", + "demo_choose", + "demo_compiler", + "demo_end", + "demo_file_choice", + "demo_folder_choice", + "demo_function_choice", + "demo_gui", + "demo_run", + "demo_viewCode", + "denom", + "derivat", + "derivative", + "des2ss", + "des2tf", + "detectmsifort64tools", + "detectmsvc64tools", + "determ", + "detr", + "detrend", + "devtools_run_builder", + "dhnorm", + "diff", + "diophant", + "dir", + "dirname", + "dispfiles", + "dllinfo", + "dscr", + "dsimul", + "dt_ility", + "dtsi", + "edit", + "edit_error", + "editor", + "eigenmarkov", + "eigs", + "ell1mag", + "enlarge_shape", + "entropy", + "eomday", + "epred", + "eqfir", + "eqiir", + "equil", + "equil1", + "erfinv", + "etime", + "eval", + "evans", + "evstr", + "example_run", + "expression2code", + "extract_help_examples", + "factor", + "factorial", + "factors", + "faurre", + "ffilt", + "fft2", + "fftshift", + "fieldnames", + "filt_sinc", + "filter", + "findABCD", + "findAC", + "findBDK", + "findR", + "find_freq", + "find_links", + "find_scicos_version", + "findm", + "findmsifortcompiler", + "findmsvccompiler", + "findx0BD", + "firstnonsingleton", + "fix", + "fixedpointgcd", + "flipdim", + "flts", + "fminsearch", + "formatBlackTip", + "formatBodeMagTip", + "formatBodePhaseTip", + "formatGainplotTip", + "formatHallModuleTip", + "formatHallPhaseTip", + "formatNicholsGainTip", + "formatNicholsPhaseTip", + "formatNyquistTip", + "formatPhaseplotTip", + "formatSgridDampingTip", + "formatSgridFreqTip", + "formatZgridDampingTip", + "formatZgridFreqTip", + "format_txt", + "fourplan", + "frep2tf", + "freson", + "frfit", + "frmag", + "fseek_origin", + "fsfirlin", + "fspec", + "fspecg", + "fstabst", + "ftest", + "ftuneq", + "fullfile", + "fullrf", + "fullrfk", + "fun2string", + "g_margin", + "gainplot", + "gamitg", + "gcare", + "gcd", + "gencompilationflags_unix", + "generateBlockImage", + "generateBlockImages", + "generic_i_ce", + "generic_i_h", + "generic_i_hm", + "generic_i_s", + "generic_i_st", + "genlib", + "genmarkov", + "geomean", + "getDiagramVersion", + "getModelicaPath", + "getPreferencesValue", + "get_file_path", + "get_function_path", + "get_param", + "get_profile", + "get_scicos_version", + "getd", + "getscilabkeywords", + "getshell", + "gettklib", + "gfare", + "gfrancis", + "givens", + "glever", + "gmres", + "group", + "gschur", + "gspec", + "gtild", + "h2norm", + "h_cl", + "h_inf", + "h_inf_st", + "h_norm", + "hallchart", + "halt", + "hank", + "hankelsv", + "harmean", + "haveacompiler", + "head_comments", + "help_from_sci", + "help_skeleton", + "hermit", + "hex2dec", + "hilb", + "hilbert", + "histc", + "horner", + "householder", + "hrmt", + "htrianr", + "hypermat", + "idct", + "idst", + "ifft", + "ifftshift", + "iir", + "iirgroup", + "iirlp", + "iirmod", + "ilib_build", + "ilib_build_jar", + "ilib_compile", + "ilib_for_link", + "ilib_gen_Make", + "ilib_gen_Make_unix", + "ilib_gen_cleaner", + "ilib_gen_gateway", + "ilib_gen_loader", + "ilib_include_flag", + "ilib_mex_build", + "im_inv", + "importScicosDiagram", + "importScicosPal", + "importXcosDiagram", + "imrep2ss", + "ind2sub", + "inistate", + "init_ga_default", + "init_param", + "initial_scicos_tables", + "input", + "instruction2code", + "intc", + "intdec", + "integrate", + "interp1", + "interpln", + "intersect", + "intl", + "intsplin", + "inttrap", + "inv_coeff", + "invr", + "invrs", + "invsyslin", + "iqr", + "isLeapYear", + "is_absolute_path", + "is_param", + "iscell", + "iscellstr", + "iscolumn", + "isempty", + "isfield", + "isinf", + "ismatrix", + "isnan", + "isrow", + "isscalar", + "issparse", + "issquare", + "isstruct", + "isvector", + "jmat", + "justify", + "kalm", + "karmarkar", + "kernel", + "kpure", + "krac2", + "kroneck", + "lattn", + "lattp", + "launchtest", + "lcf", + "lcm", + "lcmdiag", + "leastsq", + "leqe", + "leqr", + "lev", + "levin", + "lex_sort", + "lft", + "lin", + "lin2mu", + "lincos", + "lindquist", + "linf", + "linfn", + "linsolve", + "linspace", + "list2vec", + "list_param", + "listfiles", + "listfunctions", + "listvarinfile", + "lmisolver", + "lmitool", + "loadXcosLibs", + "loadmatfile", + "loadwave", + "log10", + "log2", + "logm", + "logspace", + "lqe", + "lqg", + "lqg2stan", + "lqg_ltr", + "lqr", + "ls", + "lyap", + "m2sci_gui", + "m_circle", + "macglov", + "macrovar", + "mad", + "makecell", + "manedit", + "mapsound", + "markp2ss", + "matfile2sci", + "mdelete", + "mean", + "meanf", + "median", + "members", + "mese", + "meshgrid", + "mfft", + "mfile2sci", + "minreal", + "minss", + "mkdir", + "modulo", + "moment", + "mrfit", + "msd", + "mstr2sci", + "mtlb", + "mtlb_0", + "mtlb_a", + "mtlb_all", + "mtlb_any", + "mtlb_axes", + "mtlb_axis", + "mtlb_beta", + "mtlb_box", + "mtlb_choices", + "mtlb_close", + "mtlb_colordef", + "mtlb_cond", + "mtlb_cov", + "mtlb_cumprod", + "mtlb_cumsum", + "mtlb_dec2hex", + "mtlb_delete", + "mtlb_diag", + "mtlb_diff", + "mtlb_dir", + "mtlb_double", + "mtlb_e", + "mtlb_echo", + "mtlb_error", + "mtlb_eval", + "mtlb_exist", + "mtlb_eye", + "mtlb_false", + "mtlb_fft", + "mtlb_fftshift", + "mtlb_filter", + "mtlb_find", + "mtlb_findstr", + "mtlb_fliplr", + "mtlb_fopen", + "mtlb_format", + "mtlb_fprintf", + "mtlb_fread", + "mtlb_fscanf", + "mtlb_full", + "mtlb_fwrite", + "mtlb_get", + "mtlb_grid", + "mtlb_hold", + "mtlb_i", + "mtlb_ifft", + "mtlb_image", + "mtlb_imp", + "mtlb_int16", + "mtlb_int32", + "mtlb_int8", + "mtlb_is", + "mtlb_isa", + "mtlb_isfield", + "mtlb_isletter", + "mtlb_isspace", + "mtlb_l", + "mtlb_legendre", + "mtlb_linspace", + "mtlb_logic", + "mtlb_logical", + "mtlb_loglog", + "mtlb_lower", + "mtlb_max", + "mtlb_mean", + "mtlb_median", + "mtlb_mesh", + "mtlb_meshdom", + "mtlb_min", + "mtlb_more", + "mtlb_num2str", + "mtlb_ones", + "mtlb_pcolor", + "mtlb_plot", + "mtlb_prod", + "mtlb_qr", + "mtlb_qz", + "mtlb_rand", + "mtlb_randn", + "mtlb_rcond", + "mtlb_realmax", + "mtlb_realmin", + "mtlb_s", + "mtlb_semilogx", + "mtlb_semilogy", + "mtlb_setstr", + "mtlb_size", + "mtlb_sort", + "mtlb_sortrows", + "mtlb_sprintf", + "mtlb_sscanf", + "mtlb_std", + "mtlb_strcmp", + "mtlb_strcmpi", + "mtlb_strfind", + "mtlb_strrep", + "mtlb_subplot", + "mtlb_sum", + "mtlb_t", + "mtlb_toeplitz", + "mtlb_tril", + "mtlb_triu", + "mtlb_true", + "mtlb_type", + "mtlb_uint16", + "mtlb_uint32", + "mtlb_uint8", + "mtlb_upper", + "mtlb_var", + "mtlb_zeros", + "mu2lin", + "mutation_ga_binary", + "mutation_ga_default", + "mvcorrel", + "mvvacov", + "nancumsum", + "nand2mean", + "nanmax", + "nanmean", + "nanmeanf", + "nanmedian", + "nanmin", + "nanreglin", + "nanstdev", + "nansum", + "narsimul", + "ndgrid", + "ndims", + "nehari", + "neigh_func_csa", + "neigh_func_default", + "neigh_func_fsa", + "neigh_func_vfsa", + "neldermead_cget", + "neldermead_configure", + "neldermead_costf", + "neldermead_defaultoutput", + "neldermead_destroy", + "neldermead_function", + "neldermead_get", + "neldermead_log", + "neldermead_new", + "neldermead_restart", + "neldermead_search", + "neldermead_updatesimp", + "nextpow2", + "nfreq", + "nicholschart", + "nlev", + "nmplot_cget", + "nmplot_configure", + "nmplot_contour", + "nmplot_destroy", + "nmplot_function", + "nmplot_get", + "nmplot_historyplot", + "nmplot_log", + "nmplot_new", + "nmplot_outputcmd", + "nmplot_restart", + "nmplot_search", + "nmplot_simplexhistory", + "noisegen", + "nonreg_test_run", + "now", + "nthroot", + "null", + "num2cell", + "numderivative", + "numdiff", + "numer", + "nyquist", + "nyquistfrequencybounds", + "obs_gram", + "obscont", + "observer", + "obsv_mat", + "obsvss", + "oct2dec", + "odeoptions", + "optim_ga", + "optim_moga", + "optim_nsga", + "optim_nsga2", + "optim_sa", + "optimbase_cget", + "optimbase_checkbounds", + "optimbase_checkcostfun", + "optimbase_checkx0", + "optimbase_configure", + "optimbase_destroy", + "optimbase_function", + "optimbase_get", + "optimbase_hasbounds", + "optimbase_hasconstraints", + "optimbase_hasnlcons", + "optimbase_histget", + "optimbase_histset", + "optimbase_incriter", + "optimbase_isfeasible", + "optimbase_isinbounds", + "optimbase_isinnonlincons", + "optimbase_log", + "optimbase_logshutdown", + "optimbase_logstartup", + "optimbase_new", + "optimbase_outputcmd", + "optimbase_outstruct", + "optimbase_proj2bnds", + "optimbase_set", + "optimbase_stoplog", + "optimbase_terminate", + "optimget", + "optimplotfunccount", + "optimplotfval", + "optimplotx", + "optimset", + "optimsimplex_center", + "optimsimplex_check", + "optimsimplex_compsomefv", + "optimsimplex_computefv", + "optimsimplex_deltafv", + "optimsimplex_deltafvmax", + "optimsimplex_destroy", + "optimsimplex_dirmat", + "optimsimplex_fvmean", + "optimsimplex_fvstdev", + "optimsimplex_fvvariance", + "optimsimplex_getall", + "optimsimplex_getallfv", + "optimsimplex_getallx", + "optimsimplex_getfv", + "optimsimplex_getn", + "optimsimplex_getnbve", + "optimsimplex_getve", + "optimsimplex_getx", + "optimsimplex_gradientfv", + "optimsimplex_log", + "optimsimplex_new", + "optimsimplex_reflect", + "optimsimplex_setall", + "optimsimplex_setallfv", + "optimsimplex_setallx", + "optimsimplex_setfv", + "optimsimplex_setn", + "optimsimplex_setnbve", + "optimsimplex_setve", + "optimsimplex_setx", + "optimsimplex_shrink", + "optimsimplex_size", + "optimsimplex_sort", + "optimsimplex_xbar", + "orth", + "output_ga_default", + "output_moga_default", + "output_nsga2_default", + "output_nsga_default", + "p_margin", + "pack", + "pareto_filter", + "parrot", + "pbig", + "pca", + "pcg", + "pdiv", + "pen2ea", + "pencan", + "pencost", + "penlaur", + "perctl", + "perl", + "perms", + "permute", + "pertrans", + "pfactors", + "pfss", + "phasemag", + "phaseplot", + "phc", + "pinv", + "playsnd", + "plotprofile", + "plzr", + "pmodulo", + "pol2des", + "pol2str", + "polar", + "polfact", + "prbs_a", + "prettyprint", + "primes", + "princomp", + "profile", + "proj", + "projsl", + "projspec", + "psmall", + "pspect", + "qmr", + "qpsolve", + "quart", + "quaskro", + "rafiter", + "randpencil", + "range", + "rank", + "readxls", + "recompilefunction", + "recons", + "reglin", + "regress", + "remezb", + "remove_param", + "remove_profiling", + "repfreq", + "replace_Ix_by_Fx", + "repmat", + "reset_profiling", + "resize_matrix", + "returntoscilab", + "rhs2code", + "ric_desc", + "riccati", + "rmdir", + "routh_t", + "rowcomp", + "rowcompr", + "rowinout", + "rowregul", + "rowshuff", + "rref", + "sample", + "samplef", + "samwr", + "savematfile", + "savewave", + "scanf", + "sci2exp", + "sciGUI_init", + "sci_sparse", + "scicos_getvalue", + "scicos_simulate", + "scicos_workspace_init", + "scisptdemo", + "scitest", + "sdiff", + "sec", + "secd", + "sech", + "selection_ga_elitist", + "selection_ga_random", + "sensi", + "setPreferencesValue", + "set_param", + "setdiff", + "sgrid", + "show_margins", + "show_pca", + "showprofile", + "signm", + "sinc", + "sincd", + "sind", + "sinh", + "sinhm", + "sinm", + "sm2des", + "sm2ss", + "smga", + "smooth", + "solve", + "sound", + "soundsec", + "sp2adj", + "spaninter", + "spanplus", + "spantwo", + "specfact", + "speye", + "sprand", + "spzeros", + "sqroot", + "sqrtm", + "squarewave", + "squeeze", + "srfaur", + "srkf", + "ss2des", + "ss2ss", + "ss2tf", + "sskf", + "ssprint", + "ssrand", + "st_deviation", + "st_i_generic", + "st_ility", + "stabil", + "statgain", + "stdev", + "stdevf", + "steadycos", + "strange", + "strcmpi", + "struct", + "sub2ind", + "sva", + "svplot", + "sylm", + "sylv", + "sysconv", + "sysdiag", + "sysfact", + "syslin", + "syssize", + "system", + "systmat", + "tabul", + "tand", + "tanh", + "tanhm", + "tanm", + "tbx_build_blocks", + "tbx_build_cleaner", + "tbx_build_gateway", + "tbx_build_gateway_clean", + "tbx_build_gateway_loader", + "tbx_build_help", + "tbx_build_help_loader", + "tbx_build_loader", + "tbx_build_localization", + "tbx_build_macros", + "tbx_build_pal_loader", + "tbx_build_src", + "tbx_builder", + "tbx_builder_gateway", + "tbx_builder_gateway_lang", + "tbx_builder_help", + "tbx_builder_help_lang", + "tbx_builder_macros", + "tbx_builder_src", + "tbx_builder_src_lang", + "tbx_generate_pofile", + "temp_law_csa", + "temp_law_default", + "temp_law_fsa", + "temp_law_huang", + "temp_law_vfsa", + "test_clean", + "test_on_columns", + "test_run", + "test_run_level", + "testexamples", + "tf2des", + "tf2ss", + "thrownan", + "tic", + "time_id", + "toc", + "toeplitz", + "tokenpos", + "toolboxes", + "trace", + "trans", + "translatepaths", + "tree2code", + "trfmod", + "trianfml", + "trimmean", + "trisolve", + "trzeros", + "typeof", + "ui_observer", + "union", + "unique", + "unit_test_run", + "unix_g", + "unix_s", + "unix_w", + "unix_x", + "unobs", + "unpack", + "unwrap", + "variance", + "variancef", + "vec2list", + "vectorfind", + "ver", + "warnobsolete", + "wavread", + "wavwrite", + "wcenter", + "weekday", + "wfir", + "wfir_gui", + "whereami", + "who_user", + "whos", + "wiener", + "wigner", + "window", + "winlist", + "with_javasci", + "with_macros_source", + "with_modelica_compiler", + "with_tk", + "xcorr", + "xcosBlockEval", + "xcosBlockInterface", + "xcosCodeGeneration", + "xcosConfigureModelica", + "xcosPal", + "xcosPalAdd", + "xcosPalAddBlock", + "xcosPalExport", + "xcosPalGenerateAllIcons", + "xcosShowBlockWarning", + "xcosValidateBlockSet", + "xcosValidateCompareBlock", + "xcos_compile", + "xcos_debug_gui", + "xcos_run", + "xcos_simulate", + "xcov", + "xmltochm", + "xmltoformat", + "xmltohtml", + "xmltojar", + "xmltopdf", + "xmltops", + "xmltoweb", + "yulewalk", + "zeropen", + "zgrid", + "zpbutt", + "zpch1", + "zpch2", + "zpell", ) variables_kw = ( - '$', - '%F', - '%T', - '%e', - '%eps', - '%f', - '%fftw', - '%gui', - '%i', - '%inf', - '%io', - '%modalWarning', - '%nan', - '%pi', - '%s', - '%t', - '%tk', - '%toolboxes', - '%toolboxes_dir', - '%z', - 'PWD', - 'SCI', - 'SCIHOME', - 'TMPDIR', - 'arnoldilib', - 'assertlib', - 'atomslib', - 'cacsdlib', - 'compatibility_functilib', - 'corelib', - 'data_structureslib', - 'demo_toolslib', - 'development_toolslib', - 'differential_equationlib', - 'dynamic_linklib', - 'elementary_functionslib', - 'enull', - 'evoid', - 'external_objectslib', - 'fd', - 'fileiolib', - 'functionslib', - 'genetic_algorithmslib', - 'helptoolslib', - 'home', - 'integerlib', - 'interpolationlib', - 'iolib', - 'jnull', - 'jvoid', - 'linear_algebralib', - 'm2scilib', - 'matiolib', - 'modules_managerlib', - 'neldermeadlib', - 'optimbaselib', - 'optimizationlib', - 'optimsimplexlib', - 'output_streamlib', - 'overloadinglib', - 'parameterslib', - 'polynomialslib', - 'preferenceslib', - 'randliblib', - 'scicos_autolib', - 'scicos_utilslib', - 'scinoteslib', - 'signal_processinglib', - 'simulated_annealinglib', - 'soundlib', - 'sparselib', - 'special_functionslib', - 'spreadsheetlib', - 'statisticslib', - 'stringlib', - 'tclscilib', - 'timelib', - 'umfpacklib', - 'xcoslib', + "$", + "%F", + "%T", + "%e", + "%eps", + "%f", + "%fftw", + "%gui", + "%i", + "%inf", + "%io", + "%modalWarning", + "%nan", + "%pi", + "%s", + "%t", + "%tk", + "%toolboxes", + "%toolboxes_dir", + "%z", + "PWD", + "SCI", + "SCIHOME", + "TMPDIR", + "arnoldilib", + "assertlib", + "atomslib", + "cacsdlib", + "compatibility_functilib", + "corelib", + "data_structureslib", + "demo_toolslib", + "development_toolslib", + "differential_equationlib", + "dynamic_linklib", + "elementary_functionslib", + "enull", + "evoid", + "external_objectslib", + "fd", + "fileiolib", + "functionslib", + "genetic_algorithmslib", + "helptoolslib", + "home", + "integerlib", + "interpolationlib", + "iolib", + "jnull", + "jvoid", + "linear_algebralib", + "m2scilib", + "matiolib", + "modules_managerlib", + "neldermeadlib", + "optimbaselib", + "optimizationlib", + "optimsimplexlib", + "output_streamlib", + "overloadinglib", + "parameterslib", + "polynomialslib", + "preferenceslib", + "randliblib", + "scicos_autolib", + "scicos_utilslib", + "scinoteslib", + "signal_processinglib", + "simulated_annealinglib", + "soundlib", + "sparselib", + "special_functionslib", + "spreadsheetlib", + "statisticslib", + "stringlib", + "tclscilib", + "timelib", + "umfpacklib", + "xcoslib", ) -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import subprocess from pygments.util import format_lines, duplicates_removed - mapping = {'variables': 'builtin'} + mapping = {"variables": "builtin"} def extract_completion(var_type): - s = subprocess.Popen(['scilab', '-nwni'], stdin=subprocess.PIPE, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - output = s.communicate(f'''\ + s = subprocess.Popen( + ["scilab", "-nwni"], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + output = s.communicate(f"""\ fd = mopen("/dev/stderr", "wt"); mputl(strcat(completion("", "{var_type}"), "||"), fd); -mclose(fd)\n''') - if '||' not in output[1]: +mclose(fd)\n""") + if "||" not in output[1]: raise Exception(output[0]) # Invalid DISPLAY causes this to be output: text = output[1].strip() - if text.startswith('Error: unable to open display \n'): - text = text[len('Error: unable to open display \n'):] - return text.split('||') + if text.startswith("Error: unable to open display \n"): + text = text[len("Error: unable to open display \n") :] + return text.split("||") new_data = {} seen = set() # only keep first type for a given word - for t in ('functions', 'commands', 'macros', 'variables'): + for t in ("functions", "commands", "macros", "variables"): new_data[t] = duplicates_removed(extract_completion(t), seen) seen.update(set(new_data[t])) - - with open(__file__, encoding='utf-8') as f: + with open(__file__, encoding="utf-8") as f: content = f.read() - header = content[:content.find('# Autogenerated')] - footer = content[content.find("if __name__ == '__main__':"):] + header = content[: content.find("# Autogenerated")] + footer = content[content.find("if __name__ == '__main__':") :] - with open(__file__, 'w', encoding='utf-8') as f: + with open(__file__, "w", encoding="utf-8") as f: f.write(header) - f.write('# Autogenerated\n\n') + f.write("# Autogenerated\n\n") for k, v in sorted(new_data.items()): - f.write(format_lines(k + '_kw', v) + '\n\n') + f.write(format_lines(k + "_kw", v) + "\n\n") f.write(footer) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sourcemod_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sourcemod_builtins.py index c98478c..a389cfd 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sourcemod_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sourcemod_builtins.py @@ -1,1118 +1,1118 @@ """ - pygments.lexers._sourcemod_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._sourcemod_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - This file contains the names of SourceMod functions. +This file contains the names of SourceMod functions. - Do not edit the FUNCTIONS list by hand. +Do not edit the FUNCTIONS list by hand. - Run with `python -I` to regenerate. +Run with `python -I` to regenerate. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ FUNCTIONS = ( - 'OnEntityCreated', - 'OnEntityDestroyed', - 'OnGetGameDescription', - 'OnLevelInit', - 'SDKHook', - 'SDKHookEx', - 'SDKUnhook', - 'SDKHooks_TakeDamage', - 'SDKHooks_DropWeapon', - 'TopMenuHandler', - 'CreateTopMenu', - 'LoadTopMenuConfig', - 'AddToTopMenu', - 'GetTopMenuInfoString', - 'GetTopMenuObjName', - 'RemoveFromTopMenu', - 'DisplayTopMenu', - 'DisplayTopMenuCategory', - 'FindTopMenuCategory', - 'SetTopMenuTitleCaching', - 'OnAdminMenuCreated', - 'OnAdminMenuReady', - 'GetAdminTopMenu', - 'AddTargetsToMenu', - 'AddTargetsToMenu2', - 'RedisplayAdminMenu', - 'TEHook', - 'AddTempEntHook', - 'RemoveTempEntHook', - 'TE_Start', - 'TE_IsValidProp', - 'TE_WriteNum', - 'TE_ReadNum', - 'TE_WriteFloat', - 'TE_ReadFloat', - 'TE_WriteVector', - 'TE_ReadVector', - 'TE_WriteAngles', - 'TE_WriteFloatArray', - 'TE_Send', - 'TE_WriteEncodedEnt', - 'TE_SendToAll', - 'TE_SendToClient', - 'CreateKeyValues', - 'KvSetString', - 'KvSetNum', - 'KvSetUInt64', - 'KvSetFloat', - 'KvSetColor', - 'KvSetVector', - 'KvGetString', - 'KvGetNum', - 'KvGetFloat', - 'KvGetColor', - 'KvGetUInt64', - 'KvGetVector', - 'KvJumpToKey', - 'KvJumpToKeySymbol', - 'KvGotoFirstSubKey', - 'KvGotoNextKey', - 'KvSavePosition', - 'KvDeleteKey', - 'KvDeleteThis', - 'KvGoBack', - 'KvRewind', - 'KvGetSectionName', - 'KvSetSectionName', - 'KvGetDataType', - 'KeyValuesToFile', - 'FileToKeyValues', - 'StringToKeyValues', - 'KvSetEscapeSequences', - 'KvNodesInStack', - 'KvCopySubkeys', - 'KvFindKeyById', - 'KvGetNameSymbol', - 'KvGetSectionSymbol', - 'TE_SetupSparks', - 'TE_SetupSmoke', - 'TE_SetupDust', - 'TE_SetupMuzzleFlash', - 'TE_SetupMetalSparks', - 'TE_SetupEnergySplash', - 'TE_SetupArmorRicochet', - 'TE_SetupGlowSprite', - 'TE_SetupExplosion', - 'TE_SetupBloodSprite', - 'TE_SetupBeamRingPoint', - 'TE_SetupBeamPoints', - 'TE_SetupBeamLaser', - 'TE_SetupBeamRing', - 'TE_SetupBeamFollow', - 'HookEvent', - 'HookEventEx', - 'UnhookEvent', - 'CreateEvent', - 'FireEvent', - 'CancelCreatedEvent', - 'GetEventBool', - 'SetEventBool', - 'GetEventInt', - 'SetEventInt', - 'GetEventFloat', - 'SetEventFloat', - 'GetEventString', - 'SetEventString', - 'GetEventName', - 'SetEventBroadcast', - 'GetUserMessageType', - 'GetUserMessageId', - 'GetUserMessageName', - 'StartMessage', - 'StartMessageEx', - 'EndMessage', - 'MsgHook', - 'MsgPostHook', - 'HookUserMessage', - 'UnhookUserMessage', - 'StartMessageAll', - 'StartMessageOne', - 'InactivateClient', - 'ReconnectClient', - 'GetMaxEntities', - 'GetEntityCount', - 'IsValidEntity', - 'IsValidEdict', - 'IsEntNetworkable', - 'CreateEdict', - 'RemoveEdict', - 'GetEdictFlags', - 'SetEdictFlags', - 'GetEdictClassname', - 'GetEntityNetClass', - 'ChangeEdictState', - 'GetEntData', - 'SetEntData', - 'GetEntDataFloat', - 'SetEntDataFloat', - 'GetEntDataEnt2', - 'SetEntDataEnt2', - 'GetEntDataVector', - 'SetEntDataVector', - 'GetEntDataString', - 'SetEntDataString', - 'FindSendPropOffs', - 'FindSendPropInfo', - 'FindDataMapOffs', - 'FindDataMapInfo', - 'GetEntSendPropOffs', - 'GetEntProp', - 'SetEntProp', - 'GetEntPropFloat', - 'SetEntPropFloat', - 'GetEntPropEnt', - 'SetEntPropEnt', - 'GetEntPropVector', - 'SetEntPropVector', - 'GetEntPropString', - 'SetEntPropString', - 'GetEntPropArraySize', - 'GetEntDataArray', - 'SetEntDataArray', - 'GetEntityAddress', - 'GetEntityClassname', - 'float', - 'FloatMul', - 'FloatDiv', - 'FloatAdd', - 'FloatSub', - 'FloatFraction', - 'RoundToZero', - 'RoundToCeil', - 'RoundToFloor', - 'RoundToNearest', - 'FloatCompare', - 'SquareRoot', - 'Pow', - 'Exponential', - 'Logarithm', - 'Sine', - 'Cosine', - 'Tangent', - 'FloatAbs', - 'ArcTangent', - 'ArcCosine', - 'ArcSine', - 'ArcTangent2', - 'RoundFloat', - 'operator%', - 'DegToRad', - 'RadToDeg', - 'GetURandomInt', - 'GetURandomFloat', - 'SetURandomSeed', - 'SetURandomSeedSimple', - 'RemovePlayerItem', - 'GivePlayerItem', - 'GetPlayerWeaponSlot', - 'IgniteEntity', - 'ExtinguishEntity', - 'TeleportEntity', - 'ForcePlayerSuicide', - 'SlapPlayer', - 'FindEntityByClassname', - 'GetClientEyeAngles', - 'CreateEntityByName', - 'DispatchSpawn', - 'DispatchKeyValue', - 'DispatchKeyValueFloat', - 'DispatchKeyValueVector', - 'GetClientAimTarget', - 'GetTeamCount', - 'GetTeamName', - 'GetTeamScore', - 'SetTeamScore', - 'GetTeamClientCount', - 'SetEntityModel', - 'GetPlayerDecalFile', - 'GetPlayerJingleFile', - 'GetServerNetStats', - 'EquipPlayerWeapon', - 'ActivateEntity', - 'SetClientInfo', - 'GivePlayerAmmo', - 'SetClientListeningFlags', - 'GetClientListeningFlags', - 'SetListenOverride', - 'GetListenOverride', - 'IsClientMuted', - 'TR_GetPointContents', - 'TR_GetPointContentsEnt', - 'TR_TraceRay', - 'TR_TraceHull', - 'TR_TraceRayFilter', - 'TR_TraceHullFilter', - 'TR_TraceRayEx', - 'TR_TraceHullEx', - 'TR_TraceRayFilterEx', - 'TR_TraceHullFilterEx', - 'TR_GetFraction', - 'TR_GetEndPosition', - 'TR_GetEntityIndex', - 'TR_DidHit', - 'TR_GetHitGroup', - 'TR_GetPlaneNormal', - 'TR_PointOutsideWorld', - 'SortIntegers', - 'SortFloats', - 'SortStrings', - 'SortFunc1D', - 'SortCustom1D', - 'SortCustom2D', - 'SortADTArray', - 'SortFuncADTArray', - 'SortADTArrayCustom', - 'CompileRegex', - 'MatchRegex', - 'GetRegexSubString', - 'SimpleRegexMatch', - 'TF2_GetPlayerClass', - 'TF2_SetPlayerClass', - 'TF2_RemoveWeaponSlot', - 'TF2_RemoveAllWeapons', - 'TF2_IsPlayerInCondition', - 'TF2_GetObjectType', - 'TF2_GetObjectMode', - 'NominateMap', - 'RemoveNominationByMap', - 'RemoveNominationByOwner', - 'GetExcludeMapList', - 'GetNominatedMapList', - 'CanMapChooserStartVote', - 'InitiateMapChooserVote', - 'HasEndOfMapVoteFinished', - 'EndOfMapVoteEnabled', - 'OnNominationRemoved', - 'OnMapVoteStarted', - 'CreateTimer', - 'KillTimer', - 'TriggerTimer', - 'GetTickedTime', - 'GetMapTimeLeft', - 'GetMapTimeLimit', - 'ExtendMapTimeLimit', - 'GetTickInterval', - 'OnMapTimeLeftChanged', - 'IsServerProcessing', - 'CreateDataTimer', - 'ByteCountToCells', - 'CreateArray', - 'ClearArray', - 'CloneArray', - 'ResizeArray', - 'GetArraySize', - 'PushArrayCell', - 'PushArrayString', - 'PushArrayArray', - 'GetArrayCell', - 'GetArrayString', - 'GetArrayArray', - 'SetArrayCell', - 'SetArrayString', - 'SetArrayArray', - 'ShiftArrayUp', - 'RemoveFromArray', - 'SwapArrayItems', - 'FindStringInArray', - 'FindValueInArray', - 'ProcessTargetString', - 'ReplyToTargetError', - 'MultiTargetFilter', - 'AddMultiTargetFilter', - 'RemoveMultiTargetFilter', - 'OnBanClient', - 'OnBanIdentity', - 'OnRemoveBan', - 'BanClient', - 'BanIdentity', - 'RemoveBan', - 'CreateTrie', - 'SetTrieValue', - 'SetTrieArray', - 'SetTrieString', - 'GetTrieValue', - 'GetTrieArray', - 'GetTrieString', - 'RemoveFromTrie', - 'ClearTrie', - 'GetTrieSize', - 'GetFunctionByName', - 'CreateGlobalForward', - 'CreateForward', - 'GetForwardFunctionCount', - 'AddToForward', - 'RemoveFromForward', - 'RemoveAllFromForward', - 'Call_StartForward', - 'Call_StartFunction', - 'Call_PushCell', - 'Call_PushCellRef', - 'Call_PushFloat', - 'Call_PushFloatRef', - 'Call_PushArray', - 'Call_PushArrayEx', - 'Call_PushString', - 'Call_PushStringEx', - 'Call_Finish', - 'Call_Cancel', - 'NativeCall', - 'CreateNative', - 'ThrowNativeError', - 'GetNativeStringLength', - 'GetNativeString', - 'SetNativeString', - 'GetNativeCell', - 'GetNativeCellRef', - 'SetNativeCellRef', - 'GetNativeArray', - 'SetNativeArray', - 'FormatNativeString', - 'RequestFrameCallback', - 'RequestFrame', - 'OnRebuildAdminCache', - 'DumpAdminCache', - 'AddCommandOverride', - 'GetCommandOverride', - 'UnsetCommandOverride', - 'CreateAdmGroup', - 'FindAdmGroup', - 'SetAdmGroupAddFlag', - 'GetAdmGroupAddFlag', - 'GetAdmGroupAddFlags', - 'SetAdmGroupImmuneFrom', - 'GetAdmGroupImmuneCount', - 'GetAdmGroupImmuneFrom', - 'AddAdmGroupCmdOverride', - 'GetAdmGroupCmdOverride', - 'RegisterAuthIdentType', - 'CreateAdmin', - 'GetAdminUsername', - 'BindAdminIdentity', - 'SetAdminFlag', - 'GetAdminFlag', - 'GetAdminFlags', - 'AdminInheritGroup', - 'GetAdminGroupCount', - 'GetAdminGroup', - 'SetAdminPassword', - 'GetAdminPassword', - 'FindAdminByIdentity', - 'RemoveAdmin', - 'FlagBitsToBitArray', - 'FlagBitArrayToBits', - 'FlagArrayToBits', - 'FlagBitsToArray', - 'FindFlagByName', - 'FindFlagByChar', - 'FindFlagChar', - 'ReadFlagString', - 'CanAdminTarget', - 'CreateAuthMethod', - 'SetAdmGroupImmunityLevel', - 'GetAdmGroupImmunityLevel', - 'SetAdminImmunityLevel', - 'GetAdminImmunityLevel', - 'FlagToBit', - 'BitToFlag', - 'ServerCommand', - 'ServerCommandEx', - 'InsertServerCommand', - 'ServerExecute', - 'ClientCommand', - 'FakeClientCommand', - 'FakeClientCommandEx', - 'PrintToServer', - 'PrintToConsole', - 'ReplyToCommand', - 'GetCmdReplySource', - 'SetCmdReplySource', - 'IsChatTrigger', - 'ShowActivity2', - 'ShowActivity', - 'ShowActivityEx', - 'FormatActivitySource', - 'SrvCmd', - 'RegServerCmd', - 'ConCmd', - 'RegConsoleCmd', - 'RegAdminCmd', - 'GetCmdArgs', - 'GetCmdArg', - 'GetCmdArgString', - 'CreateConVar', - 'FindConVar', - 'ConVarChanged', - 'HookConVarChange', - 'UnhookConVarChange', - 'GetConVarBool', - 'SetConVarBool', - 'GetConVarInt', - 'SetConVarInt', - 'GetConVarFloat', - 'SetConVarFloat', - 'GetConVarString', - 'SetConVarString', - 'ResetConVar', - 'GetConVarDefault', - 'GetConVarFlags', - 'SetConVarFlags', - 'GetConVarBounds', - 'SetConVarBounds', - 'GetConVarName', - 'QueryClientConVar', - 'GetCommandIterator', - 'ReadCommandIterator', - 'CheckCommandAccess', - 'CheckAccess', - 'IsValidConVarChar', - 'GetCommandFlags', - 'SetCommandFlags', - 'FindFirstConCommand', - 'FindNextConCommand', - 'SendConVarValue', - 'AddServerTag', - 'RemoveServerTag', - 'CommandListener', - 'AddCommandListener', - 'RemoveCommandListener', - 'CommandExists', - 'OnClientSayCommand', - 'OnClientSayCommand_Post', - 'TF2_IgnitePlayer', - 'TF2_RespawnPlayer', - 'TF2_RegeneratePlayer', - 'TF2_AddCondition', - 'TF2_RemoveCondition', - 'TF2_SetPlayerPowerPlay', - 'TF2_DisguisePlayer', - 'TF2_RemovePlayerDisguise', - 'TF2_StunPlayer', - 'TF2_MakeBleed', - 'TF2_GetClass', - 'TF2_CalcIsAttackCritical', - 'TF2_OnIsHolidayActive', - 'TF2_IsHolidayActive', - 'TF2_IsPlayerInDuel', - 'TF2_RemoveWearable', - 'TF2_OnConditionAdded', - 'TF2_OnConditionRemoved', - 'TF2_OnWaitingForPlayersStart', - 'TF2_OnWaitingForPlayersEnd', - 'TF2_OnPlayerTeleport', - 'SQL_Connect', - 'SQL_DefConnect', - 'SQL_ConnectCustom', - 'SQLite_UseDatabase', - 'SQL_CheckConfig', - 'SQL_GetDriver', - 'SQL_ReadDriver', - 'SQL_GetDriverIdent', - 'SQL_GetDriverProduct', - 'SQL_SetCharset', - 'SQL_GetAffectedRows', - 'SQL_GetInsertId', - 'SQL_GetError', - 'SQL_EscapeString', - 'SQL_QuoteString', - 'SQL_FastQuery', - 'SQL_Query', - 'SQL_PrepareQuery', - 'SQL_FetchMoreResults', - 'SQL_HasResultSet', - 'SQL_GetRowCount', - 'SQL_GetFieldCount', - 'SQL_FieldNumToName', - 'SQL_FieldNameToNum', - 'SQL_FetchRow', - 'SQL_MoreRows', - 'SQL_Rewind', - 'SQL_FetchString', - 'SQL_FetchFloat', - 'SQL_FetchInt', - 'SQL_IsFieldNull', - 'SQL_FetchSize', - 'SQL_BindParamInt', - 'SQL_BindParamFloat', - 'SQL_BindParamString', - 'SQL_Execute', - 'SQL_LockDatabase', - 'SQL_UnlockDatabase', - 'SQLTCallback', - 'SQL_IsSameConnection', - 'SQL_TConnect', - 'SQL_TQuery', - 'SQL_CreateTransaction', - 'SQL_AddQuery', - 'SQLTxnSuccess', - 'SQLTxnFailure', - 'SQL_ExecuteTransaction', - 'CloseHandle', - 'CloneHandle', - 'MenuHandler', - 'CreateMenu', - 'DisplayMenu', - 'DisplayMenuAtItem', - 'AddMenuItem', - 'InsertMenuItem', - 'RemoveMenuItem', - 'RemoveAllMenuItems', - 'GetMenuItem', - 'GetMenuSelectionPosition', - 'GetMenuItemCount', - 'SetMenuPagination', - 'GetMenuPagination', - 'GetMenuStyle', - 'SetMenuTitle', - 'GetMenuTitle', - 'CreatePanelFromMenu', - 'GetMenuExitButton', - 'SetMenuExitButton', - 'GetMenuExitBackButton', - 'SetMenuExitBackButton', - 'SetMenuNoVoteButton', - 'CancelMenu', - 'GetMenuOptionFlags', - 'SetMenuOptionFlags', - 'IsVoteInProgress', - 'CancelVote', - 'VoteMenu', - 'VoteMenuToAll', - 'VoteHandler', - 'SetVoteResultCallback', - 'CheckVoteDelay', - 'IsClientInVotePool', - 'RedrawClientVoteMenu', - 'GetMenuStyleHandle', - 'CreatePanel', - 'CreateMenuEx', - 'GetClientMenu', - 'CancelClientMenu', - 'GetMaxPageItems', - 'GetPanelStyle', - 'SetPanelTitle', - 'DrawPanelItem', - 'DrawPanelText', - 'CanPanelDrawFlags', - 'SetPanelKeys', - 'SendPanelToClient', - 'GetPanelTextRemaining', - 'GetPanelCurrentKey', - 'SetPanelCurrentKey', - 'RedrawMenuItem', - 'InternalShowMenu', - 'GetMenuVoteInfo', - 'IsNewVoteAllowed', - 'PrefetchSound', - 'EmitAmbientSound', - 'FadeClientVolume', - 'StopSound', - 'EmitSound', - 'EmitSentence', - 'GetDistGainFromSoundLevel', - 'AmbientSHook', - 'NormalSHook', - 'AddAmbientSoundHook', - 'AddNormalSoundHook', - 'RemoveAmbientSoundHook', - 'RemoveNormalSoundHook', - 'EmitSoundToClient', - 'EmitSoundToAll', - 'ATTN_TO_SNDLEVEL', - 'GetGameSoundParams', - 'EmitGameSound', - 'EmitAmbientGameSound', - 'EmitGameSoundToClient', - 'EmitGameSoundToAll', - 'PrecacheScriptSound', - 'strlen', - 'StrContains', - 'strcmp', - 'strncmp', - 'StrEqual', - 'strcopy', - 'Format', - 'FormatEx', - 'VFormat', - 'StringToInt', - 'StringToIntEx', - 'IntToString', - 'StringToFloat', - 'StringToFloatEx', - 'FloatToString', - 'BreakString', - 'TrimString', - 'SplitString', - 'ReplaceString', - 'ReplaceStringEx', - 'GetCharBytes', - 'IsCharAlpha', - 'IsCharNumeric', - 'IsCharSpace', - 'IsCharMB', - 'IsCharUpper', - 'IsCharLower', - 'StripQuotes', - 'CharToUpper', - 'CharToLower', - 'FindCharInString', - 'StrCat', - 'ExplodeString', - 'ImplodeStrings', - 'GetVectorLength', - 'GetVectorDistance', - 'GetVectorDotProduct', - 'GetVectorCrossProduct', - 'NormalizeVector', - 'GetAngleVectors', - 'GetVectorAngles', - 'GetVectorVectors', - 'AddVectors', - 'SubtractVectors', - 'ScaleVector', - 'NegateVector', - 'MakeVectorFromPoints', - 'BaseComm_IsClientGagged', - 'BaseComm_IsClientMuted', - 'BaseComm_SetClientGag', - 'BaseComm_SetClientMute', - 'FormatUserLogText', - 'FindPluginByFile', - 'FindTarget', - 'AcceptEntityInput', - 'SetVariantBool', - 'SetVariantString', - 'SetVariantInt', - 'SetVariantFloat', - 'SetVariantVector3D', - 'SetVariantPosVector3D', - 'SetVariantColor', - 'SetVariantEntity', - 'GameRules_GetProp', - 'GameRules_SetProp', - 'GameRules_GetPropFloat', - 'GameRules_SetPropFloat', - 'GameRules_GetPropEnt', - 'GameRules_SetPropEnt', - 'GameRules_GetPropVector', - 'GameRules_SetPropVector', - 'GameRules_GetPropString', - 'GameRules_SetPropString', - 'GameRules_GetRoundState', - 'OnClientConnect', - 'OnClientConnected', - 'OnClientPutInServer', - 'OnClientDisconnect', - 'OnClientDisconnect_Post', - 'OnClientCommand', - 'OnClientSettingsChanged', - 'OnClientAuthorized', - 'OnClientPreAdminCheck', - 'OnClientPostAdminFilter', - 'OnClientPostAdminCheck', - 'GetMaxClients', - 'GetMaxHumanPlayers', - 'GetClientCount', - 'GetClientName', - 'GetClientIP', - 'GetClientAuthString', - 'GetClientAuthId', - 'GetSteamAccountID', - 'GetClientUserId', - 'IsClientConnected', - 'IsClientInGame', - 'IsClientInKickQueue', - 'IsClientAuthorized', - 'IsFakeClient', - 'IsClientSourceTV', - 'IsClientReplay', - 'IsClientObserver', - 'IsPlayerAlive', - 'GetClientInfo', - 'GetClientTeam', - 'SetUserAdmin', - 'GetUserAdmin', - 'AddUserFlags', - 'RemoveUserFlags', - 'SetUserFlagBits', - 'GetUserFlagBits', - 'CanUserTarget', - 'RunAdminCacheChecks', - 'NotifyPostAdminCheck', - 'CreateFakeClient', - 'SetFakeClientConVar', - 'GetClientHealth', - 'GetClientModel', - 'GetClientWeapon', - 'GetClientMaxs', - 'GetClientMins', - 'GetClientAbsAngles', - 'GetClientAbsOrigin', - 'GetClientArmor', - 'GetClientDeaths', - 'GetClientFrags', - 'GetClientDataRate', - 'IsClientTimingOut', - 'GetClientTime', - 'GetClientLatency', - 'GetClientAvgLatency', - 'GetClientAvgLoss', - 'GetClientAvgChoke', - 'GetClientAvgData', - 'GetClientAvgPackets', - 'GetClientOfUserId', - 'KickClient', - 'KickClientEx', - 'ChangeClientTeam', - 'GetClientSerial', - 'GetClientFromSerial', - 'FindStringTable', - 'GetNumStringTables', - 'GetStringTableNumStrings', - 'GetStringTableMaxStrings', - 'GetStringTableName', - 'FindStringIndex', - 'ReadStringTable', - 'GetStringTableDataLength', - 'GetStringTableData', - 'SetStringTableData', - 'AddToStringTable', - 'LockStringTables', - 'AddFileToDownloadsTable', - 'GetEntityFlags', - 'SetEntityFlags', - 'GetEntityMoveType', - 'SetEntityMoveType', - 'GetEntityRenderMode', - 'SetEntityRenderMode', - 'GetEntityRenderFx', - 'SetEntityRenderFx', - 'SetEntityRenderColor', - 'GetEntityGravity', - 'SetEntityGravity', - 'SetEntityHealth', - 'GetClientButtons', - 'EntityOutput', - 'HookEntityOutput', - 'UnhookEntityOutput', - 'HookSingleEntityOutput', - 'UnhookSingleEntityOutput', - 'SMC_CreateParser', - 'SMC_ParseFile', - 'SMC_GetErrorString', - 'SMC_ParseStart', - 'SMC_SetParseStart', - 'SMC_ParseEnd', - 'SMC_SetParseEnd', - 'SMC_NewSection', - 'SMC_KeyValue', - 'SMC_EndSection', - 'SMC_SetReaders', - 'SMC_RawLine', - 'SMC_SetRawLine', - 'BfWriteBool', - 'BfWriteByte', - 'BfWriteChar', - 'BfWriteShort', - 'BfWriteWord', - 'BfWriteNum', - 'BfWriteFloat', - 'BfWriteString', - 'BfWriteEntity', - 'BfWriteAngle', - 'BfWriteCoord', - 'BfWriteVecCoord', - 'BfWriteVecNormal', - 'BfWriteAngles', - 'BfReadBool', - 'BfReadByte', - 'BfReadChar', - 'BfReadShort', - 'BfReadWord', - 'BfReadNum', - 'BfReadFloat', - 'BfReadString', - 'BfReadEntity', - 'BfReadAngle', - 'BfReadCoord', - 'BfReadVecCoord', - 'BfReadVecNormal', - 'BfReadAngles', - 'BfGetNumBytesLeft', - 'CreateProfiler', - 'StartProfiling', - 'StopProfiling', - 'GetProfilerTime', - 'OnPluginStart', - 'AskPluginLoad2', - 'OnPluginEnd', - 'OnPluginPauseChange', - 'OnGameFrame', - 'OnMapStart', - 'OnMapEnd', - 'OnConfigsExecuted', - 'OnAutoConfigsBuffered', - 'OnAllPluginsLoaded', - 'GetMyHandle', - 'GetPluginIterator', - 'MorePlugins', - 'ReadPlugin', - 'GetPluginStatus', - 'GetPluginFilename', - 'IsPluginDebugging', - 'GetPluginInfo', - 'FindPluginByNumber', - 'SetFailState', - 'ThrowError', - 'GetTime', - 'FormatTime', - 'LoadGameConfigFile', - 'GameConfGetOffset', - 'GameConfGetKeyValue', - 'GameConfGetAddress', - 'GetSysTickCount', - 'AutoExecConfig', - 'RegPluginLibrary', - 'LibraryExists', - 'GetExtensionFileStatus', - 'OnLibraryAdded', - 'OnLibraryRemoved', - 'ReadMapList', - 'SetMapListCompatBind', - 'OnClientFloodCheck', - 'OnClientFloodResult', - 'CanTestFeatures', - 'GetFeatureStatus', - 'RequireFeature', - 'LoadFromAddress', - 'StoreToAddress', - 'CreateStack', - 'PushStackCell', - 'PushStackString', - 'PushStackArray', - 'PopStackCell', - 'PopStackString', - 'PopStackArray', - 'IsStackEmpty', - 'PopStack', - 'OnPlayerRunCmd', - 'BuildPath', - 'OpenDirectory', - 'ReadDirEntry', - 'OpenFile', - 'DeleteFile', - 'ReadFileLine', - 'ReadFile', - 'ReadFileString', - 'WriteFile', - 'WriteFileString', - 'WriteFileLine', - 'ReadFileCell', - 'WriteFileCell', - 'IsEndOfFile', - 'FileSeek', - 'FilePosition', - 'FileExists', - 'RenameFile', - 'DirExists', - 'FileSize', - 'FlushFile', - 'RemoveDir', - 'CreateDirectory', - 'GetFileTime', - 'LogToOpenFile', - 'LogToOpenFileEx', - 'PbReadInt', - 'PbReadFloat', - 'PbReadBool', - 'PbReadString', - 'PbReadColor', - 'PbReadAngle', - 'PbReadVector', - 'PbReadVector2D', - 'PbGetRepeatedFieldCount', - 'PbSetInt', - 'PbSetFloat', - 'PbSetBool', - 'PbSetString', - 'PbSetColor', - 'PbSetAngle', - 'PbSetVector', - 'PbSetVector2D', - 'PbAddInt', - 'PbAddFloat', - 'PbAddBool', - 'PbAddString', - 'PbAddColor', - 'PbAddAngle', - 'PbAddVector', - 'PbAddVector2D', - 'PbRemoveRepeatedFieldValue', - 'PbReadMessage', - 'PbReadRepeatedMessage', - 'PbAddMessage', - 'SetNextMap', - 'GetNextMap', - 'ForceChangeLevel', - 'GetMapHistorySize', - 'GetMapHistory', - 'GeoipCode2', - 'GeoipCode3', - 'GeoipCountry', - 'MarkNativeAsOptional', - 'RegClientCookie', - 'FindClientCookie', - 'SetClientCookie', - 'GetClientCookie', - 'SetAuthIdCookie', - 'AreClientCookiesCached', - 'OnClientCookiesCached', - 'CookieMenuHandler', - 'SetCookiePrefabMenu', - 'SetCookieMenuItem', - 'ShowCookieMenu', - 'GetCookieIterator', - 'ReadCookieIterator', - 'GetCookieAccess', - 'GetClientCookieTime', - 'LoadTranslations', - 'SetGlobalTransTarget', - 'GetClientLanguage', - 'GetServerLanguage', - 'GetLanguageCount', - 'GetLanguageInfo', - 'SetClientLanguage', - 'GetLanguageByCode', - 'GetLanguageByName', - 'CS_OnBuyCommand', - 'CS_OnCSWeaponDrop', - 'CS_OnGetWeaponPrice', - 'CS_OnTerminateRound', - 'CS_RespawnPlayer', - 'CS_SwitchTeam', - 'CS_DropWeapon', - 'CS_TerminateRound', - 'CS_GetTranslatedWeaponAlias', - 'CS_GetWeaponPrice', - 'CS_GetClientClanTag', - 'CS_SetClientClanTag', - 'CS_GetTeamScore', - 'CS_SetTeamScore', - 'CS_GetMVPCount', - 'CS_SetMVPCount', - 'CS_GetClientContributionScore', - 'CS_SetClientContributionScore', - 'CS_GetClientAssists', - 'CS_SetClientAssists', - 'CS_AliasToWeaponID', - 'CS_WeaponIDToAlias', - 'CS_IsValidWeaponID', - 'CS_UpdateClientModel', - 'LogToGame', - 'SetRandomSeed', - 'GetRandomFloat', - 'GetRandomInt', - 'IsMapValid', - 'IsDedicatedServer', - 'GetEngineTime', - 'GetGameTime', - 'GetGameTickCount', - 'GetGameDescription', - 'GetGameFolderName', - 'GetCurrentMap', - 'PrecacheModel', - 'PrecacheSentenceFile', - 'PrecacheDecal', - 'PrecacheGeneric', - 'IsModelPrecached', - 'IsDecalPrecached', - 'IsGenericPrecached', - 'PrecacheSound', - 'IsSoundPrecached', - 'CreateDialog', - 'GetEngineVersion', - 'PrintToChat', - 'PrintToChatAll', - 'PrintCenterText', - 'PrintCenterTextAll', - 'PrintHintText', - 'PrintHintTextToAll', - 'ShowVGUIPanel', - 'CreateHudSynchronizer', - 'SetHudTextParams', - 'SetHudTextParamsEx', - 'ShowSyncHudText', - 'ClearSyncHud', - 'ShowHudText', - 'ShowMOTDPanel', - 'DisplayAskConnectBox', - 'EntIndexToEntRef', - 'EntRefToEntIndex', - 'MakeCompatEntRef', - 'SetClientViewEntity', - 'SetLightStyle', - 'GetClientEyePosition', - 'CreateDataPack', - 'WritePackCell', - 'WritePackFloat', - 'WritePackString', - 'ReadPackCell', - 'ReadPackFloat', - 'ReadPackString', - 'ResetPack', - 'GetPackPosition', - 'SetPackPosition', - 'IsPackReadable', - 'LogMessage', - 'LogToFile', - 'LogToFileEx', - 'LogAction', - 'LogError', - 'OnLogAction', - 'GameLogHook', - 'AddGameLogHook', - 'RemoveGameLogHook', - 'FindTeamByName', - 'StartPrepSDKCall', - 'PrepSDKCall_SetVirtual', - 'PrepSDKCall_SetSignature', - 'PrepSDKCall_SetAddress', - 'PrepSDKCall_SetFromConf', - 'PrepSDKCall_SetReturnInfo', - 'PrepSDKCall_AddParameter', - 'EndPrepSDKCall', - 'SDKCall', - 'GetPlayerResourceEntity', + "OnEntityCreated", + "OnEntityDestroyed", + "OnGetGameDescription", + "OnLevelInit", + "SDKHook", + "SDKHookEx", + "SDKUnhook", + "SDKHooks_TakeDamage", + "SDKHooks_DropWeapon", + "TopMenuHandler", + "CreateTopMenu", + "LoadTopMenuConfig", + "AddToTopMenu", + "GetTopMenuInfoString", + "GetTopMenuObjName", + "RemoveFromTopMenu", + "DisplayTopMenu", + "DisplayTopMenuCategory", + "FindTopMenuCategory", + "SetTopMenuTitleCaching", + "OnAdminMenuCreated", + "OnAdminMenuReady", + "GetAdminTopMenu", + "AddTargetsToMenu", + "AddTargetsToMenu2", + "RedisplayAdminMenu", + "TEHook", + "AddTempEntHook", + "RemoveTempEntHook", + "TE_Start", + "TE_IsValidProp", + "TE_WriteNum", + "TE_ReadNum", + "TE_WriteFloat", + "TE_ReadFloat", + "TE_WriteVector", + "TE_ReadVector", + "TE_WriteAngles", + "TE_WriteFloatArray", + "TE_Send", + "TE_WriteEncodedEnt", + "TE_SendToAll", + "TE_SendToClient", + "CreateKeyValues", + "KvSetString", + "KvSetNum", + "KvSetUInt64", + "KvSetFloat", + "KvSetColor", + "KvSetVector", + "KvGetString", + "KvGetNum", + "KvGetFloat", + "KvGetColor", + "KvGetUInt64", + "KvGetVector", + "KvJumpToKey", + "KvJumpToKeySymbol", + "KvGotoFirstSubKey", + "KvGotoNextKey", + "KvSavePosition", + "KvDeleteKey", + "KvDeleteThis", + "KvGoBack", + "KvRewind", + "KvGetSectionName", + "KvSetSectionName", + "KvGetDataType", + "KeyValuesToFile", + "FileToKeyValues", + "StringToKeyValues", + "KvSetEscapeSequences", + "KvNodesInStack", + "KvCopySubkeys", + "KvFindKeyById", + "KvGetNameSymbol", + "KvGetSectionSymbol", + "TE_SetupSparks", + "TE_SetupSmoke", + "TE_SetupDust", + "TE_SetupMuzzleFlash", + "TE_SetupMetalSparks", + "TE_SetupEnergySplash", + "TE_SetupArmorRicochet", + "TE_SetupGlowSprite", + "TE_SetupExplosion", + "TE_SetupBloodSprite", + "TE_SetupBeamRingPoint", + "TE_SetupBeamPoints", + "TE_SetupBeamLaser", + "TE_SetupBeamRing", + "TE_SetupBeamFollow", + "HookEvent", + "HookEventEx", + "UnhookEvent", + "CreateEvent", + "FireEvent", + "CancelCreatedEvent", + "GetEventBool", + "SetEventBool", + "GetEventInt", + "SetEventInt", + "GetEventFloat", + "SetEventFloat", + "GetEventString", + "SetEventString", + "GetEventName", + "SetEventBroadcast", + "GetUserMessageType", + "GetUserMessageId", + "GetUserMessageName", + "StartMessage", + "StartMessageEx", + "EndMessage", + "MsgHook", + "MsgPostHook", + "HookUserMessage", + "UnhookUserMessage", + "StartMessageAll", + "StartMessageOne", + "InactivateClient", + "ReconnectClient", + "GetMaxEntities", + "GetEntityCount", + "IsValidEntity", + "IsValidEdict", + "IsEntNetworkable", + "CreateEdict", + "RemoveEdict", + "GetEdictFlags", + "SetEdictFlags", + "GetEdictClassname", + "GetEntityNetClass", + "ChangeEdictState", + "GetEntData", + "SetEntData", + "GetEntDataFloat", + "SetEntDataFloat", + "GetEntDataEnt2", + "SetEntDataEnt2", + "GetEntDataVector", + "SetEntDataVector", + "GetEntDataString", + "SetEntDataString", + "FindSendPropOffs", + "FindSendPropInfo", + "FindDataMapOffs", + "FindDataMapInfo", + "GetEntSendPropOffs", + "GetEntProp", + "SetEntProp", + "GetEntPropFloat", + "SetEntPropFloat", + "GetEntPropEnt", + "SetEntPropEnt", + "GetEntPropVector", + "SetEntPropVector", + "GetEntPropString", + "SetEntPropString", + "GetEntPropArraySize", + "GetEntDataArray", + "SetEntDataArray", + "GetEntityAddress", + "GetEntityClassname", + "float", + "FloatMul", + "FloatDiv", + "FloatAdd", + "FloatSub", + "FloatFraction", + "RoundToZero", + "RoundToCeil", + "RoundToFloor", + "RoundToNearest", + "FloatCompare", + "SquareRoot", + "Pow", + "Exponential", + "Logarithm", + "Sine", + "Cosine", + "Tangent", + "FloatAbs", + "ArcTangent", + "ArcCosine", + "ArcSine", + "ArcTangent2", + "RoundFloat", + "operator%", + "DegToRad", + "RadToDeg", + "GetURandomInt", + "GetURandomFloat", + "SetURandomSeed", + "SetURandomSeedSimple", + "RemovePlayerItem", + "GivePlayerItem", + "GetPlayerWeaponSlot", + "IgniteEntity", + "ExtinguishEntity", + "TeleportEntity", + "ForcePlayerSuicide", + "SlapPlayer", + "FindEntityByClassname", + "GetClientEyeAngles", + "CreateEntityByName", + "DispatchSpawn", + "DispatchKeyValue", + "DispatchKeyValueFloat", + "DispatchKeyValueVector", + "GetClientAimTarget", + "GetTeamCount", + "GetTeamName", + "GetTeamScore", + "SetTeamScore", + "GetTeamClientCount", + "SetEntityModel", + "GetPlayerDecalFile", + "GetPlayerJingleFile", + "GetServerNetStats", + "EquipPlayerWeapon", + "ActivateEntity", + "SetClientInfo", + "GivePlayerAmmo", + "SetClientListeningFlags", + "GetClientListeningFlags", + "SetListenOverride", + "GetListenOverride", + "IsClientMuted", + "TR_GetPointContents", + "TR_GetPointContentsEnt", + "TR_TraceRay", + "TR_TraceHull", + "TR_TraceRayFilter", + "TR_TraceHullFilter", + "TR_TraceRayEx", + "TR_TraceHullEx", + "TR_TraceRayFilterEx", + "TR_TraceHullFilterEx", + "TR_GetFraction", + "TR_GetEndPosition", + "TR_GetEntityIndex", + "TR_DidHit", + "TR_GetHitGroup", + "TR_GetPlaneNormal", + "TR_PointOutsideWorld", + "SortIntegers", + "SortFloats", + "SortStrings", + "SortFunc1D", + "SortCustom1D", + "SortCustom2D", + "SortADTArray", + "SortFuncADTArray", + "SortADTArrayCustom", + "CompileRegex", + "MatchRegex", + "GetRegexSubString", + "SimpleRegexMatch", + "TF2_GetPlayerClass", + "TF2_SetPlayerClass", + "TF2_RemoveWeaponSlot", + "TF2_RemoveAllWeapons", + "TF2_IsPlayerInCondition", + "TF2_GetObjectType", + "TF2_GetObjectMode", + "NominateMap", + "RemoveNominationByMap", + "RemoveNominationByOwner", + "GetExcludeMapList", + "GetNominatedMapList", + "CanMapChooserStartVote", + "InitiateMapChooserVote", + "HasEndOfMapVoteFinished", + "EndOfMapVoteEnabled", + "OnNominationRemoved", + "OnMapVoteStarted", + "CreateTimer", + "KillTimer", + "TriggerTimer", + "GetTickedTime", + "GetMapTimeLeft", + "GetMapTimeLimit", + "ExtendMapTimeLimit", + "GetTickInterval", + "OnMapTimeLeftChanged", + "IsServerProcessing", + "CreateDataTimer", + "ByteCountToCells", + "CreateArray", + "ClearArray", + "CloneArray", + "ResizeArray", + "GetArraySize", + "PushArrayCell", + "PushArrayString", + "PushArrayArray", + "GetArrayCell", + "GetArrayString", + "GetArrayArray", + "SetArrayCell", + "SetArrayString", + "SetArrayArray", + "ShiftArrayUp", + "RemoveFromArray", + "SwapArrayItems", + "FindStringInArray", + "FindValueInArray", + "ProcessTargetString", + "ReplyToTargetError", + "MultiTargetFilter", + "AddMultiTargetFilter", + "RemoveMultiTargetFilter", + "OnBanClient", + "OnBanIdentity", + "OnRemoveBan", + "BanClient", + "BanIdentity", + "RemoveBan", + "CreateTrie", + "SetTrieValue", + "SetTrieArray", + "SetTrieString", + "GetTrieValue", + "GetTrieArray", + "GetTrieString", + "RemoveFromTrie", + "ClearTrie", + "GetTrieSize", + "GetFunctionByName", + "CreateGlobalForward", + "CreateForward", + "GetForwardFunctionCount", + "AddToForward", + "RemoveFromForward", + "RemoveAllFromForward", + "Call_StartForward", + "Call_StartFunction", + "Call_PushCell", + "Call_PushCellRef", + "Call_PushFloat", + "Call_PushFloatRef", + "Call_PushArray", + "Call_PushArrayEx", + "Call_PushString", + "Call_PushStringEx", + "Call_Finish", + "Call_Cancel", + "NativeCall", + "CreateNative", + "ThrowNativeError", + "GetNativeStringLength", + "GetNativeString", + "SetNativeString", + "GetNativeCell", + "GetNativeCellRef", + "SetNativeCellRef", + "GetNativeArray", + "SetNativeArray", + "FormatNativeString", + "RequestFrameCallback", + "RequestFrame", + "OnRebuildAdminCache", + "DumpAdminCache", + "AddCommandOverride", + "GetCommandOverride", + "UnsetCommandOverride", + "CreateAdmGroup", + "FindAdmGroup", + "SetAdmGroupAddFlag", + "GetAdmGroupAddFlag", + "GetAdmGroupAddFlags", + "SetAdmGroupImmuneFrom", + "GetAdmGroupImmuneCount", + "GetAdmGroupImmuneFrom", + "AddAdmGroupCmdOverride", + "GetAdmGroupCmdOverride", + "RegisterAuthIdentType", + "CreateAdmin", + "GetAdminUsername", + "BindAdminIdentity", + "SetAdminFlag", + "GetAdminFlag", + "GetAdminFlags", + "AdminInheritGroup", + "GetAdminGroupCount", + "GetAdminGroup", + "SetAdminPassword", + "GetAdminPassword", + "FindAdminByIdentity", + "RemoveAdmin", + "FlagBitsToBitArray", + "FlagBitArrayToBits", + "FlagArrayToBits", + "FlagBitsToArray", + "FindFlagByName", + "FindFlagByChar", + "FindFlagChar", + "ReadFlagString", + "CanAdminTarget", + "CreateAuthMethod", + "SetAdmGroupImmunityLevel", + "GetAdmGroupImmunityLevel", + "SetAdminImmunityLevel", + "GetAdminImmunityLevel", + "FlagToBit", + "BitToFlag", + "ServerCommand", + "ServerCommandEx", + "InsertServerCommand", + "ServerExecute", + "ClientCommand", + "FakeClientCommand", + "FakeClientCommandEx", + "PrintToServer", + "PrintToConsole", + "ReplyToCommand", + "GetCmdReplySource", + "SetCmdReplySource", + "IsChatTrigger", + "ShowActivity2", + "ShowActivity", + "ShowActivityEx", + "FormatActivitySource", + "SrvCmd", + "RegServerCmd", + "ConCmd", + "RegConsoleCmd", + "RegAdminCmd", + "GetCmdArgs", + "GetCmdArg", + "GetCmdArgString", + "CreateConVar", + "FindConVar", + "ConVarChanged", + "HookConVarChange", + "UnhookConVarChange", + "GetConVarBool", + "SetConVarBool", + "GetConVarInt", + "SetConVarInt", + "GetConVarFloat", + "SetConVarFloat", + "GetConVarString", + "SetConVarString", + "ResetConVar", + "GetConVarDefault", + "GetConVarFlags", + "SetConVarFlags", + "GetConVarBounds", + "SetConVarBounds", + "GetConVarName", + "QueryClientConVar", + "GetCommandIterator", + "ReadCommandIterator", + "CheckCommandAccess", + "CheckAccess", + "IsValidConVarChar", + "GetCommandFlags", + "SetCommandFlags", + "FindFirstConCommand", + "FindNextConCommand", + "SendConVarValue", + "AddServerTag", + "RemoveServerTag", + "CommandListener", + "AddCommandListener", + "RemoveCommandListener", + "CommandExists", + "OnClientSayCommand", + "OnClientSayCommand_Post", + "TF2_IgnitePlayer", + "TF2_RespawnPlayer", + "TF2_RegeneratePlayer", + "TF2_AddCondition", + "TF2_RemoveCondition", + "TF2_SetPlayerPowerPlay", + "TF2_DisguisePlayer", + "TF2_RemovePlayerDisguise", + "TF2_StunPlayer", + "TF2_MakeBleed", + "TF2_GetClass", + "TF2_CalcIsAttackCritical", + "TF2_OnIsHolidayActive", + "TF2_IsHolidayActive", + "TF2_IsPlayerInDuel", + "TF2_RemoveWearable", + "TF2_OnConditionAdded", + "TF2_OnConditionRemoved", + "TF2_OnWaitingForPlayersStart", + "TF2_OnWaitingForPlayersEnd", + "TF2_OnPlayerTeleport", + "SQL_Connect", + "SQL_DefConnect", + "SQL_ConnectCustom", + "SQLite_UseDatabase", + "SQL_CheckConfig", + "SQL_GetDriver", + "SQL_ReadDriver", + "SQL_GetDriverIdent", + "SQL_GetDriverProduct", + "SQL_SetCharset", + "SQL_GetAffectedRows", + "SQL_GetInsertId", + "SQL_GetError", + "SQL_EscapeString", + "SQL_QuoteString", + "SQL_FastQuery", + "SQL_Query", + "SQL_PrepareQuery", + "SQL_FetchMoreResults", + "SQL_HasResultSet", + "SQL_GetRowCount", + "SQL_GetFieldCount", + "SQL_FieldNumToName", + "SQL_FieldNameToNum", + "SQL_FetchRow", + "SQL_MoreRows", + "SQL_Rewind", + "SQL_FetchString", + "SQL_FetchFloat", + "SQL_FetchInt", + "SQL_IsFieldNull", + "SQL_FetchSize", + "SQL_BindParamInt", + "SQL_BindParamFloat", + "SQL_BindParamString", + "SQL_Execute", + "SQL_LockDatabase", + "SQL_UnlockDatabase", + "SQLTCallback", + "SQL_IsSameConnection", + "SQL_TConnect", + "SQL_TQuery", + "SQL_CreateTransaction", + "SQL_AddQuery", + "SQLTxnSuccess", + "SQLTxnFailure", + "SQL_ExecuteTransaction", + "CloseHandle", + "CloneHandle", + "MenuHandler", + "CreateMenu", + "DisplayMenu", + "DisplayMenuAtItem", + "AddMenuItem", + "InsertMenuItem", + "RemoveMenuItem", + "RemoveAllMenuItems", + "GetMenuItem", + "GetMenuSelectionPosition", + "GetMenuItemCount", + "SetMenuPagination", + "GetMenuPagination", + "GetMenuStyle", + "SetMenuTitle", + "GetMenuTitle", + "CreatePanelFromMenu", + "GetMenuExitButton", + "SetMenuExitButton", + "GetMenuExitBackButton", + "SetMenuExitBackButton", + "SetMenuNoVoteButton", + "CancelMenu", + "GetMenuOptionFlags", + "SetMenuOptionFlags", + "IsVoteInProgress", + "CancelVote", + "VoteMenu", + "VoteMenuToAll", + "VoteHandler", + "SetVoteResultCallback", + "CheckVoteDelay", + "IsClientInVotePool", + "RedrawClientVoteMenu", + "GetMenuStyleHandle", + "CreatePanel", + "CreateMenuEx", + "GetClientMenu", + "CancelClientMenu", + "GetMaxPageItems", + "GetPanelStyle", + "SetPanelTitle", + "DrawPanelItem", + "DrawPanelText", + "CanPanelDrawFlags", + "SetPanelKeys", + "SendPanelToClient", + "GetPanelTextRemaining", + "GetPanelCurrentKey", + "SetPanelCurrentKey", + "RedrawMenuItem", + "InternalShowMenu", + "GetMenuVoteInfo", + "IsNewVoteAllowed", + "PrefetchSound", + "EmitAmbientSound", + "FadeClientVolume", + "StopSound", + "EmitSound", + "EmitSentence", + "GetDistGainFromSoundLevel", + "AmbientSHook", + "NormalSHook", + "AddAmbientSoundHook", + "AddNormalSoundHook", + "RemoveAmbientSoundHook", + "RemoveNormalSoundHook", + "EmitSoundToClient", + "EmitSoundToAll", + "ATTN_TO_SNDLEVEL", + "GetGameSoundParams", + "EmitGameSound", + "EmitAmbientGameSound", + "EmitGameSoundToClient", + "EmitGameSoundToAll", + "PrecacheScriptSound", + "strlen", + "StrContains", + "strcmp", + "strncmp", + "StrEqual", + "strcopy", + "Format", + "FormatEx", + "VFormat", + "StringToInt", + "StringToIntEx", + "IntToString", + "StringToFloat", + "StringToFloatEx", + "FloatToString", + "BreakString", + "TrimString", + "SplitString", + "ReplaceString", + "ReplaceStringEx", + "GetCharBytes", + "IsCharAlpha", + "IsCharNumeric", + "IsCharSpace", + "IsCharMB", + "IsCharUpper", + "IsCharLower", + "StripQuotes", + "CharToUpper", + "CharToLower", + "FindCharInString", + "StrCat", + "ExplodeString", + "ImplodeStrings", + "GetVectorLength", + "GetVectorDistance", + "GetVectorDotProduct", + "GetVectorCrossProduct", + "NormalizeVector", + "GetAngleVectors", + "GetVectorAngles", + "GetVectorVectors", + "AddVectors", + "SubtractVectors", + "ScaleVector", + "NegateVector", + "MakeVectorFromPoints", + "BaseComm_IsClientGagged", + "BaseComm_IsClientMuted", + "BaseComm_SetClientGag", + "BaseComm_SetClientMute", + "FormatUserLogText", + "FindPluginByFile", + "FindTarget", + "AcceptEntityInput", + "SetVariantBool", + "SetVariantString", + "SetVariantInt", + "SetVariantFloat", + "SetVariantVector3D", + "SetVariantPosVector3D", + "SetVariantColor", + "SetVariantEntity", + "GameRules_GetProp", + "GameRules_SetProp", + "GameRules_GetPropFloat", + "GameRules_SetPropFloat", + "GameRules_GetPropEnt", + "GameRules_SetPropEnt", + "GameRules_GetPropVector", + "GameRules_SetPropVector", + "GameRules_GetPropString", + "GameRules_SetPropString", + "GameRules_GetRoundState", + "OnClientConnect", + "OnClientConnected", + "OnClientPutInServer", + "OnClientDisconnect", + "OnClientDisconnect_Post", + "OnClientCommand", + "OnClientSettingsChanged", + "OnClientAuthorized", + "OnClientPreAdminCheck", + "OnClientPostAdminFilter", + "OnClientPostAdminCheck", + "GetMaxClients", + "GetMaxHumanPlayers", + "GetClientCount", + "GetClientName", + "GetClientIP", + "GetClientAuthString", + "GetClientAuthId", + "GetSteamAccountID", + "GetClientUserId", + "IsClientConnected", + "IsClientInGame", + "IsClientInKickQueue", + "IsClientAuthorized", + "IsFakeClient", + "IsClientSourceTV", + "IsClientReplay", + "IsClientObserver", + "IsPlayerAlive", + "GetClientInfo", + "GetClientTeam", + "SetUserAdmin", + "GetUserAdmin", + "AddUserFlags", + "RemoveUserFlags", + "SetUserFlagBits", + "GetUserFlagBits", + "CanUserTarget", + "RunAdminCacheChecks", + "NotifyPostAdminCheck", + "CreateFakeClient", + "SetFakeClientConVar", + "GetClientHealth", + "GetClientModel", + "GetClientWeapon", + "GetClientMaxs", + "GetClientMins", + "GetClientAbsAngles", + "GetClientAbsOrigin", + "GetClientArmor", + "GetClientDeaths", + "GetClientFrags", + "GetClientDataRate", + "IsClientTimingOut", + "GetClientTime", + "GetClientLatency", + "GetClientAvgLatency", + "GetClientAvgLoss", + "GetClientAvgChoke", + "GetClientAvgData", + "GetClientAvgPackets", + "GetClientOfUserId", + "KickClient", + "KickClientEx", + "ChangeClientTeam", + "GetClientSerial", + "GetClientFromSerial", + "FindStringTable", + "GetNumStringTables", + "GetStringTableNumStrings", + "GetStringTableMaxStrings", + "GetStringTableName", + "FindStringIndex", + "ReadStringTable", + "GetStringTableDataLength", + "GetStringTableData", + "SetStringTableData", + "AddToStringTable", + "LockStringTables", + "AddFileToDownloadsTable", + "GetEntityFlags", + "SetEntityFlags", + "GetEntityMoveType", + "SetEntityMoveType", + "GetEntityRenderMode", + "SetEntityRenderMode", + "GetEntityRenderFx", + "SetEntityRenderFx", + "SetEntityRenderColor", + "GetEntityGravity", + "SetEntityGravity", + "SetEntityHealth", + "GetClientButtons", + "EntityOutput", + "HookEntityOutput", + "UnhookEntityOutput", + "HookSingleEntityOutput", + "UnhookSingleEntityOutput", + "SMC_CreateParser", + "SMC_ParseFile", + "SMC_GetErrorString", + "SMC_ParseStart", + "SMC_SetParseStart", + "SMC_ParseEnd", + "SMC_SetParseEnd", + "SMC_NewSection", + "SMC_KeyValue", + "SMC_EndSection", + "SMC_SetReaders", + "SMC_RawLine", + "SMC_SetRawLine", + "BfWriteBool", + "BfWriteByte", + "BfWriteChar", + "BfWriteShort", + "BfWriteWord", + "BfWriteNum", + "BfWriteFloat", + "BfWriteString", + "BfWriteEntity", + "BfWriteAngle", + "BfWriteCoord", + "BfWriteVecCoord", + "BfWriteVecNormal", + "BfWriteAngles", + "BfReadBool", + "BfReadByte", + "BfReadChar", + "BfReadShort", + "BfReadWord", + "BfReadNum", + "BfReadFloat", + "BfReadString", + "BfReadEntity", + "BfReadAngle", + "BfReadCoord", + "BfReadVecCoord", + "BfReadVecNormal", + "BfReadAngles", + "BfGetNumBytesLeft", + "CreateProfiler", + "StartProfiling", + "StopProfiling", + "GetProfilerTime", + "OnPluginStart", + "AskPluginLoad2", + "OnPluginEnd", + "OnPluginPauseChange", + "OnGameFrame", + "OnMapStart", + "OnMapEnd", + "OnConfigsExecuted", + "OnAutoConfigsBuffered", + "OnAllPluginsLoaded", + "GetMyHandle", + "GetPluginIterator", + "MorePlugins", + "ReadPlugin", + "GetPluginStatus", + "GetPluginFilename", + "IsPluginDebugging", + "GetPluginInfo", + "FindPluginByNumber", + "SetFailState", + "ThrowError", + "GetTime", + "FormatTime", + "LoadGameConfigFile", + "GameConfGetOffset", + "GameConfGetKeyValue", + "GameConfGetAddress", + "GetSysTickCount", + "AutoExecConfig", + "RegPluginLibrary", + "LibraryExists", + "GetExtensionFileStatus", + "OnLibraryAdded", + "OnLibraryRemoved", + "ReadMapList", + "SetMapListCompatBind", + "OnClientFloodCheck", + "OnClientFloodResult", + "CanTestFeatures", + "GetFeatureStatus", + "RequireFeature", + "LoadFromAddress", + "StoreToAddress", + "CreateStack", + "PushStackCell", + "PushStackString", + "PushStackArray", + "PopStackCell", + "PopStackString", + "PopStackArray", + "IsStackEmpty", + "PopStack", + "OnPlayerRunCmd", + "BuildPath", + "OpenDirectory", + "ReadDirEntry", + "OpenFile", + "DeleteFile", + "ReadFileLine", + "ReadFile", + "ReadFileString", + "WriteFile", + "WriteFileString", + "WriteFileLine", + "ReadFileCell", + "WriteFileCell", + "IsEndOfFile", + "FileSeek", + "FilePosition", + "FileExists", + "RenameFile", + "DirExists", + "FileSize", + "FlushFile", + "RemoveDir", + "CreateDirectory", + "GetFileTime", + "LogToOpenFile", + "LogToOpenFileEx", + "PbReadInt", + "PbReadFloat", + "PbReadBool", + "PbReadString", + "PbReadColor", + "PbReadAngle", + "PbReadVector", + "PbReadVector2D", + "PbGetRepeatedFieldCount", + "PbSetInt", + "PbSetFloat", + "PbSetBool", + "PbSetString", + "PbSetColor", + "PbSetAngle", + "PbSetVector", + "PbSetVector2D", + "PbAddInt", + "PbAddFloat", + "PbAddBool", + "PbAddString", + "PbAddColor", + "PbAddAngle", + "PbAddVector", + "PbAddVector2D", + "PbRemoveRepeatedFieldValue", + "PbReadMessage", + "PbReadRepeatedMessage", + "PbAddMessage", + "SetNextMap", + "GetNextMap", + "ForceChangeLevel", + "GetMapHistorySize", + "GetMapHistory", + "GeoipCode2", + "GeoipCode3", + "GeoipCountry", + "MarkNativeAsOptional", + "RegClientCookie", + "FindClientCookie", + "SetClientCookie", + "GetClientCookie", + "SetAuthIdCookie", + "AreClientCookiesCached", + "OnClientCookiesCached", + "CookieMenuHandler", + "SetCookiePrefabMenu", + "SetCookieMenuItem", + "ShowCookieMenu", + "GetCookieIterator", + "ReadCookieIterator", + "GetCookieAccess", + "GetClientCookieTime", + "LoadTranslations", + "SetGlobalTransTarget", + "GetClientLanguage", + "GetServerLanguage", + "GetLanguageCount", + "GetLanguageInfo", + "SetClientLanguage", + "GetLanguageByCode", + "GetLanguageByName", + "CS_OnBuyCommand", + "CS_OnCSWeaponDrop", + "CS_OnGetWeaponPrice", + "CS_OnTerminateRound", + "CS_RespawnPlayer", + "CS_SwitchTeam", + "CS_DropWeapon", + "CS_TerminateRound", + "CS_GetTranslatedWeaponAlias", + "CS_GetWeaponPrice", + "CS_GetClientClanTag", + "CS_SetClientClanTag", + "CS_GetTeamScore", + "CS_SetTeamScore", + "CS_GetMVPCount", + "CS_SetMVPCount", + "CS_GetClientContributionScore", + "CS_SetClientContributionScore", + "CS_GetClientAssists", + "CS_SetClientAssists", + "CS_AliasToWeaponID", + "CS_WeaponIDToAlias", + "CS_IsValidWeaponID", + "CS_UpdateClientModel", + "LogToGame", + "SetRandomSeed", + "GetRandomFloat", + "GetRandomInt", + "IsMapValid", + "IsDedicatedServer", + "GetEngineTime", + "GetGameTime", + "GetGameTickCount", + "GetGameDescription", + "GetGameFolderName", + "GetCurrentMap", + "PrecacheModel", + "PrecacheSentenceFile", + "PrecacheDecal", + "PrecacheGeneric", + "IsModelPrecached", + "IsDecalPrecached", + "IsGenericPrecached", + "PrecacheSound", + "IsSoundPrecached", + "CreateDialog", + "GetEngineVersion", + "PrintToChat", + "PrintToChatAll", + "PrintCenterText", + "PrintCenterTextAll", + "PrintHintText", + "PrintHintTextToAll", + "ShowVGUIPanel", + "CreateHudSynchronizer", + "SetHudTextParams", + "SetHudTextParamsEx", + "ShowSyncHudText", + "ClearSyncHud", + "ShowHudText", + "ShowMOTDPanel", + "DisplayAskConnectBox", + "EntIndexToEntRef", + "EntRefToEntIndex", + "MakeCompatEntRef", + "SetClientViewEntity", + "SetLightStyle", + "GetClientEyePosition", + "CreateDataPack", + "WritePackCell", + "WritePackFloat", + "WritePackString", + "ReadPackCell", + "ReadPackFloat", + "ReadPackString", + "ResetPack", + "GetPackPosition", + "SetPackPosition", + "IsPackReadable", + "LogMessage", + "LogToFile", + "LogToFileEx", + "LogAction", + "LogError", + "OnLogAction", + "GameLogHook", + "AddGameLogHook", + "RemoveGameLogHook", + "FindTeamByName", + "StartPrepSDKCall", + "PrepSDKCall_SetVirtual", + "PrepSDKCall_SetSignature", + "PrepSDKCall_SetAddress", + "PrepSDKCall_SetFromConf", + "PrepSDKCall_SetReturnInfo", + "PrepSDKCall_AddParameter", + "EndPrepSDKCall", + "SDKCall", + "GetPlayerResourceEntity", ) -if __name__ == '__main__': # pragma: no cover +if __name__ == "__main__": # pragma: no cover import re from urllib.request import FancyURLopener from pygments.util import format_lines class Opener(FancyURLopener): - version = 'Mozilla/5.0 (Pygments Sourcemod Builtins Update)' + version = "Mozilla/5.0 (Pygments Sourcemod Builtins Update)" opener = Opener() def get_version(): - f = opener.open('http://docs.sourcemod.net/api/index.php') - r = re.compile(r'SourceMod v\.([\d\.]+(?:-\w+)?)') + f = opener.open("http://docs.sourcemod.net/api/index.php") + r = re.compile(r"SourceMod v\.([\d\.]+(?:-\w+)?)") for line in f: m = r.search(line.decode()) if m is not None: return m.groups()[0] - raise ValueError('No version in api docs') + raise ValueError("No version in api docs") def get_sm_functions(): - f = opener.open('http://docs.sourcemod.net/api/SMfuncs.js') + f = opener.open("http://docs.sourcemod.net/api/SMfuncs.js") r = re.compile(r'SMfunctions\[\d+\] = Array \("(?:public )?([^,]+)",".+"\);') functions = [] for line in f: @@ -1122,30 +1122,28 @@ if __name__ == '__main__': # pragma: no cover return functions def regenerate(filename, natives): - with open(filename, encoding='utf-8') as fp: + with open(filename, encoding="utf-8") as fp: content = fp.read() - header = content[:content.find('FUNCTIONS = (')] - footer = content[content.find("if __name__ == '__main__':")-1:] + header = content[: content.find("FUNCTIONS = (")] + footer = content[content.find("if __name__ == '__main__':") - 1 :] - - with open(filename, 'w', encoding='utf-8') as fp: + with open(filename, "w", encoding="utf-8") as fp: fp.write(header) - fp.write(format_lines('FUNCTIONS', natives)) - fp.write('\n\n' + footer) + fp.write(format_lines("FUNCTIONS", natives)) + fp.write("\n\n" + footer) def run(): version = get_version() - print(f'> Downloading function index for SourceMod {version}') + print(f"> Downloading function index for SourceMod {version}") functions = get_sm_functions() - print('> %d functions found:' % len(functions)) + print("> %d functions found:" % len(functions)) functionlist = [] for full_function_name in functions: - print(f'>> {full_function_name}') + print(f">> {full_function_name}") functionlist.append(full_function_name) regenerate(__file__, functionlist) - run() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sql_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sql_builtins.py index 8b90e53..e83041f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sql_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_sql_builtins.py @@ -1,106 +1,545 @@ """ - pygments.lexers._sql_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._sql_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Data files for the SQL lexer. +Data files for the SQL lexer. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ KEYWORDS = ( - 'ABORT', 'ABS', 'ABSOLUTE', 'ACCESS', 'ADA', 'ADD', 'ADMIN', 'AFTER', - 'AGGREGATE', 'ALIAS', 'ALL', 'ALLOCATE', 'ALTER', 'ANALYSE', 'ANALYZE', - 'AND', 'ANY', 'ARE', 'AS', 'ASC', 'ASENSITIVE', 'ASSERTION', 'ASSIGNMENT', - 'ASYMMETRIC', 'AT', 'ATOMIC', 'AUTHORIZATION', 'AVG', 'BACKWARD', - 'BEFORE', 'BEGIN', 'BETWEEN', 'BITVAR', 'BIT_LENGTH', 'BOTH', 'BREADTH', - 'BY', 'C', 'CACHE', 'CALL', 'CALLED', 'CARDINALITY', 'CASCADE', - 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATALOG_NAME', 'CHAIN', - 'CHARACTERISTICS', 'CHARACTER_LENGTH', 'CHARACTER_SET_CATALOG', - 'CHARACTER_SET_NAME', 'CHARACTER_SET_SCHEMA', 'CHAR_LENGTH', 'CHECK', - 'CHECKED', 'CHECKPOINT', 'CLASS', 'CLASS_ORIGIN', 'CLOB', 'CLOSE', - 'CLUSTER', 'COALESCE', 'COBOL', 'COLLATE', 'COLLATION', - 'COLLATION_CATALOG', 'COLLATION_NAME', 'COLLATION_SCHEMA', 'COLUMN', - 'COLUMN_NAME', 'COMMAND_FUNCTION', 'COMMAND_FUNCTION_CODE', 'COMMENT', - 'COMMIT', 'COMMITTED', 'COMPLETION', 'CONDITION_NUMBER', 'CONNECT', - 'CONNECTION', 'CONNECTION_NAME', 'CONSTRAINT', 'CONSTRAINTS', - 'CONSTRAINT_CATALOG', 'CONSTRAINT_NAME', 'CONSTRAINT_SCHEMA', - 'CONSTRUCTOR', 'CONTAINS', 'CONTINUE', 'CONVERSION', 'CONVERT', - 'COPY', 'CORRESPONDING', 'COUNT', 'CREATE', 'CREATEDB', 'CREATEUSER', - 'CROSS', 'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', - 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', - 'CURSOR', 'CURSOR_NAME', 'CYCLE', 'DATA', 'DATABASE', - 'DATETIME_INTERVAL_CODE', 'DATETIME_INTERVAL_PRECISION', 'DAY', - 'DEALLOCATE', 'DECLARE', 'DEFAULT', 'DEFAULTS', 'DEFERRABLE', - 'DEFERRED', 'DEFINED', 'DEFINER', 'DELETE', 'DELIMITER', 'DELIMITERS', - 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', - 'DETERMINISTIC', 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISPATCH', - 'DISTINCT', 'DO', 'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION', - 'DYNAMIC_FUNCTION_CODE', 'EACH', 'ELSE', 'ELSIF', 'ENCODING', - 'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY', 'EXCEPTION', - 'EXCEPT', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTING', - 'EXISTS', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL', - 'FIRST', 'FOR', 'FORCE', 'FOREIGN', 'FORTRAN', 'FORWARD', 'FOUND', 'FREE', - 'FREEZE', 'FROM', 'FULL', 'FUNCTION', 'G', 'GENERAL', 'GENERATED', 'GET', - 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GRANTED', 'GROUP', 'GROUPING', - 'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY', 'IF', - 'IGNORE', 'ILIKE', 'IMMEDIATE', 'IMMEDIATELY', 'IMMUTABLE', 'IMPLEMENTATION', 'IMPLICIT', - 'IN', 'INCLUDING', 'INCREMENT', 'INDEX', 'INDITCATOR', 'INFIX', - 'INHERITS', 'INITIALIZE', 'INITIALLY', 'INNER', 'INOUT', 'INPUT', - 'INSENSITIVE', 'INSERT', 'INSTANTIABLE', 'INSTEAD', 'INTERSECT', 'INTO', - 'INVOKER', 'IS', 'ISNULL', 'ISOLATION', 'ITERATE', 'JOIN', 'KEY', - 'KEY_MEMBER', 'KEY_TYPE', 'LANCOMPILER', 'LANGUAGE', 'LARGE', 'LAST', - 'LATERAL', 'LEADING', 'LEFT', 'LENGTH', 'LESS', 'LEVEL', 'LIKE', 'LIMIT', - 'LISTEN', 'LOAD', 'LOCAL', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATION', - 'LOCATOR', 'LOCK', 'LOWER', 'MAP', 'MATCH', 'MAX', 'MAXVALUE', - 'MESSAGE_LENGTH', 'MESSAGE_OCTET_LENGTH', 'MESSAGE_TEXT', 'METHOD', 'MIN', - 'MINUTE', 'MINVALUE', 'MOD', 'MODE', 'MODIFIES', 'MODIFY', 'MONTH', - 'MORE', 'MOVE', 'MUMPS', 'NAMES', 'NATIONAL', 'NATURAL', 'NCHAR', 'NCLOB', - 'NEW', 'NEXT', 'NO', 'NOCREATEDB', 'NOCREATEUSER', 'NONE', 'NOT', - 'NOTHING', 'NOTIFY', 'NOTNULL', 'NULL', 'NULLABLE', 'NULLIF', 'OBJECT', - 'OCTET_LENGTH', 'OF', 'OFF', 'OFFSET', 'OIDS', 'OLD', 'ON', 'ONLY', - 'OPEN', 'OPERATION', 'OPERATOR', 'OPTION', 'OPTIONS', 'OR', 'ORDER', - 'ORDINALITY', 'OUT', 'OUTER', 'OUTPUT', 'OVERLAPS', 'OVERLAY', - 'OVERRIDING', 'OWNER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARAMETER_MODE', - 'PARAMETER_NAME', 'PARAMETER_ORDINAL_POSITION', - 'PARAMETER_SPECIFIC_CATALOG', 'PARAMETER_SPECIFIC_NAME', - 'PARAMETER_SPECIFIC_SCHEMA', 'PARTIAL', 'PASCAL', 'PENDANT', 'PERIOD', 'PLACING', - 'PLI', 'POSITION', 'POSTFIX', 'PRECEEDS', 'PRECISION', 'PREFIX', 'PREORDER', - 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRIOR', 'PRIVILEGES', 'PROCEDURAL', - 'PROCEDURE', 'PUBLIC', 'READ', 'READS', 'RECHECK', 'RECURSIVE', 'REF', - 'REFERENCES', 'REFERENCING', 'REINDEX', 'RELATIVE', 'RENAME', - 'REPEATABLE', 'REPLACE', 'RESET', 'RESTART', 'RESTRICT', 'RESULT', - 'RETURN', 'RETURNED_LENGTH', 'RETURNED_OCTET_LENGTH', 'RETURNED_SQLSTATE', - 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', - 'ROUTINE_CATALOG', 'ROUTINE_NAME', 'ROUTINE_SCHEMA', 'ROW', 'ROWS', - 'ROW_COUNT', 'RULE', 'SAVE_POINT', 'SCALE', 'SCHEMA', 'SCHEMA_NAME', - 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECURITY', 'SELECT', 'SELF', - 'SENSITIVE', 'SERIALIZABLE', 'SERVER_NAME', 'SESSION', 'SESSION_USER', - 'SET', 'SETOF', 'SETS', 'SHARE', 'SHOW', 'SIMILAR', 'SIMPLE', 'SIZE', - 'SOME', 'SOURCE', 'SPACE', 'SPECIFIC', 'SPECIFICTYPE', 'SPECIFIC_NAME', - 'SQL', 'SQLCODE', 'SQLERROR', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNINIG', - 'STABLE', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STDIN', - 'STDOUT', 'STORAGE', 'STRICT', 'STRUCTURE', 'STYPE', 'SUBCLASS_ORIGIN', - 'SUBLIST', 'SUBSTRING', 'SUCCEEDS', 'SUM', 'SYMMETRIC', 'SYSID', 'SYSTEM', - 'SYSTEM_USER', 'TABLE', 'TABLE_NAME', ' TEMP', 'TEMPLATE', 'TEMPORARY', - 'TERMINATE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', - 'TIMEZONE_MINUTE', 'TO', 'TOAST', 'TRAILING', 'TRANSACTION', - 'TRANSACTIONS_COMMITTED', 'TRANSACTIONS_ROLLED_BACK', 'TRANSACTION_ACTIVE', - 'TRANSFORM', 'TRANSFORMS', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER', - 'TRIGGER_CATALOG', 'TRIGGER_NAME', 'TRIGGER_SCHEMA', 'TRIM', 'TRUE', - 'TRUNCATE', 'TRUSTED', 'TYPE', 'UNCOMMITTED', 'UNDER', 'UNENCRYPTED', - 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLISTEN', 'UNNAMED', 'UNNEST', 'UNTIL', - 'UPDATE', 'UPPER', 'USAGE', 'USER', 'USER_DEFINED_TYPE_CATALOG', - 'USER_DEFINED_TYPE_NAME', 'USER_DEFINED_TYPE_SCHEMA', 'USING', 'VACUUM', - 'VALID', 'VALIDATOR', 'VALUES', 'VARIABLE', 'VERBOSE', - 'VERSION', 'VERSIONS', 'VERSIONING', 'VIEW', - 'VOLATILE', 'WHEN', 'WHENEVER', 'WHERE', 'WITH', 'WITHOUT', 'WORK', - 'WRITE', 'YEAR', 'ZONE' + "ABORT", + "ABS", + "ABSOLUTE", + "ACCESS", + "ADA", + "ADD", + "ADMIN", + "AFTER", + "AGGREGATE", + "ALIAS", + "ALL", + "ALLOCATE", + "ALTER", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARE", + "AS", + "ASC", + "ASENSITIVE", + "ASSERTION", + "ASSIGNMENT", + "ASYMMETRIC", + "AT", + "ATOMIC", + "AUTHORIZATION", + "AVG", + "BACKWARD", + "BEFORE", + "BEGIN", + "BETWEEN", + "BITVAR", + "BIT_LENGTH", + "BOTH", + "BREADTH", + "BY", + "C", + "CACHE", + "CALL", + "CALLED", + "CARDINALITY", + "CASCADE", + "CASCADED", + "CASE", + "CAST", + "CATALOG", + "CATALOG_NAME", + "CHAIN", + "CHARACTERISTICS", + "CHARACTER_LENGTH", + "CHARACTER_SET_CATALOG", + "CHARACTER_SET_NAME", + "CHARACTER_SET_SCHEMA", + "CHAR_LENGTH", + "CHECK", + "CHECKED", + "CHECKPOINT", + "CLASS", + "CLASS_ORIGIN", + "CLOB", + "CLOSE", + "CLUSTER", + "COALESCE", + "COBOL", + "COLLATE", + "COLLATION", + "COLLATION_CATALOG", + "COLLATION_NAME", + "COLLATION_SCHEMA", + "COLUMN", + "COLUMN_NAME", + "COMMAND_FUNCTION", + "COMMAND_FUNCTION_CODE", + "COMMENT", + "COMMIT", + "COMMITTED", + "COMPLETION", + "CONDITION_NUMBER", + "CONNECT", + "CONNECTION", + "CONNECTION_NAME", + "CONSTRAINT", + "CONSTRAINTS", + "CONSTRAINT_CATALOG", + "CONSTRAINT_NAME", + "CONSTRAINT_SCHEMA", + "CONSTRUCTOR", + "CONTAINS", + "CONTINUE", + "CONVERSION", + "CONVERT", + "COPY", + "CORRESPONDING", + "COUNT", + "CREATE", + "CREATEDB", + "CREATEUSER", + "CROSS", + "CUBE", + "CURRENT", + "CURRENT_DATE", + "CURRENT_PATH", + "CURRENT_ROLE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "CURSOR_NAME", + "CYCLE", + "DATA", + "DATABASE", + "DATETIME_INTERVAL_CODE", + "DATETIME_INTERVAL_PRECISION", + "DAY", + "DEALLOCATE", + "DECLARE", + "DEFAULT", + "DEFAULTS", + "DEFERRABLE", + "DEFERRED", + "DEFINED", + "DEFINER", + "DELETE", + "DELIMITER", + "DELIMITERS", + "DEREF", + "DESC", + "DESCRIBE", + "DESCRIPTOR", + "DESTROY", + "DESTRUCTOR", + "DETERMINISTIC", + "DIAGNOSTICS", + "DICTIONARY", + "DISCONNECT", + "DISPATCH", + "DISTINCT", + "DO", + "DOMAIN", + "DROP", + "DYNAMIC", + "DYNAMIC_FUNCTION", + "DYNAMIC_FUNCTION_CODE", + "EACH", + "ELSE", + "ELSIF", + "ENCODING", + "ENCRYPTED", + "END", + "END-EXEC", + "EQUALS", + "ESCAPE", + "EVERY", + "EXCEPTION", + "EXCEPT", + "EXCLUDING", + "EXCLUSIVE", + "EXEC", + "EXECUTE", + "EXISTING", + "EXISTS", + "EXPLAIN", + "EXTERNAL", + "EXTRACT", + "FALSE", + "FETCH", + "FINAL", + "FIRST", + "FOR", + "FORCE", + "FOREIGN", + "FORTRAN", + "FORWARD", + "FOUND", + "FREE", + "FREEZE", + "FROM", + "FULL", + "FUNCTION", + "G", + "GENERAL", + "GENERATED", + "GET", + "GLOBAL", + "GO", + "GOTO", + "GRANT", + "GRANTED", + "GROUP", + "GROUPING", + "HANDLER", + "HAVING", + "HIERARCHY", + "HOLD", + "HOST", + "IDENTITY", + "IF", + "IGNORE", + "ILIKE", + "IMMEDIATE", + "IMMEDIATELY", + "IMMUTABLE", + "IMPLEMENTATION", + "IMPLICIT", + "IN", + "INCLUDING", + "INCREMENT", + "INDEX", + "INDITCATOR", + "INFIX", + "INHERITS", + "INITIALIZE", + "INITIALLY", + "INNER", + "INOUT", + "INPUT", + "INSENSITIVE", + "INSERT", + "INSTANTIABLE", + "INSTEAD", + "INTERSECT", + "INTO", + "INVOKER", + "IS", + "ISNULL", + "ISOLATION", + "ITERATE", + "JOIN", + "KEY", + "KEY_MEMBER", + "KEY_TYPE", + "LANCOMPILER", + "LANGUAGE", + "LARGE", + "LAST", + "LATERAL", + "LEADING", + "LEFT", + "LENGTH", + "LESS", + "LEVEL", + "LIKE", + "LIMIT", + "LISTEN", + "LOAD", + "LOCAL", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCATION", + "LOCATOR", + "LOCK", + "LOWER", + "MAP", + "MATCH", + "MAX", + "MAXVALUE", + "MESSAGE_LENGTH", + "MESSAGE_OCTET_LENGTH", + "MESSAGE_TEXT", + "METHOD", + "MIN", + "MINUTE", + "MINVALUE", + "MOD", + "MODE", + "MODIFIES", + "MODIFY", + "MONTH", + "MORE", + "MOVE", + "MUMPS", + "NAMES", + "NATIONAL", + "NATURAL", + "NCHAR", + "NCLOB", + "NEW", + "NEXT", + "NO", + "NOCREATEDB", + "NOCREATEUSER", + "NONE", + "NOT", + "NOTHING", + "NOTIFY", + "NOTNULL", + "NULL", + "NULLABLE", + "NULLIF", + "OBJECT", + "OCTET_LENGTH", + "OF", + "OFF", + "OFFSET", + "OIDS", + "OLD", + "ON", + "ONLY", + "OPEN", + "OPERATION", + "OPERATOR", + "OPTION", + "OPTIONS", + "OR", + "ORDER", + "ORDINALITY", + "OUT", + "OUTER", + "OUTPUT", + "OVERLAPS", + "OVERLAY", + "OVERRIDING", + "OWNER", + "PAD", + "PARAMETER", + "PARAMETERS", + "PARAMETER_MODE", + "PARAMETER_NAME", + "PARAMETER_ORDINAL_POSITION", + "PARAMETER_SPECIFIC_CATALOG", + "PARAMETER_SPECIFIC_NAME", + "PARAMETER_SPECIFIC_SCHEMA", + "PARTIAL", + "PASCAL", + "PENDANT", + "PERIOD", + "PLACING", + "PLI", + "POSITION", + "POSTFIX", + "PRECEEDS", + "PRECISION", + "PREFIX", + "PREORDER", + "PREPARE", + "PRESERVE", + "PRIMARY", + "PRIOR", + "PRIVILEGES", + "PROCEDURAL", + "PROCEDURE", + "PUBLIC", + "READ", + "READS", + "RECHECK", + "RECURSIVE", + "REF", + "REFERENCES", + "REFERENCING", + "REINDEX", + "RELATIVE", + "RENAME", + "REPEATABLE", + "REPLACE", + "RESET", + "RESTART", + "RESTRICT", + "RESULT", + "RETURN", + "RETURNED_LENGTH", + "RETURNED_OCTET_LENGTH", + "RETURNED_SQLSTATE", + "RETURNS", + "REVOKE", + "RIGHT", + "ROLE", + "ROLLBACK", + "ROLLUP", + "ROUTINE", + "ROUTINE_CATALOG", + "ROUTINE_NAME", + "ROUTINE_SCHEMA", + "ROW", + "ROWS", + "ROW_COUNT", + "RULE", + "SAVE_POINT", + "SCALE", + "SCHEMA", + "SCHEMA_NAME", + "SCOPE", + "SCROLL", + "SEARCH", + "SECOND", + "SECURITY", + "SELECT", + "SELF", + "SENSITIVE", + "SERIALIZABLE", + "SERVER_NAME", + "SESSION", + "SESSION_USER", + "SET", + "SETOF", + "SETS", + "SHARE", + "SHOW", + "SIMILAR", + "SIMPLE", + "SIZE", + "SOME", + "SOURCE", + "SPACE", + "SPECIFIC", + "SPECIFICTYPE", + "SPECIFIC_NAME", + "SQL", + "SQLCODE", + "SQLERROR", + "SQLEXCEPTION", + "SQLSTATE", + "SQLWARNINIG", + "STABLE", + "START", + "STATE", + "STATEMENT", + "STATIC", + "STATISTICS", + "STDIN", + "STDOUT", + "STORAGE", + "STRICT", + "STRUCTURE", + "STYPE", + "SUBCLASS_ORIGIN", + "SUBLIST", + "SUBSTRING", + "SUCCEEDS", + "SUM", + "SYMMETRIC", + "SYSID", + "SYSTEM", + "SYSTEM_USER", + "TABLE", + "TABLE_NAME", + " TEMP", + "TEMPLATE", + "TEMPORARY", + "TERMINATE", + "THAN", + "THEN", + "TIME", + "TIMESTAMP", + "TIMEZONE_HOUR", + "TIMEZONE_MINUTE", + "TO", + "TOAST", + "TRAILING", + "TRANSACTION", + "TRANSACTIONS_COMMITTED", + "TRANSACTIONS_ROLLED_BACK", + "TRANSACTION_ACTIVE", + "TRANSFORM", + "TRANSFORMS", + "TRANSLATE", + "TRANSLATION", + "TREAT", + "TRIGGER", + "TRIGGER_CATALOG", + "TRIGGER_NAME", + "TRIGGER_SCHEMA", + "TRIM", + "TRUE", + "TRUNCATE", + "TRUSTED", + "TYPE", + "UNCOMMITTED", + "UNDER", + "UNENCRYPTED", + "UNION", + "UNIQUE", + "UNKNOWN", + "UNLISTEN", + "UNNAMED", + "UNNEST", + "UNTIL", + "UPDATE", + "UPPER", + "USAGE", + "USER", + "USER_DEFINED_TYPE_CATALOG", + "USER_DEFINED_TYPE_NAME", + "USER_DEFINED_TYPE_SCHEMA", + "USING", + "VACUUM", + "VALID", + "VALIDATOR", + "VALUES", + "VARIABLE", + "VERBOSE", + "VERSION", + "VERSIONS", + "VERSIONING", + "VIEW", + "VOLATILE", + "WHEN", + "WHENEVER", + "WHERE", + "WITH", + "WITHOUT", + "WORK", + "WRITE", + "YEAR", + "ZONE", ) DATATYPES = ( - 'ARRAY', 'BIGINT', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'CHAR', - 'CHARACTER', 'DATE', 'DEC', 'DECIMAL', 'FLOAT', 'INT', 'INTEGER', - 'INTERVAL', 'NUMBER', 'NUMERIC', 'REAL', 'SERIAL', 'SMALLINT', - 'VARCHAR', 'VARYING', 'INT8', 'SERIAL8', 'TEXT' + "ARRAY", + "BIGINT", + "BINARY", + "BIT", + "BLOB", + "BOOLEAN", + "CHAR", + "CHARACTER", + "DATE", + "DEC", + "DECIMAL", + "FLOAT", + "INT", + "INTEGER", + "INTERVAL", + "NUMBER", + "NUMERIC", + "REAL", + "SERIAL", + "SMALLINT", + "VARCHAR", + "VARYING", + "INT8", + "SERIAL8", + "TEXT", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stan_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stan_builtins.py index 8db10c3..0fa60cc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stan_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stan_builtins.py @@ -1,648 +1,648 @@ """ - pygments.lexers._stan_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._stan_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - This file contains the names of functions for Stan used by - ``pygments.lexers.math.StanLexer. This is for Stan language version 2.29.0. +This file contains the names of functions for Stan used by +``pygments.lexers.math.StanLexer. This is for Stan language version 2.29.0. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ KEYWORDS = ( - 'break', - 'continue', - 'else', - 'for', - 'if', - 'in', - 'print', - 'reject', - 'return', - 'while', + "break", + "continue", + "else", + "for", + "if", + "in", + "print", + "reject", + "return", + "while", ) TYPES = ( - 'cholesky_factor_corr', - 'cholesky_factor_cov', - 'corr_matrix', - 'cov_matrix', - 'int', - 'matrix', - 'ordered', - 'positive_ordered', - 'real', - 'row_vector', - 'simplex', - 'unit_vector', - 'vector', - 'void', - 'array', - 'complex' + "cholesky_factor_corr", + "cholesky_factor_cov", + "corr_matrix", + "cov_matrix", + "int", + "matrix", + "ordered", + "positive_ordered", + "real", + "row_vector", + "simplex", + "unit_vector", + "vector", + "void", + "array", + "complex", ) FUNCTIONS = ( - 'abs', - 'acos', - 'acosh', - 'add_diag', - 'algebra_solver', - 'algebra_solver_newton', - 'append_array', - 'append_col', - 'append_row', - 'arg', - 'asin', - 'asinh', - 'atan', - 'atan2', - 'atanh', - 'bernoulli_cdf', - 'bernoulli_lccdf', - 'bernoulli_lcdf', - 'bernoulli_logit_glm_lpmf', - 'bernoulli_logit_glm_lupmf', - 'bernoulli_logit_glm_rng', - 'bernoulli_logit_lpmf', - 'bernoulli_logit_lupmf', - 'bernoulli_logit_rng', - 'bernoulli_lpmf', - 'bernoulli_lupmf', - 'bernoulli_rng', - 'bessel_first_kind', - 'bessel_second_kind', - 'beta', - 'beta_binomial_cdf', - 'beta_binomial_lccdf', - 'beta_binomial_lcdf', - 'beta_binomial_lpmf', - 'beta_binomial_lupmf', - 'beta_binomial_rng', - 'beta_cdf', - 'beta_lccdf', - 'beta_lcdf', - 'beta_lpdf', - 'beta_lupdf', - 'beta_proportion_lccdf', - 'beta_proportion_lcdf', - 'beta_proportion_rng', - 'beta_rng', - 'binary_log_loss', - 'binomial_cdf', - 'binomial_coefficient_log', - 'binomial_lccdf', - 'binomial_lcdf', - 'binomial_logit_lpmf', - 'binomial_logit_lupmf', - 'binomial_lpmf', - 'binomial_lupmf', - 'binomial_rng', - 'block', - 'categorical_logit_glm_lpmf', - 'categorical_logit_glm_lupmf', - 'categorical_logit_lpmf', - 'categorical_logit_lupmf', - 'categorical_logit_rng', - 'categorical_lpmf', - 'categorical_lupmf', - 'categorical_rng', - 'cauchy_cdf', - 'cauchy_lccdf', - 'cauchy_lcdf', - 'cauchy_lpdf', - 'cauchy_lupdf', - 'cauchy_rng', - 'cbrt', - 'ceil', - 'chi_square_cdf', - 'chi_square_lccdf', - 'chi_square_lcdf', - 'chi_square_lpdf', - 'chi_square_lupdf', - 'chi_square_rng', - 'chol2inv', - 'cholesky_decompose', - 'choose', - 'col', - 'cols', - 'columns_dot_product', - 'columns_dot_self', - 'conj', - 'cos', - 'cosh', - 'cov_exp_quad', - 'crossprod', - 'csr_extract_u', - 'csr_extract_v', - 'csr_extract_w', - 'csr_matrix_times_vector', - 'csr_to_dense_matrix', - 'cumulative_sum', - 'dae', - 'dae_tol', - 'determinant', - 'diag_matrix', - 'diag_post_multiply', - 'diag_pre_multiply', - 'diagonal', - 'digamma', - 'dims', - 'dirichlet_lpdf', - 'dirichlet_lupdf', - 'dirichlet_rng', - 'discrete_range_cdf', - 'discrete_range_lccdf', - 'discrete_range_lcdf', - 'discrete_range_lpmf', - 'discrete_range_lupmf', - 'discrete_range_rng', - 'distance', - 'dot_product', - 'dot_self', - 'double_exponential_cdf', - 'double_exponential_lccdf', - 'double_exponential_lcdf', - 'double_exponential_lpdf', - 'double_exponential_lupdf', - 'double_exponential_rng', - 'e', - 'eigenvalues_sym', - 'eigenvectors_sym', - 'erf', - 'erfc', - 'exp', - 'exp2', - 'exp_mod_normal_cdf', - 'exp_mod_normal_lccdf', - 'exp_mod_normal_lcdf', - 'exp_mod_normal_lpdf', - 'exp_mod_normal_lupdf', - 'exp_mod_normal_rng', - 'expm1', - 'exponential_cdf', - 'exponential_lccdf', - 'exponential_lcdf', - 'exponential_lpdf', - 'exponential_lupdf', - 'exponential_rng', - 'fabs', - 'falling_factorial', - 'fdim', - 'floor', - 'fma', - 'fmax', - 'fmin', - 'fmod', - 'frechet_cdf', - 'frechet_lccdf', - 'frechet_lcdf', - 'frechet_lpdf', - 'frechet_lupdf', - 'frechet_rng', - 'gamma_cdf', - 'gamma_lccdf', - 'gamma_lcdf', - 'gamma_lpdf', - 'gamma_lupdf', - 'gamma_p', - 'gamma_q', - 'gamma_rng', - 'gaussian_dlm_obs_lpdf', - 'gaussian_dlm_obs_lupdf', - 'generalized_inverse', - 'get_imag', - 'get_lp', - 'get_real', - 'gumbel_cdf', - 'gumbel_lccdf', - 'gumbel_lcdf', - 'gumbel_lpdf', - 'gumbel_lupdf', - 'gumbel_rng', - 'head', - 'hmm_hidden_state_prob', - 'hmm_latent_rng', - 'hmm_marginal', - 'hypergeometric_lpmf', - 'hypergeometric_lupmf', - 'hypergeometric_rng', - 'hypot', - 'identity_matrix', - 'inc_beta', - 'int_step', - 'integrate_1d', - 'integrate_ode', - 'integrate_ode_adams', - 'integrate_ode_bdf', - 'integrate_ode_rk45', - 'inv', - 'inv_chi_square_cdf', - 'inv_chi_square_lccdf', - 'inv_chi_square_lcdf', - 'inv_chi_square_lpdf', - 'inv_chi_square_lupdf', - 'inv_chi_square_rng', - 'inv_cloglog', - 'inv_erfc', - 'inv_gamma_cdf', - 'inv_gamma_lccdf', - 'inv_gamma_lcdf', - 'inv_gamma_lpdf', - 'inv_gamma_lupdf', - 'inv_gamma_rng', - 'inv_logit', - 'inv_Phi', - 'inv_sqrt', - 'inv_square', - 'inv_wishart_lpdf', - 'inv_wishart_lupdf', - 'inv_wishart_rng', - 'inverse', - 'inverse_spd', - 'is_inf', - 'is_nan', - 'lambert_w0', - 'lambert_wm1', - 'lbeta', - 'lchoose', - 'ldexp', - 'lgamma', - 'linspaced_array', - 'linspaced_int_array', - 'linspaced_row_vector', - 'linspaced_vector', - 'lkj_corr_cholesky_lpdf', - 'lkj_corr_cholesky_lupdf', - 'lkj_corr_cholesky_rng', - 'lkj_corr_lpdf', - 'lkj_corr_lupdf', - 'lkj_corr_rng', - 'lmgamma', - 'lmultiply', - 'log', - 'log10', - 'log1m', - 'log1m_exp', - 'log1m_inv_logit', - 'log1p', - 'log1p_exp', - 'log2', - 'log_determinant', - 'log_diff_exp', - 'log_falling_factorial', - 'log_inv_logit', - 'log_inv_logit_diff', - 'log_mix', - 'log_modified_bessel_first_kind', - 'log_rising_factorial', - 'log_softmax', - 'log_sum_exp', - 'logistic_cdf', - 'logistic_lccdf', - 'logistic_lcdf', - 'logistic_lpdf', - 'logistic_lupdf', - 'logistic_rng', - 'logit', - 'loglogistic_cdf', - 'loglogistic_lpdf', - 'loglogistic_rng', - 'lognormal_cdf', - 'lognormal_lccdf', - 'lognormal_lcdf', - 'lognormal_lpdf', - 'lognormal_lupdf', - 'lognormal_rng', - 'machine_precision', - 'map_rect', - 'matrix_exp', - 'matrix_exp_multiply', - 'matrix_power', - 'max', - 'mdivide_left_spd', - 'mdivide_left_tri_low', - 'mdivide_right_spd', - 'mdivide_right_tri_low', - 'mean', - 'min', - 'modified_bessel_first_kind', - 'modified_bessel_second_kind', - 'multi_gp_cholesky_lpdf', - 'multi_gp_cholesky_lupdf', - 'multi_gp_lpdf', - 'multi_gp_lupdf', - 'multi_normal_cholesky_lpdf', - 'multi_normal_cholesky_lupdf', - 'multi_normal_cholesky_rng', - 'multi_normal_lpdf', - 'multi_normal_lupdf', - 'multi_normal_prec_lpdf', - 'multi_normal_prec_lupdf', - 'multi_normal_rng', - 'multi_student_t_lpdf', - 'multi_student_t_lupdf', - 'multi_student_t_rng', - 'multinomial_logit_lpmf', - 'multinomial_logit_lupmf', - 'multinomial_logit_rng', - 'multinomial_lpmf', - 'multinomial_lupmf', - 'multinomial_rng', - 'multiply_log', - 'multiply_lower_tri_self_transpose', - 'neg_binomial_2_cdf', - 'neg_binomial_2_lccdf', - 'neg_binomial_2_lcdf', - 'neg_binomial_2_log_glm_lpmf', - 'neg_binomial_2_log_glm_lupmf', - 'neg_binomial_2_log_lpmf', - 'neg_binomial_2_log_lupmf', - 'neg_binomial_2_log_rng', - 'neg_binomial_2_lpmf', - 'neg_binomial_2_lupmf', - 'neg_binomial_2_rng', - 'neg_binomial_cdf', - 'neg_binomial_lccdf', - 'neg_binomial_lcdf', - 'neg_binomial_lpmf', - 'neg_binomial_lupmf', - 'neg_binomial_rng', - 'negative_infinity', - 'norm', - 'normal_cdf', - 'normal_id_glm_lpdf', - 'normal_id_glm_lupdf', - 'normal_lccdf', - 'normal_lcdf', - 'normal_lpdf', - 'normal_lupdf', - 'normal_rng', - 'not_a_number', - 'num_elements', - 'ode_adams', - 'ode_adams_tol', - 'ode_adjoint_tol_ctl', - 'ode_bdf', - 'ode_bdf_tol', - 'ode_ckrk', - 'ode_ckrk_tol', - 'ode_rk45', - 'ode_rk45_tol', - 'one_hot_array', - 'one_hot_int_array', - 'one_hot_row_vector', - 'one_hot_vector', - 'ones_array', - 'ones_int_array', - 'ones_row_vector', - 'ones_vector', - 'ordered_logistic_glm_lpmf', - 'ordered_logistic_glm_lupmf', - 'ordered_logistic_lpmf', - 'ordered_logistic_lupmf', - 'ordered_logistic_rng', - 'ordered_probit_lpmf', - 'ordered_probit_lupmf', - 'ordered_probit_rng', - 'owens_t', - 'pareto_cdf', - 'pareto_lccdf', - 'pareto_lcdf', - 'pareto_lpdf', - 'pareto_lupdf', - 'pareto_rng', - 'pareto_type_2_cdf', - 'pareto_type_2_lccdf', - 'pareto_type_2_lcdf', - 'pareto_type_2_lpdf', - 'pareto_type_2_lupdf', - 'pareto_type_2_rng', - 'Phi', - 'Phi_approx', - 'pi', - 'poisson_cdf', - 'poisson_lccdf', - 'poisson_lcdf', - 'poisson_log_glm_lpmf', - 'poisson_log_glm_lupmf', - 'poisson_log_lpmf', - 'poisson_log_lupmf', - 'poisson_log_rng', - 'poisson_lpmf', - 'poisson_lupmf', - 'poisson_rng', - 'polar', - 'positive_infinity', - 'pow', - 'print', - 'prod', - 'proj', - 'qr_Q', - 'qr_R', - 'qr_thin_Q', - 'qr_thin_R', - 'quad_form', - 'quad_form_diag', - 'quad_form_sym', - 'quantile', - 'rank', - 'rayleigh_cdf', - 'rayleigh_lccdf', - 'rayleigh_lcdf', - 'rayleigh_lpdf', - 'rayleigh_lupdf', - 'rayleigh_rng', - 'reduce_sum', - 'reject', - 'rep_array', - 'rep_matrix', - 'rep_row_vector', - 'rep_vector', - 'reverse', - 'rising_factorial', - 'round', - 'row', - 'rows', - 'rows_dot_product', - 'rows_dot_self', - 'scale_matrix_exp_multiply', - 'scaled_inv_chi_square_cdf', - 'scaled_inv_chi_square_lccdf', - 'scaled_inv_chi_square_lcdf', - 'scaled_inv_chi_square_lpdf', - 'scaled_inv_chi_square_lupdf', - 'scaled_inv_chi_square_rng', - 'sd', - 'segment', - 'sin', - 'singular_values', - 'sinh', - 'size', - 'skew_double_exponential_cdf', - 'skew_double_exponential_lccdf', - 'skew_double_exponential_lcdf', - 'skew_double_exponential_lpdf', - 'skew_double_exponential_lupdf', - 'skew_double_exponential_rng', - 'skew_normal_cdf', - 'skew_normal_lccdf', - 'skew_normal_lcdf', - 'skew_normal_lpdf', - 'skew_normal_lupdf', - 'skew_normal_rng', - 'softmax', - 'sort_asc', - 'sort_desc', - 'sort_indices_asc', - 'sort_indices_desc', - 'sqrt', - 'sqrt2', - 'square', - 'squared_distance', - 'std_normal_cdf', - 'std_normal_lccdf', - 'std_normal_lcdf', - 'std_normal_lpdf', - 'std_normal_lupdf', - 'std_normal_rng', - 'step', - 'student_t_cdf', - 'student_t_lccdf', - 'student_t_lcdf', - 'student_t_lpdf', - 'student_t_lupdf', - 'student_t_rng', - 'sub_col', - 'sub_row', - 'sum', - 'svd_U', - 'svd_V', - 'symmetrize_from_lower_tri', - 'tail', - 'tan', - 'tanh', - 'target', - 'tcrossprod', - 'tgamma', - 'to_array_1d', - 'to_array_2d', - 'to_complex', - 'to_matrix', - 'to_row_vector', - 'to_vector', - 'trace', - 'trace_gen_quad_form', - 'trace_quad_form', - 'trigamma', - 'trunc', - 'uniform_cdf', - 'uniform_lccdf', - 'uniform_lcdf', - 'uniform_lpdf', - 'uniform_lupdf', - 'uniform_rng', - 'uniform_simplex', - 'variance', - 'von_mises_cdf', - 'von_mises_lccdf', - 'von_mises_lcdf', - 'von_mises_lpdf', - 'von_mises_lupdf', - 'von_mises_rng', - 'weibull_cdf', - 'weibull_lccdf', - 'weibull_lcdf', - 'weibull_lpdf', - 'weibull_lupdf', - 'weibull_rng', - 'wiener_lpdf', - 'wiener_lupdf', - 'wishart_lpdf', - 'wishart_lupdf', - 'wishart_rng', - 'zeros_array', - 'zeros_int_array', - 'zeros_row_vector' + "abs", + "acos", + "acosh", + "add_diag", + "algebra_solver", + "algebra_solver_newton", + "append_array", + "append_col", + "append_row", + "arg", + "asin", + "asinh", + "atan", + "atan2", + "atanh", + "bernoulli_cdf", + "bernoulli_lccdf", + "bernoulli_lcdf", + "bernoulli_logit_glm_lpmf", + "bernoulli_logit_glm_lupmf", + "bernoulli_logit_glm_rng", + "bernoulli_logit_lpmf", + "bernoulli_logit_lupmf", + "bernoulli_logit_rng", + "bernoulli_lpmf", + "bernoulli_lupmf", + "bernoulli_rng", + "bessel_first_kind", + "bessel_second_kind", + "beta", + "beta_binomial_cdf", + "beta_binomial_lccdf", + "beta_binomial_lcdf", + "beta_binomial_lpmf", + "beta_binomial_lupmf", + "beta_binomial_rng", + "beta_cdf", + "beta_lccdf", + "beta_lcdf", + "beta_lpdf", + "beta_lupdf", + "beta_proportion_lccdf", + "beta_proportion_lcdf", + "beta_proportion_rng", + "beta_rng", + "binary_log_loss", + "binomial_cdf", + "binomial_coefficient_log", + "binomial_lccdf", + "binomial_lcdf", + "binomial_logit_lpmf", + "binomial_logit_lupmf", + "binomial_lpmf", + "binomial_lupmf", + "binomial_rng", + "block", + "categorical_logit_glm_lpmf", + "categorical_logit_glm_lupmf", + "categorical_logit_lpmf", + "categorical_logit_lupmf", + "categorical_logit_rng", + "categorical_lpmf", + "categorical_lupmf", + "categorical_rng", + "cauchy_cdf", + "cauchy_lccdf", + "cauchy_lcdf", + "cauchy_lpdf", + "cauchy_lupdf", + "cauchy_rng", + "cbrt", + "ceil", + "chi_square_cdf", + "chi_square_lccdf", + "chi_square_lcdf", + "chi_square_lpdf", + "chi_square_lupdf", + "chi_square_rng", + "chol2inv", + "cholesky_decompose", + "choose", + "col", + "cols", + "columns_dot_product", + "columns_dot_self", + "conj", + "cos", + "cosh", + "cov_exp_quad", + "crossprod", + "csr_extract_u", + "csr_extract_v", + "csr_extract_w", + "csr_matrix_times_vector", + "csr_to_dense_matrix", + "cumulative_sum", + "dae", + "dae_tol", + "determinant", + "diag_matrix", + "diag_post_multiply", + "diag_pre_multiply", + "diagonal", + "digamma", + "dims", + "dirichlet_lpdf", + "dirichlet_lupdf", + "dirichlet_rng", + "discrete_range_cdf", + "discrete_range_lccdf", + "discrete_range_lcdf", + "discrete_range_lpmf", + "discrete_range_lupmf", + "discrete_range_rng", + "distance", + "dot_product", + "dot_self", + "double_exponential_cdf", + "double_exponential_lccdf", + "double_exponential_lcdf", + "double_exponential_lpdf", + "double_exponential_lupdf", + "double_exponential_rng", + "e", + "eigenvalues_sym", + "eigenvectors_sym", + "erf", + "erfc", + "exp", + "exp2", + "exp_mod_normal_cdf", + "exp_mod_normal_lccdf", + "exp_mod_normal_lcdf", + "exp_mod_normal_lpdf", + "exp_mod_normal_lupdf", + "exp_mod_normal_rng", + "expm1", + "exponential_cdf", + "exponential_lccdf", + "exponential_lcdf", + "exponential_lpdf", + "exponential_lupdf", + "exponential_rng", + "fabs", + "falling_factorial", + "fdim", + "floor", + "fma", + "fmax", + "fmin", + "fmod", + "frechet_cdf", + "frechet_lccdf", + "frechet_lcdf", + "frechet_lpdf", + "frechet_lupdf", + "frechet_rng", + "gamma_cdf", + "gamma_lccdf", + "gamma_lcdf", + "gamma_lpdf", + "gamma_lupdf", + "gamma_p", + "gamma_q", + "gamma_rng", + "gaussian_dlm_obs_lpdf", + "gaussian_dlm_obs_lupdf", + "generalized_inverse", + "get_imag", + "get_lp", + "get_real", + "gumbel_cdf", + "gumbel_lccdf", + "gumbel_lcdf", + "gumbel_lpdf", + "gumbel_lupdf", + "gumbel_rng", + "head", + "hmm_hidden_state_prob", + "hmm_latent_rng", + "hmm_marginal", + "hypergeometric_lpmf", + "hypergeometric_lupmf", + "hypergeometric_rng", + "hypot", + "identity_matrix", + "inc_beta", + "int_step", + "integrate_1d", + "integrate_ode", + "integrate_ode_adams", + "integrate_ode_bdf", + "integrate_ode_rk45", + "inv", + "inv_chi_square_cdf", + "inv_chi_square_lccdf", + "inv_chi_square_lcdf", + "inv_chi_square_lpdf", + "inv_chi_square_lupdf", + "inv_chi_square_rng", + "inv_cloglog", + "inv_erfc", + "inv_gamma_cdf", + "inv_gamma_lccdf", + "inv_gamma_lcdf", + "inv_gamma_lpdf", + "inv_gamma_lupdf", + "inv_gamma_rng", + "inv_logit", + "inv_Phi", + "inv_sqrt", + "inv_square", + "inv_wishart_lpdf", + "inv_wishart_lupdf", + "inv_wishart_rng", + "inverse", + "inverse_spd", + "is_inf", + "is_nan", + "lambert_w0", + "lambert_wm1", + "lbeta", + "lchoose", + "ldexp", + "lgamma", + "linspaced_array", + "linspaced_int_array", + "linspaced_row_vector", + "linspaced_vector", + "lkj_corr_cholesky_lpdf", + "lkj_corr_cholesky_lupdf", + "lkj_corr_cholesky_rng", + "lkj_corr_lpdf", + "lkj_corr_lupdf", + "lkj_corr_rng", + "lmgamma", + "lmultiply", + "log", + "log10", + "log1m", + "log1m_exp", + "log1m_inv_logit", + "log1p", + "log1p_exp", + "log2", + "log_determinant", + "log_diff_exp", + "log_falling_factorial", + "log_inv_logit", + "log_inv_logit_diff", + "log_mix", + "log_modified_bessel_first_kind", + "log_rising_factorial", + "log_softmax", + "log_sum_exp", + "logistic_cdf", + "logistic_lccdf", + "logistic_lcdf", + "logistic_lpdf", + "logistic_lupdf", + "logistic_rng", + "logit", + "loglogistic_cdf", + "loglogistic_lpdf", + "loglogistic_rng", + "lognormal_cdf", + "lognormal_lccdf", + "lognormal_lcdf", + "lognormal_lpdf", + "lognormal_lupdf", + "lognormal_rng", + "machine_precision", + "map_rect", + "matrix_exp", + "matrix_exp_multiply", + "matrix_power", + "max", + "mdivide_left_spd", + "mdivide_left_tri_low", + "mdivide_right_spd", + "mdivide_right_tri_low", + "mean", + "min", + "modified_bessel_first_kind", + "modified_bessel_second_kind", + "multi_gp_cholesky_lpdf", + "multi_gp_cholesky_lupdf", + "multi_gp_lpdf", + "multi_gp_lupdf", + "multi_normal_cholesky_lpdf", + "multi_normal_cholesky_lupdf", + "multi_normal_cholesky_rng", + "multi_normal_lpdf", + "multi_normal_lupdf", + "multi_normal_prec_lpdf", + "multi_normal_prec_lupdf", + "multi_normal_rng", + "multi_student_t_lpdf", + "multi_student_t_lupdf", + "multi_student_t_rng", + "multinomial_logit_lpmf", + "multinomial_logit_lupmf", + "multinomial_logit_rng", + "multinomial_lpmf", + "multinomial_lupmf", + "multinomial_rng", + "multiply_log", + "multiply_lower_tri_self_transpose", + "neg_binomial_2_cdf", + "neg_binomial_2_lccdf", + "neg_binomial_2_lcdf", + "neg_binomial_2_log_glm_lpmf", + "neg_binomial_2_log_glm_lupmf", + "neg_binomial_2_log_lpmf", + "neg_binomial_2_log_lupmf", + "neg_binomial_2_log_rng", + "neg_binomial_2_lpmf", + "neg_binomial_2_lupmf", + "neg_binomial_2_rng", + "neg_binomial_cdf", + "neg_binomial_lccdf", + "neg_binomial_lcdf", + "neg_binomial_lpmf", + "neg_binomial_lupmf", + "neg_binomial_rng", + "negative_infinity", + "norm", + "normal_cdf", + "normal_id_glm_lpdf", + "normal_id_glm_lupdf", + "normal_lccdf", + "normal_lcdf", + "normal_lpdf", + "normal_lupdf", + "normal_rng", + "not_a_number", + "num_elements", + "ode_adams", + "ode_adams_tol", + "ode_adjoint_tol_ctl", + "ode_bdf", + "ode_bdf_tol", + "ode_ckrk", + "ode_ckrk_tol", + "ode_rk45", + "ode_rk45_tol", + "one_hot_array", + "one_hot_int_array", + "one_hot_row_vector", + "one_hot_vector", + "ones_array", + "ones_int_array", + "ones_row_vector", + "ones_vector", + "ordered_logistic_glm_lpmf", + "ordered_logistic_glm_lupmf", + "ordered_logistic_lpmf", + "ordered_logistic_lupmf", + "ordered_logistic_rng", + "ordered_probit_lpmf", + "ordered_probit_lupmf", + "ordered_probit_rng", + "owens_t", + "pareto_cdf", + "pareto_lccdf", + "pareto_lcdf", + "pareto_lpdf", + "pareto_lupdf", + "pareto_rng", + "pareto_type_2_cdf", + "pareto_type_2_lccdf", + "pareto_type_2_lcdf", + "pareto_type_2_lpdf", + "pareto_type_2_lupdf", + "pareto_type_2_rng", + "Phi", + "Phi_approx", + "pi", + "poisson_cdf", + "poisson_lccdf", + "poisson_lcdf", + "poisson_log_glm_lpmf", + "poisson_log_glm_lupmf", + "poisson_log_lpmf", + "poisson_log_lupmf", + "poisson_log_rng", + "poisson_lpmf", + "poisson_lupmf", + "poisson_rng", + "polar", + "positive_infinity", + "pow", + "print", + "prod", + "proj", + "qr_Q", + "qr_R", + "qr_thin_Q", + "qr_thin_R", + "quad_form", + "quad_form_diag", + "quad_form_sym", + "quantile", + "rank", + "rayleigh_cdf", + "rayleigh_lccdf", + "rayleigh_lcdf", + "rayleigh_lpdf", + "rayleigh_lupdf", + "rayleigh_rng", + "reduce_sum", + "reject", + "rep_array", + "rep_matrix", + "rep_row_vector", + "rep_vector", + "reverse", + "rising_factorial", + "round", + "row", + "rows", + "rows_dot_product", + "rows_dot_self", + "scale_matrix_exp_multiply", + "scaled_inv_chi_square_cdf", + "scaled_inv_chi_square_lccdf", + "scaled_inv_chi_square_lcdf", + "scaled_inv_chi_square_lpdf", + "scaled_inv_chi_square_lupdf", + "scaled_inv_chi_square_rng", + "sd", + "segment", + "sin", + "singular_values", + "sinh", + "size", + "skew_double_exponential_cdf", + "skew_double_exponential_lccdf", + "skew_double_exponential_lcdf", + "skew_double_exponential_lpdf", + "skew_double_exponential_lupdf", + "skew_double_exponential_rng", + "skew_normal_cdf", + "skew_normal_lccdf", + "skew_normal_lcdf", + "skew_normal_lpdf", + "skew_normal_lupdf", + "skew_normal_rng", + "softmax", + "sort_asc", + "sort_desc", + "sort_indices_asc", + "sort_indices_desc", + "sqrt", + "sqrt2", + "square", + "squared_distance", + "std_normal_cdf", + "std_normal_lccdf", + "std_normal_lcdf", + "std_normal_lpdf", + "std_normal_lupdf", + "std_normal_rng", + "step", + "student_t_cdf", + "student_t_lccdf", + "student_t_lcdf", + "student_t_lpdf", + "student_t_lupdf", + "student_t_rng", + "sub_col", + "sub_row", + "sum", + "svd_U", + "svd_V", + "symmetrize_from_lower_tri", + "tail", + "tan", + "tanh", + "target", + "tcrossprod", + "tgamma", + "to_array_1d", + "to_array_2d", + "to_complex", + "to_matrix", + "to_row_vector", + "to_vector", + "trace", + "trace_gen_quad_form", + "trace_quad_form", + "trigamma", + "trunc", + "uniform_cdf", + "uniform_lccdf", + "uniform_lcdf", + "uniform_lpdf", + "uniform_lupdf", + "uniform_rng", + "uniform_simplex", + "variance", + "von_mises_cdf", + "von_mises_lccdf", + "von_mises_lcdf", + "von_mises_lpdf", + "von_mises_lupdf", + "von_mises_rng", + "weibull_cdf", + "weibull_lccdf", + "weibull_lcdf", + "weibull_lpdf", + "weibull_lupdf", + "weibull_rng", + "wiener_lpdf", + "wiener_lupdf", + "wishart_lpdf", + "wishart_lupdf", + "wishart_rng", + "zeros_array", + "zeros_int_array", + "zeros_row_vector", ) DISTRIBUTIONS = ( - 'bernoulli', - 'bernoulli_logit', - 'bernoulli_logit_glm', - 'beta', - 'beta_binomial', - 'binomial', - 'binomial_logit', - 'categorical', - 'categorical_logit', - 'categorical_logit_glm', - 'cauchy', - 'chi_square', - 'dirichlet', - 'discrete_range', - 'double_exponential', - 'exp_mod_normal', - 'exponential', - 'frechet', - 'gamma', - 'gaussian_dlm_obs', - 'gumbel', - 'hypergeometric', - 'inv_chi_square', - 'inv_gamma', - 'inv_wishart', - 'lkj_corr', - 'lkj_corr_cholesky', - 'logistic', - 'loglogistic', - 'lognormal', - 'multi_gp', - 'multi_gp_cholesky', - 'multi_normal', - 'multi_normal_cholesky', - 'multi_normal_prec', - 'multi_student_t', - 'multinomial', - 'multinomial_logit', - 'neg_binomial', - 'neg_binomial_2', - 'neg_binomial_2_log', - 'neg_binomial_2_log_glm', - 'normal', - 'normal_id_glm', - 'ordered_logistic', - 'ordered_logistic_glm', - 'ordered_probit', - 'pareto', - 'pareto_type_2', - 'poisson', - 'poisson_log', - 'poisson_log_glm', - 'rayleigh', - 'scaled_inv_chi_square', - 'skew_double_exponential', - 'skew_normal', - 'std_normal', - 'student_t', - 'uniform', - 'von_mises', - 'weibull', - 'wiener', - 'wishart', + "bernoulli", + "bernoulli_logit", + "bernoulli_logit_glm", + "beta", + "beta_binomial", + "binomial", + "binomial_logit", + "categorical", + "categorical_logit", + "categorical_logit_glm", + "cauchy", + "chi_square", + "dirichlet", + "discrete_range", + "double_exponential", + "exp_mod_normal", + "exponential", + "frechet", + "gamma", + "gaussian_dlm_obs", + "gumbel", + "hypergeometric", + "inv_chi_square", + "inv_gamma", + "inv_wishart", + "lkj_corr", + "lkj_corr_cholesky", + "logistic", + "loglogistic", + "lognormal", + "multi_gp", + "multi_gp_cholesky", + "multi_normal", + "multi_normal_cholesky", + "multi_normal_prec", + "multi_student_t", + "multinomial", + "multinomial_logit", + "neg_binomial", + "neg_binomial_2", + "neg_binomial_2_log", + "neg_binomial_2_log_glm", + "normal", + "normal_id_glm", + "ordered_logistic", + "ordered_logistic_glm", + "ordered_probit", + "pareto", + "pareto_type_2", + "poisson", + "poisson_log", + "poisson_log_glm", + "rayleigh", + "scaled_inv_chi_square", + "skew_double_exponential", + "skew_normal", + "std_normal", + "student_t", + "uniform", + "von_mises", + "weibull", + "wiener", + "wishart", ) RESERVED = ( - 'repeat', - 'until', - 'then', - 'true', - 'false', - 'var', - 'struct', - 'typedef', - 'export', - 'auto', - 'extern', - 'var', - 'static', + "repeat", + "until", + "then", + "true", + "false", + "var", + "struct", + "typedef", + "export", + "auto", + "extern", + "var", + "static", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stata_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stata_builtins.py index 6a36f04..1f7e8f5 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stata_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_stata_builtins.py @@ -1,457 +1,2240 @@ """ - pygments.lexers._stata_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._stata_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Builtins for Stata +Builtins for Stata - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ - -builtins_special = ( - "if", "in", "using", "replace", "by", "gen", "generate" -) +builtins_special = ("if", "in", "using", "replace", "by", "gen", "generate") builtins_base = ( - "if", "else", "in", "foreach", "for", "forv", "forva", - "forval", "forvalu", "forvalue", "forvalues", "by", "bys", - "bysort", "quietly", "qui", "about", "ac", - "ac_7", "acprplot", "acprplot_7", "adjust", "ado", "adopath", - "adoupdate", "alpha", "ameans", "an", "ano", "anov", "anova", - "anova_estat", "anova_terms", "anovadef", "aorder", "ap", "app", - "appe", "appen", "append", "arch", "arch_dr", "arch_estat", - "arch_p", "archlm", "areg", "areg_p", "args", "arima", - "arima_dr", "arima_estat", "arima_p", "as", "asmprobit", - "asmprobit_estat", "asmprobit_lf", "asmprobit_mfx__dlg", - "asmprobit_p", "ass", "asse", "asser", "assert", "avplot", - "avplot_7", "avplots", "avplots_7", "bcskew0", "bgodfrey", - "binreg", "bip0_lf", "biplot", "bipp_lf", "bipr_lf", - "bipr_p", "biprobit", "bitest", "bitesti", "bitowt", "blogit", - "bmemsize", "boot", "bootsamp", "bootstrap", "bootstrap_8", - "boxco_l", "boxco_p", "boxcox", "boxcox_6", "boxcox_p", - "bprobit", "br", "break", "brier", "bro", "brow", "brows", - "browse", "brr", "brrstat", "bs", "bs_7", "bsampl_w", - "bsample", "bsample_7", "bsqreg", "bstat", "bstat_7", "bstat_8", - "bstrap", "bstrap_7", "ca", "ca_estat", "ca_p", "cabiplot", - "camat", "canon", "canon_8", "canon_8_p", "canon_estat", - "canon_p", "cap", "caprojection", "capt", "captu", "captur", - "capture", "cat", "cc", "cchart", "cchart_7", "cci", - "cd", "censobs_table", "centile", "cf", "char", "chdir", - "checkdlgfiles", "checkestimationsample", "checkhlpfiles", - "checksum", "chelp", "ci", "cii", "cl", "class", "classutil", - "clear", "cli", "clis", "clist", "clo", "clog", "clog_lf", - "clog_p", "clogi", "clogi_sw", "clogit", "clogit_lf", - "clogit_p", "clogitp", "clogl_sw", "cloglog", "clonevar", - "clslistarray", "cluster", "cluster_measures", "cluster_stop", - "cluster_tree", "cluster_tree_8", "clustermat", "cmdlog", - "cnr", "cnre", "cnreg", "cnreg_p", "cnreg_sw", "cnsreg", - "codebook", "collaps4", "collapse", "colormult_nb", - "colormult_nw", "compare", "compress", "conf", "confi", - "confir", "confirm", "conren", "cons", "const", "constr", - "constra", "constrai", "constrain", "constraint", "continue", - "contract", "copy", "copyright", "copysource", "cor", "corc", - "corr", "corr2data", "corr_anti", "corr_kmo", "corr_smc", - "corre", "correl", "correla", "correlat", "correlate", - "corrgram", "cou", "coun", "count", "cox", "cox_p", "cox_sw", - "coxbase", "coxhaz", "coxvar", "cprplot", "cprplot_7", - "crc", "cret", "cretu", "cretur", "creturn", "cross", "cs", - "cscript", "cscript_log", "csi", "ct", "ct_is", "ctset", - "ctst_5", "ctst_st", "cttost", "cumsp", "cumsp_7", "cumul", - "cusum", "cusum_7", "cutil", "d", "datasig", "datasign", - "datasigna", "datasignat", "datasignatu", "datasignatur", - "datasignature", "datetof", "db", "dbeta", "de", "dec", - "deco", "decod", "decode", "deff", "des", "desc", "descr", - "descri", "describ", "describe", "destring", "dfbeta", - "dfgls", "dfuller", "di", "di_g", "dir", "dirstats", "dis", - "discard", "disp", "disp_res", "disp_s", "displ", "displa", - "display", "distinct", "do", "doe", "doed", "doedi", - "doedit", "dotplot", "dotplot_7", "dprobit", "drawnorm", - "drop", "ds", "ds_util", "dstdize", "duplicates", "durbina", - "dwstat", "dydx", "e", "ed", "edi", "edit", "egen", - "eivreg", "emdef", "end", "en", "enc", "enco", "encod", "encode", - "eq", "erase", "ereg", "ereg_lf", "ereg_p", "ereg_sw", - "ereghet", "ereghet_glf", "ereghet_glf_sh", "ereghet_gp", - "ereghet_ilf", "ereghet_ilf_sh", "ereghet_ip", "eret", - "eretu", "eretur", "ereturn", "err", "erro", "error", "est", - "est_cfexist", "est_cfname", "est_clickable", "est_expand", - "est_hold", "est_table", "est_unhold", "est_unholdok", - "estat", "estat_default", "estat_summ", "estat_vce_only", - "esti", "estimates", "etodow", "etof", "etomdy", "ex", - "exi", "exit", "expand", "expandcl", "fac", "fact", "facto", - "factor", "factor_estat", "factor_p", "factor_pca_rotated", - "factor_rotate", "factormat", "fcast", "fcast_compute", - "fcast_graph", "fdades", "fdadesc", "fdadescr", "fdadescri", - "fdadescrib", "fdadescribe", "fdasav", "fdasave", "fdause", - "fh_st", "open", "read", "close", - "file", "filefilter", "fillin", "find_hlp_file", "findfile", - "findit", "findit_7", "fit", "fl", "fli", "flis", "flist", - "for5_0", "form", "forma", "format", "fpredict", "frac_154", - "frac_adj", "frac_chk", "frac_cox", "frac_ddp", "frac_dis", - "frac_dv", "frac_in", "frac_mun", "frac_pp", "frac_pq", - "frac_pv", "frac_wgt", "frac_xo", "fracgen", "fracplot", - "fracplot_7", "fracpoly", "fracpred", "fron_ex", "fron_hn", - "fron_p", "fron_tn", "fron_tn2", "frontier", "ftodate", "ftoe", - "ftomdy", "ftowdate", "g", "gamhet_glf", "gamhet_gp", - "gamhet_ilf", "gamhet_ip", "gamma", "gamma_d2", "gamma_p", - "gamma_sw", "gammahet", "gdi_hexagon", "gdi_spokes", "ge", - "gen", "gene", "gener", "genera", "generat", "generate", - "genrank", "genstd", "genvmean", "gettoken", "gl", "gladder", - "gladder_7", "glim_l01", "glim_l02", "glim_l03", "glim_l04", - "glim_l05", "glim_l06", "glim_l07", "glim_l08", "glim_l09", - "glim_l10", "glim_l11", "glim_l12", "glim_lf", "glim_mu", - "glim_nw1", "glim_nw2", "glim_nw3", "glim_p", "glim_v1", - "glim_v2", "glim_v3", "glim_v4", "glim_v5", "glim_v6", - "glim_v7", "glm", "glm_6", "glm_p", "glm_sw", "glmpred", "glo", - "glob", "globa", "global", "glogit", "glogit_8", "glogit_p", - "gmeans", "gnbre_lf", "gnbreg", "gnbreg_5", "gnbreg_p", - "gomp_lf", "gompe_sw", "gomper_p", "gompertz", "gompertzhet", - "gomphet_glf", "gomphet_glf_sh", "gomphet_gp", "gomphet_ilf", - "gomphet_ilf_sh", "gomphet_ip", "gphdot", "gphpen", - "gphprint", "gprefs", "gprobi_p", "gprobit", "gprobit_8", "gr", - "gr7", "gr_copy", "gr_current", "gr_db", "gr_describe", - "gr_dir", "gr_draw", "gr_draw_replay", "gr_drop", "gr_edit", - "gr_editviewopts", "gr_example", "gr_example2", "gr_export", - "gr_print", "gr_qscheme", "gr_query", "gr_read", "gr_rename", - "gr_replay", "gr_save", "gr_set", "gr_setscheme", "gr_table", - "gr_undo", "gr_use", "graph", "graph7", "grebar", "greigen", - "greigen_7", "greigen_8", "grmeanby", "grmeanby_7", - "gs_fileinfo", "gs_filetype", "gs_graphinfo", "gs_stat", - "gsort", "gwood", "h", "hadimvo", "hareg", "hausman", - "haver", "he", "heck_d2", "heckma_p", "heckman", "heckp_lf", - "heckpr_p", "heckprob", "hel", "help", "hereg", "hetpr_lf", - "hetpr_p", "hetprob", "hettest", "hexdump", "hilite", - "hist", "hist_7", "histogram", "hlogit", "hlu", "hmeans", - "hotel", "hotelling", "hprobit", "hreg", "hsearch", "icd9", - "icd9_ff", "icd9p", "iis", "impute", "imtest", "inbase", - "include", "inf", "infi", "infil", "infile", "infix", "inp", - "inpu", "input", "ins", "insheet", "insp", "inspe", - "inspec", "inspect", "integ", "inten", "intreg", "intreg_7", - "intreg_p", "intrg2_ll", "intrg_ll", "intrg_ll2", "ipolate", - "iqreg", "ir", "irf", "irf_create", "irfm", "iri", "is_svy", - "is_svysum", "isid", "istdize", "ivprob_1_lf", "ivprob_lf", - "ivprobit", "ivprobit_p", "ivreg", "ivreg_footnote", - "ivtob_1_lf", "ivtob_lf", "ivtobit", "ivtobit_p", "jackknife", - "jacknife", "jknife", "jknife_6", "jknife_8", "jkstat", - "joinby", "kalarma1", "kap", "kap_3", "kapmeier", "kappa", - "kapwgt", "kdensity", "kdensity_7", "keep", "ksm", "ksmirnov", - "ktau", "kwallis", "l", "la", "lab", "labe", "label", - "labelbook", "ladder", "levels", "levelsof", "leverage", - "lfit", "lfit_p", "li", "lincom", "line", "linktest", - "lis", "list", "lloghet_glf", "lloghet_glf_sh", "lloghet_gp", - "lloghet_ilf", "lloghet_ilf_sh", "lloghet_ip", "llogi_sw", - "llogis_p", "llogist", "llogistic", "llogistichet", - "lnorm_lf", "lnorm_sw", "lnorma_p", "lnormal", "lnormalhet", - "lnormhet_glf", "lnormhet_glf_sh", "lnormhet_gp", - "lnormhet_ilf", "lnormhet_ilf_sh", "lnormhet_ip", "lnskew0", - "loadingplot", "loc", "loca", "local", "log", "logi", - "logis_lf", "logistic", "logistic_p", "logit", "logit_estat", - "logit_p", "loglogs", "logrank", "loneway", "lookfor", - "lookup", "lowess", "lowess_7", "lpredict", "lrecomp", "lroc", - "lroc_7", "lrtest", "ls", "lsens", "lsens_7", "lsens_x", - "lstat", "ltable", "ltable_7", "ltriang", "lv", "lvr2plot", - "lvr2plot_7", "m", "ma", "mac", "macr", "macro", "makecns", - "man", "manova", "manova_estat", "manova_p", "manovatest", - "mantel", "mark", "markin", "markout", "marksample", "mat", - "mat_capp", "mat_order", "mat_put_rr", "mat_rapp", "mata", - "mata_clear", "mata_describe", "mata_drop", "mata_matdescribe", - "mata_matsave", "mata_matuse", "mata_memory", "mata_mlib", - "mata_mosave", "mata_rename", "mata_which", "matalabel", - "matcproc", "matlist", "matname", "matr", "matri", - "matrix", "matrix_input__dlg", "matstrik", "mcc", "mcci", - "md0_", "md1_", "md1debug_", "md2_", "md2debug_", "mds", - "mds_estat", "mds_p", "mdsconfig", "mdslong", "mdsmat", - "mdsshepard", "mdytoe", "mdytof", "me_derd", "mean", - "means", "median", "memory", "memsize", "meqparse", "mer", - "merg", "merge", "mfp", "mfx", "mhelp", "mhodds", "minbound", - "mixed_ll", "mixed_ll_reparm", "mkassert", "mkdir", - "mkmat", "mkspline", "ml", "ml_5", "ml_adjs", "ml_bhhhs", - "ml_c_d", "ml_check", "ml_clear", "ml_cnt", "ml_debug", - "ml_defd", "ml_e0", "ml_e0_bfgs", "ml_e0_cycle", "ml_e0_dfp", - "ml_e0i", "ml_e1", "ml_e1_bfgs", "ml_e1_bhhh", "ml_e1_cycle", - "ml_e1_dfp", "ml_e2", "ml_e2_cycle", "ml_ebfg0", "ml_ebfr0", - "ml_ebfr1", "ml_ebh0q", "ml_ebhh0", "ml_ebhr0", "ml_ebr0i", - "ml_ecr0i", "ml_edfp0", "ml_edfr0", "ml_edfr1", "ml_edr0i", - "ml_eds", "ml_eer0i", "ml_egr0i", "ml_elf", "ml_elf_bfgs", - "ml_elf_bhhh", "ml_elf_cycle", "ml_elf_dfp", "ml_elfi", - "ml_elfs", "ml_enr0i", "ml_enrr0", "ml_erdu0", "ml_erdu0_bfgs", - "ml_erdu0_bhhh", "ml_erdu0_bhhhq", "ml_erdu0_cycle", - "ml_erdu0_dfp", "ml_erdu0_nrbfgs", "ml_exde", "ml_footnote", - "ml_geqnr", "ml_grad0", "ml_graph", "ml_hbhhh", "ml_hd0", - "ml_hold", "ml_init", "ml_inv", "ml_log", "ml_max", - "ml_mlout", "ml_mlout_8", "ml_model", "ml_nb0", "ml_opt", - "ml_p", "ml_plot", "ml_query", "ml_rdgrd", "ml_repor", - "ml_s_e", "ml_score", "ml_searc", "ml_technique", "ml_unhold", - "mleval", "mlf_", "mlmatbysum", "mlmatsum", "mlog", "mlogi", - "mlogit", "mlogit_footnote", "mlogit_p", "mlopts", "mlsum", - "mlvecsum", "mnl0_", "mor", "more", "mov", "move", "mprobit", - "mprobit_lf", "mprobit_p", "mrdu0_", "mrdu1_", "mvdecode", - "mvencode", "mvreg", "mvreg_estat", "n", "nbreg", - "nbreg_al", "nbreg_lf", "nbreg_p", "nbreg_sw", "nestreg", "net", - "newey", "newey_7", "newey_p", "news", "nl", "nl_7", "nl_9", - "nl_9_p", "nl_p", "nl_p_7", "nlcom", "nlcom_p", "nlexp2", - "nlexp2_7", "nlexp2a", "nlexp2a_7", "nlexp3", "nlexp3_7", - "nlgom3", "nlgom3_7", "nlgom4", "nlgom4_7", "nlinit", "nllog3", - "nllog3_7", "nllog4", "nllog4_7", "nlog_rd", "nlogit", - "nlogit_p", "nlogitgen", "nlogittree", "nlpred", "no", - "nobreak", "noi", "nois", "noisi", "noisil", "noisily", "note", - "notes", "notes_dlg", "nptrend", "numlabel", "numlist", "odbc", - "old_ver", "olo", "olog", "ologi", "ologi_sw", "ologit", - "ologit_p", "ologitp", "on", "one", "onew", "onewa", "oneway", - "op_colnm", "op_comp", "op_diff", "op_inv", "op_str", "opr", - "opro", "oprob", "oprob_sw", "oprobi", "oprobi_p", "oprobit", - "oprobitp", "opts_exclusive", "order", "orthog", "orthpoly", - "ou", "out", "outf", "outfi", "outfil", "outfile", "outs", - "outsh", "outshe", "outshee", "outsheet", "ovtest", "pac", - "pac_7", "palette", "parse", "parse_dissim", "pause", "pca", - "pca_8", "pca_display", "pca_estat", "pca_p", "pca_rotate", - "pcamat", "pchart", "pchart_7", "pchi", "pchi_7", "pcorr", - "pctile", "pentium", "pergram", "pergram_7", "permute", - "permute_8", "personal", "peto_st", "pkcollapse", "pkcross", - "pkequiv", "pkexamine", "pkexamine_7", "pkshape", "pksumm", - "pksumm_7", "pl", "plo", "plot", "plugin", "pnorm", - "pnorm_7", "poisgof", "poiss_lf", "poiss_sw", "poisso_p", - "poisson", "poisson_estat", "post", "postclose", "postfile", - "postutil", "pperron", "pr", "prais", "prais_e", "prais_e2", - "prais_p", "predict", "predictnl", "preserve", "print", - "pro", "prob", "probi", "probit", "probit_estat", "probit_p", - "proc_time", "procoverlay", "procrustes", "procrustes_estat", - "procrustes_p", "profiler", "prog", "progr", "progra", - "program", "prop", "proportion", "prtest", "prtesti", "pwcorr", - "pwd", "q", "s", "qby", "qbys", "qchi", "qchi_7", "qladder", - "qladder_7", "qnorm", "qnorm_7", "qqplot", "qqplot_7", "qreg", - "qreg_c", "qreg_p", "qreg_sw", "qu", "quadchk", "quantile", - "quantile_7", "que", "quer", "query", "range", "ranksum", - "ratio", "rchart", "rchart_7", "rcof", "recast", "reclink", - "recode", "reg", "reg3", "reg3_p", "regdw", "regr", "regre", - "regre_p2", "regres", "regres_p", "regress", "regress_estat", - "regriv_p", "remap", "ren", "rena", "renam", "rename", - "renpfix", "repeat", "replace", "report", "reshape", - "restore", "ret", "retu", "retur", "return", "rm", "rmdir", - "robvar", "roccomp", "roccomp_7", "roccomp_8", "rocf_lf", - "rocfit", "rocfit_8", "rocgold", "rocplot", "rocplot_7", - "roctab", "roctab_7", "rolling", "rologit", "rologit_p", - "rot", "rota", "rotat", "rotate", "rotatemat", "rreg", - "rreg_p", "ru", "run", "runtest", "rvfplot", "rvfplot_7", - "rvpplot", "rvpplot_7", "sa", "safesum", "sample", - "sampsi", "sav", "save", "savedresults", "saveold", "sc", - "sca", "scal", "scala", "scalar", "scatter", "scm_mine", - "sco", "scob_lf", "scob_p", "scobi_sw", "scobit", "scor", - "score", "scoreplot", "scoreplot_help", "scree", "screeplot", - "screeplot_help", "sdtest", "sdtesti", "se", "search", - "separate", "seperate", "serrbar", "serrbar_7", "serset", "set", - "set_defaults", "sfrancia", "sh", "she", "shel", "shell", - "shewhart", "shewhart_7", "signestimationsample", "signrank", - "signtest", "simul", "simul_7", "simulate", "simulate_8", - "sktest", "sleep", "slogit", "slogit_d2", "slogit_p", "smooth", - "snapspan", "so", "sor", "sort", "spearman", "spikeplot", - "spikeplot_7", "spikeplt", "spline_x", "split", "sqreg", - "sqreg_p", "sret", "sretu", "sretur", "sreturn", "ssc", "st", - "st_ct", "st_hc", "st_hcd", "st_hcd_sh", "st_is", "st_issys", - "st_note", "st_promo", "st_set", "st_show", "st_smpl", - "st_subid", "stack", "statsby", "statsby_8", "stbase", "stci", - "stci_7", "stcox", "stcox_estat", "stcox_fr", "stcox_fr_ll", - "stcox_p", "stcox_sw", "stcoxkm", "stcoxkm_7", "stcstat", - "stcurv", "stcurve", "stcurve_7", "stdes", "stem", "stepwise", - "stereg", "stfill", "stgen", "stir", "stjoin", "stmc", "stmh", - "stphplot", "stphplot_7", "stphtest", "stphtest_7", - "stptime", "strate", "strate_7", "streg", "streg_sw", "streset", - "sts", "sts_7", "stset", "stsplit", "stsum", "sttocc", - "sttoct", "stvary", "stweib", "su", "suest", "suest_8", - "sum", "summ", "summa", "summar", "summari", "summariz", - "summarize", "sunflower", "sureg", "survcurv", "survsum", - "svar", "svar_p", "svmat", "svy", "svy_disp", "svy_dreg", - "svy_est", "svy_est_7", "svy_estat", "svy_get", "svy_gnbreg_p", - "svy_head", "svy_header", "svy_heckman_p", "svy_heckprob_p", - "svy_intreg_p", "svy_ivreg_p", "svy_logistic_p", "svy_logit_p", - "svy_mlogit_p", "svy_nbreg_p", "svy_ologit_p", "svy_oprobit_p", - "svy_poisson_p", "svy_probit_p", "svy_regress_p", "svy_sub", - "svy_sub_7", "svy_x", "svy_x_7", "svy_x_p", "svydes", - "svydes_8", "svygen", "svygnbreg", "svyheckman", "svyheckprob", - "svyintreg", "svyintreg_7", "svyintrg", "svyivreg", "svylc", - "svylog_p", "svylogit", "svymarkout", "svymarkout_8", - "svymean", "svymlog", "svymlogit", "svynbreg", "svyolog", - "svyologit", "svyoprob", "svyoprobit", "svyopts", - "svypois", "svypois_7", "svypoisson", "svyprobit", "svyprobt", - "svyprop", "svyprop_7", "svyratio", "svyreg", "svyreg_p", - "svyregress", "svyset", "svyset_7", "svyset_8", "svytab", - "svytab_7", "svytest", "svytotal", "sw", "sw_8", "swcnreg", - "swcox", "swereg", "swilk", "swlogis", "swlogit", - "swologit", "swoprbt", "swpois", "swprobit", "swqreg", - "swtobit", "swweib", "symmetry", "symmi", "symplot", - "symplot_7", "syntax", "sysdescribe", "sysdir", "sysuse", - "szroeter", "ta", "tab", "tab1", "tab2", "tab_or", "tabd", - "tabdi", "tabdis", "tabdisp", "tabi", "table", "tabodds", - "tabodds_7", "tabstat", "tabu", "tabul", "tabula", "tabulat", - "tabulate", "te", "tempfile", "tempname", "tempvar", "tes", - "test", "testnl", "testparm", "teststd", "tetrachoric", - "time_it", "timer", "tis", "tob", "tobi", "tobit", "tobit_p", - "tobit_sw", "token", "tokeni", "tokeniz", "tokenize", - "tostring", "total", "translate", "translator", "transmap", - "treat_ll", "treatr_p", "treatreg", "trim", "trnb_cons", - "trnb_mean", "trpoiss_d2", "trunc_ll", "truncr_p", "truncreg", - "tsappend", "tset", "tsfill", "tsline", "tsline_ex", - "tsreport", "tsrevar", "tsrline", "tsset", "tssmooth", - "tsunab", "ttest", "ttesti", "tut_chk", "tut_wait", "tutorial", - "tw", "tware_st", "two", "twoway", "twoway__fpfit_serset", - "twoway__function_gen", "twoway__histogram_gen", - "twoway__ipoint_serset", "twoway__ipoints_serset", - "twoway__kdensity_gen", "twoway__lfit_serset", - "twoway__normgen_gen", "twoway__pci_serset", - "twoway__qfit_serset", "twoway__scatteri_serset", - "twoway__sunflower_gen", "twoway_ksm_serset", "ty", "typ", - "type", "typeof", "u", "unab", "unabbrev", "unabcmd", - "update", "us", "use", "uselabel", "var", "var_mkcompanion", - "var_p", "varbasic", "varfcast", "vargranger", "varirf", - "varirf_add", "varirf_cgraph", "varirf_create", "varirf_ctable", - "varirf_describe", "varirf_dir", "varirf_drop", "varirf_erase", - "varirf_graph", "varirf_ograph", "varirf_rename", "varirf_set", - "varirf_table", "varlist", "varlmar", "varnorm", "varsoc", - "varstable", "varstable_w", "varstable_w2", "varwle", - "vce", "vec", "vec_fevd", "vec_mkphi", "vec_p", "vec_p_w", - "vecirf_create", "veclmar", "veclmar_w", "vecnorm", - "vecnorm_w", "vecrank", "vecstable", "verinst", "vers", - "versi", "versio", "version", "view", "viewsource", "vif", - "vwls", "wdatetof", "webdescribe", "webseek", "webuse", - "weib1_lf", "weib2_lf", "weib_lf", "weib_lf0", "weibhet_glf", - "weibhet_glf_sh", "weibhet_glfa", "weibhet_glfa_sh", - "weibhet_gp", "weibhet_ilf", "weibhet_ilf_sh", "weibhet_ilfa", - "weibhet_ilfa_sh", "weibhet_ip", "weibu_sw", "weibul_p", - "weibull", "weibull_c", "weibull_s", "weibullhet", - "wh", "whelp", "whi", "which", "whil", "while", "wilc_st", - "wilcoxon", "win", "wind", "windo", "window", "winexec", - "wntestb", "wntestb_7", "wntestq", "xchart", "xchart_7", - "xcorr", "xcorr_7", "xi", "xi_6", "xmlsav", "xmlsave", - "xmluse", "xpose", "xsh", "xshe", "xshel", "xshell", - "xt_iis", "xt_tis", "xtab_p", "xtabond", "xtbin_p", - "xtclog", "xtcloglog", "xtcloglog_8", "xtcloglog_d2", - "xtcloglog_pa_p", "xtcloglog_re_p", "xtcnt_p", "xtcorr", - "xtdata", "xtdes", "xtfront_p", "xtfrontier", "xtgee", - "xtgee_elink", "xtgee_estat", "xtgee_makeivar", "xtgee_p", - "xtgee_plink", "xtgls", "xtgls_p", "xthaus", "xthausman", - "xtht_p", "xthtaylor", "xtile", "xtint_p", "xtintreg", - "xtintreg_8", "xtintreg_d2", "xtintreg_p", "xtivp_1", - "xtivp_2", "xtivreg", "xtline", "xtline_ex", "xtlogit", - "xtlogit_8", "xtlogit_d2", "xtlogit_fe_p", "xtlogit_pa_p", - "xtlogit_re_p", "xtmixed", "xtmixed_estat", "xtmixed_p", - "xtnb_fe", "xtnb_lf", "xtnbreg", "xtnbreg_pa_p", - "xtnbreg_refe_p", "xtpcse", "xtpcse_p", "xtpois", "xtpoisson", - "xtpoisson_d2", "xtpoisson_pa_p", "xtpoisson_refe_p", "xtpred", - "xtprobit", "xtprobit_8", "xtprobit_d2", "xtprobit_re_p", - "xtps_fe", "xtps_lf", "xtps_ren", "xtps_ren_8", "xtrar_p", - "xtrc", "xtrc_p", "xtrchh", "xtrefe_p", "xtreg", "xtreg_be", - "xtreg_fe", "xtreg_ml", "xtreg_pa_p", "xtreg_re", - "xtregar", "xtrere_p", "xtset", "xtsf_ll", "xtsf_llti", - "xtsum", "xttab", "xttest0", "xttobit", "xttobit_8", - "xttobit_p", "xttrans", "yx", "yxview__barlike_draw", - "yxview_area_draw", "yxview_bar_draw", "yxview_dot_draw", - "yxview_dropline_draw", "yxview_function_draw", - "yxview_iarrow_draw", "yxview_ilabels_draw", - "yxview_normal_draw", "yxview_pcarrow_draw", - "yxview_pcbarrow_draw", "yxview_pccapsym_draw", - "yxview_pcscatter_draw", "yxview_pcspike_draw", - "yxview_rarea_draw", "yxview_rbar_draw", "yxview_rbarm_draw", - "yxview_rcap_draw", "yxview_rcapsym_draw", - "yxview_rconnected_draw", "yxview_rline_draw", - "yxview_rscatter_draw", "yxview_rspike_draw", - "yxview_spike_draw", "yxview_sunflower_draw", "zap_s", "zinb", - "zinb_llf", "zinb_plf", "zip", "zip_llf", "zip_p", "zip_plf", - "zt_ct_5", "zt_hc_5", "zt_hcd_5", "zt_is_5", "zt_iss_5", - "zt_sho_5", "zt_smp_5", "ztbase_5", "ztcox_5", "ztdes_5", - "ztereg_5", "ztfill_5", "ztgen_5", "ztir_5", "ztjoin_5", "ztnb", - "ztnb_p", "ztp", "ztp_p", "zts_5", "ztset_5", "ztspli_5", - "ztsum_5", "zttoct_5", "ztvary_5", "ztweib_5" + "if", + "else", + "in", + "foreach", + "for", + "forv", + "forva", + "forval", + "forvalu", + "forvalue", + "forvalues", + "by", + "bys", + "bysort", + "quietly", + "qui", + "about", + "ac", + "ac_7", + "acprplot", + "acprplot_7", + "adjust", + "ado", + "adopath", + "adoupdate", + "alpha", + "ameans", + "an", + "ano", + "anov", + "anova", + "anova_estat", + "anova_terms", + "anovadef", + "aorder", + "ap", + "app", + "appe", + "appen", + "append", + "arch", + "arch_dr", + "arch_estat", + "arch_p", + "archlm", + "areg", + "areg_p", + "args", + "arima", + "arima_dr", + "arima_estat", + "arima_p", + "as", + "asmprobit", + "asmprobit_estat", + "asmprobit_lf", + "asmprobit_mfx__dlg", + "asmprobit_p", + "ass", + "asse", + "asser", + "assert", + "avplot", + "avplot_7", + "avplots", + "avplots_7", + "bcskew0", + "bgodfrey", + "binreg", + "bip0_lf", + "biplot", + "bipp_lf", + "bipr_lf", + "bipr_p", + "biprobit", + "bitest", + "bitesti", + "bitowt", + "blogit", + "bmemsize", + "boot", + "bootsamp", + "bootstrap", + "bootstrap_8", + "boxco_l", + "boxco_p", + "boxcox", + "boxcox_6", + "boxcox_p", + "bprobit", + "br", + "break", + "brier", + "bro", + "brow", + "brows", + "browse", + "brr", + "brrstat", + "bs", + "bs_7", + "bsampl_w", + "bsample", + "bsample_7", + "bsqreg", + "bstat", + "bstat_7", + "bstat_8", + "bstrap", + "bstrap_7", + "ca", + "ca_estat", + "ca_p", + "cabiplot", + "camat", + "canon", + "canon_8", + "canon_8_p", + "canon_estat", + "canon_p", + "cap", + "caprojection", + "capt", + "captu", + "captur", + "capture", + "cat", + "cc", + "cchart", + "cchart_7", + "cci", + "cd", + "censobs_table", + "centile", + "cf", + "char", + "chdir", + "checkdlgfiles", + "checkestimationsample", + "checkhlpfiles", + "checksum", + "chelp", + "ci", + "cii", + "cl", + "class", + "classutil", + "clear", + "cli", + "clis", + "clist", + "clo", + "clog", + "clog_lf", + "clog_p", + "clogi", + "clogi_sw", + "clogit", + "clogit_lf", + "clogit_p", + "clogitp", + "clogl_sw", + "cloglog", + "clonevar", + "clslistarray", + "cluster", + "cluster_measures", + "cluster_stop", + "cluster_tree", + "cluster_tree_8", + "clustermat", + "cmdlog", + "cnr", + "cnre", + "cnreg", + "cnreg_p", + "cnreg_sw", + "cnsreg", + "codebook", + "collaps4", + "collapse", + "colormult_nb", + "colormult_nw", + "compare", + "compress", + "conf", + "confi", + "confir", + "confirm", + "conren", + "cons", + "const", + "constr", + "constra", + "constrai", + "constrain", + "constraint", + "continue", + "contract", + "copy", + "copyright", + "copysource", + "cor", + "corc", + "corr", + "corr2data", + "corr_anti", + "corr_kmo", + "corr_smc", + "corre", + "correl", + "correla", + "correlat", + "correlate", + "corrgram", + "cou", + "coun", + "count", + "cox", + "cox_p", + "cox_sw", + "coxbase", + "coxhaz", + "coxvar", + "cprplot", + "cprplot_7", + "crc", + "cret", + "cretu", + "cretur", + "creturn", + "cross", + "cs", + "cscript", + "cscript_log", + "csi", + "ct", + "ct_is", + "ctset", + "ctst_5", + "ctst_st", + "cttost", + "cumsp", + "cumsp_7", + "cumul", + "cusum", + "cusum_7", + "cutil", + "d", + "datasig", + "datasign", + "datasigna", + "datasignat", + "datasignatu", + "datasignatur", + "datasignature", + "datetof", + "db", + "dbeta", + "de", + "dec", + "deco", + "decod", + "decode", + "deff", + "des", + "desc", + "descr", + "descri", + "describ", + "describe", + "destring", + "dfbeta", + "dfgls", + "dfuller", + "di", + "di_g", + "dir", + "dirstats", + "dis", + "discard", + "disp", + "disp_res", + "disp_s", + "displ", + "displa", + "display", + "distinct", + "do", + "doe", + "doed", + "doedi", + "doedit", + "dotplot", + "dotplot_7", + "dprobit", + "drawnorm", + "drop", + "ds", + "ds_util", + "dstdize", + "duplicates", + "durbina", + "dwstat", + "dydx", + "e", + "ed", + "edi", + "edit", + "egen", + "eivreg", + "emdef", + "end", + "en", + "enc", + "enco", + "encod", + "encode", + "eq", + "erase", + "ereg", + "ereg_lf", + "ereg_p", + "ereg_sw", + "ereghet", + "ereghet_glf", + "ereghet_glf_sh", + "ereghet_gp", + "ereghet_ilf", + "ereghet_ilf_sh", + "ereghet_ip", + "eret", + "eretu", + "eretur", + "ereturn", + "err", + "erro", + "error", + "est", + "est_cfexist", + "est_cfname", + "est_clickable", + "est_expand", + "est_hold", + "est_table", + "est_unhold", + "est_unholdok", + "estat", + "estat_default", + "estat_summ", + "estat_vce_only", + "esti", + "estimates", + "etodow", + "etof", + "etomdy", + "ex", + "exi", + "exit", + "expand", + "expandcl", + "fac", + "fact", + "facto", + "factor", + "factor_estat", + "factor_p", + "factor_pca_rotated", + "factor_rotate", + "factormat", + "fcast", + "fcast_compute", + "fcast_graph", + "fdades", + "fdadesc", + "fdadescr", + "fdadescri", + "fdadescrib", + "fdadescribe", + "fdasav", + "fdasave", + "fdause", + "fh_st", + "open", + "read", + "close", + "file", + "filefilter", + "fillin", + "find_hlp_file", + "findfile", + "findit", + "findit_7", + "fit", + "fl", + "fli", + "flis", + "flist", + "for5_0", + "form", + "forma", + "format", + "fpredict", + "frac_154", + "frac_adj", + "frac_chk", + "frac_cox", + "frac_ddp", + "frac_dis", + "frac_dv", + "frac_in", + "frac_mun", + "frac_pp", + "frac_pq", + "frac_pv", + "frac_wgt", + "frac_xo", + "fracgen", + "fracplot", + "fracplot_7", + "fracpoly", + "fracpred", + "fron_ex", + "fron_hn", + "fron_p", + "fron_tn", + "fron_tn2", + "frontier", + "ftodate", + "ftoe", + "ftomdy", + "ftowdate", + "g", + "gamhet_glf", + "gamhet_gp", + "gamhet_ilf", + "gamhet_ip", + "gamma", + "gamma_d2", + "gamma_p", + "gamma_sw", + "gammahet", + "gdi_hexagon", + "gdi_spokes", + "ge", + "gen", + "gene", + "gener", + "genera", + "generat", + "generate", + "genrank", + "genstd", + "genvmean", + "gettoken", + "gl", + "gladder", + "gladder_7", + "glim_l01", + "glim_l02", + "glim_l03", + "glim_l04", + "glim_l05", + "glim_l06", + "glim_l07", + "glim_l08", + "glim_l09", + "glim_l10", + "glim_l11", + "glim_l12", + "glim_lf", + "glim_mu", + "glim_nw1", + "glim_nw2", + "glim_nw3", + "glim_p", + "glim_v1", + "glim_v2", + "glim_v3", + "glim_v4", + "glim_v5", + "glim_v6", + "glim_v7", + "glm", + "glm_6", + "glm_p", + "glm_sw", + "glmpred", + "glo", + "glob", + "globa", + "global", + "glogit", + "glogit_8", + "glogit_p", + "gmeans", + "gnbre_lf", + "gnbreg", + "gnbreg_5", + "gnbreg_p", + "gomp_lf", + "gompe_sw", + "gomper_p", + "gompertz", + "gompertzhet", + "gomphet_glf", + "gomphet_glf_sh", + "gomphet_gp", + "gomphet_ilf", + "gomphet_ilf_sh", + "gomphet_ip", + "gphdot", + "gphpen", + "gphprint", + "gprefs", + "gprobi_p", + "gprobit", + "gprobit_8", + "gr", + "gr7", + "gr_copy", + "gr_current", + "gr_db", + "gr_describe", + "gr_dir", + "gr_draw", + "gr_draw_replay", + "gr_drop", + "gr_edit", + "gr_editviewopts", + "gr_example", + "gr_example2", + "gr_export", + "gr_print", + "gr_qscheme", + "gr_query", + "gr_read", + "gr_rename", + "gr_replay", + "gr_save", + "gr_set", + "gr_setscheme", + "gr_table", + "gr_undo", + "gr_use", + "graph", + "graph7", + "grebar", + "greigen", + "greigen_7", + "greigen_8", + "grmeanby", + "grmeanby_7", + "gs_fileinfo", + "gs_filetype", + "gs_graphinfo", + "gs_stat", + "gsort", + "gwood", + "h", + "hadimvo", + "hareg", + "hausman", + "haver", + "he", + "heck_d2", + "heckma_p", + "heckman", + "heckp_lf", + "heckpr_p", + "heckprob", + "hel", + "help", + "hereg", + "hetpr_lf", + "hetpr_p", + "hetprob", + "hettest", + "hexdump", + "hilite", + "hist", + "hist_7", + "histogram", + "hlogit", + "hlu", + "hmeans", + "hotel", + "hotelling", + "hprobit", + "hreg", + "hsearch", + "icd9", + "icd9_ff", + "icd9p", + "iis", + "impute", + "imtest", + "inbase", + "include", + "inf", + "infi", + "infil", + "infile", + "infix", + "inp", + "inpu", + "input", + "ins", + "insheet", + "insp", + "inspe", + "inspec", + "inspect", + "integ", + "inten", + "intreg", + "intreg_7", + "intreg_p", + "intrg2_ll", + "intrg_ll", + "intrg_ll2", + "ipolate", + "iqreg", + "ir", + "irf", + "irf_create", + "irfm", + "iri", + "is_svy", + "is_svysum", + "isid", + "istdize", + "ivprob_1_lf", + "ivprob_lf", + "ivprobit", + "ivprobit_p", + "ivreg", + "ivreg_footnote", + "ivtob_1_lf", + "ivtob_lf", + "ivtobit", + "ivtobit_p", + "jackknife", + "jacknife", + "jknife", + "jknife_6", + "jknife_8", + "jkstat", + "joinby", + "kalarma1", + "kap", + "kap_3", + "kapmeier", + "kappa", + "kapwgt", + "kdensity", + "kdensity_7", + "keep", + "ksm", + "ksmirnov", + "ktau", + "kwallis", + "l", + "la", + "lab", + "labe", + "label", + "labelbook", + "ladder", + "levels", + "levelsof", + "leverage", + "lfit", + "lfit_p", + "li", + "lincom", + "line", + "linktest", + "lis", + "list", + "lloghet_glf", + "lloghet_glf_sh", + "lloghet_gp", + "lloghet_ilf", + "lloghet_ilf_sh", + "lloghet_ip", + "llogi_sw", + "llogis_p", + "llogist", + "llogistic", + "llogistichet", + "lnorm_lf", + "lnorm_sw", + "lnorma_p", + "lnormal", + "lnormalhet", + "lnormhet_glf", + "lnormhet_glf_sh", + "lnormhet_gp", + "lnormhet_ilf", + "lnormhet_ilf_sh", + "lnormhet_ip", + "lnskew0", + "loadingplot", + "loc", + "loca", + "local", + "log", + "logi", + "logis_lf", + "logistic", + "logistic_p", + "logit", + "logit_estat", + "logit_p", + "loglogs", + "logrank", + "loneway", + "lookfor", + "lookup", + "lowess", + "lowess_7", + "lpredict", + "lrecomp", + "lroc", + "lroc_7", + "lrtest", + "ls", + "lsens", + "lsens_7", + "lsens_x", + "lstat", + "ltable", + "ltable_7", + "ltriang", + "lv", + "lvr2plot", + "lvr2plot_7", + "m", + "ma", + "mac", + "macr", + "macro", + "makecns", + "man", + "manova", + "manova_estat", + "manova_p", + "manovatest", + "mantel", + "mark", + "markin", + "markout", + "marksample", + "mat", + "mat_capp", + "mat_order", + "mat_put_rr", + "mat_rapp", + "mata", + "mata_clear", + "mata_describe", + "mata_drop", + "mata_matdescribe", + "mata_matsave", + "mata_matuse", + "mata_memory", + "mata_mlib", + "mata_mosave", + "mata_rename", + "mata_which", + "matalabel", + "matcproc", + "matlist", + "matname", + "matr", + "matri", + "matrix", + "matrix_input__dlg", + "matstrik", + "mcc", + "mcci", + "md0_", + "md1_", + "md1debug_", + "md2_", + "md2debug_", + "mds", + "mds_estat", + "mds_p", + "mdsconfig", + "mdslong", + "mdsmat", + "mdsshepard", + "mdytoe", + "mdytof", + "me_derd", + "mean", + "means", + "median", + "memory", + "memsize", + "meqparse", + "mer", + "merg", + "merge", + "mfp", + "mfx", + "mhelp", + "mhodds", + "minbound", + "mixed_ll", + "mixed_ll_reparm", + "mkassert", + "mkdir", + "mkmat", + "mkspline", + "ml", + "ml_5", + "ml_adjs", + "ml_bhhhs", + "ml_c_d", + "ml_check", + "ml_clear", + "ml_cnt", + "ml_debug", + "ml_defd", + "ml_e0", + "ml_e0_bfgs", + "ml_e0_cycle", + "ml_e0_dfp", + "ml_e0i", + "ml_e1", + "ml_e1_bfgs", + "ml_e1_bhhh", + "ml_e1_cycle", + "ml_e1_dfp", + "ml_e2", + "ml_e2_cycle", + "ml_ebfg0", + "ml_ebfr0", + "ml_ebfr1", + "ml_ebh0q", + "ml_ebhh0", + "ml_ebhr0", + "ml_ebr0i", + "ml_ecr0i", + "ml_edfp0", + "ml_edfr0", + "ml_edfr1", + "ml_edr0i", + "ml_eds", + "ml_eer0i", + "ml_egr0i", + "ml_elf", + "ml_elf_bfgs", + "ml_elf_bhhh", + "ml_elf_cycle", + "ml_elf_dfp", + "ml_elfi", + "ml_elfs", + "ml_enr0i", + "ml_enrr0", + "ml_erdu0", + "ml_erdu0_bfgs", + "ml_erdu0_bhhh", + "ml_erdu0_bhhhq", + "ml_erdu0_cycle", + "ml_erdu0_dfp", + "ml_erdu0_nrbfgs", + "ml_exde", + "ml_footnote", + "ml_geqnr", + "ml_grad0", + "ml_graph", + "ml_hbhhh", + "ml_hd0", + "ml_hold", + "ml_init", + "ml_inv", + "ml_log", + "ml_max", + "ml_mlout", + "ml_mlout_8", + "ml_model", + "ml_nb0", + "ml_opt", + "ml_p", + "ml_plot", + "ml_query", + "ml_rdgrd", + "ml_repor", + "ml_s_e", + "ml_score", + "ml_searc", + "ml_technique", + "ml_unhold", + "mleval", + "mlf_", + "mlmatbysum", + "mlmatsum", + "mlog", + "mlogi", + "mlogit", + "mlogit_footnote", + "mlogit_p", + "mlopts", + "mlsum", + "mlvecsum", + "mnl0_", + "mor", + "more", + "mov", + "move", + "mprobit", + "mprobit_lf", + "mprobit_p", + "mrdu0_", + "mrdu1_", + "mvdecode", + "mvencode", + "mvreg", + "mvreg_estat", + "n", + "nbreg", + "nbreg_al", + "nbreg_lf", + "nbreg_p", + "nbreg_sw", + "nestreg", + "net", + "newey", + "newey_7", + "newey_p", + "news", + "nl", + "nl_7", + "nl_9", + "nl_9_p", + "nl_p", + "nl_p_7", + "nlcom", + "nlcom_p", + "nlexp2", + "nlexp2_7", + "nlexp2a", + "nlexp2a_7", + "nlexp3", + "nlexp3_7", + "nlgom3", + "nlgom3_7", + "nlgom4", + "nlgom4_7", + "nlinit", + "nllog3", + "nllog3_7", + "nllog4", + "nllog4_7", + "nlog_rd", + "nlogit", + "nlogit_p", + "nlogitgen", + "nlogittree", + "nlpred", + "no", + "nobreak", + "noi", + "nois", + "noisi", + "noisil", + "noisily", + "note", + "notes", + "notes_dlg", + "nptrend", + "numlabel", + "numlist", + "odbc", + "old_ver", + "olo", + "olog", + "ologi", + "ologi_sw", + "ologit", + "ologit_p", + "ologitp", + "on", + "one", + "onew", + "onewa", + "oneway", + "op_colnm", + "op_comp", + "op_diff", + "op_inv", + "op_str", + "opr", + "opro", + "oprob", + "oprob_sw", + "oprobi", + "oprobi_p", + "oprobit", + "oprobitp", + "opts_exclusive", + "order", + "orthog", + "orthpoly", + "ou", + "out", + "outf", + "outfi", + "outfil", + "outfile", + "outs", + "outsh", + "outshe", + "outshee", + "outsheet", + "ovtest", + "pac", + "pac_7", + "palette", + "parse", + "parse_dissim", + "pause", + "pca", + "pca_8", + "pca_display", + "pca_estat", + "pca_p", + "pca_rotate", + "pcamat", + "pchart", + "pchart_7", + "pchi", + "pchi_7", + "pcorr", + "pctile", + "pentium", + "pergram", + "pergram_7", + "permute", + "permute_8", + "personal", + "peto_st", + "pkcollapse", + "pkcross", + "pkequiv", + "pkexamine", + "pkexamine_7", + "pkshape", + "pksumm", + "pksumm_7", + "pl", + "plo", + "plot", + "plugin", + "pnorm", + "pnorm_7", + "poisgof", + "poiss_lf", + "poiss_sw", + "poisso_p", + "poisson", + "poisson_estat", + "post", + "postclose", + "postfile", + "postutil", + "pperron", + "pr", + "prais", + "prais_e", + "prais_e2", + "prais_p", + "predict", + "predictnl", + "preserve", + "print", + "pro", + "prob", + "probi", + "probit", + "probit_estat", + "probit_p", + "proc_time", + "procoverlay", + "procrustes", + "procrustes_estat", + "procrustes_p", + "profiler", + "prog", + "progr", + "progra", + "program", + "prop", + "proportion", + "prtest", + "prtesti", + "pwcorr", + "pwd", + "q", + "s", + "qby", + "qbys", + "qchi", + "qchi_7", + "qladder", + "qladder_7", + "qnorm", + "qnorm_7", + "qqplot", + "qqplot_7", + "qreg", + "qreg_c", + "qreg_p", + "qreg_sw", + "qu", + "quadchk", + "quantile", + "quantile_7", + "que", + "quer", + "query", + "range", + "ranksum", + "ratio", + "rchart", + "rchart_7", + "rcof", + "recast", + "reclink", + "recode", + "reg", + "reg3", + "reg3_p", + "regdw", + "regr", + "regre", + "regre_p2", + "regres", + "regres_p", + "regress", + "regress_estat", + "regriv_p", + "remap", + "ren", + "rena", + "renam", + "rename", + "renpfix", + "repeat", + "replace", + "report", + "reshape", + "restore", + "ret", + "retu", + "retur", + "return", + "rm", + "rmdir", + "robvar", + "roccomp", + "roccomp_7", + "roccomp_8", + "rocf_lf", + "rocfit", + "rocfit_8", + "rocgold", + "rocplot", + "rocplot_7", + "roctab", + "roctab_7", + "rolling", + "rologit", + "rologit_p", + "rot", + "rota", + "rotat", + "rotate", + "rotatemat", + "rreg", + "rreg_p", + "ru", + "run", + "runtest", + "rvfplot", + "rvfplot_7", + "rvpplot", + "rvpplot_7", + "sa", + "safesum", + "sample", + "sampsi", + "sav", + "save", + "savedresults", + "saveold", + "sc", + "sca", + "scal", + "scala", + "scalar", + "scatter", + "scm_mine", + "sco", + "scob_lf", + "scob_p", + "scobi_sw", + "scobit", + "scor", + "score", + "scoreplot", + "scoreplot_help", + "scree", + "screeplot", + "screeplot_help", + "sdtest", + "sdtesti", + "se", + "search", + "separate", + "seperate", + "serrbar", + "serrbar_7", + "serset", + "set", + "set_defaults", + "sfrancia", + "sh", + "she", + "shel", + "shell", + "shewhart", + "shewhart_7", + "signestimationsample", + "signrank", + "signtest", + "simul", + "simul_7", + "simulate", + "simulate_8", + "sktest", + "sleep", + "slogit", + "slogit_d2", + "slogit_p", + "smooth", + "snapspan", + "so", + "sor", + "sort", + "spearman", + "spikeplot", + "spikeplot_7", + "spikeplt", + "spline_x", + "split", + "sqreg", + "sqreg_p", + "sret", + "sretu", + "sretur", + "sreturn", + "ssc", + "st", + "st_ct", + "st_hc", + "st_hcd", + "st_hcd_sh", + "st_is", + "st_issys", + "st_note", + "st_promo", + "st_set", + "st_show", + "st_smpl", + "st_subid", + "stack", + "statsby", + "statsby_8", + "stbase", + "stci", + "stci_7", + "stcox", + "stcox_estat", + "stcox_fr", + "stcox_fr_ll", + "stcox_p", + "stcox_sw", + "stcoxkm", + "stcoxkm_7", + "stcstat", + "stcurv", + "stcurve", + "stcurve_7", + "stdes", + "stem", + "stepwise", + "stereg", + "stfill", + "stgen", + "stir", + "stjoin", + "stmc", + "stmh", + "stphplot", + "stphplot_7", + "stphtest", + "stphtest_7", + "stptime", + "strate", + "strate_7", + "streg", + "streg_sw", + "streset", + "sts", + "sts_7", + "stset", + "stsplit", + "stsum", + "sttocc", + "sttoct", + "stvary", + "stweib", + "su", + "suest", + "suest_8", + "sum", + "summ", + "summa", + "summar", + "summari", + "summariz", + "summarize", + "sunflower", + "sureg", + "survcurv", + "survsum", + "svar", + "svar_p", + "svmat", + "svy", + "svy_disp", + "svy_dreg", + "svy_est", + "svy_est_7", + "svy_estat", + "svy_get", + "svy_gnbreg_p", + "svy_head", + "svy_header", + "svy_heckman_p", + "svy_heckprob_p", + "svy_intreg_p", + "svy_ivreg_p", + "svy_logistic_p", + "svy_logit_p", + "svy_mlogit_p", + "svy_nbreg_p", + "svy_ologit_p", + "svy_oprobit_p", + "svy_poisson_p", + "svy_probit_p", + "svy_regress_p", + "svy_sub", + "svy_sub_7", + "svy_x", + "svy_x_7", + "svy_x_p", + "svydes", + "svydes_8", + "svygen", + "svygnbreg", + "svyheckman", + "svyheckprob", + "svyintreg", + "svyintreg_7", + "svyintrg", + "svyivreg", + "svylc", + "svylog_p", + "svylogit", + "svymarkout", + "svymarkout_8", + "svymean", + "svymlog", + "svymlogit", + "svynbreg", + "svyolog", + "svyologit", + "svyoprob", + "svyoprobit", + "svyopts", + "svypois", + "svypois_7", + "svypoisson", + "svyprobit", + "svyprobt", + "svyprop", + "svyprop_7", + "svyratio", + "svyreg", + "svyreg_p", + "svyregress", + "svyset", + "svyset_7", + "svyset_8", + "svytab", + "svytab_7", + "svytest", + "svytotal", + "sw", + "sw_8", + "swcnreg", + "swcox", + "swereg", + "swilk", + "swlogis", + "swlogit", + "swologit", + "swoprbt", + "swpois", + "swprobit", + "swqreg", + "swtobit", + "swweib", + "symmetry", + "symmi", + "symplot", + "symplot_7", + "syntax", + "sysdescribe", + "sysdir", + "sysuse", + "szroeter", + "ta", + "tab", + "tab1", + "tab2", + "tab_or", + "tabd", + "tabdi", + "tabdis", + "tabdisp", + "tabi", + "table", + "tabodds", + "tabodds_7", + "tabstat", + "tabu", + "tabul", + "tabula", + "tabulat", + "tabulate", + "te", + "tempfile", + "tempname", + "tempvar", + "tes", + "test", + "testnl", + "testparm", + "teststd", + "tetrachoric", + "time_it", + "timer", + "tis", + "tob", + "tobi", + "tobit", + "tobit_p", + "tobit_sw", + "token", + "tokeni", + "tokeniz", + "tokenize", + "tostring", + "total", + "translate", + "translator", + "transmap", + "treat_ll", + "treatr_p", + "treatreg", + "trim", + "trnb_cons", + "trnb_mean", + "trpoiss_d2", + "trunc_ll", + "truncr_p", + "truncreg", + "tsappend", + "tset", + "tsfill", + "tsline", + "tsline_ex", + "tsreport", + "tsrevar", + "tsrline", + "tsset", + "tssmooth", + "tsunab", + "ttest", + "ttesti", + "tut_chk", + "tut_wait", + "tutorial", + "tw", + "tware_st", + "two", + "twoway", + "twoway__fpfit_serset", + "twoway__function_gen", + "twoway__histogram_gen", + "twoway__ipoint_serset", + "twoway__ipoints_serset", + "twoway__kdensity_gen", + "twoway__lfit_serset", + "twoway__normgen_gen", + "twoway__pci_serset", + "twoway__qfit_serset", + "twoway__scatteri_serset", + "twoway__sunflower_gen", + "twoway_ksm_serset", + "ty", + "typ", + "type", + "typeof", + "u", + "unab", + "unabbrev", + "unabcmd", + "update", + "us", + "use", + "uselabel", + "var", + "var_mkcompanion", + "var_p", + "varbasic", + "varfcast", + "vargranger", + "varirf", + "varirf_add", + "varirf_cgraph", + "varirf_create", + "varirf_ctable", + "varirf_describe", + "varirf_dir", + "varirf_drop", + "varirf_erase", + "varirf_graph", + "varirf_ograph", + "varirf_rename", + "varirf_set", + "varirf_table", + "varlist", + "varlmar", + "varnorm", + "varsoc", + "varstable", + "varstable_w", + "varstable_w2", + "varwle", + "vce", + "vec", + "vec_fevd", + "vec_mkphi", + "vec_p", + "vec_p_w", + "vecirf_create", + "veclmar", + "veclmar_w", + "vecnorm", + "vecnorm_w", + "vecrank", + "vecstable", + "verinst", + "vers", + "versi", + "versio", + "version", + "view", + "viewsource", + "vif", + "vwls", + "wdatetof", + "webdescribe", + "webseek", + "webuse", + "weib1_lf", + "weib2_lf", + "weib_lf", + "weib_lf0", + "weibhet_glf", + "weibhet_glf_sh", + "weibhet_glfa", + "weibhet_glfa_sh", + "weibhet_gp", + "weibhet_ilf", + "weibhet_ilf_sh", + "weibhet_ilfa", + "weibhet_ilfa_sh", + "weibhet_ip", + "weibu_sw", + "weibul_p", + "weibull", + "weibull_c", + "weibull_s", + "weibullhet", + "wh", + "whelp", + "whi", + "which", + "whil", + "while", + "wilc_st", + "wilcoxon", + "win", + "wind", + "windo", + "window", + "winexec", + "wntestb", + "wntestb_7", + "wntestq", + "xchart", + "xchart_7", + "xcorr", + "xcorr_7", + "xi", + "xi_6", + "xmlsav", + "xmlsave", + "xmluse", + "xpose", + "xsh", + "xshe", + "xshel", + "xshell", + "xt_iis", + "xt_tis", + "xtab_p", + "xtabond", + "xtbin_p", + "xtclog", + "xtcloglog", + "xtcloglog_8", + "xtcloglog_d2", + "xtcloglog_pa_p", + "xtcloglog_re_p", + "xtcnt_p", + "xtcorr", + "xtdata", + "xtdes", + "xtfront_p", + "xtfrontier", + "xtgee", + "xtgee_elink", + "xtgee_estat", + "xtgee_makeivar", + "xtgee_p", + "xtgee_plink", + "xtgls", + "xtgls_p", + "xthaus", + "xthausman", + "xtht_p", + "xthtaylor", + "xtile", + "xtint_p", + "xtintreg", + "xtintreg_8", + "xtintreg_d2", + "xtintreg_p", + "xtivp_1", + "xtivp_2", + "xtivreg", + "xtline", + "xtline_ex", + "xtlogit", + "xtlogit_8", + "xtlogit_d2", + "xtlogit_fe_p", + "xtlogit_pa_p", + "xtlogit_re_p", + "xtmixed", + "xtmixed_estat", + "xtmixed_p", + "xtnb_fe", + "xtnb_lf", + "xtnbreg", + "xtnbreg_pa_p", + "xtnbreg_refe_p", + "xtpcse", + "xtpcse_p", + "xtpois", + "xtpoisson", + "xtpoisson_d2", + "xtpoisson_pa_p", + "xtpoisson_refe_p", + "xtpred", + "xtprobit", + "xtprobit_8", + "xtprobit_d2", + "xtprobit_re_p", + "xtps_fe", + "xtps_lf", + "xtps_ren", + "xtps_ren_8", + "xtrar_p", + "xtrc", + "xtrc_p", + "xtrchh", + "xtrefe_p", + "xtreg", + "xtreg_be", + "xtreg_fe", + "xtreg_ml", + "xtreg_pa_p", + "xtreg_re", + "xtregar", + "xtrere_p", + "xtset", + "xtsf_ll", + "xtsf_llti", + "xtsum", + "xttab", + "xttest0", + "xttobit", + "xttobit_8", + "xttobit_p", + "xttrans", + "yx", + "yxview__barlike_draw", + "yxview_area_draw", + "yxview_bar_draw", + "yxview_dot_draw", + "yxview_dropline_draw", + "yxview_function_draw", + "yxview_iarrow_draw", + "yxview_ilabels_draw", + "yxview_normal_draw", + "yxview_pcarrow_draw", + "yxview_pcbarrow_draw", + "yxview_pccapsym_draw", + "yxview_pcscatter_draw", + "yxview_pcspike_draw", + "yxview_rarea_draw", + "yxview_rbar_draw", + "yxview_rbarm_draw", + "yxview_rcap_draw", + "yxview_rcapsym_draw", + "yxview_rconnected_draw", + "yxview_rline_draw", + "yxview_rscatter_draw", + "yxview_rspike_draw", + "yxview_spike_draw", + "yxview_sunflower_draw", + "zap_s", + "zinb", + "zinb_llf", + "zinb_plf", + "zip", + "zip_llf", + "zip_p", + "zip_plf", + "zt_ct_5", + "zt_hc_5", + "zt_hcd_5", + "zt_is_5", + "zt_iss_5", + "zt_sho_5", + "zt_smp_5", + "ztbase_5", + "ztcox_5", + "ztdes_5", + "ztereg_5", + "ztfill_5", + "ztgen_5", + "ztir_5", + "ztjoin_5", + "ztnb", + "ztnb_p", + "ztp", + "ztp_p", + "zts_5", + "ztset_5", + "ztspli_5", + "ztsum_5", + "zttoct_5", + "ztvary_5", + "ztweib_5", ) - builtins_functions = ( - "abbrev", "abs", "acos", "acosh", "asin", "asinh", "atan", - "atan2", "atanh", "autocode", "betaden", "binomial", - "binomialp", "binomialtail", "binormal", "bofd", - "byteorder", "c", "_caller", "cauchy", "cauchyden", - "cauchytail", "Cdhms", "ceil", "char", "chi2", "chi2den", - "chi2tail", "Chms", "chop", "cholesky", "clip", "Clock", - "clock", "cloglog", "Cmdyhms", "Cofc", "cofC", "Cofd", "cofd", - "coleqnumb", "collatorlocale", "collatorversion", - "colnfreeparms", "colnumb", "colsof", "comb", "cond", "corr", - "cos", "cosh", "daily", "date", "day", "det", "dgammapda", - "dgammapdada", "dgammapdadx", "dgammapdx", "dgammapdxdx", - "dhms", "diag", "diag0cnt", "digamma", "dofb", "dofC", "dofc", - "dofh", "dofm", "dofq", "dofw", "dofy", "dow", "doy", - "dunnettprob", "e", "el", "esample", "epsdouble", "epsfloat", - "exp", "expm1", "exponential", "exponentialden", - "exponentialtail", "F", "Fden", "fileexists", "fileread", - "filereaderror", "filewrite", "float", "floor", "fmtwidth", - "frval", "_frval", "Ftail", "gammaden", "gammap", "gammaptail", - "get", "hadamard", "halfyear", "halfyearly", "has_eprop", "hh", - "hhC", "hms", "hofd", "hours", "hypergeometric", - "hypergeometricp", "I", "ibeta", "ibetatail", "igaussian", - "igaussianden", "igaussiantail", "indexnot", "inlist", - "inrange", "int", "inv", "invbinomial", "invbinomialtail", - "invcauchy", "invcauchytail", "invchi2", "invchi2tail", - "invcloglog", "invdunnettprob", "invexponential", - "invexponentialtail", "invF", "invFtail", "invgammap", - "invgammaptail", "invibeta", "invibetatail", "invigaussian", - "invigaussiantail", "invlaplace", "invlaplacetail", - "invlogisticp", "invlogisticsp", "invlogisticmsp", - "invlogistictailp", "invlogistictailsp", "invlogistictailmsp", - "invlogit", "invnbinomial", "invnbinomialtail", "invnchi2", - "invnchi2tail", "invnF", "invnFtail", "invnibeta", - "invnormal", "invnt", "invnttail", "invpoisson", - "invpoissontail", "invsym", "invt", "invttail", "invtukeyprob", - "invweibullabp", "invweibullabgp", "invweibullphabp", - "invweibullphabgp", "invweibullphtailabp", - "invweibullphtailabgp", "invweibulltailabp", - "invweibulltailabgp", "irecode", "issymmetric", "J", "laplace", - "laplaceden", "laplacetail", "ln", "ln1m", "ln1p", "lncauchyden", - "lnfactorial", "lngamma", "lnigammaden", "lnigaussianden", - "lniwishartden", "lnlaplaceden", "lnmvnormalden", "lnnormal", - "lnnormalden", "lnnormaldenxs", "lnnormaldenxms", "lnwishartden", - "log", "log10", "log1m", "log1p", "logisticx", "logisticsx", - "logisticmsx", "logisticdenx", "logisticdensx", "logisticdenmsx", - "logistictailx", "logistictailsx", "logistictailmsx", "logit", - "matmissing", "matrix", "matuniform", "max", "maxbyte", - "maxdouble", "maxfloat", "maxint", "maxlong", "mdy", "mdyhms", - "mi", "min", "minbyte", "mindouble", "minfloat", "minint", - "minlong", "minutes", "missing", "mm", "mmC", "mod", "mofd", - "month", "monthly", "mreldif", "msofhours", "msofminutes", - "msofseconds", "nbetaden", "nbinomial", "nbinomialp", - "nbinomialtail", "nchi2", "nchi2den", "nchi2tail", "nF", - "nFden", "nFtail", "nibeta", "normal", "normalden", - "normaldenxs", "normaldenxms", "npnchi2", "npnF", "npnt", - "nt", "ntden", "nttail", "nullmat", "plural", "plurals1", - "poisson", "poissonp", "poissontail", "qofd", "quarter", - "quarterly", "r", "rbeta", "rbinomial", "rcauchy", "rchi2", - "recode", "real", "regexm", "regexr", "regexs", "reldif", - "replay", "return", "rexponential", "rgamma", "rhypergeometric", - "rigaussian", "rlaplace", "rlogistic", "rlogistics", - "rlogisticms", "rnbinomial", "rnormal", "rnormalm", "rnormalms", - "round", "roweqnumb", "rownfreeparms", "rownumb", "rowsof", - "rpoisson", "rt", "runiform", "runiformab", "runiformint", - "rweibullab", "rweibullabg", "rweibullphab", "rweibullphabg", - "s", "scalar", "seconds", "sign", "sin", "sinh", - "smallestdouble", "soundex", "soundex_nara", "sqrt", "ss", - "ssC", "strcat", "strdup", "string", "stringns", "stritrim", - "strlen", "strlower", "strltrim", "strmatch", "strofreal", - "strofrealns", "strpos", "strproper", "strreverse", "strrpos", - "strrtrim", "strtoname", "strtrim", "strupper", "subinstr", - "subinword", "substr", "sum", "sweep", "t", "tan", "tanh", - "tC", "tc", "td", "tden", "th", "tin", "tm", "tobytes", "tq", - "trace", "trigamma", "trunc", "ttail", "tukeyprob", "tw", - "twithin", "uchar", "udstrlen", "udsubstr", "uisdigit", - "uisletter", "ustrcompare", "ustrfix", "ustrfrom", - "ustrinvalidcnt", "ustrleft", "ustrlen", "ustrlower", - "ustrltrim", "ustrnormalize", "ustrpos", "ustrregexm", - "ustrregexra", "ustrregexrf", "ustrregexs", "ustrreverse", - "ustrright", "ustrrpos", "ustrrtrim", "ustrsortkey", - "ustrtitle", "ustrto", "ustrtohex", "ustrtoname", - "ustrtrim", "ustrunescape", "ustrupper", "ustrword", - "ustrwordcount", "usubinstr", "usubstr", "vec", "vecdiag", - "week", "weekly", "weibullabx", "weibullabgx", "weibulldenabx", - "weibulldenabgx", "weibullphabx", "weibullphabgx", - "weibullphdenabx", "weibullphdenabgx", "weibullphtailabx", - "weibullphtailabgx", "weibulltailabx", "weibulltailabgx", - "wofd", "word", "wordbreaklocale", "wordcount", - "year", "yearly", "yh", "ym", "yofd", "yq", "yw" + "abbrev", + "abs", + "acos", + "acosh", + "asin", + "asinh", + "atan", + "atan2", + "atanh", + "autocode", + "betaden", + "binomial", + "binomialp", + "binomialtail", + "binormal", + "bofd", + "byteorder", + "c", + "_caller", + "cauchy", + "cauchyden", + "cauchytail", + "Cdhms", + "ceil", + "char", + "chi2", + "chi2den", + "chi2tail", + "Chms", + "chop", + "cholesky", + "clip", + "Clock", + "clock", + "cloglog", + "Cmdyhms", + "Cofc", + "cofC", + "Cofd", + "cofd", + "coleqnumb", + "collatorlocale", + "collatorversion", + "colnfreeparms", + "colnumb", + "colsof", + "comb", + "cond", + "corr", + "cos", + "cosh", + "daily", + "date", + "day", + "det", + "dgammapda", + "dgammapdada", + "dgammapdadx", + "dgammapdx", + "dgammapdxdx", + "dhms", + "diag", + "diag0cnt", + "digamma", + "dofb", + "dofC", + "dofc", + "dofh", + "dofm", + "dofq", + "dofw", + "dofy", + "dow", + "doy", + "dunnettprob", + "e", + "el", + "esample", + "epsdouble", + "epsfloat", + "exp", + "expm1", + "exponential", + "exponentialden", + "exponentialtail", + "F", + "Fden", + "fileexists", + "fileread", + "filereaderror", + "filewrite", + "float", + "floor", + "fmtwidth", + "frval", + "_frval", + "Ftail", + "gammaden", + "gammap", + "gammaptail", + "get", + "hadamard", + "halfyear", + "halfyearly", + "has_eprop", + "hh", + "hhC", + "hms", + "hofd", + "hours", + "hypergeometric", + "hypergeometricp", + "I", + "ibeta", + "ibetatail", + "igaussian", + "igaussianden", + "igaussiantail", + "indexnot", + "inlist", + "inrange", + "int", + "inv", + "invbinomial", + "invbinomialtail", + "invcauchy", + "invcauchytail", + "invchi2", + "invchi2tail", + "invcloglog", + "invdunnettprob", + "invexponential", + "invexponentialtail", + "invF", + "invFtail", + "invgammap", + "invgammaptail", + "invibeta", + "invibetatail", + "invigaussian", + "invigaussiantail", + "invlaplace", + "invlaplacetail", + "invlogisticp", + "invlogisticsp", + "invlogisticmsp", + "invlogistictailp", + "invlogistictailsp", + "invlogistictailmsp", + "invlogit", + "invnbinomial", + "invnbinomialtail", + "invnchi2", + "invnchi2tail", + "invnF", + "invnFtail", + "invnibeta", + "invnormal", + "invnt", + "invnttail", + "invpoisson", + "invpoissontail", + "invsym", + "invt", + "invttail", + "invtukeyprob", + "invweibullabp", + "invweibullabgp", + "invweibullphabp", + "invweibullphabgp", + "invweibullphtailabp", + "invweibullphtailabgp", + "invweibulltailabp", + "invweibulltailabgp", + "irecode", + "issymmetric", + "J", + "laplace", + "laplaceden", + "laplacetail", + "ln", + "ln1m", + "ln1p", + "lncauchyden", + "lnfactorial", + "lngamma", + "lnigammaden", + "lnigaussianden", + "lniwishartden", + "lnlaplaceden", + "lnmvnormalden", + "lnnormal", + "lnnormalden", + "lnnormaldenxs", + "lnnormaldenxms", + "lnwishartden", + "log", + "log10", + "log1m", + "log1p", + "logisticx", + "logisticsx", + "logisticmsx", + "logisticdenx", + "logisticdensx", + "logisticdenmsx", + "logistictailx", + "logistictailsx", + "logistictailmsx", + "logit", + "matmissing", + "matrix", + "matuniform", + "max", + "maxbyte", + "maxdouble", + "maxfloat", + "maxint", + "maxlong", + "mdy", + "mdyhms", + "mi", + "min", + "minbyte", + "mindouble", + "minfloat", + "minint", + "minlong", + "minutes", + "missing", + "mm", + "mmC", + "mod", + "mofd", + "month", + "monthly", + "mreldif", + "msofhours", + "msofminutes", + "msofseconds", + "nbetaden", + "nbinomial", + "nbinomialp", + "nbinomialtail", + "nchi2", + "nchi2den", + "nchi2tail", + "nF", + "nFden", + "nFtail", + "nibeta", + "normal", + "normalden", + "normaldenxs", + "normaldenxms", + "npnchi2", + "npnF", + "npnt", + "nt", + "ntden", + "nttail", + "nullmat", + "plural", + "plurals1", + "poisson", + "poissonp", + "poissontail", + "qofd", + "quarter", + "quarterly", + "r", + "rbeta", + "rbinomial", + "rcauchy", + "rchi2", + "recode", + "real", + "regexm", + "regexr", + "regexs", + "reldif", + "replay", + "return", + "rexponential", + "rgamma", + "rhypergeometric", + "rigaussian", + "rlaplace", + "rlogistic", + "rlogistics", + "rlogisticms", + "rnbinomial", + "rnormal", + "rnormalm", + "rnormalms", + "round", + "roweqnumb", + "rownfreeparms", + "rownumb", + "rowsof", + "rpoisson", + "rt", + "runiform", + "runiformab", + "runiformint", + "rweibullab", + "rweibullabg", + "rweibullphab", + "rweibullphabg", + "s", + "scalar", + "seconds", + "sign", + "sin", + "sinh", + "smallestdouble", + "soundex", + "soundex_nara", + "sqrt", + "ss", + "ssC", + "strcat", + "strdup", + "string", + "stringns", + "stritrim", + "strlen", + "strlower", + "strltrim", + "strmatch", + "strofreal", + "strofrealns", + "strpos", + "strproper", + "strreverse", + "strrpos", + "strrtrim", + "strtoname", + "strtrim", + "strupper", + "subinstr", + "subinword", + "substr", + "sum", + "sweep", + "t", + "tan", + "tanh", + "tC", + "tc", + "td", + "tden", + "th", + "tin", + "tm", + "tobytes", + "tq", + "trace", + "trigamma", + "trunc", + "ttail", + "tukeyprob", + "tw", + "twithin", + "uchar", + "udstrlen", + "udsubstr", + "uisdigit", + "uisletter", + "ustrcompare", + "ustrfix", + "ustrfrom", + "ustrinvalidcnt", + "ustrleft", + "ustrlen", + "ustrlower", + "ustrltrim", + "ustrnormalize", + "ustrpos", + "ustrregexm", + "ustrregexra", + "ustrregexrf", + "ustrregexs", + "ustrreverse", + "ustrright", + "ustrrpos", + "ustrrtrim", + "ustrsortkey", + "ustrtitle", + "ustrto", + "ustrtohex", + "ustrtoname", + "ustrtrim", + "ustrunescape", + "ustrupper", + "ustrword", + "ustrwordcount", + "usubinstr", + "usubstr", + "vec", + "vecdiag", + "week", + "weekly", + "weibullabx", + "weibullabgx", + "weibulldenabx", + "weibulldenabgx", + "weibullphabx", + "weibullphabgx", + "weibullphdenabx", + "weibullphdenabgx", + "weibullphtailabx", + "weibullphtailabgx", + "weibulltailabx", + "weibulltailabgx", + "wofd", + "word", + "wordbreaklocale", + "wordcount", + "year", + "yearly", + "yh", + "ym", + "yofd", + "yq", + "yw", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_tsql_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_tsql_builtins.py index 6fa1a1f..19875eb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_tsql_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_tsql_builtins.py @@ -1,763 +1,763 @@ """ - pygments.lexers._tsql_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._tsql_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - These are manually translated lists from https://msdn.microsoft.com. +These are manually translated lists from https://msdn.microsoft.com. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # See https://msdn.microsoft.com/en-us/library/ms174986.aspx. OPERATORS = ( - '!<', - '!=', - '!>', - '<', - '<=', - '<>', - '=', - '>', - '>=', - '+', - '+=', - '-', - '-=', - '*', - '*=', - '/', - '/=', - '%', - '%=', - '&', - '&=', - '|', - '|=', - '^', - '^=', - '~', - '::', + "!<", + "!=", + "!>", + "<", + "<=", + "<>", + "=", + ">", + ">=", + "+", + "+=", + "-", + "-=", + "*", + "*=", + "/", + "/=", + "%", + "%=", + "&", + "&=", + "|", + "|=", + "^", + "^=", + "~", + "::", ) OPERATOR_WORDS = ( - 'all', - 'and', - 'any', - 'between', - 'except', - 'exists', - 'in', - 'intersect', - 'like', - 'not', - 'or', - 'some', - 'union', + "all", + "and", + "any", + "between", + "except", + "exists", + "in", + "intersect", + "like", + "not", + "or", + "some", + "union", ) _KEYWORDS_SERVER = ( - 'add', - 'all', - 'alter', - 'and', - 'any', - 'as', - 'asc', - 'authorization', - 'backup', - 'begin', - 'between', - 'break', - 'browse', - 'bulk', - 'by', - 'cascade', - 'case', - 'catch', - 'check', - 'checkpoint', - 'close', - 'clustered', - 'coalesce', - 'collate', - 'column', - 'commit', - 'compute', - 'constraint', - 'contains', - 'containstable', - 'continue', - 'convert', - 'create', - 'cross', - 'current', - 'current_date', - 'current_time', - 'current_timestamp', - 'current_user', - 'cursor', - 'database', - 'dbcc', - 'deallocate', - 'declare', - 'default', - 'delete', - 'deny', - 'desc', - 'disk', - 'distinct', - 'distributed', - 'double', - 'drop', - 'dump', - 'else', - 'end', - 'errlvl', - 'escape', - 'except', - 'exec', - 'execute', - 'exists', - 'exit', - 'external', - 'fetch', - 'file', - 'fillfactor', - 'for', - 'foreign', - 'freetext', - 'freetexttable', - 'from', - 'full', - 'function', - 'goto', - 'grant', - 'group', - 'having', - 'holdlock', - 'identity', - 'identity_insert', - 'identitycol', - 'if', - 'in', - 'index', - 'inner', - 'insert', - 'intersect', - 'into', - 'is', - 'join', - 'key', - 'kill', - 'left', - 'like', - 'lineno', - 'load', - 'merge', - 'national', - 'nocheck', - 'nonclustered', - 'not', - 'null', - 'nullif', - 'of', - 'off', - 'offsets', - 'on', - 'open', - 'opendatasource', - 'openquery', - 'openrowset', - 'openxml', - 'option', - 'or', - 'order', - 'outer', - 'over', - 'percent', - 'pivot', - 'plan', - 'precision', - 'primary', - 'print', - 'proc', - 'procedure', - 'public', - 'raiserror', - 'read', - 'readtext', - 'reconfigure', - 'references', - 'replication', - 'restore', - 'restrict', - 'return', - 'revert', - 'revoke', - 'right', - 'rollback', - 'rowcount', - 'rowguidcol', - 'rule', - 'save', - 'schema', - 'securityaudit', - 'select', - 'semantickeyphrasetable', - 'semanticsimilaritydetailstable', - 'semanticsimilaritytable', - 'session_user', - 'set', - 'setuser', - 'shutdown', - 'some', - 'statistics', - 'system_user', - 'table', - 'tablesample', - 'textsize', - 'then', - 'throw', - 'to', - 'top', - 'tran', - 'transaction', - 'trigger', - 'truncate', - 'try', - 'try_convert', - 'tsequal', - 'union', - 'unique', - 'unpivot', - 'update', - 'updatetext', - 'use', - 'user', - 'values', - 'varying', - 'view', - 'waitfor', - 'when', - 'where', - 'while', - 'with', - 'within', - 'writetext', + "add", + "all", + "alter", + "and", + "any", + "as", + "asc", + "authorization", + "backup", + "begin", + "between", + "break", + "browse", + "bulk", + "by", + "cascade", + "case", + "catch", + "check", + "checkpoint", + "close", + "clustered", + "coalesce", + "collate", + "column", + "commit", + "compute", + "constraint", + "contains", + "containstable", + "continue", + "convert", + "create", + "cross", + "current", + "current_date", + "current_time", + "current_timestamp", + "current_user", + "cursor", + "database", + "dbcc", + "deallocate", + "declare", + "default", + "delete", + "deny", + "desc", + "disk", + "distinct", + "distributed", + "double", + "drop", + "dump", + "else", + "end", + "errlvl", + "escape", + "except", + "exec", + "execute", + "exists", + "exit", + "external", + "fetch", + "file", + "fillfactor", + "for", + "foreign", + "freetext", + "freetexttable", + "from", + "full", + "function", + "goto", + "grant", + "group", + "having", + "holdlock", + "identity", + "identity_insert", + "identitycol", + "if", + "in", + "index", + "inner", + "insert", + "intersect", + "into", + "is", + "join", + "key", + "kill", + "left", + "like", + "lineno", + "load", + "merge", + "national", + "nocheck", + "nonclustered", + "not", + "null", + "nullif", + "of", + "off", + "offsets", + "on", + "open", + "opendatasource", + "openquery", + "openrowset", + "openxml", + "option", + "or", + "order", + "outer", + "over", + "percent", + "pivot", + "plan", + "precision", + "primary", + "print", + "proc", + "procedure", + "public", + "raiserror", + "read", + "readtext", + "reconfigure", + "references", + "replication", + "restore", + "restrict", + "return", + "revert", + "revoke", + "right", + "rollback", + "rowcount", + "rowguidcol", + "rule", + "save", + "schema", + "securityaudit", + "select", + "semantickeyphrasetable", + "semanticsimilaritydetailstable", + "semanticsimilaritytable", + "session_user", + "set", + "setuser", + "shutdown", + "some", + "statistics", + "system_user", + "table", + "tablesample", + "textsize", + "then", + "throw", + "to", + "top", + "tran", + "transaction", + "trigger", + "truncate", + "try", + "try_convert", + "tsequal", + "union", + "unique", + "unpivot", + "update", + "updatetext", + "use", + "user", + "values", + "varying", + "view", + "waitfor", + "when", + "where", + "while", + "with", + "within", + "writetext", ) _KEYWORDS_FUTURE = ( - 'absolute', - 'action', - 'admin', - 'after', - 'aggregate', - 'alias', - 'allocate', - 'are', - 'array', - 'asensitive', - 'assertion', - 'asymmetric', - 'at', - 'atomic', - 'before', - 'binary', - 'bit', - 'blob', - 'boolean', - 'both', - 'breadth', - 'call', - 'called', - 'cardinality', - 'cascaded', - 'cast', - 'catalog', - 'char', - 'character', - 'class', - 'clob', - 'collation', - 'collect', - 'completion', - 'condition', - 'connect', - 'connection', - 'constraints', - 'constructor', - 'corr', - 'corresponding', - 'covar_pop', - 'covar_samp', - 'cube', - 'cume_dist', - 'current_catalog', - 'current_default_transform_group', - 'current_path', - 'current_role', - 'current_schema', - 'current_transform_group_for_type', - 'cycle', - 'data', - 'date', - 'day', - 'dec', - 'decimal', - 'deferrable', - 'deferred', - 'depth', - 'deref', - 'describe', - 'descriptor', - 'destroy', - 'destructor', - 'deterministic', - 'diagnostics', - 'dictionary', - 'disconnect', - 'domain', - 'dynamic', - 'each', - 'element', - 'end-exec', - 'equals', - 'every', - 'exception', - 'false', - 'filter', - 'first', - 'float', - 'found', - 'free', - 'fulltexttable', - 'fusion', - 'general', - 'get', - 'global', - 'go', - 'grouping', - 'hold', - 'host', - 'hour', - 'ignore', - 'immediate', - 'indicator', - 'initialize', - 'initially', - 'inout', - 'input', - 'int', - 'integer', - 'intersection', - 'interval', - 'isolation', - 'iterate', - 'language', - 'large', - 'last', - 'lateral', - 'leading', - 'less', - 'level', - 'like_regex', - 'limit', - 'ln', - 'local', - 'localtime', - 'localtimestamp', - 'locator', - 'map', - 'match', - 'member', - 'method', - 'minute', - 'mod', - 'modifies', - 'modify', - 'module', - 'month', - 'multiset', - 'names', - 'natural', - 'nchar', - 'nclob', - 'new', - 'next', - 'no', - 'none', - 'normalize', - 'numeric', - 'object', - 'occurrences_regex', - 'old', - 'only', - 'operation', - 'ordinality', - 'out', - 'output', - 'overlay', - 'pad', - 'parameter', - 'parameters', - 'partial', - 'partition', - 'path', - 'percent_rank', - 'percentile_cont', - 'percentile_disc', - 'position_regex', - 'postfix', - 'prefix', - 'preorder', - 'prepare', - 'preserve', - 'prior', - 'privileges', - 'range', - 'reads', - 'real', - 'recursive', - 'ref', - 'referencing', - 'regr_avgx', - 'regr_avgy', - 'regr_count', - 'regr_intercept', - 'regr_r2', - 'regr_slope', - 'regr_sxx', - 'regr_sxy', - 'regr_syy', - 'relative', - 'release', - 'result', - 'returns', - 'role', - 'rollup', - 'routine', - 'row', - 'rows', - 'savepoint', - 'scope', - 'scroll', - 'search', - 'second', - 'section', - 'sensitive', - 'sequence', - 'session', - 'sets', - 'similar', - 'size', - 'smallint', - 'space', - 'specific', - 'specifictype', - 'sql', - 'sqlexception', - 'sqlstate', - 'sqlwarning', - 'start', - 'state', - 'statement', - 'static', - 'stddev_pop', - 'stddev_samp', - 'structure', - 'submultiset', - 'substring_regex', - 'symmetric', - 'system', - 'temporary', - 'terminate', - 'than', - 'time', - 'timestamp', - 'timezone_hour', - 'timezone_minute', - 'trailing', - 'translate_regex', - 'translation', - 'treat', - 'true', - 'uescape', - 'under', - 'unknown', - 'unnest', - 'usage', - 'using', - 'value', - 'var_pop', - 'var_samp', - 'varchar', - 'variable', - 'whenever', - 'width_bucket', - 'window', - 'within', - 'without', - 'work', - 'write', - 'xmlagg', - 'xmlattributes', - 'xmlbinary', - 'xmlcast', - 'xmlcomment', - 'xmlconcat', - 'xmldocument', - 'xmlelement', - 'xmlexists', - 'xmlforest', - 'xmliterate', - 'xmlnamespaces', - 'xmlparse', - 'xmlpi', - 'xmlquery', - 'xmlserialize', - 'xmltable', - 'xmltext', - 'xmlvalidate', - 'year', - 'zone', + "absolute", + "action", + "admin", + "after", + "aggregate", + "alias", + "allocate", + "are", + "array", + "asensitive", + "assertion", + "asymmetric", + "at", + "atomic", + "before", + "binary", + "bit", + "blob", + "boolean", + "both", + "breadth", + "call", + "called", + "cardinality", + "cascaded", + "cast", + "catalog", + "char", + "character", + "class", + "clob", + "collation", + "collect", + "completion", + "condition", + "connect", + "connection", + "constraints", + "constructor", + "corr", + "corresponding", + "covar_pop", + "covar_samp", + "cube", + "cume_dist", + "current_catalog", + "current_default_transform_group", + "current_path", + "current_role", + "current_schema", + "current_transform_group_for_type", + "cycle", + "data", + "date", + "day", + "dec", + "decimal", + "deferrable", + "deferred", + "depth", + "deref", + "describe", + "descriptor", + "destroy", + "destructor", + "deterministic", + "diagnostics", + "dictionary", + "disconnect", + "domain", + "dynamic", + "each", + "element", + "end-exec", + "equals", + "every", + "exception", + "false", + "filter", + "first", + "float", + "found", + "free", + "fulltexttable", + "fusion", + "general", + "get", + "global", + "go", + "grouping", + "hold", + "host", + "hour", + "ignore", + "immediate", + "indicator", + "initialize", + "initially", + "inout", + "input", + "int", + "integer", + "intersection", + "interval", + "isolation", + "iterate", + "language", + "large", + "last", + "lateral", + "leading", + "less", + "level", + "like_regex", + "limit", + "ln", + "local", + "localtime", + "localtimestamp", + "locator", + "map", + "match", + "member", + "method", + "minute", + "mod", + "modifies", + "modify", + "module", + "month", + "multiset", + "names", + "natural", + "nchar", + "nclob", + "new", + "next", + "no", + "none", + "normalize", + "numeric", + "object", + "occurrences_regex", + "old", + "only", + "operation", + "ordinality", + "out", + "output", + "overlay", + "pad", + "parameter", + "parameters", + "partial", + "partition", + "path", + "percent_rank", + "percentile_cont", + "percentile_disc", + "position_regex", + "postfix", + "prefix", + "preorder", + "prepare", + "preserve", + "prior", + "privileges", + "range", + "reads", + "real", + "recursive", + "ref", + "referencing", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "relative", + "release", + "result", + "returns", + "role", + "rollup", + "routine", + "row", + "rows", + "savepoint", + "scope", + "scroll", + "search", + "second", + "section", + "sensitive", + "sequence", + "session", + "sets", + "similar", + "size", + "smallint", + "space", + "specific", + "specifictype", + "sql", + "sqlexception", + "sqlstate", + "sqlwarning", + "start", + "state", + "statement", + "static", + "stddev_pop", + "stddev_samp", + "structure", + "submultiset", + "substring_regex", + "symmetric", + "system", + "temporary", + "terminate", + "than", + "time", + "timestamp", + "timezone_hour", + "timezone_minute", + "trailing", + "translate_regex", + "translation", + "treat", + "true", + "uescape", + "under", + "unknown", + "unnest", + "usage", + "using", + "value", + "var_pop", + "var_samp", + "varchar", + "variable", + "whenever", + "width_bucket", + "window", + "within", + "without", + "work", + "write", + "xmlagg", + "xmlattributes", + "xmlbinary", + "xmlcast", + "xmlcomment", + "xmlconcat", + "xmldocument", + "xmlelement", + "xmlexists", + "xmlforest", + "xmliterate", + "xmlnamespaces", + "xmlparse", + "xmlpi", + "xmlquery", + "xmlserialize", + "xmltable", + "xmltext", + "xmlvalidate", + "year", + "zone", ) _KEYWORDS_ODBC = ( - 'absolute', - 'action', - 'ada', - 'add', - 'all', - 'allocate', - 'alter', - 'and', - 'any', - 'are', - 'as', - 'asc', - 'assertion', - 'at', - 'authorization', - 'avg', - 'begin', - 'between', - 'bit', - 'bit_length', - 'both', - 'by', - 'cascade', - 'cascaded', - 'case', - 'cast', - 'catalog', - 'char', - 'char_length', - 'character', - 'character_length', - 'check', - 'close', - 'coalesce', - 'collate', - 'collation', - 'column', - 'commit', - 'connect', - 'connection', - 'constraint', - 'constraints', - 'continue', - 'convert', - 'corresponding', - 'count', - 'create', - 'cross', - 'current', - 'current_date', - 'current_time', - 'current_timestamp', - 'current_user', - 'cursor', - 'date', - 'day', - 'deallocate', - 'dec', - 'decimal', - 'declare', - 'default', - 'deferrable', - 'deferred', - 'delete', - 'desc', - 'describe', - 'descriptor', - 'diagnostics', - 'disconnect', - 'distinct', - 'domain', - 'double', - 'drop', - 'else', - 'end', - 'end-exec', - 'escape', - 'except', - 'exception', - 'exec', - 'execute', - 'exists', - 'external', - 'extract', - 'false', - 'fetch', - 'first', - 'float', - 'for', - 'foreign', - 'fortran', - 'found', - 'from', - 'full', - 'get', - 'global', - 'go', - 'goto', - 'grant', - 'group', - 'having', - 'hour', - 'identity', - 'immediate', - 'in', - 'include', - 'index', - 'indicator', - 'initially', - 'inner', - 'input', - 'insensitive', - 'insert', - 'int', - 'integer', - 'intersect', - 'interval', - 'into', - 'is', - 'isolation', - 'join', - 'key', - 'language', - 'last', - 'leading', - 'left', - 'level', - 'like', - 'local', - 'lower', - 'match', - 'max', - 'min', - 'minute', - 'module', - 'month', - 'names', - 'national', - 'natural', - 'nchar', - 'next', - 'no', - 'none', - 'not', - 'null', - 'nullif', - 'numeric', - 'octet_length', - 'of', - 'on', - 'only', - 'open', - 'option', - 'or', - 'order', - 'outer', - 'output', - 'overlaps', - 'pad', - 'partial', - 'pascal', - 'position', - 'precision', - 'prepare', - 'preserve', - 'primary', - 'prior', - 'privileges', - 'procedure', - 'public', - 'read', - 'real', - 'references', - 'relative', - 'restrict', - 'revoke', - 'right', - 'rollback', - 'rows', - 'schema', - 'scroll', - 'second', - 'section', - 'select', - 'session', - 'session_user', - 'set', - 'size', - 'smallint', - 'some', - 'space', - 'sql', - 'sqlca', - 'sqlcode', - 'sqlerror', - 'sqlstate', - 'sqlwarning', - 'substring', - 'sum', - 'system_user', - 'table', - 'temporary', - 'then', - 'time', - 'timestamp', - 'timezone_hour', - 'timezone_minute', - 'to', - 'trailing', - 'transaction', - 'translate', - 'translation', - 'trim', - 'true', - 'union', - 'unique', - 'unknown', - 'update', - 'upper', - 'usage', - 'user', - 'using', - 'value', - 'values', - 'varchar', - 'varying', - 'view', - 'when', - 'whenever', - 'where', - 'with', - 'work', - 'write', - 'year', - 'zone', + "absolute", + "action", + "ada", + "add", + "all", + "allocate", + "alter", + "and", + "any", + "are", + "as", + "asc", + "assertion", + "at", + "authorization", + "avg", + "begin", + "between", + "bit", + "bit_length", + "both", + "by", + "cascade", + "cascaded", + "case", + "cast", + "catalog", + "char", + "char_length", + "character", + "character_length", + "check", + "close", + "coalesce", + "collate", + "collation", + "column", + "commit", + "connect", + "connection", + "constraint", + "constraints", + "continue", + "convert", + "corresponding", + "count", + "create", + "cross", + "current", + "current_date", + "current_time", + "current_timestamp", + "current_user", + "cursor", + "date", + "day", + "deallocate", + "dec", + "decimal", + "declare", + "default", + "deferrable", + "deferred", + "delete", + "desc", + "describe", + "descriptor", + "diagnostics", + "disconnect", + "distinct", + "domain", + "double", + "drop", + "else", + "end", + "end-exec", + "escape", + "except", + "exception", + "exec", + "execute", + "exists", + "external", + "extract", + "false", + "fetch", + "first", + "float", + "for", + "foreign", + "fortran", + "found", + "from", + "full", + "get", + "global", + "go", + "goto", + "grant", + "group", + "having", + "hour", + "identity", + "immediate", + "in", + "include", + "index", + "indicator", + "initially", + "inner", + "input", + "insensitive", + "insert", + "int", + "integer", + "intersect", + "interval", + "into", + "is", + "isolation", + "join", + "key", + "language", + "last", + "leading", + "left", + "level", + "like", + "local", + "lower", + "match", + "max", + "min", + "minute", + "module", + "month", + "names", + "national", + "natural", + "nchar", + "next", + "no", + "none", + "not", + "null", + "nullif", + "numeric", + "octet_length", + "of", + "on", + "only", + "open", + "option", + "or", + "order", + "outer", + "output", + "overlaps", + "pad", + "partial", + "pascal", + "position", + "precision", + "prepare", + "preserve", + "primary", + "prior", + "privileges", + "procedure", + "public", + "read", + "real", + "references", + "relative", + "restrict", + "revoke", + "right", + "rollback", + "rows", + "schema", + "scroll", + "second", + "section", + "select", + "session", + "session_user", + "set", + "size", + "smallint", + "some", + "space", + "sql", + "sqlca", + "sqlcode", + "sqlerror", + "sqlstate", + "sqlwarning", + "substring", + "sum", + "system_user", + "table", + "temporary", + "then", + "time", + "timestamp", + "timezone_hour", + "timezone_minute", + "to", + "trailing", + "transaction", + "translate", + "translation", + "trim", + "true", + "union", + "unique", + "unknown", + "update", + "upper", + "usage", + "user", + "using", + "value", + "values", + "varchar", + "varying", + "view", + "when", + "whenever", + "where", + "with", + "work", + "write", + "year", + "zone", ) # See https://msdn.microsoft.com/en-us/library/ms189822.aspx. @@ -765,239 +765,239 @@ KEYWORDS = sorted(set(_KEYWORDS_FUTURE + _KEYWORDS_ODBC + _KEYWORDS_SERVER)) # See https://msdn.microsoft.com/en-us/library/ms187752.aspx. TYPES = ( - 'bigint', - 'binary', - 'bit', - 'char', - 'cursor', - 'date', - 'datetime', - 'datetime2', - 'datetimeoffset', - 'decimal', - 'float', - 'hierarchyid', - 'image', - 'int', - 'money', - 'nchar', - 'ntext', - 'numeric', - 'nvarchar', - 'real', - 'smalldatetime', - 'smallint', - 'smallmoney', - 'sql_variant', - 'table', - 'text', - 'time', - 'timestamp', - 'tinyint', - 'uniqueidentifier', - 'varbinary', - 'varchar', - 'xml', + "bigint", + "binary", + "bit", + "char", + "cursor", + "date", + "datetime", + "datetime2", + "datetimeoffset", + "decimal", + "float", + "hierarchyid", + "image", + "int", + "money", + "nchar", + "ntext", + "numeric", + "nvarchar", + "real", + "smalldatetime", + "smallint", + "smallmoney", + "sql_variant", + "table", + "text", + "time", + "timestamp", + "tinyint", + "uniqueidentifier", + "varbinary", + "varchar", + "xml", ) # See https://msdn.microsoft.com/en-us/library/ms174318.aspx. FUNCTIONS = ( - '$partition', - 'abs', - 'acos', - 'app_name', - 'applock_mode', - 'applock_test', - 'ascii', - 'asin', - 'assemblyproperty', - 'atan', - 'atn2', - 'avg', - 'binary_checksum', - 'cast', - 'ceiling', - 'certencoded', - 'certprivatekey', - 'char', - 'charindex', - 'checksum', - 'checksum_agg', - 'choose', - 'col_length', - 'col_name', - 'columnproperty', - 'compress', - 'concat', - 'connectionproperty', - 'context_info', - 'convert', - 'cos', - 'cot', - 'count', - 'count_big', - 'current_request_id', - 'current_timestamp', - 'current_transaction_id', - 'current_user', - 'cursor_status', - 'database_principal_id', - 'databasepropertyex', - 'dateadd', - 'datediff', - 'datediff_big', - 'datefromparts', - 'datename', - 'datepart', - 'datetime2fromparts', - 'datetimefromparts', - 'datetimeoffsetfromparts', - 'day', - 'db_id', - 'db_name', - 'decompress', - 'degrees', - 'dense_rank', - 'difference', - 'eomonth', - 'error_line', - 'error_message', - 'error_number', - 'error_procedure', - 'error_severity', - 'error_state', - 'exp', - 'file_id', - 'file_idex', - 'file_name', - 'filegroup_id', - 'filegroup_name', - 'filegroupproperty', - 'fileproperty', - 'floor', - 'format', - 'formatmessage', - 'fulltextcatalogproperty', - 'fulltextserviceproperty', - 'get_filestream_transaction_context', - 'getansinull', - 'getdate', - 'getutcdate', - 'grouping', - 'grouping_id', - 'has_perms_by_name', - 'host_id', - 'host_name', - 'iif', - 'index_col', - 'indexkey_property', - 'indexproperty', - 'is_member', - 'is_rolemember', - 'is_srvrolemember', - 'isdate', - 'isjson', - 'isnull', - 'isnumeric', - 'json_modify', - 'json_query', - 'json_value', - 'left', - 'len', - 'log', - 'log10', - 'lower', - 'ltrim', - 'max', - 'min', - 'min_active_rowversion', - 'month', - 'nchar', - 'newid', - 'newsequentialid', - 'ntile', - 'object_definition', - 'object_id', - 'object_name', - 'object_schema_name', - 'objectproperty', - 'objectpropertyex', - 'opendatasource', - 'openjson', - 'openquery', - 'openrowset', - 'openxml', - 'original_db_name', - 'original_login', - 'parse', - 'parsename', - 'patindex', - 'permissions', - 'pi', - 'power', - 'pwdcompare', - 'pwdencrypt', - 'quotename', - 'radians', - 'rand', - 'rank', - 'replace', - 'replicate', - 'reverse', - 'right', - 'round', - 'row_number', - 'rowcount_big', - 'rtrim', - 'schema_id', - 'schema_name', - 'scope_identity', - 'serverproperty', - 'session_context', - 'session_user', - 'sign', - 'sin', - 'smalldatetimefromparts', - 'soundex', - 'sp_helplanguage', - 'space', - 'sqrt', - 'square', - 'stats_date', - 'stdev', - 'stdevp', - 'str', - 'string_escape', - 'string_split', - 'stuff', - 'substring', - 'sum', - 'suser_id', - 'suser_name', - 'suser_sid', - 'suser_sname', - 'switchoffset', - 'sysdatetime', - 'sysdatetimeoffset', - 'system_user', - 'sysutcdatetime', - 'tan', - 'textptr', - 'textvalid', - 'timefromparts', - 'todatetimeoffset', - 'try_cast', - 'try_convert', - 'try_parse', - 'type_id', - 'type_name', - 'typeproperty', - 'unicode', - 'upper', - 'user_id', - 'user_name', - 'var', - 'varp', - 'xact_state', - 'year', + "$partition", + "abs", + "acos", + "app_name", + "applock_mode", + "applock_test", + "ascii", + "asin", + "assemblyproperty", + "atan", + "atn2", + "avg", + "binary_checksum", + "cast", + "ceiling", + "certencoded", + "certprivatekey", + "char", + "charindex", + "checksum", + "checksum_agg", + "choose", + "col_length", + "col_name", + "columnproperty", + "compress", + "concat", + "connectionproperty", + "context_info", + "convert", + "cos", + "cot", + "count", + "count_big", + "current_request_id", + "current_timestamp", + "current_transaction_id", + "current_user", + "cursor_status", + "database_principal_id", + "databasepropertyex", + "dateadd", + "datediff", + "datediff_big", + "datefromparts", + "datename", + "datepart", + "datetime2fromparts", + "datetimefromparts", + "datetimeoffsetfromparts", + "day", + "db_id", + "db_name", + "decompress", + "degrees", + "dense_rank", + "difference", + "eomonth", + "error_line", + "error_message", + "error_number", + "error_procedure", + "error_severity", + "error_state", + "exp", + "file_id", + "file_idex", + "file_name", + "filegroup_id", + "filegroup_name", + "filegroupproperty", + "fileproperty", + "floor", + "format", + "formatmessage", + "fulltextcatalogproperty", + "fulltextserviceproperty", + "get_filestream_transaction_context", + "getansinull", + "getdate", + "getutcdate", + "grouping", + "grouping_id", + "has_perms_by_name", + "host_id", + "host_name", + "iif", + "index_col", + "indexkey_property", + "indexproperty", + "is_member", + "is_rolemember", + "is_srvrolemember", + "isdate", + "isjson", + "isnull", + "isnumeric", + "json_modify", + "json_query", + "json_value", + "left", + "len", + "log", + "log10", + "lower", + "ltrim", + "max", + "min", + "min_active_rowversion", + "month", + "nchar", + "newid", + "newsequentialid", + "ntile", + "object_definition", + "object_id", + "object_name", + "object_schema_name", + "objectproperty", + "objectpropertyex", + "opendatasource", + "openjson", + "openquery", + "openrowset", + "openxml", + "original_db_name", + "original_login", + "parse", + "parsename", + "patindex", + "permissions", + "pi", + "power", + "pwdcompare", + "pwdencrypt", + "quotename", + "radians", + "rand", + "rank", + "replace", + "replicate", + "reverse", + "right", + "round", + "row_number", + "rowcount_big", + "rtrim", + "schema_id", + "schema_name", + "scope_identity", + "serverproperty", + "session_context", + "session_user", + "sign", + "sin", + "smalldatetimefromparts", + "soundex", + "sp_helplanguage", + "space", + "sqrt", + "square", + "stats_date", + "stdev", + "stdevp", + "str", + "string_escape", + "string_split", + "stuff", + "substring", + "sum", + "suser_id", + "suser_name", + "suser_sid", + "suser_sname", + "switchoffset", + "sysdatetime", + "sysdatetimeoffset", + "system_user", + "sysutcdatetime", + "tan", + "textptr", + "textvalid", + "timefromparts", + "todatetimeoffset", + "try_cast", + "try_convert", + "try_parse", + "type_id", + "type_name", + "typeproperty", + "unicode", + "upper", + "user_id", + "user_name", + "var", + "varp", + "xact_state", + "year", ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_usd_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_usd_builtins.py index b0530a2..98d7d7c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_usd_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_usd_builtins.py @@ -1,11 +1,11 @@ """ - pygments.lexers._usd_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._usd_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - A collection of known USD-related keywords, attributes, and types. +A collection of known USD-related keywords, attributes, and types. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ COMMON_ATTRIBUTES = [ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vbscript_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vbscript_builtins.py index b1ae0ef..4a583ed 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vbscript_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vbscript_builtins.py @@ -1,279 +1,279 @@ """ - pygments.lexers._vbscript_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._vbscript_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - These are manually translated lists from - http://www.indusoft.com/pdf/VBScript%20Reference.pdf. +These are manually translated lists from +http://www.indusoft.com/pdf/VBScript%20Reference.pdf. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ KEYWORDS = [ - 'ByRef', - 'ByVal', + "ByRef", + "ByVal", # dim: special rule - 'call', - 'case', - 'class', + "call", + "case", + "class", # const: special rule - 'do', - 'each', - 'else', - 'elseif', - 'end', - 'erase', - 'execute', - 'function', - 'exit', - 'for', - 'function', - 'GetRef', - 'global', - 'if', - 'let', - 'loop', - 'next', - 'new', + "do", + "each", + "else", + "elseif", + "end", + "erase", + "execute", + "function", + "exit", + "for", + "function", + "GetRef", + "global", + "if", + "let", + "loop", + "next", + "new", # option: special rule - 'private', - 'public', - 'redim', - 'select', - 'set', - 'sub', - 'then', - 'wend', - 'while', - 'with', + "private", + "public", + "redim", + "select", + "set", + "sub", + "then", + "wend", + "while", + "with", ] BUILTIN_FUNCTIONS = [ - 'Abs', - 'Array', - 'Asc', - 'Atn', - 'CBool', - 'CByte', - 'CCur', - 'CDate', - 'CDbl', - 'Chr', - 'CInt', - 'CLng', - 'Cos', - 'CreateObject', - 'CSng', - 'CStr', - 'Date', - 'DateAdd', - 'DateDiff', - 'DatePart', - 'DateSerial', - 'DateValue', - 'Day', - 'Eval', - 'Exp', - 'Filter', - 'Fix', - 'FormatCurrency', - 'FormatDateTime', - 'FormatNumber', - 'FormatPercent', - 'GetObject', - 'GetLocale', - 'Hex', - 'Hour', - 'InStr', - 'inStrRev', - 'Int', - 'IsArray', - 'IsDate', - 'IsEmpty', - 'IsNull', - 'IsNumeric', - 'IsObject', - 'Join', - 'LBound', - 'LCase', - 'Left', - 'Len', - 'LoadPicture', - 'Log', - 'LTrim', - 'Mid', - 'Minute', - 'Month', - 'MonthName', - 'MsgBox', - 'Now', - 'Oct', - 'Randomize', - 'RegExp', - 'Replace', - 'RGB', - 'Right', - 'Rnd', - 'Round', - 'RTrim', - 'ScriptEngine', - 'ScriptEngineBuildVersion', - 'ScriptEngineMajorVersion', - 'ScriptEngineMinorVersion', - 'Second', - 'SetLocale', - 'Sgn', - 'Space', - 'Split', - 'Sqr', - 'StrComp', - 'String', - 'StrReverse', - 'Tan', - 'Time', - 'Timer', - 'TimeSerial', - 'TimeValue', - 'Trim', - 'TypeName', - 'UBound', - 'UCase', - 'VarType', - 'Weekday', - 'WeekdayName', - 'Year', + "Abs", + "Array", + "Asc", + "Atn", + "CBool", + "CByte", + "CCur", + "CDate", + "CDbl", + "Chr", + "CInt", + "CLng", + "Cos", + "CreateObject", + "CSng", + "CStr", + "Date", + "DateAdd", + "DateDiff", + "DatePart", + "DateSerial", + "DateValue", + "Day", + "Eval", + "Exp", + "Filter", + "Fix", + "FormatCurrency", + "FormatDateTime", + "FormatNumber", + "FormatPercent", + "GetObject", + "GetLocale", + "Hex", + "Hour", + "InStr", + "inStrRev", + "Int", + "IsArray", + "IsDate", + "IsEmpty", + "IsNull", + "IsNumeric", + "IsObject", + "Join", + "LBound", + "LCase", + "Left", + "Len", + "LoadPicture", + "Log", + "LTrim", + "Mid", + "Minute", + "Month", + "MonthName", + "MsgBox", + "Now", + "Oct", + "Randomize", + "RegExp", + "Replace", + "RGB", + "Right", + "Rnd", + "Round", + "RTrim", + "ScriptEngine", + "ScriptEngineBuildVersion", + "ScriptEngineMajorVersion", + "ScriptEngineMinorVersion", + "Second", + "SetLocale", + "Sgn", + "Space", + "Split", + "Sqr", + "StrComp", + "String", + "StrReverse", + "Tan", + "Time", + "Timer", + "TimeSerial", + "TimeValue", + "Trim", + "TypeName", + "UBound", + "UCase", + "VarType", + "Weekday", + "WeekdayName", + "Year", ] BUILTIN_VARIABLES = [ - 'Debug', - 'Dictionary', - 'Drive', - 'Drives', - 'Err', - 'File', - 'Files', - 'FileSystemObject', - 'Folder', - 'Folders', - 'Match', - 'Matches', - 'RegExp', - 'Submatches', - 'TextStream', + "Debug", + "Dictionary", + "Drive", + "Drives", + "Err", + "File", + "Files", + "FileSystemObject", + "Folder", + "Folders", + "Match", + "Matches", + "RegExp", + "Submatches", + "TextStream", ] OPERATORS = [ - '+', - '-', - '*', - '/', - '\\', - '^', - '|', - '<', - '<=', - '>', - '>=', - '=', - '<>', - '&', - '$', + "+", + "-", + "*", + "/", + "\\", + "^", + "|", + "<", + "<=", + ">", + ">=", + "=", + "<>", + "&", + "$", ] OPERATOR_WORDS = [ - 'mod', - 'and', - 'or', - 'xor', - 'eqv', - 'imp', - 'is', - 'not', + "mod", + "and", + "or", + "xor", + "eqv", + "imp", + "is", + "not", ] BUILTIN_CONSTANTS = [ - 'False', - 'True', - 'vbAbort', - 'vbAbortRetryIgnore', - 'vbApplicationModal', - 'vbArray', - 'vbBinaryCompare', - 'vbBlack', - 'vbBlue', - 'vbBoole', - 'vbByte', - 'vbCancel', - 'vbCr', - 'vbCritical', - 'vbCrLf', - 'vbCurrency', - 'vbCyan', - 'vbDataObject', - 'vbDate', - 'vbDefaultButton1', - 'vbDefaultButton2', - 'vbDefaultButton3', - 'vbDefaultButton4', - 'vbDouble', - 'vbEmpty', - 'vbError', - 'vbExclamation', - 'vbFalse', - 'vbFirstFullWeek', - 'vbFirstJan1', - 'vbFormFeed', - 'vbFriday', - 'vbGeneralDate', - 'vbGreen', - 'vbIgnore', - 'vbInformation', - 'vbInteger', - 'vbLf', - 'vbLong', - 'vbLongDate', - 'vbLongTime', - 'vbMagenta', - 'vbMonday', - 'vbMsgBoxHelpButton', - 'vbMsgBoxRight', - 'vbMsgBoxRtlReading', - 'vbMsgBoxSetForeground', - 'vbNewLine', - 'vbNo', - 'vbNull', - 'vbNullChar', - 'vbNullString', - 'vbObject', - 'vbObjectError', - 'vbOK', - 'vbOKCancel', - 'vbOKOnly', - 'vbQuestion', - 'vbRed', - 'vbRetry', - 'vbRetryCancel', - 'vbSaturday', - 'vbShortDate', - 'vbShortTime', - 'vbSingle', - 'vbString', - 'vbSunday', - 'vbSystemModal', - 'vbTab', - 'vbTextCompare', - 'vbThursday', - 'vbTrue', - 'vbTuesday', - 'vbUseDefault', - 'vbUseSystem', - 'vbUseSystem', - 'vbVariant', - 'vbVerticalTab', - 'vbWednesday', - 'vbWhite', - 'vbYellow', - 'vbYes', - 'vbYesNo', - 'vbYesNoCancel', + "False", + "True", + "vbAbort", + "vbAbortRetryIgnore", + "vbApplicationModal", + "vbArray", + "vbBinaryCompare", + "vbBlack", + "vbBlue", + "vbBoole", + "vbByte", + "vbCancel", + "vbCr", + "vbCritical", + "vbCrLf", + "vbCurrency", + "vbCyan", + "vbDataObject", + "vbDate", + "vbDefaultButton1", + "vbDefaultButton2", + "vbDefaultButton3", + "vbDefaultButton4", + "vbDouble", + "vbEmpty", + "vbError", + "vbExclamation", + "vbFalse", + "vbFirstFullWeek", + "vbFirstJan1", + "vbFormFeed", + "vbFriday", + "vbGeneralDate", + "vbGreen", + "vbIgnore", + "vbInformation", + "vbInteger", + "vbLf", + "vbLong", + "vbLongDate", + "vbLongTime", + "vbMagenta", + "vbMonday", + "vbMsgBoxHelpButton", + "vbMsgBoxRight", + "vbMsgBoxRtlReading", + "vbMsgBoxSetForeground", + "vbNewLine", + "vbNo", + "vbNull", + "vbNullChar", + "vbNullString", + "vbObject", + "vbObjectError", + "vbOK", + "vbOKCancel", + "vbOKOnly", + "vbQuestion", + "vbRed", + "vbRetry", + "vbRetryCancel", + "vbSaturday", + "vbShortDate", + "vbShortTime", + "vbSingle", + "vbString", + "vbSunday", + "vbSystemModal", + "vbTab", + "vbTextCompare", + "vbThursday", + "vbTrue", + "vbTuesday", + "vbUseDefault", + "vbUseSystem", + "vbUseSystem", + "vbVariant", + "vbVerticalTab", + "vbWednesday", + "vbWhite", + "vbYellow", + "vbYes", + "vbYesNo", + "vbYesNoCancel", ] diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vim_builtins.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vim_builtins.py index abbbf99..9b0e9d9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vim_builtins.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/_vim_builtins.py @@ -1,1938 +1,1946 @@ """ - pygments.lexers._vim_builtins - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers._vim_builtins +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - This file is autogenerated by scripts/get_vimkw.py +This file is autogenerated by scripts/get_vimkw.py - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ # Split up in multiple functions so it's importable by jython, which has a # per-method size limit. + def _getauto(): var = ( - ('BufAdd','BufAdd'), - ('BufCreate','BufCreate'), - ('BufDelete','BufDelete'), - ('BufEnter','BufEnter'), - ('BufFilePost','BufFilePost'), - ('BufFilePre','BufFilePre'), - ('BufHidden','BufHidden'), - ('BufLeave','BufLeave'), - ('BufNew','BufNew'), - ('BufNewFile','BufNewFile'), - ('BufRead','BufRead'), - ('BufReadCmd','BufReadCmd'), - ('BufReadPost','BufReadPost'), - ('BufReadPre','BufReadPre'), - ('BufUnload','BufUnload'), - ('BufWinEnter','BufWinEnter'), - ('BufWinLeave','BufWinLeave'), - ('BufWipeout','BufWipeout'), - ('BufWrite','BufWrite'), - ('BufWriteCmd','BufWriteCmd'), - ('BufWritePost','BufWritePost'), - ('BufWritePre','BufWritePre'), - ('Cmd','Cmd'), - ('CmdwinEnter','CmdwinEnter'), - ('CmdwinLeave','CmdwinLeave'), - ('ColorScheme','ColorScheme'), - ('CompleteDone','CompleteDone'), - ('CursorHold','CursorHold'), - ('CursorHoldI','CursorHoldI'), - ('CursorMoved','CursorMoved'), - ('CursorMovedI','CursorMovedI'), - ('EncodingChanged','EncodingChanged'), - ('FileAppendCmd','FileAppendCmd'), - ('FileAppendPost','FileAppendPost'), - ('FileAppendPre','FileAppendPre'), - ('FileChangedRO','FileChangedRO'), - ('FileChangedShell','FileChangedShell'), - ('FileChangedShellPost','FileChangedShellPost'), - ('FileEncoding','FileEncoding'), - ('FileReadCmd','FileReadCmd'), - ('FileReadPost','FileReadPost'), - ('FileReadPre','FileReadPre'), - ('FileType','FileType'), - ('FileWriteCmd','FileWriteCmd'), - ('FileWritePost','FileWritePost'), - ('FileWritePre','FileWritePre'), - ('FilterReadPost','FilterReadPost'), - ('FilterReadPre','FilterReadPre'), - ('FilterWritePost','FilterWritePost'), - ('FilterWritePre','FilterWritePre'), - ('FocusGained','FocusGained'), - ('FocusLost','FocusLost'), - ('FuncUndefined','FuncUndefined'), - ('GUIEnter','GUIEnter'), - ('GUIFailed','GUIFailed'), - ('InsertChange','InsertChange'), - ('InsertCharPre','InsertCharPre'), - ('InsertEnter','InsertEnter'), - ('InsertLeave','InsertLeave'), - ('MenuPopup','MenuPopup'), - ('QuickFixCmdPost','QuickFixCmdPost'), - ('QuickFixCmdPre','QuickFixCmdPre'), - ('QuitPre','QuitPre'), - ('RemoteReply','RemoteReply'), - ('SessionLoadPost','SessionLoadPost'), - ('ShellCmdPost','ShellCmdPost'), - ('ShellFilterPost','ShellFilterPost'), - ('SourceCmd','SourceCmd'), - ('SourcePre','SourcePre'), - ('SpellFileMissing','SpellFileMissing'), - ('StdinReadPost','StdinReadPost'), - ('StdinReadPre','StdinReadPre'), - ('SwapExists','SwapExists'), - ('Syntax','Syntax'), - ('TabEnter','TabEnter'), - ('TabLeave','TabLeave'), - ('TermChanged','TermChanged'), - ('TermResponse','TermResponse'), - ('TextChanged','TextChanged'), - ('TextChangedI','TextChangedI'), - ('User','User'), - ('UserGettingBored','UserGettingBored'), - ('VimEnter','VimEnter'), - ('VimLeave','VimLeave'), - ('VimLeavePre','VimLeavePre'), - ('VimResized','VimResized'), - ('WinEnter','WinEnter'), - ('WinLeave','WinLeave'), - ('event','event'), + ("BufAdd", "BufAdd"), + ("BufCreate", "BufCreate"), + ("BufDelete", "BufDelete"), + ("BufEnter", "BufEnter"), + ("BufFilePost", "BufFilePost"), + ("BufFilePre", "BufFilePre"), + ("BufHidden", "BufHidden"), + ("BufLeave", "BufLeave"), + ("BufNew", "BufNew"), + ("BufNewFile", "BufNewFile"), + ("BufRead", "BufRead"), + ("BufReadCmd", "BufReadCmd"), + ("BufReadPost", "BufReadPost"), + ("BufReadPre", "BufReadPre"), + ("BufUnload", "BufUnload"), + ("BufWinEnter", "BufWinEnter"), + ("BufWinLeave", "BufWinLeave"), + ("BufWipeout", "BufWipeout"), + ("BufWrite", "BufWrite"), + ("BufWriteCmd", "BufWriteCmd"), + ("BufWritePost", "BufWritePost"), + ("BufWritePre", "BufWritePre"), + ("Cmd", "Cmd"), + ("CmdwinEnter", "CmdwinEnter"), + ("CmdwinLeave", "CmdwinLeave"), + ("ColorScheme", "ColorScheme"), + ("CompleteDone", "CompleteDone"), + ("CursorHold", "CursorHold"), + ("CursorHoldI", "CursorHoldI"), + ("CursorMoved", "CursorMoved"), + ("CursorMovedI", "CursorMovedI"), + ("EncodingChanged", "EncodingChanged"), + ("FileAppendCmd", "FileAppendCmd"), + ("FileAppendPost", "FileAppendPost"), + ("FileAppendPre", "FileAppendPre"), + ("FileChangedRO", "FileChangedRO"), + ("FileChangedShell", "FileChangedShell"), + ("FileChangedShellPost", "FileChangedShellPost"), + ("FileEncoding", "FileEncoding"), + ("FileReadCmd", "FileReadCmd"), + ("FileReadPost", "FileReadPost"), + ("FileReadPre", "FileReadPre"), + ("FileType", "FileType"), + ("FileWriteCmd", "FileWriteCmd"), + ("FileWritePost", "FileWritePost"), + ("FileWritePre", "FileWritePre"), + ("FilterReadPost", "FilterReadPost"), + ("FilterReadPre", "FilterReadPre"), + ("FilterWritePost", "FilterWritePost"), + ("FilterWritePre", "FilterWritePre"), + ("FocusGained", "FocusGained"), + ("FocusLost", "FocusLost"), + ("FuncUndefined", "FuncUndefined"), + ("GUIEnter", "GUIEnter"), + ("GUIFailed", "GUIFailed"), + ("InsertChange", "InsertChange"), + ("InsertCharPre", "InsertCharPre"), + ("InsertEnter", "InsertEnter"), + ("InsertLeave", "InsertLeave"), + ("MenuPopup", "MenuPopup"), + ("QuickFixCmdPost", "QuickFixCmdPost"), + ("QuickFixCmdPre", "QuickFixCmdPre"), + ("QuitPre", "QuitPre"), + ("RemoteReply", "RemoteReply"), + ("SessionLoadPost", "SessionLoadPost"), + ("ShellCmdPost", "ShellCmdPost"), + ("ShellFilterPost", "ShellFilterPost"), + ("SourceCmd", "SourceCmd"), + ("SourcePre", "SourcePre"), + ("SpellFileMissing", "SpellFileMissing"), + ("StdinReadPost", "StdinReadPost"), + ("StdinReadPre", "StdinReadPre"), + ("SwapExists", "SwapExists"), + ("Syntax", "Syntax"), + ("TabEnter", "TabEnter"), + ("TabLeave", "TabLeave"), + ("TermChanged", "TermChanged"), + ("TermResponse", "TermResponse"), + ("TextChanged", "TextChanged"), + ("TextChangedI", "TextChangedI"), + ("User", "User"), + ("UserGettingBored", "UserGettingBored"), + ("VimEnter", "VimEnter"), + ("VimLeave", "VimLeave"), + ("VimLeavePre", "VimLeavePre"), + ("VimResized", "VimResized"), + ("WinEnter", "WinEnter"), + ("WinLeave", "WinLeave"), + ("event", "event"), ) return var + + auto = _getauto() + def _getcommand(): var = ( - ('a','a'), - ('ab','ab'), - ('abc','abclear'), - ('abo','aboveleft'), - ('al','all'), - ('ar','ar'), - ('ar','args'), - ('arga','argadd'), - ('argd','argdelete'), - ('argdo','argdo'), - ('arge','argedit'), - ('argg','argglobal'), - ('argl','arglocal'), - ('argu','argument'), - ('as','ascii'), - ('au','au'), - ('b','buffer'), - ('bN','bNext'), - ('ba','ball'), - ('bad','badd'), - ('bd','bdelete'), - ('bel','belowright'), - ('bf','bfirst'), - ('bl','blast'), - ('bm','bmodified'), - ('bn','bnext'), - ('bo','botright'), - ('bp','bprevious'), - ('br','br'), - ('br','brewind'), - ('brea','break'), - ('breaka','breakadd'), - ('breakd','breakdel'), - ('breakl','breaklist'), - ('bro','browse'), - ('bu','bu'), - ('buf','buf'), - ('bufdo','bufdo'), - ('buffers','buffers'), - ('bun','bunload'), - ('bw','bwipeout'), - ('c','c'), - ('c','change'), - ('cN','cN'), - ('cN','cNext'), - ('cNf','cNf'), - ('cNf','cNfile'), - ('cabc','cabclear'), - ('cad','cad'), - ('cad','caddexpr'), - ('caddb','caddbuffer'), - ('caddf','caddfile'), - ('cal','call'), - ('cat','catch'), - ('cb','cbuffer'), - ('cc','cc'), - ('ccl','cclose'), - ('cd','cd'), - ('ce','center'), - ('cex','cexpr'), - ('cf','cfile'), - ('cfir','cfirst'), - ('cg','cgetfile'), - ('cgetb','cgetbuffer'), - ('cgete','cgetexpr'), - ('changes','changes'), - ('chd','chdir'), - ('che','checkpath'), - ('checkt','checktime'), - ('cl','cl'), - ('cl','clist'), - ('cla','clast'), - ('clo','close'), - ('cmapc','cmapclear'), - ('cn','cn'), - ('cn','cnext'), - ('cnew','cnewer'), - ('cnf','cnf'), - ('cnf','cnfile'), - ('co','copy'), - ('col','colder'), - ('colo','colorscheme'), - ('com','com'), - ('comc','comclear'), - ('comp','compiler'), - ('con','con'), - ('con','continue'), - ('conf','confirm'), - ('cope','copen'), - ('cp','cprevious'), - ('cpf','cpfile'), - ('cq','cquit'), - ('cr','crewind'), - ('cs','cs'), - ('cscope','cscope'), - ('cstag','cstag'), - ('cuna','cunabbrev'), - ('cw','cwindow'), - ('d','d'), - ('d','delete'), - ('de','de'), - ('debug','debug'), - ('debugg','debuggreedy'), - ('del','del'), - ('delc','delcommand'), - ('delel','delel'), - ('delep','delep'), - ('deletel','deletel'), - ('deletep','deletep'), - ('deletl','deletl'), - ('deletp','deletp'), - ('delf','delf'), - ('delf','delfunction'), - ('dell','dell'), - ('delm','delmarks'), - ('delp','delp'), - ('dep','dep'), - ('di','di'), - ('di','display'), - ('diffg','diffget'), - ('diffo','diffoff'), - ('diffp','diffpatch'), - ('diffpu','diffput'), - ('diffs','diffsplit'), - ('difft','diffthis'), - ('diffu','diffupdate'), - ('dig','dig'), - ('dig','digraphs'), - ('dir','dir'), - ('dj','djump'), - ('dl','dl'), - ('dli','dlist'), - ('do','do'), - ('doau','doau'), - ('dp','dp'), - ('dr','drop'), - ('ds','dsearch'), - ('dsp','dsplit'), - ('e','e'), - ('e','edit'), - ('ea','ea'), - ('earlier','earlier'), - ('ec','ec'), - ('echoe','echoerr'), - ('echom','echomsg'), - ('echon','echon'), - ('el','else'), - ('elsei','elseif'), - ('em','emenu'), - ('en','en'), - ('en','endif'), - ('endf','endf'), - ('endf','endfunction'), - ('endfo','endfor'), - ('endfun','endfun'), - ('endt','endtry'), - ('endw','endwhile'), - ('ene','enew'), - ('ex','ex'), - ('exi','exit'), - ('exu','exusage'), - ('f','f'), - ('f','file'), - ('files','files'), - ('filet','filet'), - ('filetype','filetype'), - ('fin','fin'), - ('fin','find'), - ('fina','finally'), - ('fini','finish'), - ('fir','first'), - ('fix','fixdel'), - ('fo','fold'), - ('foldc','foldclose'), - ('foldd','folddoopen'), - ('folddoc','folddoclosed'), - ('foldo','foldopen'), - ('for','for'), - ('fu','fu'), - ('fu','function'), - ('fun','fun'), - ('g','g'), - ('go','goto'), - ('gr','grep'), - ('grepa','grepadd'), - ('gui','gui'), - ('gvim','gvim'), - ('h','h'), - ('h','help'), - ('ha','hardcopy'), - ('helpf','helpfind'), - ('helpg','helpgrep'), - ('helpt','helptags'), - ('hi','hi'), - ('hid','hide'), - ('his','history'), - ('i','i'), - ('ia','ia'), - ('iabc','iabclear'), - ('if','if'), - ('ij','ijump'), - ('il','ilist'), - ('imapc','imapclear'), - ('in','in'), - ('intro','intro'), - ('is','isearch'), - ('isp','isplit'), - ('iuna','iunabbrev'), - ('j','join'), - ('ju','jumps'), - ('k','k'), - ('kee','keepmarks'), - ('keepa','keepa'), - ('keepalt','keepalt'), - ('keepj','keepjumps'), - ('keepp','keeppatterns'), - ('l','l'), - ('l','list'), - ('lN','lN'), - ('lN','lNext'), - ('lNf','lNf'), - ('lNf','lNfile'), - ('la','la'), - ('la','last'), - ('lad','lad'), - ('lad','laddexpr'), - ('laddb','laddbuffer'), - ('laddf','laddfile'), - ('lan','lan'), - ('lan','language'), - ('lat','lat'), - ('later','later'), - ('lb','lbuffer'), - ('lc','lcd'), - ('lch','lchdir'), - ('lcl','lclose'), - ('lcs','lcs'), - ('lcscope','lcscope'), - ('le','left'), - ('lefta','leftabove'), - ('lex','lexpr'), - ('lf','lfile'), - ('lfir','lfirst'), - ('lg','lgetfile'), - ('lgetb','lgetbuffer'), - ('lgete','lgetexpr'), - ('lgr','lgrep'), - ('lgrepa','lgrepadd'), - ('lh','lhelpgrep'), - ('ll','ll'), - ('lla','llast'), - ('lli','llist'), - ('lmak','lmake'), - ('lmapc','lmapclear'), - ('lne','lne'), - ('lne','lnext'), - ('lnew','lnewer'), - ('lnf','lnf'), - ('lnf','lnfile'), - ('lo','lo'), - ('lo','loadview'), - ('loadk','loadk'), - ('loadkeymap','loadkeymap'), - ('loc','lockmarks'), - ('lockv','lockvar'), - ('lol','lolder'), - ('lop','lopen'), - ('lp','lprevious'), - ('lpf','lpfile'), - ('lr','lrewind'), - ('ls','ls'), - ('lt','ltag'), - ('lua','lua'), - ('luado','luado'), - ('luafile','luafile'), - ('lv','lvimgrep'), - ('lvimgrepa','lvimgrepadd'), - ('lw','lwindow'), - ('m','move'), - ('ma','ma'), - ('ma','mark'), - ('mak','make'), - ('marks','marks'), - ('mat','match'), - ('menut','menut'), - ('menut','menutranslate'), - ('mes','mes'), - ('messages','messages'), - ('mk','mk'), - ('mk','mkexrc'), - ('mks','mksession'), - ('mksp','mkspell'), - ('mkv','mkv'), - ('mkv','mkvimrc'), - ('mkvie','mkview'), - ('mo','mo'), - ('mod','mode'), - ('mz','mz'), - ('mz','mzscheme'), - ('mzf','mzfile'), - ('n','n'), - ('n','next'), - ('nb','nbkey'), - ('nbc','nbclose'), - ('nbs','nbstart'), - ('ne','ne'), - ('new','new'), - ('nmapc','nmapclear'), - ('noa','noa'), - ('noautocmd','noautocmd'), - ('noh','nohlsearch'), - ('nu','number'), - ('o','o'), - ('o','open'), - ('ol','oldfiles'), - ('omapc','omapclear'), - ('on','only'), - ('opt','options'), - ('ownsyntax','ownsyntax'), - ('p','p'), - ('p','print'), - ('pc','pclose'), - ('pe','pe'), - ('pe','perl'), - ('ped','pedit'), - ('perld','perldo'), - ('po','pop'), - ('popu','popu'), - ('popu','popup'), - ('pp','ppop'), - ('pr','pr'), - ('pre','preserve'), - ('prev','previous'), - ('pro','pro'), - ('prof','profile'), - ('profd','profdel'), - ('promptf','promptfind'), - ('promptr','promptrepl'), - ('ps','psearch'), - ('ptN','ptN'), - ('ptN','ptNext'), - ('pta','ptag'), - ('ptf','ptfirst'), - ('ptj','ptjump'), - ('ptl','ptlast'), - ('ptn','ptn'), - ('ptn','ptnext'), - ('ptp','ptprevious'), - ('ptr','ptrewind'), - ('pts','ptselect'), - ('pu','put'), - ('pw','pwd'), - ('py','py'), - ('py','python'), - ('py3','py3'), - ('py3','py3'), - ('py3do','py3do'), - ('pydo','pydo'), - ('pyf','pyfile'), - ('python3','python3'), - ('q','q'), - ('q','quit'), - ('qa','qall'), - ('quita','quitall'), - ('r','r'), - ('r','read'), - ('re','re'), - ('rec','recover'), - ('red','red'), - ('red','redo'), - ('redi','redir'), - ('redr','redraw'), - ('redraws','redrawstatus'), - ('reg','registers'), - ('res','resize'), - ('ret','retab'), - ('retu','return'), - ('rew','rewind'), - ('ri','right'), - ('rightb','rightbelow'), - ('ru','ru'), - ('ru','runtime'), - ('rub','ruby'), - ('rubyd','rubydo'), - ('rubyf','rubyfile'), - ('rundo','rundo'), - ('rv','rviminfo'), - ('sN','sNext'), - ('sa','sargument'), - ('sal','sall'), - ('san','sandbox'), - ('sav','saveas'), - ('sb','sbuffer'), - ('sbN','sbNext'), - ('sba','sball'), - ('sbf','sbfirst'), - ('sbl','sblast'), - ('sbm','sbmodified'), - ('sbn','sbnext'), - ('sbp','sbprevious'), - ('sbr','sbrewind'), - ('scrip','scrip'), - ('scrip','scriptnames'), - ('scripte','scriptencoding'), - ('scs','scs'), - ('scscope','scscope'), - ('se','set'), - ('setf','setfiletype'), - ('setg','setglobal'), - ('setl','setlocal'), - ('sf','sfind'), - ('sfir','sfirst'), - ('sh','shell'), - ('si','si'), - ('sig','sig'), - ('sign','sign'), - ('sil','silent'), - ('sim','simalt'), - ('sl','sl'), - ('sl','sleep'), - ('sla','slast'), - ('sm','smagic'), - ('sm','smap'), - ('sme','sme'), - ('smenu','smenu'), - ('sn','snext'), - ('sni','sniff'), - ('sno','snomagic'), - ('snoreme','snoreme'), - ('snoremenu','snoremenu'), - ('so','so'), - ('so','source'), - ('sor','sort'), - ('sp','split'), - ('spe','spe'), - ('spe','spellgood'), - ('spelld','spelldump'), - ('spelli','spellinfo'), - ('spellr','spellrepall'), - ('spellu','spellundo'), - ('spellw','spellwrong'), - ('spr','sprevious'), - ('sre','srewind'), - ('st','st'), - ('st','stop'), - ('sta','stag'), - ('star','star'), - ('star','startinsert'), - ('start','start'), - ('startg','startgreplace'), - ('startr','startreplace'), - ('stj','stjump'), - ('stopi','stopinsert'), - ('sts','stselect'), - ('sun','sunhide'), - ('sunme','sunme'), - ('sunmenu','sunmenu'), - ('sus','suspend'), - ('sv','sview'), - ('sw','swapname'), - ('sy','sy'), - ('syn','syn'), - ('sync','sync'), - ('syncbind','syncbind'), - ('syntime','syntime'), - ('t','t'), - ('tN','tN'), - ('tN','tNext'), - ('ta','ta'), - ('ta','tag'), - ('tab','tab'), - ('tabN','tabN'), - ('tabN','tabNext'), - ('tabc','tabclose'), - ('tabd','tabdo'), - ('tabe','tabedit'), - ('tabf','tabfind'), - ('tabfir','tabfirst'), - ('tabl','tablast'), - ('tabm','tabmove'), - ('tabn','tabnext'), - ('tabnew','tabnew'), - ('tabo','tabonly'), - ('tabp','tabprevious'), - ('tabr','tabrewind'), - ('tabs','tabs'), - ('tags','tags'), - ('tc','tcl'), - ('tcld','tcldo'), - ('tclf','tclfile'), - ('te','tearoff'), - ('tf','tfirst'), - ('th','throw'), - ('tj','tjump'), - ('tl','tlast'), - ('tm','tm'), - ('tm','tmenu'), - ('tn','tn'), - ('tn','tnext'), - ('to','topleft'), - ('tp','tprevious'), - ('tr','tr'), - ('tr','trewind'), - ('try','try'), - ('ts','tselect'), - ('tu','tu'), - ('tu','tunmenu'), - ('u','u'), - ('u','undo'), - ('un','un'), - ('una','unabbreviate'), - ('undoj','undojoin'), - ('undol','undolist'), - ('unh','unhide'), - ('unl','unl'), - ('unlo','unlockvar'), - ('uns','unsilent'), - ('up','update'), - ('v','v'), - ('ve','ve'), - ('ve','version'), - ('verb','verbose'), - ('vert','vertical'), - ('vi','vi'), - ('vi','visual'), - ('vie','view'), - ('vim','vimgrep'), - ('vimgrepa','vimgrepadd'), - ('viu','viusage'), - ('vmapc','vmapclear'), - ('vne','vnew'), - ('vs','vsplit'), - ('w','w'), - ('w','write'), - ('wN','wNext'), - ('wa','wall'), - ('wh','while'), - ('win','win'), - ('win','winsize'), - ('winc','wincmd'), - ('windo','windo'), - ('winp','winpos'), - ('wn','wnext'), - ('wp','wprevious'), - ('wq','wq'), - ('wqa','wqall'), - ('ws','wsverb'), - ('wundo','wundo'), - ('wv','wviminfo'), - ('x','x'), - ('x','xit'), - ('xa','xall'), - ('xmapc','xmapclear'), - ('xme','xme'), - ('xmenu','xmenu'), - ('xnoreme','xnoreme'), - ('xnoremenu','xnoremenu'), - ('xunme','xunme'), - ('xunmenu','xunmenu'), - ('xwininfo','xwininfo'), - ('y','yank'), + ("a", "a"), + ("ab", "ab"), + ("abc", "abclear"), + ("abo", "aboveleft"), + ("al", "all"), + ("ar", "ar"), + ("ar", "args"), + ("arga", "argadd"), + ("argd", "argdelete"), + ("argdo", "argdo"), + ("arge", "argedit"), + ("argg", "argglobal"), + ("argl", "arglocal"), + ("argu", "argument"), + ("as", "ascii"), + ("au", "au"), + ("b", "buffer"), + ("bN", "bNext"), + ("ba", "ball"), + ("bad", "badd"), + ("bd", "bdelete"), + ("bel", "belowright"), + ("bf", "bfirst"), + ("bl", "blast"), + ("bm", "bmodified"), + ("bn", "bnext"), + ("bo", "botright"), + ("bp", "bprevious"), + ("br", "br"), + ("br", "brewind"), + ("brea", "break"), + ("breaka", "breakadd"), + ("breakd", "breakdel"), + ("breakl", "breaklist"), + ("bro", "browse"), + ("bu", "bu"), + ("buf", "buf"), + ("bufdo", "bufdo"), + ("buffers", "buffers"), + ("bun", "bunload"), + ("bw", "bwipeout"), + ("c", "c"), + ("c", "change"), + ("cN", "cN"), + ("cN", "cNext"), + ("cNf", "cNf"), + ("cNf", "cNfile"), + ("cabc", "cabclear"), + ("cad", "cad"), + ("cad", "caddexpr"), + ("caddb", "caddbuffer"), + ("caddf", "caddfile"), + ("cal", "call"), + ("cat", "catch"), + ("cb", "cbuffer"), + ("cc", "cc"), + ("ccl", "cclose"), + ("cd", "cd"), + ("ce", "center"), + ("cex", "cexpr"), + ("cf", "cfile"), + ("cfir", "cfirst"), + ("cg", "cgetfile"), + ("cgetb", "cgetbuffer"), + ("cgete", "cgetexpr"), + ("changes", "changes"), + ("chd", "chdir"), + ("che", "checkpath"), + ("checkt", "checktime"), + ("cl", "cl"), + ("cl", "clist"), + ("cla", "clast"), + ("clo", "close"), + ("cmapc", "cmapclear"), + ("cn", "cn"), + ("cn", "cnext"), + ("cnew", "cnewer"), + ("cnf", "cnf"), + ("cnf", "cnfile"), + ("co", "copy"), + ("col", "colder"), + ("colo", "colorscheme"), + ("com", "com"), + ("comc", "comclear"), + ("comp", "compiler"), + ("con", "con"), + ("con", "continue"), + ("conf", "confirm"), + ("cope", "copen"), + ("cp", "cprevious"), + ("cpf", "cpfile"), + ("cq", "cquit"), + ("cr", "crewind"), + ("cs", "cs"), + ("cscope", "cscope"), + ("cstag", "cstag"), + ("cuna", "cunabbrev"), + ("cw", "cwindow"), + ("d", "d"), + ("d", "delete"), + ("de", "de"), + ("debug", "debug"), + ("debugg", "debuggreedy"), + ("del", "del"), + ("delc", "delcommand"), + ("delel", "delel"), + ("delep", "delep"), + ("deletel", "deletel"), + ("deletep", "deletep"), + ("deletl", "deletl"), + ("deletp", "deletp"), + ("delf", "delf"), + ("delf", "delfunction"), + ("dell", "dell"), + ("delm", "delmarks"), + ("delp", "delp"), + ("dep", "dep"), + ("di", "di"), + ("di", "display"), + ("diffg", "diffget"), + ("diffo", "diffoff"), + ("diffp", "diffpatch"), + ("diffpu", "diffput"), + ("diffs", "diffsplit"), + ("difft", "diffthis"), + ("diffu", "diffupdate"), + ("dig", "dig"), + ("dig", "digraphs"), + ("dir", "dir"), + ("dj", "djump"), + ("dl", "dl"), + ("dli", "dlist"), + ("do", "do"), + ("doau", "doau"), + ("dp", "dp"), + ("dr", "drop"), + ("ds", "dsearch"), + ("dsp", "dsplit"), + ("e", "e"), + ("e", "edit"), + ("ea", "ea"), + ("earlier", "earlier"), + ("ec", "ec"), + ("echoe", "echoerr"), + ("echom", "echomsg"), + ("echon", "echon"), + ("el", "else"), + ("elsei", "elseif"), + ("em", "emenu"), + ("en", "en"), + ("en", "endif"), + ("endf", "endf"), + ("endf", "endfunction"), + ("endfo", "endfor"), + ("endfun", "endfun"), + ("endt", "endtry"), + ("endw", "endwhile"), + ("ene", "enew"), + ("ex", "ex"), + ("exi", "exit"), + ("exu", "exusage"), + ("f", "f"), + ("f", "file"), + ("files", "files"), + ("filet", "filet"), + ("filetype", "filetype"), + ("fin", "fin"), + ("fin", "find"), + ("fina", "finally"), + ("fini", "finish"), + ("fir", "first"), + ("fix", "fixdel"), + ("fo", "fold"), + ("foldc", "foldclose"), + ("foldd", "folddoopen"), + ("folddoc", "folddoclosed"), + ("foldo", "foldopen"), + ("for", "for"), + ("fu", "fu"), + ("fu", "function"), + ("fun", "fun"), + ("g", "g"), + ("go", "goto"), + ("gr", "grep"), + ("grepa", "grepadd"), + ("gui", "gui"), + ("gvim", "gvim"), + ("h", "h"), + ("h", "help"), + ("ha", "hardcopy"), + ("helpf", "helpfind"), + ("helpg", "helpgrep"), + ("helpt", "helptags"), + ("hi", "hi"), + ("hid", "hide"), + ("his", "history"), + ("i", "i"), + ("ia", "ia"), + ("iabc", "iabclear"), + ("if", "if"), + ("ij", "ijump"), + ("il", "ilist"), + ("imapc", "imapclear"), + ("in", "in"), + ("intro", "intro"), + ("is", "isearch"), + ("isp", "isplit"), + ("iuna", "iunabbrev"), + ("j", "join"), + ("ju", "jumps"), + ("k", "k"), + ("kee", "keepmarks"), + ("keepa", "keepa"), + ("keepalt", "keepalt"), + ("keepj", "keepjumps"), + ("keepp", "keeppatterns"), + ("l", "l"), + ("l", "list"), + ("lN", "lN"), + ("lN", "lNext"), + ("lNf", "lNf"), + ("lNf", "lNfile"), + ("la", "la"), + ("la", "last"), + ("lad", "lad"), + ("lad", "laddexpr"), + ("laddb", "laddbuffer"), + ("laddf", "laddfile"), + ("lan", "lan"), + ("lan", "language"), + ("lat", "lat"), + ("later", "later"), + ("lb", "lbuffer"), + ("lc", "lcd"), + ("lch", "lchdir"), + ("lcl", "lclose"), + ("lcs", "lcs"), + ("lcscope", "lcscope"), + ("le", "left"), + ("lefta", "leftabove"), + ("lex", "lexpr"), + ("lf", "lfile"), + ("lfir", "lfirst"), + ("lg", "lgetfile"), + ("lgetb", "lgetbuffer"), + ("lgete", "lgetexpr"), + ("lgr", "lgrep"), + ("lgrepa", "lgrepadd"), + ("lh", "lhelpgrep"), + ("ll", "ll"), + ("lla", "llast"), + ("lli", "llist"), + ("lmak", "lmake"), + ("lmapc", "lmapclear"), + ("lne", "lne"), + ("lne", "lnext"), + ("lnew", "lnewer"), + ("lnf", "lnf"), + ("lnf", "lnfile"), + ("lo", "lo"), + ("lo", "loadview"), + ("loadk", "loadk"), + ("loadkeymap", "loadkeymap"), + ("loc", "lockmarks"), + ("lockv", "lockvar"), + ("lol", "lolder"), + ("lop", "lopen"), + ("lp", "lprevious"), + ("lpf", "lpfile"), + ("lr", "lrewind"), + ("ls", "ls"), + ("lt", "ltag"), + ("lua", "lua"), + ("luado", "luado"), + ("luafile", "luafile"), + ("lv", "lvimgrep"), + ("lvimgrepa", "lvimgrepadd"), + ("lw", "lwindow"), + ("m", "move"), + ("ma", "ma"), + ("ma", "mark"), + ("mak", "make"), + ("marks", "marks"), + ("mat", "match"), + ("menut", "menut"), + ("menut", "menutranslate"), + ("mes", "mes"), + ("messages", "messages"), + ("mk", "mk"), + ("mk", "mkexrc"), + ("mks", "mksession"), + ("mksp", "mkspell"), + ("mkv", "mkv"), + ("mkv", "mkvimrc"), + ("mkvie", "mkview"), + ("mo", "mo"), + ("mod", "mode"), + ("mz", "mz"), + ("mz", "mzscheme"), + ("mzf", "mzfile"), + ("n", "n"), + ("n", "next"), + ("nb", "nbkey"), + ("nbc", "nbclose"), + ("nbs", "nbstart"), + ("ne", "ne"), + ("new", "new"), + ("nmapc", "nmapclear"), + ("noa", "noa"), + ("noautocmd", "noautocmd"), + ("noh", "nohlsearch"), + ("nu", "number"), + ("o", "o"), + ("o", "open"), + ("ol", "oldfiles"), + ("omapc", "omapclear"), + ("on", "only"), + ("opt", "options"), + ("ownsyntax", "ownsyntax"), + ("p", "p"), + ("p", "print"), + ("pc", "pclose"), + ("pe", "pe"), + ("pe", "perl"), + ("ped", "pedit"), + ("perld", "perldo"), + ("po", "pop"), + ("popu", "popu"), + ("popu", "popup"), + ("pp", "ppop"), + ("pr", "pr"), + ("pre", "preserve"), + ("prev", "previous"), + ("pro", "pro"), + ("prof", "profile"), + ("profd", "profdel"), + ("promptf", "promptfind"), + ("promptr", "promptrepl"), + ("ps", "psearch"), + ("ptN", "ptN"), + ("ptN", "ptNext"), + ("pta", "ptag"), + ("ptf", "ptfirst"), + ("ptj", "ptjump"), + ("ptl", "ptlast"), + ("ptn", "ptn"), + ("ptn", "ptnext"), + ("ptp", "ptprevious"), + ("ptr", "ptrewind"), + ("pts", "ptselect"), + ("pu", "put"), + ("pw", "pwd"), + ("py", "py"), + ("py", "python"), + ("py3", "py3"), + ("py3", "py3"), + ("py3do", "py3do"), + ("pydo", "pydo"), + ("pyf", "pyfile"), + ("python3", "python3"), + ("q", "q"), + ("q", "quit"), + ("qa", "qall"), + ("quita", "quitall"), + ("r", "r"), + ("r", "read"), + ("re", "re"), + ("rec", "recover"), + ("red", "red"), + ("red", "redo"), + ("redi", "redir"), + ("redr", "redraw"), + ("redraws", "redrawstatus"), + ("reg", "registers"), + ("res", "resize"), + ("ret", "retab"), + ("retu", "return"), + ("rew", "rewind"), + ("ri", "right"), + ("rightb", "rightbelow"), + ("ru", "ru"), + ("ru", "runtime"), + ("rub", "ruby"), + ("rubyd", "rubydo"), + ("rubyf", "rubyfile"), + ("rundo", "rundo"), + ("rv", "rviminfo"), + ("sN", "sNext"), + ("sa", "sargument"), + ("sal", "sall"), + ("san", "sandbox"), + ("sav", "saveas"), + ("sb", "sbuffer"), + ("sbN", "sbNext"), + ("sba", "sball"), + ("sbf", "sbfirst"), + ("sbl", "sblast"), + ("sbm", "sbmodified"), + ("sbn", "sbnext"), + ("sbp", "sbprevious"), + ("sbr", "sbrewind"), + ("scrip", "scrip"), + ("scrip", "scriptnames"), + ("scripte", "scriptencoding"), + ("scs", "scs"), + ("scscope", "scscope"), + ("se", "set"), + ("setf", "setfiletype"), + ("setg", "setglobal"), + ("setl", "setlocal"), + ("sf", "sfind"), + ("sfir", "sfirst"), + ("sh", "shell"), + ("si", "si"), + ("sig", "sig"), + ("sign", "sign"), + ("sil", "silent"), + ("sim", "simalt"), + ("sl", "sl"), + ("sl", "sleep"), + ("sla", "slast"), + ("sm", "smagic"), + ("sm", "smap"), + ("sme", "sme"), + ("smenu", "smenu"), + ("sn", "snext"), + ("sni", "sniff"), + ("sno", "snomagic"), + ("snoreme", "snoreme"), + ("snoremenu", "snoremenu"), + ("so", "so"), + ("so", "source"), + ("sor", "sort"), + ("sp", "split"), + ("spe", "spe"), + ("spe", "spellgood"), + ("spelld", "spelldump"), + ("spelli", "spellinfo"), + ("spellr", "spellrepall"), + ("spellu", "spellundo"), + ("spellw", "spellwrong"), + ("spr", "sprevious"), + ("sre", "srewind"), + ("st", "st"), + ("st", "stop"), + ("sta", "stag"), + ("star", "star"), + ("star", "startinsert"), + ("start", "start"), + ("startg", "startgreplace"), + ("startr", "startreplace"), + ("stj", "stjump"), + ("stopi", "stopinsert"), + ("sts", "stselect"), + ("sun", "sunhide"), + ("sunme", "sunme"), + ("sunmenu", "sunmenu"), + ("sus", "suspend"), + ("sv", "sview"), + ("sw", "swapname"), + ("sy", "sy"), + ("syn", "syn"), + ("sync", "sync"), + ("syncbind", "syncbind"), + ("syntime", "syntime"), + ("t", "t"), + ("tN", "tN"), + ("tN", "tNext"), + ("ta", "ta"), + ("ta", "tag"), + ("tab", "tab"), + ("tabN", "tabN"), + ("tabN", "tabNext"), + ("tabc", "tabclose"), + ("tabd", "tabdo"), + ("tabe", "tabedit"), + ("tabf", "tabfind"), + ("tabfir", "tabfirst"), + ("tabl", "tablast"), + ("tabm", "tabmove"), + ("tabn", "tabnext"), + ("tabnew", "tabnew"), + ("tabo", "tabonly"), + ("tabp", "tabprevious"), + ("tabr", "tabrewind"), + ("tabs", "tabs"), + ("tags", "tags"), + ("tc", "tcl"), + ("tcld", "tcldo"), + ("tclf", "tclfile"), + ("te", "tearoff"), + ("tf", "tfirst"), + ("th", "throw"), + ("tj", "tjump"), + ("tl", "tlast"), + ("tm", "tm"), + ("tm", "tmenu"), + ("tn", "tn"), + ("tn", "tnext"), + ("to", "topleft"), + ("tp", "tprevious"), + ("tr", "tr"), + ("tr", "trewind"), + ("try", "try"), + ("ts", "tselect"), + ("tu", "tu"), + ("tu", "tunmenu"), + ("u", "u"), + ("u", "undo"), + ("un", "un"), + ("una", "unabbreviate"), + ("undoj", "undojoin"), + ("undol", "undolist"), + ("unh", "unhide"), + ("unl", "unl"), + ("unlo", "unlockvar"), + ("uns", "unsilent"), + ("up", "update"), + ("v", "v"), + ("ve", "ve"), + ("ve", "version"), + ("verb", "verbose"), + ("vert", "vertical"), + ("vi", "vi"), + ("vi", "visual"), + ("vie", "view"), + ("vim", "vimgrep"), + ("vimgrepa", "vimgrepadd"), + ("viu", "viusage"), + ("vmapc", "vmapclear"), + ("vne", "vnew"), + ("vs", "vsplit"), + ("w", "w"), + ("w", "write"), + ("wN", "wNext"), + ("wa", "wall"), + ("wh", "while"), + ("win", "win"), + ("win", "winsize"), + ("winc", "wincmd"), + ("windo", "windo"), + ("winp", "winpos"), + ("wn", "wnext"), + ("wp", "wprevious"), + ("wq", "wq"), + ("wqa", "wqall"), + ("ws", "wsverb"), + ("wundo", "wundo"), + ("wv", "wviminfo"), + ("x", "x"), + ("x", "xit"), + ("xa", "xall"), + ("xmapc", "xmapclear"), + ("xme", "xme"), + ("xmenu", "xmenu"), + ("xnoreme", "xnoreme"), + ("xnoremenu", "xnoremenu"), + ("xunme", "xunme"), + ("xunmenu", "xunmenu"), + ("xwininfo", "xwininfo"), + ("y", "yank"), ) return var + + command = _getcommand() + def _getoption(): var = ( - ('acd','acd'), - ('ai','ai'), - ('akm','akm'), - ('al','al'), - ('aleph','aleph'), - ('allowrevins','allowrevins'), - ('altkeymap','altkeymap'), - ('ambiwidth','ambiwidth'), - ('ambw','ambw'), - ('anti','anti'), - ('antialias','antialias'), - ('ar','ar'), - ('arab','arab'), - ('arabic','arabic'), - ('arabicshape','arabicshape'), - ('ari','ari'), - ('arshape','arshape'), - ('autochdir','autochdir'), - ('autoindent','autoindent'), - ('autoread','autoread'), - ('autowrite','autowrite'), - ('autowriteall','autowriteall'), - ('aw','aw'), - ('awa','awa'), - ('background','background'), - ('backspace','backspace'), - ('backup','backup'), - ('backupcopy','backupcopy'), - ('backupdir','backupdir'), - ('backupext','backupext'), - ('backupskip','backupskip'), - ('balloondelay','balloondelay'), - ('ballooneval','ballooneval'), - ('balloonexpr','balloonexpr'), - ('bdir','bdir'), - ('bdlay','bdlay'), - ('beval','beval'), - ('bex','bex'), - ('bexpr','bexpr'), - ('bg','bg'), - ('bh','bh'), - ('bin','bin'), - ('binary','binary'), - ('biosk','biosk'), - ('bioskey','bioskey'), - ('bk','bk'), - ('bkc','bkc'), - ('bl','bl'), - ('bomb','bomb'), - ('breakat','breakat'), - ('brk','brk'), - ('browsedir','browsedir'), - ('bs','bs'), - ('bsdir','bsdir'), - ('bsk','bsk'), - ('bt','bt'), - ('bufhidden','bufhidden'), - ('buflisted','buflisted'), - ('buftype','buftype'), - ('casemap','casemap'), - ('cb','cb'), - ('cc','cc'), - ('ccv','ccv'), - ('cd','cd'), - ('cdpath','cdpath'), - ('cedit','cedit'), - ('cf','cf'), - ('cfu','cfu'), - ('ch','ch'), - ('charconvert','charconvert'), - ('ci','ci'), - ('cin','cin'), - ('cindent','cindent'), - ('cink','cink'), - ('cinkeys','cinkeys'), - ('cino','cino'), - ('cinoptions','cinoptions'), - ('cinw','cinw'), - ('cinwords','cinwords'), - ('clipboard','clipboard'), - ('cmdheight','cmdheight'), - ('cmdwinheight','cmdwinheight'), - ('cmp','cmp'), - ('cms','cms'), - ('co','co'), - ('cocu','cocu'), - ('cole','cole'), - ('colorcolumn','colorcolumn'), - ('columns','columns'), - ('com','com'), - ('comments','comments'), - ('commentstring','commentstring'), - ('compatible','compatible'), - ('complete','complete'), - ('completefunc','completefunc'), - ('completeopt','completeopt'), - ('concealcursor','concealcursor'), - ('conceallevel','conceallevel'), - ('confirm','confirm'), - ('consk','consk'), - ('conskey','conskey'), - ('copyindent','copyindent'), - ('cot','cot'), - ('cp','cp'), - ('cpo','cpo'), - ('cpoptions','cpoptions'), - ('cpt','cpt'), - ('crb','crb'), - ('cryptmethod','cryptmethod'), - ('cscopepathcomp','cscopepathcomp'), - ('cscopeprg','cscopeprg'), - ('cscopequickfix','cscopequickfix'), - ('cscoperelative','cscoperelative'), - ('cscopetag','cscopetag'), - ('cscopetagorder','cscopetagorder'), - ('cscopeverbose','cscopeverbose'), - ('cspc','cspc'), - ('csprg','csprg'), - ('csqf','csqf'), - ('csre','csre'), - ('cst','cst'), - ('csto','csto'), - ('csverb','csverb'), - ('cuc','cuc'), - ('cul','cul'), - ('cursorbind','cursorbind'), - ('cursorcolumn','cursorcolumn'), - ('cursorline','cursorline'), - ('cwh','cwh'), - ('debug','debug'), - ('deco','deco'), - ('def','def'), - ('define','define'), - ('delcombine','delcombine'), - ('dex','dex'), - ('dg','dg'), - ('dict','dict'), - ('dictionary','dictionary'), - ('diff','diff'), - ('diffexpr','diffexpr'), - ('diffopt','diffopt'), - ('digraph','digraph'), - ('dip','dip'), - ('dir','dir'), - ('directory','directory'), - ('display','display'), - ('dy','dy'), - ('ea','ea'), - ('ead','ead'), - ('eadirection','eadirection'), - ('eb','eb'), - ('ed','ed'), - ('edcompatible','edcompatible'), - ('ef','ef'), - ('efm','efm'), - ('ei','ei'), - ('ek','ek'), - ('enc','enc'), - ('encoding','encoding'), - ('endofline','endofline'), - ('eol','eol'), - ('ep','ep'), - ('equalalways','equalalways'), - ('equalprg','equalprg'), - ('errorbells','errorbells'), - ('errorfile','errorfile'), - ('errorformat','errorformat'), - ('esckeys','esckeys'), - ('et','et'), - ('eventignore','eventignore'), - ('ex','ex'), - ('expandtab','expandtab'), - ('exrc','exrc'), - ('fcl','fcl'), - ('fcs','fcs'), - ('fdc','fdc'), - ('fde','fde'), - ('fdi','fdi'), - ('fdl','fdl'), - ('fdls','fdls'), - ('fdm','fdm'), - ('fdn','fdn'), - ('fdo','fdo'), - ('fdt','fdt'), - ('fen','fen'), - ('fenc','fenc'), - ('fencs','fencs'), - ('fex','fex'), - ('ff','ff'), - ('ffs','ffs'), - ('fic','fic'), - ('fileencoding','fileencoding'), - ('fileencodings','fileencodings'), - ('fileformat','fileformat'), - ('fileformats','fileformats'), - ('fileignorecase','fileignorecase'), - ('filetype','filetype'), - ('fillchars','fillchars'), - ('fk','fk'), - ('fkmap','fkmap'), - ('flp','flp'), - ('fml','fml'), - ('fmr','fmr'), - ('fo','fo'), - ('foldclose','foldclose'), - ('foldcolumn','foldcolumn'), - ('foldenable','foldenable'), - ('foldexpr','foldexpr'), - ('foldignore','foldignore'), - ('foldlevel','foldlevel'), - ('foldlevelstart','foldlevelstart'), - ('foldmarker','foldmarker'), - ('foldmethod','foldmethod'), - ('foldminlines','foldminlines'), - ('foldnestmax','foldnestmax'), - ('foldopen','foldopen'), - ('foldtext','foldtext'), - ('formatexpr','formatexpr'), - ('formatlistpat','formatlistpat'), - ('formatoptions','formatoptions'), - ('formatprg','formatprg'), - ('fp','fp'), - ('fs','fs'), - ('fsync','fsync'), - ('ft','ft'), - ('gcr','gcr'), - ('gd','gd'), - ('gdefault','gdefault'), - ('gfm','gfm'), - ('gfn','gfn'), - ('gfs','gfs'), - ('gfw','gfw'), - ('ghr','ghr'), - ('go','go'), - ('gp','gp'), - ('grepformat','grepformat'), - ('grepprg','grepprg'), - ('gtl','gtl'), - ('gtt','gtt'), - ('guicursor','guicursor'), - ('guifont','guifont'), - ('guifontset','guifontset'), - ('guifontwide','guifontwide'), - ('guiheadroom','guiheadroom'), - ('guioptions','guioptions'), - ('guipty','guipty'), - ('guitablabel','guitablabel'), - ('guitabtooltip','guitabtooltip'), - ('helpfile','helpfile'), - ('helpheight','helpheight'), - ('helplang','helplang'), - ('hf','hf'), - ('hh','hh'), - ('hi','hi'), - ('hid','hid'), - ('hidden','hidden'), - ('highlight','highlight'), - ('history','history'), - ('hk','hk'), - ('hkmap','hkmap'), - ('hkmapp','hkmapp'), - ('hkp','hkp'), - ('hl','hl'), - ('hlg','hlg'), - ('hls','hls'), - ('hlsearch','hlsearch'), - ('ic','ic'), - ('icon','icon'), - ('iconstring','iconstring'), - ('ignorecase','ignorecase'), - ('im','im'), - ('imactivatefunc','imactivatefunc'), - ('imactivatekey','imactivatekey'), - ('imaf','imaf'), - ('imak','imak'), - ('imc','imc'), - ('imcmdline','imcmdline'), - ('imd','imd'), - ('imdisable','imdisable'), - ('imi','imi'), - ('iminsert','iminsert'), - ('ims','ims'), - ('imsearch','imsearch'), - ('imsf','imsf'), - ('imstatusfunc','imstatusfunc'), - ('inc','inc'), - ('include','include'), - ('includeexpr','includeexpr'), - ('incsearch','incsearch'), - ('inde','inde'), - ('indentexpr','indentexpr'), - ('indentkeys','indentkeys'), - ('indk','indk'), - ('inex','inex'), - ('inf','inf'), - ('infercase','infercase'), - ('inoremap','inoremap'), - ('insertmode','insertmode'), - ('invacd','invacd'), - ('invai','invai'), - ('invakm','invakm'), - ('invallowrevins','invallowrevins'), - ('invaltkeymap','invaltkeymap'), - ('invanti','invanti'), - ('invantialias','invantialias'), - ('invar','invar'), - ('invarab','invarab'), - ('invarabic','invarabic'), - ('invarabicshape','invarabicshape'), - ('invari','invari'), - ('invarshape','invarshape'), - ('invautochdir','invautochdir'), - ('invautoindent','invautoindent'), - ('invautoread','invautoread'), - ('invautowrite','invautowrite'), - ('invautowriteall','invautowriteall'), - ('invaw','invaw'), - ('invawa','invawa'), - ('invbackup','invbackup'), - ('invballooneval','invballooneval'), - ('invbeval','invbeval'), - ('invbin','invbin'), - ('invbinary','invbinary'), - ('invbiosk','invbiosk'), - ('invbioskey','invbioskey'), - ('invbk','invbk'), - ('invbl','invbl'), - ('invbomb','invbomb'), - ('invbuflisted','invbuflisted'), - ('invcf','invcf'), - ('invci','invci'), - ('invcin','invcin'), - ('invcindent','invcindent'), - ('invcompatible','invcompatible'), - ('invconfirm','invconfirm'), - ('invconsk','invconsk'), - ('invconskey','invconskey'), - ('invcopyindent','invcopyindent'), - ('invcp','invcp'), - ('invcrb','invcrb'), - ('invcscoperelative','invcscoperelative'), - ('invcscopetag','invcscopetag'), - ('invcscopeverbose','invcscopeverbose'), - ('invcsre','invcsre'), - ('invcst','invcst'), - ('invcsverb','invcsverb'), - ('invcuc','invcuc'), - ('invcul','invcul'), - ('invcursorbind','invcursorbind'), - ('invcursorcolumn','invcursorcolumn'), - ('invcursorline','invcursorline'), - ('invdeco','invdeco'), - ('invdelcombine','invdelcombine'), - ('invdg','invdg'), - ('invdiff','invdiff'), - ('invdigraph','invdigraph'), - ('invea','invea'), - ('inveb','inveb'), - ('inved','inved'), - ('invedcompatible','invedcompatible'), - ('invek','invek'), - ('invendofline','invendofline'), - ('inveol','inveol'), - ('invequalalways','invequalalways'), - ('inverrorbells','inverrorbells'), - ('invesckeys','invesckeys'), - ('invet','invet'), - ('invex','invex'), - ('invexpandtab','invexpandtab'), - ('invexrc','invexrc'), - ('invfen','invfen'), - ('invfic','invfic'), - ('invfileignorecase','invfileignorecase'), - ('invfk','invfk'), - ('invfkmap','invfkmap'), - ('invfoldenable','invfoldenable'), - ('invgd','invgd'), - ('invgdefault','invgdefault'), - ('invguipty','invguipty'), - ('invhid','invhid'), - ('invhidden','invhidden'), - ('invhk','invhk'), - ('invhkmap','invhkmap'), - ('invhkmapp','invhkmapp'), - ('invhkp','invhkp'), - ('invhls','invhls'), - ('invhlsearch','invhlsearch'), - ('invic','invic'), - ('invicon','invicon'), - ('invignorecase','invignorecase'), - ('invim','invim'), - ('invimc','invimc'), - ('invimcmdline','invimcmdline'), - ('invimd','invimd'), - ('invimdisable','invimdisable'), - ('invincsearch','invincsearch'), - ('invinf','invinf'), - ('invinfercase','invinfercase'), - ('invinsertmode','invinsertmode'), - ('invis','invis'), - ('invjoinspaces','invjoinspaces'), - ('invjs','invjs'), - ('invlazyredraw','invlazyredraw'), - ('invlbr','invlbr'), - ('invlinebreak','invlinebreak'), - ('invlisp','invlisp'), - ('invlist','invlist'), - ('invloadplugins','invloadplugins'), - ('invlpl','invlpl'), - ('invlz','invlz'), - ('invma','invma'), - ('invmacatsui','invmacatsui'), - ('invmagic','invmagic'), - ('invmh','invmh'), - ('invml','invml'), - ('invmod','invmod'), - ('invmodeline','invmodeline'), - ('invmodifiable','invmodifiable'), - ('invmodified','invmodified'), - ('invmore','invmore'), - ('invmousef','invmousef'), - ('invmousefocus','invmousefocus'), - ('invmousehide','invmousehide'), - ('invnu','invnu'), - ('invnumber','invnumber'), - ('invodev','invodev'), - ('invopendevice','invopendevice'), - ('invpaste','invpaste'), - ('invpi','invpi'), - ('invpreserveindent','invpreserveindent'), - ('invpreviewwindow','invpreviewwindow'), - ('invprompt','invprompt'), - ('invpvw','invpvw'), - ('invreadonly','invreadonly'), - ('invrelativenumber','invrelativenumber'), - ('invremap','invremap'), - ('invrestorescreen','invrestorescreen'), - ('invrevins','invrevins'), - ('invri','invri'), - ('invrightleft','invrightleft'), - ('invrl','invrl'), - ('invrnu','invrnu'), - ('invro','invro'), - ('invrs','invrs'), - ('invru','invru'), - ('invruler','invruler'), - ('invsb','invsb'), - ('invsc','invsc'), - ('invscb','invscb'), - ('invscrollbind','invscrollbind'), - ('invscs','invscs'), - ('invsecure','invsecure'), - ('invsft','invsft'), - ('invshellslash','invshellslash'), - ('invshelltemp','invshelltemp'), - ('invshiftround','invshiftround'), - ('invshortname','invshortname'), - ('invshowcmd','invshowcmd'), - ('invshowfulltag','invshowfulltag'), - ('invshowmatch','invshowmatch'), - ('invshowmode','invshowmode'), - ('invsi','invsi'), - ('invsm','invsm'), - ('invsmartcase','invsmartcase'), - ('invsmartindent','invsmartindent'), - ('invsmarttab','invsmarttab'), - ('invsmd','invsmd'), - ('invsn','invsn'), - ('invsol','invsol'), - ('invspell','invspell'), - ('invsplitbelow','invsplitbelow'), - ('invsplitright','invsplitright'), - ('invspr','invspr'), - ('invsr','invsr'), - ('invssl','invssl'), - ('invsta','invsta'), - ('invstartofline','invstartofline'), - ('invstmp','invstmp'), - ('invswapfile','invswapfile'), - ('invswf','invswf'), - ('invta','invta'), - ('invtagbsearch','invtagbsearch'), - ('invtagrelative','invtagrelative'), - ('invtagstack','invtagstack'), - ('invtbi','invtbi'), - ('invtbidi','invtbidi'), - ('invtbs','invtbs'), - ('invtermbidi','invtermbidi'), - ('invterse','invterse'), - ('invtextauto','invtextauto'), - ('invtextmode','invtextmode'), - ('invtf','invtf'), - ('invtgst','invtgst'), - ('invtildeop','invtildeop'), - ('invtimeout','invtimeout'), - ('invtitle','invtitle'), - ('invto','invto'), - ('invtop','invtop'), - ('invtr','invtr'), - ('invttimeout','invttimeout'), - ('invttybuiltin','invttybuiltin'), - ('invttyfast','invttyfast'), - ('invtx','invtx'), - ('invudf','invudf'), - ('invundofile','invundofile'), - ('invvb','invvb'), - ('invvisualbell','invvisualbell'), - ('invwa','invwa'), - ('invwarn','invwarn'), - ('invwb','invwb'), - ('invweirdinvert','invweirdinvert'), - ('invwfh','invwfh'), - ('invwfw','invwfw'), - ('invwic','invwic'), - ('invwildignorecase','invwildignorecase'), - ('invwildmenu','invwildmenu'), - ('invwinfixheight','invwinfixheight'), - ('invwinfixwidth','invwinfixwidth'), - ('invwiv','invwiv'), - ('invwmnu','invwmnu'), - ('invwrap','invwrap'), - ('invwrapscan','invwrapscan'), - ('invwrite','invwrite'), - ('invwriteany','invwriteany'), - ('invwritebackup','invwritebackup'), - ('invws','invws'), - ('is','is'), - ('isf','isf'), - ('isfname','isfname'), - ('isi','isi'), - ('isident','isident'), - ('isk','isk'), - ('iskeyword','iskeyword'), - ('isp','isp'), - ('isprint','isprint'), - ('joinspaces','joinspaces'), - ('js','js'), - ('key','key'), - ('keymap','keymap'), - ('keymodel','keymodel'), - ('keywordprg','keywordprg'), - ('km','km'), - ('kmp','kmp'), - ('kp','kp'), - ('langmap','langmap'), - ('langmenu','langmenu'), - ('laststatus','laststatus'), - ('lazyredraw','lazyredraw'), - ('lbr','lbr'), - ('lcs','lcs'), - ('linebreak','linebreak'), - ('lines','lines'), - ('linespace','linespace'), - ('lisp','lisp'), - ('lispwords','lispwords'), - ('list','list'), - ('listchars','listchars'), - ('lm','lm'), - ('lmap','lmap'), - ('loadplugins','loadplugins'), - ('lpl','lpl'), - ('ls','ls'), - ('lsp','lsp'), - ('lw','lw'), - ('lz','lz'), - ('ma','ma'), - ('macatsui','macatsui'), - ('magic','magic'), - ('makeef','makeef'), - ('makeprg','makeprg'), - ('mat','mat'), - ('matchpairs','matchpairs'), - ('matchtime','matchtime'), - ('maxcombine','maxcombine'), - ('maxfuncdepth','maxfuncdepth'), - ('maxmapdepth','maxmapdepth'), - ('maxmem','maxmem'), - ('maxmempattern','maxmempattern'), - ('maxmemtot','maxmemtot'), - ('mco','mco'), - ('mef','mef'), - ('menuitems','menuitems'), - ('mfd','mfd'), - ('mh','mh'), - ('mis','mis'), - ('mkspellmem','mkspellmem'), - ('ml','ml'), - ('mls','mls'), - ('mm','mm'), - ('mmd','mmd'), - ('mmp','mmp'), - ('mmt','mmt'), - ('mod','mod'), - ('modeline','modeline'), - ('modelines','modelines'), - ('modifiable','modifiable'), - ('modified','modified'), - ('more','more'), - ('mouse','mouse'), - ('mousef','mousef'), - ('mousefocus','mousefocus'), - ('mousehide','mousehide'), - ('mousem','mousem'), - ('mousemodel','mousemodel'), - ('mouses','mouses'), - ('mouseshape','mouseshape'), - ('mouset','mouset'), - ('mousetime','mousetime'), - ('mp','mp'), - ('mps','mps'), - ('msm','msm'), - ('mzq','mzq'), - ('mzquantum','mzquantum'), - ('nf','nf'), - ('nnoremap','nnoremap'), - ('noacd','noacd'), - ('noai','noai'), - ('noakm','noakm'), - ('noallowrevins','noallowrevins'), - ('noaltkeymap','noaltkeymap'), - ('noanti','noanti'), - ('noantialias','noantialias'), - ('noar','noar'), - ('noarab','noarab'), - ('noarabic','noarabic'), - ('noarabicshape','noarabicshape'), - ('noari','noari'), - ('noarshape','noarshape'), - ('noautochdir','noautochdir'), - ('noautoindent','noautoindent'), - ('noautoread','noautoread'), - ('noautowrite','noautowrite'), - ('noautowriteall','noautowriteall'), - ('noaw','noaw'), - ('noawa','noawa'), - ('nobackup','nobackup'), - ('noballooneval','noballooneval'), - ('nobeval','nobeval'), - ('nobin','nobin'), - ('nobinary','nobinary'), - ('nobiosk','nobiosk'), - ('nobioskey','nobioskey'), - ('nobk','nobk'), - ('nobl','nobl'), - ('nobomb','nobomb'), - ('nobuflisted','nobuflisted'), - ('nocf','nocf'), - ('noci','noci'), - ('nocin','nocin'), - ('nocindent','nocindent'), - ('nocompatible','nocompatible'), - ('noconfirm','noconfirm'), - ('noconsk','noconsk'), - ('noconskey','noconskey'), - ('nocopyindent','nocopyindent'), - ('nocp','nocp'), - ('nocrb','nocrb'), - ('nocscoperelative','nocscoperelative'), - ('nocscopetag','nocscopetag'), - ('nocscopeverbose','nocscopeverbose'), - ('nocsre','nocsre'), - ('nocst','nocst'), - ('nocsverb','nocsverb'), - ('nocuc','nocuc'), - ('nocul','nocul'), - ('nocursorbind','nocursorbind'), - ('nocursorcolumn','nocursorcolumn'), - ('nocursorline','nocursorline'), - ('nodeco','nodeco'), - ('nodelcombine','nodelcombine'), - ('nodg','nodg'), - ('nodiff','nodiff'), - ('nodigraph','nodigraph'), - ('noea','noea'), - ('noeb','noeb'), - ('noed','noed'), - ('noedcompatible','noedcompatible'), - ('noek','noek'), - ('noendofline','noendofline'), - ('noeol','noeol'), - ('noequalalways','noequalalways'), - ('noerrorbells','noerrorbells'), - ('noesckeys','noesckeys'), - ('noet','noet'), - ('noex','noex'), - ('noexpandtab','noexpandtab'), - ('noexrc','noexrc'), - ('nofen','nofen'), - ('nofic','nofic'), - ('nofileignorecase','nofileignorecase'), - ('nofk','nofk'), - ('nofkmap','nofkmap'), - ('nofoldenable','nofoldenable'), - ('nogd','nogd'), - ('nogdefault','nogdefault'), - ('noguipty','noguipty'), - ('nohid','nohid'), - ('nohidden','nohidden'), - ('nohk','nohk'), - ('nohkmap','nohkmap'), - ('nohkmapp','nohkmapp'), - ('nohkp','nohkp'), - ('nohls','nohls'), - ('nohlsearch','nohlsearch'), - ('noic','noic'), - ('noicon','noicon'), - ('noignorecase','noignorecase'), - ('noim','noim'), - ('noimc','noimc'), - ('noimcmdline','noimcmdline'), - ('noimd','noimd'), - ('noimdisable','noimdisable'), - ('noincsearch','noincsearch'), - ('noinf','noinf'), - ('noinfercase','noinfercase'), - ('noinsertmode','noinsertmode'), - ('nois','nois'), - ('nojoinspaces','nojoinspaces'), - ('nojs','nojs'), - ('nolazyredraw','nolazyredraw'), - ('nolbr','nolbr'), - ('nolinebreak','nolinebreak'), - ('nolisp','nolisp'), - ('nolist','nolist'), - ('noloadplugins','noloadplugins'), - ('nolpl','nolpl'), - ('nolz','nolz'), - ('noma','noma'), - ('nomacatsui','nomacatsui'), - ('nomagic','nomagic'), - ('nomh','nomh'), - ('noml','noml'), - ('nomod','nomod'), - ('nomodeline','nomodeline'), - ('nomodifiable','nomodifiable'), - ('nomodified','nomodified'), - ('nomore','nomore'), - ('nomousef','nomousef'), - ('nomousefocus','nomousefocus'), - ('nomousehide','nomousehide'), - ('nonu','nonu'), - ('nonumber','nonumber'), - ('noodev','noodev'), - ('noopendevice','noopendevice'), - ('nopaste','nopaste'), - ('nopi','nopi'), - ('nopreserveindent','nopreserveindent'), - ('nopreviewwindow','nopreviewwindow'), - ('noprompt','noprompt'), - ('nopvw','nopvw'), - ('noreadonly','noreadonly'), - ('norelativenumber','norelativenumber'), - ('noremap','noremap'), - ('norestorescreen','norestorescreen'), - ('norevins','norevins'), - ('nori','nori'), - ('norightleft','norightleft'), - ('norl','norl'), - ('nornu','nornu'), - ('noro','noro'), - ('nors','nors'), - ('noru','noru'), - ('noruler','noruler'), - ('nosb','nosb'), - ('nosc','nosc'), - ('noscb','noscb'), - ('noscrollbind','noscrollbind'), - ('noscs','noscs'), - ('nosecure','nosecure'), - ('nosft','nosft'), - ('noshellslash','noshellslash'), - ('noshelltemp','noshelltemp'), - ('noshiftround','noshiftround'), - ('noshortname','noshortname'), - ('noshowcmd','noshowcmd'), - ('noshowfulltag','noshowfulltag'), - ('noshowmatch','noshowmatch'), - ('noshowmode','noshowmode'), - ('nosi','nosi'), - ('nosm','nosm'), - ('nosmartcase','nosmartcase'), - ('nosmartindent','nosmartindent'), - ('nosmarttab','nosmarttab'), - ('nosmd','nosmd'), - ('nosn','nosn'), - ('nosol','nosol'), - ('nospell','nospell'), - ('nosplitbelow','nosplitbelow'), - ('nosplitright','nosplitright'), - ('nospr','nospr'), - ('nosr','nosr'), - ('nossl','nossl'), - ('nosta','nosta'), - ('nostartofline','nostartofline'), - ('nostmp','nostmp'), - ('noswapfile','noswapfile'), - ('noswf','noswf'), - ('nota','nota'), - ('notagbsearch','notagbsearch'), - ('notagrelative','notagrelative'), - ('notagstack','notagstack'), - ('notbi','notbi'), - ('notbidi','notbidi'), - ('notbs','notbs'), - ('notermbidi','notermbidi'), - ('noterse','noterse'), - ('notextauto','notextauto'), - ('notextmode','notextmode'), - ('notf','notf'), - ('notgst','notgst'), - ('notildeop','notildeop'), - ('notimeout','notimeout'), - ('notitle','notitle'), - ('noto','noto'), - ('notop','notop'), - ('notr','notr'), - ('nottimeout','nottimeout'), - ('nottybuiltin','nottybuiltin'), - ('nottyfast','nottyfast'), - ('notx','notx'), - ('noudf','noudf'), - ('noundofile','noundofile'), - ('novb','novb'), - ('novisualbell','novisualbell'), - ('nowa','nowa'), - ('nowarn','nowarn'), - ('nowb','nowb'), - ('noweirdinvert','noweirdinvert'), - ('nowfh','nowfh'), - ('nowfw','nowfw'), - ('nowic','nowic'), - ('nowildignorecase','nowildignorecase'), - ('nowildmenu','nowildmenu'), - ('nowinfixheight','nowinfixheight'), - ('nowinfixwidth','nowinfixwidth'), - ('nowiv','nowiv'), - ('nowmnu','nowmnu'), - ('nowrap','nowrap'), - ('nowrapscan','nowrapscan'), - ('nowrite','nowrite'), - ('nowriteany','nowriteany'), - ('nowritebackup','nowritebackup'), - ('nows','nows'), - ('nrformats','nrformats'), - ('nu','nu'), - ('number','number'), - ('numberwidth','numberwidth'), - ('nuw','nuw'), - ('odev','odev'), - ('oft','oft'), - ('ofu','ofu'), - ('omnifunc','omnifunc'), - ('opendevice','opendevice'), - ('operatorfunc','operatorfunc'), - ('opfunc','opfunc'), - ('osfiletype','osfiletype'), - ('pa','pa'), - ('para','para'), - ('paragraphs','paragraphs'), - ('paste','paste'), - ('pastetoggle','pastetoggle'), - ('patchexpr','patchexpr'), - ('patchmode','patchmode'), - ('path','path'), - ('pdev','pdev'), - ('penc','penc'), - ('pex','pex'), - ('pexpr','pexpr'), - ('pfn','pfn'), - ('ph','ph'), - ('pheader','pheader'), - ('pi','pi'), - ('pm','pm'), - ('pmbcs','pmbcs'), - ('pmbfn','pmbfn'), - ('popt','popt'), - ('preserveindent','preserveindent'), - ('previewheight','previewheight'), - ('previewwindow','previewwindow'), - ('printdevice','printdevice'), - ('printencoding','printencoding'), - ('printexpr','printexpr'), - ('printfont','printfont'), - ('printheader','printheader'), - ('printmbcharset','printmbcharset'), - ('printmbfont','printmbfont'), - ('printoptions','printoptions'), - ('prompt','prompt'), - ('pt','pt'), - ('pumheight','pumheight'), - ('pvh','pvh'), - ('pvw','pvw'), - ('qe','qe'), - ('quoteescape','quoteescape'), - ('rdt','rdt'), - ('re','re'), - ('readonly','readonly'), - ('redrawtime','redrawtime'), - ('regexpengine','regexpengine'), - ('relativenumber','relativenumber'), - ('remap','remap'), - ('report','report'), - ('restorescreen','restorescreen'), - ('revins','revins'), - ('ri','ri'), - ('rightleft','rightleft'), - ('rightleftcmd','rightleftcmd'), - ('rl','rl'), - ('rlc','rlc'), - ('rnu','rnu'), - ('ro','ro'), - ('rs','rs'), - ('rtp','rtp'), - ('ru','ru'), - ('ruf','ruf'), - ('ruler','ruler'), - ('rulerformat','rulerformat'), - ('runtimepath','runtimepath'), - ('sb','sb'), - ('sbo','sbo'), - ('sbr','sbr'), - ('sc','sc'), - ('scb','scb'), - ('scr','scr'), - ('scroll','scroll'), - ('scrollbind','scrollbind'), - ('scrolljump','scrolljump'), - ('scrolloff','scrolloff'), - ('scrollopt','scrollopt'), - ('scs','scs'), - ('sect','sect'), - ('sections','sections'), - ('secure','secure'), - ('sel','sel'), - ('selection','selection'), - ('selectmode','selectmode'), - ('sessionoptions','sessionoptions'), - ('sft','sft'), - ('sh','sh'), - ('shcf','shcf'), - ('shell','shell'), - ('shellcmdflag','shellcmdflag'), - ('shellpipe','shellpipe'), - ('shellquote','shellquote'), - ('shellredir','shellredir'), - ('shellslash','shellslash'), - ('shelltemp','shelltemp'), - ('shelltype','shelltype'), - ('shellxescape','shellxescape'), - ('shellxquote','shellxquote'), - ('shiftround','shiftround'), - ('shiftwidth','shiftwidth'), - ('shm','shm'), - ('shortmess','shortmess'), - ('shortname','shortname'), - ('showbreak','showbreak'), - ('showcmd','showcmd'), - ('showfulltag','showfulltag'), - ('showmatch','showmatch'), - ('showmode','showmode'), - ('showtabline','showtabline'), - ('shq','shq'), - ('si','si'), - ('sidescroll','sidescroll'), - ('sidescrolloff','sidescrolloff'), - ('siso','siso'), - ('sj','sj'), - ('slm','slm'), - ('sm','sm'), - ('smartcase','smartcase'), - ('smartindent','smartindent'), - ('smarttab','smarttab'), - ('smc','smc'), - ('smd','smd'), - ('sn','sn'), - ('so','so'), - ('softtabstop','softtabstop'), - ('sol','sol'), - ('sp','sp'), - ('spc','spc'), - ('spell','spell'), - ('spellcapcheck','spellcapcheck'), - ('spellfile','spellfile'), - ('spelllang','spelllang'), - ('spellsuggest','spellsuggest'), - ('spf','spf'), - ('spl','spl'), - ('splitbelow','splitbelow'), - ('splitright','splitright'), - ('spr','spr'), - ('sps','sps'), - ('sr','sr'), - ('srr','srr'), - ('ss','ss'), - ('ssl','ssl'), - ('ssop','ssop'), - ('st','st'), - ('sta','sta'), - ('stal','stal'), - ('startofline','startofline'), - ('statusline','statusline'), - ('stl','stl'), - ('stmp','stmp'), - ('sts','sts'), - ('su','su'), - ('sua','sua'), - ('suffixes','suffixes'), - ('suffixesadd','suffixesadd'), - ('sw','sw'), - ('swapfile','swapfile'), - ('swapsync','swapsync'), - ('swb','swb'), - ('swf','swf'), - ('switchbuf','switchbuf'), - ('sws','sws'), - ('sxe','sxe'), - ('sxq','sxq'), - ('syn','syn'), - ('synmaxcol','synmaxcol'), - ('syntax','syntax'), - ('t_AB','t_AB'), - ('t_AF','t_AF'), - ('t_AL','t_AL'), - ('t_CS','t_CS'), - ('t_CV','t_CV'), - ('t_Ce','t_Ce'), - ('t_Co','t_Co'), - ('t_Cs','t_Cs'), - ('t_DL','t_DL'), - ('t_EI','t_EI'), - ('t_F1','t_F1'), - ('t_F2','t_F2'), - ('t_F3','t_F3'), - ('t_F4','t_F4'), - ('t_F5','t_F5'), - ('t_F6','t_F6'), - ('t_F7','t_F7'), - ('t_F8','t_F8'), - ('t_F9','t_F9'), - ('t_IE','t_IE'), - ('t_IS','t_IS'), - ('t_K1','t_K1'), - ('t_K3','t_K3'), - ('t_K4','t_K4'), - ('t_K5','t_K5'), - ('t_K6','t_K6'), - ('t_K7','t_K7'), - ('t_K8','t_K8'), - ('t_K9','t_K9'), - ('t_KA','t_KA'), - ('t_KB','t_KB'), - ('t_KC','t_KC'), - ('t_KD','t_KD'), - ('t_KE','t_KE'), - ('t_KF','t_KF'), - ('t_KG','t_KG'), - ('t_KH','t_KH'), - ('t_KI','t_KI'), - ('t_KJ','t_KJ'), - ('t_KK','t_KK'), - ('t_KL','t_KL'), - ('t_RI','t_RI'), - ('t_RV','t_RV'), - ('t_SI','t_SI'), - ('t_Sb','t_Sb'), - ('t_Sf','t_Sf'), - ('t_WP','t_WP'), - ('t_WS','t_WS'), - ('t_ZH','t_ZH'), - ('t_ZR','t_ZR'), - ('t_al','t_al'), - ('t_bc','t_bc'), - ('t_cd','t_cd'), - ('t_ce','t_ce'), - ('t_cl','t_cl'), - ('t_cm','t_cm'), - ('t_cs','t_cs'), - ('t_da','t_da'), - ('t_db','t_db'), - ('t_dl','t_dl'), - ('t_fs','t_fs'), - ('t_k1','t_k1'), - ('t_k2','t_k2'), - ('t_k3','t_k3'), - ('t_k4','t_k4'), - ('t_k5','t_k5'), - ('t_k6','t_k6'), - ('t_k7','t_k7'), - ('t_k8','t_k8'), - ('t_k9','t_k9'), - ('t_kB','t_kB'), - ('t_kD','t_kD'), - ('t_kI','t_kI'), - ('t_kN','t_kN'), - ('t_kP','t_kP'), - ('t_kb','t_kb'), - ('t_kd','t_kd'), - ('t_ke','t_ke'), - ('t_kh','t_kh'), - ('t_kl','t_kl'), - ('t_kr','t_kr'), - ('t_ks','t_ks'), - ('t_ku','t_ku'), - ('t_le','t_le'), - ('t_mb','t_mb'), - ('t_md','t_md'), - ('t_me','t_me'), - ('t_mr','t_mr'), - ('t_ms','t_ms'), - ('t_nd','t_nd'), - ('t_op','t_op'), - ('t_se','t_se'), - ('t_so','t_so'), - ('t_sr','t_sr'), - ('t_te','t_te'), - ('t_ti','t_ti'), - ('t_ts','t_ts'), - ('t_u7','t_u7'), - ('t_ue','t_ue'), - ('t_us','t_us'), - ('t_ut','t_ut'), - ('t_vb','t_vb'), - ('t_ve','t_ve'), - ('t_vi','t_vi'), - ('t_vs','t_vs'), - ('t_xs','t_xs'), - ('ta','ta'), - ('tabline','tabline'), - ('tabpagemax','tabpagemax'), - ('tabstop','tabstop'), - ('tag','tag'), - ('tagbsearch','tagbsearch'), - ('taglength','taglength'), - ('tagrelative','tagrelative'), - ('tags','tags'), - ('tagstack','tagstack'), - ('tal','tal'), - ('tb','tb'), - ('tbi','tbi'), - ('tbidi','tbidi'), - ('tbis','tbis'), - ('tbs','tbs'), - ('tenc','tenc'), - ('term','term'), - ('termbidi','termbidi'), - ('termencoding','termencoding'), - ('terse','terse'), - ('textauto','textauto'), - ('textmode','textmode'), - ('textwidth','textwidth'), - ('tf','tf'), - ('tgst','tgst'), - ('thesaurus','thesaurus'), - ('tildeop','tildeop'), - ('timeout','timeout'), - ('timeoutlen','timeoutlen'), - ('title','title'), - ('titlelen','titlelen'), - ('titleold','titleold'), - ('titlestring','titlestring'), - ('tl','tl'), - ('tm','tm'), - ('to','to'), - ('toolbar','toolbar'), - ('toolbariconsize','toolbariconsize'), - ('top','top'), - ('tpm','tpm'), - ('tr','tr'), - ('ts','ts'), - ('tsl','tsl'), - ('tsr','tsr'), - ('ttimeout','ttimeout'), - ('ttimeoutlen','ttimeoutlen'), - ('ttm','ttm'), - ('tty','tty'), - ('ttybuiltin','ttybuiltin'), - ('ttyfast','ttyfast'), - ('ttym','ttym'), - ('ttymouse','ttymouse'), - ('ttyscroll','ttyscroll'), - ('ttytype','ttytype'), - ('tw','tw'), - ('tx','tx'), - ('uc','uc'), - ('udf','udf'), - ('udir','udir'), - ('ul','ul'), - ('undodir','undodir'), - ('undofile','undofile'), - ('undolevels','undolevels'), - ('undoreload','undoreload'), - ('updatecount','updatecount'), - ('updatetime','updatetime'), - ('ur','ur'), - ('ut','ut'), - ('vb','vb'), - ('vbs','vbs'), - ('vdir','vdir'), - ('ve','ve'), - ('verbose','verbose'), - ('verbosefile','verbosefile'), - ('vfile','vfile'), - ('vi','vi'), - ('viewdir','viewdir'), - ('viewoptions','viewoptions'), - ('viminfo','viminfo'), - ('virtualedit','virtualedit'), - ('visualbell','visualbell'), - ('vnoremap','vnoremap'), - ('vop','vop'), - ('wa','wa'), - ('wak','wak'), - ('warn','warn'), - ('wb','wb'), - ('wc','wc'), - ('wcm','wcm'), - ('wd','wd'), - ('weirdinvert','weirdinvert'), - ('wfh','wfh'), - ('wfw','wfw'), - ('wh','wh'), - ('whichwrap','whichwrap'), - ('wi','wi'), - ('wic','wic'), - ('wig','wig'), - ('wildchar','wildchar'), - ('wildcharm','wildcharm'), - ('wildignore','wildignore'), - ('wildignorecase','wildignorecase'), - ('wildmenu','wildmenu'), - ('wildmode','wildmode'), - ('wildoptions','wildoptions'), - ('wim','wim'), - ('winaltkeys','winaltkeys'), - ('window','window'), - ('winfixheight','winfixheight'), - ('winfixwidth','winfixwidth'), - ('winheight','winheight'), - ('winminheight','winminheight'), - ('winminwidth','winminwidth'), - ('winwidth','winwidth'), - ('wiv','wiv'), - ('wiw','wiw'), - ('wm','wm'), - ('wmh','wmh'), - ('wmnu','wmnu'), - ('wmw','wmw'), - ('wop','wop'), - ('wrap','wrap'), - ('wrapmargin','wrapmargin'), - ('wrapscan','wrapscan'), - ('write','write'), - ('writeany','writeany'), - ('writebackup','writebackup'), - ('writedelay','writedelay'), - ('ws','ws'), - ('ww','ww'), + ("acd", "acd"), + ("ai", "ai"), + ("akm", "akm"), + ("al", "al"), + ("aleph", "aleph"), + ("allowrevins", "allowrevins"), + ("altkeymap", "altkeymap"), + ("ambiwidth", "ambiwidth"), + ("ambw", "ambw"), + ("anti", "anti"), + ("antialias", "antialias"), + ("ar", "ar"), + ("arab", "arab"), + ("arabic", "arabic"), + ("arabicshape", "arabicshape"), + ("ari", "ari"), + ("arshape", "arshape"), + ("autochdir", "autochdir"), + ("autoindent", "autoindent"), + ("autoread", "autoread"), + ("autowrite", "autowrite"), + ("autowriteall", "autowriteall"), + ("aw", "aw"), + ("awa", "awa"), + ("background", "background"), + ("backspace", "backspace"), + ("backup", "backup"), + ("backupcopy", "backupcopy"), + ("backupdir", "backupdir"), + ("backupext", "backupext"), + ("backupskip", "backupskip"), + ("balloondelay", "balloondelay"), + ("ballooneval", "ballooneval"), + ("balloonexpr", "balloonexpr"), + ("bdir", "bdir"), + ("bdlay", "bdlay"), + ("beval", "beval"), + ("bex", "bex"), + ("bexpr", "bexpr"), + ("bg", "bg"), + ("bh", "bh"), + ("bin", "bin"), + ("binary", "binary"), + ("biosk", "biosk"), + ("bioskey", "bioskey"), + ("bk", "bk"), + ("bkc", "bkc"), + ("bl", "bl"), + ("bomb", "bomb"), + ("breakat", "breakat"), + ("brk", "brk"), + ("browsedir", "browsedir"), + ("bs", "bs"), + ("bsdir", "bsdir"), + ("bsk", "bsk"), + ("bt", "bt"), + ("bufhidden", "bufhidden"), + ("buflisted", "buflisted"), + ("buftype", "buftype"), + ("casemap", "casemap"), + ("cb", "cb"), + ("cc", "cc"), + ("ccv", "ccv"), + ("cd", "cd"), + ("cdpath", "cdpath"), + ("cedit", "cedit"), + ("cf", "cf"), + ("cfu", "cfu"), + ("ch", "ch"), + ("charconvert", "charconvert"), + ("ci", "ci"), + ("cin", "cin"), + ("cindent", "cindent"), + ("cink", "cink"), + ("cinkeys", "cinkeys"), + ("cino", "cino"), + ("cinoptions", "cinoptions"), + ("cinw", "cinw"), + ("cinwords", "cinwords"), + ("clipboard", "clipboard"), + ("cmdheight", "cmdheight"), + ("cmdwinheight", "cmdwinheight"), + ("cmp", "cmp"), + ("cms", "cms"), + ("co", "co"), + ("cocu", "cocu"), + ("cole", "cole"), + ("colorcolumn", "colorcolumn"), + ("columns", "columns"), + ("com", "com"), + ("comments", "comments"), + ("commentstring", "commentstring"), + ("compatible", "compatible"), + ("complete", "complete"), + ("completefunc", "completefunc"), + ("completeopt", "completeopt"), + ("concealcursor", "concealcursor"), + ("conceallevel", "conceallevel"), + ("confirm", "confirm"), + ("consk", "consk"), + ("conskey", "conskey"), + ("copyindent", "copyindent"), + ("cot", "cot"), + ("cp", "cp"), + ("cpo", "cpo"), + ("cpoptions", "cpoptions"), + ("cpt", "cpt"), + ("crb", "crb"), + ("cryptmethod", "cryptmethod"), + ("cscopepathcomp", "cscopepathcomp"), + ("cscopeprg", "cscopeprg"), + ("cscopequickfix", "cscopequickfix"), + ("cscoperelative", "cscoperelative"), + ("cscopetag", "cscopetag"), + ("cscopetagorder", "cscopetagorder"), + ("cscopeverbose", "cscopeverbose"), + ("cspc", "cspc"), + ("csprg", "csprg"), + ("csqf", "csqf"), + ("csre", "csre"), + ("cst", "cst"), + ("csto", "csto"), + ("csverb", "csverb"), + ("cuc", "cuc"), + ("cul", "cul"), + ("cursorbind", "cursorbind"), + ("cursorcolumn", "cursorcolumn"), + ("cursorline", "cursorline"), + ("cwh", "cwh"), + ("debug", "debug"), + ("deco", "deco"), + ("def", "def"), + ("define", "define"), + ("delcombine", "delcombine"), + ("dex", "dex"), + ("dg", "dg"), + ("dict", "dict"), + ("dictionary", "dictionary"), + ("diff", "diff"), + ("diffexpr", "diffexpr"), + ("diffopt", "diffopt"), + ("digraph", "digraph"), + ("dip", "dip"), + ("dir", "dir"), + ("directory", "directory"), + ("display", "display"), + ("dy", "dy"), + ("ea", "ea"), + ("ead", "ead"), + ("eadirection", "eadirection"), + ("eb", "eb"), + ("ed", "ed"), + ("edcompatible", "edcompatible"), + ("ef", "ef"), + ("efm", "efm"), + ("ei", "ei"), + ("ek", "ek"), + ("enc", "enc"), + ("encoding", "encoding"), + ("endofline", "endofline"), + ("eol", "eol"), + ("ep", "ep"), + ("equalalways", "equalalways"), + ("equalprg", "equalprg"), + ("errorbells", "errorbells"), + ("errorfile", "errorfile"), + ("errorformat", "errorformat"), + ("esckeys", "esckeys"), + ("et", "et"), + ("eventignore", "eventignore"), + ("ex", "ex"), + ("expandtab", "expandtab"), + ("exrc", "exrc"), + ("fcl", "fcl"), + ("fcs", "fcs"), + ("fdc", "fdc"), + ("fde", "fde"), + ("fdi", "fdi"), + ("fdl", "fdl"), + ("fdls", "fdls"), + ("fdm", "fdm"), + ("fdn", "fdn"), + ("fdo", "fdo"), + ("fdt", "fdt"), + ("fen", "fen"), + ("fenc", "fenc"), + ("fencs", "fencs"), + ("fex", "fex"), + ("ff", "ff"), + ("ffs", "ffs"), + ("fic", "fic"), + ("fileencoding", "fileencoding"), + ("fileencodings", "fileencodings"), + ("fileformat", "fileformat"), + ("fileformats", "fileformats"), + ("fileignorecase", "fileignorecase"), + ("filetype", "filetype"), + ("fillchars", "fillchars"), + ("fk", "fk"), + ("fkmap", "fkmap"), + ("flp", "flp"), + ("fml", "fml"), + ("fmr", "fmr"), + ("fo", "fo"), + ("foldclose", "foldclose"), + ("foldcolumn", "foldcolumn"), + ("foldenable", "foldenable"), + ("foldexpr", "foldexpr"), + ("foldignore", "foldignore"), + ("foldlevel", "foldlevel"), + ("foldlevelstart", "foldlevelstart"), + ("foldmarker", "foldmarker"), + ("foldmethod", "foldmethod"), + ("foldminlines", "foldminlines"), + ("foldnestmax", "foldnestmax"), + ("foldopen", "foldopen"), + ("foldtext", "foldtext"), + ("formatexpr", "formatexpr"), + ("formatlistpat", "formatlistpat"), + ("formatoptions", "formatoptions"), + ("formatprg", "formatprg"), + ("fp", "fp"), + ("fs", "fs"), + ("fsync", "fsync"), + ("ft", "ft"), + ("gcr", "gcr"), + ("gd", "gd"), + ("gdefault", "gdefault"), + ("gfm", "gfm"), + ("gfn", "gfn"), + ("gfs", "gfs"), + ("gfw", "gfw"), + ("ghr", "ghr"), + ("go", "go"), + ("gp", "gp"), + ("grepformat", "grepformat"), + ("grepprg", "grepprg"), + ("gtl", "gtl"), + ("gtt", "gtt"), + ("guicursor", "guicursor"), + ("guifont", "guifont"), + ("guifontset", "guifontset"), + ("guifontwide", "guifontwide"), + ("guiheadroom", "guiheadroom"), + ("guioptions", "guioptions"), + ("guipty", "guipty"), + ("guitablabel", "guitablabel"), + ("guitabtooltip", "guitabtooltip"), + ("helpfile", "helpfile"), + ("helpheight", "helpheight"), + ("helplang", "helplang"), + ("hf", "hf"), + ("hh", "hh"), + ("hi", "hi"), + ("hid", "hid"), + ("hidden", "hidden"), + ("highlight", "highlight"), + ("history", "history"), + ("hk", "hk"), + ("hkmap", "hkmap"), + ("hkmapp", "hkmapp"), + ("hkp", "hkp"), + ("hl", "hl"), + ("hlg", "hlg"), + ("hls", "hls"), + ("hlsearch", "hlsearch"), + ("ic", "ic"), + ("icon", "icon"), + ("iconstring", "iconstring"), + ("ignorecase", "ignorecase"), + ("im", "im"), + ("imactivatefunc", "imactivatefunc"), + ("imactivatekey", "imactivatekey"), + ("imaf", "imaf"), + ("imak", "imak"), + ("imc", "imc"), + ("imcmdline", "imcmdline"), + ("imd", "imd"), + ("imdisable", "imdisable"), + ("imi", "imi"), + ("iminsert", "iminsert"), + ("ims", "ims"), + ("imsearch", "imsearch"), + ("imsf", "imsf"), + ("imstatusfunc", "imstatusfunc"), + ("inc", "inc"), + ("include", "include"), + ("includeexpr", "includeexpr"), + ("incsearch", "incsearch"), + ("inde", "inde"), + ("indentexpr", "indentexpr"), + ("indentkeys", "indentkeys"), + ("indk", "indk"), + ("inex", "inex"), + ("inf", "inf"), + ("infercase", "infercase"), + ("inoremap", "inoremap"), + ("insertmode", "insertmode"), + ("invacd", "invacd"), + ("invai", "invai"), + ("invakm", "invakm"), + ("invallowrevins", "invallowrevins"), + ("invaltkeymap", "invaltkeymap"), + ("invanti", "invanti"), + ("invantialias", "invantialias"), + ("invar", "invar"), + ("invarab", "invarab"), + ("invarabic", "invarabic"), + ("invarabicshape", "invarabicshape"), + ("invari", "invari"), + ("invarshape", "invarshape"), + ("invautochdir", "invautochdir"), + ("invautoindent", "invautoindent"), + ("invautoread", "invautoread"), + ("invautowrite", "invautowrite"), + ("invautowriteall", "invautowriteall"), + ("invaw", "invaw"), + ("invawa", "invawa"), + ("invbackup", "invbackup"), + ("invballooneval", "invballooneval"), + ("invbeval", "invbeval"), + ("invbin", "invbin"), + ("invbinary", "invbinary"), + ("invbiosk", "invbiosk"), + ("invbioskey", "invbioskey"), + ("invbk", "invbk"), + ("invbl", "invbl"), + ("invbomb", "invbomb"), + ("invbuflisted", "invbuflisted"), + ("invcf", "invcf"), + ("invci", "invci"), + ("invcin", "invcin"), + ("invcindent", "invcindent"), + ("invcompatible", "invcompatible"), + ("invconfirm", "invconfirm"), + ("invconsk", "invconsk"), + ("invconskey", "invconskey"), + ("invcopyindent", "invcopyindent"), + ("invcp", "invcp"), + ("invcrb", "invcrb"), + ("invcscoperelative", "invcscoperelative"), + ("invcscopetag", "invcscopetag"), + ("invcscopeverbose", "invcscopeverbose"), + ("invcsre", "invcsre"), + ("invcst", "invcst"), + ("invcsverb", "invcsverb"), + ("invcuc", "invcuc"), + ("invcul", "invcul"), + ("invcursorbind", "invcursorbind"), + ("invcursorcolumn", "invcursorcolumn"), + ("invcursorline", "invcursorline"), + ("invdeco", "invdeco"), + ("invdelcombine", "invdelcombine"), + ("invdg", "invdg"), + ("invdiff", "invdiff"), + ("invdigraph", "invdigraph"), + ("invea", "invea"), + ("inveb", "inveb"), + ("inved", "inved"), + ("invedcompatible", "invedcompatible"), + ("invek", "invek"), + ("invendofline", "invendofline"), + ("inveol", "inveol"), + ("invequalalways", "invequalalways"), + ("inverrorbells", "inverrorbells"), + ("invesckeys", "invesckeys"), + ("invet", "invet"), + ("invex", "invex"), + ("invexpandtab", "invexpandtab"), + ("invexrc", "invexrc"), + ("invfen", "invfen"), + ("invfic", "invfic"), + ("invfileignorecase", "invfileignorecase"), + ("invfk", "invfk"), + ("invfkmap", "invfkmap"), + ("invfoldenable", "invfoldenable"), + ("invgd", "invgd"), + ("invgdefault", "invgdefault"), + ("invguipty", "invguipty"), + ("invhid", "invhid"), + ("invhidden", "invhidden"), + ("invhk", "invhk"), + ("invhkmap", "invhkmap"), + ("invhkmapp", "invhkmapp"), + ("invhkp", "invhkp"), + ("invhls", "invhls"), + ("invhlsearch", "invhlsearch"), + ("invic", "invic"), + ("invicon", "invicon"), + ("invignorecase", "invignorecase"), + ("invim", "invim"), + ("invimc", "invimc"), + ("invimcmdline", "invimcmdline"), + ("invimd", "invimd"), + ("invimdisable", "invimdisable"), + ("invincsearch", "invincsearch"), + ("invinf", "invinf"), + ("invinfercase", "invinfercase"), + ("invinsertmode", "invinsertmode"), + ("invis", "invis"), + ("invjoinspaces", "invjoinspaces"), + ("invjs", "invjs"), + ("invlazyredraw", "invlazyredraw"), + ("invlbr", "invlbr"), + ("invlinebreak", "invlinebreak"), + ("invlisp", "invlisp"), + ("invlist", "invlist"), + ("invloadplugins", "invloadplugins"), + ("invlpl", "invlpl"), + ("invlz", "invlz"), + ("invma", "invma"), + ("invmacatsui", "invmacatsui"), + ("invmagic", "invmagic"), + ("invmh", "invmh"), + ("invml", "invml"), + ("invmod", "invmod"), + ("invmodeline", "invmodeline"), + ("invmodifiable", "invmodifiable"), + ("invmodified", "invmodified"), + ("invmore", "invmore"), + ("invmousef", "invmousef"), + ("invmousefocus", "invmousefocus"), + ("invmousehide", "invmousehide"), + ("invnu", "invnu"), + ("invnumber", "invnumber"), + ("invodev", "invodev"), + ("invopendevice", "invopendevice"), + ("invpaste", "invpaste"), + ("invpi", "invpi"), + ("invpreserveindent", "invpreserveindent"), + ("invpreviewwindow", "invpreviewwindow"), + ("invprompt", "invprompt"), + ("invpvw", "invpvw"), + ("invreadonly", "invreadonly"), + ("invrelativenumber", "invrelativenumber"), + ("invremap", "invremap"), + ("invrestorescreen", "invrestorescreen"), + ("invrevins", "invrevins"), + ("invri", "invri"), + ("invrightleft", "invrightleft"), + ("invrl", "invrl"), + ("invrnu", "invrnu"), + ("invro", "invro"), + ("invrs", "invrs"), + ("invru", "invru"), + ("invruler", "invruler"), + ("invsb", "invsb"), + ("invsc", "invsc"), + ("invscb", "invscb"), + ("invscrollbind", "invscrollbind"), + ("invscs", "invscs"), + ("invsecure", "invsecure"), + ("invsft", "invsft"), + ("invshellslash", "invshellslash"), + ("invshelltemp", "invshelltemp"), + ("invshiftround", "invshiftround"), + ("invshortname", "invshortname"), + ("invshowcmd", "invshowcmd"), + ("invshowfulltag", "invshowfulltag"), + ("invshowmatch", "invshowmatch"), + ("invshowmode", "invshowmode"), + ("invsi", "invsi"), + ("invsm", "invsm"), + ("invsmartcase", "invsmartcase"), + ("invsmartindent", "invsmartindent"), + ("invsmarttab", "invsmarttab"), + ("invsmd", "invsmd"), + ("invsn", "invsn"), + ("invsol", "invsol"), + ("invspell", "invspell"), + ("invsplitbelow", "invsplitbelow"), + ("invsplitright", "invsplitright"), + ("invspr", "invspr"), + ("invsr", "invsr"), + ("invssl", "invssl"), + ("invsta", "invsta"), + ("invstartofline", "invstartofline"), + ("invstmp", "invstmp"), + ("invswapfile", "invswapfile"), + ("invswf", "invswf"), + ("invta", "invta"), + ("invtagbsearch", "invtagbsearch"), + ("invtagrelative", "invtagrelative"), + ("invtagstack", "invtagstack"), + ("invtbi", "invtbi"), + ("invtbidi", "invtbidi"), + ("invtbs", "invtbs"), + ("invtermbidi", "invtermbidi"), + ("invterse", "invterse"), + ("invtextauto", "invtextauto"), + ("invtextmode", "invtextmode"), + ("invtf", "invtf"), + ("invtgst", "invtgst"), + ("invtildeop", "invtildeop"), + ("invtimeout", "invtimeout"), + ("invtitle", "invtitle"), + ("invto", "invto"), + ("invtop", "invtop"), + ("invtr", "invtr"), + ("invttimeout", "invttimeout"), + ("invttybuiltin", "invttybuiltin"), + ("invttyfast", "invttyfast"), + ("invtx", "invtx"), + ("invudf", "invudf"), + ("invundofile", "invundofile"), + ("invvb", "invvb"), + ("invvisualbell", "invvisualbell"), + ("invwa", "invwa"), + ("invwarn", "invwarn"), + ("invwb", "invwb"), + ("invweirdinvert", "invweirdinvert"), + ("invwfh", "invwfh"), + ("invwfw", "invwfw"), + ("invwic", "invwic"), + ("invwildignorecase", "invwildignorecase"), + ("invwildmenu", "invwildmenu"), + ("invwinfixheight", "invwinfixheight"), + ("invwinfixwidth", "invwinfixwidth"), + ("invwiv", "invwiv"), + ("invwmnu", "invwmnu"), + ("invwrap", "invwrap"), + ("invwrapscan", "invwrapscan"), + ("invwrite", "invwrite"), + ("invwriteany", "invwriteany"), + ("invwritebackup", "invwritebackup"), + ("invws", "invws"), + ("is", "is"), + ("isf", "isf"), + ("isfname", "isfname"), + ("isi", "isi"), + ("isident", "isident"), + ("isk", "isk"), + ("iskeyword", "iskeyword"), + ("isp", "isp"), + ("isprint", "isprint"), + ("joinspaces", "joinspaces"), + ("js", "js"), + ("key", "key"), + ("keymap", "keymap"), + ("keymodel", "keymodel"), + ("keywordprg", "keywordprg"), + ("km", "km"), + ("kmp", "kmp"), + ("kp", "kp"), + ("langmap", "langmap"), + ("langmenu", "langmenu"), + ("laststatus", "laststatus"), + ("lazyredraw", "lazyredraw"), + ("lbr", "lbr"), + ("lcs", "lcs"), + ("linebreak", "linebreak"), + ("lines", "lines"), + ("linespace", "linespace"), + ("lisp", "lisp"), + ("lispwords", "lispwords"), + ("list", "list"), + ("listchars", "listchars"), + ("lm", "lm"), + ("lmap", "lmap"), + ("loadplugins", "loadplugins"), + ("lpl", "lpl"), + ("ls", "ls"), + ("lsp", "lsp"), + ("lw", "lw"), + ("lz", "lz"), + ("ma", "ma"), + ("macatsui", "macatsui"), + ("magic", "magic"), + ("makeef", "makeef"), + ("makeprg", "makeprg"), + ("mat", "mat"), + ("matchpairs", "matchpairs"), + ("matchtime", "matchtime"), + ("maxcombine", "maxcombine"), + ("maxfuncdepth", "maxfuncdepth"), + ("maxmapdepth", "maxmapdepth"), + ("maxmem", "maxmem"), + ("maxmempattern", "maxmempattern"), + ("maxmemtot", "maxmemtot"), + ("mco", "mco"), + ("mef", "mef"), + ("menuitems", "menuitems"), + ("mfd", "mfd"), + ("mh", "mh"), + ("mis", "mis"), + ("mkspellmem", "mkspellmem"), + ("ml", "ml"), + ("mls", "mls"), + ("mm", "mm"), + ("mmd", "mmd"), + ("mmp", "mmp"), + ("mmt", "mmt"), + ("mod", "mod"), + ("modeline", "modeline"), + ("modelines", "modelines"), + ("modifiable", "modifiable"), + ("modified", "modified"), + ("more", "more"), + ("mouse", "mouse"), + ("mousef", "mousef"), + ("mousefocus", "mousefocus"), + ("mousehide", "mousehide"), + ("mousem", "mousem"), + ("mousemodel", "mousemodel"), + ("mouses", "mouses"), + ("mouseshape", "mouseshape"), + ("mouset", "mouset"), + ("mousetime", "mousetime"), + ("mp", "mp"), + ("mps", "mps"), + ("msm", "msm"), + ("mzq", "mzq"), + ("mzquantum", "mzquantum"), + ("nf", "nf"), + ("nnoremap", "nnoremap"), + ("noacd", "noacd"), + ("noai", "noai"), + ("noakm", "noakm"), + ("noallowrevins", "noallowrevins"), + ("noaltkeymap", "noaltkeymap"), + ("noanti", "noanti"), + ("noantialias", "noantialias"), + ("noar", "noar"), + ("noarab", "noarab"), + ("noarabic", "noarabic"), + ("noarabicshape", "noarabicshape"), + ("noari", "noari"), + ("noarshape", "noarshape"), + ("noautochdir", "noautochdir"), + ("noautoindent", "noautoindent"), + ("noautoread", "noautoread"), + ("noautowrite", "noautowrite"), + ("noautowriteall", "noautowriteall"), + ("noaw", "noaw"), + ("noawa", "noawa"), + ("nobackup", "nobackup"), + ("noballooneval", "noballooneval"), + ("nobeval", "nobeval"), + ("nobin", "nobin"), + ("nobinary", "nobinary"), + ("nobiosk", "nobiosk"), + ("nobioskey", "nobioskey"), + ("nobk", "nobk"), + ("nobl", "nobl"), + ("nobomb", "nobomb"), + ("nobuflisted", "nobuflisted"), + ("nocf", "nocf"), + ("noci", "noci"), + ("nocin", "nocin"), + ("nocindent", "nocindent"), + ("nocompatible", "nocompatible"), + ("noconfirm", "noconfirm"), + ("noconsk", "noconsk"), + ("noconskey", "noconskey"), + ("nocopyindent", "nocopyindent"), + ("nocp", "nocp"), + ("nocrb", "nocrb"), + ("nocscoperelative", "nocscoperelative"), + ("nocscopetag", "nocscopetag"), + ("nocscopeverbose", "nocscopeverbose"), + ("nocsre", "nocsre"), + ("nocst", "nocst"), + ("nocsverb", "nocsverb"), + ("nocuc", "nocuc"), + ("nocul", "nocul"), + ("nocursorbind", "nocursorbind"), + ("nocursorcolumn", "nocursorcolumn"), + ("nocursorline", "nocursorline"), + ("nodeco", "nodeco"), + ("nodelcombine", "nodelcombine"), + ("nodg", "nodg"), + ("nodiff", "nodiff"), + ("nodigraph", "nodigraph"), + ("noea", "noea"), + ("noeb", "noeb"), + ("noed", "noed"), + ("noedcompatible", "noedcompatible"), + ("noek", "noek"), + ("noendofline", "noendofline"), + ("noeol", "noeol"), + ("noequalalways", "noequalalways"), + ("noerrorbells", "noerrorbells"), + ("noesckeys", "noesckeys"), + ("noet", "noet"), + ("noex", "noex"), + ("noexpandtab", "noexpandtab"), + ("noexrc", "noexrc"), + ("nofen", "nofen"), + ("nofic", "nofic"), + ("nofileignorecase", "nofileignorecase"), + ("nofk", "nofk"), + ("nofkmap", "nofkmap"), + ("nofoldenable", "nofoldenable"), + ("nogd", "nogd"), + ("nogdefault", "nogdefault"), + ("noguipty", "noguipty"), + ("nohid", "nohid"), + ("nohidden", "nohidden"), + ("nohk", "nohk"), + ("nohkmap", "nohkmap"), + ("nohkmapp", "nohkmapp"), + ("nohkp", "nohkp"), + ("nohls", "nohls"), + ("nohlsearch", "nohlsearch"), + ("noic", "noic"), + ("noicon", "noicon"), + ("noignorecase", "noignorecase"), + ("noim", "noim"), + ("noimc", "noimc"), + ("noimcmdline", "noimcmdline"), + ("noimd", "noimd"), + ("noimdisable", "noimdisable"), + ("noincsearch", "noincsearch"), + ("noinf", "noinf"), + ("noinfercase", "noinfercase"), + ("noinsertmode", "noinsertmode"), + ("nois", "nois"), + ("nojoinspaces", "nojoinspaces"), + ("nojs", "nojs"), + ("nolazyredraw", "nolazyredraw"), + ("nolbr", "nolbr"), + ("nolinebreak", "nolinebreak"), + ("nolisp", "nolisp"), + ("nolist", "nolist"), + ("noloadplugins", "noloadplugins"), + ("nolpl", "nolpl"), + ("nolz", "nolz"), + ("noma", "noma"), + ("nomacatsui", "nomacatsui"), + ("nomagic", "nomagic"), + ("nomh", "nomh"), + ("noml", "noml"), + ("nomod", "nomod"), + ("nomodeline", "nomodeline"), + ("nomodifiable", "nomodifiable"), + ("nomodified", "nomodified"), + ("nomore", "nomore"), + ("nomousef", "nomousef"), + ("nomousefocus", "nomousefocus"), + ("nomousehide", "nomousehide"), + ("nonu", "nonu"), + ("nonumber", "nonumber"), + ("noodev", "noodev"), + ("noopendevice", "noopendevice"), + ("nopaste", "nopaste"), + ("nopi", "nopi"), + ("nopreserveindent", "nopreserveindent"), + ("nopreviewwindow", "nopreviewwindow"), + ("noprompt", "noprompt"), + ("nopvw", "nopvw"), + ("noreadonly", "noreadonly"), + ("norelativenumber", "norelativenumber"), + ("noremap", "noremap"), + ("norestorescreen", "norestorescreen"), + ("norevins", "norevins"), + ("nori", "nori"), + ("norightleft", "norightleft"), + ("norl", "norl"), + ("nornu", "nornu"), + ("noro", "noro"), + ("nors", "nors"), + ("noru", "noru"), + ("noruler", "noruler"), + ("nosb", "nosb"), + ("nosc", "nosc"), + ("noscb", "noscb"), + ("noscrollbind", "noscrollbind"), + ("noscs", "noscs"), + ("nosecure", "nosecure"), + ("nosft", "nosft"), + ("noshellslash", "noshellslash"), + ("noshelltemp", "noshelltemp"), + ("noshiftround", "noshiftround"), + ("noshortname", "noshortname"), + ("noshowcmd", "noshowcmd"), + ("noshowfulltag", "noshowfulltag"), + ("noshowmatch", "noshowmatch"), + ("noshowmode", "noshowmode"), + ("nosi", "nosi"), + ("nosm", "nosm"), + ("nosmartcase", "nosmartcase"), + ("nosmartindent", "nosmartindent"), + ("nosmarttab", "nosmarttab"), + ("nosmd", "nosmd"), + ("nosn", "nosn"), + ("nosol", "nosol"), + ("nospell", "nospell"), + ("nosplitbelow", "nosplitbelow"), + ("nosplitright", "nosplitright"), + ("nospr", "nospr"), + ("nosr", "nosr"), + ("nossl", "nossl"), + ("nosta", "nosta"), + ("nostartofline", "nostartofline"), + ("nostmp", "nostmp"), + ("noswapfile", "noswapfile"), + ("noswf", "noswf"), + ("nota", "nota"), + ("notagbsearch", "notagbsearch"), + ("notagrelative", "notagrelative"), + ("notagstack", "notagstack"), + ("notbi", "notbi"), + ("notbidi", "notbidi"), + ("notbs", "notbs"), + ("notermbidi", "notermbidi"), + ("noterse", "noterse"), + ("notextauto", "notextauto"), + ("notextmode", "notextmode"), + ("notf", "notf"), + ("notgst", "notgst"), + ("notildeop", "notildeop"), + ("notimeout", "notimeout"), + ("notitle", "notitle"), + ("noto", "noto"), + ("notop", "notop"), + ("notr", "notr"), + ("nottimeout", "nottimeout"), + ("nottybuiltin", "nottybuiltin"), + ("nottyfast", "nottyfast"), + ("notx", "notx"), + ("noudf", "noudf"), + ("noundofile", "noundofile"), + ("novb", "novb"), + ("novisualbell", "novisualbell"), + ("nowa", "nowa"), + ("nowarn", "nowarn"), + ("nowb", "nowb"), + ("noweirdinvert", "noweirdinvert"), + ("nowfh", "nowfh"), + ("nowfw", "nowfw"), + ("nowic", "nowic"), + ("nowildignorecase", "nowildignorecase"), + ("nowildmenu", "nowildmenu"), + ("nowinfixheight", "nowinfixheight"), + ("nowinfixwidth", "nowinfixwidth"), + ("nowiv", "nowiv"), + ("nowmnu", "nowmnu"), + ("nowrap", "nowrap"), + ("nowrapscan", "nowrapscan"), + ("nowrite", "nowrite"), + ("nowriteany", "nowriteany"), + ("nowritebackup", "nowritebackup"), + ("nows", "nows"), + ("nrformats", "nrformats"), + ("nu", "nu"), + ("number", "number"), + ("numberwidth", "numberwidth"), + ("nuw", "nuw"), + ("odev", "odev"), + ("oft", "oft"), + ("ofu", "ofu"), + ("omnifunc", "omnifunc"), + ("opendevice", "opendevice"), + ("operatorfunc", "operatorfunc"), + ("opfunc", "opfunc"), + ("osfiletype", "osfiletype"), + ("pa", "pa"), + ("para", "para"), + ("paragraphs", "paragraphs"), + ("paste", "paste"), + ("pastetoggle", "pastetoggle"), + ("patchexpr", "patchexpr"), + ("patchmode", "patchmode"), + ("path", "path"), + ("pdev", "pdev"), + ("penc", "penc"), + ("pex", "pex"), + ("pexpr", "pexpr"), + ("pfn", "pfn"), + ("ph", "ph"), + ("pheader", "pheader"), + ("pi", "pi"), + ("pm", "pm"), + ("pmbcs", "pmbcs"), + ("pmbfn", "pmbfn"), + ("popt", "popt"), + ("preserveindent", "preserveindent"), + ("previewheight", "previewheight"), + ("previewwindow", "previewwindow"), + ("printdevice", "printdevice"), + ("printencoding", "printencoding"), + ("printexpr", "printexpr"), + ("printfont", "printfont"), + ("printheader", "printheader"), + ("printmbcharset", "printmbcharset"), + ("printmbfont", "printmbfont"), + ("printoptions", "printoptions"), + ("prompt", "prompt"), + ("pt", "pt"), + ("pumheight", "pumheight"), + ("pvh", "pvh"), + ("pvw", "pvw"), + ("qe", "qe"), + ("quoteescape", "quoteescape"), + ("rdt", "rdt"), + ("re", "re"), + ("readonly", "readonly"), + ("redrawtime", "redrawtime"), + ("regexpengine", "regexpengine"), + ("relativenumber", "relativenumber"), + ("remap", "remap"), + ("report", "report"), + ("restorescreen", "restorescreen"), + ("revins", "revins"), + ("ri", "ri"), + ("rightleft", "rightleft"), + ("rightleftcmd", "rightleftcmd"), + ("rl", "rl"), + ("rlc", "rlc"), + ("rnu", "rnu"), + ("ro", "ro"), + ("rs", "rs"), + ("rtp", "rtp"), + ("ru", "ru"), + ("ruf", "ruf"), + ("ruler", "ruler"), + ("rulerformat", "rulerformat"), + ("runtimepath", "runtimepath"), + ("sb", "sb"), + ("sbo", "sbo"), + ("sbr", "sbr"), + ("sc", "sc"), + ("scb", "scb"), + ("scr", "scr"), + ("scroll", "scroll"), + ("scrollbind", "scrollbind"), + ("scrolljump", "scrolljump"), + ("scrolloff", "scrolloff"), + ("scrollopt", "scrollopt"), + ("scs", "scs"), + ("sect", "sect"), + ("sections", "sections"), + ("secure", "secure"), + ("sel", "sel"), + ("selection", "selection"), + ("selectmode", "selectmode"), + ("sessionoptions", "sessionoptions"), + ("sft", "sft"), + ("sh", "sh"), + ("shcf", "shcf"), + ("shell", "shell"), + ("shellcmdflag", "shellcmdflag"), + ("shellpipe", "shellpipe"), + ("shellquote", "shellquote"), + ("shellredir", "shellredir"), + ("shellslash", "shellslash"), + ("shelltemp", "shelltemp"), + ("shelltype", "shelltype"), + ("shellxescape", "shellxescape"), + ("shellxquote", "shellxquote"), + ("shiftround", "shiftround"), + ("shiftwidth", "shiftwidth"), + ("shm", "shm"), + ("shortmess", "shortmess"), + ("shortname", "shortname"), + ("showbreak", "showbreak"), + ("showcmd", "showcmd"), + ("showfulltag", "showfulltag"), + ("showmatch", "showmatch"), + ("showmode", "showmode"), + ("showtabline", "showtabline"), + ("shq", "shq"), + ("si", "si"), + ("sidescroll", "sidescroll"), + ("sidescrolloff", "sidescrolloff"), + ("siso", "siso"), + ("sj", "sj"), + ("slm", "slm"), + ("sm", "sm"), + ("smartcase", "smartcase"), + ("smartindent", "smartindent"), + ("smarttab", "smarttab"), + ("smc", "smc"), + ("smd", "smd"), + ("sn", "sn"), + ("so", "so"), + ("softtabstop", "softtabstop"), + ("sol", "sol"), + ("sp", "sp"), + ("spc", "spc"), + ("spell", "spell"), + ("spellcapcheck", "spellcapcheck"), + ("spellfile", "spellfile"), + ("spelllang", "spelllang"), + ("spellsuggest", "spellsuggest"), + ("spf", "spf"), + ("spl", "spl"), + ("splitbelow", "splitbelow"), + ("splitright", "splitright"), + ("spr", "spr"), + ("sps", "sps"), + ("sr", "sr"), + ("srr", "srr"), + ("ss", "ss"), + ("ssl", "ssl"), + ("ssop", "ssop"), + ("st", "st"), + ("sta", "sta"), + ("stal", "stal"), + ("startofline", "startofline"), + ("statusline", "statusline"), + ("stl", "stl"), + ("stmp", "stmp"), + ("sts", "sts"), + ("su", "su"), + ("sua", "sua"), + ("suffixes", "suffixes"), + ("suffixesadd", "suffixesadd"), + ("sw", "sw"), + ("swapfile", "swapfile"), + ("swapsync", "swapsync"), + ("swb", "swb"), + ("swf", "swf"), + ("switchbuf", "switchbuf"), + ("sws", "sws"), + ("sxe", "sxe"), + ("sxq", "sxq"), + ("syn", "syn"), + ("synmaxcol", "synmaxcol"), + ("syntax", "syntax"), + ("t_AB", "t_AB"), + ("t_AF", "t_AF"), + ("t_AL", "t_AL"), + ("t_CS", "t_CS"), + ("t_CV", "t_CV"), + ("t_Ce", "t_Ce"), + ("t_Co", "t_Co"), + ("t_Cs", "t_Cs"), + ("t_DL", "t_DL"), + ("t_EI", "t_EI"), + ("t_F1", "t_F1"), + ("t_F2", "t_F2"), + ("t_F3", "t_F3"), + ("t_F4", "t_F4"), + ("t_F5", "t_F5"), + ("t_F6", "t_F6"), + ("t_F7", "t_F7"), + ("t_F8", "t_F8"), + ("t_F9", "t_F9"), + ("t_IE", "t_IE"), + ("t_IS", "t_IS"), + ("t_K1", "t_K1"), + ("t_K3", "t_K3"), + ("t_K4", "t_K4"), + ("t_K5", "t_K5"), + ("t_K6", "t_K6"), + ("t_K7", "t_K7"), + ("t_K8", "t_K8"), + ("t_K9", "t_K9"), + ("t_KA", "t_KA"), + ("t_KB", "t_KB"), + ("t_KC", "t_KC"), + ("t_KD", "t_KD"), + ("t_KE", "t_KE"), + ("t_KF", "t_KF"), + ("t_KG", "t_KG"), + ("t_KH", "t_KH"), + ("t_KI", "t_KI"), + ("t_KJ", "t_KJ"), + ("t_KK", "t_KK"), + ("t_KL", "t_KL"), + ("t_RI", "t_RI"), + ("t_RV", "t_RV"), + ("t_SI", "t_SI"), + ("t_Sb", "t_Sb"), + ("t_Sf", "t_Sf"), + ("t_WP", "t_WP"), + ("t_WS", "t_WS"), + ("t_ZH", "t_ZH"), + ("t_ZR", "t_ZR"), + ("t_al", "t_al"), + ("t_bc", "t_bc"), + ("t_cd", "t_cd"), + ("t_ce", "t_ce"), + ("t_cl", "t_cl"), + ("t_cm", "t_cm"), + ("t_cs", "t_cs"), + ("t_da", "t_da"), + ("t_db", "t_db"), + ("t_dl", "t_dl"), + ("t_fs", "t_fs"), + ("t_k1", "t_k1"), + ("t_k2", "t_k2"), + ("t_k3", "t_k3"), + ("t_k4", "t_k4"), + ("t_k5", "t_k5"), + ("t_k6", "t_k6"), + ("t_k7", "t_k7"), + ("t_k8", "t_k8"), + ("t_k9", "t_k9"), + ("t_kB", "t_kB"), + ("t_kD", "t_kD"), + ("t_kI", "t_kI"), + ("t_kN", "t_kN"), + ("t_kP", "t_kP"), + ("t_kb", "t_kb"), + ("t_kd", "t_kd"), + ("t_ke", "t_ke"), + ("t_kh", "t_kh"), + ("t_kl", "t_kl"), + ("t_kr", "t_kr"), + ("t_ks", "t_ks"), + ("t_ku", "t_ku"), + ("t_le", "t_le"), + ("t_mb", "t_mb"), + ("t_md", "t_md"), + ("t_me", "t_me"), + ("t_mr", "t_mr"), + ("t_ms", "t_ms"), + ("t_nd", "t_nd"), + ("t_op", "t_op"), + ("t_se", "t_se"), + ("t_so", "t_so"), + ("t_sr", "t_sr"), + ("t_te", "t_te"), + ("t_ti", "t_ti"), + ("t_ts", "t_ts"), + ("t_u7", "t_u7"), + ("t_ue", "t_ue"), + ("t_us", "t_us"), + ("t_ut", "t_ut"), + ("t_vb", "t_vb"), + ("t_ve", "t_ve"), + ("t_vi", "t_vi"), + ("t_vs", "t_vs"), + ("t_xs", "t_xs"), + ("ta", "ta"), + ("tabline", "tabline"), + ("tabpagemax", "tabpagemax"), + ("tabstop", "tabstop"), + ("tag", "tag"), + ("tagbsearch", "tagbsearch"), + ("taglength", "taglength"), + ("tagrelative", "tagrelative"), + ("tags", "tags"), + ("tagstack", "tagstack"), + ("tal", "tal"), + ("tb", "tb"), + ("tbi", "tbi"), + ("tbidi", "tbidi"), + ("tbis", "tbis"), + ("tbs", "tbs"), + ("tenc", "tenc"), + ("term", "term"), + ("termbidi", "termbidi"), + ("termencoding", "termencoding"), + ("terse", "terse"), + ("textauto", "textauto"), + ("textmode", "textmode"), + ("textwidth", "textwidth"), + ("tf", "tf"), + ("tgst", "tgst"), + ("thesaurus", "thesaurus"), + ("tildeop", "tildeop"), + ("timeout", "timeout"), + ("timeoutlen", "timeoutlen"), + ("title", "title"), + ("titlelen", "titlelen"), + ("titleold", "titleold"), + ("titlestring", "titlestring"), + ("tl", "tl"), + ("tm", "tm"), + ("to", "to"), + ("toolbar", "toolbar"), + ("toolbariconsize", "toolbariconsize"), + ("top", "top"), + ("tpm", "tpm"), + ("tr", "tr"), + ("ts", "ts"), + ("tsl", "tsl"), + ("tsr", "tsr"), + ("ttimeout", "ttimeout"), + ("ttimeoutlen", "ttimeoutlen"), + ("ttm", "ttm"), + ("tty", "tty"), + ("ttybuiltin", "ttybuiltin"), + ("ttyfast", "ttyfast"), + ("ttym", "ttym"), + ("ttymouse", "ttymouse"), + ("ttyscroll", "ttyscroll"), + ("ttytype", "ttytype"), + ("tw", "tw"), + ("tx", "tx"), + ("uc", "uc"), + ("udf", "udf"), + ("udir", "udir"), + ("ul", "ul"), + ("undodir", "undodir"), + ("undofile", "undofile"), + ("undolevels", "undolevels"), + ("undoreload", "undoreload"), + ("updatecount", "updatecount"), + ("updatetime", "updatetime"), + ("ur", "ur"), + ("ut", "ut"), + ("vb", "vb"), + ("vbs", "vbs"), + ("vdir", "vdir"), + ("ve", "ve"), + ("verbose", "verbose"), + ("verbosefile", "verbosefile"), + ("vfile", "vfile"), + ("vi", "vi"), + ("viewdir", "viewdir"), + ("viewoptions", "viewoptions"), + ("viminfo", "viminfo"), + ("virtualedit", "virtualedit"), + ("visualbell", "visualbell"), + ("vnoremap", "vnoremap"), + ("vop", "vop"), + ("wa", "wa"), + ("wak", "wak"), + ("warn", "warn"), + ("wb", "wb"), + ("wc", "wc"), + ("wcm", "wcm"), + ("wd", "wd"), + ("weirdinvert", "weirdinvert"), + ("wfh", "wfh"), + ("wfw", "wfw"), + ("wh", "wh"), + ("whichwrap", "whichwrap"), + ("wi", "wi"), + ("wic", "wic"), + ("wig", "wig"), + ("wildchar", "wildchar"), + ("wildcharm", "wildcharm"), + ("wildignore", "wildignore"), + ("wildignorecase", "wildignorecase"), + ("wildmenu", "wildmenu"), + ("wildmode", "wildmode"), + ("wildoptions", "wildoptions"), + ("wim", "wim"), + ("winaltkeys", "winaltkeys"), + ("window", "window"), + ("winfixheight", "winfixheight"), + ("winfixwidth", "winfixwidth"), + ("winheight", "winheight"), + ("winminheight", "winminheight"), + ("winminwidth", "winminwidth"), + ("winwidth", "winwidth"), + ("wiv", "wiv"), + ("wiw", "wiw"), + ("wm", "wm"), + ("wmh", "wmh"), + ("wmnu", "wmnu"), + ("wmw", "wmw"), + ("wop", "wop"), + ("wrap", "wrap"), + ("wrapmargin", "wrapmargin"), + ("wrapscan", "wrapscan"), + ("write", "write"), + ("writeany", "writeany"), + ("writebackup", "writebackup"), + ("writedelay", "writedelay"), + ("ws", "ws"), + ("ww", "ww"), ) return var -option = _getoption() + +option = _getoption() diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/actionscript.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/actionscript.py index 3a6ba42..f036c30 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/actionscript.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/actionscript.py @@ -1,20 +1,29 @@ """ - pygments.lexers.actionscript - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.actionscript +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for ActionScript and MXML. +Lexers for ActionScript and MXML. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, bygroups, using, this, words, default -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['ActionScriptLexer', 'ActionScript3Lexer', 'MxmlLexer'] +__all__ = ["ActionScriptLexer", "ActionScript3Lexer", "MxmlLexer"] class ActionScriptLexer(RegexLexer): @@ -22,88 +31,329 @@ class ActionScriptLexer(RegexLexer): For ActionScript source code. """ - name = 'ActionScript' - aliases = ['actionscript', 'as'] - filenames = ['*.as'] - mimetypes = ['application/x-actionscript', 'text/x-actionscript', - 'text/actionscript'] - url = 'https://en.wikipedia.org/wiki/ActionScript' - version_added = '0.9' + name = "ActionScript" + aliases = ["actionscript", "as"] + filenames = ["*.as"] + mimetypes = [ + "application/x-actionscript", + "text/x-actionscript", + "text/actionscript", + ] + url = "https://en.wikipedia.org/wiki/ActionScript" + version_added = "0.9" flags = re.DOTALL tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'//.*?\n', Comment.Single), - (r'/\*.*?\*/', Comment.Multiline), - (r'/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*', String.Regex), - (r'[~^*!%&<>|+=:;,/?\\-]+', Operator), - (r'[{}\[\]();.]+', Punctuation), - (words(( - 'case', 'default', 'for', 'each', 'in', 'while', 'do', 'break', - 'return', 'continue', 'if', 'else', 'throw', 'try', 'catch', - 'var', 'with', 'new', 'typeof', 'arguments', 'instanceof', 'this', - 'switch'), suffix=r'\b'), - Keyword), - (words(( - 'class', 'public', 'final', 'internal', 'native', 'override', 'private', - 'protected', 'static', 'import', 'extends', 'implements', 'interface', - 'intrinsic', 'return', 'super', 'dynamic', 'function', 'const', 'get', - 'namespace', 'package', 'set'), suffix=r'\b'), - Keyword.Declaration), - (r'(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b', - Keyword.Constant), - (words(( - 'Accessibility', 'AccessibilityProperties', 'ActionScriptVersion', - 'ActivityEvent', 'AntiAliasType', 'ApplicationDomain', 'AsBroadcaster', 'Array', - 'AsyncErrorEvent', 'AVM1Movie', 'BevelFilter', 'Bitmap', 'BitmapData', - 'BitmapDataChannel', 'BitmapFilter', 'BitmapFilterQuality', 'BitmapFilterType', - 'BlendMode', 'BlurFilter', 'Boolean', 'ByteArray', 'Camera', 'Capabilities', 'CapsStyle', - 'Class', 'Color', 'ColorMatrixFilter', 'ColorTransform', 'ContextMenu', - 'ContextMenuBuiltInItems', 'ContextMenuEvent', 'ContextMenuItem', - 'ConvultionFilter', 'CSMSettings', 'DataEvent', 'Date', 'DefinitionError', - 'DeleteObjectSample', 'Dictionary', 'DisplacmentMapFilter', 'DisplayObject', - 'DisplacmentMapFilterMode', 'DisplayObjectContainer', 'DropShadowFilter', - 'Endian', 'EOFError', 'Error', 'ErrorEvent', 'EvalError', 'Event', 'EventDispatcher', - 'EventPhase', 'ExternalInterface', 'FileFilter', 'FileReference', - 'FileReferenceList', 'FocusDirection', 'FocusEvent', 'Font', 'FontStyle', 'FontType', - 'FrameLabel', 'FullScreenEvent', 'Function', 'GlowFilter', 'GradientBevelFilter', - 'GradientGlowFilter', 'GradientType', 'Graphics', 'GridFitType', 'HTTPStatusEvent', - 'IBitmapDrawable', 'ID3Info', 'IDataInput', 'IDataOutput', 'IDynamicPropertyOutput' - 'IDynamicPropertyWriter', 'IEventDispatcher', 'IExternalizable', - 'IllegalOperationError', 'IME', 'IMEConversionMode', 'IMEEvent', 'int', - 'InteractiveObject', 'InterpolationMethod', 'InvalidSWFError', 'InvokeEvent', - 'IOError', 'IOErrorEvent', 'JointStyle', 'Key', 'Keyboard', 'KeyboardEvent', 'KeyLocation', - 'LineScaleMode', 'Loader', 'LoaderContext', 'LoaderInfo', 'LoadVars', 'LocalConnection', - 'Locale', 'Math', 'Matrix', 'MemoryError', 'Microphone', 'MorphShape', 'Mouse', 'MouseEvent', - 'MovieClip', 'MovieClipLoader', 'Namespace', 'NetConnection', 'NetStatusEvent', - 'NetStream', 'NewObjectSample', 'Number', 'Object', 'ObjectEncoding', 'PixelSnapping', - 'Point', 'PrintJob', 'PrintJobOptions', 'PrintJobOrientation', 'ProgressEvent', 'Proxy', - 'QName', 'RangeError', 'Rectangle', 'ReferenceError', 'RegExp', 'Responder', 'Sample', - 'Scene', 'ScriptTimeoutError', 'Security', 'SecurityDomain', 'SecurityError', - 'SecurityErrorEvent', 'SecurityPanel', 'Selection', 'Shape', 'SharedObject', - 'SharedObjectFlushStatus', 'SimpleButton', 'Socket', 'Sound', 'SoundChannel', - 'SoundLoaderContext', 'SoundMixer', 'SoundTransform', 'SpreadMethod', 'Sprite', - 'StackFrame', 'StackOverflowError', 'Stage', 'StageAlign', 'StageDisplayState', - 'StageQuality', 'StageScaleMode', 'StaticText', 'StatusEvent', 'String', 'StyleSheet', - 'SWFVersion', 'SyncEvent', 'SyntaxError', 'System', 'TextColorType', 'TextField', - 'TextFieldAutoSize', 'TextFieldType', 'TextFormat', 'TextFormatAlign', - 'TextLineMetrics', 'TextRenderer', 'TextSnapshot', 'Timer', 'TimerEvent', 'Transform', - 'TypeError', 'uint', 'URIError', 'URLLoader', 'URLLoaderDataFormat', 'URLRequest', - 'URLRequestHeader', 'URLRequestMethod', 'URLStream', 'URLVariabeles', 'VerifyError', - 'Video', 'XML', 'XMLDocument', 'XMLList', 'XMLNode', 'XMLNodeType', 'XMLSocket', - 'XMLUI'), suffix=r'\b'), - Name.Builtin), - (words(( - 'decodeURI', 'decodeURIComponent', 'encodeURI', 'escape', 'eval', 'isFinite', 'isNaN', - 'isXMLName', 'clearInterval', 'fscommand', 'getTimer', 'getURL', 'getVersion', - 'parseFloat', 'parseInt', 'setInterval', 'trace', 'updateAfterEvent', - 'unescape'), suffix=r'\b'), - Name.Function), - (r'[$a-zA-Z_]\w*', Name.Other), - (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float), - (r'0x[0-9a-f]+', Number.Hex), - (r'[0-9]+', Number.Integer), + "root": [ + (r"\s+", Whitespace), + (r"//.*?\n", Comment.Single), + (r"/\*.*?\*/", Comment.Multiline), + (r"/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*", String.Regex), + (r"[~^*!%&<>|+=:;,/?\\-]+", Operator), + (r"[{}\[\]();.]+", Punctuation), + ( + words( + ( + "case", + "default", + "for", + "each", + "in", + "while", + "do", + "break", + "return", + "continue", + "if", + "else", + "throw", + "try", + "catch", + "var", + "with", + "new", + "typeof", + "arguments", + "instanceof", + "this", + "switch", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "class", + "public", + "final", + "internal", + "native", + "override", + "private", + "protected", + "static", + "import", + "extends", + "implements", + "interface", + "intrinsic", + "return", + "super", + "dynamic", + "function", + "const", + "get", + "namespace", + "package", + "set", + ), + suffix=r"\b", + ), + Keyword.Declaration, + ), + ( + r"(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b", + Keyword.Constant, + ), + ( + words( + ( + "Accessibility", + "AccessibilityProperties", + "ActionScriptVersion", + "ActivityEvent", + "AntiAliasType", + "ApplicationDomain", + "AsBroadcaster", + "Array", + "AsyncErrorEvent", + "AVM1Movie", + "BevelFilter", + "Bitmap", + "BitmapData", + "BitmapDataChannel", + "BitmapFilter", + "BitmapFilterQuality", + "BitmapFilterType", + "BlendMode", + "BlurFilter", + "Boolean", + "ByteArray", + "Camera", + "Capabilities", + "CapsStyle", + "Class", + "Color", + "ColorMatrixFilter", + "ColorTransform", + "ContextMenu", + "ContextMenuBuiltInItems", + "ContextMenuEvent", + "ContextMenuItem", + "ConvultionFilter", + "CSMSettings", + "DataEvent", + "Date", + "DefinitionError", + "DeleteObjectSample", + "Dictionary", + "DisplacmentMapFilter", + "DisplayObject", + "DisplacmentMapFilterMode", + "DisplayObjectContainer", + "DropShadowFilter", + "Endian", + "EOFError", + "Error", + "ErrorEvent", + "EvalError", + "Event", + "EventDispatcher", + "EventPhase", + "ExternalInterface", + "FileFilter", + "FileReference", + "FileReferenceList", + "FocusDirection", + "FocusEvent", + "Font", + "FontStyle", + "FontType", + "FrameLabel", + "FullScreenEvent", + "Function", + "GlowFilter", + "GradientBevelFilter", + "GradientGlowFilter", + "GradientType", + "Graphics", + "GridFitType", + "HTTPStatusEvent", + "IBitmapDrawable", + "ID3Info", + "IDataInput", + "IDataOutput", + "IDynamicPropertyOutput" "IDynamicPropertyWriter", + "IEventDispatcher", + "IExternalizable", + "IllegalOperationError", + "IME", + "IMEConversionMode", + "IMEEvent", + "int", + "InteractiveObject", + "InterpolationMethod", + "InvalidSWFError", + "InvokeEvent", + "IOError", + "IOErrorEvent", + "JointStyle", + "Key", + "Keyboard", + "KeyboardEvent", + "KeyLocation", + "LineScaleMode", + "Loader", + "LoaderContext", + "LoaderInfo", + "LoadVars", + "LocalConnection", + "Locale", + "Math", + "Matrix", + "MemoryError", + "Microphone", + "MorphShape", + "Mouse", + "MouseEvent", + "MovieClip", + "MovieClipLoader", + "Namespace", + "NetConnection", + "NetStatusEvent", + "NetStream", + "NewObjectSample", + "Number", + "Object", + "ObjectEncoding", + "PixelSnapping", + "Point", + "PrintJob", + "PrintJobOptions", + "PrintJobOrientation", + "ProgressEvent", + "Proxy", + "QName", + "RangeError", + "Rectangle", + "ReferenceError", + "RegExp", + "Responder", + "Sample", + "Scene", + "ScriptTimeoutError", + "Security", + "SecurityDomain", + "SecurityError", + "SecurityErrorEvent", + "SecurityPanel", + "Selection", + "Shape", + "SharedObject", + "SharedObjectFlushStatus", + "SimpleButton", + "Socket", + "Sound", + "SoundChannel", + "SoundLoaderContext", + "SoundMixer", + "SoundTransform", + "SpreadMethod", + "Sprite", + "StackFrame", + "StackOverflowError", + "Stage", + "StageAlign", + "StageDisplayState", + "StageQuality", + "StageScaleMode", + "StaticText", + "StatusEvent", + "String", + "StyleSheet", + "SWFVersion", + "SyncEvent", + "SyntaxError", + "System", + "TextColorType", + "TextField", + "TextFieldAutoSize", + "TextFieldType", + "TextFormat", + "TextFormatAlign", + "TextLineMetrics", + "TextRenderer", + "TextSnapshot", + "Timer", + "TimerEvent", + "Transform", + "TypeError", + "uint", + "URIError", + "URLLoader", + "URLLoaderDataFormat", + "URLRequest", + "URLRequestHeader", + "URLRequestMethod", + "URLStream", + "URLVariabeles", + "VerifyError", + "Video", + "XML", + "XMLDocument", + "XMLList", + "XMLNode", + "XMLNodeType", + "XMLSocket", + "XMLUI", + ), + suffix=r"\b", + ), + Name.Builtin, + ), + ( + words( + ( + "decodeURI", + "decodeURIComponent", + "encodeURI", + "escape", + "eval", + "isFinite", + "isNaN", + "isXMLName", + "clearInterval", + "fscommand", + "getTimer", + "getURL", + "getVersion", + "parseFloat", + "parseInt", + "setInterval", + "trace", + "updateAfterEvent", + "unescape", + ), + suffix=r"\b", + ), + Name.Function, + ), + (r"[$a-zA-Z_]\w*", Name.Other), + (r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float), + (r"0x[0-9a-f]+", Number.Hex), + (r"[0-9]+", Number.Integer), (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double), (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single), ] @@ -115,87 +365,140 @@ class ActionScriptLexer(RegexLexer): AS3 variable definitions and that will hopefully suffice.""" return 0 + class ActionScript3Lexer(RegexLexer): """ For ActionScript 3 source code. """ - name = 'ActionScript 3' - url = 'https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html' - aliases = ['actionscript3', 'as3'] - filenames = ['*.as'] - mimetypes = ['application/x-actionscript3', 'text/x-actionscript3', - 'text/actionscript3'] - version_added = '0.11' + name = "ActionScript 3" + url = ( + "https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html" + ) + aliases = ["actionscript3", "as3"] + filenames = ["*.as"] + mimetypes = [ + "application/x-actionscript3", + "text/x-actionscript3", + "text/actionscript3", + ] + version_added = "0.11" - identifier = r'[$a-zA-Z_]\w*' - typeidentifier = identifier + r'(?:\.<\w+>)?' + identifier = r"[$a-zA-Z_]\w*" + typeidentifier = identifier + r"(?:\.<\w+>)?" flags = re.DOTALL | re.MULTILINE tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'(function\s+)(' + identifier + r')(\s*)(\()', - bygroups(Keyword.Declaration, Name.Function, Text, Operator), - 'funcparams'), - (r'(var|const)(\s+)(' + identifier + r')(\s*)(:)(\s*)(' + - typeidentifier + r')', - bygroups(Keyword.Declaration, Whitespace, Name, Whitespace, Punctuation, Whitespace, - Keyword.Type)), - (r'(import|package)(\s+)((?:' + identifier + r'|\.)+)(\s*)', - bygroups(Keyword, Whitespace, Name.Namespace, Whitespace)), - (r'(new)(\s+)(' + typeidentifier + r')(\s*)(\()', - bygroups(Keyword, Whitespace, Keyword.Type, Whitespace, Operator)), - (r'//.*?\n', Comment.Single), - (r'/\*.*?\*/', Comment.Multiline), - (r'/(\\\\|\\[^\\]|[^\\\n])*/[gisx]*', String.Regex), - (r'(\.)(' + identifier + r')', bygroups(Operator, Name.Attribute)), - (r'(case|default|for|each|in|while|do|break|return|continue|if|else|' - r'throw|try|catch|with|new|typeof|arguments|instanceof|this|' - r'switch|import|include|as|is)\b', - Keyword), - (r'(class|public|final|internal|native|override|private|protected|' - r'static|import|extends|implements|interface|intrinsic|return|super|' - r'dynamic|function|const|get|namespace|package|set)\b', - Keyword.Declaration), - (r'(true|false|null|NaN|Infinity|-Infinity|undefined|void)\b', - Keyword.Constant), - (r'(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|' - r'isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|' - r'isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|' - r'unescape)\b', Name.Function), + "root": [ + (r"\s+", Whitespace), + ( + r"(function\s+)(" + identifier + r")(\s*)(\()", + bygroups(Keyword.Declaration, Name.Function, Text, Operator), + "funcparams", + ), + ( + r"(var|const)(\s+)(" + + identifier + + r")(\s*)(:)(\s*)(" + + typeidentifier + + r")", + bygroups( + Keyword.Declaration, + Whitespace, + Name, + Whitespace, + Punctuation, + Whitespace, + Keyword.Type, + ), + ), + ( + r"(import|package)(\s+)((?:" + identifier + r"|\.)+)(\s*)", + bygroups(Keyword, Whitespace, Name.Namespace, Whitespace), + ), + ( + r"(new)(\s+)(" + typeidentifier + r")(\s*)(\()", + bygroups(Keyword, Whitespace, Keyword.Type, Whitespace, Operator), + ), + (r"//.*?\n", Comment.Single), + (r"/\*.*?\*/", Comment.Multiline), + (r"/(\\\\|\\[^\\]|[^\\\n])*/[gisx]*", String.Regex), + (r"(\.)(" + identifier + r")", bygroups(Operator, Name.Attribute)), + ( + r"(case|default|for|each|in|while|do|break|return|continue|if|else|" + r"throw|try|catch|with|new|typeof|arguments|instanceof|this|" + r"switch|import|include|as|is)\b", + Keyword, + ), + ( + r"(class|public|final|internal|native|override|private|protected|" + r"static|import|extends|implements|interface|intrinsic|return|super|" + r"dynamic|function|const|get|namespace|package|set)\b", + Keyword.Declaration, + ), + ( + r"(true|false|null|NaN|Infinity|-Infinity|undefined|void)\b", + Keyword.Constant, + ), + ( + r"(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|" + r"isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|" + r"isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|" + r"unescape)\b", + Name.Function, + ), (identifier, Name), - (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float), - (r'0x[0-9a-f]+', Number.Hex), - (r'[0-9]+', Number.Integer), + (r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float), + (r"0x[0-9a-f]+", Number.Hex), + (r"[0-9]+", Number.Integer), (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double), (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single), - (r'[~^*!%&<>|+=:;,/?\\{}\[\]().-]+', Operator), + (r"[~^*!%&<>|+=:;,/?\\{}\[\]().-]+", Operator), ], - 'funcparams': [ - (r'\s+', Whitespace), - (r'(\s*)(\.\.\.)?(' + identifier + r')(\s*)(:)(\s*)(' + - typeidentifier + r'|\*)(\s*)', - bygroups(Whitespace, Punctuation, Name, Whitespace, Operator, Whitespace, - Keyword.Type, Whitespace), 'defval'), - (r'\)', Operator, 'type') + "funcparams": [ + (r"\s+", Whitespace), + ( + r"(\s*)(\.\.\.)?(" + + identifier + + r")(\s*)(:)(\s*)(" + + typeidentifier + + r"|\*)(\s*)", + bygroups( + Whitespace, + Punctuation, + Name, + Whitespace, + Operator, + Whitespace, + Keyword.Type, + Whitespace, + ), + "defval", + ), + (r"\)", Operator, "type"), ], - 'type': [ - (r'(\s*)(:)(\s*)(' + typeidentifier + r'|\*)', - bygroups(Whitespace, Operator, Whitespace, Keyword.Type), '#pop:2'), - (r'\s+', Text, '#pop:2'), - default('#pop:2') + "type": [ + ( + r"(\s*)(:)(\s*)(" + typeidentifier + r"|\*)", + bygroups(Whitespace, Operator, Whitespace, Keyword.Type), + "#pop:2", + ), + (r"\s+", Text, "#pop:2"), + default("#pop:2"), + ], + "defval": [ + ( + r"(=)(\s*)([^(),]+)(\s*)(,?)", + bygroups(Operator, Whitespace, using(this), Whitespace, Operator), + "#pop", + ), + (r",", Operator, "#pop"), + default("#pop"), ], - 'defval': [ - (r'(=)(\s*)([^(),]+)(\s*)(,?)', - bygroups(Operator, Whitespace, using(this), Whitespace, Operator), '#pop'), - (r',', Operator, '#pop'), - default('#pop') - ] } def analyse_text(text): - if re.match(r'\w+\s*:\s*\w', text): + if re.match(r"\w+\s*:\s*\w", text): return 0.3 return 0 @@ -205,39 +508,42 @@ class MxmlLexer(RegexLexer): For MXML markup. Nested AS3 in )', bygroups(using(XmlLexer), - Other, - using(XmlLexer))), - (r'(.+?)(?=<)', using(XmlLexer)), - (r'.+', using(XmlLexer)), + "root": [ + (r"(<%[@=#]?)(.*?)(%>)", bygroups(Name.Tag, Other, Name.Tag)), + ( + r"()(.*?)()", + bygroups(using(XmlLexer), Other, using(XmlLexer)), + ), + (r"(.+?)(?=<)", using(XmlLexer)), + (r".+", using(XmlLexer)), ], } @@ -561,12 +914,12 @@ class CSharpAspxLexer(DelegatingLexer): Lexer for highlighting C# within ASP.NET pages. """ - name = 'aspx-cs' - aliases = ['aspx-cs'] - filenames = ['*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'] + name = "aspx-cs" + aliases = ["aspx-cs"] + filenames = ["*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"] mimetypes = [] - url = 'https://dotnet.microsoft.com/en-us/apps/aspnet' - version_added = '' + url = "https://dotnet.microsoft.com/en-us/apps/aspnet" + version_added = "" def __init__(self, **options): super().__init__(CSharpLexer, GenericAspxLexer, **options) @@ -583,12 +936,12 @@ class VbNetAspxLexer(DelegatingLexer): Lexer for highlighting Visual Basic.net within ASP.NET pages. """ - name = 'aspx-vb' - aliases = ['aspx-vb'] - filenames = ['*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'] + name = "aspx-vb" + aliases = ["aspx-vb"] + filenames = ["*.aspx", "*.asax", "*.ascx", "*.ashx", "*.asmx", "*.axd"] mimetypes = [] - url = 'https://dotnet.microsoft.com/en-us/apps/aspnet' - version_added = '' + url = "https://dotnet.microsoft.com/en-us/apps/aspnet" + version_added = "" def __init__(self, **options): super().__init__(VbNetLexer, GenericAspxLexer, **options) @@ -606,146 +959,283 @@ class FSharpLexer(RegexLexer): For the F# language (version 3.0). """ - name = 'F#' - url = 'https://fsharp.org/' - aliases = ['fsharp', 'f#'] - filenames = ['*.fs', '*.fsi', '*.fsx'] - mimetypes = ['text/x-fsharp'] - version_added = '1.5' + name = "F#" + url = "https://fsharp.org/" + aliases = ["fsharp", "f#"] + filenames = ["*.fs", "*.fsi", "*.fsx"] + mimetypes = ["text/x-fsharp"] + version_added = "1.5" keywords = [ - 'abstract', 'as', 'assert', 'base', 'begin', 'class', 'default', - 'delegate', 'do!', 'do', 'done', 'downcast', 'downto', 'elif', 'else', - 'end', 'exception', 'extern', 'false', 'finally', 'for', 'function', - 'fun', 'global', 'if', 'inherit', 'inline', 'interface', 'internal', - 'in', 'lazy', 'let!', 'let', 'match', 'member', 'module', 'mutable', - 'namespace', 'new', 'null', 'of', 'open', 'override', 'private', 'public', - 'rec', 'return!', 'return', 'select', 'static', 'struct', 'then', 'to', - 'true', 'try', 'type', 'upcast', 'use!', 'use', 'val', 'void', 'when', - 'while', 'with', 'yield!', 'yield', + "abstract", + "as", + "assert", + "base", + "begin", + "class", + "default", + "delegate", + "do!", + "do", + "done", + "downcast", + "downto", + "elif", + "else", + "end", + "exception", + "extern", + "false", + "finally", + "for", + "function", + "fun", + "global", + "if", + "inherit", + "inline", + "interface", + "internal", + "in", + "lazy", + "let!", + "let", + "match", + "member", + "module", + "mutable", + "namespace", + "new", + "null", + "of", + "open", + "override", + "private", + "public", + "rec", + "return!", + "return", + "select", + "static", + "struct", + "then", + "to", + "true", + "try", + "type", + "upcast", + "use!", + "use", + "val", + "void", + "when", + "while", + "with", + "yield!", + "yield", ] # Reserved words; cannot hurt to color them as keywords too. keywords += [ - 'atomic', 'break', 'checked', 'component', 'const', 'constraint', - 'constructor', 'continue', 'eager', 'event', 'external', 'fixed', - 'functor', 'include', 'method', 'mixin', 'object', 'parallel', - 'process', 'protected', 'pure', 'sealed', 'tailcall', 'trait', - 'virtual', 'volatile', + "atomic", + "break", + "checked", + "component", + "const", + "constraint", + "constructor", + "continue", + "eager", + "event", + "external", + "fixed", + "functor", + "include", + "method", + "mixin", + "object", + "parallel", + "process", + "protected", + "pure", + "sealed", + "tailcall", + "trait", + "virtual", + "volatile", ] keyopts = [ - '!=', '#', '&&', '&', r'\(', r'\)', r'\*', r'\+', ',', r'-\.', - '->', '-', r'\.\.', r'\.', '::', ':=', ':>', ':', ';;', ';', '<-', - r'<\]', '<', r'>\]', '>', r'\?\?', r'\?', r'\[<', r'\[\|', r'\[', r'\]', - '_', '`', r'\{', r'\|\]', r'\|', r'\}', '~', '<@@', '<@', '=', '@>', '@@>', + "!=", + "#", + "&&", + "&", + r"\(", + r"\)", + r"\*", + r"\+", + ",", + r"-\.", + "->", + "-", + r"\.\.", + r"\.", + "::", + ":=", + ":>", + ":", + ";;", + ";", + "<-", + r"<\]", + "<", + r">\]", + ">", + r"\?\?", + r"\?", + r"\[<", + r"\[\|", + r"\[", + r"\]", + "_", + "`", + r"\{", + r"\|\]", + r"\|", + r"\}", + "~", + "<@@", + "<@", + "=", + "@>", + "@@>", ] - operators = r'[!$%&*+\./:<=>?@^|~-]' - word_operators = ['and', 'or', 'not'] - prefix_syms = r'[!?~]' - infix_syms = r'[=<>@^|&+\*/$%-]' + operators = r"[!$%&*+\./:<=>?@^|~-]" + word_operators = ["and", "or", "not"] + prefix_syms = r"[!?~]" + infix_syms = r"[=<>@^|&+\*/$%-]" primitives = [ - 'sbyte', 'byte', 'char', 'nativeint', 'unativeint', 'float32', 'single', - 'float', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32', - 'uint32', 'int64', 'uint64', 'decimal', 'unit', 'bool', 'string', - 'list', 'exn', 'obj', 'enum', + "sbyte", + "byte", + "char", + "nativeint", + "unativeint", + "float32", + "single", + "float", + "double", + "int8", + "uint8", + "int16", + "uint16", + "int32", + "uint32", + "int64", + "uint64", + "decimal", + "unit", + "bool", + "string", + "list", + "exn", + "obj", + "enum", ] # See http://msdn.microsoft.com/en-us/library/dd233181.aspx and/or # http://fsharp.org/about/files/spec.pdf for reference. Good luck. tokens = { - 'escape-sequence': [ + "escape-sequence": [ (r'\\[\\"\'ntbrafv]', String.Escape), - (r'\\[0-9]{3}', String.Escape), - (r'\\u[0-9a-fA-F]{4}', String.Escape), - (r'\\U[0-9a-fA-F]{8}', String.Escape), + (r"\\[0-9]{3}", String.Escape), + (r"\\u[0-9a-fA-F]{4}", String.Escape), + (r"\\U[0-9a-fA-F]{8}", String.Escape), ], - 'root': [ - (r'\s+', Whitespace), - (r'\(\)|\[\]', Name.Builtin.Pseudo), - (r'\b(? and <| are weak indicators.""" result = 0 - if '|>' in text: + if "|>" in text: result += 0.05 - if '<|' in text: + if "<|" in text: result += 0.05 return result class XppLexer(RegexLexer): - """ For X++ source code. This is based loosely on the CSharpLexer """ - name = 'X++' - url = 'https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference' - aliases = ['xpp', 'x++'] - filenames = ['*.xpp'] - version_added = '2.15' + name = "X++" + url = "https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-language-reference" + aliases = ["xpp", "x++"] + filenames = ["*.xpp"] + version_added = "2.15" flags = re.MULTILINE - XPP_CHARS = ('@?(?:_|[^' + - uni.allexcept('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') + '])' + - '[^' + uni.allexcept('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl', - 'Nd', 'Pc', 'Cf', 'Mn', 'Mc') + ']*') + XPP_CHARS = ( + "@?(?:_|[^" + + uni.allexcept("Lu", "Ll", "Lt", "Lm", "Lo", "Nl") + + "])" + + "[^" + + uni.allexcept( + "Lu", "Ll", "Lt", "Lm", "Lo", "Nl", "Nd", "Pc", "Cf", "Mn", "Mc" + ) + + "]*" + ) # Temporary, see # https://github.com/thatch/regexlint/pull/49 - XPP_CHARS = XPP_CHARS.replace('\x00', '\x01') + XPP_CHARS = XPP_CHARS.replace("\x00", "\x01") OPERATORS = ( - '<=', '>=', '+=', '-=', '*=', '/=', '!=', '==', - '&&', '||', '>>', '<<', '++', '--', '+', '-', '*', - '/', '%', '&', '|', '^', '<', '>', '?', '!', '~', '=', - ) - KEYWORDS = ('abstract','anytype','as','async','asc','at','avg','break','breakpoint','by','byref','case','catch', - 'changecompany','client','container','continue','count','crosscompany','default','delegate', - 'delete_from','desc','display','div','do','edit','else','element','eventhandler','exists','false','final', - 'firstfast','firstonly','firstonly10','firstonly100','firstonly1000','flush','for','forceliterals', - 'forcenestedloop','forceplaceholders','forceselectorder','forupdate','from','group','if','insert_recordset', - 'interface','is','join','like','maxof','minof','mod','new','next','nofetch','notexists','null','optimisticlock','order', - 'outer','pause','pessimisticlock','print','private','protected','public','repeatableread','retry','return', - 'reverse','select','server','setting','static','sum','super','switch','tablelock','this','throw','true','try','ttsabort','ttsbegin', - 'ttscommit','update_recordset','validtimestate','void','where','while','window') - RUNTIME_FUNCTIONS = ('_duration','abs','acos','any2Date','any2Enum','any2Guid','any2Int','any2Int64','any2Real','any2Str','anytodate', - 'anytoenum','anytoguid','anytoint','anytoint64','anytoreal','anytostr','asin','atan','beep','cTerm','char2Num','classIdGet', - 'corrFlagGet','corrFlagSet','cos','cosh','curExt','curUserId','date2Num','date2Str','datetime2Str','dayName','dayOfMth', - 'dayOfWk','dayOfYr','ddb','decRound','dg','dimOf','endMth','enum2str','exp','exp10','fV','fieldId2Name','fieldId2PName', - 'fieldName2Id','frac','funcName','getCurrentPartition','getCurrentPartitionRecId','getPrefix','guid2Str','idg','indexId2Name', - 'indexName2Id','int2Str','int642Str','intvMax','intvName','intvNo','intvNorm','log10','logN','match','max','min','mkDate','mthName', - 'mthOfYr','newGuid','nextMth','nextQtr','nextYr','num2Char','num2Date','num2Str','pmt','power','prevMth','prevQtr','prevYr', - 'prmIsDefault','pt','pv','rate','refPrintAll','round','runAs','sessionId','setPrefix','sin','sinh','sleep','sln','str2Date', - 'str2Datetime','str2Enum','str2Guid','str2Int','str2Int64','str2Num','str2Time','strAlpha','strCmp','strColSeq','strDel', - 'strFind','strFmt','strIns','strKeep','strLTrim','strLen','strLine','strLwr','strNFind','strPoke','strPrompt','strRTrim', - 'strRem','strRep','strScan','strUpr','subStr','syd','systemDateGet','systemDateSet','tableId2Name', - 'tableId2PName','tableName2Id','tan','tanh','term','time2Str','timeNow','today','trunc','typeOf','uint2Str','wkOfYr','year') - COMPILE_FUNCTIONS = ('attributeStr','classNum','classStr','configurationKeyNum','configurationKeyStr','dataEntityDataSourceStr','delegateStr', - 'dimensionHierarchyLevelStr','dimensionHierarchyStr','dimensionReferenceStr','dutyStr','enumCnt','enumLiteralStr','enumNum','enumStr', - 'extendedTypeNum','extendedTypeStr','fieldNum','fieldPName','fieldStr','formControlStr','formDataFieldStr','formDataSourceStr', - 'formMethodStr','formStr','identifierStr','indexNum','indexStr','licenseCodeNum','licenseCodeStr','literalStr','maxDate','maxInt', - 'measureStr','measurementStr','menuItemActionStr','menuItemDisplayStr','menuItemOutputStr','menuStr','methodStr','minInt','privilegeStr', - 'queryDatasourceStr','queryMethodStr','queryStr','reportStr','resourceStr','roleStr','ssrsReportStr','staticDelegateStr','staticMethodStr', - 'tableCollectionStr','tableFieldGroupStr','tableMethodStr','tableNum','tablePName','tableStaticMethodStr','tableStr','tileStr','varStr', - 'webActionItemStr','webDisplayContentItemStr','webFormStr','webMenuStr','webOutputContentItemStr','webReportStr','webSiteTempStr', - 'webStaticFileStr','webUrlItemStr','webWebPartStr','webletItemStr','webpageDefStr','websiteDefStr','workflowApprovalStr', - 'workflowCategoryStr','workflowTaskStr','workflowTypeStr') + "<=", + ">=", + "+=", + "-=", + "*=", + "/=", + "!=", + "==", + "&&", + "||", + ">>", + "<<", + "++", + "--", + "+", + "-", + "*", + "/", + "%", + "&", + "|", + "^", + "<", + ">", + "?", + "!", + "~", + "=", + ) + KEYWORDS = ( + "abstract", + "anytype", + "as", + "async", + "asc", + "at", + "avg", + "break", + "breakpoint", + "by", + "byref", + "case", + "catch", + "changecompany", + "client", + "container", + "continue", + "count", + "crosscompany", + "default", + "delegate", + "delete_from", + "desc", + "display", + "div", + "do", + "edit", + "else", + "element", + "eventhandler", + "exists", + "false", + "final", + "firstfast", + "firstonly", + "firstonly10", + "firstonly100", + "firstonly1000", + "flush", + "for", + "forceliterals", + "forcenestedloop", + "forceplaceholders", + "forceselectorder", + "forupdate", + "from", + "group", + "if", + "insert_recordset", + "interface", + "is", + "join", + "like", + "maxof", + "minof", + "mod", + "new", + "next", + "nofetch", + "notexists", + "null", + "optimisticlock", + "order", + "outer", + "pause", + "pessimisticlock", + "print", + "private", + "protected", + "public", + "repeatableread", + "retry", + "return", + "reverse", + "select", + "server", + "setting", + "static", + "sum", + "super", + "switch", + "tablelock", + "this", + "throw", + "true", + "try", + "ttsabort", + "ttsbegin", + "ttscommit", + "update_recordset", + "validtimestate", + "void", + "where", + "while", + "window", + ) + RUNTIME_FUNCTIONS = ( + "_duration", + "abs", + "acos", + "any2Date", + "any2Enum", + "any2Guid", + "any2Int", + "any2Int64", + "any2Real", + "any2Str", + "anytodate", + "anytoenum", + "anytoguid", + "anytoint", + "anytoint64", + "anytoreal", + "anytostr", + "asin", + "atan", + "beep", + "cTerm", + "char2Num", + "classIdGet", + "corrFlagGet", + "corrFlagSet", + "cos", + "cosh", + "curExt", + "curUserId", + "date2Num", + "date2Str", + "datetime2Str", + "dayName", + "dayOfMth", + "dayOfWk", + "dayOfYr", + "ddb", + "decRound", + "dg", + "dimOf", + "endMth", + "enum2str", + "exp", + "exp10", + "fV", + "fieldId2Name", + "fieldId2PName", + "fieldName2Id", + "frac", + "funcName", + "getCurrentPartition", + "getCurrentPartitionRecId", + "getPrefix", + "guid2Str", + "idg", + "indexId2Name", + "indexName2Id", + "int2Str", + "int642Str", + "intvMax", + "intvName", + "intvNo", + "intvNorm", + "log10", + "logN", + "match", + "max", + "min", + "mkDate", + "mthName", + "mthOfYr", + "newGuid", + "nextMth", + "nextQtr", + "nextYr", + "num2Char", + "num2Date", + "num2Str", + "pmt", + "power", + "prevMth", + "prevQtr", + "prevYr", + "prmIsDefault", + "pt", + "pv", + "rate", + "refPrintAll", + "round", + "runAs", + "sessionId", + "setPrefix", + "sin", + "sinh", + "sleep", + "sln", + "str2Date", + "str2Datetime", + "str2Enum", + "str2Guid", + "str2Int", + "str2Int64", + "str2Num", + "str2Time", + "strAlpha", + "strCmp", + "strColSeq", + "strDel", + "strFind", + "strFmt", + "strIns", + "strKeep", + "strLTrim", + "strLen", + "strLine", + "strLwr", + "strNFind", + "strPoke", + "strPrompt", + "strRTrim", + "strRem", + "strRep", + "strScan", + "strUpr", + "subStr", + "syd", + "systemDateGet", + "systemDateSet", + "tableId2Name", + "tableId2PName", + "tableName2Id", + "tan", + "tanh", + "term", + "time2Str", + "timeNow", + "today", + "trunc", + "typeOf", + "uint2Str", + "wkOfYr", + "year", + ) + COMPILE_FUNCTIONS = ( + "attributeStr", + "classNum", + "classStr", + "configurationKeyNum", + "configurationKeyStr", + "dataEntityDataSourceStr", + "delegateStr", + "dimensionHierarchyLevelStr", + "dimensionHierarchyStr", + "dimensionReferenceStr", + "dutyStr", + "enumCnt", + "enumLiteralStr", + "enumNum", + "enumStr", + "extendedTypeNum", + "extendedTypeStr", + "fieldNum", + "fieldPName", + "fieldStr", + "formControlStr", + "formDataFieldStr", + "formDataSourceStr", + "formMethodStr", + "formStr", + "identifierStr", + "indexNum", + "indexStr", + "licenseCodeNum", + "licenseCodeStr", + "literalStr", + "maxDate", + "maxInt", + "measureStr", + "measurementStr", + "menuItemActionStr", + "menuItemDisplayStr", + "menuItemOutputStr", + "menuStr", + "methodStr", + "minInt", + "privilegeStr", + "queryDatasourceStr", + "queryMethodStr", + "queryStr", + "reportStr", + "resourceStr", + "roleStr", + "ssrsReportStr", + "staticDelegateStr", + "staticMethodStr", + "tableCollectionStr", + "tableFieldGroupStr", + "tableMethodStr", + "tableNum", + "tablePName", + "tableStaticMethodStr", + "tableStr", + "tileStr", + "varStr", + "webActionItemStr", + "webDisplayContentItemStr", + "webFormStr", + "webMenuStr", + "webOutputContentItemStr", + "webReportStr", + "webSiteTempStr", + "webStaticFileStr", + "webUrlItemStr", + "webWebPartStr", + "webletItemStr", + "webpageDefStr", + "websiteDefStr", + "workflowApprovalStr", + "workflowCategoryStr", + "workflowTaskStr", + "workflowTypeStr", + ) tokens = {} tokens = { - 'root': [ + "root": [ # method names - (r'(\s*)\b(else|if)\b([^\n])', bygroups(Whitespace, Keyword, using(this))), # ensure that if is not treated like a function - (r'^([ \t]*)((?:' + XPP_CHARS + r'(?:\[\])?\s+)+?)' # return type - r'(' + XPP_CHARS + ')' # method name - r'(\s*)(\()', # signature start - bygroups(Whitespace, using(this), Name.Function, Whitespace, - Punctuation)), - (r'^(\s*)(\[)([^\n]*?)(\])', bygroups(Whitespace, Name.Attribute, Name.Variable.Class, Name.Attribute)), - (r'[^\S\n]+', Whitespace), - (r'(\\)(\n)', bygroups(Text, Whitespace)), # line continuation - (r'//[^\n]*?\n', Comment.Single), - (r'/[*][^\n]*?[*]/', Comment.Multiline), - (r'\n', Whitespace), + ( + r"(\s*)\b(else|if)\b([^\n])", + bygroups(Whitespace, Keyword, using(this)), + ), # ensure that if is not treated like a function + ( + r"^([ \t]*)((?:" + XPP_CHARS + r"(?:\[\])?\s+)+?)" # return type + r"(" + XPP_CHARS + ")" # method name + r"(\s*)(\()", # signature start + bygroups( + Whitespace, using(this), Name.Function, Whitespace, Punctuation + ), + ), + ( + r"^(\s*)(\[)([^\n]*?)(\])", + bygroups( + Whitespace, Name.Attribute, Name.Variable.Class, Name.Attribute + ), + ), + (r"[^\S\n]+", Whitespace), + (r"(\\)(\n)", bygroups(Text, Whitespace)), # line continuation + (r"//[^\n]*?\n", Comment.Single), + (r"/[*][^\n]*?[*]/", Comment.Multiline), + (r"\n", Whitespace), (words(OPERATORS), Operator), - (r'=~|!=|==|<<|>>|[-+/*%=<>&^|]', Operator), - (r'[()\[\];:,.#@]', Punctuation), - (r'[{}]', Punctuation), + (r"=~|!=|==|<<|>>|[-+/*%=<>&^|]", Operator), + (r"[()\[\];:,.#@]", Punctuation), + (r"[{}]", Punctuation), (r'@"(""|[^"])*"', String), (r'\$?"(\\\\|\\[^\\]|[^"\\\n])*["\n]', String), (r"'\\.'|'[^\\]'", String.Char), - (r"[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?" - r"[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?", Number), - (words(KEYWORDS, suffix=r'\b'), Keyword), - (r'(boolean|int|int64|str|real|guid|date)\b\??', Keyword.Type), - (r'(class|struct|extends|implements)(\s+)', bygroups(Keyword, Whitespace), 'class'), - (r'('+XPP_CHARS+')(::)', bygroups(Name.Variable.Class, Punctuation)), - (r'(\s*)(\w+)(\s+\w+(,|=)?[^\n]*;)', bygroups(Whitespace, Name.Variable.Class, using(this))), # declaration + ( + r"[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?" + r"[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?", + Number, + ), + (words(KEYWORDS, suffix=r"\b"), Keyword), + (r"(boolean|int|int64|str|real|guid|date)\b\??", Keyword.Type), + ( + r"(class|struct|extends|implements)(\s+)", + bygroups(Keyword, Whitespace), + "class", + ), + (r"(" + XPP_CHARS + ")(::)", bygroups(Name.Variable.Class, Punctuation)), + ( + r"(\s*)(\w+)(\s+\w+(,|=)?[^\n]*;)", + bygroups(Whitespace, Name.Variable.Class, using(this)), + ), # declaration # x++ specific function to get field should highlight the classname - (r'(fieldNum\()('+XPP_CHARS+r')(\s*,\s*)('+XPP_CHARS+r')(\s*\))', - bygroups(using(this), Name.Variable.Class, using(this), Name.Property, using(this))), + ( + r"(fieldNum\()(" + XPP_CHARS + r")(\s*,\s*)(" + XPP_CHARS + r")(\s*\))", + bygroups( + using(this), + Name.Variable.Class, + using(this), + Name.Property, + using(this), + ), + ), # x++ specific function to get table should highlight the classname - (r'(tableNum\()('+XPP_CHARS+r')(\s*\))', - bygroups(using(this), Name.Variable.Class, using(this))), - (words(RUNTIME_FUNCTIONS, suffix=r'(?=\()'), Name.Function.Magic), - (words(COMPILE_FUNCTIONS, suffix=r'(?=\()'), Name.Function.Magic), + ( + r"(tableNum\()(" + XPP_CHARS + r")(\s*\))", + bygroups(using(this), Name.Variable.Class, using(this)), + ), + (words(RUNTIME_FUNCTIONS, suffix=r"(?=\()"), Name.Function.Magic), + (words(COMPILE_FUNCTIONS, suffix=r"(?=\()"), Name.Function.Magic), (XPP_CHARS, Name), ], - 'class': [ - (XPP_CHARS, Name.Class, '#pop'), - default('#pop'), + "class": [ + (XPP_CHARS, Name.Class, "#pop"), + default("#pop"), + ], + "namespace": [ + (r"(?=\()", Text, "#pop"), # using (resource) + ("(" + XPP_CHARS + r"|\.)+", Name.Namespace, "#pop"), ], - 'namespace': [ - (r'(?=\()', Text, '#pop'), # using (resource) - ('(' + XPP_CHARS + r'|\.)+', Name.Namespace, '#pop'), - ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dsls.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dsls.py index d30c112..da09786 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dsls.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dsls.py @@ -1,23 +1,52 @@ """ - pygments.lexers.dsls - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.dsls +~~~~~~~~~~~~~~~~~~~~ - Lexers for various domain-specific languages. +Lexers for various domain-specific languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import ExtendedRegexLexer, RegexLexer, bygroups, words, \ - include, default, this, using, combined -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.lexer import ( + ExtendedRegexLexer, + RegexLexer, + bygroups, + words, + include, + default, + this, + using, + combined, +) +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['ProtoBufLexer', 'ZeekLexer', 'PuppetLexer', 'RslLexer', - 'MscgenLexer', 'VGLLexer', 'AlloyLexer', 'PanLexer', - 'CrmshLexer', 'ThriftLexer', 'FlatlineLexer', 'SnowballLexer'] +__all__ = [ + "ProtoBufLexer", + "ZeekLexer", + "PuppetLexer", + "RslLexer", + "MscgenLexer", + "VGLLexer", + "AlloyLexer", + "PanLexer", + "CrmshLexer", + "ThriftLexer", + "FlatlineLexer", + "SnowballLexer", +] class ProtoBufLexer(RegexLexer): @@ -25,58 +54,104 @@ class ProtoBufLexer(RegexLexer): Lexer for Protocol Buffer definition files. """ - name = 'Protocol Buffer' - url = 'https://developers.google.com/protocol-buffers/' - aliases = ['protobuf', 'proto'] - filenames = ['*.proto'] - version_added = '1.4' + name = "Protocol Buffer" + url = "https://developers.google.com/protocol-buffers/" + aliases = ["protobuf", "proto"] + filenames = ["*.proto"] + version_added = "1.4" tokens = { - 'root': [ - (r'[ \t]+', Whitespace), - (r'[,;{}\[\]()<>]', Punctuation), - (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single), - (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline), - (words(( - 'import', 'option', 'optional', 'required', 'repeated', - 'reserved', 'default', 'packed', 'ctype', 'extensions', 'to', - 'max', 'rpc', 'returns', 'oneof', 'syntax'), prefix=r'\b', suffix=r'\b'), - Keyword), - (words(( - 'int32', 'int64', 'uint32', 'uint64', 'sint32', 'sint64', - 'fixed32', 'fixed64', 'sfixed32', 'sfixed64', - 'float', 'double', 'bool', 'string', 'bytes'), suffix=r'\b'), - Keyword.Type), - (r'(true|false)\b', Keyword.Constant), - (r'(package)(\s+)', bygroups(Keyword.Namespace, Whitespace), 'package'), - (r'(message|extend)(\s+)', - bygroups(Keyword.Declaration, Whitespace), 'message'), - (r'(enum|group|service)(\s+)', - bygroups(Keyword.Declaration, Whitespace), 'type'), - (r'\".*?\"', String), - (r'\'.*?\'', String), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), - (r'(\-?(inf|nan))\b', Number.Float), - (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex), - (r'0[0-7]+[LlUu]*', Number.Oct), - (r'\d+[LlUu]*', Number.Integer), - (r'[+-=]', Operator), - (r'([a-zA-Z_][\w.]*)([ \t]*)(=)', - bygroups(Name.Attribute, Whitespace, Operator)), - (r'[a-zA-Z_][\w.]*', Name), + "root": [ + (r"[ \t]+", Whitespace), + (r"[,;{}\[\]()<>]", Punctuation), + (r"/(\\\n)?/(\n|(.|\n)*?[^\\]\n)", Comment.Single), + (r"/(\\\n)?\*(.|\n)*?\*(\\\n)?/", Comment.Multiline), + ( + words( + ( + "import", + "option", + "optional", + "required", + "repeated", + "reserved", + "default", + "packed", + "ctype", + "extensions", + "to", + "max", + "rpc", + "returns", + "oneof", + "syntax", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "int32", + "int64", + "uint32", + "uint64", + "sint32", + "sint64", + "fixed32", + "fixed64", + "sfixed32", + "sfixed64", + "float", + "double", + "bool", + "string", + "bytes", + ), + suffix=r"\b", + ), + Keyword.Type, + ), + (r"(true|false)\b", Keyword.Constant), + (r"(package)(\s+)", bygroups(Keyword.Namespace, Whitespace), "package"), + ( + r"(message|extend)(\s+)", + bygroups(Keyword.Declaration, Whitespace), + "message", + ), + ( + r"(enum|group|service)(\s+)", + bygroups(Keyword.Declaration, Whitespace), + "type", + ), + (r"\".*?\"", String), + (r"\'.*?\'", String), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float), + (r"(\-?(inf|nan))\b", Number.Float), + (r"0x[0-9a-fA-F]+[LlUu]*", Number.Hex), + (r"0[0-7]+[LlUu]*", Number.Oct), + (r"\d+[LlUu]*", Number.Integer), + (r"[+-=]", Operator), + ( + r"([a-zA-Z_][\w.]*)([ \t]*)(=)", + bygroups(Name.Attribute, Whitespace, Operator), + ), + (r"[a-zA-Z_][\w.]*", Name), ], - 'package': [ - (r'[a-zA-Z_]\w*', Name.Namespace, '#pop'), - default('#pop'), + "package": [ + (r"[a-zA-Z_]\w*", Name.Namespace, "#pop"), + default("#pop"), ], - 'message': [ - (r'[a-zA-Z_]\w*', Name.Class, '#pop'), - default('#pop'), + "message": [ + (r"[a-zA-Z_]\w*", Name.Class, "#pop"), + default("#pop"), ], - 'type': [ - (r'[a-zA-Z_]\w*', Name, '#pop'), - default('#pop'), + "type": [ + (r"[a-zA-Z_]\w*", Name, "#pop"), + default("#pop"), ], } @@ -85,103 +160,234 @@ class ThriftLexer(RegexLexer): """ For Thrift interface definitions. """ - name = 'Thrift' - url = 'https://thrift.apache.org/' - aliases = ['thrift'] - filenames = ['*.thrift'] - mimetypes = ['application/x-thrift'] - version_added = '2.1' + + name = "Thrift" + url = "https://thrift.apache.org/" + aliases = ["thrift"] + filenames = ["*.thrift"] + mimetypes = ["application/x-thrift"] + version_added = "2.1" tokens = { - 'root': [ - include('whitespace'), - include('comments'), - (r'"', String.Double, combined('stringescape', 'dqs')), - (r'\'', String.Single, combined('stringescape', 'sqs')), - (r'(namespace)(\s+)', - bygroups(Keyword.Namespace, Whitespace), 'namespace'), - (r'(enum|union|struct|service|exception)(\s+)', - bygroups(Keyword.Declaration, Whitespace), 'class'), - (r'((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)' # return arguments - r'((?:[^\W\d]|\$)[\w$]*)' # method name - r'(\s*)(\()', # signature start - bygroups(using(this), Name.Function, Whitespace, Operator)), - include('keywords'), - include('numbers'), - (r'[&=]', Operator), - (r'[:;,{}()<>\[\]]', Punctuation), - (r'[a-zA-Z_](\.\w|\w)*', Name), + "root": [ + include("whitespace"), + include("comments"), + (r'"', String.Double, combined("stringescape", "dqs")), + (r"\'", String.Single, combined("stringescape", "sqs")), + (r"(namespace)(\s+)", bygroups(Keyword.Namespace, Whitespace), "namespace"), + ( + r"(enum|union|struct|service|exception)(\s+)", + bygroups(Keyword.Declaration, Whitespace), + "class", + ), + ( + r"((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)" # return arguments + r"((?:[^\W\d]|\$)[\w$]*)" # method name + r"(\s*)(\()", # signature start + bygroups(using(this), Name.Function, Whitespace, Operator), + ), + include("keywords"), + include("numbers"), + (r"[&=]", Operator), + (r"[:;,{}()<>\[\]]", Punctuation), + (r"[a-zA-Z_](\.\w|\w)*", Name), ], - 'whitespace': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), + "whitespace": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), ], - 'comments': [ - (r'#.*$', Comment), - (r'//.*?\n', Comment), - (r'/\*[\w\W]*?\*/', Comment.Multiline), + "comments": [ + (r"#.*$", Comment), + (r"//.*?\n", Comment), + (r"/\*[\w\W]*?\*/", Comment.Multiline), ], - 'stringescape': [ + "stringescape": [ (r'\\([\\nrt"\'])', String.Escape), ], - 'dqs': [ - (r'"', String.Double, '#pop'), + "dqs": [ + (r'"', String.Double, "#pop"), (r'[^\\"\n]+', String.Double), ], - 'sqs': [ - (r"'", String.Single, '#pop'), - (r'[^\\\'\n]+', String.Single), + "sqs": [ + (r"'", String.Single, "#pop"), + (r"[^\\\'\n]+", String.Single), ], - 'namespace': [ - (r'[a-z*](\.\w|\w)*', Name.Namespace, '#pop'), - default('#pop'), + "namespace": [ + (r"[a-z*](\.\w|\w)*", Name.Namespace, "#pop"), + default("#pop"), ], - 'class': [ - (r'[a-zA-Z_]\w*', Name.Class, '#pop'), - default('#pop'), + "class": [ + (r"[a-zA-Z_]\w*", Name.Class, "#pop"), + default("#pop"), ], - 'keywords': [ - (r'(async|oneway|extends|throws|required|optional)\b', Keyword), - (r'(true|false)\b', Keyword.Constant), - (r'(const|typedef)\b', Keyword.Declaration), - (words(( - 'cpp_namespace', 'cpp_include', 'cpp_type', 'java_package', - 'cocoa_prefix', 'csharp_namespace', 'delphi_namespace', - 'php_namespace', 'py_module', 'perl_package', - 'ruby_namespace', 'smalltalk_category', 'smalltalk_prefix', - 'xsd_all', 'xsd_optional', 'xsd_nillable', 'xsd_namespace', - 'xsd_attrs', 'include'), suffix=r'\b'), - Keyword.Namespace), - (words(( - 'void', 'bool', 'byte', 'i16', 'i32', 'i64', 'double', - 'string', 'binary', 'map', 'list', 'set', 'slist', - 'senum'), suffix=r'\b'), - Keyword.Type), - (words(( - 'BEGIN', 'END', '__CLASS__', '__DIR__', '__FILE__', - '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', - 'abstract', 'alias', 'and', 'args', 'as', 'assert', 'begin', - 'break', 'case', 'catch', 'class', 'clone', 'continue', - 'declare', 'def', 'default', 'del', 'delete', 'do', 'dynamic', - 'elif', 'else', 'elseif', 'elsif', 'end', 'enddeclare', - 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', - 'ensure', 'except', 'exec', 'finally', 'float', 'for', - 'foreach', 'function', 'global', 'goto', 'if', 'implements', - 'import', 'in', 'inline', 'instanceof', 'interface', 'is', - 'lambda', 'module', 'native', 'new', 'next', 'nil', 'not', - 'or', 'pass', 'public', 'print', 'private', 'protected', - 'raise', 'redo', 'rescue', 'retry', 'register', 'return', - 'self', 'sizeof', 'static', 'super', 'switch', 'synchronized', - 'then', 'this', 'throw', 'transient', 'try', 'undef', - 'unless', 'unsigned', 'until', 'use', 'var', 'virtual', - 'volatile', 'when', 'while', 'with', 'xor', 'yield'), - prefix=r'\b', suffix=r'\b'), - Keyword.Reserved), + "keywords": [ + (r"(async|oneway|extends|throws|required|optional)\b", Keyword), + (r"(true|false)\b", Keyword.Constant), + (r"(const|typedef)\b", Keyword.Declaration), + ( + words( + ( + "cpp_namespace", + "cpp_include", + "cpp_type", + "java_package", + "cocoa_prefix", + "csharp_namespace", + "delphi_namespace", + "php_namespace", + "py_module", + "perl_package", + "ruby_namespace", + "smalltalk_category", + "smalltalk_prefix", + "xsd_all", + "xsd_optional", + "xsd_nillable", + "xsd_namespace", + "xsd_attrs", + "include", + ), + suffix=r"\b", + ), + Keyword.Namespace, + ), + ( + words( + ( + "void", + "bool", + "byte", + "i16", + "i32", + "i64", + "double", + "string", + "binary", + "map", + "list", + "set", + "slist", + "senum", + ), + suffix=r"\b", + ), + Keyword.Type, + ), + ( + words( + ( + "BEGIN", + "END", + "__CLASS__", + "__DIR__", + "__FILE__", + "__FUNCTION__", + "__LINE__", + "__METHOD__", + "__NAMESPACE__", + "abstract", + "alias", + "and", + "args", + "as", + "assert", + "begin", + "break", + "case", + "catch", + "class", + "clone", + "continue", + "declare", + "def", + "default", + "del", + "delete", + "do", + "dynamic", + "elif", + "else", + "elseif", + "elsif", + "end", + "enddeclare", + "endfor", + "endforeach", + "endif", + "endswitch", + "endwhile", + "ensure", + "except", + "exec", + "finally", + "float", + "for", + "foreach", + "function", + "global", + "goto", + "if", + "implements", + "import", + "in", + "inline", + "instanceof", + "interface", + "is", + "lambda", + "module", + "native", + "new", + "next", + "nil", + "not", + "or", + "pass", + "public", + "print", + "private", + "protected", + "raise", + "redo", + "rescue", + "retry", + "register", + "return", + "self", + "sizeof", + "static", + "super", + "switch", + "synchronized", + "then", + "this", + "throw", + "transient", + "try", + "undef", + "unless", + "unsigned", + "until", + "use", + "var", + "virtual", + "volatile", + "when", + "while", + "with", + "xor", + "yield", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Reserved, + ), ], - 'numbers': [ - (r'[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)', Number.Float), - (r'[+-]?0x[0-9A-Fa-f]+', Number.Hex), - (r'[+-]?[0-9]+', Number.Integer), + "numbers": [ + (r"[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)", Number.Float), + (r"[+-]?0x[0-9A-Fa-f]+", Number.Hex), + (r"[+-]?[0-9]+", Number.Integer), ], } @@ -190,156 +396,226 @@ class ZeekLexer(RegexLexer): """ For Zeek scripts. """ - name = 'Zeek' - url = 'https://www.zeek.org/' - aliases = ['zeek', 'bro'] - filenames = ['*.zeek', '*.bro'] - version_added = '2.5' - _hex = r'[0-9a-fA-F]' - _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?' - _h = r'[A-Za-z0-9][-A-Za-z0-9]*' + name = "Zeek" + url = "https://www.zeek.org/" + aliases = ["zeek", "bro"] + filenames = ["*.zeek", "*.bro"] + version_added = "2.5" + + _hex = r"[0-9a-fA-F]" + _float = r"((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?" + _h = r"[A-Za-z0-9][-A-Za-z0-9]*" tokens = { - 'root': [ - include('whitespace'), - include('comments'), - include('directives'), - include('attributes'), - include('types'), - include('keywords'), - include('literals'), - include('operators'), - include('punctuation'), - (r'((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()', - Name.Function), - include('identifiers'), + "root": [ + include("whitespace"), + include("comments"), + include("directives"), + include("attributes"), + include("types"), + include("keywords"), + include("literals"), + include("operators"), + include("punctuation"), + (r"((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()", Name.Function), + include("identifiers"), ], - - 'whitespace': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(Text, Whitespace)), + "whitespace": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(Text, Whitespace)), ], - - 'comments': [ - (r'#.*$', Comment), + "comments": [ + (r"#.*$", Comment), ], - - 'directives': [ - (r'@(load-plugin|load-sigs|load|unload)\b.*$', Comment.Preproc), - (r'@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\b', Comment.Preproc), - (r'(@prefixes)(\s*)((\+?=).*)$', bygroups(Comment.Preproc, - Whitespace, Comment.Preproc)), + "directives": [ + (r"@(load-plugin|load-sigs|load|unload)\b.*$", Comment.Preproc), + ( + r"@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\b", + Comment.Preproc, + ), + ( + r"(@prefixes)(\s*)((\+?=).*)$", + bygroups(Comment.Preproc, Whitespace, Comment.Preproc), + ), ], - - 'attributes': [ - (words(('redef', 'priority', 'log', 'optional', 'default', 'add_func', - 'delete_func', 'expire_func', 'read_expire', 'write_expire', - 'create_expire', 'synchronized', 'persistent', 'rotate_interval', - 'rotate_size', 'encrypt', 'raw_output', 'mergeable', 'error_handler', - 'type_column', 'deprecated'), - prefix=r'&', suffix=r'\b'), - Keyword.Pseudo), + "attributes": [ + ( + words( + ( + "redef", + "priority", + "log", + "optional", + "default", + "add_func", + "delete_func", + "expire_func", + "read_expire", + "write_expire", + "create_expire", + "synchronized", + "persistent", + "rotate_interval", + "rotate_size", + "encrypt", + "raw_output", + "mergeable", + "error_handler", + "type_column", + "deprecated", + ), + prefix=r"&", + suffix=r"\b", + ), + Keyword.Pseudo, + ), ], - - 'types': [ - (words(('any', - 'enum', 'record', 'set', 'table', 'vector', - 'function', 'hook', 'event', - 'addr', 'bool', 'count', 'double', 'file', 'int', 'interval', - 'pattern', 'port', 'string', 'subnet', 'time'), - suffix=r'\b'), - Keyword.Type), - - (r'(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b', - bygroups(Keyword.Type, Whitespace, Operator.Word, Whitespace, Keyword.Type)), - - (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\b', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, Operator, Whitespace, Keyword.Type)), - - (r'(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)', - bygroups(Keyword, Whitespace, Name, Whitespace, Operator)), - - (r'(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b', - bygroups(Keyword, Whitespace, Keyword.Type, Whitespace, Name.Class)), + "types": [ + ( + words( + ( + "any", + "enum", + "record", + "set", + "table", + "vector", + "function", + "hook", + "event", + "addr", + "bool", + "count", + "double", + "file", + "int", + "interval", + "pattern", + "port", + "string", + "subnet", + "time", + ), + suffix=r"\b", + ), + Keyword.Type, + ), + ( + r"(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b", + bygroups( + Keyword.Type, Whitespace, Operator.Word, Whitespace, Keyword.Type + ), + ), + ( + r"(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\b", + bygroups( + Keyword, + Whitespace, + Name.Class, + Whitespace, + Operator, + Whitespace, + Keyword.Type, + ), + ), + ( + r"(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)", + bygroups(Keyword, Whitespace, Name, Whitespace, Operator), + ), + ( + r"(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b", + bygroups(Keyword, Whitespace, Keyword.Type, Whitespace, Name.Class), + ), ], - - 'keywords': [ - (words(('redef', 'export', 'if', 'else', 'for', 'while', - 'return', 'break', 'next', 'continue', 'fallthrough', - 'switch', 'default', 'case', - 'add', 'delete', - 'when', 'timeout', 'schedule'), - suffix=r'\b'), - Keyword), - (r'(print)\b', Keyword), - (r'(global|local|const|option)\b', Keyword.Declaration), - (r'(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\b', - bygroups(Keyword.Namespace, Whitespace, Name.Namespace)), + "keywords": [ + ( + words( + ( + "redef", + "export", + "if", + "else", + "for", + "while", + "return", + "break", + "next", + "continue", + "fallthrough", + "switch", + "default", + "case", + "add", + "delete", + "when", + "timeout", + "schedule", + ), + suffix=r"\b", + ), + Keyword, + ), + (r"(print)\b", Keyword), + (r"(global|local|const|option)\b", Keyword.Declaration), + ( + r"(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\b", + bygroups(Keyword.Namespace, Whitespace, Name.Namespace), + ), ], - - 'literals': [ - (r'"', String, 'string'), - + "literals": [ + (r'"', String, "string"), # Not the greatest match for patterns, but generally helps # disambiguate between start of a pattern and just a division # operator. - (r'/(?=.*/)', String.Regex, 'regex'), - - (r'(T|F)\b', Keyword.Constant), - + (r"/(?=.*/)", String.Regex, "regex"), + (r"(T|F)\b", Keyword.Constant), # Port - (r'\d{1,5}/(udp|tcp|icmp|unknown)\b', Number), - + (r"\d{1,5}/(udp|tcp|icmp|unknown)\b", Number), # IPv4 Address - (r'(\d{1,3}.){3}(\d{1,3})\b', Number), - + (r"(\d{1,3}.){3}(\d{1,3})\b", Number), # IPv6 Address - (r'\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]', Number), - + ( + r"\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]", + Number, + ), # Numeric - (r'0[xX]' + _hex + r'+\b', Number.Hex), - (_float + r'\s*(day|hr|min|sec|msec|usec)s?\b', Number.Float), - (_float + r'\b', Number.Float), - (r'(\d+)\b', Number.Integer), - + (r"0[xX]" + _hex + r"+\b", Number.Hex), + (_float + r"\s*(day|hr|min|sec|msec|usec)s?\b", Number.Float), + (_float + r"\b", Number.Float), + (r"(\d+)\b", Number.Integer), # Hostnames - (_h + r'(\.' + _h + r')+', String), + (_h + r"(\." + _h + r")+", String), ], - - 'operators': [ - (r'[!%*/+<=>~|&^-]', Operator), - (r'([-+=&|]{2}|[+=!><-]=)', Operator), - (r'(in|as|is|of)\b', Operator.Word), - (r'\??\$', Operator), + "operators": [ + (r"[!%*/+<=>~|&^-]", Operator), + (r"([-+=&|]{2}|[+=!><-]=)", Operator), + (r"(in|as|is|of)\b", Operator.Word), + (r"\??\$", Operator), ], - - 'punctuation': [ - (r'[{}()\[\],;.]', Punctuation), + "punctuation": [ + (r"[{}()\[\],;.]", Punctuation), # The "ternary if", which uses '?' and ':', could instead be # treated as an Operator, but colons are more frequently used to # separate field/identifier names from their types, so the (often) # less-prominent Punctuation is used even with '?' for consistency. - (r'[?:]', Punctuation), + (r"[?:]", Punctuation), ], - - 'identifiers': [ - (r'([a-zA-Z_]\w*)(::)', bygroups(Name, Punctuation)), - (r'[a-zA-Z_]\w*', Name) + "identifiers": [ + (r"([a-zA-Z_]\w*)(::)", bygroups(Name, Punctuation)), + (r"[a-zA-Z_]\w*", Name), ], - - 'string': [ - (r'\\.', String.Escape), - (r'%-?[0-9]*(\.[0-9]+)?[DTd-gsx]', String.Escape), - (r'"', String, '#pop'), - (r'.', String), + "string": [ + (r"\\.", String.Escape), + (r"%-?[0-9]*(\.[0-9]+)?[DTd-gsx]", String.Escape), + (r'"', String, "#pop"), + (r".", String), ], - - 'regex': [ - (r'\\.', String.Escape), - (r'/', String.Regex, '#pop'), - (r'.', String.Regex), + "regex": [ + (r"\\.", String.Escape), + (r"/", String.Regex, "#pop"), + (r".", String.Regex), ], } @@ -351,86 +627,175 @@ class PuppetLexer(RegexLexer): """ For Puppet configuration DSL. """ - name = 'Puppet' - url = 'https://puppet.com/' - aliases = ['puppet'] - filenames = ['*.pp'] - version_added = '1.6' + + name = "Puppet" + url = "https://puppet.com/" + aliases = ["puppet"] + filenames = ["*.pp"] + version_added = "1.6" tokens = { - 'root': [ - include('comments'), - include('keywords'), - include('names'), - include('numbers'), - include('operators'), - include('strings'), - - (r'[]{}:(),;[]', Punctuation), - (r'\s+', Whitespace), + "root": [ + include("comments"), + include("keywords"), + include("names"), + include("numbers"), + include("operators"), + include("strings"), + (r"[]{}:(),;[]", Punctuation), + (r"\s+", Whitespace), ], - - 'comments': [ - (r'(\s*)(#.*)$', bygroups(Whitespace, Comment)), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), + "comments": [ + (r"(\s*)(#.*)$", bygroups(Whitespace, Comment)), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), ], - - 'operators': [ - (r'(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)', Operator), - (r'(in|and|or|not)\b', Operator.Word), + "operators": [ + (r"(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)", Operator), + (r"(in|and|or|not)\b", Operator.Word), ], - - 'names': [ - (r'[a-zA-Z_]\w*', Name.Attribute), - (r'(\$\S+)(\[)(\S+)(\])', bygroups(Name.Variable, Punctuation, - String, Punctuation)), - (r'\$\S+', Name.Variable), + "names": [ + (r"[a-zA-Z_]\w*", Name.Attribute), + ( + r"(\$\S+)(\[)(\S+)(\])", + bygroups(Name.Variable, Punctuation, String, Punctuation), + ), + (r"\$\S+", Name.Variable), ], - - 'numbers': [ + "numbers": [ # Copypasta from the Python lexer - (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float), - (r'\d+[eE][+-]?[0-9]+j?', Number.Float), - (r'0[0-7]+j?', Number.Oct), - (r'0[xX][a-fA-F0-9]+', Number.Hex), - (r'\d+L', Number.Integer.Long), - (r'\d+j?', Number.Integer) + (r"(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?", Number.Float), + (r"\d+[eE][+-]?[0-9]+j?", Number.Float), + (r"0[0-7]+j?", Number.Oct), + (r"0[xX][a-fA-F0-9]+", Number.Hex), + (r"\d+L", Number.Integer.Long), + (r"\d+j?", Number.Integer), ], - - 'keywords': [ + "keywords": [ # Left out 'group' and 'require' # Since they're often used as attributes - (words(( - 'absent', 'alert', 'alias', 'audit', 'augeas', 'before', 'case', - 'check', 'class', 'computer', 'configured', 'contained', - 'create_resources', 'crit', 'cron', 'debug', 'default', - 'define', 'defined', 'directory', 'else', 'elsif', 'emerg', - 'err', 'exec', 'extlookup', 'fail', 'false', 'file', - 'filebucket', 'fqdn_rand', 'generate', 'host', 'if', 'import', - 'include', 'info', 'inherits', 'inline_template', 'installed', - 'interface', 'k5login', 'latest', 'link', 'loglevel', - 'macauthorization', 'mailalias', 'maillist', 'mcx', 'md5', - 'mount', 'mounted', 'nagios_command', 'nagios_contact', - 'nagios_contactgroup', 'nagios_host', 'nagios_hostdependency', - 'nagios_hostescalation', 'nagios_hostextinfo', 'nagios_hostgroup', - 'nagios_service', 'nagios_servicedependency', 'nagios_serviceescalation', - 'nagios_serviceextinfo', 'nagios_servicegroup', 'nagios_timeperiod', - 'node', 'noop', 'notice', 'notify', 'package', 'present', 'purged', - 'realize', 'regsubst', 'resources', 'role', 'router', 'running', - 'schedule', 'scheduled_task', 'search', 'selboolean', 'selmodule', - 'service', 'sha1', 'shellquote', 'split', 'sprintf', - 'ssh_authorized_key', 'sshkey', 'stage', 'stopped', 'subscribe', - 'tag', 'tagged', 'template', 'tidy', 'true', 'undef', 'unmounted', - 'user', 'versioncmp', 'vlan', 'warning', 'yumrepo', 'zfs', 'zone', - 'zpool'), prefix='(?i)', suffix=r'\b'), - Keyword), + ( + words( + ( + "absent", + "alert", + "alias", + "audit", + "augeas", + "before", + "case", + "check", + "class", + "computer", + "configured", + "contained", + "create_resources", + "crit", + "cron", + "debug", + "default", + "define", + "defined", + "directory", + "else", + "elsif", + "emerg", + "err", + "exec", + "extlookup", + "fail", + "false", + "file", + "filebucket", + "fqdn_rand", + "generate", + "host", + "if", + "import", + "include", + "info", + "inherits", + "inline_template", + "installed", + "interface", + "k5login", + "latest", + "link", + "loglevel", + "macauthorization", + "mailalias", + "maillist", + "mcx", + "md5", + "mount", + "mounted", + "nagios_command", + "nagios_contact", + "nagios_contactgroup", + "nagios_host", + "nagios_hostdependency", + "nagios_hostescalation", + "nagios_hostextinfo", + "nagios_hostgroup", + "nagios_service", + "nagios_servicedependency", + "nagios_serviceescalation", + "nagios_serviceextinfo", + "nagios_servicegroup", + "nagios_timeperiod", + "node", + "noop", + "notice", + "notify", + "package", + "present", + "purged", + "realize", + "regsubst", + "resources", + "role", + "router", + "running", + "schedule", + "scheduled_task", + "search", + "selboolean", + "selmodule", + "service", + "sha1", + "shellquote", + "split", + "sprintf", + "ssh_authorized_key", + "sshkey", + "stage", + "stopped", + "subscribe", + "tag", + "tagged", + "template", + "tidy", + "true", + "undef", + "unmounted", + "user", + "versioncmp", + "vlan", + "warning", + "yumrepo", + "zfs", + "zone", + "zpool", + ), + prefix="(?i)", + suffix=r"\b", + ), + Keyword, + ), ], - - 'strings': [ + "strings": [ (r'"([^"])*"', String), (r"'(\\'|[^'])*'", String), ], - } @@ -440,52 +805,130 @@ class RslLexer(RegexLexer): language used in RAISE (Rigorous Approach to Industrial Software Engineering) method. """ - name = 'RSL' - url = 'http://en.wikipedia.org/wiki/RAISE' - aliases = ['rsl'] - filenames = ['*.rsl'] - mimetypes = ['text/rsl'] - version_added = '2.0' + + name = "RSL" + url = "http://en.wikipedia.org/wiki/RAISE" + aliases = ["rsl"] + filenames = ["*.rsl"] + mimetypes = ["text/rsl"] + version_added = "2.0" flags = re.MULTILINE | re.DOTALL tokens = { - 'root': [ - (words(( - 'Bool', 'Char', 'Int', 'Nat', 'Real', 'Text', 'Unit', 'abs', - 'all', 'always', 'any', 'as', 'axiom', 'card', 'case', 'channel', - 'chaos', 'class', 'devt_relation', 'dom', 'elems', 'else', 'elif', - 'end', 'exists', 'extend', 'false', 'for', 'hd', 'hide', 'if', - 'in', 'is', 'inds', 'initialise', 'int', 'inter', 'isin', 'len', - 'let', 'local', 'ltl_assertion', 'object', 'of', 'out', 'post', - 'pre', 'read', 'real', 'rng', 'scheme', 'skip', 'stop', 'swap', - 'then', 'theory', 'test_case', 'tl', 'transition_system', 'true', - 'type', 'union', 'until', 'use', 'value', 'variable', 'while', - 'with', 'write', '~isin', '-inflist', '-infset', '-list', - '-set'), prefix=r'\b', suffix=r'\b'), - Keyword), - (r'(variable|value)\b', Keyword.Declaration), - (r'--.*?\n', Comment), - (r'<:.*?:>', Comment), - (r'\{!.*?!\}', Comment), - (r'/\*.*?\*/', Comment), - (r'^([ \t]*)([\w]+)([ \t]*)(:[^:])', bygroups(Whitespace, - Name.Function, Whitespace, Name.Function)), - (r'(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)', - bygroups(Whitespace, Name.Function, Whitespace, Text, - Whitespace, Keyword)), - (r'\b[A-Z]\w*\b', Keyword.Type), - (r'(true|false)\b', Keyword.Constant), + "root": [ + ( + words( + ( + "Bool", + "Char", + "Int", + "Nat", + "Real", + "Text", + "Unit", + "abs", + "all", + "always", + "any", + "as", + "axiom", + "card", + "case", + "channel", + "chaos", + "class", + "devt_relation", + "dom", + "elems", + "else", + "elif", + "end", + "exists", + "extend", + "false", + "for", + "hd", + "hide", + "if", + "in", + "is", + "inds", + "initialise", + "int", + "inter", + "isin", + "len", + "let", + "local", + "ltl_assertion", + "object", + "of", + "out", + "post", + "pre", + "read", + "real", + "rng", + "scheme", + "skip", + "stop", + "swap", + "then", + "theory", + "test_case", + "tl", + "transition_system", + "true", + "type", + "union", + "until", + "use", + "value", + "variable", + "while", + "with", + "write", + "~isin", + "-inflist", + "-infset", + "-list", + "-set", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + (r"(variable|value)\b", Keyword.Declaration), + (r"--.*?\n", Comment), + (r"<:.*?:>", Comment), + (r"\{!.*?!\}", Comment), + (r"/\*.*?\*/", Comment), + ( + r"^([ \t]*)([\w]+)([ \t]*)(:[^:])", + bygroups(Whitespace, Name.Function, Whitespace, Name.Function), + ), + ( + r"(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)", + bygroups( + Whitespace, Name.Function, Whitespace, Text, Whitespace, Keyword + ), + ), + (r"\b[A-Z]\w*\b", Keyword.Type), + (r"(true|false)\b", Keyword.Constant), (r'".*"', String), - (r'\'.\'', String.Char), - (r'(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|' - r'\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)', - Operator), - (r'[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float), - (r'0x[0-9a-f]+', Number.Hex), - (r'[0-9]+', Number.Integer), - (r'\s+', Whitespace), - (r'.', Text), + (r"\'.\'", String.Char), + ( + r"(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|" + r"\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)", + Operator, + ), + (r"[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float), + (r"0x[0-9a-f]+", Number.Hex), + (r"[0-9]+", Number.Integer), + (r"\s+", Whitespace), + (r".", Text), ], } @@ -493,7 +936,7 @@ class RslLexer(RegexLexer): """ Check for the most common text in the beginning of a RSL file. """ - if re.search(r'scheme\s*.*?=\s*class\s*type', text, re.I) is not None: + if re.search(r"scheme\s*.*?=\s*class\s*type", text, re.I) is not None: return 1.0 @@ -501,48 +944,56 @@ class MscgenLexer(RegexLexer): """ For Mscgen files. """ - name = 'Mscgen' - url = 'http://www.mcternan.me.uk/mscgen/' - aliases = ['mscgen', 'msc'] - filenames = ['*.msc'] - version_added = '1.6' + + name = "Mscgen" + url = "http://www.mcternan.me.uk/mscgen/" + aliases = ["mscgen", "msc"] + filenames = ["*.msc"] + version_added = "1.6" _var = r'(\w+|"(?:\\"|[^"])*")' tokens = { - 'root': [ - (r'msc\b', Keyword.Type), + "root": [ + (r"msc\b", Keyword.Type), # Options - (r'(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS' - r'|arcgradient|ARCGRADIENT)\b', Name.Property), + ( + r"(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS" + r"|arcgradient|ARCGRADIENT)\b", + Name.Property, + ), # Operators - (r'(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\b', Operator.Word), - (r'(\.|-|\|){3}', Keyword), - (r'(?:-|=|\.|:){2}' - r'|<<=>>|<->|<=>|<<>>|<:>' - r'|->|=>>|>>|=>|:>|-x|-X' - r'|<-|<<=|<<|<=|<:|x-|X-|=', Operator), + (r"(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\b", Operator.Word), + (r"(\.|-|\|){3}", Keyword), + ( + r"(?:-|=|\.|:){2}" + r"|<<=>>|<->|<=>|<<>>|<:>" + r"|->|=>>|>>|=>|:>|-x|-X" + r"|<-|<<=|<<|<=|<:|x-|X-|=", + Operator, + ), # Names - (r'\*', Name.Builtin), + (r"\*", Name.Builtin), (_var, Name.Variable), # Other - (r'\[', Punctuation, 'attrs'), - (r'\{|\}|,|;', Punctuation), - include('comments') + (r"\[", Punctuation, "attrs"), + (r"\{|\}|,|;", Punctuation), + include("comments"), ], - 'attrs': [ - (r'\]', Punctuation, '#pop'), - (_var + r'(\s*)(=)(\s*)' + _var, - bygroups(Name.Attribute, Whitespace, Operator, Whitespace, - String)), - (r',', Punctuation), - include('comments') + "attrs": [ + (r"\]", Punctuation, "#pop"), + ( + _var + r"(\s*)(=)(\s*)" + _var, + bygroups(Name.Attribute, Whitespace, Operator, Whitespace, String), + ), + (r",", Punctuation), + include("comments"), + ], + "comments": [ + (r"(?://|#).*?\n", Comment.Single), + (r"/\*(?:.|\n)*?\*/", Comment.Multiline), + (r"[ \t\r\n]+", Whitespace), ], - 'comments': [ - (r'(?://|#).*?\n', Comment.Single), - (r'/\*(?:.|\n)*?\*/', Comment.Multiline), - (r'[ \t\r\n]+', Whitespace) - ] } @@ -550,31 +1001,34 @@ class VGLLexer(RegexLexer): """ For SampleManager VGL source code. """ - name = 'VGL' - url = 'http://www.thermoscientific.com/samplemanager' - aliases = ['vgl'] - filenames = ['*.rpf'] - version_added = '1.6' + + name = "VGL" + url = "http://www.thermoscientific.com/samplemanager" + aliases = ["vgl"] + filenames = ["*.rpf"] + version_added = "1.6" flags = re.MULTILINE | re.DOTALL | re.IGNORECASE tokens = { - 'root': [ - (r'\{[^}]*\}', Comment.Multiline), - (r'declare', Keyword.Constant), - (r'(if|then|else|endif|while|do|endwhile|and|or|prompt|object' - r'|create|on|line|with|global|routine|value|endroutine|constant' - r'|global|set|join|library|compile_option|file|exists|create|copy' - r'|delete|enable|windows|name|notprotected)(?! *[=<>.,()])', - Keyword), - (r'(true|false|null|empty|error|locked)', Keyword.Constant), - (r'[~^*#!%&\[\]()<>|+=:;,./?-]', Operator), + "root": [ + (r"\{[^}]*\}", Comment.Multiline), + (r"declare", Keyword.Constant), + ( + r"(if|then|else|endif|while|do|endwhile|and|or|prompt|object" + r"|create|on|line|with|global|routine|value|endroutine|constant" + r"|global|set|join|library|compile_option|file|exists|create|copy" + r"|delete|enable|windows|name|notprotected)(?! *[=<>.,()])", + Keyword, + ), + (r"(true|false|null|empty|error|locked)", Keyword.Constant), + (r"[~^*#!%&\[\]()<>|+=:;,./?-]", Operator), (r'"[^"]*"', String), - (r'(\.)([a-z_$][\w$]*)', bygroups(Operator, Name.Attribute)), - (r'[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?', Number), - (r'[a-z_$][\w$]*', Name), - (r'[\r\n]+', Whitespace), - (r'\s+', Whitespace) + (r"(\.)([a-z_$][\w$]*)", bygroups(Operator, Name.Attribute)), + (r"[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?", Number), + (r"[a-z_$][\w$]*", Name), + (r"[\r\n]+", Whitespace), + (r"\s+", Whitespace), ] } @@ -584,66 +1038,71 @@ class AlloyLexer(RegexLexer): For Alloy source code. """ - name = 'Alloy' - url = 'http://alloy.mit.edu' - aliases = ['alloy'] - filenames = ['*.als'] - mimetypes = ['text/x-alloy'] - version_added = '2.0' + name = "Alloy" + url = "http://alloy.mit.edu" + aliases = ["alloy"] + filenames = ["*.als"] + mimetypes = ["text/x-alloy"] + version_added = "2.0" flags = re.MULTILINE | re.DOTALL iden_rex = r'[a-zA-Z_][\w]*"*' string_rex = r'"\b(\\\\|\\[^\\]|[^"\\])*"' - text_tuple = (r'[^\S\n]+', Whitespace) + text_tuple = (r"[^\S\n]+", Whitespace) tokens = { - 'sig': [ - (r'(extends)\b', Keyword, '#pop'), + "sig": [ + (r"(extends)\b", Keyword, "#pop"), (iden_rex, Name), text_tuple, - (r',', Punctuation), - (r'\{', Operator, '#pop'), + (r",", Punctuation), + (r"\{", Operator, "#pop"), ], - 'module': [ + "module": [ text_tuple, - (iden_rex, Name, '#pop'), + (iden_rex, Name, "#pop"), ], - 'fun': [ + "fun": [ text_tuple, - (r'\{', Operator, '#pop'), - (iden_rex, Name, '#pop'), + (r"\{", Operator, "#pop"), + (iden_rex, Name, "#pop"), ], - 'fact': [ - include('fun'), - (string_rex, String, '#pop'), + "fact": [ + include("fun"), + (string_rex, String, "#pop"), ], - 'root': [ - (r'--.*?$', Comment.Single), - (r'//.*?$', Comment.Single), - (r'/\*.*?\*/', Comment.Multiline), + "root": [ + (r"--.*?$", Comment.Single), + (r"//.*?$", Comment.Single), + (r"/\*.*?\*/", Comment.Multiline), text_tuple, - (r'(module|open)(\s+)', bygroups(Keyword.Namespace, Whitespace), - 'module'), - (r'(sig|enum)(\s+)', bygroups(Keyword.Declaration, Whitespace), 'sig'), - (r'(iden|univ|none)\b', Keyword.Constant), - (r'(int|Int)\b', Keyword.Type), - (r'(var|this|abstract|extends|set|seq|one|lone|let)\b', Keyword), - (r'(all|some|no|sum|disj|when|else)\b', Keyword), - (r'(run|check|for|but|exactly|expect|as|steps)\b', Keyword), - (r'(always|after|eventually|until|release)\b', Keyword), # future time operators - (r'(historically|before|once|since|triggered)\b', Keyword), # past time operators - (r'(and|or|implies|iff|in)\b', Operator.Word), - (r'(fun|pred|assert)(\s+)', bygroups(Keyword, Whitespace), 'fun'), - (r'(fact)(\s+)', bygroups(Keyword, Whitespace), 'fact'), - (r'!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.\.|\.|->', Operator), - (r'[-+/*%=<>&!^|~{}\[\]().\';]', Operator), + (r"(module|open)(\s+)", bygroups(Keyword.Namespace, Whitespace), "module"), + (r"(sig|enum)(\s+)", bygroups(Keyword.Declaration, Whitespace), "sig"), + (r"(iden|univ|none)\b", Keyword.Constant), + (r"(int|Int)\b", Keyword.Type), + (r"(var|this|abstract|extends|set|seq|one|lone|let)\b", Keyword), + (r"(all|some|no|sum|disj|when|else)\b", Keyword), + (r"(run|check|for|but|exactly|expect|as|steps)\b", Keyword), + ( + r"(always|after|eventually|until|release)\b", + Keyword, + ), # future time operators + ( + r"(historically|before|once|since|triggered)\b", + Keyword, + ), # past time operators + (r"(and|or|implies|iff|in)\b", Operator.Word), + (r"(fun|pred|assert)(\s+)", bygroups(Keyword, Whitespace), "fun"), + (r"(fact)(\s+)", bygroups(Keyword, Whitespace), "fact"), + (r"!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.\.|\.|->", Operator), + (r"[-+/*%=<>&!^|~{}\[\]().\';]", Operator), (iden_rex, Name), - (r'[:,]', Punctuation), - (r'[0-9]+', Number.Integer), + (r"[:,]", Punctuation), + (r"[0-9]+", Number.Integer), (string_rex, String), - (r'\n', Whitespace), - ] + (r"\n", Whitespace), + ], } @@ -654,63 +1113,135 @@ class PanLexer(RegexLexer): Based on tcsh lexer. """ - name = 'Pan' - url = 'https://github.com/quattor/pan/' - aliases = ['pan'] - filenames = ['*.pan'] - version_added = '2.0' + name = "Pan" + url = "https://github.com/quattor/pan/" + aliases = ["pan"] + filenames = ["*.pan"] + version_added = "2.0" tokens = { - 'root': [ - include('basic'), - (r'\(', Keyword, 'paren'), - (r'\{', Keyword, 'curly'), - include('data'), + "root": [ + include("basic"), + (r"\(", Keyword, "paren"), + (r"\{", Keyword, "curly"), + include("data"), ], - 'basic': [ - (words(( - 'if', 'for', 'with', 'else', 'type', 'bind', 'while', 'valid', 'final', - 'prefix', 'unique', 'object', 'foreach', 'include', 'template', - 'function', 'variable', 'structure', 'extensible', 'declaration'), - prefix=r'\b', suffix=r'\b'), - Keyword), - (words(( - 'file_contents', 'format', 'index', 'length', 'match', 'matches', - 'replace', 'splice', 'split', 'substr', 'to_lowercase', 'to_uppercase', - 'debug', 'error', 'traceback', 'deprecated', 'base64_decode', - 'base64_encode', 'digest', 'escape', 'unescape', 'append', 'create', - 'first', 'nlist', 'key', 'list', 'merge', 'next', 'prepend', 'is_boolean', - 'is_defined', 'is_double', 'is_list', 'is_long', 'is_nlist', 'is_null', - 'is_number', 'is_property', 'is_resource', 'is_string', 'to_boolean', - 'to_double', 'to_long', 'to_string', 'clone', 'delete', 'exists', - 'path_exists', 'if_exists', 'return', 'value'), - prefix=r'\b', suffix=r'\b'), - Name.Builtin), - (r'#.*', Comment), - (r'\\[\w\W]', String.Escape), - (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Whitespace, Operator)), - (r'[\[\]{}()=]+', Operator), - (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), - (r';', Punctuation), + "basic": [ + ( + words( + ( + "if", + "for", + "with", + "else", + "type", + "bind", + "while", + "valid", + "final", + "prefix", + "unique", + "object", + "foreach", + "include", + "template", + "function", + "variable", + "structure", + "extensible", + "declaration", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "file_contents", + "format", + "index", + "length", + "match", + "matches", + "replace", + "splice", + "split", + "substr", + "to_lowercase", + "to_uppercase", + "debug", + "error", + "traceback", + "deprecated", + "base64_decode", + "base64_encode", + "digest", + "escape", + "unescape", + "append", + "create", + "first", + "nlist", + "key", + "list", + "merge", + "next", + "prepend", + "is_boolean", + "is_defined", + "is_double", + "is_list", + "is_long", + "is_nlist", + "is_null", + "is_number", + "is_property", + "is_resource", + "is_string", + "to_boolean", + "to_double", + "to_long", + "to_string", + "clone", + "delete", + "exists", + "path_exists", + "if_exists", + "return", + "value", + ), + prefix=r"\b", + suffix=r"\b", + ), + Name.Builtin, + ), + (r"#.*", Comment), + (r"\\[\w\W]", String.Escape), + (r"(\b\w+)(\s*)(=)", bygroups(Name.Variable, Whitespace, Operator)), + (r"[\[\]{}()=]+", Operator), + (r"<<\s*(\'?)\\?(\w+)[\w\W]+?\2", String), + (r";", Punctuation), ], - 'data': [ + "data": [ (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), - (r'\s+', Whitespace), + (r"\s+", Whitespace), (r'[^=\s\[\]{}()$"\'`\\;#]+', Text), - (r'\d+(?= |\Z)', Number), + (r"\d+(?= |\Z)", Number), ], - 'curly': [ - (r'\}', Keyword, '#pop'), - (r':-', Keyword), - (r'\w+', Name.Variable), + "curly": [ + (r"\}", Keyword, "#pop"), + (r":-", Keyword), + (r"\w+", Name.Variable), (r'[^}:"\'`$]+', Punctuation), - (r':', Punctuation), - include('root'), + (r":", Punctuation), + include("root"), ], - 'paren': [ - (r'\)', Keyword, '#pop'), - include('root'), + "paren": [ + (r"\)", Keyword, "#pop"), + include("root"), ], } @@ -719,67 +1250,94 @@ class CrmshLexer(RegexLexer): """ Lexer for crmsh configuration files for Pacemaker clusters. """ - name = 'Crmsh' - url = 'http://crmsh.github.io/' - aliases = ['crmsh', 'pcmk'] - filenames = ['*.crmsh', '*.pcmk'] - mimetypes = [] - version_added = '2.1' - elem = words(( - 'node', 'primitive', 'group', 'clone', 'ms', 'location', - 'colocation', 'order', 'fencing_topology', 'rsc_ticket', - 'rsc_template', 'property', 'rsc_defaults', - 'op_defaults', 'acl_target', 'acl_group', 'user', 'role', - 'tag'), suffix=r'(?![\w#$-])') - sub = words(( - 'params', 'meta', 'operations', 'op', 'rule', - 'attributes', 'utilization'), suffix=r'(?![\w#$-])') - acl = words(('read', 'write', 'deny'), suffix=r'(?![\w#$-])') - bin_rel = words(('and', 'or'), suffix=r'(?![\w#$-])') - un_ops = words(('defined', 'not_defined'), suffix=r'(?![\w#$-])') - date_exp = words(('in_range', 'date', 'spec', 'in'), suffix=r'(?![\w#$-])') - acl_mod = (r'(?:tag|ref|reference|attribute|type|xpath)') - bin_ops = (r'(?:lt|gt|lte|gte|eq|ne)') - val_qual = (r'(?:string|version|number)') - rsc_role_action = (r'(?:Master|Started|Slave|Stopped|' - r'start|promote|demote|stop)') + name = "Crmsh" + url = "http://crmsh.github.io/" + aliases = ["crmsh", "pcmk"] + filenames = ["*.crmsh", "*.pcmk"] + mimetypes = [] + version_added = "2.1" + + elem = words( + ( + "node", + "primitive", + "group", + "clone", + "ms", + "location", + "colocation", + "order", + "fencing_topology", + "rsc_ticket", + "rsc_template", + "property", + "rsc_defaults", + "op_defaults", + "acl_target", + "acl_group", + "user", + "role", + "tag", + ), + suffix=r"(?![\w#$-])", + ) + sub = words( + ("params", "meta", "operations", "op", "rule", "attributes", "utilization"), + suffix=r"(?![\w#$-])", + ) + acl = words(("read", "write", "deny"), suffix=r"(?![\w#$-])") + bin_rel = words(("and", "or"), suffix=r"(?![\w#$-])") + un_ops = words(("defined", "not_defined"), suffix=r"(?![\w#$-])") + date_exp = words(("in_range", "date", "spec", "in"), suffix=r"(?![\w#$-])") + acl_mod = r"(?:tag|ref|reference|attribute|type|xpath)" + bin_ops = r"(?:lt|gt|lte|gte|eq|ne)" + val_qual = r"(?:string|version|number)" + rsc_role_action = r"(?:Master|Started|Slave|Stopped|" r"start|promote|demote|stop)" tokens = { - 'root': [ - (r'^(#.*)(\n)?', bygroups(Comment, Whitespace)), + "root": [ + (r"^(#.*)(\n)?", bygroups(Comment, Whitespace)), # attr=value (nvpair) - (r'([\w#$-]+)(=)("(?:""|[^"])*"|\S+)', - bygroups(Name.Attribute, Punctuation, String)), + ( + r'([\w#$-]+)(=)("(?:""|[^"])*"|\S+)', + bygroups(Name.Attribute, Punctuation, String), + ), # need this construct, otherwise numeric node ids # are matched as scores # elem id: - (r'(node)(\s+)([\w#$-]+)(:)', - bygroups(Keyword, Whitespace, Name, Punctuation)), + ( + r"(node)(\s+)([\w#$-]+)(:)", + bygroups(Keyword, Whitespace, Name, Punctuation), + ), # scores - (r'([+-]?([0-9]+|inf)):', Number), + (r"([+-]?([0-9]+|inf)):", Number), # keywords (elements and other) (elem, Keyword), (sub, Keyword), (acl, Keyword), # binary operators - (rf'(?:{val_qual}:)?({bin_ops})(?![\w#$-])', Operator.Word), + (rf"(?:{val_qual}:)?({bin_ops})(?![\w#$-])", Operator.Word), # other operators (bin_rel, Operator.Word), (un_ops, Operator.Word), (date_exp, Operator.Word), # builtin attributes (e.g. #uname) - (r'#[a-z]+(?![\w#$-])', Name.Builtin), + (r"#[a-z]+(?![\w#$-])", Name.Builtin), # acl_mod:blah - (rf'({acl_mod})(:)("(?:""|[^"])*"|\S+)', - bygroups(Keyword, Punctuation, Name)), + ( + rf'({acl_mod})(:)("(?:""|[^"])*"|\S+)', + bygroups(Keyword, Punctuation, Name), + ), # rsc_id[:(role|action)] # NB: this matches all other identifiers - (rf'([\w#$-]+)(?:(:)({rsc_role_action}))?(?![\w#$-])', - bygroups(Name, Punctuation, Operator.Word)), + ( + rf"([\w#$-]+)(?:(:)({rsc_role_action}))?(?![\w#$-])", + bygroups(Name, Punctuation, Operator.Word), + ), # punctuation - (r'(\\(?=\n)|[\[\](){}/:@])', Punctuation), - (r'\s+|\n', Whitespace), + (r"(\\(?=\n)|[\[\](){}/:@])", Punctuation), + (r"\s+|\n", Whitespace), ], } @@ -788,74 +1346,179 @@ class FlatlineLexer(RegexLexer): """ Lexer for Flatline expressions. """ - name = 'Flatline' - url = 'https://github.com/bigmlcom/flatline' - aliases = ['flatline'] - filenames = [] - mimetypes = ['text/x-flatline'] - version_added = '2.2' - special_forms = ('let',) + name = "Flatline" + url = "https://github.com/bigmlcom/flatline" + aliases = ["flatline"] + filenames = [] + mimetypes = ["text/x-flatline"] + version_added = "2.2" + + special_forms = ("let",) builtins = ( - "!=", "*", "+", "-", "<", "<=", "=", ">", ">=", "abs", "acos", "all", - "all-but", "all-with-defaults", "all-with-numeric-default", "and", - "asin", "atan", "avg", "avg-window", "bin-center", "bin-count", "call", - "category-count", "ceil", "cond", "cond-window", "cons", "cos", "cosh", - "count", "diff-window", "div", "ensure-value", "ensure-weighted-value", - "epoch", "epoch-day", "epoch-fields", "epoch-hour", "epoch-millisecond", - "epoch-minute", "epoch-month", "epoch-second", "epoch-weekday", - "epoch-year", "exp", "f", "field", "field-prop", "fields", "filter", - "first", "floor", "head", "if", "in", "integer", "language", "length", - "levenshtein", "linear-regression", "list", "ln", "log", "log10", "map", - "matches", "matches?", "max", "maximum", "md5", "mean", "median", "min", - "minimum", "missing", "missing-count", "missing?", "missing_count", - "mod", "mode", "normalize", "not", "nth", "occurrences", "or", - "percentile", "percentile-label", "population", "population-fraction", - "pow", "preferred", "preferred?", "quantile-label", "rand", "rand-int", - "random-value", "re-quote", "real", "replace", "replace-first", "rest", - "round", "row-number", "segment-label", "sha1", "sha256", "sin", "sinh", - "sqrt", "square", "standard-deviation", "standard_deviation", "str", - "subs", "sum", "sum-squares", "sum-window", "sum_squares", "summary", - "summary-no", "summary-str", "tail", "tan", "tanh", "to-degrees", - "to-radians", "variance", "vectorize", "weighted-random-value", "window", - "winnow", "within-percentiles?", "z-score", + "!=", + "*", + "+", + "-", + "<", + "<=", + "=", + ">", + ">=", + "abs", + "acos", + "all", + "all-but", + "all-with-defaults", + "all-with-numeric-default", + "and", + "asin", + "atan", + "avg", + "avg-window", + "bin-center", + "bin-count", + "call", + "category-count", + "ceil", + "cond", + "cond-window", + "cons", + "cos", + "cosh", + "count", + "diff-window", + "div", + "ensure-value", + "ensure-weighted-value", + "epoch", + "epoch-day", + "epoch-fields", + "epoch-hour", + "epoch-millisecond", + "epoch-minute", + "epoch-month", + "epoch-second", + "epoch-weekday", + "epoch-year", + "exp", + "f", + "field", + "field-prop", + "fields", + "filter", + "first", + "floor", + "head", + "if", + "in", + "integer", + "language", + "length", + "levenshtein", + "linear-regression", + "list", + "ln", + "log", + "log10", + "map", + "matches", + "matches?", + "max", + "maximum", + "md5", + "mean", + "median", + "min", + "minimum", + "missing", + "missing-count", + "missing?", + "missing_count", + "mod", + "mode", + "normalize", + "not", + "nth", + "occurrences", + "or", + "percentile", + "percentile-label", + "population", + "population-fraction", + "pow", + "preferred", + "preferred?", + "quantile-label", + "rand", + "rand-int", + "random-value", + "re-quote", + "real", + "replace", + "replace-first", + "rest", + "round", + "row-number", + "segment-label", + "sha1", + "sha256", + "sin", + "sinh", + "sqrt", + "square", + "standard-deviation", + "standard_deviation", + "str", + "subs", + "sum", + "sum-squares", + "sum-window", + "sum_squares", + "summary", + "summary-no", + "summary-str", + "tail", + "tan", + "tanh", + "to-degrees", + "to-radians", + "variance", + "vectorize", + "weighted-random-value", + "window", + "winnow", + "within-percentiles?", + "z-score", ) - valid_name = r'(?!#)[\w!$%*+<=>?/.#-]+' + valid_name = r"(?!#)[\w!$%*+<=>?/.#-]+" tokens = { - 'root': [ + "root": [ # whitespaces - usually not relevant - (r'[,]+', Text), - (r'\s+', Whitespace), - + (r"[,]+", Text), + (r"\s+", Whitespace), # numbers - (r'-?\d+\.\d+', Number.Float), - (r'-?\d+', Number.Integer), - (r'0x-?[a-f\d]+', Number.Hex), - + (r"-?\d+\.\d+", Number.Float), + (r"-?\d+", Number.Integer), + (r"0x-?[a-f\d]+", Number.Hex), # strings, symbols and characters (r'"(\\\\|\\[^\\]|[^"\\])*"', String), (r"\\(.|[a-z]+)", String.Char), - # expression template placeholder - (r'_', String.Symbol), - + (r"_", String.Symbol), # highlight the special forms - (words(special_forms, suffix=' '), Keyword), - + (words(special_forms, suffix=" "), Keyword), # highlight the builtins - (words(builtins, suffix=' '), Name.Builtin), - + (words(builtins, suffix=" "), Name.Builtin), # the remaining functions - (r'(?<=\()' + valid_name, Name.Function), - + (r"(?<=\()" + valid_name, Name.Function), # find the remaining variables (valid_name, Name.Variable), - # parentheses - (r'(\(|\))', Punctuation), + (r"(\(|\))", Punctuation), ], } @@ -865,13 +1528,13 @@ class SnowballLexer(ExtendedRegexLexer): Lexer for Snowball source code. """ - name = 'Snowball' - url = 'https://snowballstem.org/' - aliases = ['snowball'] - filenames = ['*.sbl'] - version_added = '2.2' + name = "Snowball" + url = "https://snowballstem.org/" + aliases = ["snowball"] + filenames = ["*.sbl"] + version_added = "2.2" - _ws = r'\n\r\t ' + _ws = r"\n\r\t " def __init__(self, **options): self._reset_stringescapes() @@ -885,8 +1548,8 @@ class SnowballLexer(ExtendedRegexLexer): def callback(lexer, match, ctx): s = match.start() text = match.group() - string = re.compile(rf'([^{re.escape(lexer._start)}]*)(.)').match - escape = re.compile(rf'([^{re.escape(lexer._end)}]*)(.)').match + string = re.compile(rf"([^{re.escape(lexer._start)}]*)(.)").match + escape = re.compile(rf"([^{re.escape(lexer._end)}]*)(.)").match pos = 0 do_string = do_string_first while pos < len(text): @@ -902,65 +1565,118 @@ class SnowballLexer(ExtendedRegexLexer): match = escape(text, pos) yield s + match.start(), String.Escape, match.group() if match.group(2) != lexer._end: - ctx.stack[-1] = 'escape' + ctx.stack[-1] = "escape" break pos = match.end() do_string = True ctx.pos = s + match.end() + return callback def _stringescapes(lexer, match, ctx): lexer._start = match.group(3) lexer._end = match.group(5) - return bygroups(Keyword.Reserved, Whitespace, String.Escape, Whitespace, - String.Escape)(lexer, match, ctx) + return bygroups( + Keyword.Reserved, Whitespace, String.Escape, Whitespace, String.Escape + )(lexer, match, ctx) tokens = { - 'root': [ - (r'len\b', Name.Builtin), - (r'lenof\b', Operator.Word), - include('root1'), + "root": [ + (r"len\b", Name.Builtin), + (r"lenof\b", Operator.Word), + include("root1"), ], - 'root1': [ - (rf'[{_ws}]+', Whitespace), - (r'\d+', Number.Integer), - (r"'", String.Single, 'string'), - (r'[()]', Punctuation), - (r'/\*[\w\W]*?\*/', Comment.Multiline), - (r'//.*', Comment.Single), - (r'[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]]', Operator), - (words(('as', 'get', 'hex', 'among', 'define', 'decimal', - 'backwardmode'), suffix=r'\b'), - Keyword.Reserved), - (words(('strings', 'booleans', 'integers', 'routines', 'externals', - 'groupings'), suffix=r'\b'), - Keyword.Reserved, 'declaration'), - (words(('do', 'or', 'and', 'for', 'hop', 'non', 'not', 'set', 'try', - 'fail', 'goto', 'loop', 'next', 'test', 'true', - 'false', 'unset', 'atmark', 'attach', 'delete', 'gopast', - 'insert', 'repeat', 'sizeof', 'tomark', 'atleast', - 'atlimit', 'reverse', 'setmark', 'tolimit', 'setlimit', - 'backwards', 'substring'), suffix=r'\b'), - Operator.Word), - (words(('size', 'limit', 'cursor', 'maxint', 'minint'), - suffix=r'\b'), - Name.Builtin), - (rf'(stringdef\b)([{_ws}]*)([^{_ws}]+)', - bygroups(Keyword.Reserved, Whitespace, String.Escape)), - (rf'(stringescapes\b)([{_ws}]*)(.)([{_ws}]*)(.)', - _stringescapes), - (r'[A-Za-z]\w*', Name), + "root1": [ + (rf"[{_ws}]+", Whitespace), + (r"\d+", Number.Integer), + (r"'", String.Single, "string"), + (r"[()]", Punctuation), + (r"/\*[\w\W]*?\*/", Comment.Multiline), + (r"//.*", Comment.Single), + (r"[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]]", Operator), + ( + words( + ("as", "get", "hex", "among", "define", "decimal", "backwardmode"), + suffix=r"\b", + ), + Keyword.Reserved, + ), + ( + words( + ( + "strings", + "booleans", + "integers", + "routines", + "externals", + "groupings", + ), + suffix=r"\b", + ), + Keyword.Reserved, + "declaration", + ), + ( + words( + ( + "do", + "or", + "and", + "for", + "hop", + "non", + "not", + "set", + "try", + "fail", + "goto", + "loop", + "next", + "test", + "true", + "false", + "unset", + "atmark", + "attach", + "delete", + "gopast", + "insert", + "repeat", + "sizeof", + "tomark", + "atleast", + "atlimit", + "reverse", + "setmark", + "tolimit", + "setlimit", + "backwards", + "substring", + ), + suffix=r"\b", + ), + Operator.Word, + ), + ( + words(("size", "limit", "cursor", "maxint", "minint"), suffix=r"\b"), + Name.Builtin, + ), + ( + rf"(stringdef\b)([{_ws}]*)([^{_ws}]+)", + bygroups(Keyword.Reserved, Whitespace, String.Escape), + ), + (rf"(stringescapes\b)([{_ws}]*)(.)([{_ws}]*)(.)", _stringescapes), + (r"[A-Za-z]\w*", Name), ], - 'declaration': [ - (r'\)', Punctuation, '#pop'), - (words(('len', 'lenof'), suffix=r'\b'), Name, - ('root1', 'declaration')), - include('root1'), + "declaration": [ + (r"\)", Punctuation, "#pop"), + (words(("len", "lenof"), suffix=r"\b"), Name, ("root1", "declaration")), + include("root1"), ], - 'string': [ + "string": [ (r"[^']*'", _string(True)), ], - 'escape': [ + "escape": [ (r"[^']*'", _string(False)), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dylan.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dylan.py index 2109bd5..f9ef07c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dylan.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/dylan.py @@ -1,21 +1,30 @@ """ - pygments.lexers.dylan - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.dylan +~~~~~~~~~~~~~~~~~~~~~ - Lexers for the Dylan language. +Lexers for the Dylan language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \ - default, line_re -from pygments.token import Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic, Literal, Whitespace +from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, default, line_re +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, + Literal, + Whitespace, +) -__all__ = ['DylanLexer', 'DylanConsoleLexer', 'DylanLidLexer'] +__all__ = ["DylanLexer", "DylanConsoleLexer", "DylanLidLexer"] class DylanLexer(RegexLexer): @@ -23,72 +32,270 @@ class DylanLexer(RegexLexer): For the Dylan language. """ - name = 'Dylan' - url = 'http://www.opendylan.org/' - aliases = ['dylan'] - filenames = ['*.dylan', '*.dyl', '*.intr'] - mimetypes = ['text/x-dylan'] - version_added = '0.7' + name = "Dylan" + url = "http://www.opendylan.org/" + aliases = ["dylan"] + filenames = ["*.dylan", "*.dyl", "*.intr"] + mimetypes = ["text/x-dylan"] + version_added = "0.7" flags = re.IGNORECASE builtins = { - 'subclass', 'abstract', 'block', 'concrete', 'constant', 'class', - 'compiler-open', 'compiler-sideways', 'domain', 'dynamic', - 'each-subclass', 'exception', 'exclude', 'function', 'generic', - 'handler', 'inherited', 'inline', 'inline-only', 'instance', - 'interface', 'import', 'keyword', 'library', 'macro', 'method', - 'module', 'open', 'primary', 'required', 'sealed', 'sideways', - 'singleton', 'slot', 'thread', 'variable', 'virtual'} + "subclass", + "abstract", + "block", + "concrete", + "constant", + "class", + "compiler-open", + "compiler-sideways", + "domain", + "dynamic", + "each-subclass", + "exception", + "exclude", + "function", + "generic", + "handler", + "inherited", + "inline", + "inline-only", + "instance", + "interface", + "import", + "keyword", + "library", + "macro", + "method", + "module", + "open", + "primary", + "required", + "sealed", + "sideways", + "singleton", + "slot", + "thread", + "variable", + "virtual", + } keywords = { - 'above', 'afterwards', 'begin', 'below', 'by', 'case', 'cleanup', - 'create', 'define', 'else', 'elseif', 'end', 'export', 'finally', - 'for', 'from', 'if', 'in', 'let', 'local', 'otherwise', 'rename', - 'select', 'signal', 'then', 'to', 'unless', 'until', 'use', 'when', - 'while'} + "above", + "afterwards", + "begin", + "below", + "by", + "case", + "cleanup", + "create", + "define", + "else", + "elseif", + "end", + "export", + "finally", + "for", + "from", + "if", + "in", + "let", + "local", + "otherwise", + "rename", + "select", + "signal", + "then", + "to", + "unless", + "until", + "use", + "when", + "while", + } operators = { - '~', '+', '-', '*', '|', '^', '=', '==', '~=', '~==', '<', '<=', - '>', '>=', '&', '|'} + "~", + "+", + "-", + "*", + "|", + "^", + "=", + "==", + "~=", + "~==", + "<", + "<=", + ">", + ">=", + "&", + "|", + } functions = { - 'abort', 'abs', 'add', 'add!', 'add-method', 'add-new', 'add-new!', - 'all-superclasses', 'always', 'any?', 'applicable-method?', 'apply', - 'aref', 'aref-setter', 'as', 'as-lowercase', 'as-lowercase!', - 'as-uppercase', 'as-uppercase!', 'ash', 'backward-iteration-protocol', - 'break', 'ceiling', 'ceiling/', 'cerror', 'check-type', 'choose', - 'choose-by', 'complement', 'compose', 'concatenate', 'concatenate-as', - 'condition-format-arguments', 'condition-format-string', 'conjoin', - 'copy-sequence', 'curry', 'default-handler', 'dimension', 'dimensions', - 'direct-subclasses', 'direct-superclasses', 'disjoin', 'do', - 'do-handlers', 'element', 'element-setter', 'empty?', 'error', 'even?', - 'every?', 'false-or', 'fill!', 'find-key', 'find-method', 'first', - 'first-setter', 'floor', 'floor/', 'forward-iteration-protocol', - 'function-arguments', 'function-return-values', - 'function-specializers', 'gcd', 'generic-function-mandatory-keywords', - 'generic-function-methods', 'head', 'head-setter', 'identity', - 'initialize', 'instance?', 'integral?', 'intersection', - 'key-sequence', 'key-test', 'last', 'last-setter', 'lcm', 'limited', - 'list', 'logand', 'logbit?', 'logior', 'lognot', 'logxor', 'make', - 'map', 'map-as', 'map-into', 'max', 'member?', 'merge-hash-codes', - 'min', 'modulo', 'negative', 'negative?', 'next-method', - 'object-class', 'object-hash', 'odd?', 'one-of', 'pair', 'pop', - 'pop-last', 'positive?', 'push', 'push-last', 'range', 'rank', - 'rcurry', 'reduce', 'reduce1', 'remainder', 'remove', 'remove!', - 'remove-duplicates', 'remove-duplicates!', 'remove-key!', - 'remove-method', 'replace-elements!', 'replace-subsequence!', - 'restart-query', 'return-allowed?', 'return-description', - 'return-query', 'reverse', 'reverse!', 'round', 'round/', - 'row-major-index', 'second', 'second-setter', 'shallow-copy', - 'signal', 'singleton', 'size', 'size-setter', 'slot-initialized?', - 'sort', 'sort!', 'sorted-applicable-methods', 'subsequence-position', - 'subtype?', 'table-protocol', 'tail', 'tail-setter', 'third', - 'third-setter', 'truncate', 'truncate/', 'type-error-expected-type', - 'type-error-value', 'type-for-copy', 'type-union', 'union', 'values', - 'vector', 'zero?'} + "abort", + "abs", + "add", + "add!", + "add-method", + "add-new", + "add-new!", + "all-superclasses", + "always", + "any?", + "applicable-method?", + "apply", + "aref", + "aref-setter", + "as", + "as-lowercase", + "as-lowercase!", + "as-uppercase", + "as-uppercase!", + "ash", + "backward-iteration-protocol", + "break", + "ceiling", + "ceiling/", + "cerror", + "check-type", + "choose", + "choose-by", + "complement", + "compose", + "concatenate", + "concatenate-as", + "condition-format-arguments", + "condition-format-string", + "conjoin", + "copy-sequence", + "curry", + "default-handler", + "dimension", + "dimensions", + "direct-subclasses", + "direct-superclasses", + "disjoin", + "do", + "do-handlers", + "element", + "element-setter", + "empty?", + "error", + "even?", + "every?", + "false-or", + "fill!", + "find-key", + "find-method", + "first", + "first-setter", + "floor", + "floor/", + "forward-iteration-protocol", + "function-arguments", + "function-return-values", + "function-specializers", + "gcd", + "generic-function-mandatory-keywords", + "generic-function-methods", + "head", + "head-setter", + "identity", + "initialize", + "instance?", + "integral?", + "intersection", + "key-sequence", + "key-test", + "last", + "last-setter", + "lcm", + "limited", + "list", + "logand", + "logbit?", + "logior", + "lognot", + "logxor", + "make", + "map", + "map-as", + "map-into", + "max", + "member?", + "merge-hash-codes", + "min", + "modulo", + "negative", + "negative?", + "next-method", + "object-class", + "object-hash", + "odd?", + "one-of", + "pair", + "pop", + "pop-last", + "positive?", + "push", + "push-last", + "range", + "rank", + "rcurry", + "reduce", + "reduce1", + "remainder", + "remove", + "remove!", + "remove-duplicates", + "remove-duplicates!", + "remove-key!", + "remove-method", + "replace-elements!", + "replace-subsequence!", + "restart-query", + "return-allowed?", + "return-description", + "return-query", + "reverse", + "reverse!", + "round", + "round/", + "row-major-index", + "second", + "second-setter", + "shallow-copy", + "signal", + "singleton", + "size", + "size-setter", + "slot-initialized?", + "sort", + "sort!", + "sorted-applicable-methods", + "subsequence-position", + "subtype?", + "table-protocol", + "tail", + "tail-setter", + "third", + "third-setter", + "truncate", + "truncate/", + "type-error-expected-type", + "type-error-value", + "type-for-copy", + "type-union", + "union", + "values", + "vector", + "zero?", + } - valid_name = '\\\\?[\\w!&*<>|^$%@\\-+~?/=]+' + valid_name = "\\\\?[\\w!&*<>|^$%@\\-+~?/=]+" def get_tokens_unprocessed(self, text): for index, token, value in RegexLexer.get_tokens_unprocessed(self, text): @@ -109,104 +316,88 @@ class DylanLexer(RegexLexer): yield index, token, value tokens = { - 'root': [ + "root": [ # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), # single line comment - (r'//.*?\n', Comment.Single), - + (r"//.*?\n", Comment.Single), # lid header - (r'([a-z0-9-]+)(:)([ \t]*)(.*(?:\n[ \t].+)*)', - bygroups(Name.Attribute, Operator, Whitespace, String)), - - default('code') # no header match, switch to code + ( + r"([a-z0-9-]+)(:)([ \t]*)(.*(?:\n[ \t].+)*)", + bygroups(Name.Attribute, Operator, Whitespace, String), + ), + default("code"), # no header match, switch to code ], - 'code': [ + "code": [ # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), # single line comment - (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace)), - + (r"(//.*?)(\n)", bygroups(Comment.Single, Whitespace)), # multi-line comment - (r'/\*', Comment.Multiline, 'comment'), - + (r"/\*", Comment.Multiline, "comment"), # strings and characters - (r'"', String, 'string'), + (r'"', String, "string"), (r"'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'", String.Char), - # binary integer - (r'#b[01]+', Number.Bin), - + (r"#b[01]+", Number.Bin), # octal integer - (r'#o[0-7]+', Number.Oct), - + (r"#o[0-7]+", Number.Oct), # floating point - (r'[-+]?(\d*\.\d+(e[-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)', Number.Float), - + (r"[-+]?(\d*\.\d+(e[-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)", Number.Float), # decimal integer - (r'[-+]?\d+', Number.Integer), - + (r"[-+]?\d+", Number.Integer), # hex integer - (r'#x[0-9a-f]+', Number.Hex), - + (r"#x[0-9a-f]+", Number.Hex), # Macro parameters - (r'(\?' + valid_name + ')(:)' - r'(token|name|variable|expression|body|case-body|\*)', - bygroups(Name.Tag, Operator, Name.Builtin)), - (r'(\?)(:)(token|name|variable|expression|body|case-body|\*)', - bygroups(Name.Tag, Operator, Name.Builtin)), - (r'\?' + valid_name, Name.Tag), - + ( + r"(\?" + valid_name + ")(:)" + r"(token|name|variable|expression|body|case-body|\*)", + bygroups(Name.Tag, Operator, Name.Builtin), + ), + ( + r"(\?)(:)(token|name|variable|expression|body|case-body|\*)", + bygroups(Name.Tag, Operator, Name.Builtin), + ), + (r"\?" + valid_name, Name.Tag), # Punctuation - (r'(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])', Punctuation), - + (r"(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])", Punctuation), # Most operators are picked up as names and then re-flagged. # This one isn't valid in a name though, so we pick it up now. - (r':=', Operator), - + (r":=", Operator), # Pick up #t / #f before we match other stuff with #. - (r'#[tf]', Literal), - + (r"#[tf]", Literal), # #"foo" style keywords - (r'#"', String.Symbol, 'keyword'), - + (r'#"', String.Symbol, "keyword"), # #rest, #key, #all-keys, etc. - (r'#[a-z0-9-]+', Keyword), - + (r"#[a-z0-9-]+", Keyword), # required-init-keyword: style keywords. - (valid_name + ':', Keyword), - + (valid_name + ":", Keyword), # class names - ('<' + valid_name + '>', Name.Class), - + ("<" + valid_name + ">", Name.Class), # define variable forms. - (r'\*' + valid_name + r'\*', Name.Variable.Global), - + (r"\*" + valid_name + r"\*", Name.Variable.Global), # define constant forms. - (r'\$' + valid_name, Name.Constant), - + (r"\$" + valid_name, Name.Constant), # everything else. We re-flag some of these in the method above. (valid_name, Name), ], - 'comment': [ - (r'[^*/]+', Comment.Multiline), - (r'/\*', Comment.Multiline, '#push'), - (r'\*/', Comment.Multiline, '#pop'), - (r'[*/]', Comment.Multiline) + "comment": [ + (r"[^*/]+", Comment.Multiline), + (r"/\*", Comment.Multiline, "#push"), + (r"\*/", Comment.Multiline, "#pop"), + (r"[*/]", Comment.Multiline), ], - 'keyword': [ - (r'"', String.Symbol, '#pop'), + "keyword": [ + (r'"', String.Symbol, "#pop"), (r'[^\\"]+', String.Symbol), # all other characters ], - 'string': [ - (r'"', String, '#pop'), + "string": [ + (r'"', String, "#pop"), (r'\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})', String.Escape), (r'[^\\"\n]+', String), # all other characters - (r'\\\n', String), # line continuation - (r'\\', String), # stray backslash - ] + (r"\\\n", String), # line continuation + (r"\\", String), # stray backslash + ], } @@ -215,25 +406,25 @@ class DylanLidLexer(RegexLexer): For Dylan LID (Library Interchange Definition) files. """ - name = 'DylanLID' - aliases = ['dylan-lid', 'lid'] - filenames = ['*.lid', '*.hdp'] - mimetypes = ['text/x-dylan-lid'] - url = 'http://www.opendylan.org/' - version_added = '1.6' + name = "DylanLID" + aliases = ["dylan-lid", "lid"] + filenames = ["*.lid", "*.hdp"] + mimetypes = ["text/x-dylan-lid"] + url = "http://www.opendylan.org/" + version_added = "1.6" flags = re.IGNORECASE tokens = { - 'root': [ + "root": [ # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), # single line comment - (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace)), - + (r"(//.*?)(\n)", bygroups(Comment.Single, Whitespace)), # lid header - (r'(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)', - bygroups(Name.Attribute, Operator, Whitespace, String)), + ( + r"(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)", + bygroups(Name.Attribute, Operator, Whitespace, String), + ), ] } @@ -244,36 +435,38 @@ class DylanConsoleLexer(Lexer): This is based on a copy of the ``RubyConsoleLexer``. """ - name = 'Dylan session' - aliases = ['dylan-console', 'dylan-repl'] - filenames = ['*.dylan-console'] - mimetypes = ['text/x-dylan-console'] - url = 'http://www.opendylan.org/' - version_added = '1.6' - _example = 'dylan-console/console.dylan-console' - _prompt_re = re.compile(r'\?| ') + name = "Dylan session" + aliases = ["dylan-console", "dylan-repl"] + filenames = ["*.dylan-console"] + mimetypes = ["text/x-dylan-console"] + url = "http://www.opendylan.org/" + version_added = "1.6" + _example = "dylan-console/console.dylan-console" + + _prompt_re = re.compile(r"\?| ") def get_tokens_unprocessed(self, text): dylexer = DylanLexer(**self.options) - curcode = '' + curcode = "" insertions = [] for match in line_re.finditer(text): line = match.group() m = self._prompt_re.match(line) if m is not None: end = m.end() - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:end])])) + insertions.append((len(curcode), [(0, Generic.Prompt, line[:end])])) curcode += line[end:] else: if curcode: - yield from do_insertions(insertions, - dylexer.get_tokens_unprocessed(curcode)) - curcode = '' + yield from do_insertions( + insertions, dylexer.get_tokens_unprocessed(curcode) + ) + curcode = "" insertions = [] yield match.start(), Generic.Output, line if curcode: - yield from do_insertions(insertions, - dylexer.get_tokens_unprocessed(curcode)) + yield from do_insertions( + insertions, dylexer.get_tokens_unprocessed(curcode) + ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ecl.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ecl.py index f1ee3bf..9262d6b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ecl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ecl.py @@ -1,20 +1,28 @@ """ - pygments.lexers.ecl - ~~~~~~~~~~~~~~~~~~~ +pygments.lexers.ecl +~~~~~~~~~~~~~~~~~~~ - Lexers for the ECL language. +Lexers for the ECL language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, bygroups, words -from pygments.token import Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['ECLLexer'] +__all__ = ["ECLLexer"] class ECLLexer(RegexLexer): @@ -22,109 +30,347 @@ class ECLLexer(RegexLexer): Lexer for the declarative big-data ECL language. """ - name = 'ECL' - url = 'https://hpccsystems.com/training/documentation/ecl-language-reference/html' - aliases = ['ecl'] - filenames = ['*.ecl'] - mimetypes = ['application/x-ecl'] - version_added = '1.5' + name = "ECL" + url = "https://hpccsystems.com/training/documentation/ecl-language-reference/html" + aliases = ["ecl"] + filenames = ["*.ecl"] + mimetypes = ["application/x-ecl"] + version_added = "1.5" flags = re.IGNORECASE | re.MULTILINE tokens = { - 'root': [ - include('whitespace'), - include('statements'), + "root": [ + include("whitespace"), + include("statements"), ], - 'whitespace': [ - (r'\s+', Whitespace), - (r'\/\/.*', Comment.Single), - (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline), + "whitespace": [ + (r"\s+", Whitespace), + (r"\/\/.*", Comment.Single), + (r"/(\\\n)?\*(.|\n)*?\*(\\\n)?/", Comment.Multiline), ], - 'statements': [ - include('types'), - include('keywords'), - include('functions'), - include('hash'), - (r'"', String, 'string'), - (r'\'', String, 'string'), - (r'(\d+\.\d*|\.\d+|\d+)e[+-]?\d+[lu]*', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+f)f?', Number.Float), - (r'0x[0-9a-f]+[lu]*', Number.Hex), - (r'0[0-7]+[lu]*', Number.Oct), - (r'\d+[lu]*', Number.Integer), - (r'[~!%^&*+=|?:<>/-]+', Operator), - (r'[{}()\[\],.;]', Punctuation), - (r'[a-z_]\w*', Name), + "statements": [ + include("types"), + include("keywords"), + include("functions"), + include("hash"), + (r'"', String, "string"), + (r"\'", String, "string"), + (r"(\d+\.\d*|\.\d+|\d+)e[+-]?\d+[lu]*", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+f)f?", Number.Float), + (r"0x[0-9a-f]+[lu]*", Number.Hex), + (r"0[0-7]+[lu]*", Number.Oct), + (r"\d+[lu]*", Number.Integer), + (r"[~!%^&*+=|?:<>/-]+", Operator), + (r"[{}()\[\],.;]", Punctuation), + (r"[a-z_]\w*", Name), ], - 'hash': [ - (r'^#.*$', Comment.Preproc), + "hash": [ + (r"^#.*$", Comment.Preproc), ], - 'types': [ - (r'(RECORD|END)\D', Keyword.Declaration), - (r'((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|' - r'QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|' - r'UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+)', - bygroups(Keyword.Type, Whitespace)), + "types": [ + (r"(RECORD|END)\D", Keyword.Declaration), + ( + r"((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|" + r"QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|" + r"UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+)", + bygroups(Keyword.Type, Whitespace), + ), ], - 'keywords': [ - (words(( - 'APPLY', 'ASSERT', 'BUILD', 'BUILDINDEX', 'EVALUATE', 'FAIL', - 'KEYDIFF', 'KEYPATCH', 'LOADXML', 'NOTHOR', 'NOTIFY', 'OUTPUT', - 'PARALLEL', 'SEQUENTIAL', 'SOAPCALL', 'CHECKPOINT', 'DEPRECATED', - 'FAILCODE', 'FAILMESSAGE', 'FAILURE', 'GLOBAL', 'INDEPENDENT', - 'ONWARNING', 'PERSIST', 'PRIORITY', 'RECOVERY', 'STORED', 'SUCCESS', - 'WAIT', 'WHEN'), suffix=r'\b'), - Keyword.Reserved), + "keywords": [ + ( + words( + ( + "APPLY", + "ASSERT", + "BUILD", + "BUILDINDEX", + "EVALUATE", + "FAIL", + "KEYDIFF", + "KEYPATCH", + "LOADXML", + "NOTHOR", + "NOTIFY", + "OUTPUT", + "PARALLEL", + "SEQUENTIAL", + "SOAPCALL", + "CHECKPOINT", + "DEPRECATED", + "FAILCODE", + "FAILMESSAGE", + "FAILURE", + "GLOBAL", + "INDEPENDENT", + "ONWARNING", + "PERSIST", + "PRIORITY", + "RECOVERY", + "STORED", + "SUCCESS", + "WAIT", + "WHEN", + ), + suffix=r"\b", + ), + Keyword.Reserved, + ), # These are classed differently, check later - (words(( - 'ALL', 'AND', 'ANY', 'AS', 'ATMOST', 'BEFORE', 'BEGINC++', 'BEST', - 'BETWEEN', 'CASE', 'CONST', 'COUNTER', 'CSV', 'DESCEND', 'ENCRYPT', - 'ENDC++', 'ENDMACRO', 'EXCEPT', 'EXCLUSIVE', 'EXPIRE', 'EXPORT', - 'EXTEND', 'FALSE', 'FEW', 'FIRST', 'FLAT', 'FULL', 'FUNCTION', - 'GROUP', 'HEADER', 'HEADING', 'HOLE', 'IFBLOCK', 'IMPORT', 'IN', - 'JOINED', 'KEEP', 'KEYED', 'LAST', 'LEFT', 'LIMIT', 'LOAD', 'LOCAL', - 'LOCALE', 'LOOKUP', 'MACRO', 'MANY', 'MAXCOUNT', 'MAXLENGTH', - 'MIN SKEW', 'MODULE', 'INTERFACE', 'NAMED', 'NOCASE', 'NOROOT', - 'NOSCAN', 'NOSORT', 'NOT', 'OF', 'ONLY', 'OPT', 'OR', 'OUTER', - 'OVERWRITE', 'PACKED', 'PARTITION', 'PENALTY', 'PHYSICALLENGTH', - 'PIPE', 'QUOTE', 'RELATIONSHIP', 'REPEAT', 'RETURN', 'RIGHT', - 'SCAN', 'SELF', 'SEPARATOR', 'SERVICE', 'SHARED', 'SKEW', 'SKIP', - 'SQL', 'STORE', 'TERMINATOR', 'THOR', 'THRESHOLD', 'TOKEN', - 'TRANSFORM', 'TRIM', 'TRUE', 'TYPE', 'UNICODEORDER', 'UNSORTED', - 'VALIDATE', 'VIRTUAL', 'WHOLE', 'WILD', 'WITHIN', 'XML', 'XPATH', - '__COMPRESSED__'), suffix=r'\b'), - Keyword.Reserved), + ( + words( + ( + "ALL", + "AND", + "ANY", + "AS", + "ATMOST", + "BEFORE", + "BEGINC++", + "BEST", + "BETWEEN", + "CASE", + "CONST", + "COUNTER", + "CSV", + "DESCEND", + "ENCRYPT", + "ENDC++", + "ENDMACRO", + "EXCEPT", + "EXCLUSIVE", + "EXPIRE", + "EXPORT", + "EXTEND", + "FALSE", + "FEW", + "FIRST", + "FLAT", + "FULL", + "FUNCTION", + "GROUP", + "HEADER", + "HEADING", + "HOLE", + "IFBLOCK", + "IMPORT", + "IN", + "JOINED", + "KEEP", + "KEYED", + "LAST", + "LEFT", + "LIMIT", + "LOAD", + "LOCAL", + "LOCALE", + "LOOKUP", + "MACRO", + "MANY", + "MAXCOUNT", + "MAXLENGTH", + "MIN SKEW", + "MODULE", + "INTERFACE", + "NAMED", + "NOCASE", + "NOROOT", + "NOSCAN", + "NOSORT", + "NOT", + "OF", + "ONLY", + "OPT", + "OR", + "OUTER", + "OVERWRITE", + "PACKED", + "PARTITION", + "PENALTY", + "PHYSICALLENGTH", + "PIPE", + "QUOTE", + "RELATIONSHIP", + "REPEAT", + "RETURN", + "RIGHT", + "SCAN", + "SELF", + "SEPARATOR", + "SERVICE", + "SHARED", + "SKEW", + "SKIP", + "SQL", + "STORE", + "TERMINATOR", + "THOR", + "THRESHOLD", + "TOKEN", + "TRANSFORM", + "TRIM", + "TRUE", + "TYPE", + "UNICODEORDER", + "UNSORTED", + "VALIDATE", + "VIRTUAL", + "WHOLE", + "WILD", + "WITHIN", + "XML", + "XPATH", + "__COMPRESSED__", + ), + suffix=r"\b", + ), + Keyword.Reserved, + ), ], - 'functions': [ - (words(( - 'ABS', 'ACOS', 'ALLNODES', 'ASCII', 'ASIN', 'ASSTRING', 'ATAN', - 'ATAN2', 'AVE', 'CASE', 'CHOOSE', 'CHOOSEN', 'CHOOSESETS', - 'CLUSTERSIZE', 'COMBINE', 'CORRELATION', 'COS', 'COSH', 'COUNT', - 'COVARIANCE', 'CRON', 'DATASET', 'DEDUP', 'DEFINE', 'DENORMALIZE', - 'DISTRIBUTE', 'DISTRIBUTED', 'DISTRIBUTION', 'EBCDIC', 'ENTH', - 'ERROR', 'EVALUATE', 'EVENT', 'EVENTEXTRA', 'EVENTNAME', 'EXISTS', - 'EXP', 'FAILCODE', 'FAILMESSAGE', 'FETCH', 'FROMUNICODE', - 'GETISVALID', 'GLOBAL', 'GRAPH', 'GROUP', 'HASH', 'HASH32', - 'HASH64', 'HASHCRC', 'HASHMD5', 'HAVING', 'IF', 'INDEX', - 'INTFORMAT', 'ISVALID', 'ITERATE', 'JOIN', 'KEYUNICODE', 'LENGTH', - 'LIBRARY', 'LIMIT', 'LN', 'LOCAL', 'LOG', 'LOOP', 'MAP', 'MATCHED', - 'MATCHLENGTH', 'MATCHPOSITION', 'MATCHTEXT', 'MATCHUNICODE', 'MAX', - 'MERGE', 'MERGEJOIN', 'MIN', 'NOLOCAL', 'NONEMPTY', 'NORMALIZE', - 'PARSE', 'PIPE', 'POWER', 'PRELOAD', 'PROCESS', 'PROJECT', 'PULL', - 'RANDOM', 'RANGE', 'RANK', 'RANKED', 'REALFORMAT', 'RECORDOF', - 'REGEXFIND', 'REGEXREPLACE', 'REGROUP', 'REJECTED', 'ROLLUP', - 'ROUND', 'ROUNDUP', 'ROW', 'ROWDIFF', 'SAMPLE', 'SET', 'SIN', - 'SINH', 'SIZEOF', 'SOAPCALL', 'SORT', 'SORTED', 'SQRT', 'STEPPED', - 'STORED', 'SUM', 'TABLE', 'TAN', 'TANH', 'THISNODE', 'TOPN', - 'TOUNICODE', 'TRANSFER', 'TRIM', 'TRUNCATE', 'TYPEOF', 'UNGROUP', - 'UNICODEORDER', 'VARIANCE', 'WHICH', 'WORKUNIT', 'XMLDECODE', - 'XMLENCODE', 'XMLTEXT', 'XMLUNICODE'), suffix=r'\b'), - Name.Function), + "functions": [ + ( + words( + ( + "ABS", + "ACOS", + "ALLNODES", + "ASCII", + "ASIN", + "ASSTRING", + "ATAN", + "ATAN2", + "AVE", + "CASE", + "CHOOSE", + "CHOOSEN", + "CHOOSESETS", + "CLUSTERSIZE", + "COMBINE", + "CORRELATION", + "COS", + "COSH", + "COUNT", + "COVARIANCE", + "CRON", + "DATASET", + "DEDUP", + "DEFINE", + "DENORMALIZE", + "DISTRIBUTE", + "DISTRIBUTED", + "DISTRIBUTION", + "EBCDIC", + "ENTH", + "ERROR", + "EVALUATE", + "EVENT", + "EVENTEXTRA", + "EVENTNAME", + "EXISTS", + "EXP", + "FAILCODE", + "FAILMESSAGE", + "FETCH", + "FROMUNICODE", + "GETISVALID", + "GLOBAL", + "GRAPH", + "GROUP", + "HASH", + "HASH32", + "HASH64", + "HASHCRC", + "HASHMD5", + "HAVING", + "IF", + "INDEX", + "INTFORMAT", + "ISVALID", + "ITERATE", + "JOIN", + "KEYUNICODE", + "LENGTH", + "LIBRARY", + "LIMIT", + "LN", + "LOCAL", + "LOG", + "LOOP", + "MAP", + "MATCHED", + "MATCHLENGTH", + "MATCHPOSITION", + "MATCHTEXT", + "MATCHUNICODE", + "MAX", + "MERGE", + "MERGEJOIN", + "MIN", + "NOLOCAL", + "NONEMPTY", + "NORMALIZE", + "PARSE", + "PIPE", + "POWER", + "PRELOAD", + "PROCESS", + "PROJECT", + "PULL", + "RANDOM", + "RANGE", + "RANK", + "RANKED", + "REALFORMAT", + "RECORDOF", + "REGEXFIND", + "REGEXREPLACE", + "REGROUP", + "REJECTED", + "ROLLUP", + "ROUND", + "ROUNDUP", + "ROW", + "ROWDIFF", + "SAMPLE", + "SET", + "SIN", + "SINH", + "SIZEOF", + "SOAPCALL", + "SORT", + "SORTED", + "SQRT", + "STEPPED", + "STORED", + "SUM", + "TABLE", + "TAN", + "TANH", + "THISNODE", + "TOPN", + "TOUNICODE", + "TRANSFER", + "TRIM", + "TRUNCATE", + "TYPEOF", + "UNGROUP", + "UNICODEORDER", + "VARIANCE", + "WHICH", + "WORKUNIT", + "XMLDECODE", + "XMLENCODE", + "XMLTEXT", + "XMLUNICODE", + ), + suffix=r"\b", + ), + Name.Function, + ), ], - 'string': [ - (r'"', String, '#pop'), - (r'\'', String, '#pop'), + "string": [ + (r'"', String, "#pop"), + (r"\'", String, "#pop"), (r'[^"\']+', String), ], } @@ -134,11 +380,11 @@ class ECLLexer(RegexLexer): -> in conjunction with BEGIN/END seems relatively rare though.""" result = 0 - if '->' in text: + if "->" in text: result += 0.01 - if 'BEGIN' in text: + if "BEGIN" in text: result += 0.01 - if 'END' in text: + if "END" in text: result += 0.01 return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/eiffel.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/eiffel.py index 691c718..cb1d3e0 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/eiffel.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/eiffel.py @@ -1,68 +1,131 @@ """ - pygments.lexers.eiffel - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.eiffel +~~~~~~~~~~~~~~~~~~~~~~ - Lexer for the Eiffel language. +Lexer for the Eiffel language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, words, bygroups -from pygments.token import Comment, Operator, Keyword, Name, String, Number, \ - Punctuation, Whitespace +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['EiffelLexer'] +__all__ = ["EiffelLexer"] class EiffelLexer(RegexLexer): """ For Eiffel source code. """ - name = 'Eiffel' - url = 'https://www.eiffel.com' - aliases = ['eiffel'] - filenames = ['*.e'] - mimetypes = ['text/x-eiffel'] - version_added = '2.0' + + name = "Eiffel" + url = "https://www.eiffel.com" + aliases = ["eiffel"] + filenames = ["*.e"] + mimetypes = ["text/x-eiffel"] + version_added = "2.0" tokens = { - 'root': [ - (r'[^\S\n]+', Whitespace), - (r'--.*?$', Comment.Single), - (r'[^\S\n]+', Whitespace), + "root": [ + (r"[^\S\n]+", Whitespace), + (r"--.*?$", Comment.Single), + (r"[^\S\n]+", Whitespace), # Please note that keyword and operator are case insensitive. - (r'(?i)(true|false|void|current|result|precursor)\b', Keyword.Constant), - (r'(?i)(not|xor|implies|or)\b', Operator.Word), - (r'(?i)(and)(?:(\s+)(then))?\b', - bygroups(Operator.Word, Whitespace, Operator.Word)), - (r'(?i)(or)(?:(\s+)(else))?\b', - bygroups(Operator.Word, Whitespace, Operator.Word)), - (words(( - 'across', 'agent', 'alias', 'all', 'as', 'assign', 'attached', - 'attribute', 'check', 'class', 'convert', 'create', 'debug', - 'deferred', 'detachable', 'do', 'else', 'elseif', 'end', 'ensure', - 'expanded', 'export', 'external', 'feature', 'from', 'frozen', 'if', - 'inherit', 'inspect', 'invariant', 'like', 'local', 'loop', 'none', - 'note', 'obsolete', 'old', 'once', 'only', 'redefine', 'rename', - 'require', 'rescue', 'retry', 'select', 'separate', 'then', - 'undefine', 'until', 'variant', 'when'), prefix=r'(?i)\b', suffix=r'\b'), - Keyword.Reserved), + (r"(?i)(true|false|void|current|result|precursor)\b", Keyword.Constant), + (r"(?i)(not|xor|implies|or)\b", Operator.Word), + ( + r"(?i)(and)(?:(\s+)(then))?\b", + bygroups(Operator.Word, Whitespace, Operator.Word), + ), + ( + r"(?i)(or)(?:(\s+)(else))?\b", + bygroups(Operator.Word, Whitespace, Operator.Word), + ), + ( + words( + ( + "across", + "agent", + "alias", + "all", + "as", + "assign", + "attached", + "attribute", + "check", + "class", + "convert", + "create", + "debug", + "deferred", + "detachable", + "do", + "else", + "elseif", + "end", + "ensure", + "expanded", + "export", + "external", + "feature", + "from", + "frozen", + "if", + "inherit", + "inspect", + "invariant", + "like", + "local", + "loop", + "none", + "note", + "obsolete", + "old", + "once", + "only", + "redefine", + "rename", + "require", + "rescue", + "retry", + "select", + "separate", + "then", + "undefine", + "until", + "variant", + "when", + ), + prefix=r"(?i)\b", + suffix=r"\b", + ), + Keyword.Reserved, + ), (r'"\[([^\]%]|%(.|\n)|\][^"])*?\]"', String), (r'"([^"%\n]|%.)*?"', String), - include('numbers'), + include("numbers"), (r"'([^'%]|%'|%%)'", String.Char), (r"(//|\\\\|>=|<=|:=|/=|~|/~|[\\?!#%&@|+/\-=>*$<^\[\]])", Operator), (r"([{}():;,.])", Punctuation), - (r'([a-z]\w*)|([A-Z][A-Z0-9_]*[a-z]\w*)', Name), - (r'([A-Z][A-Z0-9_]*)', Name.Class), - (r'\n+', Whitespace), + (r"([a-z]\w*)|([A-Z][A-Z0-9_]*[a-z]\w*)", Name), + (r"([A-Z][A-Z0-9_]*)", Name.Class), + (r"\n+", Whitespace), ], - 'numbers': [ - (r'0[xX][a-fA-F0-9]+', Number.Hex), - (r'0[bB][01]+', Number.Bin), - (r'0[cC][0-7]+', Number.Oct), - (r'([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)', Number.Float), - (r'[0-9]+', Number.Integer), + "numbers": [ + (r"0[xX][a-fA-F0-9]+", Number.Hex), + (r"0[bB][01]+", Number.Bin), + (r"0[cC][0-7]+", Number.Oct), + (r"([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)", Number.Float), + (r"[0-9]+", Number.Integer), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elm.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elm.py index cebbbf0..6921776 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elm.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elm.py @@ -1,18 +1,25 @@ """ - pygments.lexers.elm - ~~~~~~~~~~~~~~~~~~~ +pygments.lexers.elm +~~~~~~~~~~~~~~~~~~~ - Lexer for the Elm programming language. +Lexer for the Elm programming language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, words, include, bygroups -from pygments.token import Comment, Keyword, Name, Number, Punctuation, \ - String, Whitespace +from pygments.token import ( + Comment, + Keyword, + Name, + Number, + Punctuation, + String, + Whitespace, +) -__all__ = ['ElmLexer'] +__all__ = ["ElmLexer"] class ElmLexer(RegexLexer): @@ -20,104 +27,135 @@ class ElmLexer(RegexLexer): For Elm source code. """ - name = 'Elm' - url = 'https://elm-lang.org/' - aliases = ['elm'] - filenames = ['*.elm'] - mimetypes = ['text/x-elm'] - version_added = '2.1' + name = "Elm" + url = "https://elm-lang.org/" + aliases = ["elm"] + filenames = ["*.elm"] + mimetypes = ["text/x-elm"] + version_added = "2.1" - validName = r'[a-z_][a-zA-Z0-9_\']*' + validName = r"[a-z_][a-zA-Z0-9_\']*" - specialName = r'^main ' + specialName = r"^main " builtinOps = ( - '~', '||', '|>', '|', '`', '^', '\\', '\'', '>>', '>=', '>', '==', - '=', '<~', '<|', '<=', '<<', '<-', '<', '::', ':', '/=', '//', '/', - '..', '.', '->', '-', '++', '+', '*', '&&', '%', + "~", + "||", + "|>", + "|", + "`", + "^", + "\\", + "'", + ">>", + ">=", + ">", + "==", + "=", + "<~", + "<|", + "<=", + "<<", + "<-", + "<", + "::", + ":", + "/=", + "//", + "/", + "..", + ".", + "->", + "-", + "++", + "+", + "*", + "&&", + "%", ) - reservedWords = words(( - 'alias', 'as', 'case', 'else', 'if', 'import', 'in', - 'let', 'module', 'of', 'port', 'then', 'type', 'where', - ), suffix=r'\b') + reservedWords = words( + ( + "alias", + "as", + "case", + "else", + "if", + "import", + "in", + "let", + "module", + "of", + "port", + "then", + "type", + "where", + ), + suffix=r"\b", + ) tokens = { - 'root': [ - + "root": [ # Comments - (r'\{-', Comment.Multiline, 'comment'), - (r'--.*', Comment.Single), - + (r"\{-", Comment.Multiline, "comment"), + (r"--.*", Comment.Single), # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), # Strings - (r'"', String, 'doublequote'), - + (r'"', String, "doublequote"), # Modules - (r'^(\s*)(module)(\s*)', bygroups(Whitespace, Keyword.Namespace, - Whitespace), 'imports'), - + ( + r"^(\s*)(module)(\s*)", + bygroups(Whitespace, Keyword.Namespace, Whitespace), + "imports", + ), # Imports - (r'^(\s*)(import)(\s*)', bygroups(Whitespace, Keyword.Namespace, - Whitespace), 'imports'), - + ( + r"^(\s*)(import)(\s*)", + bygroups(Whitespace, Keyword.Namespace, Whitespace), + "imports", + ), # Shaders - (r'\[glsl\|.*', Name.Entity, 'shader'), - + (r"\[glsl\|.*", Name.Entity, "shader"), # Keywords (reservedWords, Keyword.Reserved), - # Types - (r'[A-Z][a-zA-Z0-9_]*', Keyword.Type), - + (r"[A-Z][a-zA-Z0-9_]*", Keyword.Type), # Main (specialName, Keyword.Reserved), - # Prefix Operators - (words((builtinOps), prefix=r'\(', suffix=r'\)'), Name.Function), - + (words((builtinOps), prefix=r"\(", suffix=r"\)"), Name.Function), # Infix Operators (words(builtinOps), Name.Function), - # Numbers - include('numbers'), - + include("numbers"), # Variable Names (validName, Name.Variable), - # Parens - (r'[,()\[\]{}]', Punctuation), - + (r"[,()\[\]{}]", Punctuation), ], - - 'comment': [ - (r'-(?!\})', Comment.Multiline), - (r'\{-', Comment.Multiline, 'comment'), - (r'[^-}]', Comment.Multiline), - (r'-\}', Comment.Multiline, '#pop'), + "comment": [ + (r"-(?!\})", Comment.Multiline), + (r"\{-", Comment.Multiline, "comment"), + (r"[^-}]", Comment.Multiline), + (r"-\}", Comment.Multiline, "#pop"), ], - - 'doublequote': [ - (r'\\u[0-9a-fA-F]{4}', String.Escape), + "doublequote": [ + (r"\\u[0-9a-fA-F]{4}", String.Escape), (r'\\[nrfvb\\"]', String.Escape), (r'[^"]', String), - (r'"', String, '#pop'), + (r'"', String, "#pop"), ], - - 'imports': [ - (r'\w+(\.\w+)*', Name.Class, '#pop'), + "imports": [ + (r"\w+(\.\w+)*", Name.Class, "#pop"), ], - - 'numbers': [ - (r'_?\d+\.(?=\d+)', Number.Float), - (r'_?\d+', Number.Integer), + "numbers": [ + (r"_?\d+\.(?=\d+)", Number.Float), + (r"_?\d+", Number.Integer), ], - - 'shader': [ - (r'\|(?!\])', Name.Entity), - (r'\|\]', Name.Entity, '#pop'), - (r'(.*)(\n)', bygroups(Name.Entity, Whitespace)), + "shader": [ + (r"\|(?!\])", Name.Entity), + (r"\|\]", Name.Entity, "#pop"), + (r"(.*)(\n)", bygroups(Name.Entity, Whitespace)), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elpi.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elpi.py index 5e4b1e5..718a0c4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elpi.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/elpi.py @@ -1,32 +1,41 @@ """ - pygments.lexers.elpi - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.elpi +~~~~~~~~~~~~~~~~~~~~ - Lexer for the `Elpi `_ programming language. +Lexer for the `Elpi `_ programming language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, include, using -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, +) -__all__ = ['ElpiLexer'] +__all__ = ["ElpiLexer"] from pygments.lexers.theorem import CoqLexer + class ElpiLexer(RegexLexer): """ Lexer for the Elpi programming language. """ - name = 'Elpi' - url = 'http://github.com/LPCIC/elpi' - aliases = ['elpi'] - filenames = ['*.elpi'] - mimetypes = ['text/x-elpi'] - version_added = '2.11' + name = "Elpi" + url = "http://github.com/LPCIC/elpi" + aliases = ["elpi"] + filenames = ["*.elpi"] + mimetypes = ["text/x-elpi"] + version_added = "2.11" lcase_re = r"[a-z]" ucase_re = r"[A-Z]" @@ -42,134 +51,154 @@ class ElpiLexer(RegexLexer): const_sym_re = rf"({constant_re}|{symbol_re}|{escape_re})" tokens = { - 'root': [ - include('elpi') - ], - - 'elpi': [ - include('_elpi-comment'), - - (r"(:before|:after|:if|:name)(\s*)(\")", - bygroups(Keyword.Mode, Text.Whitespace, String.Double), - 'elpi-string'), - (r"(:index)(\s*)(\()", bygroups(Keyword.Mode, Text.Whitespace, Punctuation), - 'elpi-indexing-expr'), - (rf"\b(external pred|pred)(\s+)({const_sym_re})", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-pred-item'), - (rf"\b(external type|type)(\s+)(({const_sym_re}(,\s*)?)+)", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-type'), - (rf"\b(kind)(\s+)(({const_sym_re}|,)+)", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-type'), - (rf"\b(typeabbrev)(\s+)({const_sym_re})", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-type'), - (r"\b(typeabbrev)(\s+)(\([^)]+\))", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-type'), - (r"\b(accumulate)(\s+)(\")", - bygroups(Keyword.Declaration, Text.Whitespace, String.Double), - 'elpi-string'), - (rf"\b(accumulate|namespace|local)(\s+)({constant_re})", - bygroups(Keyword.Declaration, Text.Whitespace, Text)), - (rf"\b(shorten)(\s+)({constant_re}\.)", - bygroups(Keyword.Declaration, Text.Whitespace, Text)), - (r"\b(pi|sigma)(\s+)([a-zA-Z][A-Za-z0-9_ ]*)(\\)", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable, Text)), - (rf"\b(constraint)(\s+)(({const_sym_re}(\s+)?)+)", - bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), - 'elpi-chr-rule-start'), - + "root": [include("elpi")], + "elpi": [ + include("_elpi-comment"), + ( + r"(:before|:after|:if|:name)(\s*)(\")", + bygroups(Keyword.Mode, Text.Whitespace, String.Double), + "elpi-string", + ), + ( + r"(:index)(\s*)(\()", + bygroups(Keyword.Mode, Text.Whitespace, Punctuation), + "elpi-indexing-expr", + ), + ( + rf"\b(external pred|pred)(\s+)({const_sym_re})", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-pred-item", + ), + ( + rf"\b(external type|type)(\s+)(({const_sym_re}(,\s*)?)+)", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-type", + ), + ( + rf"\b(kind)(\s+)(({const_sym_re}|,)+)", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-type", + ), + ( + rf"\b(typeabbrev)(\s+)({const_sym_re})", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-type", + ), + ( + r"\b(typeabbrev)(\s+)(\([^)]+\))", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-type", + ), + ( + r"\b(accumulate)(\s+)(\")", + bygroups(Keyword.Declaration, Text.Whitespace, String.Double), + "elpi-string", + ), + ( + rf"\b(accumulate|namespace|local)(\s+)({constant_re})", + bygroups(Keyword.Declaration, Text.Whitespace, Text), + ), + ( + rf"\b(shorten)(\s+)({constant_re}\.)", + bygroups(Keyword.Declaration, Text.Whitespace, Text), + ), + ( + r"\b(pi|sigma)(\s+)([a-zA-Z][A-Za-z0-9_ ]*)(\\)", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable, Text), + ), + ( + rf"\b(constraint)(\s+)(({const_sym_re}(\s+)?)+)", + bygroups(Keyword.Declaration, Text.Whitespace, Name.Function), + "elpi-chr-rule-start", + ), (rf"(?=[A-Z_]){constant_re}", Name.Variable), (rf"(?=[a-z_])({constant_re}|_)\\", Name.Variable), (r"_", Name.Variable), (rf"({symbol_re}|!|=>|;)", Keyword.Declaration), (constant_re, Text), (r"\[|\]|\||=>", Keyword.Declaration), - (r'"', String.Double, 'elpi-string'), - (r'`', String.Double, 'elpi-btick'), - (r'\'', String.Double, 'elpi-tick'), - (r'\{\{', Punctuation, 'elpi-quote'), - (r'\{[^\{]', Text, 'elpi-spill'), - (r"\(", Punctuation, 'elpi-in-parens'), - (r'\d[\d_]*', Number.Integer), - (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float), + (r'"', String.Double, "elpi-string"), + (r"`", String.Double, "elpi-btick"), + (r"\'", String.Double, "elpi-tick"), + (r"\{\{", Punctuation, "elpi-quote"), + (r"\{[^\{]", Text, "elpi-spill"), + (r"\(", Punctuation, "elpi-in-parens"), + (r"\d[\d_]*", Number.Integer), + (r"-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)", Number.Float), (r"[\+\*\-/\^\.]", Operator), ], - '_elpi-comment': [ - (r'%[^\n]*\n', Comment), - (r'/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/', Comment), + "_elpi-comment": [ + (r"%[^\n]*\n", Comment), + (r"/(?:\\\n)?[*](?:[^*]|[*](?!(?:\\\n)?/))*[*](?:\\\n)?/", Comment), (r"\s+", Text.Whitespace), ], - 'elpi-indexing-expr':[ - (r'[0-9 _]+', Number.Integer), - (r'\)', Punctuation, '#pop'), + "elpi-indexing-expr": [ + (r"[0-9 _]+", Number.Integer), + (r"\)", Punctuation, "#pop"), ], - 'elpi-type': [ - (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), 'elpi-string'), - (r'->', Keyword.Type), + "elpi-type": [ + (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), "elpi-string"), + (r"->", Keyword.Type), (constant_re, Keyword.Type), (r"\(|\)", Keyword.Type), - (r"\.", Text, '#pop'), - include('_elpi-comment'), + (r"\.", Text, "#pop"), + include("_elpi-comment"), ], - 'elpi-chr-rule-start': [ - (r"\{", Punctuation, 'elpi-chr-rule'), - include('_elpi-comment'), + "elpi-chr-rule-start": [ + (r"\{", Punctuation, "elpi-chr-rule"), + include("_elpi-comment"), ], - 'elpi-chr-rule': [ - (r"\brule\b", Keyword.Declaration), - (r"\\", Keyword.Declaration), - (r"\}", Punctuation, '#pop:2'), - include('elpi'), + "elpi-chr-rule": [ + (r"\brule\b", Keyword.Declaration), + (r"\\", Keyword.Declaration), + (r"\}", Punctuation, "#pop:2"), + include("elpi"), ], - 'elpi-pred-item': [ - (r"[io]:", Keyword.Mode, 'elpi-ctype'), - (r"\.", Text, '#pop'), - include('_elpi-comment'), + "elpi-pred-item": [ + (r"[io]:", Keyword.Mode, "elpi-ctype"), + (r"\.", Text, "#pop"), + include("_elpi-comment"), ], - 'elpi-ctype': [ - (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), 'elpi-string'), - (r'->', Keyword.Type), + "elpi-ctype": [ + (r"(ctype\s+)(\")", bygroups(Keyword.Type, String.Double), "elpi-string"), + (r"->", Keyword.Type), (constant_re, Keyword.Type), (r"\(|\)", Keyword.Type), - (r",", Text, '#pop'), - (r"\.", Text, '#pop:2'), - include('_elpi-comment'), + (r",", Text, "#pop"), + (r"\.", Text, "#pop:2"), + include("_elpi-comment"), ], - 'elpi-btick': [ - (r'[^` ]+', String.Double), - (r'`', String.Double, '#pop'), + "elpi-btick": [ + (r"[^` ]+", String.Double), + (r"`", String.Double, "#pop"), ], - 'elpi-tick': [ - (r'[^\' ]+', String.Double), - (r'\'', String.Double, '#pop'), + "elpi-tick": [ + (r"[^\' ]+", String.Double), + (r"\'", String.Double, "#pop"), ], - 'elpi-string': [ - (r'[^\"]+', String.Double), - (r'"', String.Double, '#pop'), + "elpi-string": [ + (r"[^\"]+", String.Double), + (r'"', String.Double, "#pop"), ], - 'elpi-quote': [ - (r'\}\}', Punctuation, '#pop'), + "elpi-quote": [ + (r"\}\}", Punctuation, "#pop"), (r"\s+", Text.Whitespace), - (r"(lp:)(\{\{)", bygroups(Number, Punctuation), 'elpi-quote-exit'), + (r"(lp:)(\{\{)", bygroups(Number, Punctuation), "elpi-quote-exit"), (rf"(lp:)((?=[A-Z_]){constant_re})", bygroups(Number, Name.Variable)), (r"((?!lp:|\}\}).)+", using(CoqLexer)), ], - 'elpi-quote-exit': [ - include('elpi'), - (r'\}\}', Punctuation, '#pop'), + "elpi-quote-exit": [ + include("elpi"), + (r"\}\}", Punctuation, "#pop"), ], - 'elpi-spill': [ - (r'\{[^\{]', Text, '#push'), - (r'\}[^\}]', Text, '#pop'), - include('elpi'), + "elpi-spill": [ + (r"\{[^\{]", Text, "#push"), + (r"\}[^\}]", Text, "#pop"), + include("elpi"), ], - 'elpi-in-parens': [ - (r"\(", Punctuation, '#push'), - include('elpi'), - (r"\)", Punctuation, '#pop'), + "elpi-in-parens": [ + (r"\(", Punctuation, "#push"), + include("elpi"), + (r"\)", Punctuation, "#pop"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/email.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/email.py index ea071c8..c28172c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/email.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/email.py @@ -1,11 +1,11 @@ """ - pygments.lexers.email - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.email +~~~~~~~~~~~~~~~~~~~~~ - Lexer for the raw E-mail. +Lexer for the raw E-mail. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, DelegatingLexer, bygroups @@ -34,7 +34,8 @@ class EmailHeaderLexer(RegexLexer): # content default_actions = self.get_tokens_unprocessed( - match.group(2), stack=("root", "header")) + match.group(2), stack=("root", "header") + ) yield from default_actions else: # lowlight @@ -50,23 +51,20 @@ class EmailHeaderLexer(RegexLexer): # folding (r"\n[ \t]", Text.Whitespace), (r"\n(?![ \t])", Text.Whitespace, "#pop"), - # keywords (r"\bE?SMTPS?\b", Keyword), (r"\b(?:HE|EH)LO\b", Keyword), - # mailbox (r"[\w\.\-\+=]+@[\w\.\-]+", Name.Label), (r"<[\w\.\-\+=]+@[\w\.\-]+>", Name.Label), - # domain (r"\b(\w[\w\.-]*\.[\w\.-]*\w[a-zA-Z]+)\b", Name.Function), - # IPv4 - (r"(?<=\b)(?:(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(?:25[0" - r"-5]|2[0-4][0-9]|1?[0-9][0-9]?)(?=\b)", - Number.Integer), - + ( + r"(?<=\b)(?:(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(?:25[0" + r"-5]|2[0-4][0-9]|1?[0-9][0-9]?)(?=\b)", + Number.Integer, + ), # IPv6 (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,7}:(?!\b)", Number.Hex), (r"(?<=\b):((:[0-9a-fA-F]{1,4}){1,7}|:)(?=\b)", Number.Hex), @@ -74,38 +72,59 @@ class EmailHeaderLexer(RegexLexer): (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}(?=\b)", Number.Hex), (r"(?<=\b)[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})(?=\b)", Number.Hex), (r"(?<=\b)fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}(?=\b)", Number.Hex), - (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}(?=\b)", Number.Hex), - (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}(?=\b)", - Number.Hex), - (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}(?=\b)", - Number.Hex), - (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}(?=\b)", - Number.Hex), - (r"(?<=\b)::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}" - r"[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}" - r"[0-9])(?=\b)", - Number.Hex), - (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9])" - r"{0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])(?=\b)", - Number.Hex), - + ( + r"(?<=\b)([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}(?=\b)", + Number.Hex, + ), + ( + r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}(?=\b)", + Number.Hex, + ), + ( + r"(?<=\b)([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}(?=\b)", + Number.Hex, + ), + ( + r"(?<=\b)([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}(?=\b)", + Number.Hex, + ), + ( + r"(?<=\b)::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}" + r"[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}" + r"[0-9])(?=\b)", + Number.Hex, + ), + ( + r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9])" + r"{0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])(?=\b)", + Number.Hex, + ), # Date time - (r"(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3[" - r"01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(" - r"19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])" - r"(?::(60|[0-5][0-9]))?(?:\.\d{1,5})?\s+([-\+][0-9]{2}[0-5][0-" - r"9]|\(?(?:UTC?|GMT|(?:E|C|M|P)(?:ST|ET|DT)|[A-IK-Z])\)?)", - Name.Decorator), - + ( + r"(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3[" + r"01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(" + r"19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])" + r"(?::(60|[0-5][0-9]))?(?:\.\d{1,5})?\s+([-\+][0-9]{2}[0-5][0-" + r"9]|\(?(?:UTC?|GMT|(?:E|C|M|P)(?:ST|ET|DT)|[A-IK-Z])\)?)", + Name.Decorator, + ), # RFC-2047 encoded string - (r"(=\?)([\w-]+)(\?)([BbQq])(\?)([\[\w!\"#$%&\'()*+,-./:;<=>@[\\" - r"\]^_`{|}~]+)(\?=)", - bygroups(String.Affix, Name.Constant, String.Affix, Keyword.Constant, - String.Affix, Number.Hex, String.Affix)), - + ( + r"(=\?)([\w-]+)(\?)([BbQq])(\?)([\[\w!\"#$%&\'()*+,-./:;<=>@[\\" + r"\]^_`{|}~]+)(\?=)", + bygroups( + String.Affix, + Name.Constant, + String.Affix, + Keyword.Constant, + String.Affix, + Number.Hex, + String.Affix, + ), + ), # others - (r'[\s]+', Text.Whitespace), - (r'[\S]', Text), + (r"[\s]+", Text.Whitespace), + (r"[\S]", Text), ], } @@ -126,7 +145,7 @@ class EmailLexer(DelegatingLexer): filenames = ["*.eml"] mimetypes = ["message/rfc822"] url = "https://en.wikipedia.org/wiki/Email#Message_format" - version_added = '2.5' + version_added = "2.5" def __init__(self, **options): super().__init__(EmailHeaderLexer, MIMELexer, Comment, **options) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/erlang.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/erlang.py index 120f504..ac1c723 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/erlang.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/erlang.py @@ -1,22 +1,38 @@ """ - pygments.lexers.erlang - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.erlang +~~~~~~~~~~~~~~~~~~~~~~ - Lexers for Erlang. +Lexers for Erlang. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import Lexer, RegexLexer, bygroups, words, do_insertions, \ - include, default, line_re -from pygments.token import Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic, Whitespace +from pygments.lexer import ( + Lexer, + RegexLexer, + bygroups, + words, + do_insertions, + include, + default, + line_re, +) +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, + Whitespace, +) -__all__ = ['ErlangLexer', 'ErlangShellLexer', 'ElixirConsoleLexer', - 'ElixirLexer'] +__all__ = ["ErlangLexer", "ErlangShellLexer", "ElixirConsoleLexer", "ElixirLexer"] class ErlangLexer(RegexLexer): @@ -24,124 +40,260 @@ class ErlangLexer(RegexLexer): For the Erlang functional programming language. """ - name = 'Erlang' - url = 'https://www.erlang.org/' - aliases = ['erlang'] - filenames = ['*.erl', '*.hrl', '*.es', '*.escript'] - mimetypes = ['text/x-erlang'] - version_added = '0.9' + name = "Erlang" + url = "https://www.erlang.org/" + aliases = ["erlang"] + filenames = ["*.erl", "*.hrl", "*.es", "*.escript"] + mimetypes = ["text/x-erlang"] + version_added = "0.9" keywords = ( - 'after', 'begin', 'case', 'catch', 'cond', 'end', 'fun', 'if', - 'let', 'of', 'query', 'receive', 'try', 'when', + "after", + "begin", + "case", + "catch", + "cond", + "end", + "fun", + "if", + "let", + "of", + "query", + "receive", + "try", + "when", ) builtins = ( # See erlang(3) man page - 'abs', 'append_element', 'apply', 'atom_to_list', 'binary_to_list', - 'bitstring_to_list', 'binary_to_term', 'bit_size', 'bump_reductions', - 'byte_size', 'cancel_timer', 'check_process_code', 'delete_module', - 'demonitor', 'disconnect_node', 'display', 'element', 'erase', 'exit', - 'float', 'float_to_list', 'fun_info', 'fun_to_list', - 'function_exported', 'garbage_collect', 'get', 'get_keys', - 'group_leader', 'hash', 'hd', 'integer_to_list', 'iolist_to_binary', - 'iolist_size', 'is_atom', 'is_binary', 'is_bitstring', 'is_boolean', - 'is_builtin', 'is_float', 'is_function', 'is_integer', 'is_list', - 'is_number', 'is_pid', 'is_port', 'is_process_alive', 'is_record', - 'is_reference', 'is_tuple', 'length', 'link', 'list_to_atom', - 'list_to_binary', 'list_to_bitstring', 'list_to_existing_atom', - 'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple', - 'load_module', 'localtime_to_universaltime', 'make_tuple', 'md5', - 'md5_final', 'md5_update', 'memory', 'module_loaded', 'monitor', - 'monitor_node', 'node', 'nodes', 'open_port', 'phash', 'phash2', - 'pid_to_list', 'port_close', 'port_command', 'port_connect', - 'port_control', 'port_call', 'port_info', 'port_to_list', - 'process_display', 'process_flag', 'process_info', 'purge_module', - 'put', 'read_timer', 'ref_to_list', 'register', 'resume_process', - 'round', 'send', 'send_after', 'send_nosuspend', 'set_cookie', - 'setelement', 'size', 'spawn', 'spawn_link', 'spawn_monitor', - 'spawn_opt', 'split_binary', 'start_timer', 'statistics', - 'suspend_process', 'system_flag', 'system_info', 'system_monitor', - 'system_profile', 'term_to_binary', 'tl', 'trace', 'trace_delivered', - 'trace_info', 'trace_pattern', 'trunc', 'tuple_size', 'tuple_to_list', - 'universaltime_to_localtime', 'unlink', 'unregister', 'whereis' + "abs", + "append_element", + "apply", + "atom_to_list", + "binary_to_list", + "bitstring_to_list", + "binary_to_term", + "bit_size", + "bump_reductions", + "byte_size", + "cancel_timer", + "check_process_code", + "delete_module", + "demonitor", + "disconnect_node", + "display", + "element", + "erase", + "exit", + "float", + "float_to_list", + "fun_info", + "fun_to_list", + "function_exported", + "garbage_collect", + "get", + "get_keys", + "group_leader", + "hash", + "hd", + "integer_to_list", + "iolist_to_binary", + "iolist_size", + "is_atom", + "is_binary", + "is_bitstring", + "is_boolean", + "is_builtin", + "is_float", + "is_function", + "is_integer", + "is_list", + "is_number", + "is_pid", + "is_port", + "is_process_alive", + "is_record", + "is_reference", + "is_tuple", + "length", + "link", + "list_to_atom", + "list_to_binary", + "list_to_bitstring", + "list_to_existing_atom", + "list_to_float", + "list_to_integer", + "list_to_pid", + "list_to_tuple", + "load_module", + "localtime_to_universaltime", + "make_tuple", + "md5", + "md5_final", + "md5_update", + "memory", + "module_loaded", + "monitor", + "monitor_node", + "node", + "nodes", + "open_port", + "phash", + "phash2", + "pid_to_list", + "port_close", + "port_command", + "port_connect", + "port_control", + "port_call", + "port_info", + "port_to_list", + "process_display", + "process_flag", + "process_info", + "purge_module", + "put", + "read_timer", + "ref_to_list", + "register", + "resume_process", + "round", + "send", + "send_after", + "send_nosuspend", + "set_cookie", + "setelement", + "size", + "spawn", + "spawn_link", + "spawn_monitor", + "spawn_opt", + "split_binary", + "start_timer", + "statistics", + "suspend_process", + "system_flag", + "system_info", + "system_monitor", + "system_profile", + "term_to_binary", + "tl", + "trace", + "trace_delivered", + "trace_info", + "trace_pattern", + "trunc", + "tuple_size", + "tuple_to_list", + "universaltime_to_localtime", + "unlink", + "unregister", + "whereis", ) - operators = r'(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)' + operators = r"(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)" word_operators = ( - 'and', 'andalso', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', - 'div', 'not', 'or', 'orelse', 'rem', 'xor' + "and", + "andalso", + "band", + "bnot", + "bor", + "bsl", + "bsr", + "bxor", + "div", + "not", + "or", + "orelse", + "rem", + "xor", ) atom_re = r"(?:[a-z]\w*|'[^\n']*[^\\]')" - variable_re = r'(?:[A-Z_]\w*)' + variable_re = r"(?:[A-Z_]\w*)" esc_char_re = r'[bdefnrstv\'"\\]' - esc_octal_re = r'[0-7][0-7]?[0-7]?' - esc_hex_re = r'(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})' - esc_ctrl_re = r'\^[a-zA-Z]' - escape_re = r'(?:\\(?:'+esc_char_re+r'|'+esc_octal_re+r'|'+esc_hex_re+r'|'+esc_ctrl_re+r'))' + esc_octal_re = r"[0-7][0-7]?[0-7]?" + esc_hex_re = r"(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})" + esc_ctrl_re = r"\^[a-zA-Z]" + escape_re = ( + r"(?:\\(?:" + + esc_char_re + + r"|" + + esc_octal_re + + r"|" + + esc_hex_re + + r"|" + + esc_ctrl_re + + r"))" + ) - macro_re = r'(?:'+variable_re+r'|'+atom_re+r')' + macro_re = r"(?:" + variable_re + r"|" + atom_re + r")" - base_re = r'(?:[2-9]|[12][0-9]|3[0-6])' + base_re = r"(?:[2-9]|[12][0-9]|3[0-6])" tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'(%.*)(\n)', bygroups(Comment, Whitespace)), - (words(keywords, suffix=r'\b'), Keyword), - (words(builtins, suffix=r'\b'), Name.Builtin), - (words(word_operators, suffix=r'\b'), Operator.Word), - (r'^-', Punctuation, 'directive'), + "root": [ + (r"\s+", Whitespace), + (r"(%.*)(\n)", bygroups(Comment, Whitespace)), + (words(keywords, suffix=r"\b"), Keyword), + (words(builtins, suffix=r"\b"), Name.Builtin), + (words(word_operators, suffix=r"\b"), Operator.Word), + (r"^-", Punctuation, "directive"), (operators, Operator), - (r'"', String, 'string'), - (r'<<', Name.Label), - (r'>>', Name.Label), - ('(' + atom_re + ')(:)', bygroups(Name.Namespace, Punctuation)), - ('(?:^|(?<=:))(' + atom_re + r')(\s*)(\()', - bygroups(Name.Function, Whitespace, Punctuation)), - (r'[+-]?' + base_re + r'#[0-9a-zA-Z]+', Number.Integer), - (r'[+-]?\d+', Number.Integer), - (r'[+-]?\d+.\d+', Number.Float), - (r'[]\[:_@\".{}()|;,]', Punctuation), + (r'"', String, "string"), + (r"<<", Name.Label), + (r">>", Name.Label), + ("(" + atom_re + ")(:)", bygroups(Name.Namespace, Punctuation)), + ( + "(?:^|(?<=:))(" + atom_re + r")(\s*)(\()", + bygroups(Name.Function, Whitespace, Punctuation), + ), + (r"[+-]?" + base_re + r"#[0-9a-zA-Z]+", Number.Integer), + (r"[+-]?\d+", Number.Integer), + (r"[+-]?\d+.\d+", Number.Float), + (r"[]\[:_@\".{}()|;,]", Punctuation), (variable_re, Name.Variable), (atom_re, Name), - (r'\?'+macro_re, Name.Constant), - (r'\$(?:'+escape_re+r'|\\[ %]|[^\\])', String.Char), - (r'#'+atom_re+r'(:?\.'+atom_re+r')?', Name.Label), - + (r"\?" + macro_re, Name.Constant), + (r"\$(?:" + escape_re + r"|\\[ %]|[^\\])", String.Char), + (r"#" + atom_re + r"(:?\." + atom_re + r")?", Name.Label), # Erlang script shebang - (r'\A#!.+\n', Comment.Hashbang), - + (r"\A#!.+\n", Comment.Hashbang), # EEP 43: Maps # http://www.erlang.org/eeps/eep-0043.html - (r'#\{', Punctuation, 'map_key'), + (r"#\{", Punctuation, "map_key"), ], - 'string': [ + "string": [ (escape_re, String.Escape), - (r'"', String, '#pop'), - (r'~[0-9.*]*[~#+BPWXb-ginpswx]', String.Interpol), + (r'"', String, "#pop"), + (r"~[0-9.*]*[~#+BPWXb-ginpswx]", String.Interpol), (r'[^"\\~]+', String), - (r'~', String), + (r"~", String), ], - 'directive': [ - (r'(define)(\s*)(\()('+macro_re+r')', - bygroups(Name.Entity, Whitespace, Punctuation, Name.Constant), '#pop'), - (r'(record)(\s*)(\()('+macro_re+r')', - bygroups(Name.Entity, Whitespace, Punctuation, Name.Label), '#pop'), - (atom_re, Name.Entity, '#pop'), + "directive": [ + ( + r"(define)(\s*)(\()(" + macro_re + r")", + bygroups(Name.Entity, Whitespace, Punctuation, Name.Constant), + "#pop", + ), + ( + r"(record)(\s*)(\()(" + macro_re + r")", + bygroups(Name.Entity, Whitespace, Punctuation, Name.Label), + "#pop", + ), + (atom_re, Name.Entity, "#pop"), ], - 'map_key': [ - include('root'), - (r'=>', Punctuation, 'map_val'), - (r':=', Punctuation, 'map_val'), - (r'\}', Punctuation, '#pop'), + "map_key": [ + include("root"), + (r"=>", Punctuation, "map_val"), + (r":=", Punctuation, "map_val"), + (r"\}", Punctuation, "#pop"), ], - 'map_val': [ - include('root'), - (r',', Punctuation, '#pop'), - (r'(?=\})', Punctuation, '#pop'), + "map_val": [ + include("root"), + (r",", Punctuation, "#pop"), + (r"(?=\})", Punctuation, "#pop"), ], } @@ -150,51 +302,53 @@ class ErlangShellLexer(Lexer): """ Shell sessions in erl (for Erlang code). """ - name = 'Erlang erl session' - aliases = ['erl'] - filenames = ['*.erl-sh'] - mimetypes = ['text/x-erl-shellsession'] - url = 'https://www.erlang.org/' - version_added = '1.1' - _prompt_re = re.compile(r'(?:\([\w@_.]+\))?\d+>(?=\s|\Z)') + name = "Erlang erl session" + aliases = ["erl"] + filenames = ["*.erl-sh"] + mimetypes = ["text/x-erl-shellsession"] + url = "https://www.erlang.org/" + version_added = "1.1" + + _prompt_re = re.compile(r"(?:\([\w@_.]+\))?\d+>(?=\s|\Z)") def get_tokens_unprocessed(self, text): erlexer = ErlangLexer(**self.options) - curcode = '' + curcode = "" insertions = [] for match in line_re.finditer(text): line = match.group() m = self._prompt_re.match(line) if m is not None: end = m.end() - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:end])])) + insertions.append((len(curcode), [(0, Generic.Prompt, line[:end])])) curcode += line[end:] else: if curcode: - yield from do_insertions(insertions, - erlexer.get_tokens_unprocessed(curcode)) - curcode = '' + yield from do_insertions( + insertions, erlexer.get_tokens_unprocessed(curcode) + ) + curcode = "" insertions = [] - if line.startswith('*'): + if line.startswith("*"): yield match.start(), Generic.Traceback, line else: yield match.start(), Generic.Output, line if curcode: - yield from do_insertions(insertions, - erlexer.get_tokens_unprocessed(curcode)) + yield from do_insertions( + insertions, erlexer.get_tokens_unprocessed(curcode) + ) def gen_elixir_string_rules(name, symbol, token): states = {} - states['string_' + name] = [ - (rf'[^#{symbol}\\]+', token), - include('escapes'), - (r'\\.', token), - (rf'({symbol})', bygroups(token), "#pop"), - include('interpol') + states["string_" + name] = [ + (rf"[^#{symbol}\\]+", token), + include("escapes"), + (r"\\.", token), + (rf"({symbol})", bygroups(token), "#pop"), + include("interpol"), ] return states @@ -202,17 +356,17 @@ def gen_elixir_string_rules(name, symbol, token): def gen_elixir_sigstr_rules(term, term_class, token, interpol=True): if interpol: return [ - (rf'[^#{term_class}\\]+', token), - include('escapes'), - (r'\\.', token), - (rf'{term}[a-zA-Z]*', token, '#pop'), - include('interpol') + (rf"[^#{term_class}\\]+", token), + include("escapes"), + (r"\\.", token), + (rf"{term}[a-zA-Z]*", token, "#pop"), + include("interpol"), ] else: return [ - (rf'[^{term_class}\\]+', token), - (r'\\.', token), - (rf'{term}[a-zA-Z]*', token, '#pop'), + (rf"[^{term_class}\\]+", token), + (r"\\.", token), + (rf"{term}[a-zA-Z]*", token, "#pop"), ] @@ -221,41 +375,97 @@ class ElixirLexer(RegexLexer): For the Elixir language. """ - name = 'Elixir' - url = 'https://elixir-lang.org' - aliases = ['elixir', 'ex', 'exs'] - filenames = ['*.ex', '*.eex', '*.exs', '*.leex'] - mimetypes = ['text/x-elixir'] - version_added = '1.5' + name = "Elixir" + url = "https://elixir-lang.org" + aliases = ["elixir", "ex", "exs"] + filenames = ["*.ex", "*.eex", "*.exs", "*.leex"] + mimetypes = ["text/x-elixir"] + version_added = "1.5" - KEYWORD = ('fn', 'do', 'end', 'after', 'else', 'rescue', 'catch') - KEYWORD_OPERATOR = ('not', 'and', 'or', 'when', 'in') + KEYWORD = ("fn", "do", "end", "after", "else", "rescue", "catch") + KEYWORD_OPERATOR = ("not", "and", "or", "when", "in") BUILTIN = ( - 'case', 'cond', 'for', 'if', 'unless', 'try', 'receive', 'raise', - 'quote', 'unquote', 'unquote_splicing', 'throw', 'super', + "case", + "cond", + "for", + "if", + "unless", + "try", + "receive", + "raise", + "quote", + "unquote", + "unquote_splicing", + "throw", + "super", ) BUILTIN_DECLARATION = ( - 'def', 'defp', 'defmodule', 'defprotocol', 'defmacro', 'defmacrop', - 'defdelegate', 'defexception', 'defstruct', 'defimpl', 'defcallback', + "def", + "defp", + "defmodule", + "defprotocol", + "defmacro", + "defmacrop", + "defdelegate", + "defexception", + "defstruct", + "defimpl", + "defcallback", ) - BUILTIN_NAMESPACE = ('import', 'require', 'use', 'alias') - CONSTANT = ('nil', 'true', 'false') + BUILTIN_NAMESPACE = ("import", "require", "use", "alias") + CONSTANT = ("nil", "true", "false") - PSEUDO_VAR = ('_', '__MODULE__', '__DIR__', '__ENV__', '__CALLER__') + PSEUDO_VAR = ("_", "__MODULE__", "__DIR__", "__ENV__", "__CALLER__") OPERATORS3 = ( - '<<<', '>>>', '|||', '&&&', '^^^', '~~~', '===', '!==', - '~>>', '<~>', '|~>', '<|>', + "<<<", + ">>>", + "|||", + "&&&", + "^^^", + "~~~", + "===", + "!==", + "~>>", + "<~>", + "|~>", + "<|>", ) OPERATORS2 = ( - '==', '!=', '<=', '>=', '&&', '||', '<>', '++', '--', '|>', '=~', - '->', '<-', '|', '.', '=', '~>', '<~', + "==", + "!=", + "<=", + ">=", + "&&", + "||", + "<>", + "++", + "--", + "|>", + "=~", + "->", + "<-", + "|", + ".", + "=", + "~>", + "<~", ) - OPERATORS1 = ('<', '>', '+', '-', '*', '/', '!', '^', '&') + OPERATORS1 = ("<", ">", "+", "-", "*", "/", "!", "^", "&") PUNCTUATION = ( - '\\\\', '<<', '>>', '=>', '(', ')', ':', ';', ',', '[', ']', + "\\\\", + "<<", + ">>", + "=>", + "(", + ")", + ":", + ";", + ",", + "[", + "]", ) def get_tokens_unprocessed(self, text): @@ -283,186 +493,176 @@ class ElixirLexer(RegexLexer): def gen_elixir_sigil_rules(): # all valid sigil terminators (excluding heredocs) terminators = [ - (r'\{', r'\}', '}', 'cb'), - (r'\[', r'\]', r'\]', 'sb'), - (r'\(', r'\)', ')', 'pa'), - ('<', '>', '>', 'ab'), - ('/', '/', '/', 'slas'), - (r'\|', r'\|', '|', 'pipe'), - ('"', '"', '"', 'quot'), - ("'", "'", "'", 'apos'), + (r"\{", r"\}", "}", "cb"), + (r"\[", r"\]", r"\]", "sb"), + (r"\(", r"\)", ")", "pa"), + ("<", ">", ">", "ab"), + ("/", "/", "/", "slas"), + (r"\|", r"\|", "|", "pipe"), + ('"', '"', '"', "quot"), + ("'", "'", "'", "apos"), ] # heredocs have slightly different rules - triquotes = [(r'"""', 'triquot'), (r"'''", 'triapos')] + triquotes = [(r'"""', "triquot"), (r"'''", "triapos")] token = String.Other - states = {'sigils': []} + states = {"sigils": []} for term, name in triquotes: - states['sigils'] += [ - (rf'(~[a-z])({term})', bygroups(token, String.Heredoc), - (name + '-end', name + '-intp')), - (rf'(~[A-Z])({term})', bygroups(token, String.Heredoc), - (name + '-end', name + '-no-intp')), + states["sigils"] += [ + ( + rf"(~[a-z])({term})", + bygroups(token, String.Heredoc), + (name + "-end", name + "-intp"), + ), + ( + rf"(~[A-Z])({term})", + bygroups(token, String.Heredoc), + (name + "-end", name + "-no-intp"), + ), ] - states[name + '-end'] = [ - (r'[a-zA-Z]+', token, '#pop'), - default('#pop'), + states[name + "-end"] = [ + (r"[a-zA-Z]+", token, "#pop"), + default("#pop"), ] - states[name + '-intp'] = [ - (r'^(\s*)(' + term + ')', bygroups(Whitespace, String.Heredoc), '#pop'), - include('heredoc_interpol'), + states[name + "-intp"] = [ + (r"^(\s*)(" + term + ")", bygroups(Whitespace, String.Heredoc), "#pop"), + include("heredoc_interpol"), ] - states[name + '-no-intp'] = [ - (r'^(\s*)(' + term +')', bygroups(Whitespace, String.Heredoc), '#pop'), - include('heredoc_no_interpol'), + states[name + "-no-intp"] = [ + (r"^(\s*)(" + term + ")", bygroups(Whitespace, String.Heredoc), "#pop"), + include("heredoc_no_interpol"), ] for lterm, rterm, rterm_class, name in terminators: - states['sigils'] += [ - (r'~[a-z]' + lterm, token, name + '-intp'), - (r'~[A-Z]' + lterm, token, name + '-no-intp'), + states["sigils"] += [ + (r"~[a-z]" + lterm, token, name + "-intp"), + (r"~[A-Z]" + lterm, token, name + "-no-intp"), ] - states[name + '-intp'] = \ - gen_elixir_sigstr_rules(rterm, rterm_class, token) - states[name + '-no-intp'] = \ - gen_elixir_sigstr_rules(rterm, rterm_class, token, interpol=False) + states[name + "-intp"] = gen_elixir_sigstr_rules(rterm, rterm_class, token) + states[name + "-no-intp"] = gen_elixir_sigstr_rules( + rterm, rterm_class, token, interpol=False + ) return states op3_re = "|".join(re.escape(s) for s in OPERATORS3) op2_re = "|".join(re.escape(s) for s in OPERATORS2) op1_re = "|".join(re.escape(s) for s in OPERATORS1) - ops_re = rf'(?:{op3_re}|{op2_re}|{op1_re})' + ops_re = rf"(?:{op3_re}|{op2_re}|{op1_re})" punctuation_re = "|".join(re.escape(s) for s in PUNCTUATION) - alnum = r'\w' - name_re = rf'(?:\.\.\.|[a-z_]{alnum}*[!?]?)' - modname_re = rf'[A-Z]{alnum}*(?:\.[A-Z]{alnum}*)*' - complex_name_re = rf'(?:{name_re}|{modname_re}|{ops_re})' - special_atom_re = r'(?:\.\.\.|<<>>|%\{\}|%|\{\})' + alnum = r"\w" + name_re = rf"(?:\.\.\.|[a-z_]{alnum}*[!?]?)" + modname_re = rf"[A-Z]{alnum}*(?:\.[A-Z]{alnum}*)*" + complex_name_re = rf"(?:{name_re}|{modname_re}|{ops_re})" + special_atom_re = r"(?:\.\.\.|<<>>|%\{\}|%|\{\})" - long_hex_char_re = r'(\\x\{)([\da-fA-F]+)(\})' - hex_char_re = r'(\\x[\da-fA-F]{1,2})' - escape_char_re = r'(\\[abdefnrstv])' + long_hex_char_re = r"(\\x\{)([\da-fA-F]+)(\})" + hex_char_re = r"(\\x[\da-fA-F]{1,2})" + escape_char_re = r"(\\[abdefnrstv])" tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'#.*$', Comment.Single), - + "root": [ + (r"\s+", Whitespace), + (r"#.*$", Comment.Single), # Various kinds of characters - (r'(\?)' + long_hex_char_re, - bygroups(String.Char, - String.Escape, Number.Hex, String.Escape)), - (r'(\?)' + hex_char_re, - bygroups(String.Char, String.Escape)), - (r'(\?)' + escape_char_re, - bygroups(String.Char, String.Escape)), - (r'\?\\?.', String.Char), - + ( + r"(\?)" + long_hex_char_re, + bygroups(String.Char, String.Escape, Number.Hex, String.Escape), + ), + (r"(\?)" + hex_char_re, bygroups(String.Char, String.Escape)), + (r"(\?)" + escape_char_re, bygroups(String.Char, String.Escape)), + (r"\?\\?.", String.Char), # '::' has to go before atoms - (r':::', String.Symbol), - (r'::', Operator), - + (r":::", String.Symbol), + (r"::", Operator), # atoms - (r':' + special_atom_re, String.Symbol), - (r':' + complex_name_re, String.Symbol), - (r':"', String.Symbol, 'string_double_atom'), - (r":'", String.Symbol, 'string_single_atom'), - + (r":" + special_atom_re, String.Symbol), + (r":" + complex_name_re, String.Symbol), + (r':"', String.Symbol, "string_double_atom"), + (r":'", String.Symbol, "string_single_atom"), # [keywords: ...] - (rf'({special_atom_re}|{complex_name_re})(:)(?=\s|\n)', - bygroups(String.Symbol, Punctuation)), - + ( + rf"({special_atom_re}|{complex_name_re})(:)(?=\s|\n)", + bygroups(String.Symbol, Punctuation), + ), # @attributes - (r'@' + name_re, Name.Attribute), - + (r"@" + name_re, Name.Attribute), # identifiers (name_re, Name), - (rf'(%?)({modname_re})', bygroups(Punctuation, Name.Class)), - + (rf"(%?)({modname_re})", bygroups(Punctuation, Name.Class)), # operators and punctuation (op3_re, Operator), (op2_re, Operator), (punctuation_re, Punctuation), - (r'&\d', Name.Entity), # anon func arguments + (r"&\d", Name.Entity), # anon func arguments (op1_re, Operator), - # numbers - (r'0b[01]+', Number.Bin), - (r'0o[0-7]+', Number.Oct), - (r'0x[\da-fA-F]+', Number.Hex), - (r'\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?', Number.Float), - (r'\d(_?\d)*', Number.Integer), - + (r"0b[01]+", Number.Bin), + (r"0o[0-7]+", Number.Oct), + (r"0x[\da-fA-F]+", Number.Hex), + (r"\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?", Number.Float), + (r"\d(_?\d)*", Number.Integer), # strings and heredocs - (r'(""")(\s*)', bygroups(String.Heredoc, Whitespace), - 'heredoc_double'), - (r"(''')(\s*)$", bygroups(String.Heredoc, Whitespace), - 'heredoc_single'), - (r'"', String.Double, 'string_double'), - (r"'", String.Single, 'string_single'), - - include('sigils'), - - (r'%\{', Punctuation, 'map_key'), - (r'\{', Punctuation, 'tuple'), + (r'(""")(\s*)', bygroups(String.Heredoc, Whitespace), "heredoc_double"), + (r"(''')(\s*)$", bygroups(String.Heredoc, Whitespace), "heredoc_single"), + (r'"', String.Double, "string_double"), + (r"'", String.Single, "string_single"), + include("sigils"), + (r"%\{", Punctuation, "map_key"), + (r"\{", Punctuation, "tuple"), ], - 'heredoc_double': [ - (r'^(\s*)(""")', bygroups(Whitespace, String.Heredoc), '#pop'), - include('heredoc_interpol'), + "heredoc_double": [ + (r'^(\s*)(""")', bygroups(Whitespace, String.Heredoc), "#pop"), + include("heredoc_interpol"), ], - 'heredoc_single': [ - (r"^\s*'''", String.Heredoc, '#pop'), - include('heredoc_interpol'), + "heredoc_single": [ + (r"^\s*'''", String.Heredoc, "#pop"), + include("heredoc_interpol"), ], - 'heredoc_interpol': [ - (r'[^#\\\n]+', String.Heredoc), - include('escapes'), - (r'\\.', String.Heredoc), - (r'\n+', String.Heredoc), - include('interpol'), + "heredoc_interpol": [ + (r"[^#\\\n]+", String.Heredoc), + include("escapes"), + (r"\\.", String.Heredoc), + (r"\n+", String.Heredoc), + include("interpol"), ], - 'heredoc_no_interpol': [ - (r'[^\\\n]+', String.Heredoc), - (r'\\.', String.Heredoc), - (r'\n+', Whitespace), + "heredoc_no_interpol": [ + (r"[^\\\n]+", String.Heredoc), + (r"\\.", String.Heredoc), + (r"\n+", Whitespace), ], - 'escapes': [ - (long_hex_char_re, - bygroups(String.Escape, Number.Hex, String.Escape)), + "escapes": [ + (long_hex_char_re, bygroups(String.Escape, Number.Hex, String.Escape)), (hex_char_re, String.Escape), (escape_char_re, String.Escape), ], - 'interpol': [ - (r'#\{', String.Interpol, 'interpol_string'), + "interpol": [ + (r"#\{", String.Interpol, "interpol_string"), ], - 'interpol_string': [ - (r'\}', String.Interpol, "#pop"), - include('root') + "interpol_string": [(r"\}", String.Interpol, "#pop"), include("root")], + "map_key": [ + include("root"), + (r":", Punctuation, "map_val"), + (r"=>", Punctuation, "map_val"), + (r"\}", Punctuation, "#pop"), ], - 'map_key': [ - include('root'), - (r':', Punctuation, 'map_val'), - (r'=>', Punctuation, 'map_val'), - (r'\}', Punctuation, '#pop'), + "map_val": [ + include("root"), + (r",", Punctuation, "#pop"), + (r"(?=\})", Punctuation, "#pop"), ], - 'map_val': [ - include('root'), - (r',', Punctuation, '#pop'), - (r'(?=\})', Punctuation, '#pop'), - ], - 'tuple': [ - include('root'), - (r'\}', Punctuation, '#pop'), + "tuple": [ + include("root"), + (r"\}", Punctuation, "#pop"), ], } - tokens.update(gen_elixir_string_rules('double', '"', String.Double)) - tokens.update(gen_elixir_string_rules('single', "'", String.Single)) - tokens.update(gen_elixir_string_rules('double_atom', '"', String.Symbol)) - tokens.update(gen_elixir_string_rules('single_atom', "'", String.Symbol)) + tokens.update(gen_elixir_string_rules("double", '"', String.Double)) + tokens.update(gen_elixir_string_rules("single", "'", String.Single)) + tokens.update(gen_elixir_string_rules("double_atom", '"', String.Symbol)) + tokens.update(gen_elixir_string_rules("single_atom", "'", String.Symbol)) tokens.update(gen_elixir_sigil_rules()) @@ -484,43 +684,43 @@ class ElixirConsoleLexer(Lexer): 3 """ - name = 'Elixir iex session' - aliases = ['iex'] - mimetypes = ['text/x-elixir-shellsession'] - url = 'https://elixir-lang.org' - version_added = '1.5' + name = "Elixir iex session" + aliases = ["iex"] + mimetypes = ["text/x-elixir-shellsession"] + url = "https://elixir-lang.org" + version_added = "1.5" - _prompt_re = re.compile(r'(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> ') + _prompt_re = re.compile(r"(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> ") def get_tokens_unprocessed(self, text): exlexer = ElixirLexer(**self.options) - curcode = '' + curcode = "" in_error = False insertions = [] for match in line_re.finditer(text): line = match.group() - if line.startswith('** '): + if line.startswith("** "): in_error = True - insertions.append((len(curcode), - [(0, Generic.Error, line[:-1])])) + insertions.append((len(curcode), [(0, Generic.Error, line[:-1])])) curcode += line[-1:] else: m = self._prompt_re.match(line) if m is not None: in_error = False end = m.end() - insertions.append((len(curcode), - [(0, Generic.Prompt, line[:end])])) + insertions.append((len(curcode), [(0, Generic.Prompt, line[:end])])) curcode += line[end:] else: if curcode: yield from do_insertions( - insertions, exlexer.get_tokens_unprocessed(curcode)) - curcode = '' + insertions, exlexer.get_tokens_unprocessed(curcode) + ) + curcode = "" insertions = [] token = Generic.Error if in_error else Generic.Output yield match.start(), token, line if curcode: yield from do_insertions( - insertions, exlexer.get_tokens_unprocessed(curcode)) + insertions, exlexer.get_tokens_unprocessed(curcode) + ) diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/esoteric.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/esoteric.py index fe3825c..a6be696 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/esoteric.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/esoteric.py @@ -1,19 +1,34 @@ """ - pygments.lexers.esoteric - ~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.esoteric +~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for esoteric languages. +Lexers for esoteric languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, words, bygroups -from pygments.token import Comment, Operator, Keyword, Name, String, Number, \ - Punctuation, Error, Whitespace +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Error, + Whitespace, +) -__all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'CAmkESLexer', - 'CapDLLexer', 'AheuiLexer'] +__all__ = [ + "BrainfuckLexer", + "BefungeLexer", + "RedcodeLexer", + "CAmkESLexer", + "CapDLLexer", + "AheuiLexer", +] class BrainfuckLexer(RegexLexer): @@ -21,31 +36,31 @@ class BrainfuckLexer(RegexLexer): Lexer for the esoteric BrainFuck language. """ - name = 'Brainfuck' - url = 'http://www.muppetlabs.com/~breadbox/bf/' - aliases = ['brainfuck', 'bf'] - filenames = ['*.bf', '*.b'] - mimetypes = ['application/x-brainfuck'] - version_added = '' + name = "Brainfuck" + url = "http://www.muppetlabs.com/~breadbox/bf/" + aliases = ["brainfuck", "bf"] + filenames = ["*.bf", "*.b"] + mimetypes = ["application/x-brainfuck"] + version_added = "" tokens = { - 'common': [ + "common": [ # use different colors for different instruction types - (r'[.,]+', Name.Tag), - (r'[+-]+', Name.Builtin), - (r'[<>]+', Name.Variable), - (r'[^.,+\-<>\[\]]+', Comment), + (r"[.,]+", Name.Tag), + (r"[+-]+", Name.Builtin), + (r"[<>]+", Name.Variable), + (r"[^.,+\-<>\[\]]+", Comment), ], - 'root': [ - (r'\[', Keyword, 'loop'), - (r'\]', Error), - include('common'), + "root": [ + (r"\[", Keyword, "loop"), + (r"\]", Error), + include("common"), + ], + "loop": [ + (r"\[", Keyword, "#push"), + (r"\]", Keyword, "#pop"), + include("common"), ], - 'loop': [ - (r'\[', Keyword, '#push'), - (r'\]', Keyword, '#pop'), - include('common'), - ] } def analyse_text(text): @@ -57,9 +72,9 @@ class BrainfuckLexer(RegexLexer): range_to_check = max(256, len(text)) for c in text[:range_to_check]: - if c == '+' or c == '-': + if c == "+" or c == "-": plus_minus_count += 1 - if c == '<' or c == '>': + if c == "<" or c == ">": greater_less_count += 1 if plus_minus_count > (0.25 * range_to_check): @@ -68,7 +83,7 @@ class BrainfuckLexer(RegexLexer): return 1.0 result = 0 - if '[-]' in text: + if "[-]" in text: result += 0.5 return result @@ -78,27 +93,28 @@ class BefungeLexer(RegexLexer): """ Lexer for the esoteric Befunge language. """ - name = 'Befunge' - url = 'http://en.wikipedia.org/wiki/Befunge' - aliases = ['befunge'] - filenames = ['*.befunge'] - mimetypes = ['application/x-befunge'] - version_added = '0.7' + + name = "Befunge" + url = "http://en.wikipedia.org/wiki/Befunge" + aliases = ["befunge"] + filenames = ["*.befunge"] + mimetypes = ["application/x-befunge"] + version_added = "0.7" tokens = { - 'root': [ - (r'[0-9a-f]', Number), - (r'[+*/%!`-]', Operator), # Traditional math - (r'[<>^v?\[\]rxjk]', Name.Variable), # Move, imperatives - (r'[:\\$.,n]', Name.Builtin), # Stack ops, imperatives - (r'[|_mw]', Keyword), - (r'[{}]', Name.Tag), # Befunge-98 stack ops - (r'".*?"', String.Double), # Strings don't appear to allow escapes - (r'\'.', String.Single), # Single character - (r'[#;]', Comment), # Trampoline... depends on direction hit - (r'[pg&~=@iotsy]', Keyword), # Misc - (r'[()A-Z]', Comment), # Fingerprints - (r'\s+', Whitespace), # Whitespace doesn't matter + "root": [ + (r"[0-9a-f]", Number), + (r"[+*/%!`-]", Operator), # Traditional math + (r"[<>^v?\[\]rxjk]", Name.Variable), # Move, imperatives + (r"[:\\$.,n]", Name.Builtin), # Stack ops, imperatives + (r"[|_mw]", Keyword), + (r"[{}]", Name.Tag), # Befunge-98 stack ops + (r'".*?"', String.Double), # Strings don't appear to allow escapes + (r"\'.", String.Single), # Single character + (r"[#;]", Comment), # Trampoline... depends on direction hit + (r"[pg&~=@iotsy]", Keyword), # Misc + (r"[()A-Z]", Comment), # Fingerprints + (r"\s+", Whitespace), # Whitespace doesn't matter ], } @@ -107,65 +123,127 @@ class CAmkESLexer(RegexLexer): """ Basic lexer for the input language for the CAmkES component platform. """ - name = 'CAmkES' - url = 'https://sel4.systems/CAmkES/' - aliases = ['camkes', 'idl4'] - filenames = ['*.camkes', '*.idl4'] - version_added = '2.1' + + name = "CAmkES" + url = "https://sel4.systems/CAmkES/" + aliases = ["camkes", "idl4"] + filenames = ["*.camkes", "*.idl4"] + version_added = "2.1" tokens = { - 'root': [ + "root": [ # C pre-processor directive - (r'^(\s*)(#.*)(\n)', bygroups(Whitespace, Comment.Preproc, - Whitespace)), - + (r"^(\s*)(#.*)(\n)", bygroups(Whitespace, Comment.Preproc, Whitespace)), # Whitespace, comments - (r'\s+', Whitespace), - (r'/\*(.|\n)*?\*/', Comment), - (r'//.*$', Comment), - - (r'[\[(){},.;\]]', Punctuation), - (r'[~!%^&*+=|?:<>/-]', Operator), - - (words(('assembly', 'attribute', 'component', 'composition', - 'configuration', 'connection', 'connector', 'consumes', - 'control', 'dataport', 'Dataport', 'Dataports', 'emits', - 'event', 'Event', 'Events', 'export', 'from', 'group', - 'hardware', 'has', 'interface', 'Interface', 'maybe', - 'procedure', 'Procedure', 'Procedures', 'provides', - 'template', 'thread', 'threads', 'to', 'uses', 'with'), - suffix=r'\b'), Keyword), - - (words(('bool', 'boolean', 'Buf', 'char', 'character', 'double', - 'float', 'in', 'inout', 'int', 'int16_6', 'int32_t', - 'int64_t', 'int8_t', 'integer', 'mutex', 'out', 'real', - 'refin', 'semaphore', 'signed', 'string', 'struct', - 'uint16_t', 'uint32_t', 'uint64_t', 'uint8_t', 'uintptr_t', - 'unsigned', 'void'), - suffix=r'\b'), Keyword.Type), - + (r"\s+", Whitespace), + (r"/\*(.|\n)*?\*/", Comment), + (r"//.*$", Comment), + (r"[\[(){},.;\]]", Punctuation), + (r"[~!%^&*+=|?:<>/-]", Operator), + ( + words( + ( + "assembly", + "attribute", + "component", + "composition", + "configuration", + "connection", + "connector", + "consumes", + "control", + "dataport", + "Dataport", + "Dataports", + "emits", + "event", + "Event", + "Events", + "export", + "from", + "group", + "hardware", + "has", + "interface", + "Interface", + "maybe", + "procedure", + "Procedure", + "Procedures", + "provides", + "template", + "thread", + "threads", + "to", + "uses", + "with", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "bool", + "boolean", + "Buf", + "char", + "character", + "double", + "float", + "in", + "inout", + "int", + "int16_6", + "int32_t", + "int64_t", + "int8_t", + "integer", + "mutex", + "out", + "real", + "refin", + "semaphore", + "signed", + "string", + "struct", + "uint16_t", + "uint32_t", + "uint64_t", + "uint8_t", + "uintptr_t", + "unsigned", + "void", + ), + suffix=r"\b", + ), + Keyword.Type, + ), # Recognised attributes - (r'[a-zA-Z_]\w*_(priority|domain|buffer)', Keyword.Reserved), - (words(('dma_pool', 'from_access', 'to_access'), suffix=r'\b'), - Keyword.Reserved), - + (r"[a-zA-Z_]\w*_(priority|domain|buffer)", Keyword.Reserved), + ( + words(("dma_pool", "from_access", "to_access"), suffix=r"\b"), + Keyword.Reserved, + ), # CAmkES-level include - (r'(import)(\s+)((?:<[^>]*>|"[^"]*");)', - bygroups(Comment.Preproc, Whitespace, Comment.Preproc)), - + ( + r'(import)(\s+)((?:<[^>]*>|"[^"]*");)', + bygroups(Comment.Preproc, Whitespace, Comment.Preproc), + ), # C-level include - (r'(include)(\s+)((?:<[^>]*>|"[^"]*");)', - bygroups(Comment.Preproc, Whitespace, Comment.Preproc)), - + ( + r'(include)(\s+)((?:<[^>]*>|"[^"]*");)', + bygroups(Comment.Preproc, Whitespace, Comment.Preproc), + ), # Literals - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'-?[\d]+', Number), - (r'-?[\d]+\.[\d]+', Number.Float), + (r"0[xX][\da-fA-F]+", Number.Hex), + (r"-?[\d]+", Number), + (r"-?[\d]+\.[\d]+", Number.Float), (r'"[^"]*"', String), - (r'[Tt]rue|[Ff]alse', Name.Builtin), - + (r"[Tt]rue|[Ff]alse", Name.Builtin), # Identifiers - (r'[a-zA-Z_]\w*', Name), + (r"[a-zA-Z_]\w*", Name), ], } @@ -181,50 +259,122 @@ class CapDLLexer(RegexLexer): highlighted as types. Supporting this would need a stateful lexer that is considered unnecessarily complex for now. """ - name = 'CapDL' - url = 'https://ssrg.nicta.com.au/publications/nictaabstracts/Kuz_KLW_10.abstract.pml' - aliases = ['capdl'] - filenames = ['*.cdl'] - version_added = '2.2' + + name = "CapDL" + url = ( + "https://ssrg.nicta.com.au/publications/nictaabstracts/Kuz_KLW_10.abstract.pml" + ) + aliases = ["capdl"] + filenames = ["*.cdl"] + version_added = "2.2" tokens = { - 'root': [ + "root": [ # C pre-processor directive - (r'^(\s*)(#.*)(\n)', - bygroups(Whitespace, Comment.Preproc, Whitespace)), - + (r"^(\s*)(#.*)(\n)", bygroups(Whitespace, Comment.Preproc, Whitespace)), # Whitespace, comments - (r'\s+', Whitespace), - (r'/\*(.|\n)*?\*/', Comment), - (r'(//|--).*$', Comment), - - (r'[<>\[(){},:;=\]]', Punctuation), - (r'\.\.', Punctuation), - - (words(('arch', 'arm11', 'caps', 'child_of', 'ia32', 'irq', 'maps', - 'objects'), suffix=r'\b'), Keyword), - - (words(('aep', 'asid_pool', 'cnode', 'ep', 'frame', 'io_device', - 'io_ports', 'io_pt', 'notification', 'pd', 'pt', 'tcb', - 'ut', 'vcpu'), suffix=r'\b'), Keyword.Type), - + (r"\s+", Whitespace), + (r"/\*(.|\n)*?\*/", Comment), + (r"(//|--).*$", Comment), + (r"[<>\[(){},:;=\]]", Punctuation), + (r"\.\.", Punctuation), + ( + words( + ( + "arch", + "arm11", + "caps", + "child_of", + "ia32", + "irq", + "maps", + "objects", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "aep", + "asid_pool", + "cnode", + "ep", + "frame", + "io_device", + "io_ports", + "io_pt", + "notification", + "pd", + "pt", + "tcb", + "ut", + "vcpu", + ), + suffix=r"\b", + ), + Keyword.Type, + ), # Properties - (words(('asid', 'addr', 'badge', 'cached', 'dom', 'domainID', 'elf', - 'fault_ep', 'G', 'guard', 'guard_size', 'init', 'ip', - 'prio', 'sp', 'R', 'RG', 'RX', 'RW', 'RWG', 'RWX', 'W', - 'WG', 'WX', 'level', 'masked', 'master_reply', 'paddr', - 'ports', 'reply', 'uncached'), suffix=r'\b'), - Keyword.Reserved), - + ( + words( + ( + "asid", + "addr", + "badge", + "cached", + "dom", + "domainID", + "elf", + "fault_ep", + "G", + "guard", + "guard_size", + "init", + "ip", + "prio", + "sp", + "R", + "RG", + "RX", + "RW", + "RWG", + "RWX", + "W", + "WG", + "WX", + "level", + "masked", + "master_reply", + "paddr", + "ports", + "reply", + "uncached", + ), + suffix=r"\b", + ), + Keyword.Reserved, + ), # Literals - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'\d+(\.\d+)?(k|M)?', Number), - (words(('bits',), suffix=r'\b'), Number), - (words(('cspace', 'vspace', 'reply_slot', 'caller_slot', - 'ipc_buffer_slot'), suffix=r'\b'), Number), - + (r"0[xX][\da-fA-F]+", Number.Hex), + (r"\d+(\.\d+)?(k|M)?", Number), + (words(("bits",), suffix=r"\b"), Number), + ( + words( + ( + "cspace", + "vspace", + "reply_slot", + "caller_slot", + "ipc_buffer_slot", + ), + suffix=r"\b", + ), + Number, + ), # Identifiers - (r'[a-zA-Z_][-@\.\w]*', Name), + (r"[a-zA-Z_][-@\.\w]*", Name), ], } @@ -234,33 +384,50 @@ class RedcodeLexer(RegexLexer): A simple Redcode lexer based on ICWS'94. Contributed by Adam Blinkinsop . """ - name = 'Redcode' - aliases = ['redcode'] - filenames = ['*.cw'] - url = 'https://en.wikipedia.org/wiki/Core_War' - version_added = '0.8' - opcodes = ('DAT', 'MOV', 'ADD', 'SUB', 'MUL', 'DIV', 'MOD', - 'JMP', 'JMZ', 'JMN', 'DJN', 'CMP', 'SLT', 'SPL', - 'ORG', 'EQU', 'END') - modifiers = ('A', 'B', 'AB', 'BA', 'F', 'X', 'I') + name = "Redcode" + aliases = ["redcode"] + filenames = ["*.cw"] + url = "https://en.wikipedia.org/wiki/Core_War" + version_added = "0.8" + + opcodes = ( + "DAT", + "MOV", + "ADD", + "SUB", + "MUL", + "DIV", + "MOD", + "JMP", + "JMZ", + "JMN", + "DJN", + "CMP", + "SLT", + "SPL", + "ORG", + "EQU", + "END", + ) + modifiers = ("A", "B", "AB", "BA", "F", "X", "I") tokens = { - 'root': [ + "root": [ # Whitespace: - (r'\s+', Whitespace), - (r';.*$', Comment.Single), + (r"\s+", Whitespace), + (r";.*$", Comment.Single), # Lexemes: # Identifiers - (r'\b({})\b'.format('|'.join(opcodes)), Name.Function), - (r'\b({})\b'.format('|'.join(modifiers)), Name.Decorator), - (r'[A-Za-z_]\w+', Name), + (r"\b({})\b".format("|".join(opcodes)), Name.Function), + (r"\b({})\b".format("|".join(modifiers)), Name.Decorator), + (r"[A-Za-z_]\w+", Name), # Operators - (r'[-+*/%]', Operator), - (r'[#$@<>]', Operator), # mode - (r'[.,]', Punctuation), # mode + (r"[-+*/%]", Operator), + (r"[#$@<>]", Operator), # mode + (r"[.,]", Punctuation), # mode # Numbers - (r'[-+]?\d+', Number.Integer), + (r"[-+]?\d+", Number.Integer), ], } @@ -270,31 +437,34 @@ class AheuiLexer(RegexLexer): Aheui is esoteric language based on Korean alphabets. """ - name = 'Aheui' - url = 'http://aheui.github.io/' - aliases = ['aheui'] - filenames = ['*.aheui'] - version_added = '' + name = "Aheui" + url = "http://aheui.github.io/" + aliases = ["aheui"] + filenames = ["*.aheui"] + version_added = "" tokens = { - 'root': [ - ('[' - '나-낳냐-냫너-넣녀-녛노-놓뇨-눟뉴-닇' - '다-닿댜-댷더-덯뎌-뎧도-돟됴-둫듀-딓' - '따-땋땨-떃떠-떻뗘-뗳또-똫뚀-뚷뜌-띟' - '라-랗랴-럏러-렇려-렿로-롷료-뤃류-릫' - '마-맣먀-먛머-멓며-몋모-뫃묘-뭏뮤-믷' - '바-밯뱌-뱧버-벟벼-볗보-봏뵤-붛뷰-빃' - '빠-빻뺘-뺳뻐-뻫뼈-뼣뽀-뽛뾰-뿧쀼-삏' - '사-샇샤-샿서-섷셔-셯소-솧쇼-숳슈-싛' - '싸-쌓쌰-썋써-쎃쎠-쎻쏘-쏳쑈-쑿쓔-씧' - '자-잫쟈-쟣저-젛져-졓조-좋죠-줗쥬-즿' - '차-챃챠-챻처-첳쳐-쳫초-촣쵸-춯츄-칗' - '카-캏캬-컇커-컿켜-켷코-콯쿄-쿻큐-킣' - '타-탛탸-턓터-텋텨-톃토-톻툐-퉇튜-틯' - '파-팧퍄-퍟퍼-펗펴-폏포-퐇표-풓퓨-픻' - '하-핳햐-햫허-헣혀-혛호-홓효-훟휴-힇' - ']', Operator), - ('.', Comment), + "root": [ + ( + "[" + "나-낳냐-냫너-넣녀-녛노-놓뇨-눟뉴-닇" + "다-닿댜-댷더-덯뎌-뎧도-돟됴-둫듀-딓" + "따-땋땨-떃떠-떻뗘-뗳또-똫뚀-뚷뜌-띟" + "라-랗랴-럏러-렇려-렿로-롷료-뤃류-릫" + "마-맣먀-먛머-멓며-몋모-뫃묘-뭏뮤-믷" + "바-밯뱌-뱧버-벟벼-볗보-봏뵤-붛뷰-빃" + "빠-빻뺘-뺳뻐-뻫뼈-뼣뽀-뽛뾰-뿧쀼-삏" + "사-샇샤-샿서-섷셔-셯소-솧쇼-숳슈-싛" + "싸-쌓쌰-썋써-쎃쎠-쎻쏘-쏳쑈-쑿쓔-씧" + "자-잫쟈-쟣저-젛져-졓조-좋죠-줗쥬-즿" + "차-챃챠-챻처-첳쳐-쳫초-촣쵸-춯츄-칗" + "카-캏캬-컇커-컿켜-켷코-콯쿄-쿻큐-킣" + "타-탛탸-턓터-텋텨-톃토-톻툐-퉇튜-틯" + "파-팧퍄-퍟퍼-펗펴-폏포-퐇표-풓퓨-픻" + "하-핳햐-햫허-헣혀-혛호-홓효-훟휴-힇" + "]", + Operator, + ), + (".", Comment), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ezhil.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ezhil.py index aeb71ab..20dc8d7 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ezhil.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ezhil.py @@ -1,66 +1,106 @@ """ - pygments.lexers.ezhil - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.ezhil +~~~~~~~~~~~~~~~~~~~~~ - Pygments lexers for Ezhil language. +Pygments lexers for Ezhil language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, words -from pygments.token import Keyword, Comment, Name, String, Number, \ - Punctuation, Operator, Whitespace +from pygments.token import ( + Keyword, + Comment, + Name, + String, + Number, + Punctuation, + Operator, + Whitespace, +) -__all__ = ['EzhilLexer'] +__all__ = ["EzhilLexer"] class EzhilLexer(RegexLexer): """ Lexer for Ezhil, a Tamil script-based programming language. """ - name = 'Ezhil' - url = 'http://ezhillang.org' - aliases = ['ezhil'] - filenames = ['*.n'] - mimetypes = ['text/x-ezhil'] - version_added = '2.1' + + name = "Ezhil" + url = "http://ezhillang.org" + aliases = ["ezhil"] + filenames = ["*.n"] + mimetypes = ["text/x-ezhil"] + version_added = "2.1" # Refer to tamil.utf8.tamil_letters from open-tamil for a stricter version of this. # This much simpler version is close enough, and includes combining marks. - _TALETTERS = '[a-zA-Z_]|[\u0b80-\u0bff]' + _TALETTERS = "[a-zA-Z_]|[\u0b80-\u0bff]" tokens = { - 'root': [ - include('keywords'), - (r'#.*$', Comment.Single), - (r'[@+/*,^\-%]|[!<>=]=?|&&?|\|\|?', Operator), - ('இல்', Operator.Word), - (words(('assert', 'max', 'min', - 'நீளம்', 'சரம்_இடமாற்று', 'சரம்_கண்டுபிடி', - 'பட்டியல்', 'பின்இணை', 'வரிசைப்படுத்து', - 'எடு', 'தலைகீழ்', 'நீட்டிக்க', 'நுழைக்க', 'வை', - 'கோப்பை_திற', 'கோப்பை_எழுது', 'கோப்பை_மூடு', - 'pi', 'sin', 'cos', 'tan', 'sqrt', 'hypot', 'pow', - 'exp', 'log', 'log10', 'exit', - ), suffix=r'\b'), Name.Builtin), - (r'(True|False)\b', Keyword.Constant), - (r'[^\S\n]+', Whitespace), - include('identifier'), - include('literal'), - (r'[(){}\[\]:;.]', Punctuation), + "root": [ + include("keywords"), + (r"#.*$", Comment.Single), + (r"[@+/*,^\-%]|[!<>=]=?|&&?|\|\|?", Operator), + ("இல்", Operator.Word), + ( + words( + ( + "assert", + "max", + "min", + "நீளம்", + "சரம்_இடமாற்று", + "சரம்_கண்டுபிடி", + "பட்டியல்", + "பின்இணை", + "வரிசைப்படுத்து", + "எடு", + "தலைகீழ்", + "நீட்டிக்க", + "நுழைக்க", + "வை", + "கோப்பை_திற", + "கோப்பை_எழுது", + "கோப்பை_மூடு", + "pi", + "sin", + "cos", + "tan", + "sqrt", + "hypot", + "pow", + "exp", + "log", + "log10", + "exit", + ), + suffix=r"\b", + ), + Name.Builtin, + ), + (r"(True|False)\b", Keyword.Constant), + (r"[^\S\n]+", Whitespace), + include("identifier"), + include("literal"), + (r"[(){}\[\]:;.]", Punctuation), ], - 'keywords': [ - ('பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்', Keyword), + "keywords": [ + ( + "பதிப்பி|தேர்ந்தெடு|தேர்வு|ஏதேனில்|ஆனால்|இல்லைஆனால்|இல்லை|ஆக|ஒவ்வொன்றாக|இல்|வரை|செய்|முடியேனில்|பின்கொடு|முடி|நிரல்பாகம்|தொடர்|நிறுத்து|நிரல்பாகம்", + Keyword, + ), ], - 'identifier': [ - ('(?:'+_TALETTERS+')(?:[0-9]|'+_TALETTERS+')*', Name), + "identifier": [ + ("(?:" + _TALETTERS + ")(?:[0-9]|" + _TALETTERS + ")*", Name), ], - 'literal': [ + "literal": [ (r'".*?"', String), - (r'\d+((\.\d*)?[eE][+-]?\d+|\.\d*)', Number.Float), - (r'\d+', Number.Integer), - ] + (r"\d+((\.\d*)?[eE][+-]?\d+|\.\d*)", Number.Float), + (r"\d+", Number.Integer), + ], } def analyse_text(text): @@ -68,9 +108,9 @@ class EzhilLexer(RegexLexer): decent amount of Tamil-characters, it's this language. This assumption is obviously horribly off if someone uses string literals in tamil in another language.""" - if len(re.findall(r'[\u0b80-\u0bff]', text)) > 10: + if len(re.findall(r"[\u0b80-\u0bff]", text)) > 10: return 0.25 def __init__(self, **options): super().__init__(**options) - self.encoding = options.get('encoding', 'utf-8') + self.encoding = options.get("encoding", "utf-8") diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/factor.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/factor.py index 2ec3f9b..1b40255 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/factor.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/factor.py @@ -1,319 +1,1007 @@ """ - pygments.lexers.factor - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.factor +~~~~~~~~~~~~~~~~~~~~~~ - Lexers for the Factor language. +Lexers for the Factor language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, default, words -from pygments.token import Text, Comment, Keyword, Name, String, Number, \ - Whitespace, Punctuation +from pygments.token import ( + Text, + Comment, + Keyword, + Name, + String, + Number, + Whitespace, + Punctuation, +) -__all__ = ['FactorLexer'] +__all__ = ["FactorLexer"] class FactorLexer(RegexLexer): """ Lexer for the Factor language. """ - name = 'Factor' - url = 'http://factorcode.org' - aliases = ['factor'] - filenames = ['*.factor'] - mimetypes = ['text/x-factor'] - version_added = '1.4' - builtin_kernel = words(( - '-rot', '2bi', '2bi@', '2bi*', '2curry', '2dip', '2drop', '2dup', '2keep', '2nip', - '2over', '2tri', '2tri@', '2tri*', '3bi', '3curry', '3dip', '3drop', '3dup', '3keep', - '3tri', '4dip', '4drop', '4dup', '4keep', '', '=', '>boolean', 'clone', - '?', '?execute', '?if', 'and', 'assert', 'assert=', 'assert?', 'bi', 'bi-curry', - 'bi-curry@', 'bi-curry*', 'bi@', 'bi*', 'boa', 'boolean', 'boolean?', 'both?', - 'build', 'call', 'callstack', 'callstack>array', 'callstack?', 'clear', '(clone)', - 'compose', 'compose?', 'curry', 'curry?', 'datastack', 'die', 'dip', 'do', 'drop', - 'dup', 'dupd', 'either?', 'eq?', 'equal?', 'execute', 'hashcode', 'hashcode*', - 'identity-hashcode', 'identity-tuple', 'identity-tuple?', 'if', 'if*', - 'keep', 'loop', 'most', 'new', 'nip', 'not', 'null', 'object', 'or', 'over', - 'pick', 'prepose', 'retainstack', 'rot', 'same?', 'swap', 'swapd', 'throw', - 'tri', 'tri-curry', 'tri-curry@', 'tri-curry*', 'tri@', 'tri*', 'tuple', - 'tuple?', 'unless', 'unless*', 'until', 'when', 'when*', 'while', 'with', - 'wrapper', 'wrapper?', 'xor'), suffix=r'(\s+)') + name = "Factor" + url = "http://factorcode.org" + aliases = ["factor"] + filenames = ["*.factor"] + mimetypes = ["text/x-factor"] + version_added = "1.4" - builtin_assocs = words(( - '2cache', '', '>alist', '?at', '?of', 'assoc', 'assoc-all?', - 'assoc-any?', 'assoc-clone-like', 'assoc-combine', 'assoc-diff', - 'assoc-diff!', 'assoc-differ', 'assoc-each', 'assoc-empty?', - 'assoc-filter', 'assoc-filter!', 'assoc-filter-as', 'assoc-find', - 'assoc-hashcode', 'assoc-intersect', 'assoc-like', 'assoc-map', - 'assoc-map-as', 'assoc-partition', 'assoc-refine', 'assoc-size', - 'assoc-stack', 'assoc-subset?', 'assoc-union', 'assoc-union!', - 'assoc=', 'assoc>map', 'assoc?', 'at', 'at+', 'at*', 'cache', 'change-at', - 'clear-assoc', 'delete-at', 'delete-at*', 'enum', 'enum?', 'extract-keys', - 'inc-at', 'key?', 'keys', 'map>assoc', 'maybe-set-at', 'new-assoc', 'of', - 'push-at', 'rename-at', 'set-at', 'sift-keys', 'sift-values', 'substitute', - 'unzip', 'value-at', 'value-at*', 'value?', 'values', 'zip'), suffix=r'(\s+)') + builtin_kernel = words( + ( + "-rot", + "2bi", + "2bi@", + "2bi*", + "2curry", + "2dip", + "2drop", + "2dup", + "2keep", + "2nip", + "2over", + "2tri", + "2tri@", + "2tri*", + "3bi", + "3curry", + "3dip", + "3drop", + "3dup", + "3keep", + "3tri", + "4dip", + "4drop", + "4dup", + "4keep", + "", + "=", + ">boolean", + "clone", + "?", + "?execute", + "?if", + "and", + "assert", + "assert=", + "assert?", + "bi", + "bi-curry", + "bi-curry@", + "bi-curry*", + "bi@", + "bi*", + "boa", + "boolean", + "boolean?", + "both?", + "build", + "call", + "callstack", + "callstack>array", + "callstack?", + "clear", + "(clone)", + "compose", + "compose?", + "curry", + "curry?", + "datastack", + "die", + "dip", + "do", + "drop", + "dup", + "dupd", + "either?", + "eq?", + "equal?", + "execute", + "hashcode", + "hashcode*", + "identity-hashcode", + "identity-tuple", + "identity-tuple?", + "if", + "if*", + "keep", + "loop", + "most", + "new", + "nip", + "not", + "null", + "object", + "or", + "over", + "pick", + "prepose", + "retainstack", + "rot", + "same?", + "swap", + "swapd", + "throw", + "tri", + "tri-curry", + "tri-curry@", + "tri-curry*", + "tri@", + "tri*", + "tuple", + "tuple?", + "unless", + "unless*", + "until", + "when", + "when*", + "while", + "with", + "wrapper", + "wrapper?", + "xor", + ), + suffix=r"(\s+)", + ) - builtin_combinators = words(( - '2cleave', '2cleave>quot', '3cleave', '3cleave>quot', '4cleave', - '4cleave>quot', 'alist>quot', 'call-effect', 'case', 'case-find', - 'case>quot', 'cleave', 'cleave>quot', 'cond', 'cond>quot', 'deep-spread>quot', - 'execute-effect', 'linear-case-quot', 'no-case', 'no-case?', 'no-cond', - 'no-cond?', 'recursive-hashcode', 'shallow-spread>quot', 'spread', - 'to-fixed-point', 'wrong-values', 'wrong-values?'), suffix=r'(\s+)') + builtin_assocs = words( + ( + "2cache", + "", + ">alist", + "?at", + "?of", + "assoc", + "assoc-all?", + "assoc-any?", + "assoc-clone-like", + "assoc-combine", + "assoc-diff", + "assoc-diff!", + "assoc-differ", + "assoc-each", + "assoc-empty?", + "assoc-filter", + "assoc-filter!", + "assoc-filter-as", + "assoc-find", + "assoc-hashcode", + "assoc-intersect", + "assoc-like", + "assoc-map", + "assoc-map-as", + "assoc-partition", + "assoc-refine", + "assoc-size", + "assoc-stack", + "assoc-subset?", + "assoc-union", + "assoc-union!", + "assoc=", + "assoc>map", + "assoc?", + "at", + "at+", + "at*", + "cache", + "change-at", + "clear-assoc", + "delete-at", + "delete-at*", + "enum", + "enum?", + "extract-keys", + "inc-at", + "key?", + "keys", + "map>assoc", + "maybe-set-at", + "new-assoc", + "of", + "push-at", + "rename-at", + "set-at", + "sift-keys", + "sift-values", + "substitute", + "unzip", + "value-at", + "value-at*", + "value?", + "values", + "zip", + ), + suffix=r"(\s+)", + ) - builtin_math = words(( - '-', '/', '/f', '/i', '/mod', '2/', '2^', '<', '<=', '', '>', - '>=', '>bignum', '>fixnum', '>float', '>integer', '(all-integers?)', - '(each-integer)', '(find-integer)', '*', '+', '?1+', - 'abs', 'align', 'all-integers?', 'bignum', 'bignum?', 'bit?', 'bitand', - 'bitnot', 'bitor', 'bits>double', 'bits>float', 'bitxor', 'complex', - 'complex?', 'denominator', 'double>bits', 'each-integer', 'even?', - 'find-integer', 'find-last-integer', 'fixnum', 'fixnum?', 'float', - 'float>bits', 'float?', 'fp-bitwise=', 'fp-infinity?', 'fp-nan-payload', - 'fp-nan?', 'fp-qnan?', 'fp-sign', 'fp-snan?', 'fp-special?', - 'if-zero', 'imaginary-part', 'integer', 'integer>fixnum', - 'integer>fixnum-strict', 'integer?', 'log2', 'log2-expects-positive', - 'log2-expects-positive?', 'mod', 'neg', 'neg?', 'next-float', - 'next-power-of-2', 'number', 'number=', 'number?', 'numerator', 'odd?', - 'out-of-fixnum-range', 'out-of-fixnum-range?', 'power-of-2?', - 'prev-float', 'ratio', 'ratio?', 'rational', 'rational?', 'real', - 'real-part', 'real?', 'recip', 'rem', 'sgn', 'shift', 'sq', 'times', - 'u<', 'u<=', 'u>', 'u>=', 'unless-zero', 'unordered?', 'when-zero', - 'zero?'), suffix=r'(\s+)') + builtin_combinators = words( + ( + "2cleave", + "2cleave>quot", + "3cleave", + "3cleave>quot", + "4cleave", + "4cleave>quot", + "alist>quot", + "call-effect", + "case", + "case-find", + "case>quot", + "cleave", + "cleave>quot", + "cond", + "cond>quot", + "deep-spread>quot", + "execute-effect", + "linear-case-quot", + "no-case", + "no-case?", + "no-cond", + "no-cond?", + "recursive-hashcode", + "shallow-spread>quot", + "spread", + "to-fixed-point", + "wrong-values", + "wrong-values?", + ), + suffix=r"(\s+)", + ) - builtin_sequences = words(( - '1sequence', '2all?', '2each', '2map', '2map-as', '2map-reduce', '2reduce', - '2selector', '2sequence', '3append', '3append-as', '3each', '3map', '3map-as', - '3sequence', '4sequence', '', '', '', '?first', - '?last', '?nth', '?second', '?set-nth', 'accumulate', 'accumulate!', - 'accumulate-as', 'all?', 'any?', 'append', 'append!', 'append-as', - 'assert-sequence', 'assert-sequence=', 'assert-sequence?', - 'binary-reduce', 'bounds-check', 'bounds-check?', 'bounds-error', - 'bounds-error?', 'but-last', 'but-last-slice', 'cartesian-each', - 'cartesian-map', 'cartesian-product', 'change-nth', 'check-slice', - 'check-slice-error', 'clone-like', 'collapse-slice', 'collector', - 'collector-for', 'concat', 'concat-as', 'copy', 'count', 'cut', 'cut-slice', - 'cut*', 'delete-all', 'delete-slice', 'drop-prefix', 'each', 'each-from', - 'each-index', 'empty?', 'exchange', 'filter', 'filter!', 'filter-as', 'find', - 'find-from', 'find-index', 'find-index-from', 'find-last', 'find-last-from', - 'first', 'first2', 'first3', 'first4', 'flip', 'follow', 'fourth', 'glue', 'halves', - 'harvest', 'head', 'head-slice', 'head-slice*', 'head*', 'head?', - 'if-empty', 'immutable', 'immutable-sequence', 'immutable-sequence?', - 'immutable?', 'index', 'index-from', 'indices', 'infimum', 'infimum-by', - 'insert-nth', 'interleave', 'iota', 'iota-tuple', 'iota-tuple?', 'join', - 'join-as', 'last', 'last-index', 'last-index-from', 'length', 'lengthen', - 'like', 'longer', 'longer?', 'longest', 'map', 'map!', 'map-as', 'map-find', - 'map-find-last', 'map-index', 'map-integers', 'map-reduce', 'map-sum', - 'max-length', 'member-eq?', 'member?', 'midpoint@', 'min-length', - 'mismatch', 'move', 'new-like', 'new-resizable', 'new-sequence', - 'non-negative-integer-expected', 'non-negative-integer-expected?', - 'nth', 'nths', 'pad-head', 'pad-tail', 'padding', 'partition', 'pop', 'pop*', - 'prefix', 'prepend', 'prepend-as', 'produce', 'produce-as', 'product', 'push', - 'push-all', 'push-either', 'push-if', 'reduce', 'reduce-index', 'remove', - 'remove!', 'remove-eq', 'remove-eq!', 'remove-nth', 'remove-nth!', 'repetition', - 'repetition?', 'replace-slice', 'replicate', 'replicate-as', 'rest', - 'rest-slice', 'reverse', 'reverse!', 'reversed', 'reversed?', 'second', - 'selector', 'selector-for', 'sequence', 'sequence-hashcode', 'sequence=', - 'sequence?', 'set-first', 'set-fourth', 'set-last', 'set-length', 'set-nth', - 'set-second', 'set-third', 'short', 'shorten', 'shorter', 'shorter?', - 'shortest', 'sift', 'slice', 'slice-error', 'slice-error?', 'slice?', - 'snip', 'snip-slice', 'start', 'start*', 'subseq', 'subseq?', 'suffix', - 'suffix!', 'sum', 'sum-lengths', 'supremum', 'supremum-by', 'surround', 'tail', - 'tail-slice', 'tail-slice*', 'tail*', 'tail?', 'third', 'trim', - 'trim-head', 'trim-head-slice', 'trim-slice', 'trim-tail', 'trim-tail-slice', - 'unclip', 'unclip-last', 'unclip-last-slice', 'unclip-slice', 'unless-empty', - 'virtual-exemplar', 'virtual-sequence', 'virtual-sequence?', 'virtual@', - 'when-empty'), suffix=r'(\s+)') + builtin_math = words( + ( + "-", + "/", + "/f", + "/i", + "/mod", + "2/", + "2^", + "<", + "<=", + "", + ">", + ">=", + ">bignum", + ">fixnum", + ">float", + ">integer", + "(all-integers?)", + "(each-integer)", + "(find-integer)", + "*", + "+", + "?1+", + "abs", + "align", + "all-integers?", + "bignum", + "bignum?", + "bit?", + "bitand", + "bitnot", + "bitor", + "bits>double", + "bits>float", + "bitxor", + "complex", + "complex?", + "denominator", + "double>bits", + "each-integer", + "even?", + "find-integer", + "find-last-integer", + "fixnum", + "fixnum?", + "float", + "float>bits", + "float?", + "fp-bitwise=", + "fp-infinity?", + "fp-nan-payload", + "fp-nan?", + "fp-qnan?", + "fp-sign", + "fp-snan?", + "fp-special?", + "if-zero", + "imaginary-part", + "integer", + "integer>fixnum", + "integer>fixnum-strict", + "integer?", + "log2", + "log2-expects-positive", + "log2-expects-positive?", + "mod", + "neg", + "neg?", + "next-float", + "next-power-of-2", + "number", + "number=", + "number?", + "numerator", + "odd?", + "out-of-fixnum-range", + "out-of-fixnum-range?", + "power-of-2?", + "prev-float", + "ratio", + "ratio?", + "rational", + "rational?", + "real", + "real-part", + "real?", + "recip", + "rem", + "sgn", + "shift", + "sq", + "times", + "u<", + "u<=", + "u>", + "u>=", + "unless-zero", + "unordered?", + "when-zero", + "zero?", + ), + suffix=r"(\s+)", + ) - builtin_namespaces = words(( - '+@', 'change', 'change-global', 'counter', 'dec', 'get', 'get-global', - 'global', 'inc', 'init-namespaces', 'initialize', 'is-global', 'make-assoc', - 'namespace', 'namestack', 'off', 'on', 'set', 'set-global', 'set-namestack', - 'toggle', 'with-global', 'with-scope', 'with-variable', 'with-variables'), - suffix=r'(\s+)') + builtin_sequences = words( + ( + "1sequence", + "2all?", + "2each", + "2map", + "2map-as", + "2map-reduce", + "2reduce", + "2selector", + "2sequence", + "3append", + "3append-as", + "3each", + "3map", + "3map-as", + "3sequence", + "4sequence", + "", + "", + "", + "?first", + "?last", + "?nth", + "?second", + "?set-nth", + "accumulate", + "accumulate!", + "accumulate-as", + "all?", + "any?", + "append", + "append!", + "append-as", + "assert-sequence", + "assert-sequence=", + "assert-sequence?", + "binary-reduce", + "bounds-check", + "bounds-check?", + "bounds-error", + "bounds-error?", + "but-last", + "but-last-slice", + "cartesian-each", + "cartesian-map", + "cartesian-product", + "change-nth", + "check-slice", + "check-slice-error", + "clone-like", + "collapse-slice", + "collector", + "collector-for", + "concat", + "concat-as", + "copy", + "count", + "cut", + "cut-slice", + "cut*", + "delete-all", + "delete-slice", + "drop-prefix", + "each", + "each-from", + "each-index", + "empty?", + "exchange", + "filter", + "filter!", + "filter-as", + "find", + "find-from", + "find-index", + "find-index-from", + "find-last", + "find-last-from", + "first", + "first2", + "first3", + "first4", + "flip", + "follow", + "fourth", + "glue", + "halves", + "harvest", + "head", + "head-slice", + "head-slice*", + "head*", + "head?", + "if-empty", + "immutable", + "immutable-sequence", + "immutable-sequence?", + "immutable?", + "index", + "index-from", + "indices", + "infimum", + "infimum-by", + "insert-nth", + "interleave", + "iota", + "iota-tuple", + "iota-tuple?", + "join", + "join-as", + "last", + "last-index", + "last-index-from", + "length", + "lengthen", + "like", + "longer", + "longer?", + "longest", + "map", + "map!", + "map-as", + "map-find", + "map-find-last", + "map-index", + "map-integers", + "map-reduce", + "map-sum", + "max-length", + "member-eq?", + "member?", + "midpoint@", + "min-length", + "mismatch", + "move", + "new-like", + "new-resizable", + "new-sequence", + "non-negative-integer-expected", + "non-negative-integer-expected?", + "nth", + "nths", + "pad-head", + "pad-tail", + "padding", + "partition", + "pop", + "pop*", + "prefix", + "prepend", + "prepend-as", + "produce", + "produce-as", + "product", + "push", + "push-all", + "push-either", + "push-if", + "reduce", + "reduce-index", + "remove", + "remove!", + "remove-eq", + "remove-eq!", + "remove-nth", + "remove-nth!", + "repetition", + "repetition?", + "replace-slice", + "replicate", + "replicate-as", + "rest", + "rest-slice", + "reverse", + "reverse!", + "reversed", + "reversed?", + "second", + "selector", + "selector-for", + "sequence", + "sequence-hashcode", + "sequence=", + "sequence?", + "set-first", + "set-fourth", + "set-last", + "set-length", + "set-nth", + "set-second", + "set-third", + "short", + "shorten", + "shorter", + "shorter?", + "shortest", + "sift", + "slice", + "slice-error", + "slice-error?", + "slice?", + "snip", + "snip-slice", + "start", + "start*", + "subseq", + "subseq?", + "suffix", + "suffix!", + "sum", + "sum-lengths", + "supremum", + "supremum-by", + "surround", + "tail", + "tail-slice", + "tail-slice*", + "tail*", + "tail?", + "third", + "trim", + "trim-head", + "trim-head-slice", + "trim-slice", + "trim-tail", + "trim-tail-slice", + "unclip", + "unclip-last", + "unclip-last-slice", + "unclip-slice", + "unless-empty", + "virtual-exemplar", + "virtual-sequence", + "virtual-sequence?", + "virtual@", + "when-empty", + ), + suffix=r"(\s+)", + ) - builtin_arrays = words(( - '1array', '2array', '3array', '4array', '', '>array', 'array', - 'array?', 'pair', 'pair?', 'resize-array'), suffix=r'(\s+)') + builtin_namespaces = words( + ( + "+@", + "change", + "change-global", + "counter", + "dec", + "get", + "get-global", + "global", + "inc", + "init-namespaces", + "initialize", + "is-global", + "make-assoc", + "namespace", + "namestack", + "off", + "on", + "set", + "set-global", + "set-namestack", + "toggle", + "with-global", + "with-scope", + "with-variable", + "with-variables", + ), + suffix=r"(\s+)", + ) - builtin_io = words(( - '(each-stream-block-slice)', '(each-stream-block)', - '(stream-contents-by-block)', '(stream-contents-by-element)', - '(stream-contents-by-length-or-block)', - '(stream-contents-by-length)', '+byte+', '+character+', - 'bad-seek-type', 'bad-seek-type?', 'bl', 'contents', 'each-block', - 'each-block-size', 'each-block-slice', 'each-line', 'each-morsel', - 'each-stream-block', 'each-stream-block-slice', 'each-stream-line', - 'error-stream', 'flush', 'input-stream', 'input-stream?', - 'invalid-read-buffer', 'invalid-read-buffer?', 'lines', 'nl', - 'output-stream', 'output-stream?', 'print', 'read', 'read-into', - 'read-partial', 'read-partial-into', 'read-until', 'read1', 'readln', - 'seek-absolute', 'seek-absolute?', 'seek-end', 'seek-end?', - 'seek-input', 'seek-output', 'seek-relative', 'seek-relative?', - 'stream-bl', 'stream-contents', 'stream-contents*', 'stream-copy', - 'stream-copy*', 'stream-element-type', 'stream-flush', - 'stream-length', 'stream-lines', 'stream-nl', 'stream-print', - 'stream-read', 'stream-read-into', 'stream-read-partial', - 'stream-read-partial-into', 'stream-read-partial-unsafe', - 'stream-read-unsafe', 'stream-read-until', 'stream-read1', - 'stream-readln', 'stream-seek', 'stream-seekable?', 'stream-tell', - 'stream-write', 'stream-write1', 'tell-input', 'tell-output', - 'with-error-stream', 'with-error-stream*', 'with-error>output', - 'with-input-output+error-streams', - 'with-input-output+error-streams*', 'with-input-stream', - 'with-input-stream*', 'with-output-stream', 'with-output-stream*', - 'with-output>error', 'with-output+error-stream', - 'with-output+error-stream*', 'with-streams', 'with-streams*', - 'write', 'write1'), suffix=r'(\s+)') + builtin_arrays = words( + ( + "1array", + "2array", + "3array", + "4array", + "", + ">array", + "array", + "array?", + "pair", + "pair?", + "resize-array", + ), + suffix=r"(\s+)", + ) - builtin_strings = words(( - '1string', '', '>string', 'resize-string', 'string', - 'string?'), suffix=r'(\s+)') + builtin_io = words( + ( + "(each-stream-block-slice)", + "(each-stream-block)", + "(stream-contents-by-block)", + "(stream-contents-by-element)", + "(stream-contents-by-length-or-block)", + "(stream-contents-by-length)", + "+byte+", + "+character+", + "bad-seek-type", + "bad-seek-type?", + "bl", + "contents", + "each-block", + "each-block-size", + "each-block-slice", + "each-line", + "each-morsel", + "each-stream-block", + "each-stream-block-slice", + "each-stream-line", + "error-stream", + "flush", + "input-stream", + "input-stream?", + "invalid-read-buffer", + "invalid-read-buffer?", + "lines", + "nl", + "output-stream", + "output-stream?", + "print", + "read", + "read-into", + "read-partial", + "read-partial-into", + "read-until", + "read1", + "readln", + "seek-absolute", + "seek-absolute?", + "seek-end", + "seek-end?", + "seek-input", + "seek-output", + "seek-relative", + "seek-relative?", + "stream-bl", + "stream-contents", + "stream-contents*", + "stream-copy", + "stream-copy*", + "stream-element-type", + "stream-flush", + "stream-length", + "stream-lines", + "stream-nl", + "stream-print", + "stream-read", + "stream-read-into", + "stream-read-partial", + "stream-read-partial-into", + "stream-read-partial-unsafe", + "stream-read-unsafe", + "stream-read-until", + "stream-read1", + "stream-readln", + "stream-seek", + "stream-seekable?", + "stream-tell", + "stream-write", + "stream-write1", + "tell-input", + "tell-output", + "with-error-stream", + "with-error-stream*", + "with-error>output", + "with-input-output+error-streams", + "with-input-output+error-streams*", + "with-input-stream", + "with-input-stream*", + "with-output-stream", + "with-output-stream*", + "with-output>error", + "with-output+error-stream", + "with-output+error-stream*", + "with-streams", + "with-streams*", + "write", + "write1", + ), + suffix=r"(\s+)", + ) - builtin_vectors = words(( - '1vector', '', '>vector', '?push', 'vector', 'vector?'), - suffix=r'(\s+)') + builtin_strings = words( + ("1string", "", ">string", "resize-string", "string", "string?"), + suffix=r"(\s+)", + ) - builtin_continuations = words(( - '', '', '', 'attempt-all', - 'attempt-all-error', 'attempt-all-error?', 'callback-error-hook', - 'callcc0', 'callcc1', 'cleanup', 'compute-restarts', 'condition', - 'condition?', 'continuation', 'continuation?', 'continue', - 'continue-restart', 'continue-with', 'current-continuation', - 'error', 'error-continuation', 'error-in-thread', 'error-thread', - 'ifcc', 'ignore-errors', 'in-callback?', 'original-error', 'recover', - 'restart', 'restart?', 'restarts', 'rethrow', 'rethrow-restarts', - 'return', 'return-continuation', 'thread-error-hook', 'throw-continue', - 'throw-restarts', 'with-datastack', 'with-return'), suffix=r'(\s+)') + builtin_vectors = words( + ("1vector", "", ">vector", "?push", "vector", "vector?"), + suffix=r"(\s+)", + ) + + builtin_continuations = words( + ( + "", + "", + "", + "attempt-all", + "attempt-all-error", + "attempt-all-error?", + "callback-error-hook", + "callcc0", + "callcc1", + "cleanup", + "compute-restarts", + "condition", + "condition?", + "continuation", + "continuation?", + "continue", + "continue-restart", + "continue-with", + "current-continuation", + "error", + "error-continuation", + "error-in-thread", + "error-thread", + "ifcc", + "ignore-errors", + "in-callback?", + "original-error", + "recover", + "restart", + "restart?", + "restarts", + "rethrow", + "rethrow-restarts", + "return", + "return-continuation", + "thread-error-hook", + "throw-continue", + "throw-restarts", + "with-datastack", + "with-return", + ), + suffix=r"(\s+)", + ) tokens = { - 'root': [ + "root": [ # factor allows a file to start with a shebang - (r'#!.*$', Comment.Preproc), - default('base'), + (r"#!.*$", Comment.Preproc), + default("base"), ], - 'base': [ - (r'\s+', Whitespace), - + "base": [ + (r"\s+", Whitespace), # defining words - (r'((?:MACRO|MEMO|TYPED)?:[:]?)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function)), - (r'(M:[:]?)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, - Name.Function)), - (r'(C:)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function, Whitespace, - Name.Class)), - (r'(GENERIC:)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function)), - (r'(HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function, Whitespace, - Name.Function)), - (r'(\()(\s)', bygroups(Name.Function, Whitespace), 'stackeffect'), - (r'(;)(\s)', bygroups(Keyword, Whitespace)), - + ( + r"((?:MACRO|MEMO|TYPED)?:[:]?)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Function), + ), + ( + r"(M:[:]?)(\s+)(\S+)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Class, Whitespace, Name.Function), + ), + ( + r"(C:)(\s+)(\S+)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Function, Whitespace, Name.Class), + ), + (r"(GENERIC:)(\s+)(\S+)", bygroups(Keyword, Whitespace, Name.Function)), + ( + r"(HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Function, Whitespace, Name.Function), + ), + (r"(\()(\s)", bygroups(Name.Function, Whitespace), "stackeffect"), + (r"(;)(\s)", bygroups(Keyword, Whitespace)), # imports and namespaces - (r'(USING:)(\s+)', - bygroups(Keyword.Namespace, Whitespace), 'vocabs'), - (r'(USE:|UNUSE:|IN:|QUALIFIED:)(\s+)(\S+)', - bygroups(Keyword.Namespace, Whitespace, Name.Namespace)), - (r'(QUALIFIED-WITH:)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword.Namespace, Whitespace, Name.Namespace, - Whitespace, Name.Namespace)), - (r'(FROM:|EXCLUDE:)(\s+)(\S+)(\s+=>\s)', - bygroups(Keyword.Namespace, Whitespace, Name.Namespace, - Whitespace), 'words'), - (r'(RENAME:)(\s+)(\S+)(\s+)(\S+)(\s+)(=>)(\s+)(\S+)', - bygroups(Keyword.Namespace, Whitespace, Name.Function, Whitespace, - Name.Namespace, Whitespace, Punctuation, Whitespace, - Name.Function)), - (r'(ALIAS:|TYPEDEF:)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword.Namespace, Whitespace, Name.Function, Whitespace, - Name.Function)), - (r'(DEFER:|FORGET:|POSTPONE:)(\s+)(\S+)', - bygroups(Keyword.Namespace, Whitespace, Name.Function)), - + (r"(USING:)(\s+)", bygroups(Keyword.Namespace, Whitespace), "vocabs"), + ( + r"(USE:|UNUSE:|IN:|QUALIFIED:)(\s+)(\S+)", + bygroups(Keyword.Namespace, Whitespace, Name.Namespace), + ), + ( + r"(QUALIFIED-WITH:)(\s+)(\S+)(\s+)(\S+)", + bygroups( + Keyword.Namespace, + Whitespace, + Name.Namespace, + Whitespace, + Name.Namespace, + ), + ), + ( + r"(FROM:|EXCLUDE:)(\s+)(\S+)(\s+=>\s)", + bygroups(Keyword.Namespace, Whitespace, Name.Namespace, Whitespace), + "words", + ), + ( + r"(RENAME:)(\s+)(\S+)(\s+)(\S+)(\s+)(=>)(\s+)(\S+)", + bygroups( + Keyword.Namespace, + Whitespace, + Name.Function, + Whitespace, + Name.Namespace, + Whitespace, + Punctuation, + Whitespace, + Name.Function, + ), + ), + ( + r"(ALIAS:|TYPEDEF:)(\s+)(\S+)(\s+)(\S+)", + bygroups( + Keyword.Namespace, + Whitespace, + Name.Function, + Whitespace, + Name.Function, + ), + ), + ( + r"(DEFER:|FORGET:|POSTPONE:)(\s+)(\S+)", + bygroups(Keyword.Namespace, Whitespace, Name.Function), + ), # tuples and classes - (r'(TUPLE:|ERROR:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, Punctuation, - Whitespace, Name.Class), 'slots'), - (r'(TUPLE:|ERROR:|BUILTIN:)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class), 'slots'), - (r'(MIXIN:|UNION:|INTERSECTION:)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class)), - (r'(PREDICATE:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, - Punctuation, Whitespace, Name.Class)), - (r'(C:)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function, Whitespace, Name.Class)), - (r'(INSTANCE:)(\s+)(\S+)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, Name.Class)), - (r'(SLOT:)(\s+)(\S+)', bygroups(Keyword, Whitespace, Name.Function)), - (r'(SINGLETON:)(\s+)(\S+)', bygroups(Keyword, Whitespace, Name.Class)), - (r'SINGLETONS:', Keyword, 'classes'), - + ( + r"(TUPLE:|ERROR:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)", + bygroups( + Keyword, + Whitespace, + Name.Class, + Whitespace, + Punctuation, + Whitespace, + Name.Class, + ), + "slots", + ), + ( + r"(TUPLE:|ERROR:|BUILTIN:)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Class), + "slots", + ), + ( + r"(MIXIN:|UNION:|INTERSECTION:)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Class), + ), + ( + r"(PREDICATE:)(\s+)(\S+)(\s+)(<)(\s+)(\S+)", + bygroups( + Keyword, + Whitespace, + Name.Class, + Whitespace, + Punctuation, + Whitespace, + Name.Class, + ), + ), + ( + r"(C:)(\s+)(\S+)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Function, Whitespace, Name.Class), + ), + ( + r"(INSTANCE:)(\s+)(\S+)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Class, Whitespace, Name.Class), + ), + (r"(SLOT:)(\s+)(\S+)", bygroups(Keyword, Whitespace, Name.Function)), + (r"(SINGLETON:)(\s+)(\S+)", bygroups(Keyword, Whitespace, Name.Class)), + (r"SINGLETONS:", Keyword, "classes"), # other syntax - (r'(CONSTANT:|SYMBOL:|MAIN:|HELP:)(\s+)(\S+)', - bygroups(Keyword, Whitespace, Name.Function)), - (r'(SYMBOLS:)(\s+)', bygroups(Keyword, Whitespace), 'words'), - (r'(SYNTAX:)(\s+)', bygroups(Keyword, Whitespace)), - (r'(ALIEN:)(\s+)', bygroups(Keyword, Whitespace)), - (r'(STRUCT:)(\s+)(\S+)', bygroups(Keyword, Whitespace, Name.Class)), - (r'(FUNCTION:)(\s+)' - r'(\S+)(\s+)(\S+)(\s+)' - r'(\()(\s+)([^)]+)(\))(\s)', - bygroups(Keyword.Namespace, Whitespace, - Text, Whitespace, Name.Function, Whitespace, - Punctuation, Whitespace, Text, Punctuation, Whitespace)), - (r'(FUNCTION-ALIAS:)(\s+)' - r'(\S+)(\s+)(\S+)(\s+)' - r'(\S+)(\s+)' - r'(\()(\s+)([^)]+)(\))(\s)', - bygroups(Keyword.Namespace, Whitespace, - Text, Whitespace, Name.Function, Whitespace, - Name.Function, Whitespace, - Punctuation, Whitespace, Text, Punctuation, Whitespace)), - + ( + r"(CONSTANT:|SYMBOL:|MAIN:|HELP:)(\s+)(\S+)", + bygroups(Keyword, Whitespace, Name.Function), + ), + (r"(SYMBOLS:)(\s+)", bygroups(Keyword, Whitespace), "words"), + (r"(SYNTAX:)(\s+)", bygroups(Keyword, Whitespace)), + (r"(ALIEN:)(\s+)", bygroups(Keyword, Whitespace)), + (r"(STRUCT:)(\s+)(\S+)", bygroups(Keyword, Whitespace, Name.Class)), + ( + r"(FUNCTION:)(\s+)" r"(\S+)(\s+)(\S+)(\s+)" r"(\()(\s+)([^)]+)(\))(\s)", + bygroups( + Keyword.Namespace, + Whitespace, + Text, + Whitespace, + Name.Function, + Whitespace, + Punctuation, + Whitespace, + Text, + Punctuation, + Whitespace, + ), + ), + ( + r"(FUNCTION-ALIAS:)(\s+)" + r"(\S+)(\s+)(\S+)(\s+)" + r"(\S+)(\s+)" + r"(\()(\s+)([^)]+)(\))(\s)", + bygroups( + Keyword.Namespace, + Whitespace, + Text, + Whitespace, + Name.Function, + Whitespace, + Name.Function, + Whitespace, + Punctuation, + Whitespace, + Text, + Punctuation, + Whitespace, + ), + ), # vocab.private - (r'()(\s)', bygroups(Keyword.Namespace, Whitespace)), - + (r"()(\s)", bygroups(Keyword.Namespace, Whitespace)), # strings (r'"""\s(?:.|\n)*?\s"""', String), (r'"(?:\\\\|\\"|[^"])*"', String), - (r'(\S+")(\s+)((?:\\\\|\\"|[^"])*")', - bygroups(String, Whitespace, String)), - (r'(CHAR:)(\s+)(\\[\\abfnrstv]|[^\\]\S*)(\s)', - bygroups(String.Char, Whitespace, String.Char, Whitespace)), - + (r'(\S+")(\s+)((?:\\\\|\\"|[^"])*")', bygroups(String, Whitespace, String)), + ( + r"(CHAR:)(\s+)(\\[\\abfnrstv]|[^\\]\S*)(\s)", + bygroups(String.Char, Whitespace, String.Char, Whitespace), + ), # comments - (r'!\s+.*$', Comment), - (r'#!\s+.*$', Comment), - (r'/\*\s+(?:.|\n)*?\s\*/', Comment), - + (r"!\s+.*$", Comment), + (r"#!\s+.*$", Comment), + (r"/\*\s+(?:.|\n)*?\s\*/", Comment), # boolean constants - (r'[tf]\b', Name.Constant), - + (r"[tf]\b", Name.Constant), # symbols and literals - (r'[\\$]\s+\S+', Name.Constant), - (r'M\\\s+\S+\s+\S+', Name.Constant), - + (r"[\\$]\s+\S+", Name.Constant), + (r"M\\\s+\S+\s+\S+", Name.Constant), # numbers - (r'[+-]?(?:[\d,]*\d)?\.(?:\d([\d,]*\d)?)?(?:[eE][+-]?\d+)?\s', Number), - (r'[+-]?\d(?:[\d,]*\d)?(?:[eE][+-]?\d+)?\s', Number), - (r'0x[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s', Number), - (r'NAN:\s+[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s', Number), - (r'0b[01]+\s', Number.Bin), - (r'0o[0-7]+\s', Number.Oct), - (r'(?:\d([\d,]*\d)?)?\+\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s', Number), - (r'(?:\-\d([\d,]*\d)?)?\-\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s', Number), - + (r"[+-]?(?:[\d,]*\d)?\.(?:\d([\d,]*\d)?)?(?:[eE][+-]?\d+)?\s", Number), + (r"[+-]?\d(?:[\d,]*\d)?(?:[eE][+-]?\d+)?\s", Number), + (r"0x[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s", Number), + ( + r"NAN:\s+[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s", + Number, + ), + (r"0b[01]+\s", Number.Bin), + (r"0o[0-7]+\s", Number.Oct), + (r"(?:\d([\d,]*\d)?)?\+\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s", Number), + (r"(?:\-\d([\d,]*\d)?)?\-\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s", Number), # keywords - (r'(?:deprecated|final|foldable|flushable|inline|recursive)\s', - Keyword), - + (r"(?:deprecated|final|foldable|flushable|inline|recursive)\s", Keyword), # builtins (builtin_kernel, bygroups(Name.Builtin, Whitespace)), (builtin_assocs, bygroups(Name.Builtin, Whitespace)), @@ -326,38 +1014,47 @@ class FactorLexer(RegexLexer): (builtin_strings, bygroups(Name.Builtin, Whitespace)), (builtin_vectors, bygroups(Name.Builtin, Whitespace)), (builtin_continuations, bygroups(Name.Builtin, Whitespace)), - # everything else is text - (r'\S+', Text), + (r"\S+", Text), ], - 'stackeffect': [ - (r'\s+', Whitespace), - (r'(\()(\s+)', bygroups(Name.Function, Whitespace), 'stackeffect'), - (r'(\))(\s+)', bygroups(Name.Function, Whitespace), '#pop'), - (r'(--)(\s+)', bygroups(Name.Function, Whitespace)), - (r'\S+', Name.Variable), + "stackeffect": [ + (r"\s+", Whitespace), + (r"(\()(\s+)", bygroups(Name.Function, Whitespace), "stackeffect"), + (r"(\))(\s+)", bygroups(Name.Function, Whitespace), "#pop"), + (r"(--)(\s+)", bygroups(Name.Function, Whitespace)), + (r"\S+", Name.Variable), ], - 'slots': [ - (r'\s+', Whitespace), - (r'(;)(\s+)', bygroups(Keyword, Whitespace), '#pop'), - (r'(\{)(\s+)(\S+)(\s+)([^}]+)(\s+)(\})(\s+)', - bygroups(Text, Whitespace, Name.Variable, Whitespace, - Text, Whitespace, Text, Whitespace)), - (r'\S+', Name.Variable), + "slots": [ + (r"\s+", Whitespace), + (r"(;)(\s+)", bygroups(Keyword, Whitespace), "#pop"), + ( + r"(\{)(\s+)(\S+)(\s+)([^}]+)(\s+)(\})(\s+)", + bygroups( + Text, + Whitespace, + Name.Variable, + Whitespace, + Text, + Whitespace, + Text, + Whitespace, + ), + ), + (r"\S+", Name.Variable), ], - 'vocabs': [ - (r'\s+', Whitespace), - (r'(;)(\s+)', bygroups(Keyword, Whitespace), '#pop'), - (r'\S+', Name.Namespace), + "vocabs": [ + (r"\s+", Whitespace), + (r"(;)(\s+)", bygroups(Keyword, Whitespace), "#pop"), + (r"\S+", Name.Namespace), ], - 'classes': [ - (r'\s+', Whitespace), - (r'(;)(\s+)', bygroups(Keyword, Whitespace), '#pop'), - (r'\S+', Name.Class), + "classes": [ + (r"\s+", Whitespace), + (r"(;)(\s+)", bygroups(Keyword, Whitespace), "#pop"), + (r"\S+", Name.Class), ], - 'words': [ - (r'\s+', Whitespace), - (r'(;)(\s+)', bygroups(Keyword, Whitespace), '#pop'), - (r'\S+', Name.Function), + "words": [ + (r"\s+", Whitespace), + (r"(;)(\s+)", bygroups(Keyword, Whitespace), "#pop"), + (r"\S+", Name.Function), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fantom.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fantom.py index 7228554..6eb7834 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fantom.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fantom.py @@ -1,251 +1,345 @@ """ - pygments.lexers.fantom - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.fantom +~~~~~~~~~~~~~~~~~~~~~~ - Lexer for the Fantom language. +Lexer for the Fantom language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from string import Template -from pygments.lexer import RegexLexer, include, bygroups, using, \ - this, default, words -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Literal, Whitespace +from pygments.lexer import RegexLexer, include, bygroups, using, this, default, words +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Literal, + Whitespace, +) -__all__ = ['FantomLexer'] +__all__ = ["FantomLexer"] class FantomLexer(RegexLexer): """ For Fantom source code. """ - name = 'Fantom' - aliases = ['fan'] - filenames = ['*.fan'] - mimetypes = ['application/x-fantom'] - url = 'https://www.fantom.org' - version_added = '1.5' + + name = "Fantom" + aliases = ["fan"] + filenames = ["*.fan"] + mimetypes = ["application/x-fantom"] + url = "https://www.fantom.org" + version_added = "1.5" # often used regexes def s(str): return Template(str).substitute( dict( - pod=r'[\"\w\.]+', - eos=r'\n|;', - id=r'[a-zA-Z_]\w*', + pod=r"[\"\w\.]+", + eos=r"\n|;", + id=r"[a-zA-Z_]\w*", # all chars which can be part of type definition. Starts with # either letter, or [ (maps), or | (funcs) - type=r'(?:\[|[a-zA-Z_]|\|)[:\w\[\]|\->?]*?', + type=r"(?:\[|[a-zA-Z_]|\|)[:\w\[\]|\->?]*?", ) ) tokens = { - 'comments': [ - (r'(?s)/\*.*?\*/', Comment.Multiline), # Multiline - (r'//.*?$', Comment.Single), # Single line + "comments": [ + (r"(?s)/\*.*?\*/", Comment.Multiline), # Multiline + (r"//.*?$", Comment.Single), # Single line # TODO: highlight references in fandocs - (r'\*\*.*?$', Comment.Special), # Fandoc - (r'#.*$', Comment.Single) # Shell-style + (r"\*\*.*?$", Comment.Special), # Fandoc + (r"#.*$", Comment.Single), # Shell-style ], - 'literals': [ - (r'\b-?[\d_]+(ns|ms|sec|min|hr|day)', Number), # Duration - (r'\b-?[\d_]*\.[\d_]+(ns|ms|sec|min|hr|day)', Number), # Duration with dot - (r'\b-?(\d+)?\.\d+(f|F|d|D)?', Number.Float), # Float/Decimal - (r'\b-?0x[0-9a-fA-F_]+', Number.Hex), # Hex - (r'\b-?[\d_]+', Number.Integer), # Int + "literals": [ + (r"\b-?[\d_]+(ns|ms|sec|min|hr|day)", Number), # Duration + (r"\b-?[\d_]*\.[\d_]+(ns|ms|sec|min|hr|day)", Number), # Duration with dot + (r"\b-?(\d+)?\.\d+(f|F|d|D)?", Number.Float), # Float/Decimal + (r"\b-?0x[0-9a-fA-F_]+", Number.Hex), # Hex + (r"\b-?[\d_]+", Number.Integer), # Int (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char), # Char - (r'"', Punctuation, 'insideStr'), # Opening quote - (r'`', Punctuation, 'insideUri'), # Opening accent - (r'\b(true|false|null)\b', Keyword.Constant), # Bool & null - (r'(?:(\w+)(::))?(\w+)(<\|)(.*?)(\|>)', # DSL - bygroups(Name.Namespace, Punctuation, Name.Class, - Punctuation, String, Punctuation)), - (r'(?:(\w+)(::))?(\w+)?(#)(\w+)?', # Type/slot literal - bygroups(Name.Namespace, Punctuation, Name.Class, - Punctuation, Name.Function)), - (r'\[,\]', Literal), # Empty list - (s(r'($type)(\[,\])'), # Typed empty list - bygroups(using(this, state='inType'), Literal)), - (r'\[:\]', Literal), # Empty Map - (s(r'($type)(\[:\])'), - bygroups(using(this, state='inType'), Literal)), + (r'"', Punctuation, "insideStr"), # Opening quote + (r"`", Punctuation, "insideUri"), # Opening accent + (r"\b(true|false|null)\b", Keyword.Constant), # Bool & null + ( + r"(?:(\w+)(::))?(\w+)(<\|)(.*?)(\|>)", # DSL + bygroups( + Name.Namespace, + Punctuation, + Name.Class, + Punctuation, + String, + Punctuation, + ), + ), + ( + r"(?:(\w+)(::))?(\w+)?(#)(\w+)?", # Type/slot literal + bygroups( + Name.Namespace, Punctuation, Name.Class, Punctuation, Name.Function + ), + ), + (r"\[,\]", Literal), # Empty list + ( + s(r"($type)(\[,\])"), # Typed empty list + bygroups(using(this, state="inType"), Literal), + ), + (r"\[:\]", Literal), # Empty Map + (s(r"($type)(\[:\])"), bygroups(using(this, state="inType"), Literal)), ], - 'insideStr': [ - (r'\\\\', String.Escape), # Escaped backslash - (r'\\"', String.Escape), # Escaped " - (r'\\`', String.Escape), # Escaped ` - (r'\$\w+', String.Interpol), # Subst var - (r'\$\{.*?\}', String.Interpol), # Subst expr - (r'"', Punctuation, '#pop'), # Closing quot - (r'.', String) # String content + "insideStr": [ + (r"\\\\", String.Escape), # Escaped backslash + (r'\\"', String.Escape), # Escaped " + (r"\\`", String.Escape), # Escaped ` + (r"\$\w+", String.Interpol), # Subst var + (r"\$\{.*?\}", String.Interpol), # Subst expr + (r'"', Punctuation, "#pop"), # Closing quot + (r".", String), # String content ], - 'insideUri': [ # TODO: remove copy/paste str/uri - (r'\\\\', String.Escape), # Escaped backslash - (r'\\"', String.Escape), # Escaped " - (r'\\`', String.Escape), # Escaped ` - (r'\$\w+', String.Interpol), # Subst var - (r'\$\{.*?\}', String.Interpol), # Subst expr - (r'`', Punctuation, '#pop'), # Closing tick - (r'.', String.Backtick) # URI content + "insideUri": [ # TODO: remove copy/paste str/uri + (r"\\\\", String.Escape), # Escaped backslash + (r'\\"', String.Escape), # Escaped " + (r"\\`", String.Escape), # Escaped ` + (r"\$\w+", String.Interpol), # Subst var + (r"\$\{.*?\}", String.Interpol), # Subst expr + (r"`", Punctuation, "#pop"), # Closing tick + (r".", String.Backtick), # URI content ], - 'protectionKeywords': [ - (r'\b(public|protected|private|internal)\b', Keyword), + "protectionKeywords": [ + (r"\b(public|protected|private|internal)\b", Keyword), ], - 'typeKeywords': [ - (r'\b(abstract|final|const|native|facet|enum)\b', Keyword), + "typeKeywords": [ + (r"\b(abstract|final|const|native|facet|enum)\b", Keyword), ], - 'methodKeywords': [ - (r'\b(abstract|native|once|override|static|virtual|final)\b', - Keyword), + "methodKeywords": [ + (r"\b(abstract|native|once|override|static|virtual|final)\b", Keyword), ], - 'fieldKeywords': [ - (r'\b(abstract|const|final|native|override|static|virtual|' - r'readonly)\b', Keyword) + "fieldKeywords": [ + ( + r"\b(abstract|const|final|native|override|static|virtual|" + r"readonly)\b", + Keyword, + ) ], - 'otherKeywords': [ - (words(( - 'try', 'catch', 'throw', 'finally', 'for', 'if', 'else', 'while', - 'as', 'is', 'isnot', 'switch', 'case', 'default', 'continue', - 'break', 'do', 'return', 'get', 'set'), prefix=r'\b', suffix=r'\b'), - Keyword), - (r'\b(it|this|super)\b', Name.Builtin.Pseudo), + "otherKeywords": [ + ( + words( + ( + "try", + "catch", + "throw", + "finally", + "for", + "if", + "else", + "while", + "as", + "is", + "isnot", + "switch", + "case", + "default", + "continue", + "break", + "do", + "return", + "get", + "set", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + (r"\b(it|this|super)\b", Name.Builtin.Pseudo), ], - 'operators': [ - (r'\+\+|\-\-|\+|\-|\*|/|\|\||&&|<=>|<=|<|>=|>|=|!|\[|\]', Operator) + "operators": [ + (r"\+\+|\-\-|\+|\-|\*|/|\|\||&&|<=>|<=|<|>=|>|=|!|\[|\]", Operator) ], - 'inType': [ - (r'[\[\]|\->:?]', Punctuation), - (s(r'$id'), Name.Class), - default('#pop'), - + "inType": [ + (r"[\[\]|\->:?]", Punctuation), + (s(r"$id"), Name.Class), + default("#pop"), ], - 'root': [ - include('comments'), - include('protectionKeywords'), - include('typeKeywords'), - include('methodKeywords'), - include('fieldKeywords'), - include('literals'), - include('otherKeywords'), - include('operators'), - (r'using\b', Keyword.Namespace, 'using'), # Using stmt - (r'@\w+', Name.Decorator, 'facet'), # Symbol - (r'(class|mixin)(\s+)(\w+)', bygroups(Keyword, Whitespace, Name.Class), - 'inheritance'), # Inheritance list - + "root": [ + include("comments"), + include("protectionKeywords"), + include("typeKeywords"), + include("methodKeywords"), + include("fieldKeywords"), + include("literals"), + include("otherKeywords"), + include("operators"), + (r"using\b", Keyword.Namespace, "using"), # Using stmt + (r"@\w+", Name.Decorator, "facet"), # Symbol + ( + r"(class|mixin)(\s+)(\w+)", + bygroups(Keyword, Whitespace, Name.Class), + "inheritance", + ), # Inheritance list # Type var := val - (s(r'($type)([ \t]+)($id)(\s*)(:=)'), - bygroups(using(this, state='inType'), Whitespace, - Name.Variable, Whitespace, Operator)), - + ( + s(r"($type)([ \t]+)($id)(\s*)(:=)"), + bygroups( + using(this, state="inType"), + Whitespace, + Name.Variable, + Whitespace, + Operator, + ), + ), # var := val - (s(r'($id)(\s*)(:=)'), - bygroups(Name.Variable, Whitespace, Operator)), - + (s(r"($id)(\s*)(:=)"), bygroups(Name.Variable, Whitespace, Operator)), # .someId( or ->someId( ### - (s(r'(\.|(?:\->))($id)(\s*)(\()'), - bygroups(Operator, Name.Function, Whitespace, Punctuation), - 'insideParen'), - + ( + s(r"(\.|(?:\->))($id)(\s*)(\()"), + bygroups(Operator, Name.Function, Whitespace, Punctuation), + "insideParen", + ), # .someId or ->someId - (s(r'(\.|(?:\->))($id)'), - bygroups(Operator, Name.Function)), - + (s(r"(\.|(?:\->))($id)"), bygroups(Operator, Name.Function)), # new makeXXX ( - (r'(new)(\s+)(make\w*)(\s*)(\()', - bygroups(Keyword, Whitespace, Name.Function, Whitespace, Punctuation), - 'insideMethodDeclArgs'), - + ( + r"(new)(\s+)(make\w*)(\s*)(\()", + bygroups(Keyword, Whitespace, Name.Function, Whitespace, Punctuation), + "insideMethodDeclArgs", + ), # Type name ( - (s(r'($type)([ \t]+)' # Return type and whitespace - r'($id)(\s*)(\()'), # method name + open brace - bygroups(using(this, state='inType'), Whitespace, - Name.Function, Whitespace, Punctuation), - 'insideMethodDeclArgs'), - + ( + s( + r"($type)([ \t]+)" # Return type and whitespace + r"($id)(\s*)(\()" + ), # method name + open brace + bygroups( + using(this, state="inType"), + Whitespace, + Name.Function, + Whitespace, + Punctuation, + ), + "insideMethodDeclArgs", + ), # ArgType argName, - (s(r'($type)(\s+)($id)(\s*)(,)'), - bygroups(using(this, state='inType'), Whitespace, Name.Variable, - Whitespace, Punctuation)), - + ( + s(r"($type)(\s+)($id)(\s*)(,)"), + bygroups( + using(this, state="inType"), + Whitespace, + Name.Variable, + Whitespace, + Punctuation, + ), + ), # ArgType argName) # Covered in 'insideParen' state - # ArgType argName -> ArgType| - (s(r'($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)'), - bygroups(using(this, state='inType'), Whitespace, Name.Variable, - Whitespace, Punctuation, Whitespace, using(this, state='inType'), - Punctuation)), - + ( + s(r"($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)"), + bygroups( + using(this, state="inType"), + Whitespace, + Name.Variable, + Whitespace, + Punctuation, + Whitespace, + using(this, state="inType"), + Punctuation, + ), + ), # ArgType argName| - (s(r'($type)(\s+)($id)(\s*)(\|)'), - bygroups(using(this, state='inType'), Whitespace, Name.Variable, - Whitespace, Punctuation)), - + ( + s(r"($type)(\s+)($id)(\s*)(\|)"), + bygroups( + using(this, state="inType"), + Whitespace, + Name.Variable, + Whitespace, + Punctuation, + ), + ), # Type var - (s(r'($type)([ \t]+)($id)'), - bygroups(using(this, state='inType'), Whitespace, - Name.Variable)), - - (r'\(', Punctuation, 'insideParen'), - (r'\{', Punctuation, 'insideBrace'), - (r'\s+', Whitespace), - (r'.', Text) + ( + s(r"($type)([ \t]+)($id)"), + bygroups(using(this, state="inType"), Whitespace, Name.Variable), + ), + (r"\(", Punctuation, "insideParen"), + (r"\{", Punctuation, "insideBrace"), + (r"\s+", Whitespace), + (r".", Text), ], - 'insideParen': [ - (r'\)', Punctuation, '#pop'), - include('root'), + "insideParen": [ + (r"\)", Punctuation, "#pop"), + include("root"), ], - 'insideMethodDeclArgs': [ - (r'\)', Punctuation, '#pop'), - (s(r'($type)(\s+)($id)(\s*)(\))'), - bygroups(using(this, state='inType'), Whitespace, Name.Variable, - Whitespace, Punctuation), '#pop'), - include('root'), + "insideMethodDeclArgs": [ + (r"\)", Punctuation, "#pop"), + ( + s(r"($type)(\s+)($id)(\s*)(\))"), + bygroups( + using(this, state="inType"), + Whitespace, + Name.Variable, + Whitespace, + Punctuation, + ), + "#pop", + ), + include("root"), ], - 'insideBrace': [ - (r'\}', Punctuation, '#pop'), - include('root'), + "insideBrace": [ + (r"\}", Punctuation, "#pop"), + include("root"), ], - 'inheritance': [ - (r'\s+', Whitespace), # Whitespace - (r':|,', Punctuation), - (r'(?:(\w+)(::))?(\w+)', - bygroups(Name.Namespace, Punctuation, Name.Class)), - (r'\{', Punctuation, '#pop') + "inheritance": [ + (r"\s+", Whitespace), # Whitespace + (r":|,", Punctuation), + (r"(?:(\w+)(::))?(\w+)", bygroups(Name.Namespace, Punctuation, Name.Class)), + (r"\{", Punctuation, "#pop"), ], - 'using': [ - (r'[ \t]+', Whitespace), # consume whitespaces - (r'(\[)(\w+)(\])', - bygroups(Punctuation, Comment.Special, Punctuation)), # ffi - (r'(\")?([\w.]+)(\")?', - bygroups(Punctuation, Name.Namespace, Punctuation)), # podname - (r'::', Punctuation, 'usingClass'), - default('#pop') + "using": [ + (r"[ \t]+", Whitespace), # consume whitespaces + ( + r"(\[)(\w+)(\])", + bygroups(Punctuation, Comment.Special, Punctuation), + ), # ffi + ( + r"(\")?([\w.]+)(\")?", + bygroups(Punctuation, Name.Namespace, Punctuation), + ), # podname + (r"::", Punctuation, "usingClass"), + default("#pop"), ], - 'usingClass': [ - (r'[ \t]+', Whitespace), # consume whitespaces - (r'(as)(\s+)(\w+)', - bygroups(Keyword.Declaration, Whitespace, Name.Class), '#pop:2'), - (r'[\w$]+', Name.Class), - default('#pop:2') # jump out to root state + "usingClass": [ + (r"[ \t]+", Whitespace), # consume whitespaces + ( + r"(as)(\s+)(\w+)", + bygroups(Keyword.Declaration, Whitespace, Name.Class), + "#pop:2", + ), + (r"[\w$]+", Name.Class), + default("#pop:2"), # jump out to root state ], - 'facet': [ - (r'\s+', Whitespace), - (r'\{', Punctuation, 'facetFields'), - default('#pop') + "facet": [ + (r"\s+", Whitespace), + (r"\{", Punctuation, "facetFields"), + default("#pop"), ], - 'facetFields': [ - include('comments'), - include('literals'), - include('operators'), - (r'\s+', Whitespace), - (r'(\s*)(\w+)(\s*)(=)', bygroups(Whitespace, Name, Whitespace, Operator)), - (r'\}', Punctuation, '#pop'), - (r'\s+', Whitespace), - (r'.', Text) + "facetFields": [ + include("comments"), + include("literals"), + include("operators"), + (r"\s+", Whitespace), + (r"(\s*)(\w+)(\s*)(=)", bygroups(Whitespace, Name, Whitespace, Operator)), + (r"\}", Punctuation, "#pop"), + (r"\s+", Whitespace), + (r".", Text), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/felix.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/felix.py index a42ac08..807b396 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/felix.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/felix.py @@ -1,19 +1,27 @@ """ - pygments.lexers.felix - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.felix +~~~~~~~~~~~~~~~~~~~~~ - Lexer for the Felix language. +Lexer for the Felix language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ -from pygments.lexer import RegexLexer, include, bygroups, default, words, \ - combined -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.lexer import RegexLexer, include, bygroups, default, words, combined +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['FelixLexer'] +__all__ = ["FelixLexer"] class FelixLexer(RegexLexer): @@ -21,255 +29,413 @@ class FelixLexer(RegexLexer): For Felix source code. """ - name = 'Felix' - url = 'http://www.felix-lang.org' - aliases = ['felix', 'flx'] - filenames = ['*.flx', '*.flxh'] - mimetypes = ['text/x-felix'] - version_added = '1.2' + name = "Felix" + url = "http://www.felix-lang.org" + aliases = ["felix", "flx"] + filenames = ["*.flx", "*.flxh"] + mimetypes = ["text/x-felix"] + version_added = "1.2" preproc = ( - 'elif', 'else', 'endif', 'if', 'ifdef', 'ifndef', + "elif", + "else", + "endif", + "if", + "ifdef", + "ifndef", ) keywords = ( - '_', '_deref', 'all', 'as', - 'assert', 'attempt', 'call', 'callback', 'case', 'caseno', 'cclass', - 'code', 'compound', 'ctypes', 'do', 'done', 'downto', 'elif', 'else', - 'endattempt', 'endcase', 'endif', 'endmatch', 'enum', 'except', - 'exceptions', 'expect', 'finally', 'for', 'forall', 'forget', 'fork', - 'functor', 'goto', 'ident', 'if', 'incomplete', 'inherit', 'instance', - 'interface', 'jump', 'lambda', 'loop', 'match', 'module', 'namespace', - 'new', 'noexpand', 'nonterm', 'obj', 'of', 'open', 'parse', 'raise', - 'regexp', 'reglex', 'regmatch', 'rename', 'return', 'the', 'then', - 'to', 'type', 'typecase', 'typedef', 'typematch', 'typeof', 'upto', - 'when', 'whilst', 'with', 'yield', + "_", + "_deref", + "all", + "as", + "assert", + "attempt", + "call", + "callback", + "case", + "caseno", + "cclass", + "code", + "compound", + "ctypes", + "do", + "done", + "downto", + "elif", + "else", + "endattempt", + "endcase", + "endif", + "endmatch", + "enum", + "except", + "exceptions", + "expect", + "finally", + "for", + "forall", + "forget", + "fork", + "functor", + "goto", + "ident", + "if", + "incomplete", + "inherit", + "instance", + "interface", + "jump", + "lambda", + "loop", + "match", + "module", + "namespace", + "new", + "noexpand", + "nonterm", + "obj", + "of", + "open", + "parse", + "raise", + "regexp", + "reglex", + "regmatch", + "rename", + "return", + "the", + "then", + "to", + "type", + "typecase", + "typedef", + "typematch", + "typeof", + "upto", + "when", + "whilst", + "with", + "yield", ) keyword_directives = ( - '_gc_pointer', '_gc_type', 'body', 'comment', 'const', 'export', - 'header', 'inline', 'lval', 'macro', 'noinline', 'noreturn', - 'package', 'private', 'pod', 'property', 'public', 'publish', - 'requires', 'todo', 'virtual', 'use', + "_gc_pointer", + "_gc_type", + "body", + "comment", + "const", + "export", + "header", + "inline", + "lval", + "macro", + "noinline", + "noreturn", + "package", + "private", + "pod", + "property", + "public", + "publish", + "requires", + "todo", + "virtual", + "use", ) keyword_declarations = ( - 'def', 'let', 'ref', 'val', 'var', + "def", + "let", + "ref", + "val", + "var", ) keyword_types = ( - 'unit', 'void', 'any', 'bool', - 'byte', 'offset', - 'address', 'caddress', 'cvaddress', 'vaddress', - 'tiny', 'short', 'int', 'long', 'vlong', - 'utiny', 'ushort', 'vshort', 'uint', 'ulong', 'uvlong', - 'int8', 'int16', 'int32', 'int64', - 'uint8', 'uint16', 'uint32', 'uint64', - 'float', 'double', 'ldouble', - 'complex', 'dcomplex', 'lcomplex', - 'imaginary', 'dimaginary', 'limaginary', - 'char', 'wchar', 'uchar', - 'charp', 'charcp', 'ucharp', 'ucharcp', - 'string', 'wstring', 'ustring', - 'cont', - 'array', 'varray', 'list', - 'lvalue', 'opt', 'slice', + "unit", + "void", + "any", + "bool", + "byte", + "offset", + "address", + "caddress", + "cvaddress", + "vaddress", + "tiny", + "short", + "int", + "long", + "vlong", + "utiny", + "ushort", + "vshort", + "uint", + "ulong", + "uvlong", + "int8", + "int16", + "int32", + "int64", + "uint8", + "uint16", + "uint32", + "uint64", + "float", + "double", + "ldouble", + "complex", + "dcomplex", + "lcomplex", + "imaginary", + "dimaginary", + "limaginary", + "char", + "wchar", + "uchar", + "charp", + "charcp", + "ucharp", + "ucharcp", + "string", + "wstring", + "ustring", + "cont", + "array", + "varray", + "list", + "lvalue", + "opt", + "slice", ) keyword_constants = ( - 'false', 'true', + "false", + "true", ) operator_words = ( - 'and', 'not', 'in', 'is', 'isin', 'or', 'xor', + "and", + "not", + "in", + "is", + "isin", + "or", + "xor", ) name_builtins = ( - '_svc', 'while', + "_svc", + "while", ) name_pseudo = ( - 'root', 'self', 'this', + "root", + "self", + "this", ) - decimal_suffixes = '([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?' + decimal_suffixes = "([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?" tokens = { - 'root': [ - include('whitespace'), - + "root": [ + include("whitespace"), # Keywords - (words(('axiom', 'ctor', 'fun', 'gen', 'proc', 'reduce', - 'union'), suffix=r'\b'), - Keyword, 'funcname'), - (words(('class', 'cclass', 'cstruct', 'obj', 'struct'), suffix=r'\b'), - Keyword, 'classname'), - (r'(instance|module|typeclass)\b', Keyword, 'modulename'), - - (words(keywords, suffix=r'\b'), Keyword), - (words(keyword_directives, suffix=r'\b'), Name.Decorator), - (words(keyword_declarations, suffix=r'\b'), Keyword.Declaration), - (words(keyword_types, suffix=r'\b'), Keyword.Type), - (words(keyword_constants, suffix=r'\b'), Keyword.Constant), - + ( + words( + ("axiom", "ctor", "fun", "gen", "proc", "reduce", "union"), + suffix=r"\b", + ), + Keyword, + "funcname", + ), + ( + words(("class", "cclass", "cstruct", "obj", "struct"), suffix=r"\b"), + Keyword, + "classname", + ), + (r"(instance|module|typeclass)\b", Keyword, "modulename"), + (words(keywords, suffix=r"\b"), Keyword), + (words(keyword_directives, suffix=r"\b"), Name.Decorator), + (words(keyword_declarations, suffix=r"\b"), Keyword.Declaration), + (words(keyword_types, suffix=r"\b"), Keyword.Type), + (words(keyword_constants, suffix=r"\b"), Keyword.Constant), # Operators - include('operators'), - + include("operators"), # Float Literal # -- Hex Float - (r'0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)' - r'[pP][+\-]?[0-9_]+[lLfFdD]?', Number.Float), + ( + r"0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)" + r"[pP][+\-]?[0-9_]+[lLfFdD]?", + Number.Float, + ), # -- DecimalFloat - (r'[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|' - r'\.[0-9_]*|[eE][+\-]?[0-9_]+)[lLfFdD]?', Number.Float), - (r'\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[lLfFdD]?', - Number.Float), - + ( + r"[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|" + r"\.[0-9_]*|[eE][+\-]?[0-9_]+)[lLfFdD]?", + Number.Float, + ), + (r"\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[lLfFdD]?", Number.Float), # IntegerLiteral # -- Binary - (rf'0[Bb][01_]+{decimal_suffixes}', Number.Bin), + (rf"0[Bb][01_]+{decimal_suffixes}", Number.Bin), # -- Octal - (rf'0[0-7_]+{decimal_suffixes}', Number.Oct), + (rf"0[0-7_]+{decimal_suffixes}", Number.Oct), # -- Hexadecimal - (rf'0[xX][0-9a-fA-F_]+{decimal_suffixes}', Number.Hex), + (rf"0[xX][0-9a-fA-F_]+{decimal_suffixes}", Number.Hex), # -- Decimal - (rf'(0|[1-9][0-9_]*){decimal_suffixes}', Number.Integer), - + (rf"(0|[1-9][0-9_]*){decimal_suffixes}", Number.Integer), # Strings - ('([rR][cC]?|[cC][rR])"""', String, 'tdqs'), - ("([rR][cC]?|[cC][rR])'''", String, 'tsqs'), - ('([rR][cC]?|[cC][rR])"', String, 'dqs'), - ("([rR][cC]?|[cC][rR])'", String, 'sqs'), - ('[cCfFqQwWuU]?"""', String, combined('stringescape', 'tdqs')), - ("[cCfFqQwWuU]?'''", String, combined('stringescape', 'tsqs')), - ('[cCfFqQwWuU]?"', String, combined('stringescape', 'dqs')), - ("[cCfFqQwWuU]?'", String, combined('stringescape', 'sqs')), - + ('([rR][cC]?|[cC][rR])"""', String, "tdqs"), + ("([rR][cC]?|[cC][rR])'''", String, "tsqs"), + ('([rR][cC]?|[cC][rR])"', String, "dqs"), + ("([rR][cC]?|[cC][rR])'", String, "sqs"), + ('[cCfFqQwWuU]?"""', String, combined("stringescape", "tdqs")), + ("[cCfFqQwWuU]?'''", String, combined("stringescape", "tsqs")), + ('[cCfFqQwWuU]?"', String, combined("stringescape", "dqs")), + ("[cCfFqQwWuU]?'", String, combined("stringescape", "sqs")), # Punctuation - (r'[\[\]{}:(),;?]', Punctuation), - + (r"[\[\]{}:(),;?]", Punctuation), # Labels - (r'[a-zA-Z_]\w*:>', Name.Label), - + (r"[a-zA-Z_]\w*:>", Name.Label), # Identifiers - (r'({})\b'.format('|'.join(name_builtins)), Name.Builtin), - (r'({})\b'.format('|'.join(name_pseudo)), Name.Builtin.Pseudo), - (r'[a-zA-Z_]\w*', Name), + (r"({})\b".format("|".join(name_builtins)), Name.Builtin), + (r"({})\b".format("|".join(name_pseudo)), Name.Builtin.Pseudo), + (r"[a-zA-Z_]\w*", Name), ], - 'whitespace': [ - (r'\s+', Whitespace), - - include('comment'), - + "whitespace": [ + (r"\s+", Whitespace), + include("comment"), # Preprocessor - (r'(#)(\s*)(if)(\s+)(0)', - bygroups(Comment.Preproc, Whitespace, Comment.Preproc, - Whitespace, Comment.Preproc), 'if0'), - (r'#', Comment.Preproc, 'macro'), + ( + r"(#)(\s*)(if)(\s+)(0)", + bygroups( + Comment.Preproc, + Whitespace, + Comment.Preproc, + Whitespace, + Comment.Preproc, + ), + "if0", + ), + (r"#", Comment.Preproc, "macro"), ], - 'operators': [ - (r'({})\b'.format('|'.join(operator_words)), Operator.Word), - (r'!=|==|<<|>>|\|\||&&|[-~+/*%=<>&^|.$]', Operator), + "operators": [ + (r"({})\b".format("|".join(operator_words)), Operator.Word), + (r"!=|==|<<|>>|\|\||&&|[-~+/*%=<>&^|.$]", Operator), ], - 'comment': [ - (r'//(.*?)$', Comment.Single), - (r'/[*]', Comment.Multiline, 'comment2'), + "comment": [ + (r"//(.*?)$", Comment.Single), + (r"/[*]", Comment.Multiline, "comment2"), ], - 'comment2': [ - (r'[^/*]', Comment.Multiline), - (r'/[*]', Comment.Multiline, '#push'), - (r'[*]/', Comment.Multiline, '#pop'), - (r'[/*]', Comment.Multiline), + "comment2": [ + (r"[^/*]", Comment.Multiline), + (r"/[*]", Comment.Multiline, "#push"), + (r"[*]/", Comment.Multiline, "#pop"), + (r"[/*]", Comment.Multiline), ], - 'if0': [ - (r'^(\s*)(#if.*?(?]*?>)', - bygroups(Comment.Preproc, Whitespace, String), '#pop'), - (r'(import|include)(\s+)("[^"]*?")', - bygroups(Comment.Preproc, Whitespace, String), '#pop'), - (r"(import|include)(\s+)('[^']*?')", - bygroups(Comment.Preproc, Whitespace, String), '#pop'), - (r'[^/\n]+', Comment.Preproc), + "macro": [ + include("comment"), + ( + r"(import|include)(\s+)(<[^>]*?>)", + bygroups(Comment.Preproc, Whitespace, String), + "#pop", + ), + ( + r'(import|include)(\s+)("[^"]*?")', + bygroups(Comment.Preproc, Whitespace, String), + "#pop", + ), + ( + r"(import|include)(\s+)('[^']*?')", + bygroups(Comment.Preproc, Whitespace, String), + "#pop", + ), + (r"[^/\n]+", Comment.Preproc), # (r'/[*](.|\n)*?[*]/', Comment), # (r'//.*?\n', Comment, '#pop'), - (r'/', Comment.Preproc), - (r'(?<=\\)\n', Comment.Preproc), - (r'\n', Whitespace, '#pop'), + (r"/", Comment.Preproc), + (r"(?<=\\)\n", Comment.Preproc), + (r"\n", Whitespace, "#pop"), ], - 'funcname': [ - include('whitespace'), - (r'[a-zA-Z_]\w*', Name.Function, '#pop'), + "funcname": [ + include("whitespace"), + (r"[a-zA-Z_]\w*", Name.Function, "#pop"), # anonymous functions - (r'(?=\()', Text, '#pop'), + (r"(?=\()", Text, "#pop"), ], - 'classname': [ - include('whitespace'), - (r'[a-zA-Z_]\w*', Name.Class, '#pop'), + "classname": [ + include("whitespace"), + (r"[a-zA-Z_]\w*", Name.Class, "#pop"), # anonymous classes - (r'(?=\{)', Text, '#pop'), + (r"(?=\{)", Text, "#pop"), ], - 'modulename': [ - include('whitespace'), - (r'\[', Punctuation, ('modulename2', 'tvarlist')), - default('modulename2'), + "modulename": [ + include("whitespace"), + (r"\[", Punctuation, ("modulename2", "tvarlist")), + default("modulename2"), ], - 'modulename2': [ - include('whitespace'), - (r'([a-zA-Z_]\w*)', Name.Namespace, '#pop:2'), + "modulename2": [ + include("whitespace"), + (r"([a-zA-Z_]\w*)", Name.Namespace, "#pop:2"), ], - 'tvarlist': [ - include('whitespace'), - include('operators'), - (r'\[', Punctuation, '#push'), - (r'\]', Punctuation, '#pop'), - (r',', Punctuation), - (r'(with|where)\b', Keyword), - (r'[a-zA-Z_]\w*', Name), + "tvarlist": [ + include("whitespace"), + include("operators"), + (r"\[", Punctuation, "#push"), + (r"\]", Punctuation, "#pop"), + (r",", Punctuation), + (r"(with|where)\b", Keyword), + (r"[a-zA-Z_]\w*", Name), ], - 'stringescape': [ - (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|' - r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape) + "stringescape": [ + ( + r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|' + r"U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})", + String.Escape, + ) ], - 'strings': [ - (r'%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' - '[hlL]?[E-GXc-giorsux%]', String.Interpol), + "strings": [ + ( + r"%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?" + "[hlL]?[E-GXc-giorsux%]", + String.Interpol, + ), (r'[^\\\'"%\n]+', String), # quotes, percents and backslashes must be parsed one at a time (r'[\'"\\]', String), # unhandled string formatting sign - (r'%', String) + (r"%", String), # newlines are an error (use "nl" state) ], - 'nl': [ - (r'\n', String) - ], - 'dqs': [ - (r'"', String, '#pop'), + "nl": [(r"\n", String)], + "dqs": [ + (r'"', String, "#pop"), # included here again for raw strings (r'\\\\|\\"|\\\n', String.Escape), - include('strings') + include("strings"), ], - 'sqs': [ - (r"'", String, '#pop'), + "sqs": [ + (r"'", String, "#pop"), # included here again for raw strings (r"\\\\|\\'|\\\n", String.Escape), - include('strings') - ], - 'tdqs': [ - (r'"""', String, '#pop'), - include('strings'), - include('nl') - ], - 'tsqs': [ - (r"'''", String, '#pop'), - include('strings'), - include('nl') + include("strings"), ], + "tdqs": [(r'"""', String, "#pop"), include("strings"), include("nl")], + "tsqs": [(r"'''", String, "#pop"), include("strings"), include("nl")], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fift.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fift.py index 1263236..c19a7a4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fift.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fift.py @@ -1,17 +1,17 @@ """ - pygments.lexers.fift - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.fift +~~~~~~~~~~~~~~~~~~~~ - Lexers for fift. +Lexers for fift. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include from pygments.token import Literal, Comment, Name, String, Number, Whitespace -__all__ = ['FiftLexer'] +__all__ = ["FiftLexer"] class FiftLexer(RegexLexer): @@ -19,50 +19,42 @@ class FiftLexer(RegexLexer): For Fift source code. """ - name = 'Fift' - aliases = ['fift', 'fif'] - filenames = ['*.fif'] - url = 'https://ton-blockchain.github.io/docs/fiftbase.pdf' - version_added = '' + name = "Fift" + aliases = ["fift", "fif"] + filenames = ["*.fif"] + url = "https://ton-blockchain.github.io/docs/fiftbase.pdf" + version_added = "" tokens = { - 'root': [ - (r'\s+', Whitespace), - - include('comments'), - - (r'[\.+]?\"', String, 'string'), - + "root": [ + (r"\s+", Whitespace), + include("comments"), + (r"[\.+]?\"", String, "string"), # numbers - (r'0x[0-9a-fA-F]+', Number.Hex), - (r'0b[01]+', Number.Bin), + (r"0x[0-9a-fA-F]+", Number.Hex), + (r"0b[01]+", Number.Bin), (r'-?[0-9]+("/"-?[0-9]+)?', Number.Decimal), - # slices - (r'b\{[01]+\}', Literal), - (r'x\{[0-9a-fA-F_]+\}', Literal), - + (r"b\{[01]+\}", Literal), + (r"x\{[0-9a-fA-F_]+\}", Literal), # byte literal - (r'B\{[0-9a-fA-F_]+\}', Literal), - + (r"B\{[0-9a-fA-F_]+\}", Literal), # treat anything as word - (r'\S+', Name) + (r"\S+", Name), ], - - 'string': [ - (r'\\.', String.Escape), - (r'\"', String, '#pop'), - (r'[^\"\r\n\\]+', String) + "string": [ + (r"\\.", String.Escape), + (r"\"", String, "#pop"), + (r"[^\"\r\n\\]+", String), ], - - 'comments': [ - (r'//.*', Comment.Singleline), - (r'/\*', Comment.Multiline, 'comment'), + "comments": [ + (r"//.*", Comment.Singleline), + (r"/\*", Comment.Multiline, "comment"), ], - 'comment': [ - (r'[^/*]+', Comment.Multiline), - (r'/\*', Comment.Multiline, '#push'), - (r'\*/', Comment.Multiline, '#pop'), - (r'[*/]', Comment.Multiline), + "comment": [ + (r"[^/*]+", Comment.Multiline), + (r"/\*", Comment.Multiline, "#push"), + (r"\*/", Comment.Multiline, "#pop"), + (r"[*/]", Comment.Multiline), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/floscript.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/floscript.py index 9c7eaab..41ad8fc 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/floscript.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/floscript.py @@ -1,18 +1,27 @@ """ - pygments.lexers.floscript - ~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.floscript +~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexer for FloScript +Lexer for FloScript - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, bygroups -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['FloScriptLexer'] +__all__ = ["FloScriptLexer"] class FloScriptLexer(RegexLexer): @@ -20,62 +29,68 @@ class FloScriptLexer(RegexLexer): For FloScript configuration language source code. """ - name = 'FloScript' - url = 'https://github.com/ioflo/ioflo' - aliases = ['floscript', 'flo'] - filenames = ['*.flo'] - version_added = '2.4' + name = "FloScript" + url = "https://github.com/ioflo/ioflo" + aliases = ["floscript", "flo"] + filenames = ["*.flo"] + version_added = "2.4" def innerstring_rules(ttype): return [ # the old style '%s' % (...) string formatting - (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' - '[hlL]?[E-GXc-giorsux%]', String.Interpol), + ( + r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?" + "[hlL]?[E-GXc-giorsux%]", + String.Interpol, + ), # backslashes, quotes and formatting signs must be parsed one at a time (r'[^\\\'"%\n]+', ttype), (r'[\'"\\]', ttype), # unhandled string formatting sign - (r'%', ttype), + (r"%", ttype), # newlines are an error (use "nl" state) ] tokens = { - 'root': [ - (r'\s+', Whitespace), - - (r'[]{}:(),;[]', Punctuation), - (r'(\\)(\n)', bygroups(Text, Whitespace)), - (r'\\', Text), - (r'(to|by|with|from|per|for|cum|qua|via|as|at|in|of|on|re|is|if|be|into|' - r'and|not)\b', Operator.Word), - (r'!=|==|<<|>>|[-~+/*%=<>&^|.]', Operator), - (r'(load|init|server|logger|log|loggee|first|over|under|next|done|timeout|' - r'repeat|native|benter|enter|recur|exit|precur|renter|rexit|print|put|inc|' - r'copy|set|aux|rear|raze|go|let|do|bid|ready|start|stop|run|abort|use|flo|' - r'give|take)\b', Name.Builtin), - (r'(frame|framer|house)\b', Keyword), - ('"', String, 'string'), - - include('name'), - include('numbers'), - (r'#.+$', Comment.Single), + "root": [ + (r"\s+", Whitespace), + (r"[]{}:(),;[]", Punctuation), + (r"(\\)(\n)", bygroups(Text, Whitespace)), + (r"\\", Text), + ( + r"(to|by|with|from|per|for|cum|qua|via|as|at|in|of|on|re|is|if|be|into|" + r"and|not)\b", + Operator.Word, + ), + (r"!=|==|<<|>>|[-~+/*%=<>&^|.]", Operator), + ( + r"(load|init|server|logger|log|loggee|first|over|under|next|done|timeout|" + r"repeat|native|benter|enter|recur|exit|precur|renter|rexit|print|put|inc|" + r"copy|set|aux|rear|raze|go|let|do|bid|ready|start|stop|run|abort|use|flo|" + r"give|take)\b", + Name.Builtin, + ), + (r"(frame|framer|house)\b", Keyword), + ('"', String, "string"), + include("name"), + include("numbers"), + (r"#.+$", Comment.Single), ], - 'string': [ + "string": [ ('[^"]+', String), - ('"', String, '#pop'), + ('"', String, "#pop"), ], - 'numbers': [ - (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float), - (r'\d+[eE][+-]?[0-9]+j?', Number.Float), - (r'0[0-7]+j?', Number.Oct), - (r'0[bB][01]+', Number.Bin), - (r'0[xX][a-fA-F0-9]+', Number.Hex), - (r'\d+L', Number.Integer.Long), - (r'\d+j?', Number.Integer) + "numbers": [ + (r"(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?", Number.Float), + (r"\d+[eE][+-]?[0-9]+j?", Number.Float), + (r"0[0-7]+j?", Number.Oct), + (r"0[bB][01]+", Number.Bin), + (r"0[xX][a-fA-F0-9]+", Number.Hex), + (r"\d+L", Number.Integer.Long), + (r"\d+j?", Number.Integer), ], - - 'name': [ - (r'@[\w.]+', Name.Decorator), - (r'[a-zA-Z_]\w*', Name), + "name": [ + (r"@[\w.]+", Name.Decorator), + (r"[a-zA-Z_]\w*", Name), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/forth.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/forth.py index 51f75af..2586c87 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/forth.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/forth.py @@ -1,178 +1,186 @@ """ - pygments.lexers.forth - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.forth +~~~~~~~~~~~~~~~~~~~~~ - Lexer for the Forth language. +Lexer for the Forth language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, bygroups -from pygments.token import Text, Comment, Keyword, Name, String, Number, \ - Whitespace +from pygments.token import Text, Comment, Keyword, Name, String, Number, Whitespace - -__all__ = ['ForthLexer'] +__all__ = ["ForthLexer"] class ForthLexer(RegexLexer): """ Lexer for Forth files. """ - name = 'Forth' - url = 'https://www.forth.com/forth/' - aliases = ['forth'] - filenames = ['*.frt', '*.fs'] - mimetypes = ['application/x-forth'] - version_added = '2.2' + + name = "Forth" + url = "https://www.forth.com/forth/" + aliases = ["forth"] + filenames = ["*.frt", "*.fs"] + mimetypes = ["application/x-forth"] + version_added = "2.2" flags = re.IGNORECASE | re.MULTILINE tokens = { - 'root': [ - (r'\s+', Whitespace), + "root": [ + (r"\s+", Whitespace), # All comment types - (r'\\.*?$', Comment.Single), - (r'\([\s].*?\)', Comment.Single), + (r"\\.*?$", Comment.Single), + (r"\([\s].*?\)", Comment.Single), # defining words. The next word is a new command name - (r'(:|variable|constant|value|buffer:)(\s+)', - bygroups(Keyword.Namespace, Whitespace), 'worddef'), + ( + r"(:|variable|constant|value|buffer:)(\s+)", + bygroups(Keyword.Namespace, Whitespace), + "worddef", + ), # strings are rather simple - (r'([.sc]")(\s+?)', bygroups(String, Whitespace), 'stringdef'), + (r'([.sc]")(\s+?)', bygroups(String, Whitespace), "stringdef"), # keywords from the various wordsets # *** Wordset BLOCK - (r'(blk|block|buffer|evaluate|flush|load|save-buffers|update|' - # *** Wordset BLOCK-EXT - r'empty-buffers|list|refill|scr|thru|' - # *** Wordset CORE - r'\#s|\*\/mod|\+loop|\/mod|0<|0=|1\+|1-|2!|' - r'2\*|2\/|2@|2drop|2dup|2over|2swap|>body|' - r'>in|>number|>r|\?dup|abort|abort\"|abs|' - r'accept|align|aligned|allot|and|base|begin|' - r'bl|c!|c,|c@|cell\+|cells|char|char\+|' - r'chars|constant|count|cr|create|decimal|' - r'depth|do|does>|drop|dup|else|emit|environment\?|' - r'evaluate|execute|exit|fill|find|fm\/mod|' - r'here|hold|i|if|immediate|invert|j|key|' - r'leave|literal|loop|lshift|m\*|max|min|' - r'mod|move|negate|or|over|postpone|quit|' - r'r>|r@|recurse|repeat|rot|rshift|s\"|s>d|' - r'sign|sm\/rem|source|space|spaces|state|swap|' - r'then|type|u\.|u\<|um\*|um\/mod|unloop|until|' - r'variable|while|word|xor|\[char\]|\[\'\]|' - r'@|!|\#|<\#|\#>|:|;|\+|-|\*|\/|,|<|>|\|1\+|1-|\.|' - # *** Wordset CORE-EXT - r'\.r|0<>|' - r'0>|2>r|2r>|2r@|:noname|\?do|again|c\"|' - r'case|compile,|endcase|endof|erase|false|' - r'hex|marker|nip|of|pad|parse|pick|refill|' - r'restore-input|roll|save-input|source-id|to|' - r'true|tuck|u\.r|u>|unused|value|within|' - r'\[compile\]|' - # *** Wordset CORE-EXT-obsolescent - r'\#tib|convert|expect|query|span|' - r'tib|' - # *** Wordset DOUBLE - r'2constant|2literal|2variable|d\+|d-|' - r'd\.|d\.r|d0<|d0=|d2\*|d2\/|d<|d=|d>s|' - r'dabs|dmax|dmin|dnegate|m\*\/|m\+|' - # *** Wordset DOUBLE-EXT - r'2rot|du<|' - # *** Wordset EXCEPTION - r'catch|throw|' - # *** Wordset EXCEPTION-EXT - r'abort|abort\"|' - # *** Wordset FACILITY - r'at-xy|key\?|page|' - # *** Wordset FACILITY-EXT - r'ekey|ekey>char|ekey\?|emit\?|ms|time&date|' - # *** Wordset FILE - r'BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|' - r'FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|' - r'R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|' - r'S\"|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|' - # *** Wordset FILE-EXT - r'FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|' - # *** Wordset FLOAT - r'>float|d>f|' - r'f!|f\*|f\+|f-|f\/|f0<|f0=|f<|f>d|f@|' - r'falign|faligned|fconstant|fdepth|fdrop|fdup|' - r'fliteral|float\+|floats|floor|fmax|fmin|' - r'fnegate|fover|frot|fround|fswap|fvariable|' - r'represent|' - # *** Wordset FLOAT-EXT - r'df!|df@|dfalign|dfaligned|dfloat\+|' - r'dfloats|f\*\*|f\.|fabs|facos|facosh|falog|' - r'fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|' - r'fe\.|fexp|fexpm1|fln|flnp1|flog|fs\.|fsin|' - r'fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|' - r'set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|' - r'sfloats|' - # *** Wordset LOCAL - r'\(local\)|to|' - # *** Wordset LOCAL-EXT - r'locals\||' - # *** Wordset MEMORY - r'allocate|free|resize|' - # *** Wordset SEARCH - r'definitions|find|forth-wordlist|get-current|' - r'get-order|search-wordlist|set-current|set-order|' - r'wordlist|' - # *** Wordset SEARCH-EXT - r'also|forth|only|order|previous|' - # *** Wordset STRING - r'-trailing|\/string|blank|cmove|cmove>|compare|' - r'search|sliteral|' - # *** Wordset TOOLS - r'.s|dump|see|words|' - # *** Wordset TOOLS-EXT - r';code|' - r'ahead|assembler|bye|code|cs-pick|cs-roll|' - r'editor|state|\[else\]|\[if\]|\[then\]|' - # *** Wordset TOOLS-EXT-obsolescent - r'forget|' - # Forth 2012 - r'defer|defer@|defer!|action-of|begin-structure|field:|buffer:|' - r'parse-name|buffer:|traverse-wordlist|n>r|nr>|2value|fvalue|' - r'name>interpret|name>compile|name>string|' - r'cfield:|end-structure)(?!\S)', Keyword), - + ( + r"(blk|block|buffer|evaluate|flush|load|save-buffers|update|" + # *** Wordset BLOCK-EXT + r"empty-buffers|list|refill|scr|thru|" + # *** Wordset CORE + r"\#s|\*\/mod|\+loop|\/mod|0<|0=|1\+|1-|2!|" + r"2\*|2\/|2@|2drop|2dup|2over|2swap|>body|" + r">in|>number|>r|\?dup|abort|abort\"|abs|" + r"accept|align|aligned|allot|and|base|begin|" + r"bl|c!|c,|c@|cell\+|cells|char|char\+|" + r"chars|constant|count|cr|create|decimal|" + r"depth|do|does>|drop|dup|else|emit|environment\?|" + r"evaluate|execute|exit|fill|find|fm\/mod|" + r"here|hold|i|if|immediate|invert|j|key|" + r"leave|literal|loop|lshift|m\*|max|min|" + r"mod|move|negate|or|over|postpone|quit|" + r"r>|r@|recurse|repeat|rot|rshift|s\"|s>d|" + r"sign|sm\/rem|source|space|spaces|state|swap|" + r"then|type|u\.|u\<|um\*|um\/mod|unloop|until|" + r"variable|while|word|xor|\[char\]|\[\'\]|" + r"@|!|\#|<\#|\#>|:|;|\+|-|\*|\/|,|<|>|\|1\+|1-|\.|" + # *** Wordset CORE-EXT + r"\.r|0<>|" + r"0>|2>r|2r>|2r@|:noname|\?do|again|c\"|" + r"case|compile,|endcase|endof|erase|false|" + r"hex|marker|nip|of|pad|parse|pick|refill|" + r"restore-input|roll|save-input|source-id|to|" + r"true|tuck|u\.r|u>|unused|value|within|" + r"\[compile\]|" + # *** Wordset CORE-EXT-obsolescent + r"\#tib|convert|expect|query|span|" r"tib|" + # *** Wordset DOUBLE + r"2constant|2literal|2variable|d\+|d-|" + r"d\.|d\.r|d0<|d0=|d2\*|d2\/|d<|d=|d>s|" + r"dabs|dmax|dmin|dnegate|m\*\/|m\+|" + # *** Wordset DOUBLE-EXT + r"2rot|du<|" + # *** Wordset EXCEPTION + r"catch|throw|" + # *** Wordset EXCEPTION-EXT + r"abort|abort\"|" + # *** Wordset FACILITY + r"at-xy|key\?|page|" + # *** Wordset FACILITY-EXT + r"ekey|ekey>char|ekey\?|emit\?|ms|time&date|" + # *** Wordset FILE + r"BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|" + r"FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|" + r"R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|" + r"S\"|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|" + # *** Wordset FILE-EXT + r"FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|" + # *** Wordset FLOAT + r">float|d>f|" + r"f!|f\*|f\+|f-|f\/|f0<|f0=|f<|f>d|f@|" + r"falign|faligned|fconstant|fdepth|fdrop|fdup|" + r"fliteral|float\+|floats|floor|fmax|fmin|" + r"fnegate|fover|frot|fround|fswap|fvariable|" + r"represent|" + # *** Wordset FLOAT-EXT + r"df!|df@|dfalign|dfaligned|dfloat\+|" + r"dfloats|f\*\*|f\.|fabs|facos|facosh|falog|" + r"fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|" + r"fe\.|fexp|fexpm1|fln|flnp1|flog|fs\.|fsin|" + r"fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|" + r"set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|" + r"sfloats|" + # *** Wordset LOCAL + r"\(local\)|to|" + # *** Wordset LOCAL-EXT + r"locals\||" + # *** Wordset MEMORY + r"allocate|free|resize|" + # *** Wordset SEARCH + r"definitions|find|forth-wordlist|get-current|" + r"get-order|search-wordlist|set-current|set-order|" + r"wordlist|" + # *** Wordset SEARCH-EXT + r"also|forth|only|order|previous|" + # *** Wordset STRING + r"-trailing|\/string|blank|cmove|cmove>|compare|" r"search|sliteral|" + # *** Wordset TOOLS + r".s|dump|see|words|" + # *** Wordset TOOLS-EXT + r";code|" + r"ahead|assembler|bye|code|cs-pick|cs-roll|" + r"editor|state|\[else\]|\[if\]|\[then\]|" + # *** Wordset TOOLS-EXT-obsolescent + r"forget|" + # Forth 2012 + r"defer|defer@|defer!|action-of|begin-structure|field:|buffer:|" + r"parse-name|buffer:|traverse-wordlist|n>r|nr>|2value|fvalue|" + r"name>interpret|name>compile|name>string|" + r"cfield:|end-structure)(?!\S)", + Keyword, + ), # Numbers - (r'(\$[0-9A-F]+)', Number.Hex), - (r'(\#|%|&|\-|\+)?[0-9]+', Number.Integer), - (r'(\#|%|&|\-|\+)?[0-9.]+', Keyword.Type), + (r"(\$[0-9A-F]+)", Number.Hex), + (r"(\#|%|&|\-|\+)?[0-9]+", Number.Integer), + (r"(\#|%|&|\-|\+)?[0-9.]+", Keyword.Type), # amforth specific - (r'(@i|!i|@e|!e|pause|noop|turnkey|sleep|' - r'itype|icompare|sp@|sp!|rp@|rp!|up@|up!|' - r'>a|a>|a@|a!|a@+|a@-|>b|b>|b@|b!|b@+|b@-|' - r'find-name|1ms|' - r'sp0|rp0|\(evaluate\)|int-trap|int!)(?!\S)', - Name.Constant), + ( + r"(@i|!i|@e|!e|pause|noop|turnkey|sleep|" + r"itype|icompare|sp@|sp!|rp@|rp!|up@|up!|" + r">a|a>|a@|a!|a@+|a@-|>b|b>|b@|b!|b@+|b@-|" + r"find-name|1ms|" + r"sp0|rp0|\(evaluate\)|int-trap|int!)(?!\S)", + Name.Constant, + ), # a proposal - (r'(do-recognizer|r:fail|recognizer:|get-recognizers|' - r'set-recognizers|r:float|r>comp|r>int|r>post|' - r'r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|' - r'rec:num|rec:float|rec:word)(?!\S)', Name.Decorator), + ( + r"(do-recognizer|r:fail|recognizer:|get-recognizers|" + r"set-recognizers|r:float|r>comp|r>int|r>post|" + r"r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|" + r"rec:num|rec:float|rec:word)(?!\S)", + Name.Decorator, + ), # defining words. The next word is a new command name - (r'(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)', - bygroups(Keyword.Namespace, Text), 'worddef'), - - (r'\S+', Name.Function), # Anything else is executed - + ( + r"(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)", + bygroups(Keyword.Namespace, Text), + "worddef", + ), + (r"\S+", Name.Function), # Anything else is executed ], - 'worddef': [ - (r'\S+', Name.Class, '#pop'), + "worddef": [ + (r"\S+", Name.Class, "#pop"), ], - 'stringdef': [ - (r'[^"]+', String, '#pop'), + "stringdef": [ + (r'[^"]+', String, "#pop"), ], } def analyse_text(text): """Forth uses : COMMAND ; quite a lot in a single line, so we're trying to find that.""" - if re.search('\n:[^\n]+;\n', text): + if re.search("\n:[^\n]+;\n", text): return 0.3 diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fortran.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fortran.py index a6230f0..d3dd01a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fortran.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/fortran.py @@ -1,32 +1,42 @@ """ - pygments.lexers.fortran - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.fortran +~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for Fortran languages. +Lexers for Fortran languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, bygroups, include, words, using, default -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, +) -__all__ = ['FortranLexer', 'FortranFixedLexer'] +__all__ = ["FortranLexer", "FortranFixedLexer"] class FortranLexer(RegexLexer): """ Lexer for FORTRAN 90 code. """ - name = 'Fortran' - url = 'https://fortran-lang.org/' - aliases = ['fortran', 'f90'] - filenames = ['*.f03', '*.f90', '*.F03', '*.F90'] - mimetypes = ['text/x-fortran'] - version_added = '0.10' + + name = "Fortran" + url = "https://fortran-lang.org/" + aliases = ["fortran", "f90"] + filenames = ["*.f03", "*.f90", "*.F03", "*.F90"] + mimetypes = ["text/x-fortran"] + version_added = "0.10" flags = re.IGNORECASE | re.MULTILINE # Data Types: INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER and DOUBLE PRECISION @@ -37,134 +47,535 @@ class FortranLexer(RegexLexer): # http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Table-of-Intrinsic-Functions.html tokens = { - 'root': [ - (r'^#.*\n', Comment.Preproc), - (r'!.*\n', Comment), - include('strings'), - include('core'), - (r'[a-z][\w$]*', Name), - include('nums'), - (r'[\s]+', Text.Whitespace), + "root": [ + (r"^#.*\n", Comment.Preproc), + (r"!.*\n", Comment), + include("strings"), + include("core"), + (r"[a-z][\w$]*", Name), + include("nums"), + (r"[\s]+", Text.Whitespace), ], - 'core': [ + "core": [ # Statements - - (r'\b(DO)(\s+)(CONCURRENT)\b', bygroups(Keyword, Text.Whitespace, Keyword)), - (r'\b(GO)(\s*)(TO)\b', bygroups(Keyword, Text.Whitespace, Keyword)), - - (words(( - 'ABSTRACT', 'ACCEPT', 'ALL', 'ALLSTOP', 'ALLOCATABLE', 'ALLOCATE', - 'ARRAY', 'ASSIGN', 'ASSOCIATE', 'ASYNCHRONOUS', 'BACKSPACE', 'BIND', - 'BLOCK', 'BLOCKDATA', 'BYTE', 'CALL', 'CASE', 'CLASS', 'CLOSE', - 'CODIMENSION', 'COMMON', 'CONTIGUOUS', 'CONTAINS', - 'CONTINUE', 'CRITICAL', 'CYCLE', 'DATA', 'DEALLOCATE', 'DECODE', - 'DEFERRED', 'DIMENSION', 'DO', 'ELEMENTAL', 'ELSE', 'ELSEIF', 'ENCODE', - 'END', 'ENDASSOCIATE', 'ENDBLOCK', 'ENDDO', 'ENDENUM', 'ENDFORALL', - 'ENDFUNCTION', 'ENDIF', 'ENDINTERFACE', 'ENDMODULE', 'ENDPROGRAM', - 'ENDSELECT', 'ENDSUBMODULE', 'ENDSUBROUTINE', 'ENDTYPE', 'ENDWHERE', - 'ENTRY', 'ENUM', 'ENUMERATOR', 'EQUIVALENCE', 'ERROR STOP', 'EXIT', - 'EXTENDS', 'EXTERNAL', 'EXTRINSIC', 'FILE', 'FINAL', 'FORALL', 'FORMAT', - 'FUNCTION', 'GENERIC', 'IF', 'IMAGES', 'IMPLICIT', - 'IMPORT', 'IMPURE', 'INCLUDE', 'INQUIRE', 'INTENT', 'INTERFACE', - 'INTRINSIC', 'IS', 'LOCK', 'MEMORY', 'MODULE', 'NAMELIST', 'NULLIFY', - 'NONE', 'NON_INTRINSIC', 'NON_OVERRIDABLE', 'NOPASS', 'ONLY', 'OPEN', - 'OPTIONAL', 'OPTIONS', 'PARAMETER', 'PASS', 'PAUSE', 'POINTER', 'PRINT', - 'PRIVATE', 'PROGRAM', 'PROCEDURE', 'PROTECTED', 'PUBLIC', 'PURE', 'READ', - 'RECURSIVE', 'RESULT', 'RETURN', 'REWIND', 'SAVE', 'SELECT', 'SEQUENCE', - 'STOP', 'SUBMODULE', 'SUBROUTINE', 'SYNC', 'SYNCALL', 'SYNCIMAGES', - 'SYNCMEMORY', 'TARGET', 'THEN', 'TYPE', 'UNLOCK', 'USE', 'VALUE', - 'VOLATILE', 'WHERE', 'WRITE', 'WHILE'), prefix=r'\b', suffix=r'\s*\b'), - Keyword), - + (r"\b(DO)(\s+)(CONCURRENT)\b", bygroups(Keyword, Text.Whitespace, Keyword)), + (r"\b(GO)(\s*)(TO)\b", bygroups(Keyword, Text.Whitespace, Keyword)), + ( + words( + ( + "ABSTRACT", + "ACCEPT", + "ALL", + "ALLSTOP", + "ALLOCATABLE", + "ALLOCATE", + "ARRAY", + "ASSIGN", + "ASSOCIATE", + "ASYNCHRONOUS", + "BACKSPACE", + "BIND", + "BLOCK", + "BLOCKDATA", + "BYTE", + "CALL", + "CASE", + "CLASS", + "CLOSE", + "CODIMENSION", + "COMMON", + "CONTIGUOUS", + "CONTAINS", + "CONTINUE", + "CRITICAL", + "CYCLE", + "DATA", + "DEALLOCATE", + "DECODE", + "DEFERRED", + "DIMENSION", + "DO", + "ELEMENTAL", + "ELSE", + "ELSEIF", + "ENCODE", + "END", + "ENDASSOCIATE", + "ENDBLOCK", + "ENDDO", + "ENDENUM", + "ENDFORALL", + "ENDFUNCTION", + "ENDIF", + "ENDINTERFACE", + "ENDMODULE", + "ENDPROGRAM", + "ENDSELECT", + "ENDSUBMODULE", + "ENDSUBROUTINE", + "ENDTYPE", + "ENDWHERE", + "ENTRY", + "ENUM", + "ENUMERATOR", + "EQUIVALENCE", + "ERROR STOP", + "EXIT", + "EXTENDS", + "EXTERNAL", + "EXTRINSIC", + "FILE", + "FINAL", + "FORALL", + "FORMAT", + "FUNCTION", + "GENERIC", + "IF", + "IMAGES", + "IMPLICIT", + "IMPORT", + "IMPURE", + "INCLUDE", + "INQUIRE", + "INTENT", + "INTERFACE", + "INTRINSIC", + "IS", + "LOCK", + "MEMORY", + "MODULE", + "NAMELIST", + "NULLIFY", + "NONE", + "NON_INTRINSIC", + "NON_OVERRIDABLE", + "NOPASS", + "ONLY", + "OPEN", + "OPTIONAL", + "OPTIONS", + "PARAMETER", + "PASS", + "PAUSE", + "POINTER", + "PRINT", + "PRIVATE", + "PROGRAM", + "PROCEDURE", + "PROTECTED", + "PUBLIC", + "PURE", + "READ", + "RECURSIVE", + "RESULT", + "RETURN", + "REWIND", + "SAVE", + "SELECT", + "SEQUENCE", + "STOP", + "SUBMODULE", + "SUBROUTINE", + "SYNC", + "SYNCALL", + "SYNCIMAGES", + "SYNCMEMORY", + "TARGET", + "THEN", + "TYPE", + "UNLOCK", + "USE", + "VALUE", + "VOLATILE", + "WHERE", + "WRITE", + "WHILE", + ), + prefix=r"\b", + suffix=r"\s*\b", + ), + Keyword, + ), # Data Types - (words(( - 'CHARACTER', 'COMPLEX', 'DOUBLE PRECISION', 'DOUBLE COMPLEX', 'INTEGER', - 'LOGICAL', 'REAL', 'C_INT', 'C_SHORT', 'C_LONG', 'C_LONG_LONG', - 'C_SIGNED_CHAR', 'C_SIZE_T', 'C_INT8_T', 'C_INT16_T', 'C_INT32_T', - 'C_INT64_T', 'C_INT_LEAST8_T', 'C_INT_LEAST16_T', 'C_INT_LEAST32_T', - 'C_INT_LEAST64_T', 'C_INT_FAST8_T', 'C_INT_FAST16_T', 'C_INT_FAST32_T', - 'C_INT_FAST64_T', 'C_INTMAX_T', 'C_INTPTR_T', 'C_FLOAT', 'C_DOUBLE', - 'C_LONG_DOUBLE', 'C_FLOAT_COMPLEX', 'C_DOUBLE_COMPLEX', - 'C_LONG_DOUBLE_COMPLEX', 'C_BOOL', 'C_CHAR', 'C_PTR', 'C_FUNPTR'), - prefix=r'\b', suffix=r'\s*\b'), - Keyword.Type), - + ( + words( + ( + "CHARACTER", + "COMPLEX", + "DOUBLE PRECISION", + "DOUBLE COMPLEX", + "INTEGER", + "LOGICAL", + "REAL", + "C_INT", + "C_SHORT", + "C_LONG", + "C_LONG_LONG", + "C_SIGNED_CHAR", + "C_SIZE_T", + "C_INT8_T", + "C_INT16_T", + "C_INT32_T", + "C_INT64_T", + "C_INT_LEAST8_T", + "C_INT_LEAST16_T", + "C_INT_LEAST32_T", + "C_INT_LEAST64_T", + "C_INT_FAST8_T", + "C_INT_FAST16_T", + "C_INT_FAST32_T", + "C_INT_FAST64_T", + "C_INTMAX_T", + "C_INTPTR_T", + "C_FLOAT", + "C_DOUBLE", + "C_LONG_DOUBLE", + "C_FLOAT_COMPLEX", + "C_DOUBLE_COMPLEX", + "C_LONG_DOUBLE_COMPLEX", + "C_BOOL", + "C_CHAR", + "C_PTR", + "C_FUNPTR", + ), + prefix=r"\b", + suffix=r"\s*\b", + ), + Keyword.Type, + ), # Operators - (r'(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)', Operator), - - (r'(::)', Keyword.Declaration), - - (r'[()\[\],:&%;.]', Punctuation), + (r"(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)", Operator), + (r"(::)", Keyword.Declaration), + (r"[()\[\],:&%;.]", Punctuation), # Intrinsics - (words(( - 'Abort', 'Abs', 'Access', 'AChar', 'ACos', 'ACosH', 'AdjustL', - 'AdjustR', 'AImag', 'AInt', 'Alarm', 'All', 'Allocated', 'ALog', - 'AMax', 'AMin', 'AMod', 'And', 'ANInt', 'Any', 'ASin', 'ASinH', - 'Associated', 'ATan', 'ATanH', 'Atomic_Define', 'Atomic_Ref', - 'BesJ', 'BesJN', 'Bessel_J0', 'Bessel_J1', 'Bessel_JN', 'Bessel_Y0', - 'Bessel_Y1', 'Bessel_YN', 'BesY', 'BesYN', 'BGE', 'BGT', 'BLE', - 'BLT', 'Bit_Size', 'BTest', 'CAbs', 'CCos', 'Ceiling', 'CExp', - 'Char', 'ChDir', 'ChMod', 'CLog', 'Cmplx', 'Command_Argument_Count', - 'Complex', 'Conjg', 'Cos', 'CosH', 'Count', 'CPU_Time', 'CShift', - 'CSin', 'CSqRt', 'CTime', 'C_Loc', 'C_Associated', - 'C_Null_Ptr', 'C_Null_Funptr', 'C_F_Pointer', 'C_F_ProcPointer', - 'C_Null_Char', 'C_Alert', 'C_Backspace', 'C_Form_Feed', 'C_FunLoc', - 'C_Sizeof', 'C_New_Line', 'C_Carriage_Return', - 'C_Horizontal_Tab', 'C_Vertical_Tab', 'DAbs', 'DACos', 'DASin', - 'DATan', 'Date_and_Time', 'DbesJ', 'DbesJN', 'DbesY', - 'DbesYN', 'Dble', 'DCos', 'DCosH', 'DDiM', 'DErF', - 'DErFC', 'DExp', 'Digits', 'DiM', 'DInt', 'DLog', 'DMax', - 'DMin', 'DMod', 'DNInt', 'Dot_Product', 'DProd', 'DSign', 'DSinH', - 'DShiftL', 'DShiftR', 'DSin', 'DSqRt', 'DTanH', 'DTan', 'DTime', - 'EOShift', 'Epsilon', 'ErF', 'ErFC', 'ErFC_Scaled', 'ETime', - 'Execute_Command_Line', 'Exit', 'Exp', 'Exponent', 'Extends_Type_Of', - 'FDate', 'FGet', 'FGetC', 'FindLoc', 'Float', 'Floor', 'Flush', - 'FNum', 'FPutC', 'FPut', 'Fraction', 'FSeek', 'FStat', 'FTell', - 'Gamma', 'GError', 'GetArg', 'Get_Command', 'Get_Command_Argument', - 'Get_Environment_Variable', 'GetCWD', 'GetEnv', 'GetGId', 'GetLog', - 'GetPId', 'GetUId', 'GMTime', 'HostNm', 'Huge', 'Hypot', 'IAbs', - 'IAChar', 'IAll', 'IAnd', 'IAny', 'IArgC', 'IBClr', 'IBits', - 'IBSet', 'IChar', 'IDate', 'IDiM', 'IDInt', 'IDNInt', 'IEOr', - 'IErrNo', 'IFix', 'Imag', 'ImagPart', 'Image_Index', 'Index', - 'Int', 'IOr', 'IParity', 'IRand', 'IsaTty', 'IShft', 'IShftC', - 'ISign', 'Iso_C_Binding', 'Is_Contiguous', 'Is_Iostat_End', - 'Is_Iostat_Eor', 'ITime', 'Kill', 'Kind', 'LBound', 'LCoBound', - 'Len', 'Len_Trim', 'LGe', 'LGt', 'Link', 'LLe', 'LLt', 'LnBlnk', - 'Loc', 'Log', 'Log_Gamma', 'Logical', 'Long', 'LShift', 'LStat', - 'LTime', 'MaskL', 'MaskR', 'MatMul', 'Max', 'MaxExponent', - 'MaxLoc', 'MaxVal', 'MClock', 'Merge', 'Merge_Bits', 'Move_Alloc', - 'Min', 'MinExponent', 'MinLoc', 'MinVal', 'Mod', 'Modulo', 'MvBits', - 'Nearest', 'New_Line', 'NInt', 'Norm2', 'Not', 'Null', 'Num_Images', - 'Or', 'Pack', 'Parity', 'PError', 'Precision', 'Present', 'Product', - 'Radix', 'Rand', 'Random_Number', 'Random_Seed', 'Range', 'Real', - 'RealPart', 'Rename', 'Repeat', 'Reshape', 'RRSpacing', 'RShift', - 'Same_Type_As', 'Scale', 'Scan', 'Second', 'Selected_Char_Kind', - 'Selected_Int_Kind', 'Selected_Real_Kind', 'Set_Exponent', 'Shape', - 'ShiftA', 'ShiftL', 'ShiftR', 'Short', 'Sign', 'Signal', 'SinH', - 'Sin', 'Sleep', 'Sngl', 'Spacing', 'Spread', 'SqRt', 'SRand', - 'Stat', 'Storage_Size', 'Sum', 'SymLnk', 'System', 'System_Clock', - 'Tan', 'TanH', 'Time', 'This_Image', 'Tiny', 'TrailZ', 'Transfer', - 'Transpose', 'Trim', 'TtyNam', 'UBound', 'UCoBound', 'UMask', - 'Unlink', 'Unpack', 'Verify', 'XOr', 'ZAbs', 'ZCos', 'ZExp', - 'ZLog', 'ZSin', 'ZSqRt'), prefix=r'\b', suffix=r'\s*\b'), - Name.Builtin), - + ( + words( + ( + "Abort", + "Abs", + "Access", + "AChar", + "ACos", + "ACosH", + "AdjustL", + "AdjustR", + "AImag", + "AInt", + "Alarm", + "All", + "Allocated", + "ALog", + "AMax", + "AMin", + "AMod", + "And", + "ANInt", + "Any", + "ASin", + "ASinH", + "Associated", + "ATan", + "ATanH", + "Atomic_Define", + "Atomic_Ref", + "BesJ", + "BesJN", + "Bessel_J0", + "Bessel_J1", + "Bessel_JN", + "Bessel_Y0", + "Bessel_Y1", + "Bessel_YN", + "BesY", + "BesYN", + "BGE", + "BGT", + "BLE", + "BLT", + "Bit_Size", + "BTest", + "CAbs", + "CCos", + "Ceiling", + "CExp", + "Char", + "ChDir", + "ChMod", + "CLog", + "Cmplx", + "Command_Argument_Count", + "Complex", + "Conjg", + "Cos", + "CosH", + "Count", + "CPU_Time", + "CShift", + "CSin", + "CSqRt", + "CTime", + "C_Loc", + "C_Associated", + "C_Null_Ptr", + "C_Null_Funptr", + "C_F_Pointer", + "C_F_ProcPointer", + "C_Null_Char", + "C_Alert", + "C_Backspace", + "C_Form_Feed", + "C_FunLoc", + "C_Sizeof", + "C_New_Line", + "C_Carriage_Return", + "C_Horizontal_Tab", + "C_Vertical_Tab", + "DAbs", + "DACos", + "DASin", + "DATan", + "Date_and_Time", + "DbesJ", + "DbesJN", + "DbesY", + "DbesYN", + "Dble", + "DCos", + "DCosH", + "DDiM", + "DErF", + "DErFC", + "DExp", + "Digits", + "DiM", + "DInt", + "DLog", + "DMax", + "DMin", + "DMod", + "DNInt", + "Dot_Product", + "DProd", + "DSign", + "DSinH", + "DShiftL", + "DShiftR", + "DSin", + "DSqRt", + "DTanH", + "DTan", + "DTime", + "EOShift", + "Epsilon", + "ErF", + "ErFC", + "ErFC_Scaled", + "ETime", + "Execute_Command_Line", + "Exit", + "Exp", + "Exponent", + "Extends_Type_Of", + "FDate", + "FGet", + "FGetC", + "FindLoc", + "Float", + "Floor", + "Flush", + "FNum", + "FPutC", + "FPut", + "Fraction", + "FSeek", + "FStat", + "FTell", + "Gamma", + "GError", + "GetArg", + "Get_Command", + "Get_Command_Argument", + "Get_Environment_Variable", + "GetCWD", + "GetEnv", + "GetGId", + "GetLog", + "GetPId", + "GetUId", + "GMTime", + "HostNm", + "Huge", + "Hypot", + "IAbs", + "IAChar", + "IAll", + "IAnd", + "IAny", + "IArgC", + "IBClr", + "IBits", + "IBSet", + "IChar", + "IDate", + "IDiM", + "IDInt", + "IDNInt", + "IEOr", + "IErrNo", + "IFix", + "Imag", + "ImagPart", + "Image_Index", + "Index", + "Int", + "IOr", + "IParity", + "IRand", + "IsaTty", + "IShft", + "IShftC", + "ISign", + "Iso_C_Binding", + "Is_Contiguous", + "Is_Iostat_End", + "Is_Iostat_Eor", + "ITime", + "Kill", + "Kind", + "LBound", + "LCoBound", + "Len", + "Len_Trim", + "LGe", + "LGt", + "Link", + "LLe", + "LLt", + "LnBlnk", + "Loc", + "Log", + "Log_Gamma", + "Logical", + "Long", + "LShift", + "LStat", + "LTime", + "MaskL", + "MaskR", + "MatMul", + "Max", + "MaxExponent", + "MaxLoc", + "MaxVal", + "MClock", + "Merge", + "Merge_Bits", + "Move_Alloc", + "Min", + "MinExponent", + "MinLoc", + "MinVal", + "Mod", + "Modulo", + "MvBits", + "Nearest", + "New_Line", + "NInt", + "Norm2", + "Not", + "Null", + "Num_Images", + "Or", + "Pack", + "Parity", + "PError", + "Precision", + "Present", + "Product", + "Radix", + "Rand", + "Random_Number", + "Random_Seed", + "Range", + "Real", + "RealPart", + "Rename", + "Repeat", + "Reshape", + "RRSpacing", + "RShift", + "Same_Type_As", + "Scale", + "Scan", + "Second", + "Selected_Char_Kind", + "Selected_Int_Kind", + "Selected_Real_Kind", + "Set_Exponent", + "Shape", + "ShiftA", + "ShiftL", + "ShiftR", + "Short", + "Sign", + "Signal", + "SinH", + "Sin", + "Sleep", + "Sngl", + "Spacing", + "Spread", + "SqRt", + "SRand", + "Stat", + "Storage_Size", + "Sum", + "SymLnk", + "System", + "System_Clock", + "Tan", + "TanH", + "Time", + "This_Image", + "Tiny", + "TrailZ", + "Transfer", + "Transpose", + "Trim", + "TtyNam", + "UBound", + "UCoBound", + "UMask", + "Unlink", + "Unpack", + "Verify", + "XOr", + "ZAbs", + "ZCos", + "ZExp", + "ZLog", + "ZSin", + "ZSqRt", + ), + prefix=r"\b", + suffix=r"\s*\b", + ), + Name.Builtin, + ), # Booleans - (r'\.(true|false)\.', Name.Builtin), + (r"\.(true|false)\.", Name.Builtin), # Comparing Operators - (r'\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.', Operator.Word), + (r"\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.", Operator.Word), ], - - 'strings': [ + "strings": [ (r'"(\\[0-7]+|\\[^0-7]|[^"\\])*"', String.Double), (r"'(\\[0-7]+|\\[^0-7]|[^'\\])*'", String.Single), ], - - 'nums': [ - (r'\d+(?![.e])(_([1-9]|[a-z]\w*))?', Number.Integer), - (r'[+-]?\d*\.\d+([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?', Number.Float), - (r'[+-]?\d+\.\d*([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?', Number.Float), - (r'[+-]?\d+(\.\d*)?[ed][-+]?\d+(_([1-9]|[a-z]\w*))?', Number.Float), + "nums": [ + (r"\d+(?![.e])(_([1-9]|[a-z]\w*))?", Number.Integer), + (r"[+-]?\d*\.\d+([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?", Number.Float), + (r"[+-]?\d+\.\d*([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?", Number.Float), + (r"[+-]?\d+(\.\d*)?[ed][-+]?\d+(_([1-9]|[a-z]\w*))?", Number.Float), ], } @@ -173,11 +584,12 @@ class FortranFixedLexer(RegexLexer): """ Lexer for fixed format Fortran. """ - name = 'FortranFixed' - aliases = ['fortranfixed'] - filenames = ['*.f', '*.F'] - url = 'https://fortran-lang.org/' - version_added = '2.1' + + name = "FortranFixed" + aliases = ["fortranfixed"] + filenames = ["*.f", "*.F"] + url = "https://fortran-lang.org/" + version_added = "2.1" flags = re.IGNORECASE @@ -186,27 +598,30 @@ class FortranFixedLexer(RegexLexer): lexer = FortranLexer() text = match.group(0) + "\n" for index, token, value in lexer.get_tokens_unprocessed(text): - value = value.replace('\n', '') - if value != '': + value = value.replace("\n", "") + if value != "": yield index, token, value tokens = { - 'root': [ - (r'[C*].*\n', Comment), - (r'#.*\n', Comment.Preproc), - (r' {0,4}!.*\n', Comment), - (r'(.{5})', Name.Label, 'cont-char'), - (r'.*\n', using(FortranLexer)), + "root": [ + (r"[C*].*\n", Comment), + (r"#.*\n", Comment.Preproc), + (r" {0,4}!.*\n", Comment), + (r"(.{5})", Name.Label, "cont-char"), + (r".*\n", using(FortranLexer)), ], - 'cont-char': [ - (' ', Text, 'code'), - ('0', Comment, 'code'), - ('.', Generic.Strong, 'code'), + "cont-char": [ + (" ", Text, "code"), + ("0", Comment, "code"), + (".", Generic.Strong, "code"), + ], + "code": [ + ( + r"(.{66})(.*)(\n)", + bygroups(_lex_fortran, Comment, Text.Whitespace), + "root", + ), + (r"(.*)(\n)", bygroups(_lex_fortran, Text.Whitespace), "root"), + default("root"), ], - 'code': [ - (r'(.{66})(.*)(\n)', - bygroups(_lex_fortran, Comment, Text.Whitespace), 'root'), - (r'(.*)(\n)', bygroups(_lex_fortran, Text.Whitespace), 'root'), - default('root'), - ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/foxpro.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/foxpro.py index 3e7c056..e2dfc0a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/foxpro.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/foxpro.py @@ -1,20 +1,19 @@ """ - pygments.lexers.foxpro - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.foxpro +~~~~~~~~~~~~~~~~~~~~~~ - Simple lexer for Microsoft Visual FoxPro source code. +Simple lexer for Microsoft Visual FoxPro source code. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer -from pygments.token import Punctuation, Text, Comment, Operator, Keyword, \ - Name, String +from pygments.token import Punctuation, Text, Comment, Operator, Keyword, Name, String -__all__ = ['FoxProLexer'] +__all__ = ["FoxProLexer"] class FoxProLexer(RegexLexer): @@ -24,404 +23,418 @@ class FoxProLexer(RegexLexer): to 4 characters. Shortened forms are not recognized by this lexer. """ - name = 'FoxPro' - aliases = ['foxpro', 'vfp', 'clipper', 'xbase'] - filenames = ['*.PRG', '*.prg'] - version_added = '1.6' + name = "FoxPro" + aliases = ["foxpro", "vfp", "clipper", "xbase"] + filenames = ["*.PRG", "*.prg"] + version_added = "1.6" mimetype = [] - url = 'https://learn.microsoft.com/en-us/previous-versions/visualstudio/foxpro' + url = "https://learn.microsoft.com/en-us/previous-versions/visualstudio/foxpro" flags = re.IGNORECASE | re.MULTILINE tokens = { - 'root': [ - (r';\s*\n', Punctuation), # consume newline - (r'(^|\n)\s*', Text, 'newline'), - + "root": [ + (r";\s*\n", Punctuation), # consume newline + (r"(^|\n)\s*", Text, "newline"), # Square brackets may be used for array indices # and for string literal. Look for arrays # before matching string literals. - (r'(?<=\w)\[[0-9, ]+\]', Text), + (r"(?<=\w)\[[0-9, ]+\]", Text), (r'\'[^\'\n]*\'|"[^"\n]*"|\[[^]*]\]', String), - (r'(^\s*\*|&&|&&).*?\n', Comment.Single), - - (r'(ABS|ACLASS|ACOPY|ACOS|ADATABASES|ADBOBJECTS|ADDBS|' - r'ADDPROPERTY|ADEL|ADIR|ADLLS|ADOCKSTATE|AELEMENT|AERROR|' - r'AEVENTS|AFIELDS|AFONT|AGETCLASS|AGETFILEVERSION|AINS|' - r'AINSTANCE|ALANGUAGE|ALEN|ALIAS|ALINES|ALLTRIM|' - r'AMEMBERS|AMOUSEOBJ|ANETRESOURCES|APRINTERS|APROCINFO|' - r'ASC|ASCAN|ASELOBJ|ASESSIONS|ASIN|ASORT|ASQLHANDLES|' - r'ASTACKINFO|ASUBSCRIPT|AT|AT_C|ATAGINFO|ATAN|ATC|ATCC|' - r'ATCLINE|ATLINE|ATN2|AUSED|AVCXCLASSES|BAR|BARCOUNT|' - r'BARPROMPT|BETWEEN|BINDEVENT|BINTOC|BITAND|BITCLEAR|' - r'BITLSHIFT|BITNOT|BITOR|BITRSHIFT|BITSET|BITTEST|BITXOR|' - r'BOF|CANDIDATE|CAPSLOCK|CAST|CDOW|CDX|CEILING|CHR|CHRSAW|' - r'CHRTRAN|CHRTRANC|CLEARRESULTSET|CMONTH|CNTBAR|CNTPAD|COL|' - r'COM|Functions|COMARRAY|COMCLASSINFO|COMPOBJ|COMPROP|' - r'COMRETURNERROR|COS|CPCONVERT|CPCURRENT|CPDBF|CREATEBINARY|' - r'CREATEOBJECT|CREATEOBJECTEX|CREATEOFFLINE|CTOBIN|CTOD|' - r'CTOT|CURDIR|CURSORGETPROP|CURSORSETPROP|CURSORTOXML|' - r'CURVAL|DATE|DATETIME|DAY|DBC|DBF|DBGETPROP|DBSETPROP|' - r'DBUSED|DDEAbortTrans|DDEAdvise|DDEEnabled|DDEExecute|' - r'DDEInitiate|DDELastError|DDEPoke|DDERequest|DDESetOption|' - r'DDESetService|DDESetTopic|DDETerminate|DEFAULTEXT|' - r'DELETED|DESCENDING|DIFFERENCE|DIRECTORY|DISKSPACE|' - r'DisplayPath|DMY|DODEFAULT|DOW|DRIVETYPE|DROPOFFLINE|' - r'DTOC|DTOR|DTOS|DTOT|EDITSOURCE|EMPTY|EOF|ERROR|EVAL(UATE)?|' - r'EVENTHANDLER|EVL|EXECSCRIPT|EXP|FCHSIZE|FCLOSE|FCOUNT|' - r'FCREATE|FDATE|FEOF|FERROR|FFLUSH|FGETS|FIELD|FILE|' - r'FILETOSTR|FILTER|FKLABEL|FKMAX|FLDLIST|FLOCK|FLOOR|' - r'FONTMETRIC|FOPEN|FOR|FORCEEXT|FORCEPATH|FOUND|FPUTS|' - r'FREAD|FSEEK|FSIZE|FTIME|FULLPATH|FV|FWRITE|' - r'GETAUTOINCVALUE|GETBAR|GETCOLOR|GETCP|GETDIR|GETENV|' - r'GETFILE|GETFLDSTATE|GETFONT|GETINTERFACE|' - r'GETNEXTMODIFIED|GETOBJECT|GETPAD|GETPEM|GETPICT|' - r'GETPRINTER|GETRESULTSET|GETWORDCOUNT|GETWORDNUM|' - r'GETCURSORADAPTER|GOMONTH|HEADER|HOME|HOUR|ICASE|' - r'IDXCOLLATE|IIF|IMESTATUS|INDBC|INDEXSEEK|INKEY|INLIST|' - r'INPUTBOX|INSMODE|INT|ISALPHA|ISBLANK|ISCOLOR|ISDIGIT|' - r'ISEXCLUSIVE|ISFLOCKED|ISLEADBYTE|ISLOWER|ISMEMOFETCHED|' - r'ISMOUSE|ISNULL|ISPEN|ISREADONLY|ISRLOCKED|' - r'ISTRANSACTABLE|ISUPPER|JUSTDRIVE|JUSTEXT|JUSTFNAME|' - r'JUSTPATH|JUSTSTEM|KEY|KEYMATCH|LASTKEY|LEFT|LEFTC|LEN|' - r'LENC|LIKE|LIKEC|LINENO|LOADPICTURE|LOCFILE|LOCK|LOG|' - r'LOG10|LOOKUP|LOWER|LTRIM|LUPDATE|MAKETRANSACTABLE|MAX|' - r'MCOL|MDOWN|MDX|MDY|MEMLINES|MEMORY|MENU|MESSAGE|' - r'MESSAGEBOX|MIN|MINUTE|MLINE|MOD|MONTH|MRKBAR|MRKPAD|' - r'MROW|MTON|MWINDOW|NDX|NEWOBJECT|NORMALIZE|NTOM|NUMLOCK|' - r'NVL|OBJNUM|OBJTOCLIENT|OBJVAR|OCCURS|OEMTOANSI|OLDVAL|' - r'ON|ORDER|OS|PAD|PADL|PARAMETERS|PAYMENT|PCOL|PCOUNT|' - r'PEMSTATUS|PI|POPUP|PRIMARY|PRINTSTATUS|PRMBAR|PRMPAD|' - r'PROGRAM|PROMPT|PROPER|PROW|PRTINFO|PUTFILE|PV|QUARTER|' - r'RAISEEVENT|RAND|RAT|RATC|RATLINE|RDLEVEL|READKEY|RECCOUNT|' - r'RECNO|RECSIZE|REFRESH|RELATION|REPLICATE|REQUERY|RGB|' - r'RGBSCHEME|RIGHT|RIGHTC|RLOCK|ROUND|ROW|RTOD|RTRIM|' - r'SAVEPICTURE|SCHEME|SCOLS|SEC|SECONDS|SEEK|SELECT|SET|' - r'SETFLDSTATE|SETRESULTSET|SIGN|SIN|SKPBAR|SKPPAD|SOUNDEX|' - r'SPACE|SQLCANCEL|SQLCOLUMNS|SQLCOMMIT|SQLCONNECT|' - r'SQLDISCONNECT|SQLEXEC|SQLGETPROP|SQLIDLEDISCONNECT|' - r'SQLMORERESULTS|SQLPREPARE|SQLROLLBACK|SQLSETPROP|' - r'SQLSTRINGCONNECT|SQLTABLES|SQRT|SROWS|STR|STRCONV|' - r'STREXTRACT|STRTOFILE|STRTRAN|STUFF|STUFFC|SUBSTR|' - r'SUBSTRC|SYS|SYSMETRIC|TABLEREVERT|TABLEUPDATE|TAG|' - r'TAGCOUNT|TAGNO|TAN|TARGET|TEXTMERGE|TIME|TRANSFORM|' - r'TRIM|TTOC|TTOD|TXNLEVEL|TXTWIDTH|TYPE|UNBINDEVENTS|' - r'UNIQUE|UPDATED|UPPER|USED|VAL|VARREAD|VARTYPE|VERSION|' - r'WBORDER|WCHILD|WCOLS|WDOCKABLE|WEEK|WEXIST|WFONT|WLAST|' - r'WLCOL|WLROW|WMAXIMUM|WMINIMUM|WONTOP|WOUTPUT|WPARENT|' - r'WREAD|WROWS|WTITLE|WVISIBLE|XMLTOCURSOR|XMLUPDATEGRAM|' - r'YEAR)(?=\s*\()', Name.Function), - - (r'_ALIGNMENT|_ASCIICOLS|_ASCIIROWS|_ASSIST|_BEAUTIFY|_BOX|' - r'_BROWSER|_BUILDER|_CALCMEM|_CALCVALUE|_CLIPTEXT|_CONVERTER|' - r'_COVERAGE|_CUROBJ|_DBLCLICK|_DIARYDATE|_DOS|_FOXDOC|_FOXREF|' - r'_GALLERY|_GENGRAPH|_GENHTML|_GENMENU|_GENPD|_GENSCRN|' - r'_GENXTAB|_GETEXPR|_INCLUDE|_INCSEEK|_INDENT|_LMARGIN|_MAC|' - r'_MENUDESIGNER|_MLINE|_PADVANCE|_PAGENO|_PAGETOTAL|_PBPAGE|' - r'_PCOLNO|_PCOPIES|_PDRIVER|_PDSETUP|_PECODE|_PEJECT|_PEPAGE|' - r'_PLENGTH|_PLINENO|_PLOFFSET|_PPITCH|_PQUALITY|_PRETEXT|' - r'_PSCODE|_PSPACING|_PWAIT|_RMARGIN|_REPORTBUILDER|' - r'_REPORTOUTPUT|_REPORTPREVIEW|_SAMPLES|_SCCTEXT|_SCREEN|' - r'_SHELL|_SPELLCHK|_STARTUP|_TABS|_TALLY|_TASKPANE|_TEXT|' - r'_THROTTLE|_TOOLBOX|_TOOLTIPTIMEOUT|_TRANSPORT|_TRIGGERLEVEL|' - r'_UNIX|_VFP|_WINDOWS|_WIZARD|_WRAP', Keyword.Pseudo), - - (r'THISFORMSET|THISFORM|THIS', Name.Builtin), - - (r'Application|CheckBox|Collection|Column|ComboBox|' - r'CommandButton|CommandGroup|Container|Control|CursorAdapter|' - r'Cursor|Custom|DataEnvironment|DataObject|EditBox|' - r'Empty|Exception|Fields|Files|File|FormSet|Form|FoxCode|' - r'Grid|Header|Hyperlink|Image|Label|Line|ListBox|Objects|' - r'OptionButton|OptionGroup|PageFrame|Page|ProjectHook|Projects|' - r'Project|Relation|ReportListener|Separator|Servers|Server|' - r'Session|Shape|Spinner|Tables|TextBox|Timer|ToolBar|' - r'XMLAdapter|XMLField|XMLTable', Name.Class), - - (r'm\.[a-z_]\w*', Name.Variable), - (r'\.(F|T|AND|OR|NOT|NULL)\.|\b(AND|OR|NOT|NULL)\b', Operator.Word), - - (r'\.(ActiveColumn|ActiveControl|ActiveForm|ActivePage|' - r'ActiveProject|ActiveRow|AddLineFeeds|ADOCodePage|Alias|' - r'Alignment|Align|AllowAddNew|AllowAutoColumnFit|' - r'AllowCellSelection|AllowDelete|AllowHeaderSizing|' - r'AllowInsert|AllowModalMessages|AllowOutput|AllowRowSizing|' - r'AllowSimultaneousFetch|AllowTabs|AllowUpdate|' - r'AlwaysOnBottom|AlwaysOnTop|Anchor|Application|' - r'AutoActivate|AutoCenter|AutoCloseTables|AutoComplete|' - r'AutoCompSource|AutoCompTable|AutoHideScrollBar|' - r'AutoIncrement|AutoOpenTables|AutoRelease|AutoSize|' - r'AutoVerbMenu|AutoYield|BackColor|ForeColor|BackStyle|' - r'BaseClass|BatchUpdateCount|BindControls|BorderColor|' - r'BorderStyle|BorderWidth|BoundColumn|BoundTo|Bound|' - r'BreakOnError|BufferModeOverride|BufferMode|' - r'BuildDateTime|ButtonCount|Buttons|Cancel|Caption|' - r'Centered|Century|ChildAlias|ChildOrder|ChildTable|' - r'ClassLibrary|Class|ClipControls|Closable|CLSID|CodePage|' - r'ColorScheme|ColorSource|ColumnCount|ColumnLines|' - r'ColumnOrder|Columns|ColumnWidths|CommandClauses|' - r'Comment|CompareMemo|ConflictCheckCmd|ConflictCheckType|' - r'ContinuousScroll|ControlBox|ControlCount|Controls|' - r'ControlSource|ConversionFunc|Count|CurrentControl|' - r'CurrentDataSession|CurrentPass|CurrentX|CurrentY|' - r'CursorSchema|CursorSource|CursorStatus|Curvature|' - r'Database|DataSessionID|DataSession|DataSourceType|' - r'DataSource|DataType|DateFormat|DateMark|Debug|' - r'DeclareXMLPrefix|DEClassLibrary|DEClass|DefaultFilePath|' - r'Default|DefOLELCID|DeleteCmdDataSourceType|DeleteCmdDataSource|' - r'DeleteCmd|DeleteMark|Description|Desktop|' - r'Details|DisabledBackColor|DisabledForeColor|' - r'DisabledItemBackColor|DisabledItemForeColor|' - r'DisabledPicture|DisableEncode|DisplayCount|' - r'DisplayValue|Dockable|Docked|DockPosition|' - r'DocumentFile|DownPicture|DragIcon|DragMode|DrawMode|' - r'DrawStyle|DrawWidth|DynamicAlignment|DynamicBackColor|' - r'DynamicForeColor|DynamicCurrentControl|DynamicFontBold|' - r'DynamicFontItalic|DynamicFontStrikethru|' - r'DynamicFontUnderline|DynamicFontName|DynamicFontOutline|' - r'DynamicFontShadow|DynamicFontSize|DynamicInputMask|' - r'DynamicLineHeight|EditorOptions|Enabled|' - r'EnableHyperlinks|Encrypted|ErrorNo|Exclude|Exclusive|' - r'FetchAsNeeded|FetchMemoCmdList|FetchMemoDataSourceType|' - r'FetchMemoDataSource|FetchMemo|FetchSize|' - r'FileClassLibrary|FileClass|FillColor|FillStyle|Filter|' - r'FirstElement|FirstNestedTable|Flags|FontBold|FontItalic|' - r'FontStrikethru|FontUnderline|FontCharSet|FontCondense|' - r'FontExtend|FontName|FontOutline|FontShadow|FontSize|' - r'ForceCloseTag|Format|FormCount|FormattedOutput|Forms|' - r'FractionDigits|FRXDataSession|FullName|GDIPlusGraphics|' - r'GridLineColor|GridLines|GridLineWidth|HalfHeightCaption|' - r'HeaderClassLibrary|HeaderClass|HeaderHeight|Height|' - r'HelpContextID|HideSelection|HighlightBackColor|' - r'HighlightForeColor|HighlightStyle|HighlightRowLineWidth|' - r'HighlightRow|Highlight|HomeDir|Hours|HostName|' - r'HScrollSmallChange|hWnd|Icon|IncrementalSearch|Increment|' - r'InitialSelectedAlias|InputMask|InsertCmdDataSourceType|' - r'InsertCmdDataSource|InsertCmdRefreshCmd|' - r'InsertCmdRefreshFieldList|InsertCmdRefreshKeyFieldList|' - r'InsertCmd|Instancing|IntegralHeight|' - r'Interval|IMEMode|IsAttribute|IsBase64|IsBinary|IsNull|' - r'IsDiffGram|IsLoaded|ItemBackColor,|ItemData|ItemIDData|' - r'ItemTips|IXMLDOMElement|KeyboardHighValue|KeyboardLowValue|' - r'Keyfield|KeyFieldList|KeyPreview|KeySort|LanguageOptions|' - r'LeftColumn|Left|LineContents|LineNo|LineSlant|LinkMaster|' - r'ListCount|ListenerType|ListIndex|ListItemID|ListItem|' - r'List|LockColumnsLeft|LockColumns|LockScreen|MacDesktop|' - r'MainFile|MapN19_4ToCurrency|MapBinary|MapVarchar|Margin|' - r'MaxButton|MaxHeight|MaxLeft|MaxLength|MaxRecords|MaxTop|' - r'MaxWidth|MDIForm|MemberClassLibrary|MemberClass|' - r'MemoWindow|Message|MinButton|MinHeight|MinWidth|' - r'MouseIcon|MousePointer|Movable|MoverBars|MultiSelect|' - r'Name|NestedInto|NewIndex|NewItemID|NextSiblingTable|' - r'NoCpTrans|NoDataOnLoad|NoData|NullDisplay|' - r'NumberOfElements|Object|OLEClass|OLEDragMode|' - r'OLEDragPicture|OLEDropEffects|OLEDropHasData|' - r'OLEDropMode|OLEDropTextInsertion|OLELCID|' - r'OLERequestPendingTimeout|OLEServerBusyRaiseError|' - r'OLEServerBusyTimeout|OLETypeAllowed|OneToMany|' - r'OpenViews|OpenWindow|Optimize|OrderDirection|Order|' - r'OutputPageCount|OutputType|PageCount|PageHeight|' - r'PageNo|PageOrder|Pages|PageTotal|PageWidth|' - r'PanelLink|Panel|ParentAlias|ParentClass|ParentTable|' - r'Parent|Partition|PasswordChar|PictureMargin|' - r'PicturePosition|PictureSpacing|PictureSelectionDisplay|' - r'PictureVal|Picture|Prepared|' - r'PolyPoints|PreserveWhiteSpace|PreviewContainer|' - r'PrintJobName|Procedure|PROCESSID|ProgID|ProjectHookClass|' - r'ProjectHookLibrary|ProjectHook|QuietMode|' - r'ReadCycle|ReadLock|ReadMouse|ReadObject|ReadOnly|' - r'ReadSave|ReadTimeout|RecordMark|RecordSourceType|' - r'RecordSource|RefreshAlias|' - r'RefreshCmdDataSourceType|RefreshCmdDataSource|RefreshCmd|' - r'RefreshIgnoreFieldList|RefreshTimeStamp|RelationalExpr|' - r'RelativeColumn|RelativeRow|ReleaseType|Resizable|' - r'RespectCursorCP|RespectNesting|RightToLeft|RotateFlip|' - r'Rotation|RowColChange|RowHeight|RowSourceType|' - r'RowSource|ScaleMode|SCCProvider|SCCStatus|ScrollBars|' - r'Seconds|SelectCmd|SelectedID|' - r'SelectedItemBackColor|SelectedItemForeColor|Selected|' - r'SelectionNamespaces|SelectOnEntry|SelLength|SelStart|' - r'SelText|SendGDIPlusImage|SendUpdates|ServerClassLibrary|' - r'ServerClass|ServerHelpFile|ServerName|' - r'ServerProject|ShowTips|ShowInTaskbar|ShowWindow|' - r'Sizable|SizeBox|SOM|Sorted|Sparse|SpecialEffect|' - r'SpinnerHighValue|SpinnerLowValue|SplitBar|StackLevel|' - r'StartMode|StatusBarText|StatusBar|Stretch|StrictDateEntry|' - r'Style|TabIndex|Tables|TabOrientation|Tabs|TabStop|' - r'TabStretch|TabStyle|Tag|TerminateRead|Text|Themes|' - r'ThreadID|TimestampFieldList|TitleBar|ToolTipText|' - r'TopIndex|TopItemID|Top|TwoPassProcess|TypeLibCLSID|' - r'TypeLibDesc|TypeLibName|Type|Unicode|UpdatableFieldList|' - r'UpdateCmdDataSourceType|UpdateCmdDataSource|' - r'UpdateCmdRefreshCmd|UpdateCmdRefreshFieldList|' - r'UpdateCmdRefreshKeyFieldList|UpdateCmd|' - r'UpdateGramSchemaLocation|UpdateGram|UpdateNameList|UpdateType|' - r'UseCodePage|UseCursorSchema|UseDeDataSource|UseMemoSize|' - r'UserValue|UseTransactions|UTF8Encoded|Value|VersionComments|' - r'VersionCompany|VersionCopyright|VersionDescription|' - r'VersionNumber|VersionProduct|VersionTrademarks|Version|' - r'VFPXMLProgID|ViewPortHeight|ViewPortLeft|' - r'ViewPortTop|ViewPortWidth|VScrollSmallChange|View|Visible|' - r'VisualEffect|WhatsThisButton|WhatsThisHelpID|WhatsThisHelp|' - r'WhereType|Width|WindowList|WindowState|WindowType|WordWrap|' - r'WrapCharInCDATA|WrapInCDATA|WrapMemoInCDATA|XMLAdapter|' - r'XMLConstraints|XMLNameIsXPath|XMLNamespace|XMLName|' - r'XMLPrefix|XMLSchemaLocation|XMLTable|XMLType|' - r'XSDfractionDigits|XSDmaxLength|XSDtotalDigits|' - r'XSDtype|ZoomBox)', Name.Attribute), - - (r'\.(ActivateCell|AddColumn|AddItem|AddListItem|AddObject|' - r'AddProperty|AddTableSchema|AddToSCC|Add|' - r'ApplyDiffgram|Attach|AutoFit|AutoOpen|Box|Build|' - r'CancelReport|ChangesToCursor|CheckIn|CheckOut|Circle|' - r'CleanUp|ClearData|ClearStatus|Clear|CloneObject|CloseTables|' - r'Close|Cls|CursorAttach|CursorDetach|CursorFill|' - r'CursorRefresh|DataToClip|DelayedMemoFetch|DeleteColumn|' - r'Dock|DoMessage|DoScroll|DoStatus|DoVerb|Drag|Draw|Eval|' - r'GetData|GetDockState|GetFormat|GetKey|GetLatestVersion|' - r'GetPageHeight|GetPageWidth|Help|Hide|IncludePageInOutput|' - r'IndexToItemID|ItemIDToIndex|Item|LoadXML|Line|Modify|' - r'MoveItem|Move|Nest|OLEDrag|OnPreviewClose|OutputPage|' - r'Point|Print|PSet|Quit|ReadExpression|ReadMethod|' - r'RecordRefresh|Refresh|ReleaseXML|Release|RemoveFromSCC|' - r'RemoveItem|RemoveListItem|RemoveObject|Remove|' - r'Render|Requery|RequestData|ResetToDefault|Reset|Run|' - r'SaveAsClass|SaveAs|SetAll|SetData|SetFocus|SetFormat|' - r'SetMain|SetVar|SetViewPort|ShowWhatsThis|Show|' - r'SupportsListenerType|TextHeight|TextWidth|ToCursor|' - r'ToXML|UndoCheckOut|Unnest|UpdateStatus|WhatsThisMode|' - r'WriteExpression|WriteMethod|ZOrder)', Name.Function), - - (r'\.(Activate|AdjustObjectSize|AfterBand|AfterBuild|' - r'AfterCloseTables|AfterCursorAttach|AfterCursorClose|' - r'AfterCursorDetach|AfterCursorFill|AfterCursorRefresh|' - r'AfterCursorUpdate|AfterDelete|AfterInsert|' - r'AfterRecordRefresh|AfterUpdate|AfterDock|AfterReport|' - r'AfterRowColChange|BeforeBand|BeforeCursorAttach|' - r'BeforeCursorClose|BeforeCursorDetach|BeforeCursorFill|' - r'BeforeCursorRefresh|BeforeCursorUpdate|BeforeDelete|' - r'BeforeInsert|BeforeDock|BeforeOpenTables|' - r'BeforeRecordRefresh|BeforeReport|BeforeRowColChange|' - r'BeforeUpdate|Click|dbc_Activate|dbc_AfterAddTable|' - r'dbc_AfterAppendProc|dbc_AfterCloseTable|dbc_AfterCopyProc|' - r'dbc_AfterCreateConnection|dbc_AfterCreateOffline|' - r'dbc_AfterCreateTable|dbc_AfterCreateView|dbc_AfterDBGetProp|' - r'dbc_AfterDBSetProp|dbc_AfterDeleteConnection|' - r'dbc_AfterDropOffline|dbc_AfterDropTable|' - r'dbc_AfterModifyConnection|dbc_AfterModifyProc|' - r'dbc_AfterModifyTable|dbc_AfterModifyView|dbc_AfterOpenTable|' - r'dbc_AfterRemoveTable|dbc_AfterRenameConnection|' - r'dbc_AfterRenameTable|dbc_AfterRenameView|' - r'dbc_AfterValidateData|dbc_BeforeAddTable|' - r'dbc_BeforeAppendProc|dbc_BeforeCloseTable|' - r'dbc_BeforeCopyProc|dbc_BeforeCreateConnection|' - r'dbc_BeforeCreateOffline|dbc_BeforeCreateTable|' - r'dbc_BeforeCreateView|dbc_BeforeDBGetProp|' - r'dbc_BeforeDBSetProp|dbc_BeforeDeleteConnection|' - r'dbc_BeforeDropOffline|dbc_BeforeDropTable|' - r'dbc_BeforeModifyConnection|dbc_BeforeModifyProc|' - r'dbc_BeforeModifyTable|dbc_BeforeModifyView|' - r'dbc_BeforeOpenTable|dbc_BeforeRemoveTable|' - r'dbc_BeforeRenameConnection|dbc_BeforeRenameTable|' - r'dbc_BeforeRenameView|dbc_BeforeValidateData|' - r'dbc_CloseData|dbc_Deactivate|dbc_ModifyData|dbc_OpenData|' - r'dbc_PackData|DblClick|Deactivate|Deleted|Destroy|DoCmd|' - r'DownClick|DragDrop|DragOver|DropDown|ErrorMessage|Error|' - r'EvaluateContents|GotFocus|Init|InteractiveChange|KeyPress|' - r'LoadReport|Load|LostFocus|Message|MiddleClick|MouseDown|' - r'MouseEnter|MouseLeave|MouseMove|MouseUp|MouseWheel|Moved|' - r'OLECompleteDrag|OLEDragOver|OLEGiveFeedback|OLESetData|' - r'OLEStartDrag|OnMoveItem|Paint|ProgrammaticChange|' - r'QueryAddFile|QueryModifyFile|QueryNewFile|QueryRemoveFile|' - r'QueryRunFile|QueryUnload|RangeHigh|RangeLow|ReadActivate|' - r'ReadDeactivate|ReadShow|ReadValid|ReadWhen|Resize|' - r'RightClick|SCCInit|SCCDestroy|Scrolled|Timer|UIEnable|' - r'UnDock|UnloadReport|Unload|UpClick|Valid|When)', Name.Function), - - (r'\s+', Text), + (r"(^\s*\*|&&|&&).*?\n", Comment.Single), + ( + r"(ABS|ACLASS|ACOPY|ACOS|ADATABASES|ADBOBJECTS|ADDBS|" + r"ADDPROPERTY|ADEL|ADIR|ADLLS|ADOCKSTATE|AELEMENT|AERROR|" + r"AEVENTS|AFIELDS|AFONT|AGETCLASS|AGETFILEVERSION|AINS|" + r"AINSTANCE|ALANGUAGE|ALEN|ALIAS|ALINES|ALLTRIM|" + r"AMEMBERS|AMOUSEOBJ|ANETRESOURCES|APRINTERS|APROCINFO|" + r"ASC|ASCAN|ASELOBJ|ASESSIONS|ASIN|ASORT|ASQLHANDLES|" + r"ASTACKINFO|ASUBSCRIPT|AT|AT_C|ATAGINFO|ATAN|ATC|ATCC|" + r"ATCLINE|ATLINE|ATN2|AUSED|AVCXCLASSES|BAR|BARCOUNT|" + r"BARPROMPT|BETWEEN|BINDEVENT|BINTOC|BITAND|BITCLEAR|" + r"BITLSHIFT|BITNOT|BITOR|BITRSHIFT|BITSET|BITTEST|BITXOR|" + r"BOF|CANDIDATE|CAPSLOCK|CAST|CDOW|CDX|CEILING|CHR|CHRSAW|" + r"CHRTRAN|CHRTRANC|CLEARRESULTSET|CMONTH|CNTBAR|CNTPAD|COL|" + r"COM|Functions|COMARRAY|COMCLASSINFO|COMPOBJ|COMPROP|" + r"COMRETURNERROR|COS|CPCONVERT|CPCURRENT|CPDBF|CREATEBINARY|" + r"CREATEOBJECT|CREATEOBJECTEX|CREATEOFFLINE|CTOBIN|CTOD|" + r"CTOT|CURDIR|CURSORGETPROP|CURSORSETPROP|CURSORTOXML|" + r"CURVAL|DATE|DATETIME|DAY|DBC|DBF|DBGETPROP|DBSETPROP|" + r"DBUSED|DDEAbortTrans|DDEAdvise|DDEEnabled|DDEExecute|" + r"DDEInitiate|DDELastError|DDEPoke|DDERequest|DDESetOption|" + r"DDESetService|DDESetTopic|DDETerminate|DEFAULTEXT|" + r"DELETED|DESCENDING|DIFFERENCE|DIRECTORY|DISKSPACE|" + r"DisplayPath|DMY|DODEFAULT|DOW|DRIVETYPE|DROPOFFLINE|" + r"DTOC|DTOR|DTOS|DTOT|EDITSOURCE|EMPTY|EOF|ERROR|EVAL(UATE)?|" + r"EVENTHANDLER|EVL|EXECSCRIPT|EXP|FCHSIZE|FCLOSE|FCOUNT|" + r"FCREATE|FDATE|FEOF|FERROR|FFLUSH|FGETS|FIELD|FILE|" + r"FILETOSTR|FILTER|FKLABEL|FKMAX|FLDLIST|FLOCK|FLOOR|" + r"FONTMETRIC|FOPEN|FOR|FORCEEXT|FORCEPATH|FOUND|FPUTS|" + r"FREAD|FSEEK|FSIZE|FTIME|FULLPATH|FV|FWRITE|" + r"GETAUTOINCVALUE|GETBAR|GETCOLOR|GETCP|GETDIR|GETENV|" + r"GETFILE|GETFLDSTATE|GETFONT|GETINTERFACE|" + r"GETNEXTMODIFIED|GETOBJECT|GETPAD|GETPEM|GETPICT|" + r"GETPRINTER|GETRESULTSET|GETWORDCOUNT|GETWORDNUM|" + r"GETCURSORADAPTER|GOMONTH|HEADER|HOME|HOUR|ICASE|" + r"IDXCOLLATE|IIF|IMESTATUS|INDBC|INDEXSEEK|INKEY|INLIST|" + r"INPUTBOX|INSMODE|INT|ISALPHA|ISBLANK|ISCOLOR|ISDIGIT|" + r"ISEXCLUSIVE|ISFLOCKED|ISLEADBYTE|ISLOWER|ISMEMOFETCHED|" + r"ISMOUSE|ISNULL|ISPEN|ISREADONLY|ISRLOCKED|" + r"ISTRANSACTABLE|ISUPPER|JUSTDRIVE|JUSTEXT|JUSTFNAME|" + r"JUSTPATH|JUSTSTEM|KEY|KEYMATCH|LASTKEY|LEFT|LEFTC|LEN|" + r"LENC|LIKE|LIKEC|LINENO|LOADPICTURE|LOCFILE|LOCK|LOG|" + r"LOG10|LOOKUP|LOWER|LTRIM|LUPDATE|MAKETRANSACTABLE|MAX|" + r"MCOL|MDOWN|MDX|MDY|MEMLINES|MEMORY|MENU|MESSAGE|" + r"MESSAGEBOX|MIN|MINUTE|MLINE|MOD|MONTH|MRKBAR|MRKPAD|" + r"MROW|MTON|MWINDOW|NDX|NEWOBJECT|NORMALIZE|NTOM|NUMLOCK|" + r"NVL|OBJNUM|OBJTOCLIENT|OBJVAR|OCCURS|OEMTOANSI|OLDVAL|" + r"ON|ORDER|OS|PAD|PADL|PARAMETERS|PAYMENT|PCOL|PCOUNT|" + r"PEMSTATUS|PI|POPUP|PRIMARY|PRINTSTATUS|PRMBAR|PRMPAD|" + r"PROGRAM|PROMPT|PROPER|PROW|PRTINFO|PUTFILE|PV|QUARTER|" + r"RAISEEVENT|RAND|RAT|RATC|RATLINE|RDLEVEL|READKEY|RECCOUNT|" + r"RECNO|RECSIZE|REFRESH|RELATION|REPLICATE|REQUERY|RGB|" + r"RGBSCHEME|RIGHT|RIGHTC|RLOCK|ROUND|ROW|RTOD|RTRIM|" + r"SAVEPICTURE|SCHEME|SCOLS|SEC|SECONDS|SEEK|SELECT|SET|" + r"SETFLDSTATE|SETRESULTSET|SIGN|SIN|SKPBAR|SKPPAD|SOUNDEX|" + r"SPACE|SQLCANCEL|SQLCOLUMNS|SQLCOMMIT|SQLCONNECT|" + r"SQLDISCONNECT|SQLEXEC|SQLGETPROP|SQLIDLEDISCONNECT|" + r"SQLMORERESULTS|SQLPREPARE|SQLROLLBACK|SQLSETPROP|" + r"SQLSTRINGCONNECT|SQLTABLES|SQRT|SROWS|STR|STRCONV|" + r"STREXTRACT|STRTOFILE|STRTRAN|STUFF|STUFFC|SUBSTR|" + r"SUBSTRC|SYS|SYSMETRIC|TABLEREVERT|TABLEUPDATE|TAG|" + r"TAGCOUNT|TAGNO|TAN|TARGET|TEXTMERGE|TIME|TRANSFORM|" + r"TRIM|TTOC|TTOD|TXNLEVEL|TXTWIDTH|TYPE|UNBINDEVENTS|" + r"UNIQUE|UPDATED|UPPER|USED|VAL|VARREAD|VARTYPE|VERSION|" + r"WBORDER|WCHILD|WCOLS|WDOCKABLE|WEEK|WEXIST|WFONT|WLAST|" + r"WLCOL|WLROW|WMAXIMUM|WMINIMUM|WONTOP|WOUTPUT|WPARENT|" + r"WREAD|WROWS|WTITLE|WVISIBLE|XMLTOCURSOR|XMLUPDATEGRAM|" + r"YEAR)(?=\s*\()", + Name.Function, + ), + ( + r"_ALIGNMENT|_ASCIICOLS|_ASCIIROWS|_ASSIST|_BEAUTIFY|_BOX|" + r"_BROWSER|_BUILDER|_CALCMEM|_CALCVALUE|_CLIPTEXT|_CONVERTER|" + r"_COVERAGE|_CUROBJ|_DBLCLICK|_DIARYDATE|_DOS|_FOXDOC|_FOXREF|" + r"_GALLERY|_GENGRAPH|_GENHTML|_GENMENU|_GENPD|_GENSCRN|" + r"_GENXTAB|_GETEXPR|_INCLUDE|_INCSEEK|_INDENT|_LMARGIN|_MAC|" + r"_MENUDESIGNER|_MLINE|_PADVANCE|_PAGENO|_PAGETOTAL|_PBPAGE|" + r"_PCOLNO|_PCOPIES|_PDRIVER|_PDSETUP|_PECODE|_PEJECT|_PEPAGE|" + r"_PLENGTH|_PLINENO|_PLOFFSET|_PPITCH|_PQUALITY|_PRETEXT|" + r"_PSCODE|_PSPACING|_PWAIT|_RMARGIN|_REPORTBUILDER|" + r"_REPORTOUTPUT|_REPORTPREVIEW|_SAMPLES|_SCCTEXT|_SCREEN|" + r"_SHELL|_SPELLCHK|_STARTUP|_TABS|_TALLY|_TASKPANE|_TEXT|" + r"_THROTTLE|_TOOLBOX|_TOOLTIPTIMEOUT|_TRANSPORT|_TRIGGERLEVEL|" + r"_UNIX|_VFP|_WINDOWS|_WIZARD|_WRAP", + Keyword.Pseudo, + ), + (r"THISFORMSET|THISFORM|THIS", Name.Builtin), + ( + r"Application|CheckBox|Collection|Column|ComboBox|" + r"CommandButton|CommandGroup|Container|Control|CursorAdapter|" + r"Cursor|Custom|DataEnvironment|DataObject|EditBox|" + r"Empty|Exception|Fields|Files|File|FormSet|Form|FoxCode|" + r"Grid|Header|Hyperlink|Image|Label|Line|ListBox|Objects|" + r"OptionButton|OptionGroup|PageFrame|Page|ProjectHook|Projects|" + r"Project|Relation|ReportListener|Separator|Servers|Server|" + r"Session|Shape|Spinner|Tables|TextBox|Timer|ToolBar|" + r"XMLAdapter|XMLField|XMLTable", + Name.Class, + ), + (r"m\.[a-z_]\w*", Name.Variable), + (r"\.(F|T|AND|OR|NOT|NULL)\.|\b(AND|OR|NOT|NULL)\b", Operator.Word), + ( + r"\.(ActiveColumn|ActiveControl|ActiveForm|ActivePage|" + r"ActiveProject|ActiveRow|AddLineFeeds|ADOCodePage|Alias|" + r"Alignment|Align|AllowAddNew|AllowAutoColumnFit|" + r"AllowCellSelection|AllowDelete|AllowHeaderSizing|" + r"AllowInsert|AllowModalMessages|AllowOutput|AllowRowSizing|" + r"AllowSimultaneousFetch|AllowTabs|AllowUpdate|" + r"AlwaysOnBottom|AlwaysOnTop|Anchor|Application|" + r"AutoActivate|AutoCenter|AutoCloseTables|AutoComplete|" + r"AutoCompSource|AutoCompTable|AutoHideScrollBar|" + r"AutoIncrement|AutoOpenTables|AutoRelease|AutoSize|" + r"AutoVerbMenu|AutoYield|BackColor|ForeColor|BackStyle|" + r"BaseClass|BatchUpdateCount|BindControls|BorderColor|" + r"BorderStyle|BorderWidth|BoundColumn|BoundTo|Bound|" + r"BreakOnError|BufferModeOverride|BufferMode|" + r"BuildDateTime|ButtonCount|Buttons|Cancel|Caption|" + r"Centered|Century|ChildAlias|ChildOrder|ChildTable|" + r"ClassLibrary|Class|ClipControls|Closable|CLSID|CodePage|" + r"ColorScheme|ColorSource|ColumnCount|ColumnLines|" + r"ColumnOrder|Columns|ColumnWidths|CommandClauses|" + r"Comment|CompareMemo|ConflictCheckCmd|ConflictCheckType|" + r"ContinuousScroll|ControlBox|ControlCount|Controls|" + r"ControlSource|ConversionFunc|Count|CurrentControl|" + r"CurrentDataSession|CurrentPass|CurrentX|CurrentY|" + r"CursorSchema|CursorSource|CursorStatus|Curvature|" + r"Database|DataSessionID|DataSession|DataSourceType|" + r"DataSource|DataType|DateFormat|DateMark|Debug|" + r"DeclareXMLPrefix|DEClassLibrary|DEClass|DefaultFilePath|" + r"Default|DefOLELCID|DeleteCmdDataSourceType|DeleteCmdDataSource|" + r"DeleteCmd|DeleteMark|Description|Desktop|" + r"Details|DisabledBackColor|DisabledForeColor|" + r"DisabledItemBackColor|DisabledItemForeColor|" + r"DisabledPicture|DisableEncode|DisplayCount|" + r"DisplayValue|Dockable|Docked|DockPosition|" + r"DocumentFile|DownPicture|DragIcon|DragMode|DrawMode|" + r"DrawStyle|DrawWidth|DynamicAlignment|DynamicBackColor|" + r"DynamicForeColor|DynamicCurrentControl|DynamicFontBold|" + r"DynamicFontItalic|DynamicFontStrikethru|" + r"DynamicFontUnderline|DynamicFontName|DynamicFontOutline|" + r"DynamicFontShadow|DynamicFontSize|DynamicInputMask|" + r"DynamicLineHeight|EditorOptions|Enabled|" + r"EnableHyperlinks|Encrypted|ErrorNo|Exclude|Exclusive|" + r"FetchAsNeeded|FetchMemoCmdList|FetchMemoDataSourceType|" + r"FetchMemoDataSource|FetchMemo|FetchSize|" + r"FileClassLibrary|FileClass|FillColor|FillStyle|Filter|" + r"FirstElement|FirstNestedTable|Flags|FontBold|FontItalic|" + r"FontStrikethru|FontUnderline|FontCharSet|FontCondense|" + r"FontExtend|FontName|FontOutline|FontShadow|FontSize|" + r"ForceCloseTag|Format|FormCount|FormattedOutput|Forms|" + r"FractionDigits|FRXDataSession|FullName|GDIPlusGraphics|" + r"GridLineColor|GridLines|GridLineWidth|HalfHeightCaption|" + r"HeaderClassLibrary|HeaderClass|HeaderHeight|Height|" + r"HelpContextID|HideSelection|HighlightBackColor|" + r"HighlightForeColor|HighlightStyle|HighlightRowLineWidth|" + r"HighlightRow|Highlight|HomeDir|Hours|HostName|" + r"HScrollSmallChange|hWnd|Icon|IncrementalSearch|Increment|" + r"InitialSelectedAlias|InputMask|InsertCmdDataSourceType|" + r"InsertCmdDataSource|InsertCmdRefreshCmd|" + r"InsertCmdRefreshFieldList|InsertCmdRefreshKeyFieldList|" + r"InsertCmd|Instancing|IntegralHeight|" + r"Interval|IMEMode|IsAttribute|IsBase64|IsBinary|IsNull|" + r"IsDiffGram|IsLoaded|ItemBackColor,|ItemData|ItemIDData|" + r"ItemTips|IXMLDOMElement|KeyboardHighValue|KeyboardLowValue|" + r"Keyfield|KeyFieldList|KeyPreview|KeySort|LanguageOptions|" + r"LeftColumn|Left|LineContents|LineNo|LineSlant|LinkMaster|" + r"ListCount|ListenerType|ListIndex|ListItemID|ListItem|" + r"List|LockColumnsLeft|LockColumns|LockScreen|MacDesktop|" + r"MainFile|MapN19_4ToCurrency|MapBinary|MapVarchar|Margin|" + r"MaxButton|MaxHeight|MaxLeft|MaxLength|MaxRecords|MaxTop|" + r"MaxWidth|MDIForm|MemberClassLibrary|MemberClass|" + r"MemoWindow|Message|MinButton|MinHeight|MinWidth|" + r"MouseIcon|MousePointer|Movable|MoverBars|MultiSelect|" + r"Name|NestedInto|NewIndex|NewItemID|NextSiblingTable|" + r"NoCpTrans|NoDataOnLoad|NoData|NullDisplay|" + r"NumberOfElements|Object|OLEClass|OLEDragMode|" + r"OLEDragPicture|OLEDropEffects|OLEDropHasData|" + r"OLEDropMode|OLEDropTextInsertion|OLELCID|" + r"OLERequestPendingTimeout|OLEServerBusyRaiseError|" + r"OLEServerBusyTimeout|OLETypeAllowed|OneToMany|" + r"OpenViews|OpenWindow|Optimize|OrderDirection|Order|" + r"OutputPageCount|OutputType|PageCount|PageHeight|" + r"PageNo|PageOrder|Pages|PageTotal|PageWidth|" + r"PanelLink|Panel|ParentAlias|ParentClass|ParentTable|" + r"Parent|Partition|PasswordChar|PictureMargin|" + r"PicturePosition|PictureSpacing|PictureSelectionDisplay|" + r"PictureVal|Picture|Prepared|" + r"PolyPoints|PreserveWhiteSpace|PreviewContainer|" + r"PrintJobName|Procedure|PROCESSID|ProgID|ProjectHookClass|" + r"ProjectHookLibrary|ProjectHook|QuietMode|" + r"ReadCycle|ReadLock|ReadMouse|ReadObject|ReadOnly|" + r"ReadSave|ReadTimeout|RecordMark|RecordSourceType|" + r"RecordSource|RefreshAlias|" + r"RefreshCmdDataSourceType|RefreshCmdDataSource|RefreshCmd|" + r"RefreshIgnoreFieldList|RefreshTimeStamp|RelationalExpr|" + r"RelativeColumn|RelativeRow|ReleaseType|Resizable|" + r"RespectCursorCP|RespectNesting|RightToLeft|RotateFlip|" + r"Rotation|RowColChange|RowHeight|RowSourceType|" + r"RowSource|ScaleMode|SCCProvider|SCCStatus|ScrollBars|" + r"Seconds|SelectCmd|SelectedID|" + r"SelectedItemBackColor|SelectedItemForeColor|Selected|" + r"SelectionNamespaces|SelectOnEntry|SelLength|SelStart|" + r"SelText|SendGDIPlusImage|SendUpdates|ServerClassLibrary|" + r"ServerClass|ServerHelpFile|ServerName|" + r"ServerProject|ShowTips|ShowInTaskbar|ShowWindow|" + r"Sizable|SizeBox|SOM|Sorted|Sparse|SpecialEffect|" + r"SpinnerHighValue|SpinnerLowValue|SplitBar|StackLevel|" + r"StartMode|StatusBarText|StatusBar|Stretch|StrictDateEntry|" + r"Style|TabIndex|Tables|TabOrientation|Tabs|TabStop|" + r"TabStretch|TabStyle|Tag|TerminateRead|Text|Themes|" + r"ThreadID|TimestampFieldList|TitleBar|ToolTipText|" + r"TopIndex|TopItemID|Top|TwoPassProcess|TypeLibCLSID|" + r"TypeLibDesc|TypeLibName|Type|Unicode|UpdatableFieldList|" + r"UpdateCmdDataSourceType|UpdateCmdDataSource|" + r"UpdateCmdRefreshCmd|UpdateCmdRefreshFieldList|" + r"UpdateCmdRefreshKeyFieldList|UpdateCmd|" + r"UpdateGramSchemaLocation|UpdateGram|UpdateNameList|UpdateType|" + r"UseCodePage|UseCursorSchema|UseDeDataSource|UseMemoSize|" + r"UserValue|UseTransactions|UTF8Encoded|Value|VersionComments|" + r"VersionCompany|VersionCopyright|VersionDescription|" + r"VersionNumber|VersionProduct|VersionTrademarks|Version|" + r"VFPXMLProgID|ViewPortHeight|ViewPortLeft|" + r"ViewPortTop|ViewPortWidth|VScrollSmallChange|View|Visible|" + r"VisualEffect|WhatsThisButton|WhatsThisHelpID|WhatsThisHelp|" + r"WhereType|Width|WindowList|WindowState|WindowType|WordWrap|" + r"WrapCharInCDATA|WrapInCDATA|WrapMemoInCDATA|XMLAdapter|" + r"XMLConstraints|XMLNameIsXPath|XMLNamespace|XMLName|" + r"XMLPrefix|XMLSchemaLocation|XMLTable|XMLType|" + r"XSDfractionDigits|XSDmaxLength|XSDtotalDigits|" + r"XSDtype|ZoomBox)", + Name.Attribute, + ), + ( + r"\.(ActivateCell|AddColumn|AddItem|AddListItem|AddObject|" + r"AddProperty|AddTableSchema|AddToSCC|Add|" + r"ApplyDiffgram|Attach|AutoFit|AutoOpen|Box|Build|" + r"CancelReport|ChangesToCursor|CheckIn|CheckOut|Circle|" + r"CleanUp|ClearData|ClearStatus|Clear|CloneObject|CloseTables|" + r"Close|Cls|CursorAttach|CursorDetach|CursorFill|" + r"CursorRefresh|DataToClip|DelayedMemoFetch|DeleteColumn|" + r"Dock|DoMessage|DoScroll|DoStatus|DoVerb|Drag|Draw|Eval|" + r"GetData|GetDockState|GetFormat|GetKey|GetLatestVersion|" + r"GetPageHeight|GetPageWidth|Help|Hide|IncludePageInOutput|" + r"IndexToItemID|ItemIDToIndex|Item|LoadXML|Line|Modify|" + r"MoveItem|Move|Nest|OLEDrag|OnPreviewClose|OutputPage|" + r"Point|Print|PSet|Quit|ReadExpression|ReadMethod|" + r"RecordRefresh|Refresh|ReleaseXML|Release|RemoveFromSCC|" + r"RemoveItem|RemoveListItem|RemoveObject|Remove|" + r"Render|Requery|RequestData|ResetToDefault|Reset|Run|" + r"SaveAsClass|SaveAs|SetAll|SetData|SetFocus|SetFormat|" + r"SetMain|SetVar|SetViewPort|ShowWhatsThis|Show|" + r"SupportsListenerType|TextHeight|TextWidth|ToCursor|" + r"ToXML|UndoCheckOut|Unnest|UpdateStatus|WhatsThisMode|" + r"WriteExpression|WriteMethod|ZOrder)", + Name.Function, + ), + ( + r"\.(Activate|AdjustObjectSize|AfterBand|AfterBuild|" + r"AfterCloseTables|AfterCursorAttach|AfterCursorClose|" + r"AfterCursorDetach|AfterCursorFill|AfterCursorRefresh|" + r"AfterCursorUpdate|AfterDelete|AfterInsert|" + r"AfterRecordRefresh|AfterUpdate|AfterDock|AfterReport|" + r"AfterRowColChange|BeforeBand|BeforeCursorAttach|" + r"BeforeCursorClose|BeforeCursorDetach|BeforeCursorFill|" + r"BeforeCursorRefresh|BeforeCursorUpdate|BeforeDelete|" + r"BeforeInsert|BeforeDock|BeforeOpenTables|" + r"BeforeRecordRefresh|BeforeReport|BeforeRowColChange|" + r"BeforeUpdate|Click|dbc_Activate|dbc_AfterAddTable|" + r"dbc_AfterAppendProc|dbc_AfterCloseTable|dbc_AfterCopyProc|" + r"dbc_AfterCreateConnection|dbc_AfterCreateOffline|" + r"dbc_AfterCreateTable|dbc_AfterCreateView|dbc_AfterDBGetProp|" + r"dbc_AfterDBSetProp|dbc_AfterDeleteConnection|" + r"dbc_AfterDropOffline|dbc_AfterDropTable|" + r"dbc_AfterModifyConnection|dbc_AfterModifyProc|" + r"dbc_AfterModifyTable|dbc_AfterModifyView|dbc_AfterOpenTable|" + r"dbc_AfterRemoveTable|dbc_AfterRenameConnection|" + r"dbc_AfterRenameTable|dbc_AfterRenameView|" + r"dbc_AfterValidateData|dbc_BeforeAddTable|" + r"dbc_BeforeAppendProc|dbc_BeforeCloseTable|" + r"dbc_BeforeCopyProc|dbc_BeforeCreateConnection|" + r"dbc_BeforeCreateOffline|dbc_BeforeCreateTable|" + r"dbc_BeforeCreateView|dbc_BeforeDBGetProp|" + r"dbc_BeforeDBSetProp|dbc_BeforeDeleteConnection|" + r"dbc_BeforeDropOffline|dbc_BeforeDropTable|" + r"dbc_BeforeModifyConnection|dbc_BeforeModifyProc|" + r"dbc_BeforeModifyTable|dbc_BeforeModifyView|" + r"dbc_BeforeOpenTable|dbc_BeforeRemoveTable|" + r"dbc_BeforeRenameConnection|dbc_BeforeRenameTable|" + r"dbc_BeforeRenameView|dbc_BeforeValidateData|" + r"dbc_CloseData|dbc_Deactivate|dbc_ModifyData|dbc_OpenData|" + r"dbc_PackData|DblClick|Deactivate|Deleted|Destroy|DoCmd|" + r"DownClick|DragDrop|DragOver|DropDown|ErrorMessage|Error|" + r"EvaluateContents|GotFocus|Init|InteractiveChange|KeyPress|" + r"LoadReport|Load|LostFocus|Message|MiddleClick|MouseDown|" + r"MouseEnter|MouseLeave|MouseMove|MouseUp|MouseWheel|Moved|" + r"OLECompleteDrag|OLEDragOver|OLEGiveFeedback|OLESetData|" + r"OLEStartDrag|OnMoveItem|Paint|ProgrammaticChange|" + r"QueryAddFile|QueryModifyFile|QueryNewFile|QueryRemoveFile|" + r"QueryRunFile|QueryUnload|RangeHigh|RangeLow|ReadActivate|" + r"ReadDeactivate|ReadShow|ReadValid|ReadWhen|Resize|" + r"RightClick|SCCInit|SCCDestroy|Scrolled|Timer|UIEnable|" + r"UnDock|UnloadReport|Unload|UpClick|Valid|When)", + Name.Function, + ), + (r"\s+", Text), # everything else is not colored - (r'.', Text), + (r".", Text), ], - 'newline': [ - (r'\*.*?$', Comment.Single, '#pop'), - (r'(ACCEPT|ACTIVATE\s*MENU|ACTIVATE\s*POPUP|ACTIVATE\s*SCREEN|' - r'ACTIVATE\s*WINDOW|APPEND|APPEND\s*FROM|APPEND\s*FROM\s*ARRAY|' - r'APPEND\s*GENERAL|APPEND\s*MEMO|ASSIST|AVERAGE|BLANK|BROWSE|' - r'BUILD\s*APP|BUILD\s*EXE|BUILD\s*PROJECT|CALCULATE|CALL|' - r'CANCEL|CHANGE|CLEAR|CLOSE|CLOSE\s*MEMO|COMPILE|CONTINUE|' - r'COPY\s*FILE|COPY\s*INDEXES|COPY\s*MEMO|COPY\s*STRUCTURE|' - r'COPY\s*STRUCTURE\s*EXTENDED|COPY\s*TAG|COPY\s*TO|' - r'COPY\s*TO\s*ARRAY|COUNT|CREATE|CREATE\s*COLOR\s*SET|' - r'CREATE\s*CURSOR|CREATE\s*FROM|CREATE\s*LABEL|CREATE\s*MENU|' - r'CREATE\s*PROJECT|CREATE\s*QUERY|CREATE\s*REPORT|' - r'CREATE\s*SCREEN|CREATE\s*TABLE|CREATE\s*VIEW|DDE|' - r'DEACTIVATE\s*MENU|DEACTIVATE\s*POPUP|DEACTIVATE\s*WINDOW|' - r'DECLARE|DEFINE\s*BAR|DEFINE\s*BOX|DEFINE\s*MENU|' - r'DEFINE\s*PAD|DEFINE\s*POPUP|DEFINE\s*WINDOW|DELETE|' - r'DELETE\s*FILE|DELETE\s*TAG|DIMENSION|DIRECTORY|DISPLAY|' - r'DISPLAY\s*FILES|DISPLAY\s*MEMORY|DISPLAY\s*STATUS|' - r'DISPLAY\s*STRUCTURE|DO|EDIT|EJECT|EJECT\s*PAGE|ERASE|' - r'EXIT|EXPORT|EXTERNAL|FILER|FIND|FLUSH|FUNCTION|GATHER|' - r'GETEXPR|GO|GOTO|HELP|HIDE\s*MENU|HIDE\s*POPUP|' - r'HIDE\s*WINDOW|IMPORT|INDEX|INPUT|INSERT|JOIN|KEYBOARD|' - r'LABEL|LIST|LOAD|LOCATE|LOOP|MENU|MENU\s*TO|MODIFY\s*COMMAND|' - r'MODIFY\s*FILE|MODIFY\s*GENERAL|MODIFY\s*LABEL|MODIFY\s*MEMO|' - r'MODIFY\s*MENU|MODIFY\s*PROJECT|MODIFY\s*QUERY|' - r'MODIFY\s*REPORT|MODIFY\s*SCREEN|MODIFY\s*STRUCTURE|' - r'MODIFY\s*WINDOW|MOVE\s*POPUP|MOVE\s*WINDOW|NOTE|' - r'ON\s*APLABOUT|ON\s*BAR|ON\s*ERROR|ON\s*ESCAPE|' - r'ON\s*EXIT\s*BAR|ON\s*EXIT\s*MENU|ON\s*EXIT\s*PAD|' - r'ON\s*EXIT\s*POPUP|ON\s*KEY|ON\s*KEY\s*=|ON\s*KEY\s*LABEL|' - r'ON\s*MACHELP|ON\s*PAD|ON\s*PAGE|ON\s*READERROR|' - r'ON\s*SELECTION\s*BAR|ON\s*SELECTION\s*MENU|' - r'ON\s*SELECTION\s*PAD|ON\s*SELECTION\s*POPUP|ON\s*SHUTDOWN|' - r'PACK|PARAMETERS|PLAY\s*MACRO|POP\s*KEY|POP\s*MENU|' - r'POP\s*POPUP|PRIVATE|PROCEDURE|PUBLIC|PUSH\s*KEY|' - r'PUSH\s*MENU|PUSH\s*POPUP|QUIT|READ|READ\s*MENU|RECALL|' - r'REINDEX|RELEASE|RELEASE\s*MODULE|RENAME|REPLACE|' - r'REPLACE\s*FROM\s*ARRAY|REPORT|RESTORE\s*FROM|' - r'RESTORE\s*MACROS|RESTORE\s*SCREEN|RESTORE\s*WINDOW|' - r'RESUME|RETRY|RETURN|RUN|RUN\s*\/N"|RUNSCRIPT|' - r'SAVE\s*MACROS|SAVE\s*SCREEN|SAVE\s*TO|SAVE\s*WINDOWS|' - r'SCATTER|SCROLL|SEEK|SELECT|SET|SET\s*ALTERNATE|' - r'SET\s*ANSI|SET\s*APLABOUT|SET\s*AUTOSAVE|SET\s*BELL|' - r'SET\s*BLINK|SET\s*BLOCKSIZE|SET\s*BORDER|SET\s*BRSTATUS|' - r'SET\s*CARRY|SET\s*CENTURY|SET\s*CLEAR|SET\s*CLOCK|' - r'SET\s*COLLATE|SET\s*COLOR\s*OF|SET\s*COLOR\s*OF\s*SCHEME|' - r'SET\s*COLOR\s*SET|SET\s*COLOR\s*TO|SET\s*COMPATIBLE|' - r'SET\s*CONFIRM|SET\s*CONSOLE|SET\s*CURRENCY|SET\s*CURSOR|' - r'SET\s*DATE|SET\s*DEBUG|SET\s*DECIMALS|SET\s*DEFAULT|' - r'SET\s*DELETED|SET\s*DELIMITERS|SET\s*DEVELOPMENT|' - r'SET\s*DEVICE|SET\s*DISPLAY|SET\s*DOHISTORY|SET\s*ECHO|' - r'SET\s*ESCAPE|SET\s*EXACT|SET\s*EXCLUSIVE|SET\s*FIELDS|' - r'SET\s*FILTER|SET\s*FIXED|SET\s*FORMAT|SET\s*FULLPATH|' - r'SET\s*FUNCTION|SET\s*HEADINGS|SET\s*HELP|SET\s*HELPFILTER|' - r'SET\s*HOURS|SET\s*INDEX|SET\s*INTENSITY|SET\s*KEY|' - r'SET\s*KEYCOMP|SET\s*LIBRARY|SET\s*LOCK|SET\s*LOGERRORS|' - r'SET\s*MACDESKTOP|SET\s*MACHELP|SET\s*MACKEY|SET\s*MARGIN|' - r'SET\s*MARK\s*OF|SET\s*MARK\s*TO|SET\s*MEMOWIDTH|' - r'SET\s*MESSAGE|SET\s*MOUSE|SET\s*MULTILOCKS|SET\s*NEAR|' - r'SET\s*NOCPTRANS|SET\s*NOTIFY|SET\s*ODOMETER|SET\s*OPTIMIZE|' - r'SET\s*ORDER|SET\s*PALETTE|SET\s*PATH|SET\s*PDSETUP|' - r'SET\s*POINT|SET\s*PRINTER|SET\s*PROCEDURE|SET\s*READBORDER|' - r'SET\s*REFRESH|SET\s*RELATION|SET\s*RELATION\s*OFF|' - r'SET\s*REPROCESS|SET\s*RESOURCE|SET\s*SAFETY|SET\s*SCOREBOARD|' - r'SET\s*SEPARATOR|SET\s*SHADOWS|SET\s*SKIP|SET\s*SKIP\s*OF|' - r'SET\s*SPACE|SET\s*STATUS|SET\s*STATUS\s*BAR|SET\s*STEP|' - r'SET\s*STICKY|SET\s*SYSMENU|SET\s*TALK|SET\s*TEXTMERGE|' - r'SET\s*TEXTMERGE\s*DELIMITERS|SET\s*TOPIC|SET\s*TRBETWEEN|' - r'SET\s*TYPEAHEAD|SET\s*UDFPARMS|SET\s*UNIQUE|SET\s*VIEW|' - r'SET\s*VOLUME|SET\s*WINDOW\s*OF\s*MEMO|SET\s*XCMDFILE|' - r'SHOW\s*GET|SHOW\s*GETS|SHOW\s*MENU|SHOW\s*OBJECT|' - r'SHOW\s*POPUP|SHOW\s*WINDOW|SIZE\s*POPUP|SKIP|SORT|' - r'STORE|SUM|SUSPEND|TOTAL|TYPE|UNLOCK|UPDATE|USE|WAIT|' - r'ZAP|ZOOM\s*WINDOW|DO\s*CASE|CASE|OTHERWISE|ENDCASE|' - r'DO\s*WHILE|ENDDO|FOR|ENDFOR|NEXT|IF|ELSE|ENDIF|PRINTJOB|' - r'ENDPRINTJOB|SCAN|ENDSCAN|TEXT|ENDTEXT|=)', - Keyword.Reserved, '#pop'), - (r'#\s*(IF|ELIF|ELSE|ENDIF|DEFINE|IFDEF|IFNDEF|INCLUDE)', - Comment.Preproc, '#pop'), - (r'(m\.)?[a-z_]\w*', Name.Variable, '#pop'), - (r'.', Text, '#pop'), + "newline": [ + (r"\*.*?$", Comment.Single, "#pop"), + ( + r"(ACCEPT|ACTIVATE\s*MENU|ACTIVATE\s*POPUP|ACTIVATE\s*SCREEN|" + r"ACTIVATE\s*WINDOW|APPEND|APPEND\s*FROM|APPEND\s*FROM\s*ARRAY|" + r"APPEND\s*GENERAL|APPEND\s*MEMO|ASSIST|AVERAGE|BLANK|BROWSE|" + r"BUILD\s*APP|BUILD\s*EXE|BUILD\s*PROJECT|CALCULATE|CALL|" + r"CANCEL|CHANGE|CLEAR|CLOSE|CLOSE\s*MEMO|COMPILE|CONTINUE|" + r"COPY\s*FILE|COPY\s*INDEXES|COPY\s*MEMO|COPY\s*STRUCTURE|" + r"COPY\s*STRUCTURE\s*EXTENDED|COPY\s*TAG|COPY\s*TO|" + r"COPY\s*TO\s*ARRAY|COUNT|CREATE|CREATE\s*COLOR\s*SET|" + r"CREATE\s*CURSOR|CREATE\s*FROM|CREATE\s*LABEL|CREATE\s*MENU|" + r"CREATE\s*PROJECT|CREATE\s*QUERY|CREATE\s*REPORT|" + r"CREATE\s*SCREEN|CREATE\s*TABLE|CREATE\s*VIEW|DDE|" + r"DEACTIVATE\s*MENU|DEACTIVATE\s*POPUP|DEACTIVATE\s*WINDOW|" + r"DECLARE|DEFINE\s*BAR|DEFINE\s*BOX|DEFINE\s*MENU|" + r"DEFINE\s*PAD|DEFINE\s*POPUP|DEFINE\s*WINDOW|DELETE|" + r"DELETE\s*FILE|DELETE\s*TAG|DIMENSION|DIRECTORY|DISPLAY|" + r"DISPLAY\s*FILES|DISPLAY\s*MEMORY|DISPLAY\s*STATUS|" + r"DISPLAY\s*STRUCTURE|DO|EDIT|EJECT|EJECT\s*PAGE|ERASE|" + r"EXIT|EXPORT|EXTERNAL|FILER|FIND|FLUSH|FUNCTION|GATHER|" + r"GETEXPR|GO|GOTO|HELP|HIDE\s*MENU|HIDE\s*POPUP|" + r"HIDE\s*WINDOW|IMPORT|INDEX|INPUT|INSERT|JOIN|KEYBOARD|" + r"LABEL|LIST|LOAD|LOCATE|LOOP|MENU|MENU\s*TO|MODIFY\s*COMMAND|" + r"MODIFY\s*FILE|MODIFY\s*GENERAL|MODIFY\s*LABEL|MODIFY\s*MEMO|" + r"MODIFY\s*MENU|MODIFY\s*PROJECT|MODIFY\s*QUERY|" + r"MODIFY\s*REPORT|MODIFY\s*SCREEN|MODIFY\s*STRUCTURE|" + r"MODIFY\s*WINDOW|MOVE\s*POPUP|MOVE\s*WINDOW|NOTE|" + r"ON\s*APLABOUT|ON\s*BAR|ON\s*ERROR|ON\s*ESCAPE|" + r"ON\s*EXIT\s*BAR|ON\s*EXIT\s*MENU|ON\s*EXIT\s*PAD|" + r"ON\s*EXIT\s*POPUP|ON\s*KEY|ON\s*KEY\s*=|ON\s*KEY\s*LABEL|" + r"ON\s*MACHELP|ON\s*PAD|ON\s*PAGE|ON\s*READERROR|" + r"ON\s*SELECTION\s*BAR|ON\s*SELECTION\s*MENU|" + r"ON\s*SELECTION\s*PAD|ON\s*SELECTION\s*POPUP|ON\s*SHUTDOWN|" + r"PACK|PARAMETERS|PLAY\s*MACRO|POP\s*KEY|POP\s*MENU|" + r"POP\s*POPUP|PRIVATE|PROCEDURE|PUBLIC|PUSH\s*KEY|" + r"PUSH\s*MENU|PUSH\s*POPUP|QUIT|READ|READ\s*MENU|RECALL|" + r"REINDEX|RELEASE|RELEASE\s*MODULE|RENAME|REPLACE|" + r"REPLACE\s*FROM\s*ARRAY|REPORT|RESTORE\s*FROM|" + r"RESTORE\s*MACROS|RESTORE\s*SCREEN|RESTORE\s*WINDOW|" + r'RESUME|RETRY|RETURN|RUN|RUN\s*\/N"|RUNSCRIPT|' + r"SAVE\s*MACROS|SAVE\s*SCREEN|SAVE\s*TO|SAVE\s*WINDOWS|" + r"SCATTER|SCROLL|SEEK|SELECT|SET|SET\s*ALTERNATE|" + r"SET\s*ANSI|SET\s*APLABOUT|SET\s*AUTOSAVE|SET\s*BELL|" + r"SET\s*BLINK|SET\s*BLOCKSIZE|SET\s*BORDER|SET\s*BRSTATUS|" + r"SET\s*CARRY|SET\s*CENTURY|SET\s*CLEAR|SET\s*CLOCK|" + r"SET\s*COLLATE|SET\s*COLOR\s*OF|SET\s*COLOR\s*OF\s*SCHEME|" + r"SET\s*COLOR\s*SET|SET\s*COLOR\s*TO|SET\s*COMPATIBLE|" + r"SET\s*CONFIRM|SET\s*CONSOLE|SET\s*CURRENCY|SET\s*CURSOR|" + r"SET\s*DATE|SET\s*DEBUG|SET\s*DECIMALS|SET\s*DEFAULT|" + r"SET\s*DELETED|SET\s*DELIMITERS|SET\s*DEVELOPMENT|" + r"SET\s*DEVICE|SET\s*DISPLAY|SET\s*DOHISTORY|SET\s*ECHO|" + r"SET\s*ESCAPE|SET\s*EXACT|SET\s*EXCLUSIVE|SET\s*FIELDS|" + r"SET\s*FILTER|SET\s*FIXED|SET\s*FORMAT|SET\s*FULLPATH|" + r"SET\s*FUNCTION|SET\s*HEADINGS|SET\s*HELP|SET\s*HELPFILTER|" + r"SET\s*HOURS|SET\s*INDEX|SET\s*INTENSITY|SET\s*KEY|" + r"SET\s*KEYCOMP|SET\s*LIBRARY|SET\s*LOCK|SET\s*LOGERRORS|" + r"SET\s*MACDESKTOP|SET\s*MACHELP|SET\s*MACKEY|SET\s*MARGIN|" + r"SET\s*MARK\s*OF|SET\s*MARK\s*TO|SET\s*MEMOWIDTH|" + r"SET\s*MESSAGE|SET\s*MOUSE|SET\s*MULTILOCKS|SET\s*NEAR|" + r"SET\s*NOCPTRANS|SET\s*NOTIFY|SET\s*ODOMETER|SET\s*OPTIMIZE|" + r"SET\s*ORDER|SET\s*PALETTE|SET\s*PATH|SET\s*PDSETUP|" + r"SET\s*POINT|SET\s*PRINTER|SET\s*PROCEDURE|SET\s*READBORDER|" + r"SET\s*REFRESH|SET\s*RELATION|SET\s*RELATION\s*OFF|" + r"SET\s*REPROCESS|SET\s*RESOURCE|SET\s*SAFETY|SET\s*SCOREBOARD|" + r"SET\s*SEPARATOR|SET\s*SHADOWS|SET\s*SKIP|SET\s*SKIP\s*OF|" + r"SET\s*SPACE|SET\s*STATUS|SET\s*STATUS\s*BAR|SET\s*STEP|" + r"SET\s*STICKY|SET\s*SYSMENU|SET\s*TALK|SET\s*TEXTMERGE|" + r"SET\s*TEXTMERGE\s*DELIMITERS|SET\s*TOPIC|SET\s*TRBETWEEN|" + r"SET\s*TYPEAHEAD|SET\s*UDFPARMS|SET\s*UNIQUE|SET\s*VIEW|" + r"SET\s*VOLUME|SET\s*WINDOW\s*OF\s*MEMO|SET\s*XCMDFILE|" + r"SHOW\s*GET|SHOW\s*GETS|SHOW\s*MENU|SHOW\s*OBJECT|" + r"SHOW\s*POPUP|SHOW\s*WINDOW|SIZE\s*POPUP|SKIP|SORT|" + r"STORE|SUM|SUSPEND|TOTAL|TYPE|UNLOCK|UPDATE|USE|WAIT|" + r"ZAP|ZOOM\s*WINDOW|DO\s*CASE|CASE|OTHERWISE|ENDCASE|" + r"DO\s*WHILE|ENDDO|FOR|ENDFOR|NEXT|IF|ELSE|ENDIF|PRINTJOB|" + r"ENDPRINTJOB|SCAN|ENDSCAN|TEXT|ENDTEXT|=)", + Keyword.Reserved, + "#pop", + ), + ( + r"#\s*(IF|ELIF|ELSE|ENDIF|DEFINE|IFDEF|IFNDEF|INCLUDE)", + Comment.Preproc, + "#pop", + ), + (r"(m\.)?[a-z_]\w*", Name.Variable, "#pop"), + (r".", Text, "#pop"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/freefem.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/freefem.py index 87b066b..543f1de 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/freefem.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/freefem.py @@ -1,18 +1,18 @@ """ - pygments.lexers.freefem - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.freefem +~~~~~~~~~~~~~~~~~~~~~~~ - Lexer for FreeFem++ language. +Lexer for FreeFem++ language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.token import Comment, Operator, Keyword, Name from pygments.lexers.c_cpp import CppLexer -__all__ = ['FreeFemLexer'] +__all__ = ["FreeFemLexer"] class FreeFemLexer(CppLexer): @@ -23,855 +23,917 @@ class FreeFemLexer(CppLexer): of C++. """ - name = 'Freefem' - url = 'https://freefem.org/' - aliases = ['freefem'] - filenames = ['*.edp'] - mimetypes = ['text/x-freefem'] - version_added = '2.4' + name = "Freefem" + url = "https://freefem.org/" + aliases = ["freefem"] + filenames = ["*.edp"] + mimetypes = ["text/x-freefem"] + version_added = "2.4" # Language operators - operators = {'+', '-', '*', '.*', '/', './', '%', '^', '^-1', ':', '\''} + operators = {"+", "-", "*", ".*", "/", "./", "%", "^", "^-1", ":", "'"} # types - types = {'bool', 'border', 'complex', 'dmatrix', 'fespace', 'func', 'gslspline', - 'ifstream', 'int', 'macro', 'matrix', 'mesh', 'mesh3', 'mpiComm', - 'mpiGroup', 'mpiRequest', 'NewMacro', 'EndMacro', 'ofstream', 'Pmmap', - 'problem', 'Psemaphore', 'real', 'solve', 'string', 'varf'} + types = { + "bool", + "border", + "complex", + "dmatrix", + "fespace", + "func", + "gslspline", + "ifstream", + "int", + "macro", + "matrix", + "mesh", + "mesh3", + "mpiComm", + "mpiGroup", + "mpiRequest", + "NewMacro", + "EndMacro", + "ofstream", + "Pmmap", + "problem", + "Psemaphore", + "real", + "solve", + "string", + "varf", + } # finite element spaces - fespaces = {'BDM1', 'BDM1Ortho', 'Edge03d', 'Edge13d', 'Edge23d', 'FEQF', 'HCT', - 'P0', 'P03d', 'P0Edge', 'P1', 'P13d', 'P1b', 'P1b3d', 'P1bl', 'P1bl3d', - 'P1dc', 'P1Edge', 'P1nc', 'P2', 'P23d', 'P2b', 'P2BR', 'P2dc', 'P2Edge', - 'P2h', 'P2Morley', 'P2pnc', 'P3', 'P3dc', 'P3Edge', 'P4', 'P4dc', - 'P4Edge', 'P5Edge', 'RT0', 'RT03d', 'RT0Ortho', 'RT1', 'RT1Ortho', - 'RT2', 'RT2Ortho'} + fespaces = { + "BDM1", + "BDM1Ortho", + "Edge03d", + "Edge13d", + "Edge23d", + "FEQF", + "HCT", + "P0", + "P03d", + "P0Edge", + "P1", + "P13d", + "P1b", + "P1b3d", + "P1bl", + "P1bl3d", + "P1dc", + "P1Edge", + "P1nc", + "P2", + "P23d", + "P2b", + "P2BR", + "P2dc", + "P2Edge", + "P2h", + "P2Morley", + "P2pnc", + "P3", + "P3dc", + "P3Edge", + "P4", + "P4dc", + "P4Edge", + "P5Edge", + "RT0", + "RT03d", + "RT0Ortho", + "RT1", + "RT1Ortho", + "RT2", + "RT2Ortho", + } # preprocessor - preprocessor = {'ENDIFMACRO', 'include', 'IFMACRO', 'load'} + preprocessor = {"ENDIFMACRO", "include", "IFMACRO", "load"} # Language keywords keywords = { - 'adj', - 'append', - 'area', - 'ARGV', - 'be', - 'binary', - 'BoundaryEdge', - 'bordermeasure', - 'CG', - 'Cholesky', - 'cin', - 'cout', - 'Crout', - 'default', - 'diag', - 'edgeOrientation', - 'endl', - 'false', - 'ffind', - 'FILE', - 'find', - 'fixed', - 'flush', - 'GMRES', - 'good', - 'hTriangle', - 'im', - 'imax', - 'imin', - 'InternalEdge', - 'l1', - 'l2', - 'label', - 'lenEdge', - 'length', - 'LINE', - 'linfty', - 'LU', - 'm', - 'max', - 'measure', - 'min', - 'mpiAnySource', - 'mpiBAND', - 'mpiBXOR', - 'mpiCommWorld', - 'mpiLAND', - 'mpiLOR', - 'mpiLXOR', - 'mpiMAX', - 'mpiMIN', - 'mpiPROD', - 'mpirank', - 'mpisize', - 'mpiSUM', - 'mpiUndefined', - 'n', - 'N', - 'nbe', - 'ndof', - 'ndofK', - 'noshowbase', - 'noshowpos', - 'notaregion', - 'nt', - 'nTonEdge', - 'nuEdge', - 'nuTriangle', - 'nv', - 'P', - 'pi', - 'precision', - 'qf1pE', - 'qf1pElump', - 'qf1pT', - 'qf1pTlump', - 'qfV1', - 'qfV1lump', - 'qf2pE', - 'qf2pT', - 'qf2pT4P1', - 'qfV2', - 'qf3pE', - 'qf4pE', - 'qf5pE', - 'qf5pT', - 'qfV5', - 'qf7pT', - 'qf9pT', - 'qfnbpE', - 'quantile', - 're', - 'region', - 'rfind', - 'scientific', - 'searchMethod', - 'setw', - 'showbase', - 'showpos', - 'sparsesolver', - 'sum', - 'tellp', - 'true', - 'UMFPACK', - 'unused', - 'whoinElement', - 'verbosity', - 'version', - 'volume', - 'x', - 'y', - 'z' + "adj", + "append", + "area", + "ARGV", + "be", + "binary", + "BoundaryEdge", + "bordermeasure", + "CG", + "Cholesky", + "cin", + "cout", + "Crout", + "default", + "diag", + "edgeOrientation", + "endl", + "false", + "ffind", + "FILE", + "find", + "fixed", + "flush", + "GMRES", + "good", + "hTriangle", + "im", + "imax", + "imin", + "InternalEdge", + "l1", + "l2", + "label", + "lenEdge", + "length", + "LINE", + "linfty", + "LU", + "m", + "max", + "measure", + "min", + "mpiAnySource", + "mpiBAND", + "mpiBXOR", + "mpiCommWorld", + "mpiLAND", + "mpiLOR", + "mpiLXOR", + "mpiMAX", + "mpiMIN", + "mpiPROD", + "mpirank", + "mpisize", + "mpiSUM", + "mpiUndefined", + "n", + "N", + "nbe", + "ndof", + "ndofK", + "noshowbase", + "noshowpos", + "notaregion", + "nt", + "nTonEdge", + "nuEdge", + "nuTriangle", + "nv", + "P", + "pi", + "precision", + "qf1pE", + "qf1pElump", + "qf1pT", + "qf1pTlump", + "qfV1", + "qfV1lump", + "qf2pE", + "qf2pT", + "qf2pT4P1", + "qfV2", + "qf3pE", + "qf4pE", + "qf5pE", + "qf5pT", + "qfV5", + "qf7pT", + "qf9pT", + "qfnbpE", + "quantile", + "re", + "region", + "rfind", + "scientific", + "searchMethod", + "setw", + "showbase", + "showpos", + "sparsesolver", + "sum", + "tellp", + "true", + "UMFPACK", + "unused", + "whoinElement", + "verbosity", + "version", + "volume", + "x", + "y", + "z", } # Language shipped functions and class ( ) functions = { - 'abs', - 'acos', - 'acosh', - 'adaptmesh', - 'adj', - 'AffineCG', - 'AffineGMRES', - 'arg', - 'asin', - 'asinh', - 'assert', - 'atan', - 'atan2', - 'atanh', - 'atof', - 'atoi', - 'BFGS', - 'broadcast', - 'buildlayers', - 'buildmesh', - 'ceil', - 'chi', - 'complexEigenValue', - 'copysign', - 'change', - 'checkmovemesh', - 'clock', - 'cmaes', - 'conj', - 'convect', - 'cos', - 'cosh', - 'cube', - 'd', - 'dd', - 'dfft', - 'diffnp', - 'diffpos', - 'dimKrylov', - 'dist', - 'dumptable', - 'dx', - 'dxx', - 'dxy', - 'dxz', - 'dy', - 'dyx', - 'dyy', - 'dyz', - 'dz', - 'dzx', - 'dzy', - 'dzz', - 'EigenValue', - 'emptymesh', - 'erf', - 'erfc', - 'exec', - 'exit', - 'exp', - 'fdim', - 'floor', - 'fmax', - 'fmin', - 'fmod', - 'freeyams', - 'getARGV', - 'getline', - 'gmshload', - 'gmshload3', - 'gslcdfugaussianP', - 'gslcdfugaussianQ', - 'gslcdfugaussianPinv', - 'gslcdfugaussianQinv', - 'gslcdfgaussianP', - 'gslcdfgaussianQ', - 'gslcdfgaussianPinv', - 'gslcdfgaussianQinv', - 'gslcdfgammaP', - 'gslcdfgammaQ', - 'gslcdfgammaPinv', - 'gslcdfgammaQinv', - 'gslcdfcauchyP', - 'gslcdfcauchyQ', - 'gslcdfcauchyPinv', - 'gslcdfcauchyQinv', - 'gslcdflaplaceP', - 'gslcdflaplaceQ', - 'gslcdflaplacePinv', - 'gslcdflaplaceQinv', - 'gslcdfrayleighP', - 'gslcdfrayleighQ', - 'gslcdfrayleighPinv', - 'gslcdfrayleighQinv', - 'gslcdfchisqP', - 'gslcdfchisqQ', - 'gslcdfchisqPinv', - 'gslcdfchisqQinv', - 'gslcdfexponentialP', - 'gslcdfexponentialQ', - 'gslcdfexponentialPinv', - 'gslcdfexponentialQinv', - 'gslcdfexppowP', - 'gslcdfexppowQ', - 'gslcdftdistP', - 'gslcdftdistQ', - 'gslcdftdistPinv', - 'gslcdftdistQinv', - 'gslcdffdistP', - 'gslcdffdistQ', - 'gslcdffdistPinv', - 'gslcdffdistQinv', - 'gslcdfbetaP', - 'gslcdfbetaQ', - 'gslcdfbetaPinv', - 'gslcdfbetaQinv', - 'gslcdfflatP', - 'gslcdfflatQ', - 'gslcdfflatPinv', - 'gslcdfflatQinv', - 'gslcdflognormalP', - 'gslcdflognormalQ', - 'gslcdflognormalPinv', - 'gslcdflognormalQinv', - 'gslcdfgumbel1P', - 'gslcdfgumbel1Q', - 'gslcdfgumbel1Pinv', - 'gslcdfgumbel1Qinv', - 'gslcdfgumbel2P', - 'gslcdfgumbel2Q', - 'gslcdfgumbel2Pinv', - 'gslcdfgumbel2Qinv', - 'gslcdfweibullP', - 'gslcdfweibullQ', - 'gslcdfweibullPinv', - 'gslcdfweibullQinv', - 'gslcdfparetoP', - 'gslcdfparetoQ', - 'gslcdfparetoPinv', - 'gslcdfparetoQinv', - 'gslcdflogisticP', - 'gslcdflogisticQ', - 'gslcdflogisticPinv', - 'gslcdflogisticQinv', - 'gslcdfbinomialP', - 'gslcdfbinomialQ', - 'gslcdfpoissonP', - 'gslcdfpoissonQ', - 'gslcdfgeometricP', - 'gslcdfgeometricQ', - 'gslcdfnegativebinomialP', - 'gslcdfnegativebinomialQ', - 'gslcdfpascalP', - 'gslcdfpascalQ', - 'gslinterpakima', - 'gslinterpakimaperiodic', - 'gslinterpcsplineperiodic', - 'gslinterpcspline', - 'gslinterpsteffen', - 'gslinterplinear', - 'gslinterppolynomial', - 'gslranbernoullipdf', - 'gslranbeta', - 'gslranbetapdf', - 'gslranbinomialpdf', - 'gslranexponential', - 'gslranexponentialpdf', - 'gslranexppow', - 'gslranexppowpdf', - 'gslrancauchy', - 'gslrancauchypdf', - 'gslranchisq', - 'gslranchisqpdf', - 'gslranerlang', - 'gslranerlangpdf', - 'gslranfdist', - 'gslranfdistpdf', - 'gslranflat', - 'gslranflatpdf', - 'gslrangamma', - 'gslrangammaint', - 'gslrangammapdf', - 'gslrangammamt', - 'gslrangammaknuth', - 'gslrangaussian', - 'gslrangaussianratiomethod', - 'gslrangaussianziggurat', - 'gslrangaussianpdf', - 'gslranugaussian', - 'gslranugaussianratiomethod', - 'gslranugaussianpdf', - 'gslrangaussiantail', - 'gslrangaussiantailpdf', - 'gslranugaussiantail', - 'gslranugaussiantailpdf', - 'gslranlandau', - 'gslranlandaupdf', - 'gslrangeometricpdf', - 'gslrangumbel1', - 'gslrangumbel1pdf', - 'gslrangumbel2', - 'gslrangumbel2pdf', - 'gslranlogistic', - 'gslranlogisticpdf', - 'gslranlognormal', - 'gslranlognormalpdf', - 'gslranlogarithmicpdf', - 'gslrannegativebinomialpdf', - 'gslranpascalpdf', - 'gslranpareto', - 'gslranparetopdf', - 'gslranpoissonpdf', - 'gslranrayleigh', - 'gslranrayleighpdf', - 'gslranrayleightail', - 'gslranrayleightailpdf', - 'gslrantdist', - 'gslrantdistpdf', - 'gslranlaplace', - 'gslranlaplacepdf', - 'gslranlevy', - 'gslranweibull', - 'gslranweibullpdf', - 'gslsfairyAi', - 'gslsfairyBi', - 'gslsfairyAiscaled', - 'gslsfairyBiscaled', - 'gslsfairyAideriv', - 'gslsfairyBideriv', - 'gslsfairyAiderivscaled', - 'gslsfairyBiderivscaled', - 'gslsfairyzeroAi', - 'gslsfairyzeroBi', - 'gslsfairyzeroAideriv', - 'gslsfairyzeroBideriv', - 'gslsfbesselJ0', - 'gslsfbesselJ1', - 'gslsfbesselJn', - 'gslsfbesselY0', - 'gslsfbesselY1', - 'gslsfbesselYn', - 'gslsfbesselI0', - 'gslsfbesselI1', - 'gslsfbesselIn', - 'gslsfbesselI0scaled', - 'gslsfbesselI1scaled', - 'gslsfbesselInscaled', - 'gslsfbesselK0', - 'gslsfbesselK1', - 'gslsfbesselKn', - 'gslsfbesselK0scaled', - 'gslsfbesselK1scaled', - 'gslsfbesselKnscaled', - 'gslsfbesselj0', - 'gslsfbesselj1', - 'gslsfbesselj2', - 'gslsfbesseljl', - 'gslsfbessely0', - 'gslsfbessely1', - 'gslsfbessely2', - 'gslsfbesselyl', - 'gslsfbesseli0scaled', - 'gslsfbesseli1scaled', - 'gslsfbesseli2scaled', - 'gslsfbesselilscaled', - 'gslsfbesselk0scaled', - 'gslsfbesselk1scaled', - 'gslsfbesselk2scaled', - 'gslsfbesselklscaled', - 'gslsfbesselJnu', - 'gslsfbesselYnu', - 'gslsfbesselInuscaled', - 'gslsfbesselInu', - 'gslsfbesselKnuscaled', - 'gslsfbesselKnu', - 'gslsfbessellnKnu', - 'gslsfbesselzeroJ0', - 'gslsfbesselzeroJ1', - 'gslsfbesselzeroJnu', - 'gslsfclausen', - 'gslsfhydrogenicR1', - 'gslsfdawson', - 'gslsfdebye1', - 'gslsfdebye2', - 'gslsfdebye3', - 'gslsfdebye4', - 'gslsfdebye5', - 'gslsfdebye6', - 'gslsfdilog', - 'gslsfmultiply', - 'gslsfellintKcomp', - 'gslsfellintEcomp', - 'gslsfellintPcomp', - 'gslsfellintDcomp', - 'gslsfellintF', - 'gslsfellintE', - 'gslsfellintRC', - 'gslsferfc', - 'gslsflogerfc', - 'gslsferf', - 'gslsferfZ', - 'gslsferfQ', - 'gslsfhazard', - 'gslsfexp', - 'gslsfexpmult', - 'gslsfexpm1', - 'gslsfexprel', - 'gslsfexprel2', - 'gslsfexpreln', - 'gslsfexpintE1', - 'gslsfexpintE2', - 'gslsfexpintEn', - 'gslsfexpintE1scaled', - 'gslsfexpintE2scaled', - 'gslsfexpintEnscaled', - 'gslsfexpintEi', - 'gslsfexpintEiscaled', - 'gslsfShi', - 'gslsfChi', - 'gslsfexpint3', - 'gslsfSi', - 'gslsfCi', - 'gslsfatanint', - 'gslsffermidiracm1', - 'gslsffermidirac0', - 'gslsffermidirac1', - 'gslsffermidirac2', - 'gslsffermidiracint', - 'gslsffermidiracmhalf', - 'gslsffermidirachalf', - 'gslsffermidirac3half', - 'gslsffermidiracinc0', - 'gslsflngamma', - 'gslsfgamma', - 'gslsfgammastar', - 'gslsfgammainv', - 'gslsftaylorcoeff', - 'gslsffact', - 'gslsfdoublefact', - 'gslsflnfact', - 'gslsflndoublefact', - 'gslsflnchoose', - 'gslsfchoose', - 'gslsflnpoch', - 'gslsfpoch', - 'gslsfpochrel', - 'gslsfgammaincQ', - 'gslsfgammaincP', - 'gslsfgammainc', - 'gslsflnbeta', - 'gslsfbeta', - 'gslsfbetainc', - 'gslsfgegenpoly1', - 'gslsfgegenpoly2', - 'gslsfgegenpoly3', - 'gslsfgegenpolyn', - 'gslsfhyperg0F1', - 'gslsfhyperg1F1int', - 'gslsfhyperg1F1', - 'gslsfhypergUint', - 'gslsfhypergU', - 'gslsfhyperg2F0', - 'gslsflaguerre1', - 'gslsflaguerre2', - 'gslsflaguerre3', - 'gslsflaguerren', - 'gslsflambertW0', - 'gslsflambertWm1', - 'gslsflegendrePl', - 'gslsflegendreP1', - 'gslsflegendreP2', - 'gslsflegendreP3', - 'gslsflegendreQ0', - 'gslsflegendreQ1', - 'gslsflegendreQl', - 'gslsflegendrePlm', - 'gslsflegendresphPlm', - 'gslsflegendrearraysize', - 'gslsfconicalPhalf', - 'gslsfconicalPmhalf', - 'gslsfconicalP0', - 'gslsfconicalP1', - 'gslsfconicalPsphreg', - 'gslsfconicalPcylreg', - 'gslsflegendreH3d0', - 'gslsflegendreH3d1', - 'gslsflegendreH3d', - 'gslsflog', - 'gslsflogabs', - 'gslsflog1plusx', - 'gslsflog1plusxmx', - 'gslsfpowint', - 'gslsfpsiint', - 'gslsfpsi', - 'gslsfpsi1piy', - 'gslsfpsi1int', - 'gslsfpsi1', - 'gslsfpsin', - 'gslsfsynchrotron1', - 'gslsfsynchrotron2', - 'gslsftransport2', - 'gslsftransport3', - 'gslsftransport4', - 'gslsftransport5', - 'gslsfsin', - 'gslsfcos', - 'gslsfhypot', - 'gslsfsinc', - 'gslsflnsinh', - 'gslsflncosh', - 'gslsfanglerestrictsymm', - 'gslsfanglerestrictpos', - 'gslsfzetaint', - 'gslsfzeta', - 'gslsfzetam1', - 'gslsfzetam1int', - 'gslsfhzeta', - 'gslsfetaint', - 'gslsfeta', - 'imag', - 'int1d', - 'int2d', - 'int3d', - 'intalledges', - 'intallfaces', - 'interpolate', - 'invdiff', - 'invdiffnp', - 'invdiffpos', - 'Isend', - 'isInf', - 'isNaN', - 'isoline', - 'Irecv', - 'j0', - 'j1', - 'jn', - 'jump', - 'lgamma', - 'LinearCG', - 'LinearGMRES', - 'log', - 'log10', - 'lrint', - 'lround', - 'max', - 'mean', - 'medit', - 'min', - 'mmg3d', - 'movemesh', - 'movemesh23', - 'mpiAlltoall', - 'mpiAlltoallv', - 'mpiAllgather', - 'mpiAllgatherv', - 'mpiAllReduce', - 'mpiBarrier', - 'mpiGather', - 'mpiGatherv', - 'mpiRank', - 'mpiReduce', - 'mpiScatter', - 'mpiScatterv', - 'mpiSize', - 'mpiWait', - 'mpiWaitAny', - 'mpiWtick', - 'mpiWtime', - 'mshmet', - 'NaN', - 'NLCG', - 'on', - 'plot', - 'polar', - 'Post', - 'pow', - 'processor', - 'processorblock', - 'projection', - 'randinit', - 'randint31', - 'randint32', - 'random', - 'randreal1', - 'randreal2', - 'randreal3', - 'randres53', - 'Read', - 'readmesh', - 'readmesh3', - 'Recv', - 'rint', - 'round', - 'savemesh', - 'savesol', - 'savevtk', - 'seekg', - 'Sent', - 'set', - 'sign', - 'signbit', - 'sin', - 'sinh', - 'sort', - 'splitComm', - 'splitmesh', - 'sqrt', - 'square', - 'srandom', - 'srandomdev', - 'Stringification', - 'swap', - 'system', - 'tan', - 'tanh', - 'tellg', - 'tetg', - 'tetgconvexhull', - 'tetgreconstruction', - 'tetgtransfo', - 'tgamma', - 'triangulate', - 'trunc', - 'Wait', - 'Write', - 'y0', - 'y1', - 'yn' + "abs", + "acos", + "acosh", + "adaptmesh", + "adj", + "AffineCG", + "AffineGMRES", + "arg", + "asin", + "asinh", + "assert", + "atan", + "atan2", + "atanh", + "atof", + "atoi", + "BFGS", + "broadcast", + "buildlayers", + "buildmesh", + "ceil", + "chi", + "complexEigenValue", + "copysign", + "change", + "checkmovemesh", + "clock", + "cmaes", + "conj", + "convect", + "cos", + "cosh", + "cube", + "d", + "dd", + "dfft", + "diffnp", + "diffpos", + "dimKrylov", + "dist", + "dumptable", + "dx", + "dxx", + "dxy", + "dxz", + "dy", + "dyx", + "dyy", + "dyz", + "dz", + "dzx", + "dzy", + "dzz", + "EigenValue", + "emptymesh", + "erf", + "erfc", + "exec", + "exit", + "exp", + "fdim", + "floor", + "fmax", + "fmin", + "fmod", + "freeyams", + "getARGV", + "getline", + "gmshload", + "gmshload3", + "gslcdfugaussianP", + "gslcdfugaussianQ", + "gslcdfugaussianPinv", + "gslcdfugaussianQinv", + "gslcdfgaussianP", + "gslcdfgaussianQ", + "gslcdfgaussianPinv", + "gslcdfgaussianQinv", + "gslcdfgammaP", + "gslcdfgammaQ", + "gslcdfgammaPinv", + "gslcdfgammaQinv", + "gslcdfcauchyP", + "gslcdfcauchyQ", + "gslcdfcauchyPinv", + "gslcdfcauchyQinv", + "gslcdflaplaceP", + "gslcdflaplaceQ", + "gslcdflaplacePinv", + "gslcdflaplaceQinv", + "gslcdfrayleighP", + "gslcdfrayleighQ", + "gslcdfrayleighPinv", + "gslcdfrayleighQinv", + "gslcdfchisqP", + "gslcdfchisqQ", + "gslcdfchisqPinv", + "gslcdfchisqQinv", + "gslcdfexponentialP", + "gslcdfexponentialQ", + "gslcdfexponentialPinv", + "gslcdfexponentialQinv", + "gslcdfexppowP", + "gslcdfexppowQ", + "gslcdftdistP", + "gslcdftdistQ", + "gslcdftdistPinv", + "gslcdftdistQinv", + "gslcdffdistP", + "gslcdffdistQ", + "gslcdffdistPinv", + "gslcdffdistQinv", + "gslcdfbetaP", + "gslcdfbetaQ", + "gslcdfbetaPinv", + "gslcdfbetaQinv", + "gslcdfflatP", + "gslcdfflatQ", + "gslcdfflatPinv", + "gslcdfflatQinv", + "gslcdflognormalP", + "gslcdflognormalQ", + "gslcdflognormalPinv", + "gslcdflognormalQinv", + "gslcdfgumbel1P", + "gslcdfgumbel1Q", + "gslcdfgumbel1Pinv", + "gslcdfgumbel1Qinv", + "gslcdfgumbel2P", + "gslcdfgumbel2Q", + "gslcdfgumbel2Pinv", + "gslcdfgumbel2Qinv", + "gslcdfweibullP", + "gslcdfweibullQ", + "gslcdfweibullPinv", + "gslcdfweibullQinv", + "gslcdfparetoP", + "gslcdfparetoQ", + "gslcdfparetoPinv", + "gslcdfparetoQinv", + "gslcdflogisticP", + "gslcdflogisticQ", + "gslcdflogisticPinv", + "gslcdflogisticQinv", + "gslcdfbinomialP", + "gslcdfbinomialQ", + "gslcdfpoissonP", + "gslcdfpoissonQ", + "gslcdfgeometricP", + "gslcdfgeometricQ", + "gslcdfnegativebinomialP", + "gslcdfnegativebinomialQ", + "gslcdfpascalP", + "gslcdfpascalQ", + "gslinterpakima", + "gslinterpakimaperiodic", + "gslinterpcsplineperiodic", + "gslinterpcspline", + "gslinterpsteffen", + "gslinterplinear", + "gslinterppolynomial", + "gslranbernoullipdf", + "gslranbeta", + "gslranbetapdf", + "gslranbinomialpdf", + "gslranexponential", + "gslranexponentialpdf", + "gslranexppow", + "gslranexppowpdf", + "gslrancauchy", + "gslrancauchypdf", + "gslranchisq", + "gslranchisqpdf", + "gslranerlang", + "gslranerlangpdf", + "gslranfdist", + "gslranfdistpdf", + "gslranflat", + "gslranflatpdf", + "gslrangamma", + "gslrangammaint", + "gslrangammapdf", + "gslrangammamt", + "gslrangammaknuth", + "gslrangaussian", + "gslrangaussianratiomethod", + "gslrangaussianziggurat", + "gslrangaussianpdf", + "gslranugaussian", + "gslranugaussianratiomethod", + "gslranugaussianpdf", + "gslrangaussiantail", + "gslrangaussiantailpdf", + "gslranugaussiantail", + "gslranugaussiantailpdf", + "gslranlandau", + "gslranlandaupdf", + "gslrangeometricpdf", + "gslrangumbel1", + "gslrangumbel1pdf", + "gslrangumbel2", + "gslrangumbel2pdf", + "gslranlogistic", + "gslranlogisticpdf", + "gslranlognormal", + "gslranlognormalpdf", + "gslranlogarithmicpdf", + "gslrannegativebinomialpdf", + "gslranpascalpdf", + "gslranpareto", + "gslranparetopdf", + "gslranpoissonpdf", + "gslranrayleigh", + "gslranrayleighpdf", + "gslranrayleightail", + "gslranrayleightailpdf", + "gslrantdist", + "gslrantdistpdf", + "gslranlaplace", + "gslranlaplacepdf", + "gslranlevy", + "gslranweibull", + "gslranweibullpdf", + "gslsfairyAi", + "gslsfairyBi", + "gslsfairyAiscaled", + "gslsfairyBiscaled", + "gslsfairyAideriv", + "gslsfairyBideriv", + "gslsfairyAiderivscaled", + "gslsfairyBiderivscaled", + "gslsfairyzeroAi", + "gslsfairyzeroBi", + "gslsfairyzeroAideriv", + "gslsfairyzeroBideriv", + "gslsfbesselJ0", + "gslsfbesselJ1", + "gslsfbesselJn", + "gslsfbesselY0", + "gslsfbesselY1", + "gslsfbesselYn", + "gslsfbesselI0", + "gslsfbesselI1", + "gslsfbesselIn", + "gslsfbesselI0scaled", + "gslsfbesselI1scaled", + "gslsfbesselInscaled", + "gslsfbesselK0", + "gslsfbesselK1", + "gslsfbesselKn", + "gslsfbesselK0scaled", + "gslsfbesselK1scaled", + "gslsfbesselKnscaled", + "gslsfbesselj0", + "gslsfbesselj1", + "gslsfbesselj2", + "gslsfbesseljl", + "gslsfbessely0", + "gslsfbessely1", + "gslsfbessely2", + "gslsfbesselyl", + "gslsfbesseli0scaled", + "gslsfbesseli1scaled", + "gslsfbesseli2scaled", + "gslsfbesselilscaled", + "gslsfbesselk0scaled", + "gslsfbesselk1scaled", + "gslsfbesselk2scaled", + "gslsfbesselklscaled", + "gslsfbesselJnu", + "gslsfbesselYnu", + "gslsfbesselInuscaled", + "gslsfbesselInu", + "gslsfbesselKnuscaled", + "gslsfbesselKnu", + "gslsfbessellnKnu", + "gslsfbesselzeroJ0", + "gslsfbesselzeroJ1", + "gslsfbesselzeroJnu", + "gslsfclausen", + "gslsfhydrogenicR1", + "gslsfdawson", + "gslsfdebye1", + "gslsfdebye2", + "gslsfdebye3", + "gslsfdebye4", + "gslsfdebye5", + "gslsfdebye6", + "gslsfdilog", + "gslsfmultiply", + "gslsfellintKcomp", + "gslsfellintEcomp", + "gslsfellintPcomp", + "gslsfellintDcomp", + "gslsfellintF", + "gslsfellintE", + "gslsfellintRC", + "gslsferfc", + "gslsflogerfc", + "gslsferf", + "gslsferfZ", + "gslsferfQ", + "gslsfhazard", + "gslsfexp", + "gslsfexpmult", + "gslsfexpm1", + "gslsfexprel", + "gslsfexprel2", + "gslsfexpreln", + "gslsfexpintE1", + "gslsfexpintE2", + "gslsfexpintEn", + "gslsfexpintE1scaled", + "gslsfexpintE2scaled", + "gslsfexpintEnscaled", + "gslsfexpintEi", + "gslsfexpintEiscaled", + "gslsfShi", + "gslsfChi", + "gslsfexpint3", + "gslsfSi", + "gslsfCi", + "gslsfatanint", + "gslsffermidiracm1", + "gslsffermidirac0", + "gslsffermidirac1", + "gslsffermidirac2", + "gslsffermidiracint", + "gslsffermidiracmhalf", + "gslsffermidirachalf", + "gslsffermidirac3half", + "gslsffermidiracinc0", + "gslsflngamma", + "gslsfgamma", + "gslsfgammastar", + "gslsfgammainv", + "gslsftaylorcoeff", + "gslsffact", + "gslsfdoublefact", + "gslsflnfact", + "gslsflndoublefact", + "gslsflnchoose", + "gslsfchoose", + "gslsflnpoch", + "gslsfpoch", + "gslsfpochrel", + "gslsfgammaincQ", + "gslsfgammaincP", + "gslsfgammainc", + "gslsflnbeta", + "gslsfbeta", + "gslsfbetainc", + "gslsfgegenpoly1", + "gslsfgegenpoly2", + "gslsfgegenpoly3", + "gslsfgegenpolyn", + "gslsfhyperg0F1", + "gslsfhyperg1F1int", + "gslsfhyperg1F1", + "gslsfhypergUint", + "gslsfhypergU", + "gslsfhyperg2F0", + "gslsflaguerre1", + "gslsflaguerre2", + "gslsflaguerre3", + "gslsflaguerren", + "gslsflambertW0", + "gslsflambertWm1", + "gslsflegendrePl", + "gslsflegendreP1", + "gslsflegendreP2", + "gslsflegendreP3", + "gslsflegendreQ0", + "gslsflegendreQ1", + "gslsflegendreQl", + "gslsflegendrePlm", + "gslsflegendresphPlm", + "gslsflegendrearraysize", + "gslsfconicalPhalf", + "gslsfconicalPmhalf", + "gslsfconicalP0", + "gslsfconicalP1", + "gslsfconicalPsphreg", + "gslsfconicalPcylreg", + "gslsflegendreH3d0", + "gslsflegendreH3d1", + "gslsflegendreH3d", + "gslsflog", + "gslsflogabs", + "gslsflog1plusx", + "gslsflog1plusxmx", + "gslsfpowint", + "gslsfpsiint", + "gslsfpsi", + "gslsfpsi1piy", + "gslsfpsi1int", + "gslsfpsi1", + "gslsfpsin", + "gslsfsynchrotron1", + "gslsfsynchrotron2", + "gslsftransport2", + "gslsftransport3", + "gslsftransport4", + "gslsftransport5", + "gslsfsin", + "gslsfcos", + "gslsfhypot", + "gslsfsinc", + "gslsflnsinh", + "gslsflncosh", + "gslsfanglerestrictsymm", + "gslsfanglerestrictpos", + "gslsfzetaint", + "gslsfzeta", + "gslsfzetam1", + "gslsfzetam1int", + "gslsfhzeta", + "gslsfetaint", + "gslsfeta", + "imag", + "int1d", + "int2d", + "int3d", + "intalledges", + "intallfaces", + "interpolate", + "invdiff", + "invdiffnp", + "invdiffpos", + "Isend", + "isInf", + "isNaN", + "isoline", + "Irecv", + "j0", + "j1", + "jn", + "jump", + "lgamma", + "LinearCG", + "LinearGMRES", + "log", + "log10", + "lrint", + "lround", + "max", + "mean", + "medit", + "min", + "mmg3d", + "movemesh", + "movemesh23", + "mpiAlltoall", + "mpiAlltoallv", + "mpiAllgather", + "mpiAllgatherv", + "mpiAllReduce", + "mpiBarrier", + "mpiGather", + "mpiGatherv", + "mpiRank", + "mpiReduce", + "mpiScatter", + "mpiScatterv", + "mpiSize", + "mpiWait", + "mpiWaitAny", + "mpiWtick", + "mpiWtime", + "mshmet", + "NaN", + "NLCG", + "on", + "plot", + "polar", + "Post", + "pow", + "processor", + "processorblock", + "projection", + "randinit", + "randint31", + "randint32", + "random", + "randreal1", + "randreal2", + "randreal3", + "randres53", + "Read", + "readmesh", + "readmesh3", + "Recv", + "rint", + "round", + "savemesh", + "savesol", + "savevtk", + "seekg", + "Sent", + "set", + "sign", + "signbit", + "sin", + "sinh", + "sort", + "splitComm", + "splitmesh", + "sqrt", + "square", + "srandom", + "srandomdev", + "Stringification", + "swap", + "system", + "tan", + "tanh", + "tellg", + "tetg", + "tetgconvexhull", + "tetgreconstruction", + "tetgtransfo", + "tgamma", + "triangulate", + "trunc", + "Wait", + "Write", + "y0", + "y1", + "yn", } # function parameters parameters = { - 'A', - 'A1', - 'abserror', - 'absolute', - 'aniso', - 'aspectratio', - 'B', - 'B1', - 'bb', - 'beginend', - 'bin', - 'boundary', - 'bw', - 'close', - 'cmm', - 'coef', - 'composante', - 'cutoff', - 'datafilename', - 'dataname', - 'dim', - 'distmax', - 'displacement', - 'doptions', - 'dparams', - 'eps', - 'err', - 'errg', - 'facemerge', - 'facetcl', - 'factorize', - 'file', - 'fill', - 'fixedborder', - 'flabel', - 'flags', - 'floatmesh', - 'floatsol', - 'fregion', - 'gradation', - 'grey', - 'hmax', - 'hmin', - 'holelist', - 'hsv', - 'init', - 'inquire', - 'inside', - 'IsMetric', - 'iso', - 'ivalue', - 'keepbackvertices', - 'label', - 'labeldown', - 'labelmid', - 'labelup', - 'levelset', - 'loptions', - 'lparams', - 'maxit', - 'maxsubdiv', - 'meditff', - 'mem', - 'memory', - 'metric', - 'mode', - 'nbarrow', - 'nbiso', - 'nbiter', - 'nbjacoby', - 'nboffacetcl', - 'nbofholes', - 'nbofregions', - 'nbregul', - 'nbsmooth', - 'nbvx', - 'ncv', - 'nev', - 'nomeshgeneration', - 'normalization', - 'omega', - 'op', - 'optimize', - 'option', - 'options', - 'order', - 'orientation', - 'periodic', - 'power', - 'precon', - 'prev', - 'ps', - 'ptmerge', - 'qfe', - 'qforder', - 'qft', - 'qfV', - 'ratio', - 'rawvector', - 'reffacelow', - 'reffacemid', - 'reffaceup', - 'refnum', - 'reftet', - 'reftri', - 'region', - 'regionlist', - 'renumv', - 'rescaling', - 'ridgeangle', - 'save', - 'sigma', - 'sizeofvolume', - 'smoothing', - 'solver', - 'sparams', - 'split', - 'splitin2', - 'splitpbedge', - 'stop', - 'strategy', - 'swap', - 'switch', - 'sym', - 't', - 'tgv', - 'thetamax', - 'tol', - 'tolpivot', - 'tolpivotsym', - 'transfo', - 'U2Vc', - 'value', - 'varrow', - 'vector', - 'veps', - 'viso', - 'wait', - 'width', - 'withsurfacemesh', - 'WindowIndex', - 'which', - 'zbound' + "A", + "A1", + "abserror", + "absolute", + "aniso", + "aspectratio", + "B", + "B1", + "bb", + "beginend", + "bin", + "boundary", + "bw", + "close", + "cmm", + "coef", + "composante", + "cutoff", + "datafilename", + "dataname", + "dim", + "distmax", + "displacement", + "doptions", + "dparams", + "eps", + "err", + "errg", + "facemerge", + "facetcl", + "factorize", + "file", + "fill", + "fixedborder", + "flabel", + "flags", + "floatmesh", + "floatsol", + "fregion", + "gradation", + "grey", + "hmax", + "hmin", + "holelist", + "hsv", + "init", + "inquire", + "inside", + "IsMetric", + "iso", + "ivalue", + "keepbackvertices", + "label", + "labeldown", + "labelmid", + "labelup", + "levelset", + "loptions", + "lparams", + "maxit", + "maxsubdiv", + "meditff", + "mem", + "memory", + "metric", + "mode", + "nbarrow", + "nbiso", + "nbiter", + "nbjacoby", + "nboffacetcl", + "nbofholes", + "nbofregions", + "nbregul", + "nbsmooth", + "nbvx", + "ncv", + "nev", + "nomeshgeneration", + "normalization", + "omega", + "op", + "optimize", + "option", + "options", + "order", + "orientation", + "periodic", + "power", + "precon", + "prev", + "ps", + "ptmerge", + "qfe", + "qforder", + "qft", + "qfV", + "ratio", + "rawvector", + "reffacelow", + "reffacemid", + "reffaceup", + "refnum", + "reftet", + "reftri", + "region", + "regionlist", + "renumv", + "rescaling", + "ridgeangle", + "save", + "sigma", + "sizeofvolume", + "smoothing", + "solver", + "sparams", + "split", + "splitin2", + "splitpbedge", + "stop", + "strategy", + "swap", + "switch", + "sym", + "t", + "tgv", + "thetamax", + "tol", + "tolpivot", + "tolpivotsym", + "transfo", + "U2Vc", + "value", + "varrow", + "vector", + "veps", + "viso", + "wait", + "width", + "withsurfacemesh", + "WindowIndex", + "which", + "zbound", } # deprecated - deprecated = {'fixeborder'} + deprecated = {"fixeborder"} # do not highlight suppress_highlight = { - 'alignof', - 'asm', - 'constexpr', - 'decltype', - 'div', - 'double', - 'grad', - 'mutable', - 'namespace', - 'noexcept', - 'restrict', - 'static_assert', - 'template', - 'this', - 'thread_local', - 'typeid', - 'typename', - 'using' + "alignof", + "asm", + "constexpr", + "decltype", + "div", + "double", + "grad", + "mutable", + "namespace", + "noexcept", + "restrict", + "static_assert", + "template", + "this", + "thread_local", + "typeid", + "typename", + "using", } - def get_tokens_unprocessed(self, text, stack=('root',)): + def get_tokens_unprocessed(self, text, stack=("root",)): for index, token, value in CppLexer.get_tokens_unprocessed(self, text, stack): if value in self.operators: yield index, Operator, value diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/func.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/func.py index d8c912a..7ee86a4 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/func.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/func.py @@ -1,18 +1,27 @@ """ - pygments.lexers.func - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.func +~~~~~~~~~~~~~~~~~~~~ - Lexers for FunC. +Lexers for FunC. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, words -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Whitespace, Punctuation +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Whitespace, + Punctuation, +) -__all__ = ['FuncLexer'] +__all__ = ["FuncLexer"] class FuncLexer(RegexLexer): @@ -20,91 +29,156 @@ class FuncLexer(RegexLexer): For FunC source code. """ - name = 'FunC' - aliases = ['func', 'fc'] - filenames = ['*.fc', '*.func'] - url = 'https://docs.ton.org/develop/func/overview' - version_added = '' + name = "FunC" + aliases = ["func", "fc"] + filenames = ["*.fc", "*.func"] + url = "https://docs.ton.org/develop/func/overview" + version_added = "" # 1. Does not start from " # 2. Can start from ` and end with `, containing any character # 3. Starts with underscore or { or } and have more than 1 character after it # 4. Starts with letter, contains letters, numbers and underscores - identifier = r'(?!")(`([^`]+)`|((?=_)_|(?=\{)\{|(?=\})\}|(?![_`{}]))([^;,\[\]\(\)\s~.]+))' + identifier = ( + r'(?!")(`([^`]+)`|((?=_)_|(?=\{)\{|(?=\})\}|(?![_`{}]))([^;,\[\]\(\)\s~.]+))' + ) tokens = { - 'root': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), - - include('keywords'), - include('strings'), - include('directives'), - include('numeric'), - include('comments'), - include('storage'), - include('functions'), - include('variables'), - - (r'[.;(),\[\]~{}]', Punctuation) + "root": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), + include("keywords"), + include("strings"), + include("directives"), + include("numeric"), + include("comments"), + include("storage"), + include("functions"), + include("variables"), + (r"[.;(),\[\]~{}]", Punctuation), ], - 'keywords': [ - (words(( - '<=>', '>=', '<=', '!=', '==', '^>>', '~>>', - '>>', '<<', '/%', '^%', '~%', '^/', '~/', '+=', - '-=', '*=', '/=', '~/=', '^/=', '%=', '^%=', '<<=', - '>>=', '~>>=', '^>>=', '&=', '|=', '^=', '^', '=', - '~', '/', '%', '-', '*', '+','>', - '<', '&', '|', ':', '?'), prefix=r'(?<=\s)', suffix=r'(?=\s)'), - Operator), - (words(( - 'if', 'ifnot', - 'else', 'elseif', 'elseifnot', - 'while', 'do', 'until', 'repeat', - 'return', 'impure', 'method_id', - 'forall', 'asm', 'inline', 'inline_ref'), prefix=r'\b', suffix=r'\b'), - Keyword), - (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Constant), + "keywords": [ + ( + words( + ( + "<=>", + ">=", + "<=", + "!=", + "==", + "^>>", + "~>>", + ">>", + "<<", + "/%", + "^%", + "~%", + "^/", + "~/", + "+=", + "-=", + "*=", + "/=", + "~/=", + "^/=", + "%=", + "^%=", + "<<=", + ">>=", + "~>>=", + "^>>=", + "&=", + "|=", + "^=", + "^", + "=", + "~", + "/", + "%", + "-", + "*", + "+", + ">", + "<", + "&", + "|", + ":", + "?", + ), + prefix=r"(?<=\s)", + suffix=r"(?=\s)", + ), + Operator, + ), + ( + words( + ( + "if", + "ifnot", + "else", + "elseif", + "elseifnot", + "while", + "do", + "until", + "repeat", + "return", + "impure", + "method_id", + "forall", + "asm", + "inline", + "inline_ref", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + (words(("true", "false"), prefix=r"\b", suffix=r"\b"), Keyword.Constant), ], - 'directives': [ - (r'#include|#pragma', Keyword, 'directive'), + "directives": [ + (r"#include|#pragma", Keyword, "directive"), ], - 'directive': [ - include('strings'), - (r'\s+', Whitespace), - (r'version|not-version', Keyword), - (r'(>=|<=|=|>|<|\^)?([0-9]+)(.[0-9]+)?(.[0-9]+)?', Number), # version - (r';', Text, '#pop') + "directive": [ + include("strings"), + (r"\s+", Whitespace), + (r"version|not-version", Keyword), + (r"(>=|<=|=|>|<|\^)?([0-9]+)(.[0-9]+)?(.[0-9]+)?", Number), # version + (r";", Text, "#pop"), ], - 'strings': [ - (r'\"([^\n\"]+)\"[Hhcusa]?', String), + "strings": [ + (r"\"([^\n\"]+)\"[Hhcusa]?", String), ], - 'numeric': [ - (r'\b(-?(?!_)([\d_]+|0x[\d_a-fA-F]+)|0b[1_0]+)(?<\|&\^' tokens = { - 'root': [ - (r'--(.*?)$', Comment.Single), - (r'\s+', Whitespace), - (r'\(\)', Punctuation), - (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved), - (r'\b({})(?!\')\b'.format('|'.join(num_types + other_types)), Keyword.Type), - + "root": [ + (r"--(.*?)$", Comment.Single), + (r"\s+", Whitespace), + (r"\(\)", Punctuation), + (r"\b({})(?!\')\b".format("|".join(reserved)), Keyword.Reserved), + (r"\b({})(?!\')\b".format("|".join(num_types + other_types)), Keyword.Type), # Identifiers - (r'#\[([a-zA-Z_\(\) ]*)\]', Comment.Preproc), - (rf'[#!]?({identifier_re}\.)*{identifier_re}', Name), - - (r'\\', Operator), - (r'[-+/%=!><|&*^][-+/%=!><|&*^.]*', Operator), - (r'[][(),:;`{}?.\'~^]', Punctuation), - + (r"#\[([a-zA-Z_\(\) ]*)\]", Comment.Preproc), + (rf"[#!]?({identifier_re}\.)*{identifier_re}", Name), + (r"\\", Operator), + (r"[-+/%=!><|&*^][-+/%=!><|&*^.]*", Operator), + (r"[][(),:;`{}?.\'~^]", Punctuation), # Numbers - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*' + num_postfix, - Number.Float), - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*' - r'(_*[pP][+-]?\d(_*\d)*)?' + num_postfix, Number.Float), - (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*' + num_postfix, Number.Float), - (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?' + num_postfix, Number.Float), - (r'0[bB]_*[01](_*[01])*' + num_postfix, Number.Bin), - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*' + num_postfix, Number.Hex), - (r'\d(_*\d)*' + num_postfix, Number.Integer), - + ( + r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*" + num_postfix, + Number.Float, + ), + ( + r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*" + r"(_*[pP][+-]?\d(_*\d)*)?" + num_postfix, + Number.Float, + ), + (r"\d(_*\d)*_*[eE][+-]?\d(_*\d)*" + num_postfix, Number.Float), + ( + r"\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?" + num_postfix, + Number.Float, + ), + (r"0[bB]_*[01](_*[01])*" + num_postfix, Number.Bin), + (r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*" + num_postfix, Number.Hex), + (r"\d(_*\d)*" + num_postfix, Number.Integer), # Character/String Literals - (r"'", String.Char, 'character'), - (r'"', String, 'string'), + (r"'", String.Char, "character"), + (r'"', String, "string"), # Special - (r'\[[a-zA-Z_\d]*\]', Keyword.Type), - (r'\(\)', Name.Builtin), + (r"\[[a-zA-Z_\d]*\]", Keyword.Type), + (r"\(\)", Name.Builtin), ], - 'character': [ + "character": [ # Allows multi-chars, incorrectly. - (r"[^\\']'", String.Char, '#pop'), - (r"\\", String.Escape, 'escape'), - ("'", String.Char, '#pop'), + (r"[^\\']'", String.Char, "#pop"), + (r"\\", String.Escape, "escape"), + ("'", String.Char, "#pop"), ], - 'string': [ + "string": [ (r'[^\\"]+', String), - (r"\\", String.Escape, 'escape'), - ('"', String, '#pop'), + (r"\\", String.Escape, "escape"), + ('"', String, "#pop"), ], - - 'escape': [ - (r'[abfnrtv"\'&\\]', String.Escape, '#pop'), - (r'\^[][' + uni.Lu + r'@^_]', String.Escape, '#pop'), - ('|'.join(ascii), String.Escape, '#pop'), - (r'o[0-7]+', String.Escape, '#pop'), - (r'x[\da-fA-F]+', String.Escape, '#pop'), - (r'\d+', String.Escape, '#pop'), - (r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop'), + "escape": [ + (r'[abfnrtv"\'&\\]', String.Escape, "#pop"), + (r"\^[][" + uni.Lu + r"@^_]", String.Escape, "#pop"), + ("|".join(ascii), String.Escape, "#pop"), + (r"o[0-7]+", String.Escape, "#pop"), + (r"x[\da-fA-F]+", String.Escape, "#pop"), + (r"\d+", String.Escape, "#pop"), + (r"(\s+)(\\)", bygroups(Whitespace, String.Escape), "#pop"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gcodelexer.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gcodelexer.py index 9e968bd..8126c48 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gcodelexer.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gcodelexer.py @@ -1,35 +1,36 @@ """ - pygments.lexers.gcodelexer - ~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.gcodelexer +~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for the G Code Language. +Lexers for the G Code Language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups from pygments.token import Comment, Name, Text, Keyword, Number -__all__ = ['GcodeLexer'] +__all__ = ["GcodeLexer"] class GcodeLexer(RegexLexer): """ For gcode source code. """ - name = 'g-code' - aliases = ['gcode'] - filenames = ['*.gcode'] - url = 'https://en.wikipedia.org/wiki/G-code' - version_added = '2.9' + + name = "g-code" + aliases = ["gcode"] + filenames = ["*.gcode"] + url = "https://en.wikipedia.org/wiki/G-code" + version_added = "2.9" tokens = { - 'root': [ - (r';.*\n', Comment), - (r'^[gmGM]\d{1,4}\s', Name.Builtin), # M or G commands - (r'([^gGmM])([+-]?\d*[.]?\d+)', bygroups(Keyword, Number)), - (r'\s', Text.Whitespace), - (r'.*\n', Text), + "root": [ + (r";.*\n", Comment), + (r"^[gmGM]\d{1,4}\s", Name.Builtin), # M or G commands + (r"([^gGmM])([+-]?\d*[.]?\d+)", bygroups(Keyword, Number)), + (r"\s", Text.Whitespace), + (r".*\n", Text), ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gdscript.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gdscript.py index 6dfe589..e67d59c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gdscript.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gdscript.py @@ -1,22 +1,30 @@ """ - pygments.lexers.gdscript - ~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.gdscript +~~~~~~~~~~~~~~~~~~~~~~~~ - Lexer for GDScript. +Lexer for GDScript. - Modified by Daniel J. Ramirez based on the original - python.py. +Modified by Daniel J. Ramirez based on the original +python.py. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import RegexLexer, include, bygroups, default, words, \ - combined -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.lexer import RegexLexer, include, bygroups, default, words, combined +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) __all__ = ["GDScriptLexer"] @@ -27,18 +35,20 @@ class GDScriptLexer(RegexLexer): """ name = "GDScript" - url = 'https://www.godotengine.org' + url = "https://www.godotengine.org" aliases = ["gdscript", "gd"] filenames = ["*.gd"] mimetypes = ["text/x-gdscript", "application/x-gdscript"] - version_added = '' + version_added = "" def innerstring_rules(ttype): return [ # the old style '%s' % (...) string formatting - (r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?" - "[hlL]?[E-GXc-giorsux%]", - String.Interpol), + ( + r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?" + "[hlL]?[E-GXc-giorsux%]", + String.Interpol, + ), # backslashes, quotes and formatting signs must be parsed one at a time (r'[^\\\'"%\n]+', ttype), (r'[\'"\\]', ttype), @@ -50,84 +60,239 @@ class GDScriptLexer(RegexLexer): tokens = { "root": [ (r"\n", Whitespace), - (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")', - bygroups(Whitespace, String.Affix, String.Doc)), - (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')", - bygroups(Whitespace, String.Affix, String.Doc)), + ( + r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")', + bygroups(Whitespace, String.Affix, String.Doc), + ), + ( + r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')", + bygroups(Whitespace, String.Affix, String.Doc), + ), (r"[^\S\n]+", Whitespace), (r"#.*$", Comment.Single), (r"[]{}:(),;[]", Punctuation), (r"(\\)(\n)", bygroups(Text, Whitespace)), (r"\\", Text), (r"(in|and|or|not)\b", Operator.Word), - (r"!=|==|<<|>>|&&|\+=|-=|\*=|/=|%=|&=|\|=|\|\||[-~+/*%=<>&^.!|$]", - Operator), + ( + r"!=|==|<<|>>|&&|\+=|-=|\*=|/=|%=|&=|\|=|\|\||[-~+/*%=<>&^.!|$]", + Operator, + ), include("keywords"), (r"(func)(\s+)", bygroups(Keyword, Whitespace), "funcname"), (r"(class)(\s+)", bygroups(Keyword, Whitespace), "classname"), include("builtins"), - ('([rR]|[uUbB][rR]|[rR][uUbB])(""")', - bygroups(String.Affix, String.Double), - "tdqs"), - ("([rR]|[uUbB][rR]|[rR][uUbB])(''')", - bygroups(String.Affix, String.Single), - "tsqs"), - ('([rR]|[uUbB][rR]|[rR][uUbB])(")', - bygroups(String.Affix, String.Double), - "dqs"), - ("([rR]|[uUbB][rR]|[rR][uUbB])(')", - bygroups(String.Affix, String.Single), - "sqs"), - ('([uUbB]?)(""")', - bygroups(String.Affix, String.Double), - combined("stringescape", "tdqs")), - ("([uUbB]?)(''')", - bygroups(String.Affix, String.Single), - combined("stringescape", "tsqs")), - ('([uUbB]?)(")', - bygroups(String.Affix, String.Double), - combined("stringescape", "dqs")), - ("([uUbB]?)(')", - bygroups(String.Affix, String.Single), - combined("stringescape", "sqs")), + ( + '([rR]|[uUbB][rR]|[rR][uUbB])(""")', + bygroups(String.Affix, String.Double), + "tdqs", + ), + ( + "([rR]|[uUbB][rR]|[rR][uUbB])(''')", + bygroups(String.Affix, String.Single), + "tsqs", + ), + ( + '([rR]|[uUbB][rR]|[rR][uUbB])(")', + bygroups(String.Affix, String.Double), + "dqs", + ), + ( + "([rR]|[uUbB][rR]|[rR][uUbB])(')", + bygroups(String.Affix, String.Single), + "sqs", + ), + ( + '([uUbB]?)(""")', + bygroups(String.Affix, String.Double), + combined("stringescape", "tdqs"), + ), + ( + "([uUbB]?)(''')", + bygroups(String.Affix, String.Single), + combined("stringescape", "tsqs"), + ), + ( + '([uUbB]?)(")', + bygroups(String.Affix, String.Double), + combined("stringescape", "dqs"), + ), + ( + "([uUbB]?)(')", + bygroups(String.Affix, String.Single), + combined("stringescape", "sqs"), + ), include("name"), include("numbers"), ], "keywords": [ - (words(("and", "in", "not", "or", "as", "breakpoint", "class", - "class_name", "extends", "is", "func", "setget", "signal", - "tool", "const", "enum", "export", "onready", "static", - "var", "break", "continue", "if", "elif", "else", "for", - "pass", "return", "match", "while", "remote", "master", - "puppet", "remotesync", "mastersync", "puppetsync"), - suffix=r"\b"), Keyword), + ( + words( + ( + "and", + "in", + "not", + "or", + "as", + "breakpoint", + "class", + "class_name", + "extends", + "is", + "func", + "setget", + "signal", + "tool", + "const", + "enum", + "export", + "onready", + "static", + "var", + "break", + "continue", + "if", + "elif", + "else", + "for", + "pass", + "return", + "match", + "while", + "remote", + "master", + "puppet", + "remotesync", + "mastersync", + "puppetsync", + ), + suffix=r"\b", + ), + Keyword, + ), ], "builtins": [ - (words(("Color8", "ColorN", "abs", "acos", "asin", "assert", "atan", - "atan2", "bytes2var", "ceil", "char", "clamp", "convert", - "cos", "cosh", "db2linear", "decimals", "dectime", "deg2rad", - "dict2inst", "ease", "exp", "floor", "fmod", "fposmod", - "funcref", "hash", "inst2dict", "instance_from_id", "is_inf", - "is_nan", "lerp", "linear2db", "load", "log", "max", "min", - "nearest_po2", "pow", "preload", "print", "print_stack", - "printerr", "printraw", "prints", "printt", "rad2deg", - "rand_range", "rand_seed", "randf", "randi", "randomize", - "range", "round", "seed", "sign", "sin", "sinh", "sqrt", - "stepify", "str", "str2var", "tan", "tan", "tanh", - "type_exist", "typeof", "var2bytes", "var2str", "weakref", - "yield"), prefix=r"(?|\|\||\||\->|<\-|&&|<<|>>|\.\.|\.|=)', Punctuation), - + (r"[()\[\]{}:;,@]+", Punctuation), + (r"(#|!=|!|==|\|>|\|\||\||\->|<\-|&&|<<|>>|\.\.|\.|=)", Punctuation), # Operators - (r'(<>|\+\.?|\-\.?|\*\.?|/\.?|%\.?|<=\.?|>=\.?|<\.?|>\.?|=)', Operator), - + (r"(<>|\+\.?|\-\.?|\*\.?|/\.?|%\.?|<=\.?|>=\.?|<\.?|>\.?|=)", Operator), # Strings (r'"(\\"|[^"])*"', String), - # Identifiers - (r'\b(let)(\s+)(\w+)', bygroups(Keyword, Whitespace, Name.Variable)), - (r'\b(fn)(\s+)(\w+)', bygroups(Keyword, Whitespace, Name.Function)), - (r'[a-zA-Z_/]\w*', Name), - + (r"\b(let)(\s+)(\w+)", bygroups(Keyword, Whitespace, Name.Variable)), + (r"\b(fn)(\s+)(\w+)", bygroups(Keyword, Whitespace, Name.Function)), + (r"[a-zA-Z_/]\w*", Name), # numbers - (r'(\d+(_\d+)*\.(?!\.)(\d+(_\d+)*)?|\.\d+(_\d+)*)([eEf][+-]?[0-9]+)?', Number.Float), - (r'\d+(_\d+)*[eEf][+-]?[0-9]+', Number.Float), - (r'0[xX][a-fA-F0-9]+(_[a-fA-F0-9]+)*(\.([a-fA-F0-9]+(_[a-fA-F0-9]+)*)?)?p[+-]?\d+', Number.Float), - (r'0[bB][01]+(_[01]+)*', Number.Bin), - (r'0[oO][0-7]+(_[0-7]+)*', Number.Oct), - (r'0[xX][a-fA-F0-9]+(_[a-fA-F0-9]+)*', Number.Hex), - (r'\d+(_\d+)*', Number.Integer), - + ( + r"(\d+(_\d+)*\.(?!\.)(\d+(_\d+)*)?|\.\d+(_\d+)*)([eEf][+-]?[0-9]+)?", + Number.Float, + ), + (r"\d+(_\d+)*[eEf][+-]?[0-9]+", Number.Float), + ( + r"0[xX][a-fA-F0-9]+(_[a-fA-F0-9]+)*(\.([a-fA-F0-9]+(_[a-fA-F0-9]+)*)?)?p[+-]?\d+", + Number.Float, + ), + (r"0[bB][01]+(_[01]+)*", Number.Bin), + (r"0[oO][0-7]+(_[0-7]+)*", Number.Oct), + (r"0[xX][a-fA-F0-9]+(_[a-fA-F0-9]+)*", Number.Hex), + (r"\d+(_\d+)*", Number.Integer), # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/go.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/go.py index 77a0fbc..fb0b2ae 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/go.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/go.py @@ -1,97 +1,191 @@ """ - pygments.lexers.go - ~~~~~~~~~~~~~~~~~~ +pygments.lexers.go +~~~~~~~~~~~~~~~~~~ - Lexers for the Google Go language. +Lexers for the Google Go language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, words -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['GoLexer'] +__all__ = ["GoLexer"] class GoLexer(RegexLexer): """ For Go source. """ - name = 'Go' - url = 'https://go.dev/' - filenames = ['*.go'] - aliases = ['go', 'golang'] - mimetypes = ['text/x-gosrc'] - version_added = '1.2' + + name = "Go" + url = "https://go.dev/" + filenames = ["*.go"] + aliases = ["go", "golang"] + mimetypes = ["text/x-gosrc"] + version_added = "1.2" tokens = { - 'root': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(Text, Whitespace)), # line continuations - (r'//(.*?)$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'(import|package)\b', Keyword.Namespace), - (r'(var|func|struct|map|chan|type|interface|const)\b', - Keyword.Declaration), - (words(( - 'break', 'default', 'select', 'case', 'defer', 'go', - 'else', 'goto', 'switch', 'fallthrough', 'if', 'range', - 'continue', 'for', 'return'), suffix=r'\b'), - Keyword), - (r'(true|false|iota|nil)\b', Keyword.Constant), + "root": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(Text, Whitespace)), # line continuations + (r"//(.*?)$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"(import|package)\b", Keyword.Namespace), + (r"(var|func|struct|map|chan|type|interface|const)\b", Keyword.Declaration), + ( + words( + ( + "break", + "default", + "select", + "case", + "defer", + "go", + "else", + "goto", + "switch", + "fallthrough", + "if", + "range", + "continue", + "for", + "return", + ), + suffix=r"\b", + ), + Keyword, + ), + (r"(true|false|iota|nil)\b", Keyword.Constant), # It seems the builtin types aren't actually keywords, but # can be used as functions. So we need two declarations. - (words(( - 'uint', 'uint8', 'uint16', 'uint32', 'uint64', - 'int', 'int8', 'int16', 'int32', 'int64', - 'float', 'float32', 'float64', - 'complex64', 'complex128', 'byte', 'rune', - 'string', 'bool', 'error', 'uintptr', 'any', 'comparable', - 'print', 'println', 'panic', 'recover', 'close', 'complex', - 'real', 'imag', 'len', 'cap', 'append', 'copy', 'delete', - 'new', 'make', 'min', 'max', 'clear'), suffix=r'\b(\()'), - bygroups(Name.Builtin, Punctuation)), - (words(( - 'uint', 'uint8', 'uint16', 'uint32', 'uint64', - 'int', 'int8', 'int16', 'int32', 'int64', - 'float', 'float32', 'float64', - 'complex64', 'complex128', 'byte', 'rune', - 'string', 'bool', 'error', 'uintptr', 'any', 'comparable'), suffix=r'\b'), - Keyword.Type), + ( + words( + ( + "uint", + "uint8", + "uint16", + "uint32", + "uint64", + "int", + "int8", + "int16", + "int32", + "int64", + "float", + "float32", + "float64", + "complex64", + "complex128", + "byte", + "rune", + "string", + "bool", + "error", + "uintptr", + "any", + "comparable", + "print", + "println", + "panic", + "recover", + "close", + "complex", + "real", + "imag", + "len", + "cap", + "append", + "copy", + "delete", + "new", + "make", + "min", + "max", + "clear", + ), + suffix=r"\b(\()", + ), + bygroups(Name.Builtin, Punctuation), + ), + ( + words( + ( + "uint", + "uint8", + "uint16", + "uint32", + "uint64", + "int", + "int8", + "int16", + "int32", + "int64", + "float", + "float32", + "float64", + "complex64", + "complex128", + "byte", + "rune", + "string", + "bool", + "error", + "uintptr", + "any", + "comparable", + ), + suffix=r"\b", + ), + Keyword.Type, + ), # imaginary_lit - (r'\d+i', Number), - (r'\d+\.\d*([Ee][-+]\d+)?i', Number), - (r'\.\d+([Ee][-+]\d+)?i', Number), - (r'\d+[Ee][-+]\d+i', Number), + (r"\d+i", Number), + (r"\d+\.\d*([Ee][-+]\d+)?i", Number), + (r"\.\d+([Ee][-+]\d+)?i", Number), + (r"\d+[Ee][-+]\d+i", Number), # float_lit - (r'\d+(\.\d+[eE][+\-]?\d+|' - r'\.\d*|[eE][+\-]?\d+)', Number.Float), - (r'\.\d+([eE][+\-]?\d+)?', Number.Float), + (r"\d+(\.\d+[eE][+\-]?\d+|" r"\.\d*|[eE][+\-]?\d+)", Number.Float), + (r"\.\d+([eE][+\-]?\d+)?", Number.Float), # int_lit # -- octal_lit - (r'0[0-7]+', Number.Oct), + (r"0[0-7]+", Number.Oct), # -- hex_lit - (r'0[xX][0-9a-fA-F]+', Number.Hex), + (r"0[xX][0-9a-fA-F]+", Number.Hex), # -- decimal_lit - (r'(0|[1-9][0-9]*)', Number.Integer), + (r"(0|[1-9][0-9]*)", Number.Integer), # char_lit - (r"""'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" - r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'""", - String.Char), + ( + r"""'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" + r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'""", + String.Char, + ), # StringLiteral # -- raw_string_lit - (r'`[^`]*`', String), + (r"`[^`]*`", String), # -- interpreted_string_lit (r'"(\\\\|\\[^\\]|[^"\\])*"', String), # Tokens - (r'(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\|' - r'|<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&]' - r'|~|\|)', Operator), - (r'[|^<>=!()\[\]{}.,;:]', Punctuation), + ( + r"(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\|" + r"|<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&]" + r"|~|\|)", + Operator, + ), + (r"[|^<>=!()\[\]{}.,;:]", Punctuation), # identifier - (r'[^\W\d]\w*', Name.Other), + (r"[^\W\d]\w*", Name.Other), ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/grammar_notation.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/grammar_notation.py index 45274fd..02e66b3 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/grammar_notation.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/grammar_notation.py @@ -1,18 +1,28 @@ """ - pygments.lexers.grammar_notation - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.grammar_notation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for grammar notations like BNF. +Lexers for grammar notations like BNF. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, include, this, using, words -from pygments.token import Comment, Keyword, Literal, Name, Number, \ - Operator, Punctuation, String, Text, Whitespace +from pygments.token import ( + Comment, + Keyword, + Literal, + Name, + Number, + Operator, + Punctuation, + String, + Text, + Whitespace, +) -__all__ = ['BnfLexer', 'AbnfLexer', 'JsgfLexer', 'PegLexer'] +__all__ = ["BnfLexer", "AbnfLexer", "JsgfLexer", "PegLexer"] class BnfLexer(RegexLexer): @@ -41,24 +51,21 @@ class BnfLexer(RegexLexer): and you might be disappointed, but it is reasonable for us. """ - name = 'BNF' - aliases = ['bnf'] - filenames = ['*.bnf'] - mimetypes = ['text/x-bnf'] - url = 'https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form' - version_added = '2.1' + name = "BNF" + aliases = ["bnf"] + filenames = ["*.bnf"] + mimetypes = ["text/x-bnf"] + url = "https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form" + version_added = "2.1" tokens = { - 'root': [ - (r'(<)([ -;=?-~]+)(>)', - bygroups(Punctuation, Name.Class, Punctuation)), - + "root": [ + (r"(<)([ -;=?-~]+)(>)", bygroups(Punctuation, Name.Class, Punctuation)), # an only operator - (r'::=', Operator), - + (r"::=", Operator), # fallback - (r'[^<>:]+', Text), # for performance - (r'.', Text), + (r"[^<>:]+", Text), # for performance + (r".", Text), ], } @@ -70,61 +77,65 @@ class AbnfLexer(RegexLexer): (Updates `5234 `_) grammars. """ - name = 'ABNF' - url = 'http://www.ietf.org/rfc/rfc7405.txt' - aliases = ['abnf'] - filenames = ['*.abnf'] - mimetypes = ['text/x-abnf'] - version_added = '2.1' + name = "ABNF" + url = "http://www.ietf.org/rfc/rfc7405.txt" + aliases = ["abnf"] + filenames = ["*.abnf"] + mimetypes = ["text/x-abnf"] + version_added = "2.1" _core_rules = ( - 'ALPHA', 'BIT', 'CHAR', 'CR', 'CRLF', 'CTL', 'DIGIT', - 'DQUOTE', 'HEXDIG', 'HTAB', 'LF', 'LWSP', 'OCTET', - 'SP', 'VCHAR', 'WSP') + "ALPHA", + "BIT", + "CHAR", + "CR", + "CRLF", + "CTL", + "DIGIT", + "DQUOTE", + "HEXDIG", + "HTAB", + "LF", + "LWSP", + "OCTET", + "SP", + "VCHAR", + "WSP", + ) tokens = { - 'root': [ + "root": [ # comment - (r';.*$', Comment.Single), - + (r";.*$", Comment.Single), # quoted # double quote itself in this state, it is as '%x22'. (r'(%[si])?"[^"]*"', Literal), - # binary (but i have never seen...) - (r'%b[01]+\-[01]+\b', Literal), # range - (r'%b[01]+(\.[01]+)*\b', Literal), # concat - + (r"%b[01]+\-[01]+\b", Literal), # range + (r"%b[01]+(\.[01]+)*\b", Literal), # concat # decimal - (r'%d[0-9]+\-[0-9]+\b', Literal), # range - (r'%d[0-9]+(\.[0-9]+)*\b', Literal), # concat - + (r"%d[0-9]+\-[0-9]+\b", Literal), # range + (r"%d[0-9]+(\.[0-9]+)*\b", Literal), # concat # hexadecimal - (r'%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b', Literal), # range - (r'%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b', Literal), # concat - + (r"%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b", Literal), # range + (r"%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b", Literal), # concat # repetition (*element) including nRule - (r'\b[0-9]+\*[0-9]+', Operator), - (r'\b[0-9]+\*', Operator), - (r'\b[0-9]+', Operator), - (r'\*', Operator), - + (r"\b[0-9]+\*[0-9]+", Operator), + (r"\b[0-9]+\*", Operator), + (r"\b[0-9]+", Operator), + (r"\*", Operator), # Strictly speaking, these are not keyword but # are called `Core Rule'. - (words(_core_rules, suffix=r'\b'), Keyword), - + (words(_core_rules, suffix=r"\b"), Keyword), # nonterminals (ALPHA *(ALPHA / DIGIT / "-")) - (r'[a-zA-Z][a-zA-Z0-9-]*\b', Name.Class), - + (r"[a-zA-Z][a-zA-Z0-9-]*\b", Name.Class), # operators - (r'(=/|=|/)', Operator), - + (r"(=/|=|/)", Operator), # punctuation - (r'[\[\]()]', Punctuation), - + (r"[\[\]()]", Punctuation), # fallback - (r'\s+', Whitespace), - (r'.', Text), + (r"\s+", Whitespace), + (r".", Text), ], } @@ -133,75 +144,82 @@ class JsgfLexer(RegexLexer): """ For JSpeech Grammar Format grammars. """ - name = 'JSGF' - url = 'https://www.w3.org/TR/jsgf/' - aliases = ['jsgf'] - filenames = ['*.jsgf'] - mimetypes = ['application/jsgf', 'application/x-jsgf', 'text/jsgf'] - version_added = '2.2' + + name = "JSGF" + url = "https://www.w3.org/TR/jsgf/" + aliases = ["jsgf"] + filenames = ["*.jsgf"] + mimetypes = ["application/jsgf", "application/x-jsgf", "text/jsgf"] + version_added = "2.2" tokens = { - 'root': [ - include('comments'), - include('non-comments'), + "root": [ + include("comments"), + include("non-comments"), ], - 'comments': [ - (r'/\*\*(?!/)', Comment.Multiline, 'documentation comment'), - (r'/\*[\w\W]*?\*/', Comment.Multiline), - (r'//.*$', Comment.Single), + "comments": [ + (r"/\*\*(?!/)", Comment.Multiline, "documentation comment"), + (r"/\*[\w\W]*?\*/", Comment.Multiline), + (r"//.*$", Comment.Single), ], - 'non-comments': [ - (r'\A#JSGF[^;]*', Comment.Preproc), - (r'\s+', Whitespace), - (r';', Punctuation), - (r'[=|()\[\]*+]', Operator), - (r'/[^/]+/', Number.Float), - (r'"', String.Double, 'string'), - (r'\{', String.Other, 'tag'), - (words(('import', 'public'), suffix=r'\b'), Keyword.Reserved), - (r'grammar\b', Keyword.Reserved, 'grammar name'), - (r'(<)(NULL|VOID)(>)', - bygroups(Punctuation, Name.Builtin, Punctuation)), - (r'<', Punctuation, 'rulename'), + "non-comments": [ + (r"\A#JSGF[^;]*", Comment.Preproc), + (r"\s+", Whitespace), + (r";", Punctuation), + (r"[=|()\[\]*+]", Operator), + (r"/[^/]+/", Number.Float), + (r'"', String.Double, "string"), + (r"\{", String.Other, "tag"), + (words(("import", "public"), suffix=r"\b"), Keyword.Reserved), + (r"grammar\b", Keyword.Reserved, "grammar name"), + (r"(<)(NULL|VOID)(>)", bygroups(Punctuation, Name.Builtin, Punctuation)), + (r"<", Punctuation, "rulename"), (r'\w+|[^\s;=|()\[\]*+/"{<\w]+', Text), ], - 'string': [ - (r'"', String.Double, '#pop'), - (r'\\.', String.Escape), + "string": [ + (r'"', String.Double, "#pop"), + (r"\\.", String.Escape), (r'[^\\"]+', String.Double), ], - 'tag': [ - (r'\}', String.Other, '#pop'), - (r'\\.', String.Escape), - (r'[^\\}]+', String.Other), + "tag": [ + (r"\}", String.Other, "#pop"), + (r"\\.", String.Escape), + (r"[^\\}]+", String.Other), ], - 'grammar name': [ - (r';', Punctuation, '#pop'), - (r'\s+', Whitespace), - (r'\.', Punctuation), - (r'[^;\s.]+', Name.Namespace), + "grammar name": [ + (r";", Punctuation, "#pop"), + (r"\s+", Whitespace), + (r"\.", Punctuation), + (r"[^;\s.]+", Name.Namespace), ], - 'rulename': [ - (r'>', Punctuation, '#pop'), - (r'\*', Punctuation), - (r'\s+', Whitespace), - (r'([^.>]+)(\s*)(\.)', bygroups(Name.Namespace, Text, Punctuation)), - (r'[^.>]+', Name.Constant), + "rulename": [ + (r">", Punctuation, "#pop"), + (r"\*", Punctuation), + (r"\s+", Whitespace), + (r"([^.>]+)(\s*)(\.)", bygroups(Name.Namespace, Text, Punctuation)), + (r"[^.>]+", Name.Constant), ], - 'documentation comment': [ - (r'\*/', Comment.Multiline, '#pop'), - (r'^(\s*)(\*?)(\s*)(@(?:example|see))(\s+)' - r'([\w\W]*?(?=(?:^\s*\*?\s*@|\*/)))', - bygroups(Whitespace, Comment.Multiline, Whitespace, Comment.Special, - Whitespace, using(this, state='example'))), - (r'(^\s*\*?\s*)(@\S*)', - bygroups(Comment.Multiline, Comment.Special)), - (r'[^*\n@]+|\w|\W', Comment.Multiline), + "documentation comment": [ + (r"\*/", Comment.Multiline, "#pop"), + ( + r"^(\s*)(\*?)(\s*)(@(?:example|see))(\s+)" + r"([\w\W]*?(?=(?:^\s*\*?\s*@|\*/)))", + bygroups( + Whitespace, + Comment.Multiline, + Whitespace, + Comment.Special, + Whitespace, + using(this, state="example"), + ), + ), + (r"(^\s*\*?\s*)(@\S*)", bygroups(Comment.Multiline, Comment.Special)), + (r"[^*\n@]+|\w|\W", Comment.Multiline), ], - 'example': [ - (r'(\n\s*)(\*)', bygroups(Whitespace, Comment.Multiline)), - include('non-comments'), - (r'.', Comment.Multiline), + "example": [ + (r"(\n\s*)(\*)", bygroups(Whitespace, Comment.Multiline)), + include("non-comments"), + (r".", Comment.Multiline), ], } @@ -224,39 +242,34 @@ class PegLexer(RegexLexer): string (e.g., `r"..."` or `"..."ilmsuxa`). """ - name = 'PEG' - url = 'https://bford.info/pub/lang/peg.pdf' - aliases = ['peg'] - filenames = ['*.peg'] - mimetypes = ['text/x-peg'] - version_added = '2.6' + name = "PEG" + url = "https://bford.info/pub/lang/peg.pdf" + aliases = ["peg"] + filenames = ["*.peg"] + mimetypes = ["text/x-peg"] + version_added = "2.6" tokens = { - 'root': [ + "root": [ # Comments - (r'#.*$', Comment.Single), - + (r"#.*$", Comment.Single), # All operators - (r'<-|[←:=/|&!?*+^↑~]', Operator), - + (r"<-|[←:=/|&!?*+^↑~]", Operator), # Other punctuation - (r'[()]', Punctuation), - + (r"[()]", Punctuation), # Keywords - (r'\.', Keyword), - + (r"\.", Keyword), # Character classes - (r'(\[)([^\]]*(?:\\.[^\]\\]*)*)(\])', - bygroups(Punctuation, String, Punctuation)), - + ( + r"(\[)([^\]]*(?:\\.[^\]\\]*)*)(\])", + bygroups(Punctuation, String, Punctuation), + ), # Single and double quoted strings (with optional modifiers) (r'[a-z]?"[^"\\]*(?:\\.[^"\\]*)*"[a-z]*', String.Double), (r"[a-z]?'[^'\\]*(?:\\.[^'\\]*)*'[a-z]*", String.Single), - # Nonterminals are not whitespace, operators, or punctuation (r'[^\s<←:=/|&!?*+\^↑~()\[\]"\'#]+', Name.Class), - # Fallback - (r'.', Text), + (r".", Text), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graph.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graph.py index 01d7574..f98ec6c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graph.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graph.py @@ -1,21 +1,28 @@ """ - pygments.lexers.graph - ~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.graph +~~~~~~~~~~~~~~~~~~~~~ - Lexers for graph query languages. +Lexers for graph query languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, bygroups, using, this, words -from pygments.token import Keyword, Punctuation, Comment, Operator, Name,\ - String, Number, Whitespace +from pygments.token import ( + Keyword, + Punctuation, + Comment, + Operator, + Name, + String, + Number, + Whitespace, +) - -__all__ = ['CypherLexer'] +__all__ = ["CypherLexer"] class CypherLexer(RegexLexer): @@ -24,85 +31,129 @@ class CypherLexer(RegexLexer): For the Cypher version in Neo4j 3.3 """ - name = 'Cypher' - url = 'https://neo4j.com/docs/developer-manual/3.3/cypher/' - aliases = ['cypher'] - filenames = ['*.cyp', '*.cypher'] - version_added = '2.0' + + name = "Cypher" + url = "https://neo4j.com/docs/developer-manual/3.3/cypher/" + aliases = ["cypher"] + filenames = ["*.cyp", "*.cypher"] + version_added = "2.0" flags = re.MULTILINE | re.IGNORECASE tokens = { - 'root': [ - include('clauses'), - include('keywords'), - include('relations'), - include('strings'), - include('whitespace'), - include('barewords'), - include('comment'), + "root": [ + include("clauses"), + include("keywords"), + include("relations"), + include("strings"), + include("whitespace"), + include("barewords"), + include("comment"), ], - 'keywords': [ - (r'(create|order|match|limit|set|skip|start|return|with|where|' - r'delete|foreach|not|by|true|false)\b', Keyword), + "keywords": [ + ( + r"(create|order|match|limit|set|skip|start|return|with|where|" + r"delete|foreach|not|by|true|false)\b", + Keyword, + ), ], - 'clauses': [ + "clauses": [ # based on https://neo4j.com/docs/cypher-refcard/3.3/ - (r'(create)(\s+)(index|unique)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(drop)(\s+)(contraint|index)(\s+)(on)\b', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)), - (r'(ends)(\s+)(with)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(is)(\s+)(node)(\s+)(key)\b', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)), - (r'(is)(\s+)(null|unique)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(load)(\s+)(csv)(\s+)(from)\b', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)), - (r'(on)(\s+)(match|create)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(optional)(\s+)(match)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(order)(\s+)(by)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(starts)(\s+)(with)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(union)(\s+)(all)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(using)(\s+)(periodic)(\s+)(commit)\b', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)), - (r'(using)(\s+)(index)\b', - bygroups(Keyword, Whitespace, Keyword)), - (r'(using)(\s+)(range|text|point)(\s+)(index)\b', - bygroups(Keyword, Whitespace, Name, Whitespace, Keyword)), - (words(( - 'all', 'any', 'as', 'asc', 'ascending', 'assert', 'call', 'case', 'create', - 'delete', 'desc', 'descending', 'distinct', 'end', 'fieldterminator', - 'foreach', 'in', 'limit', 'match', 'merge', 'none', 'not', 'null', - 'remove', 'return', 'set', 'skip', 'single', 'start', 'then', 'union', - 'unwind', 'yield', 'where', 'when', 'with', 'collect'), suffix=r'\b'), Keyword), + (r"(create)(\s+)(index|unique)\b", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(drop)(\s+)(contraint|index)(\s+)(on)\b", + bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword), + ), + (r"(ends)(\s+)(with)\b", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(is)(\s+)(node)(\s+)(key)\b", + bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword), + ), + (r"(is)(\s+)(null|unique)\b", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(load)(\s+)(csv)(\s+)(from)\b", + bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword), + ), + (r"(on)(\s+)(match|create)\b", bygroups(Keyword, Whitespace, Keyword)), + (r"(optional)(\s+)(match)\b", bygroups(Keyword, Whitespace, Keyword)), + (r"(order)(\s+)(by)\b", bygroups(Keyword, Whitespace, Keyword)), + (r"(starts)(\s+)(with)\b", bygroups(Keyword, Whitespace, Keyword)), + (r"(union)(\s+)(all)\b", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(using)(\s+)(periodic)(\s+)(commit)\b", + bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword), + ), + (r"(using)(\s+)(index)\b", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(using)(\s+)(range|text|point)(\s+)(index)\b", + bygroups(Keyword, Whitespace, Name, Whitespace, Keyword), + ), + ( + words( + ( + "all", + "any", + "as", + "asc", + "ascending", + "assert", + "call", + "case", + "create", + "delete", + "desc", + "descending", + "distinct", + "end", + "fieldterminator", + "foreach", + "in", + "limit", + "match", + "merge", + "none", + "not", + "null", + "remove", + "return", + "set", + "skip", + "single", + "start", + "then", + "union", + "unwind", + "yield", + "where", + "when", + "with", + "collect", + ), + suffix=r"\b", + ), + Keyword, + ), ], - 'relations': [ - (r'(-\[)(.*?)(\]->)', bygroups(Operator, using(this), Operator)), - (r'(<-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)), - (r'(-\[)(.*?)(\]-)', bygroups(Operator, using(this), Operator)), - (r'-->|<--|\[|\]', Operator), - (r'<|>|<>|=|<=|=>|\(|\)|\||:|,|;', Punctuation), - (r'[.*{}]', Punctuation), + "relations": [ + (r"(-\[)(.*?)(\]->)", bygroups(Operator, using(this), Operator)), + (r"(<-\[)(.*?)(\]-)", bygroups(Operator, using(this), Operator)), + (r"(-\[)(.*?)(\]-)", bygroups(Operator, using(this), Operator)), + (r"-->|<--|\[|\]", Operator), + (r"<|>|<>|=|<=|=>|\(|\)|\||:|,|;", Punctuation), + (r"[.*{}]", Punctuation), ], - 'strings': [ + "strings": [ (r'([\'"])(?:\\[tbnrf\'"\\]|[^\\])*?\1', String), - (r'`(?:``|[^`])+`', Name.Variable), + (r"`(?:``|[^`])+`", Name.Variable), ], - 'whitespace': [ - (r'\s+', Whitespace), + "whitespace": [ + (r"\s+", Whitespace), ], - 'barewords': [ - (r'[a-z]\w*', Name), - (r'\d+', Number), + "barewords": [ + (r"[a-z]\w*", Name), + (r"\d+", Number), ], - 'comment': [ - (r'//.*$', Comment.Single), + "comment": [ + (r"//.*$", Comment.Single), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphics.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphics.py index 400be4f..4112e0a 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphics.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphics.py @@ -1,149 +1,329 @@ """ - pygments.lexers.graphics - ~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.graphics +~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for computer graphics and plotting related languages. +Lexers for computer graphics and plotting related languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ -from pygments.lexer import RegexLexer, words, include, bygroups, using, \ - this, default -from pygments.token import Text, Comment, Operator, Keyword, Name, \ - Number, Punctuation, String, Whitespace +from pygments.lexer import RegexLexer, words, include, bygroups, using, this, default +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + Number, + Punctuation, + String, + Whitespace, +) -__all__ = ['GLShaderLexer', 'PostScriptLexer', 'AsymptoteLexer', 'GnuplotLexer', - 'PovrayLexer', 'HLSLShaderLexer'] +__all__ = [ + "GLShaderLexer", + "PostScriptLexer", + "AsymptoteLexer", + "GnuplotLexer", + "PovrayLexer", + "HLSLShaderLexer", +] class GLShaderLexer(RegexLexer): """ GLSL (OpenGL Shader) lexer. """ - name = 'GLSL' - aliases = ['glsl'] - filenames = ['*.vert', '*.frag', '*.geo'] - mimetypes = ['text/x-glslsrc'] - url = 'https://www.khronos.org/api/opengl' - version_added = '1.1' + + name = "GLSL" + aliases = ["glsl"] + filenames = ["*.vert", "*.frag", "*.geo"] + mimetypes = ["text/x-glslsrc"] + url = "https://www.khronos.org/api/opengl" + version_added = "1.1" tokens = { - 'root': [ - (r'#(?:.*\\\n)*.*$', Comment.Preproc), - (r'//.*$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?', - Operator), - (r'[?:]', Operator), # quick hack for ternary - (r'\bdefined\b', Operator), - (r'[;{}(),\[\]]', Punctuation), + "root": [ + (r"#(?:.*\\\n)*.*$", Comment.Preproc), + (r"//.*$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?", Operator), + (r"[?:]", Operator), # quick hack for ternary + (r"\bdefined\b", Operator), + (r"[;{}(),\[\]]", Punctuation), # FIXME when e is present, no decimal point needed - (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float), - (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float), - (r'0[xX][0-9a-fA-F]*', Number.Hex), - (r'0[0-7]*', Number.Oct), - (r'[1-9][0-9]*', Number.Integer), - (words(( - # Storage qualifiers - 'attribute', 'const', 'uniform', 'varying', - 'buffer', 'shared', 'in', 'out', - # Layout qualifiers - 'layout', - # Interpolation qualifiers - 'flat', 'smooth', 'noperspective', - # Auxiliary qualifiers - 'centroid', 'sample', 'patch', - # Parameter qualifiers. Some double as Storage qualifiers - 'inout', - # Precision qualifiers - 'lowp', 'mediump', 'highp', 'precision', - # Invariance qualifiers - 'invariant', - # Precise qualifiers - 'precise', - # Memory qualifiers - 'coherent', 'volatile', 'restrict', 'readonly', 'writeonly', - # Statements - 'break', 'continue', 'do', 'for', 'while', 'switch', - 'case', 'default', 'if', 'else', 'subroutine', - 'discard', 'return', 'struct'), - prefix=r'\b', suffix=r'\b'), - Keyword), - (words(( - # Boolean values - 'true', 'false'), - prefix=r'\b', suffix=r'\b'), - Keyword.Constant), - (words(( - # Miscellaneous types - 'void', 'atomic_uint', - # Floating-point scalars and vectors - 'float', 'vec2', 'vec3', 'vec4', - 'double', 'dvec2', 'dvec3', 'dvec4', - # Integer scalars and vectors - 'int', 'ivec2', 'ivec3', 'ivec4', - 'uint', 'uvec2', 'uvec3', 'uvec4', - # Boolean scalars and vectors - 'bool', 'bvec2', 'bvec3', 'bvec4', - # Matrices - 'mat2', 'mat3', 'mat4', 'dmat2', 'dmat3', 'dmat4', - 'mat2x2', 'mat2x3', 'mat2x4', 'dmat2x2', 'dmat2x3', 'dmat2x4', - 'mat3x2', 'mat3x3', 'mat3x4', 'dmat3x2', 'dmat3x3', - 'dmat3x4', 'mat4x2', 'mat4x3', 'mat4x4', 'dmat4x2', 'dmat4x3', 'dmat4x4', - # Floating-point samplers - 'sampler1D', 'sampler2D', 'sampler3D', 'samplerCube', - 'sampler1DArray', 'sampler2DArray', 'samplerCubeArray', - 'sampler2DRect', 'samplerBuffer', - 'sampler2DMS', 'sampler2DMSArray', - # Shadow samplers - 'sampler1DShadow', 'sampler2DShadow', 'samplerCubeShadow', - 'sampler1DArrayShadow', 'sampler2DArrayShadow', - 'samplerCubeArrayShadow', 'sampler2DRectShadow', - # Signed integer samplers - 'isampler1D', 'isampler2D', 'isampler3D', 'isamplerCube', - 'isampler1DArray', 'isampler2DArray', 'isamplerCubeArray', - 'isampler2DRect', 'isamplerBuffer', - 'isampler2DMS', 'isampler2DMSArray', - # Unsigned integer samplers - 'usampler1D', 'usampler2D', 'usampler3D', 'usamplerCube', - 'usampler1DArray', 'usampler2DArray', 'usamplerCubeArray', - 'usampler2DRect', 'usamplerBuffer', - 'usampler2DMS', 'usampler2DMSArray', - # Floating-point image types - 'image1D', 'image2D', 'image3D', 'imageCube', - 'image1DArray', 'image2DArray', 'imageCubeArray', - 'image2DRect', 'imageBuffer', - 'image2DMS', 'image2DMSArray', - # Signed integer image types - 'iimage1D', 'iimage2D', 'iimage3D', 'iimageCube', - 'iimage1DArray', 'iimage2DArray', 'iimageCubeArray', - 'iimage2DRect', 'iimageBuffer', - 'iimage2DMS', 'iimage2DMSArray', - # Unsigned integer image types - 'uimage1D', 'uimage2D', 'uimage3D', 'uimageCube', - 'uimage1DArray', 'uimage2DArray', 'uimageCubeArray', - 'uimage2DRect', 'uimageBuffer', - 'uimage2DMS', 'uimage2DMSArray'), - prefix=r'\b', suffix=r'\b'), - Keyword.Type), - (words(( - # Reserved for future use. - 'common', 'partition', 'active', 'asm', 'class', - 'union', 'enum', 'typedef', 'template', 'this', - 'resource', 'goto', 'inline', 'noinline', 'public', - 'static', 'extern', 'external', 'interface', 'long', - 'short', 'half', 'fixed', 'unsigned', 'superp', 'input', - 'output', 'hvec2', 'hvec3', 'hvec4', 'fvec2', 'fvec3', - 'fvec4', 'sampler3DRect', 'filter', 'sizeof', 'cast', - 'namespace', 'using'), - prefix=r'\b', suffix=r'\b'), - Keyword.Reserved), + (r"[+-]?\d*\.\d+([eE][-+]?\d+)?", Number.Float), + (r"[+-]?\d+\.\d*([eE][-+]?\d+)?", Number.Float), + (r"0[xX][0-9a-fA-F]*", Number.Hex), + (r"0[0-7]*", Number.Oct), + (r"[1-9][0-9]*", Number.Integer), + ( + words( + ( + # Storage qualifiers + "attribute", + "const", + "uniform", + "varying", + "buffer", + "shared", + "in", + "out", + # Layout qualifiers + "layout", + # Interpolation qualifiers + "flat", + "smooth", + "noperspective", + # Auxiliary qualifiers + "centroid", + "sample", + "patch", + # Parameter qualifiers. Some double as Storage qualifiers + "inout", + # Precision qualifiers + "lowp", + "mediump", + "highp", + "precision", + # Invariance qualifiers + "invariant", + # Precise qualifiers + "precise", + # Memory qualifiers + "coherent", + "volatile", + "restrict", + "readonly", + "writeonly", + # Statements + "break", + "continue", + "do", + "for", + "while", + "switch", + "case", + "default", + "if", + "else", + "subroutine", + "discard", + "return", + "struct", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + # Boolean values + "true", + "false", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Constant, + ), + ( + words( + ( + # Miscellaneous types + "void", + "atomic_uint", + # Floating-point scalars and vectors + "float", + "vec2", + "vec3", + "vec4", + "double", + "dvec2", + "dvec3", + "dvec4", + # Integer scalars and vectors + "int", + "ivec2", + "ivec3", + "ivec4", + "uint", + "uvec2", + "uvec3", + "uvec4", + # Boolean scalars and vectors + "bool", + "bvec2", + "bvec3", + "bvec4", + # Matrices + "mat2", + "mat3", + "mat4", + "dmat2", + "dmat3", + "dmat4", + "mat2x2", + "mat2x3", + "mat2x4", + "dmat2x2", + "dmat2x3", + "dmat2x4", + "mat3x2", + "mat3x3", + "mat3x4", + "dmat3x2", + "dmat3x3", + "dmat3x4", + "mat4x2", + "mat4x3", + "mat4x4", + "dmat4x2", + "dmat4x3", + "dmat4x4", + # Floating-point samplers + "sampler1D", + "sampler2D", + "sampler3D", + "samplerCube", + "sampler1DArray", + "sampler2DArray", + "samplerCubeArray", + "sampler2DRect", + "samplerBuffer", + "sampler2DMS", + "sampler2DMSArray", + # Shadow samplers + "sampler1DShadow", + "sampler2DShadow", + "samplerCubeShadow", + "sampler1DArrayShadow", + "sampler2DArrayShadow", + "samplerCubeArrayShadow", + "sampler2DRectShadow", + # Signed integer samplers + "isampler1D", + "isampler2D", + "isampler3D", + "isamplerCube", + "isampler1DArray", + "isampler2DArray", + "isamplerCubeArray", + "isampler2DRect", + "isamplerBuffer", + "isampler2DMS", + "isampler2DMSArray", + # Unsigned integer samplers + "usampler1D", + "usampler2D", + "usampler3D", + "usamplerCube", + "usampler1DArray", + "usampler2DArray", + "usamplerCubeArray", + "usampler2DRect", + "usamplerBuffer", + "usampler2DMS", + "usampler2DMSArray", + # Floating-point image types + "image1D", + "image2D", + "image3D", + "imageCube", + "image1DArray", + "image2DArray", + "imageCubeArray", + "image2DRect", + "imageBuffer", + "image2DMS", + "image2DMSArray", + # Signed integer image types + "iimage1D", + "iimage2D", + "iimage3D", + "iimageCube", + "iimage1DArray", + "iimage2DArray", + "iimageCubeArray", + "iimage2DRect", + "iimageBuffer", + "iimage2DMS", + "iimage2DMSArray", + # Unsigned integer image types + "uimage1D", + "uimage2D", + "uimage3D", + "uimageCube", + "uimage1DArray", + "uimage2DArray", + "uimageCubeArray", + "uimage2DRect", + "uimageBuffer", + "uimage2DMS", + "uimage2DMSArray", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Type, + ), + ( + words( + ( + # Reserved for future use. + "common", + "partition", + "active", + "asm", + "class", + "union", + "enum", + "typedef", + "template", + "this", + "resource", + "goto", + "inline", + "noinline", + "public", + "static", + "extern", + "external", + "interface", + "long", + "short", + "half", + "fixed", + "unsigned", + "superp", + "input", + "output", + "hvec2", + "hvec3", + "hvec4", + "fvec2", + "fvec3", + "fvec4", + "sampler3DRect", + "filter", + "sizeof", + "cast", + "namespace", + "using", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Reserved, + ), # All names beginning with "gl_" are reserved. - (r'gl_\w*', Name.Builtin), - (r'[a-zA-Z_]\w*', Name), - (r'\.', Punctuation), - (r'\s+', Whitespace), + (r"gl_\w*", Name.Builtin), + (r"[a-zA-Z_]\w*", Name), + (r"\.", Punctuation), + (r"\s+", Whitespace), ], } @@ -152,152 +332,486 @@ class HLSLShaderLexer(RegexLexer): """ HLSL (Microsoft Direct3D Shader) lexer. """ - name = 'HLSL' - aliases = ['hlsl'] - filenames = ['*.hlsl', '*.hlsli'] - mimetypes = ['text/x-hlsl'] - url = 'https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl' - version_added = '2.3' + + name = "HLSL" + aliases = ["hlsl"] + filenames = ["*.hlsl", "*.hlsli"] + mimetypes = ["text/x-hlsl"] + url = ( + "https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl" + ) + version_added = "2.3" tokens = { - 'root': [ - (r'#(?:.*\\\n)*.*$', Comment.Preproc), - (r'//.*$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?', - Operator), - (r'[?:]', Operator), # quick hack for ternary - (r'\bdefined\b', Operator), - (r'[;{}(),.\[\]]', Punctuation), + "root": [ + (r"#(?:.*\\\n)*.*$", Comment.Preproc), + (r"//.*$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?", Operator), + (r"[?:]", Operator), # quick hack for ternary + (r"\bdefined\b", Operator), + (r"[;{}(),.\[\]]", Punctuation), # FIXME when e is present, no decimal point needed - (r'[+-]?\d*\.\d+([eE][-+]?\d+)?f?', Number.Float), - (r'[+-]?\d+\.\d*([eE][-+]?\d+)?f?', Number.Float), - (r'0[xX][0-9a-fA-F]*', Number.Hex), - (r'0[0-7]*', Number.Oct), - (r'[1-9][0-9]*', Number.Integer), - (r'"', String, 'string'), - (words(( - 'asm','asm_fragment','break','case','cbuffer','centroid','class', - 'column_major','compile','compile_fragment','const','continue', - 'default','discard','do','else','export','extern','for','fxgroup', - 'globallycoherent','groupshared','if','in','inline','inout', - 'interface','line','lineadj','linear','namespace','nointerpolation', - 'noperspective','NULL','out','packoffset','pass','pixelfragment', - 'point','precise','return','register','row_major','sample', - 'sampler','shared','stateblock','stateblock_state','static', - 'struct','switch','tbuffer','technique','technique10', - 'technique11','texture','typedef','triangle','triangleadj', - 'uniform','vertexfragment','volatile','while'), - prefix=r'\b', suffix=r'\b'), - Keyword), - (words(('true','false'), prefix=r'\b', suffix=r'\b'), - Keyword.Constant), - (words(( - 'auto','catch','char','const_cast','delete','dynamic_cast','enum', - 'explicit','friend','goto','long','mutable','new','operator', - 'private','protected','public','reinterpret_cast','short','signed', - 'sizeof','static_cast','template','this','throw','try','typename', - 'union','unsigned','using','virtual'), - prefix=r'\b', suffix=r'\b'), - Keyword.Reserved), - (words(( - 'dword','matrix','snorm','string','unorm','unsigned','void','vector', - 'BlendState','Buffer','ByteAddressBuffer','ComputeShader', - 'DepthStencilState','DepthStencilView','DomainShader', - 'GeometryShader','HullShader','InputPatch','LineStream', - 'OutputPatch','PixelShader','PointStream','RasterizerState', - 'RenderTargetView','RasterizerOrderedBuffer', - 'RasterizerOrderedByteAddressBuffer', - 'RasterizerOrderedStructuredBuffer','RasterizerOrderedTexture1D', - 'RasterizerOrderedTexture1DArray','RasterizerOrderedTexture2D', - 'RasterizerOrderedTexture2DArray','RasterizerOrderedTexture3D', - 'RWBuffer','RWByteAddressBuffer','RWStructuredBuffer', - 'RWTexture1D','RWTexture1DArray','RWTexture2D','RWTexture2DArray', - 'RWTexture3D','SamplerState','SamplerComparisonState', - 'StructuredBuffer','Texture1D','Texture1DArray','Texture2D', - 'Texture2DArray','Texture2DMS','Texture2DMSArray','Texture3D', - 'TextureCube','TextureCubeArray','TriangleStream','VertexShader'), - prefix=r'\b', suffix=r'\b'), - Keyword.Type), - (words(( - 'bool','double','float','int','half','min16float','min10float', - 'min16int','min12int','min16uint','uint'), - prefix=r'\b', suffix=r'([1-4](x[1-4])?)?\b'), - Keyword.Type), # vector and matrix types - (words(( - 'abort','abs','acos','all','AllMemoryBarrier', - 'AllMemoryBarrierWithGroupSync','any','AppendStructuredBuffer', - 'asdouble','asfloat','asin','asint','asuint','asuint','atan', - 'atan2','ceil','CheckAccessFullyMapped','clamp','clip', - 'CompileShader','ConsumeStructuredBuffer','cos','cosh','countbits', - 'cross','D3DCOLORtoUBYTE4','ddx','ddx_coarse','ddx_fine','ddy', - 'ddy_coarse','ddy_fine','degrees','determinant', - 'DeviceMemoryBarrier','DeviceMemoryBarrierWithGroupSync','distance', - 'dot','dst','errorf','EvaluateAttributeAtCentroid', - 'EvaluateAttributeAtSample','EvaluateAttributeSnapped','exp', - 'exp2','f16tof32','f32tof16','faceforward','firstbithigh', - 'firstbitlow','floor','fma','fmod','frac','frexp','fwidth', - 'GetRenderTargetSampleCount','GetRenderTargetSamplePosition', - 'GlobalOrderedCountIncrement','GroupMemoryBarrier', - 'GroupMemoryBarrierWithGroupSync','InterlockedAdd','InterlockedAnd', - 'InterlockedCompareExchange','InterlockedCompareStore', - 'InterlockedExchange','InterlockedMax','InterlockedMin', - 'InterlockedOr','InterlockedXor','isfinite','isinf','isnan', - 'ldexp','length','lerp','lit','log','log10','log2','mad','max', - 'min','modf','msad4','mul','noise','normalize','pow','printf', - 'Process2DQuadTessFactorsAvg','Process2DQuadTessFactorsMax', - 'Process2DQuadTessFactorsMin','ProcessIsolineTessFactors', - 'ProcessQuadTessFactorsAvg','ProcessQuadTessFactorsMax', - 'ProcessQuadTessFactorsMin','ProcessTriTessFactorsAvg', - 'ProcessTriTessFactorsMax','ProcessTriTessFactorsMin', - 'QuadReadLaneAt','QuadSwapX','QuadSwapY','radians','rcp', - 'reflect','refract','reversebits','round','rsqrt','saturate', - 'sign','sin','sincos','sinh','smoothstep','sqrt','step','tan', - 'tanh','tex1D','tex1D','tex1Dbias','tex1Dgrad','tex1Dlod', - 'tex1Dproj','tex2D','tex2D','tex2Dbias','tex2Dgrad','tex2Dlod', - 'tex2Dproj','tex3D','tex3D','tex3Dbias','tex3Dgrad','tex3Dlod', - 'tex3Dproj','texCUBE','texCUBE','texCUBEbias','texCUBEgrad', - 'texCUBElod','texCUBEproj','transpose','trunc','WaveAllBitAnd', - 'WaveAllMax','WaveAllMin','WaveAllBitOr','WaveAllBitXor', - 'WaveAllEqual','WaveAllProduct','WaveAllSum','WaveAllTrue', - 'WaveAnyTrue','WaveBallot','WaveGetLaneCount','WaveGetLaneIndex', - 'WaveGetOrderedIndex','WaveIsHelperLane','WaveOnce', - 'WavePrefixProduct','WavePrefixSum','WaveReadFirstLane', - 'WaveReadLaneAt'), - prefix=r'\b', suffix=r'\b'), - Name.Builtin), # built-in functions - (words(( - 'SV_ClipDistance','SV_ClipDistance0','SV_ClipDistance1', - 'SV_Culldistance','SV_CullDistance0','SV_CullDistance1', - 'SV_Coverage','SV_Depth','SV_DepthGreaterEqual', - 'SV_DepthLessEqual','SV_DispatchThreadID','SV_DomainLocation', - 'SV_GroupID','SV_GroupIndex','SV_GroupThreadID','SV_GSInstanceID', - 'SV_InnerCoverage','SV_InsideTessFactor','SV_InstanceID', - 'SV_IsFrontFace','SV_OutputControlPointID','SV_Position', - 'SV_PrimitiveID','SV_RenderTargetArrayIndex','SV_SampleIndex', - 'SV_StencilRef','SV_TessFactor','SV_VertexID', - 'SV_ViewportArrayIndex'), - prefix=r'\b', suffix=r'\b'), - Name.Decorator), # system-value semantics - (r'\bSV_Target[0-7]?\b', Name.Decorator), - (words(( - 'allow_uav_condition','branch','call','domain','earlydepthstencil', - 'fastopt','flatten','forcecase','instance','loop','maxtessfactor', - 'numthreads','outputcontrolpoints','outputtopology','partitioning', - 'patchconstantfunc','unroll'), - prefix=r'\b', suffix=r'\b'), - Name.Decorator), # attributes - (r'[a-zA-Z_]\w*', Name), - (r'\\$', Comment.Preproc), # backslash at end of line -- usually macro continuation - (r'\s+', Whitespace), + (r"[+-]?\d*\.\d+([eE][-+]?\d+)?f?", Number.Float), + (r"[+-]?\d+\.\d*([eE][-+]?\d+)?f?", Number.Float), + (r"0[xX][0-9a-fA-F]*", Number.Hex), + (r"0[0-7]*", Number.Oct), + (r"[1-9][0-9]*", Number.Integer), + (r'"', String, "string"), + ( + words( + ( + "asm", + "asm_fragment", + "break", + "case", + "cbuffer", + "centroid", + "class", + "column_major", + "compile", + "compile_fragment", + "const", + "continue", + "default", + "discard", + "do", + "else", + "export", + "extern", + "for", + "fxgroup", + "globallycoherent", + "groupshared", + "if", + "in", + "inline", + "inout", + "interface", + "line", + "lineadj", + "linear", + "namespace", + "nointerpolation", + "noperspective", + "NULL", + "out", + "packoffset", + "pass", + "pixelfragment", + "point", + "precise", + "return", + "register", + "row_major", + "sample", + "sampler", + "shared", + "stateblock", + "stateblock_state", + "static", + "struct", + "switch", + "tbuffer", + "technique", + "technique10", + "technique11", + "texture", + "typedef", + "triangle", + "triangleadj", + "uniform", + "vertexfragment", + "volatile", + "while", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + (words(("true", "false"), prefix=r"\b", suffix=r"\b"), Keyword.Constant), + ( + words( + ( + "auto", + "catch", + "char", + "const_cast", + "delete", + "dynamic_cast", + "enum", + "explicit", + "friend", + "goto", + "long", + "mutable", + "new", + "operator", + "private", + "protected", + "public", + "reinterpret_cast", + "short", + "signed", + "sizeof", + "static_cast", + "template", + "this", + "throw", + "try", + "typename", + "union", + "unsigned", + "using", + "virtual", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Reserved, + ), + ( + words( + ( + "dword", + "matrix", + "snorm", + "string", + "unorm", + "unsigned", + "void", + "vector", + "BlendState", + "Buffer", + "ByteAddressBuffer", + "ComputeShader", + "DepthStencilState", + "DepthStencilView", + "DomainShader", + "GeometryShader", + "HullShader", + "InputPatch", + "LineStream", + "OutputPatch", + "PixelShader", + "PointStream", + "RasterizerState", + "RenderTargetView", + "RasterizerOrderedBuffer", + "RasterizerOrderedByteAddressBuffer", + "RasterizerOrderedStructuredBuffer", + "RasterizerOrderedTexture1D", + "RasterizerOrderedTexture1DArray", + "RasterizerOrderedTexture2D", + "RasterizerOrderedTexture2DArray", + "RasterizerOrderedTexture3D", + "RWBuffer", + "RWByteAddressBuffer", + "RWStructuredBuffer", + "RWTexture1D", + "RWTexture1DArray", + "RWTexture2D", + "RWTexture2DArray", + "RWTexture3D", + "SamplerState", + "SamplerComparisonState", + "StructuredBuffer", + "Texture1D", + "Texture1DArray", + "Texture2D", + "Texture2DArray", + "Texture2DMS", + "Texture2DMSArray", + "Texture3D", + "TextureCube", + "TextureCubeArray", + "TriangleStream", + "VertexShader", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword.Type, + ), + ( + words( + ( + "bool", + "double", + "float", + "int", + "half", + "min16float", + "min10float", + "min16int", + "min12int", + "min16uint", + "uint", + ), + prefix=r"\b", + suffix=r"([1-4](x[1-4])?)?\b", + ), + Keyword.Type, + ), # vector and matrix types + ( + words( + ( + "abort", + "abs", + "acos", + "all", + "AllMemoryBarrier", + "AllMemoryBarrierWithGroupSync", + "any", + "AppendStructuredBuffer", + "asdouble", + "asfloat", + "asin", + "asint", + "asuint", + "asuint", + "atan", + "atan2", + "ceil", + "CheckAccessFullyMapped", + "clamp", + "clip", + "CompileShader", + "ConsumeStructuredBuffer", + "cos", + "cosh", + "countbits", + "cross", + "D3DCOLORtoUBYTE4", + "ddx", + "ddx_coarse", + "ddx_fine", + "ddy", + "ddy_coarse", + "ddy_fine", + "degrees", + "determinant", + "DeviceMemoryBarrier", + "DeviceMemoryBarrierWithGroupSync", + "distance", + "dot", + "dst", + "errorf", + "EvaluateAttributeAtCentroid", + "EvaluateAttributeAtSample", + "EvaluateAttributeSnapped", + "exp", + "exp2", + "f16tof32", + "f32tof16", + "faceforward", + "firstbithigh", + "firstbitlow", + "floor", + "fma", + "fmod", + "frac", + "frexp", + "fwidth", + "GetRenderTargetSampleCount", + "GetRenderTargetSamplePosition", + "GlobalOrderedCountIncrement", + "GroupMemoryBarrier", + "GroupMemoryBarrierWithGroupSync", + "InterlockedAdd", + "InterlockedAnd", + "InterlockedCompareExchange", + "InterlockedCompareStore", + "InterlockedExchange", + "InterlockedMax", + "InterlockedMin", + "InterlockedOr", + "InterlockedXor", + "isfinite", + "isinf", + "isnan", + "ldexp", + "length", + "lerp", + "lit", + "log", + "log10", + "log2", + "mad", + "max", + "min", + "modf", + "msad4", + "mul", + "noise", + "normalize", + "pow", + "printf", + "Process2DQuadTessFactorsAvg", + "Process2DQuadTessFactorsMax", + "Process2DQuadTessFactorsMin", + "ProcessIsolineTessFactors", + "ProcessQuadTessFactorsAvg", + "ProcessQuadTessFactorsMax", + "ProcessQuadTessFactorsMin", + "ProcessTriTessFactorsAvg", + "ProcessTriTessFactorsMax", + "ProcessTriTessFactorsMin", + "QuadReadLaneAt", + "QuadSwapX", + "QuadSwapY", + "radians", + "rcp", + "reflect", + "refract", + "reversebits", + "round", + "rsqrt", + "saturate", + "sign", + "sin", + "sincos", + "sinh", + "smoothstep", + "sqrt", + "step", + "tan", + "tanh", + "tex1D", + "tex1D", + "tex1Dbias", + "tex1Dgrad", + "tex1Dlod", + "tex1Dproj", + "tex2D", + "tex2D", + "tex2Dbias", + "tex2Dgrad", + "tex2Dlod", + "tex2Dproj", + "tex3D", + "tex3D", + "tex3Dbias", + "tex3Dgrad", + "tex3Dlod", + "tex3Dproj", + "texCUBE", + "texCUBE", + "texCUBEbias", + "texCUBEgrad", + "texCUBElod", + "texCUBEproj", + "transpose", + "trunc", + "WaveAllBitAnd", + "WaveAllMax", + "WaveAllMin", + "WaveAllBitOr", + "WaveAllBitXor", + "WaveAllEqual", + "WaveAllProduct", + "WaveAllSum", + "WaveAllTrue", + "WaveAnyTrue", + "WaveBallot", + "WaveGetLaneCount", + "WaveGetLaneIndex", + "WaveGetOrderedIndex", + "WaveIsHelperLane", + "WaveOnce", + "WavePrefixProduct", + "WavePrefixSum", + "WaveReadFirstLane", + "WaveReadLaneAt", + ), + prefix=r"\b", + suffix=r"\b", + ), + Name.Builtin, + ), # built-in functions + ( + words( + ( + "SV_ClipDistance", + "SV_ClipDistance0", + "SV_ClipDistance1", + "SV_Culldistance", + "SV_CullDistance0", + "SV_CullDistance1", + "SV_Coverage", + "SV_Depth", + "SV_DepthGreaterEqual", + "SV_DepthLessEqual", + "SV_DispatchThreadID", + "SV_DomainLocation", + "SV_GroupID", + "SV_GroupIndex", + "SV_GroupThreadID", + "SV_GSInstanceID", + "SV_InnerCoverage", + "SV_InsideTessFactor", + "SV_InstanceID", + "SV_IsFrontFace", + "SV_OutputControlPointID", + "SV_Position", + "SV_PrimitiveID", + "SV_RenderTargetArrayIndex", + "SV_SampleIndex", + "SV_StencilRef", + "SV_TessFactor", + "SV_VertexID", + "SV_ViewportArrayIndex", + ), + prefix=r"\b", + suffix=r"\b", + ), + Name.Decorator, + ), # system-value semantics + (r"\bSV_Target[0-7]?\b", Name.Decorator), + ( + words( + ( + "allow_uav_condition", + "branch", + "call", + "domain", + "earlydepthstencil", + "fastopt", + "flatten", + "forcecase", + "instance", + "loop", + "maxtessfactor", + "numthreads", + "outputcontrolpoints", + "outputtopology", + "partitioning", + "patchconstantfunc", + "unroll", + ), + prefix=r"\b", + suffix=r"\b", + ), + Name.Decorator, + ), # attributes + (r"[a-zA-Z_]\w*", Name), + ( + r"\\$", + Comment.Preproc, + ), # backslash at end of line -- usually macro continuation + (r"\s+", Whitespace), ], - 'string': [ - (r'"', String, '#pop'), - (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' - r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape), + "string": [ + (r'"', String, "#pop"), + ( + r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' + r"u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})", + String.Escape, + ), (r'[^\\"\n]+', String), # all other characters - (r'\\\n', String), # line continuation - (r'\\', String), # stray backslash + (r"\\\n", String), # line continuation + (r"\\", String), # stray backslash ], } @@ -306,92 +820,186 @@ class PostScriptLexer(RegexLexer): """ Lexer for PostScript files. """ - name = 'PostScript' - url = 'https://en.wikipedia.org/wiki/PostScript' - aliases = ['postscript', 'postscr'] - filenames = ['*.ps', '*.eps'] - mimetypes = ['application/postscript'] - version_added = '1.4' - delimiter = r'()<>\[\]{}/%\s' - delimiter_end = rf'(?=[{delimiter}])' + name = "PostScript" + url = "https://en.wikipedia.org/wiki/PostScript" + aliases = ["postscript", "postscr"] + filenames = ["*.ps", "*.eps"] + mimetypes = ["application/postscript"] + version_added = "1.4" - valid_name_chars = rf'[^{delimiter}]' + delimiter = r"()<>\[\]{}/%\s" + delimiter_end = rf"(?=[{delimiter}])" + + valid_name_chars = rf"[^{delimiter}]" valid_name = rf"{valid_name_chars}+{delimiter_end}" tokens = { - 'root': [ + "root": [ # All comment types - (r'^%!.+$', Comment.Preproc), - (r'%%.*$', Comment.Special), - (r'(^%.*\n){2,}', Comment.Multiline), - (r'%.*$', Comment.Single), - + (r"^%!.+$", Comment.Preproc), + (r"%%.*$", Comment.Special), + (r"(^%.*\n){2,}", Comment.Multiline), + (r"%.*$", Comment.Single), # String literals are awkward; enter separate state. - (r'\(', String, 'stringliteral'), - - (r'[{}<>\[\]]', Punctuation), - + (r"\(", String, "stringliteral"), + (r"[{}<>\[\]]", Punctuation), # Numbers - (r'<[0-9A-Fa-f]+>' + delimiter_end, Number.Hex), + (r"<[0-9A-Fa-f]+>" + delimiter_end, Number.Hex), # Slight abuse: use Oct to signify any explicit base system - (r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)' - r'((e|E)[0-9]+)?' + delimiter_end, Number.Oct), - (r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?' - + delimiter_end, Number.Float), - (r'(\-|\+)?[0-9]+' + delimiter_end, Number.Integer), - + ( + r"[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)" + r"((e|E)[0-9]+)?" + delimiter_end, + Number.Oct, + ), + ( + r"(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?" + + delimiter_end, + Number.Float, + ), + (r"(\-|\+)?[0-9]+" + delimiter_end, Number.Integer), # References - (rf'\/{valid_name}', Name.Variable), - + (rf"\/{valid_name}", Name.Variable), # Names - (valid_name, Name.Function), # Anything else is executed - + (valid_name, Name.Function), # Anything else is executed # These keywords taken from # # Is there an authoritative list anywhere that doesn't involve # trawling documentation? - - (r'(false|true)' + delimiter_end, Keyword.Constant), - + (r"(false|true)" + delimiter_end, Keyword.Constant), # Conditionals / flow control - (r'(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)' - + delimiter_end, Keyword.Reserved), - - (words(( - 'abs', 'add', 'aload', 'arc', 'arcn', 'array', 'atan', 'begin', - 'bind', 'ceiling', 'charpath', 'clip', 'closepath', 'concat', - 'concatmatrix', 'copy', 'cos', 'currentlinewidth', 'currentmatrix', - 'currentpoint', 'curveto', 'cvi', 'cvs', 'def', 'defaultmatrix', - 'dict', 'dictstackoverflow', 'div', 'dtransform', 'dup', 'end', - 'exch', 'exec', 'exit', 'exp', 'fill', 'findfont', 'floor', 'get', - 'getinterval', 'grestore', 'gsave', 'gt', 'identmatrix', 'idiv', - 'idtransform', 'index', 'invertmatrix', 'itransform', 'length', - 'lineto', 'ln', 'load', 'log', 'loop', 'matrix', 'mod', 'moveto', - 'mul', 'neg', 'newpath', 'pathforall', 'pathbbox', 'pop', 'print', - 'pstack', 'put', 'quit', 'rand', 'rangecheck', 'rcurveto', 'repeat', - 'restore', 'rlineto', 'rmoveto', 'roll', 'rotate', 'round', 'run', - 'save', 'scale', 'scalefont', 'setdash', 'setfont', 'setgray', - 'setlinecap', 'setlinejoin', 'setlinewidth', 'setmatrix', - 'setrgbcolor', 'shfill', 'show', 'showpage', 'sin', 'sqrt', - 'stack', 'stringwidth', 'stroke', 'strokepath', 'sub', 'syntaxerror', - 'transform', 'translate', 'truncate', 'typecheck', 'undefined', - 'undefinedfilename', 'undefinedresult'), suffix=delimiter_end), - Name.Builtin), - - (r'\s+', Whitespace), + ( + r"(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)" + + delimiter_end, + Keyword.Reserved, + ), + ( + words( + ( + "abs", + "add", + "aload", + "arc", + "arcn", + "array", + "atan", + "begin", + "bind", + "ceiling", + "charpath", + "clip", + "closepath", + "concat", + "concatmatrix", + "copy", + "cos", + "currentlinewidth", + "currentmatrix", + "currentpoint", + "curveto", + "cvi", + "cvs", + "def", + "defaultmatrix", + "dict", + "dictstackoverflow", + "div", + "dtransform", + "dup", + "end", + "exch", + "exec", + "exit", + "exp", + "fill", + "findfont", + "floor", + "get", + "getinterval", + "grestore", + "gsave", + "gt", + "identmatrix", + "idiv", + "idtransform", + "index", + "invertmatrix", + "itransform", + "length", + "lineto", + "ln", + "load", + "log", + "loop", + "matrix", + "mod", + "moveto", + "mul", + "neg", + "newpath", + "pathforall", + "pathbbox", + "pop", + "print", + "pstack", + "put", + "quit", + "rand", + "rangecheck", + "rcurveto", + "repeat", + "restore", + "rlineto", + "rmoveto", + "roll", + "rotate", + "round", + "run", + "save", + "scale", + "scalefont", + "setdash", + "setfont", + "setgray", + "setlinecap", + "setlinejoin", + "setlinewidth", + "setmatrix", + "setrgbcolor", + "shfill", + "show", + "showpage", + "sin", + "sqrt", + "stack", + "stringwidth", + "stroke", + "strokepath", + "sub", + "syntaxerror", + "transform", + "translate", + "truncate", + "typecheck", + "undefined", + "undefinedfilename", + "undefinedresult", + ), + suffix=delimiter_end, + ), + Name.Builtin, + ), + (r"\s+", Whitespace), ], - - 'stringliteral': [ - (r'[^()\\]+', String), - (r'\\', String.Escape, 'escape'), - (r'\(', String, '#push'), - (r'\)', String, '#pop'), + "stringliteral": [ + (r"[^()\\]+", String), + (r"\\", String.Escape, "escape"), + (r"\(", String, "#push"), + (r"\)", String, "#pop"), ], - - 'escape': [ - (r'[0-8]{3}|n|r|t|b|f|\\|\(|\)', String.Escape, '#pop'), - default('#pop'), + "escape": [ + (r"[0-8]{3}|n|r|t|b|f|\\|\(|\)", String.Escape, "#pop"), + default("#pop"), ], } @@ -400,112 +1008,128 @@ class AsymptoteLexer(RegexLexer): """ For Asymptote source code. """ - name = 'Asymptote' - url = 'http://asymptote.sf.net/' - aliases = ['asymptote', 'asy'] - filenames = ['*.asy'] - mimetypes = ['text/x-asymptote'] - version_added = '1.2' + + name = "Asymptote" + url = "http://asymptote.sf.net/" + aliases = ["asymptote", "asy"] + filenames = ["*.asy"] + mimetypes = ["text/x-asymptote"] + version_added = "1.2" #: optional Comment or Whitespace - _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+' + _ws = r"(?:\s|//.*?\n|/\*.*?\*/)+" tokens = { - 'whitespace': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(Text, Whitespace)), # line continuation - (r'//(\n|(.|\n)*?[^\\]\n)', Comment), - (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment), + "whitespace": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(Text, Whitespace)), # line continuation + (r"//(\n|(.|\n)*?[^\\]\n)", Comment), + (r"/(\\\n)?\*(.|\n)*?\*(\\\n)?/", Comment), ], - 'statements': [ + "statements": [ # simple string (TeX friendly) (r'"(\\\\|\\[^\\]|[^"\\])*"', String), # C style string (with character escapes) - (r"'", String, 'string'), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), - (r'0x[0-9a-fA-F]+[Ll]?', Number.Hex), - (r'0[0-7]+[Ll]?', Number.Oct), - (r'\d+[Ll]?', Number.Integer), - (r'[~!%^&*+=|?:<>/-]', Operator), - (r'[()\[\],.]', Punctuation), - (r'\b(case)(.+?)(:)', bygroups(Keyword, using(this), Text)), - (r'(and|controls|tension|atleast|curl|if|else|while|for|do|' - r'return|break|continue|struct|typedef|new|access|import|' - r'unravel|from|include|quote|static|public|private|restricted|' - r'this|explicit|true|false|null|cycle|newframe|operator)\b', Keyword), + (r"'", String, "string"), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float), + (r"0x[0-9a-fA-F]+[Ll]?", Number.Hex), + (r"0[0-7]+[Ll]?", Number.Oct), + (r"\d+[Ll]?", Number.Integer), + (r"[~!%^&*+=|?:<>/-]", Operator), + (r"[()\[\],.]", Punctuation), + (r"\b(case)(.+?)(:)", bygroups(Keyword, using(this), Text)), + ( + r"(and|controls|tension|atleast|curl|if|else|while|for|do|" + r"return|break|continue|struct|typedef|new|access|import|" + r"unravel|from|include|quote|static|public|private|restricted|" + r"this|explicit|true|false|null|cycle|newframe|operator)\b", + Keyword, + ), # Since an asy-type-name can be also an asy-function-name, # in the following we test if the string " [a-zA-Z]" follows # the Keyword.Type. # Of course it is not perfect ! - (r'(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|' - r'binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|' - r'conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|' - r'guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|' - r'light|line|linefit|marginT|marker|mass|object|pair|parabola|path|' - r'path3|pen|picture|point|position|projection|real|revolution|' - r'scaleT|scientific|segment|side|slice|splitface|string|surface|' - r'tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|' - r'transformation|tree|triangle|trilinear|triple|vector|' - r'vertex|void)(?=\s+[a-zA-Z])', Keyword.Type), + ( + r"(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|" + r"binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|" + r"conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|" + r"guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|" + r"light|line|linefit|marginT|marker|mass|object|pair|parabola|path|" + r"path3|pen|picture|point|position|projection|real|revolution|" + r"scaleT|scientific|segment|side|slice|splitface|string|surface|" + r"tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|" + r"transformation|tree|triangle|trilinear|triple|vector|" + r"vertex|void)(?=\s+[a-zA-Z])", + Keyword.Type, + ), # Now the asy-type-name which are not asy-function-name # except yours ! # Perhaps useless - (r'(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|' - r'bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|' - r'picture|position|real|revolution|slice|splitface|ticksgridT|' - r'tickvalues|tree|triple|vertex|void)\b', Keyword.Type), - (r'[a-zA-Z_]\w*:(?!:)', Name.Label), - (r'[a-zA-Z_]\w*', Name), + ( + r"(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|" + r"bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|" + r"picture|position|real|revolution|slice|splitface|ticksgridT|" + r"tickvalues|tree|triple|vertex|void)\b", + Keyword.Type, + ), + (r"[a-zA-Z_]\w*:(?!:)", Name.Label), + (r"[a-zA-Z_]\w*", Name), ], - 'root': [ - include('whitespace'), + "root": [ + include("whitespace"), # functions - (r'((?:[\w*\s])+?(?:\s|\*))' # return arguments - r'([a-zA-Z_]\w*)' # method name - r'(\s*\([^;]*?\))' # signature - r'(' + _ws + r')(\{)', - bygroups(using(this), Name.Function, using(this), using(this), - Punctuation), - 'function'), + ( + r"((?:[\w*\s])+?(?:\s|\*))" # return arguments + r"([a-zA-Z_]\w*)" # method name + r"(\s*\([^;]*?\))" # signature + r"(" + _ws + r")(\{)", + bygroups( + using(this), Name.Function, using(this), using(this), Punctuation + ), + "function", + ), # function declarations - (r'((?:[\w*\s])+?(?:\s|\*))' # return arguments - r'([a-zA-Z_]\w*)' # method name - r'(\s*\([^;]*?\))' # signature - r'(' + _ws + r')(;)', - bygroups(using(this), Name.Function, using(this), using(this), - Punctuation)), - default('statement'), + ( + r"((?:[\w*\s])+?(?:\s|\*))" # return arguments + r"([a-zA-Z_]\w*)" # method name + r"(\s*\([^;]*?\))" # signature + r"(" + _ws + r")(;)", + bygroups( + using(this), Name.Function, using(this), using(this), Punctuation + ), + ), + default("statement"), ], - 'statement': [ - include('whitespace'), - include('statements'), - ('[{}]', Punctuation), - (';', Punctuation, '#pop'), + "statement": [ + include("whitespace"), + include("statements"), + ("[{}]", Punctuation), + (";", Punctuation, "#pop"), ], - 'function': [ - include('whitespace'), - include('statements'), - (';', Punctuation), - (r'\{', Punctuation, '#push'), - (r'\}', Punctuation, '#pop'), + "function": [ + include("whitespace"), + include("statements"), + (";", Punctuation), + (r"\{", Punctuation, "#push"), + (r"\}", Punctuation, "#pop"), ], - 'string': [ - (r"'", String, '#pop'), + "string": [ + (r"'", String, "#pop"), (r'\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), - (r'\n', String), + (r"\n", String), (r"[^\\'\n]+", String), # all other characters - (r'\\\n', String), - (r'\\n', String), # line continuation - (r'\\', String), # stray backslash + (r"\\\n", String), + (r"\\n", String), # line continuation + (r"\\", String), # stray backslash ], } def get_tokens_unprocessed(self, text): from pygments.lexers._asy_builtins import ASYFUNCNAME, ASYVARNAME - for index, token, value in \ - RegexLexer.get_tokens_unprocessed(self, text): + + for index, token, value in RegexLexer.get_tokens_unprocessed(self, text): if token is Name and value in ASYFUNCNAME: token = Name.Function elif token is Name and value in ASYVARNAME: @@ -514,13 +1138,14 @@ class AsymptoteLexer(RegexLexer): def _shortened(word): - dpos = word.find('$') - return '|'.join(word[:dpos] + word[dpos+1:i] + r'\b' - for i in range(len(word), dpos, -1)) + dpos = word.find("$") + return "|".join( + word[:dpos] + word[dpos + 1 : i] + r"\b" for i in range(len(word), dpos, -1) + ) def _shortened_many(*words): - return '|'.join(map(_shortened, words)) + return "|".join(map(_shortened, words)) class GnuplotLexer(RegexLexer): @@ -528,157 +1153,332 @@ class GnuplotLexer(RegexLexer): For Gnuplot plotting scripts. """ - name = 'Gnuplot' - url = 'http://gnuplot.info/' - aliases = ['gnuplot'] - filenames = ['*.plot', '*.plt'] - mimetypes = ['text/x-gnuplot'] - version_added = '0.11' + name = "Gnuplot" + url = "http://gnuplot.info/" + aliases = ["gnuplot"] + filenames = ["*.plot", "*.plt"] + mimetypes = ["text/x-gnuplot"] + version_added = "0.11" tokens = { - 'root': [ - include('whitespace'), - (_shortened('bi$nd'), Keyword, 'bind'), - (_shortened_many('ex$it', 'q$uit'), Keyword, 'quit'), - (_shortened('f$it'), Keyword, 'fit'), - (r'(if)(\s*)(\()', bygroups(Keyword, Text, Punctuation), 'if'), - (r'else\b', Keyword), - (_shortened('pa$use'), Keyword, 'pause'), - (_shortened_many('p$lot', 'rep$lot', 'sp$lot'), Keyword, 'plot'), - (_shortened('sa$ve'), Keyword, 'save'), - (_shortened('se$t'), Keyword, ('genericargs', 'optionarg')), - (_shortened_many('sh$ow', 'uns$et'), - Keyword, ('noargs', 'optionarg')), - (_shortened_many('low$er', 'ra$ise', 'ca$ll', 'cd$', 'cl$ear', - 'h$elp', '\\?$', 'hi$story', 'l$oad', 'pr$int', - 'pwd$', 're$read', 'res$et', 'scr$eendump', - 'she$ll', 'sy$stem', 'up$date'), - Keyword, 'genericargs'), - (_shortened_many('pwd$', 're$read', 'res$et', 'scr$eendump', - 'she$ll', 'test$'), - Keyword, 'noargs'), - (r'([a-zA-Z_]\w*)(\s*)(=)', - bygroups(Name.Variable, Whitespace, Operator), 'genericargs'), - (r'([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)', - bygroups(Name.Function, Whitespace, Punctuation, - Text, Punctuation, Whitespace, Operator), 'genericargs'), - (r'@[a-zA-Z_]\w*', Name.Constant), # macros - (r';', Keyword), + "root": [ + include("whitespace"), + (_shortened("bi$nd"), Keyword, "bind"), + (_shortened_many("ex$it", "q$uit"), Keyword, "quit"), + (_shortened("f$it"), Keyword, "fit"), + (r"(if)(\s*)(\()", bygroups(Keyword, Text, Punctuation), "if"), + (r"else\b", Keyword), + (_shortened("pa$use"), Keyword, "pause"), + (_shortened_many("p$lot", "rep$lot", "sp$lot"), Keyword, "plot"), + (_shortened("sa$ve"), Keyword, "save"), + (_shortened("se$t"), Keyword, ("genericargs", "optionarg")), + (_shortened_many("sh$ow", "uns$et"), Keyword, ("noargs", "optionarg")), + ( + _shortened_many( + "low$er", + "ra$ise", + "ca$ll", + "cd$", + "cl$ear", + "h$elp", + "\\?$", + "hi$story", + "l$oad", + "pr$int", + "pwd$", + "re$read", + "res$et", + "scr$eendump", + "she$ll", + "sy$stem", + "up$date", + ), + Keyword, + "genericargs", + ), + ( + _shortened_many( + "pwd$", "re$read", "res$et", "scr$eendump", "she$ll", "test$" + ), + Keyword, + "noargs", + ), + ( + r"([a-zA-Z_]\w*)(\s*)(=)", + bygroups(Name.Variable, Whitespace, Operator), + "genericargs", + ), + ( + r"([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)", + bygroups( + Name.Function, + Whitespace, + Punctuation, + Text, + Punctuation, + Whitespace, + Operator, + ), + "genericargs", + ), + (r"@[a-zA-Z_]\w*", Name.Constant), # macros + (r";", Keyword), ], - 'comment': [ - (r'[^\\\n]+', Comment), - (r'\\\n', Comment), - (r'\\', Comment), + "comment": [ + (r"[^\\\n]+", Comment), + (r"\\\n", Comment), + (r"\\", Comment), # don't add the newline to the Comment token - default('#pop'), + default("#pop"), ], - 'whitespace': [ - ('#', Comment, 'comment'), - (r'[ \t\v\f]+', Whitespace), + "whitespace": [ + ("#", Comment, "comment"), + (r"[ \t\v\f]+", Whitespace), ], - 'noargs': [ - include('whitespace'), + "noargs": [ + include("whitespace"), # semicolon and newline end the argument list - (r';', Punctuation, '#pop'), - (r'\n', Whitespace, '#pop'), + (r";", Punctuation, "#pop"), + (r"\n", Whitespace, "#pop"), ], - 'dqstring': [ - (r'"', String, '#pop'), + "dqstring": [ + (r'"', String, "#pop"), (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), - (r'[^\\"\n]+', String), # all other characters - (r'\\\n', String), # line continuation - (r'\\', String), # stray backslash - (r'\n', Whitespace, '#pop'), # newline ends the string too + (r'[^\\"\n]+', String), # all other characters + (r"\\\n", String), # line continuation + (r"\\", String), # stray backslash + (r"\n", Whitespace, "#pop"), # newline ends the string too ], - 'sqstring': [ - (r"''", String), # escaped single quote - (r"'", String, '#pop'), - (r"[^\\'\n]+", String), # all other characters - (r'\\\n', String), # line continuation - (r'\\', String), # normal backslash - (r'\n', Whitespace, '#pop'), # newline ends the string too + "sqstring": [ + (r"''", String), # escaped single quote + (r"'", String, "#pop"), + (r"[^\\'\n]+", String), # all other characters + (r"\\\n", String), # line continuation + (r"\\", String), # normal backslash + (r"\n", Whitespace, "#pop"), # newline ends the string too ], - 'genericargs': [ - include('noargs'), - (r'"', String, 'dqstring'), - (r"'", String, 'sqstring'), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float), - (r'(\d+\.\d*|\.\d+)', Number.Float), - (r'-?\d+', Number.Integer), - ('[,.~!%^&*+=|?:<>/-]', Operator), - (r'[{}()\[\]]', Punctuation), - (r'(eq|ne)\b', Operator.Word), - (r'([a-zA-Z_]\w*)(\s*)(\()', - bygroups(Name.Function, Text, Punctuation)), - (r'[a-zA-Z_]\w*', Name), - (r'@[a-zA-Z_]\w*', Name.Constant), # macros - (r'(\\)(\n)', bygroups(Text, Whitespace)), + "genericargs": [ + include("noargs"), + (r'"', String, "dqstring"), + (r"'", String, "sqstring"), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+", Number.Float), + (r"(\d+\.\d*|\.\d+)", Number.Float), + (r"-?\d+", Number.Integer), + ("[,.~!%^&*+=|?:<>/-]", Operator), + (r"[{}()\[\]]", Punctuation), + (r"(eq|ne)\b", Operator.Word), + (r"([a-zA-Z_]\w*)(\s*)(\()", bygroups(Name.Function, Text, Punctuation)), + (r"[a-zA-Z_]\w*", Name), + (r"@[a-zA-Z_]\w*", Name.Constant), # macros + (r"(\\)(\n)", bygroups(Text, Whitespace)), ], - 'optionarg': [ - include('whitespace'), - (_shortened_many( - "a$ll", "an$gles", "ar$row", "au$toscale", "b$ars", "bor$der", - "box$width", "cl$abel", "c$lip", "cn$trparam", "co$ntour", "da$ta", - "data$file", "dg$rid3d", "du$mmy", "enc$oding", "dec$imalsign", - "fit$", "font$path", "fo$rmat", "fu$nction", "fu$nctions", "g$rid", - "hid$den3d", "his$torysize", "is$osamples", "k$ey", "keyt$itle", - "la$bel", "li$nestyle", "ls$", "loa$dpath", "loc$ale", "log$scale", - "mac$ros", "map$ping", "map$ping3d", "mar$gin", "lmar$gin", - "rmar$gin", "tmar$gin", "bmar$gin", "mo$use", "multi$plot", - "mxt$ics", "nomxt$ics", "mx2t$ics", "nomx2t$ics", "myt$ics", - "nomyt$ics", "my2t$ics", "nomy2t$ics", "mzt$ics", "nomzt$ics", - "mcbt$ics", "nomcbt$ics", "of$fsets", "or$igin", "o$utput", - "pa$rametric", "pm$3d", "pal$ette", "colorb$ox", "p$lot", - "poi$ntsize", "pol$ar", "pr$int", "obj$ect", "sa$mples", "si$ze", - "st$yle", "su$rface", "table$", "t$erminal", "termo$ptions", "ti$cs", - "ticsc$ale", "ticsl$evel", "timef$mt", "tim$estamp", "tit$le", - "v$ariables", "ve$rsion", "vi$ew", "xyp$lane", "xda$ta", "x2da$ta", - "yda$ta", "y2da$ta", "zda$ta", "cbda$ta", "xl$abel", "x2l$abel", - "yl$abel", "y2l$abel", "zl$abel", "cbl$abel", "xti$cs", "noxti$cs", - "x2ti$cs", "nox2ti$cs", "yti$cs", "noyti$cs", "y2ti$cs", "noy2ti$cs", - "zti$cs", "nozti$cs", "cbti$cs", "nocbti$cs", "xdti$cs", "noxdti$cs", - "x2dti$cs", "nox2dti$cs", "ydti$cs", "noydti$cs", "y2dti$cs", - "noy2dti$cs", "zdti$cs", "nozdti$cs", "cbdti$cs", "nocbdti$cs", - "xmti$cs", "noxmti$cs", "x2mti$cs", "nox2mti$cs", "ymti$cs", - "noymti$cs", "y2mti$cs", "noy2mti$cs", "zmti$cs", "nozmti$cs", - "cbmti$cs", "nocbmti$cs", "xr$ange", "x2r$ange", "yr$ange", - "y2r$ange", "zr$ange", "cbr$ange", "rr$ange", "tr$ange", "ur$ange", - "vr$ange", "xzeroa$xis", "x2zeroa$xis", "yzeroa$xis", "y2zeroa$xis", - "zzeroa$xis", "zeroa$xis", "z$ero"), Name.Builtin, '#pop'), + "optionarg": [ + include("whitespace"), + ( + _shortened_many( + "a$ll", + "an$gles", + "ar$row", + "au$toscale", + "b$ars", + "bor$der", + "box$width", + "cl$abel", + "c$lip", + "cn$trparam", + "co$ntour", + "da$ta", + "data$file", + "dg$rid3d", + "du$mmy", + "enc$oding", + "dec$imalsign", + "fit$", + "font$path", + "fo$rmat", + "fu$nction", + "fu$nctions", + "g$rid", + "hid$den3d", + "his$torysize", + "is$osamples", + "k$ey", + "keyt$itle", + "la$bel", + "li$nestyle", + "ls$", + "loa$dpath", + "loc$ale", + "log$scale", + "mac$ros", + "map$ping", + "map$ping3d", + "mar$gin", + "lmar$gin", + "rmar$gin", + "tmar$gin", + "bmar$gin", + "mo$use", + "multi$plot", + "mxt$ics", + "nomxt$ics", + "mx2t$ics", + "nomx2t$ics", + "myt$ics", + "nomyt$ics", + "my2t$ics", + "nomy2t$ics", + "mzt$ics", + "nomzt$ics", + "mcbt$ics", + "nomcbt$ics", + "of$fsets", + "or$igin", + "o$utput", + "pa$rametric", + "pm$3d", + "pal$ette", + "colorb$ox", + "p$lot", + "poi$ntsize", + "pol$ar", + "pr$int", + "obj$ect", + "sa$mples", + "si$ze", + "st$yle", + "su$rface", + "table$", + "t$erminal", + "termo$ptions", + "ti$cs", + "ticsc$ale", + "ticsl$evel", + "timef$mt", + "tim$estamp", + "tit$le", + "v$ariables", + "ve$rsion", + "vi$ew", + "xyp$lane", + "xda$ta", + "x2da$ta", + "yda$ta", + "y2da$ta", + "zda$ta", + "cbda$ta", + "xl$abel", + "x2l$abel", + "yl$abel", + "y2l$abel", + "zl$abel", + "cbl$abel", + "xti$cs", + "noxti$cs", + "x2ti$cs", + "nox2ti$cs", + "yti$cs", + "noyti$cs", + "y2ti$cs", + "noy2ti$cs", + "zti$cs", + "nozti$cs", + "cbti$cs", + "nocbti$cs", + "xdti$cs", + "noxdti$cs", + "x2dti$cs", + "nox2dti$cs", + "ydti$cs", + "noydti$cs", + "y2dti$cs", + "noy2dti$cs", + "zdti$cs", + "nozdti$cs", + "cbdti$cs", + "nocbdti$cs", + "xmti$cs", + "noxmti$cs", + "x2mti$cs", + "nox2mti$cs", + "ymti$cs", + "noymti$cs", + "y2mti$cs", + "noy2mti$cs", + "zmti$cs", + "nozmti$cs", + "cbmti$cs", + "nocbmti$cs", + "xr$ange", + "x2r$ange", + "yr$ange", + "y2r$ange", + "zr$ange", + "cbr$ange", + "rr$ange", + "tr$ange", + "ur$ange", + "vr$ange", + "xzeroa$xis", + "x2zeroa$xis", + "yzeroa$xis", + "y2zeroa$xis", + "zzeroa$xis", + "zeroa$xis", + "z$ero", + ), + Name.Builtin, + "#pop", + ), ], - 'bind': [ - ('!', Keyword, '#pop'), - (_shortened('all$windows'), Name.Builtin), - include('genericargs'), + "bind": [ + ("!", Keyword, "#pop"), + (_shortened("all$windows"), Name.Builtin), + include("genericargs"), ], - 'quit': [ - (r'gnuplot\b', Keyword), - include('noargs'), + "quit": [ + (r"gnuplot\b", Keyword), + include("noargs"), ], - 'fit': [ - (r'via\b', Name.Builtin), - include('plot'), + "fit": [ + (r"via\b", Name.Builtin), + include("plot"), ], - 'if': [ - (r'\)', Punctuation, '#pop'), - include('genericargs'), + "if": [ + (r"\)", Punctuation, "#pop"), + include("genericargs"), ], - 'pause': [ - (r'(mouse|any|button1|button2|button3)\b', Name.Builtin), - (_shortened('key$press'), Name.Builtin), - include('genericargs'), + "pause": [ + (r"(mouse|any|button1|button2|button3)\b", Name.Builtin), + (_shortened("key$press"), Name.Builtin), + include("genericargs"), ], - 'plot': [ - (_shortened_many('ax$es', 'axi$s', 'bin$ary', 'ev$ery', 'i$ndex', - 'mat$rix', 's$mooth', 'thru$', 't$itle', - 'not$itle', 'u$sing', 'w$ith'), - Name.Builtin), - include('genericargs'), + "plot": [ + ( + _shortened_many( + "ax$es", + "axi$s", + "bin$ary", + "ev$ery", + "i$ndex", + "mat$rix", + "s$mooth", + "thru$", + "t$itle", + "not$itle", + "u$sing", + "w$ith", + ), + Name.Builtin, + ), + include("genericargs"), ], - 'save': [ - (_shortened_many('f$unctions', 's$et', 't$erminal', 'v$ariables'), - Name.Builtin), - include('genericargs'), + "save": [ + ( + _shortened_many("f$unctions", "s$et", "t$erminal", "v$ariables"), + Name.Builtin, + ), + include("genericargs"), ], } @@ -687,90 +1487,426 @@ class PovrayLexer(RegexLexer): """ For Persistence of Vision Raytracer files. """ - name = 'POVRay' - url = 'http://www.povray.org/' - aliases = ['pov'] - filenames = ['*.pov', '*.inc'] - mimetypes = ['text/x-povray'] - version_added = '0.11' + + name = "POVRay" + url = "http://www.povray.org/" + aliases = ["pov"] + filenames = ["*.pov", "*.inc"] + mimetypes = ["text/x-povray"] + version_added = "0.11" tokens = { - 'root': [ - (r'/\*[\w\W]*?\*/', Comment.Multiline), - (r'//.*$', Comment.Single), + "root": [ + (r"/\*[\w\W]*?\*/", Comment.Multiline), + (r"//.*$", Comment.Single), (r'(?s)"(?:\\.|[^"\\])+"', String.Double), - (words(( - 'break', 'case', 'debug', 'declare', 'default', 'define', 'else', - 'elseif', 'end', 'error', 'fclose', 'fopen', 'for', 'if', 'ifdef', - 'ifndef', 'include', 'local', 'macro', 'range', 'read', 'render', - 'statistics', 'switch', 'undef', 'version', 'warning', 'while', - 'write'), prefix=r'#', suffix=r'\b'), - Comment.Preproc), - (words(( - 'aa_level', 'aa_threshold', 'abs', 'acos', 'acosh', 'adaptive', 'adc_bailout', - 'agate', 'agate_turb', 'all', 'alpha', 'ambient', 'ambient_light', 'angle', - 'aperture', 'arc_angle', 'area_light', 'asc', 'asin', 'asinh', 'assumed_gamma', - 'atan', 'atan2', 'atanh', 'atmosphere', 'atmospheric_attenuation', - 'attenuating', 'average', 'background', 'black_hole', 'blue', 'blur_samples', - 'bounded_by', 'box_mapping', 'bozo', 'break', 'brick', 'brick_size', - 'brightness', 'brilliance', 'bumps', 'bumpy1', 'bumpy2', 'bumpy3', 'bump_map', - 'bump_size', 'case', 'caustics', 'ceil', 'checker', 'chr', 'clipped_by', 'clock', - 'color', 'color_map', 'colour', 'colour_map', 'component', 'composite', 'concat', - 'confidence', 'conic_sweep', 'constant', 'control0', 'control1', 'cos', 'cosh', - 'count', 'crackle', 'crand', 'cube', 'cubic_spline', 'cylindrical_mapping', - 'debug', 'declare', 'default', 'degrees', 'dents', 'diffuse', 'direction', - 'distance', 'distance_maximum', 'div', 'dust', 'dust_type', 'eccentricity', - 'else', 'emitting', 'end', 'error', 'error_bound', 'exp', 'exponent', - 'fade_distance', 'fade_power', 'falloff', 'falloff_angle', 'false', - 'file_exists', 'filter', 'finish', 'fisheye', 'flatness', 'flip', 'floor', - 'focal_point', 'fog', 'fog_alt', 'fog_offset', 'fog_type', 'frequency', 'gif', - 'global_settings', 'glowing', 'gradient', 'granite', 'gray_threshold', - 'green', 'halo', 'hexagon', 'hf_gray_16', 'hierarchy', 'hollow', 'hypercomplex', - 'if', 'ifdef', 'iff', 'image_map', 'incidence', 'include', 'int', 'interpolate', - 'inverse', 'ior', 'irid', 'irid_wavelength', 'jitter', 'lambda', 'leopard', - 'linear', 'linear_spline', 'linear_sweep', 'location', 'log', 'looks_like', - 'look_at', 'low_error_factor', 'mandel', 'map_type', 'marble', 'material_map', - 'matrix', 'max', 'max_intersections', 'max_iteration', 'max_trace_level', - 'max_value', 'metallic', 'min', 'minimum_reuse', 'mod', 'mortar', - 'nearest_count', 'no', 'normal', 'normal_map', 'no_shadow', 'number_of_waves', - 'octaves', 'off', 'offset', 'omega', 'omnimax', 'on', 'once', 'onion', 'open', - 'orthographic', 'panoramic', 'pattern1', 'pattern2', 'pattern3', - 'perspective', 'pgm', 'phase', 'phong', 'phong_size', 'pi', 'pigment', - 'pigment_map', 'planar_mapping', 'png', 'point_at', 'pot', 'pow', 'ppm', - 'precision', 'pwr', 'quadratic_spline', 'quaternion', 'quick_color', - 'quick_colour', 'quilted', 'radial', 'radians', 'radiosity', 'radius', 'rainbow', - 'ramp_wave', 'rand', 'range', 'reciprocal', 'recursion_limit', 'red', - 'reflection', 'refraction', 'render', 'repeat', 'rgb', 'rgbf', 'rgbft', 'rgbt', - 'right', 'ripples', 'rotate', 'roughness', 'samples', 'scale', 'scallop_wave', - 'scattering', 'seed', 'shadowless', 'sin', 'sine_wave', 'sinh', 'sky', 'sky_sphere', - 'slice', 'slope_map', 'smooth', 'specular', 'spherical_mapping', 'spiral', - 'spiral1', 'spiral2', 'spotlight', 'spotted', 'sqr', 'sqrt', 'statistics', 'str', - 'strcmp', 'strength', 'strlen', 'strlwr', 'strupr', 'sturm', 'substr', 'switch', 'sys', - 't', 'tan', 'tanh', 'test_camera_1', 'test_camera_2', 'test_camera_3', - 'test_camera_4', 'texture', 'texture_map', 'tga', 'thickness', 'threshold', - 'tightness', 'tile2', 'tiles', 'track', 'transform', 'translate', 'transmit', - 'triangle_wave', 'true', 'ttf', 'turbulence', 'turb_depth', 'type', - 'ultra_wide_angle', 'up', 'use_color', 'use_colour', 'use_index', 'u_steps', - 'val', 'variance', 'vaxis_rotate', 'vcross', 'vdot', 'version', 'vlength', - 'vnormalize', 'volume_object', 'volume_rendered', 'vol_with_light', - 'vrotate', 'v_steps', 'warning', 'warp', 'water_level', 'waves', 'while', 'width', - 'wood', 'wrinkles', 'yes'), prefix=r'\b', suffix=r'\b'), - Keyword), - (words(( - 'bicubic_patch', 'blob', 'box', 'camera', 'cone', 'cubic', 'cylinder', 'difference', - 'disc', 'height_field', 'intersection', 'julia_fractal', 'lathe', - 'light_source', 'merge', 'mesh', 'object', 'plane', 'poly', 'polygon', 'prism', - 'quadric', 'quartic', 'smooth_triangle', 'sor', 'sphere', 'superellipsoid', - 'text', 'torus', 'triangle', 'union'), suffix=r'\b'), - Name.Builtin), - (r'\b(x|y|z|u|v)\b', Name.Builtin.Pseudo), - (r'[a-zA-Z_]\w*', Name), - (r'[0-9]*\.[0-9]+', Number.Float), - (r'[0-9]+', Number.Integer), - (r'[\[\](){}<>;,]', Punctuation), - (r'[-+*/=.|&]|<=|>=|!=', Operator), + ( + words( + ( + "break", + "case", + "debug", + "declare", + "default", + "define", + "else", + "elseif", + "end", + "error", + "fclose", + "fopen", + "for", + "if", + "ifdef", + "ifndef", + "include", + "local", + "macro", + "range", + "read", + "render", + "statistics", + "switch", + "undef", + "version", + "warning", + "while", + "write", + ), + prefix=r"#", + suffix=r"\b", + ), + Comment.Preproc, + ), + ( + words( + ( + "aa_level", + "aa_threshold", + "abs", + "acos", + "acosh", + "adaptive", + "adc_bailout", + "agate", + "agate_turb", + "all", + "alpha", + "ambient", + "ambient_light", + "angle", + "aperture", + "arc_angle", + "area_light", + "asc", + "asin", + "asinh", + "assumed_gamma", + "atan", + "atan2", + "atanh", + "atmosphere", + "atmospheric_attenuation", + "attenuating", + "average", + "background", + "black_hole", + "blue", + "blur_samples", + "bounded_by", + "box_mapping", + "bozo", + "break", + "brick", + "brick_size", + "brightness", + "brilliance", + "bumps", + "bumpy1", + "bumpy2", + "bumpy3", + "bump_map", + "bump_size", + "case", + "caustics", + "ceil", + "checker", + "chr", + "clipped_by", + "clock", + "color", + "color_map", + "colour", + "colour_map", + "component", + "composite", + "concat", + "confidence", + "conic_sweep", + "constant", + "control0", + "control1", + "cos", + "cosh", + "count", + "crackle", + "crand", + "cube", + "cubic_spline", + "cylindrical_mapping", + "debug", + "declare", + "default", + "degrees", + "dents", + "diffuse", + "direction", + "distance", + "distance_maximum", + "div", + "dust", + "dust_type", + "eccentricity", + "else", + "emitting", + "end", + "error", + "error_bound", + "exp", + "exponent", + "fade_distance", + "fade_power", + "falloff", + "falloff_angle", + "false", + "file_exists", + "filter", + "finish", + "fisheye", + "flatness", + "flip", + "floor", + "focal_point", + "fog", + "fog_alt", + "fog_offset", + "fog_type", + "frequency", + "gif", + "global_settings", + "glowing", + "gradient", + "granite", + "gray_threshold", + "green", + "halo", + "hexagon", + "hf_gray_16", + "hierarchy", + "hollow", + "hypercomplex", + "if", + "ifdef", + "iff", + "image_map", + "incidence", + "include", + "int", + "interpolate", + "inverse", + "ior", + "irid", + "irid_wavelength", + "jitter", + "lambda", + "leopard", + "linear", + "linear_spline", + "linear_sweep", + "location", + "log", + "looks_like", + "look_at", + "low_error_factor", + "mandel", + "map_type", + "marble", + "material_map", + "matrix", + "max", + "max_intersections", + "max_iteration", + "max_trace_level", + "max_value", + "metallic", + "min", + "minimum_reuse", + "mod", + "mortar", + "nearest_count", + "no", + "normal", + "normal_map", + "no_shadow", + "number_of_waves", + "octaves", + "off", + "offset", + "omega", + "omnimax", + "on", + "once", + "onion", + "open", + "orthographic", + "panoramic", + "pattern1", + "pattern2", + "pattern3", + "perspective", + "pgm", + "phase", + "phong", + "phong_size", + "pi", + "pigment", + "pigment_map", + "planar_mapping", + "png", + "point_at", + "pot", + "pow", + "ppm", + "precision", + "pwr", + "quadratic_spline", + "quaternion", + "quick_color", + "quick_colour", + "quilted", + "radial", + "radians", + "radiosity", + "radius", + "rainbow", + "ramp_wave", + "rand", + "range", + "reciprocal", + "recursion_limit", + "red", + "reflection", + "refraction", + "render", + "repeat", + "rgb", + "rgbf", + "rgbft", + "rgbt", + "right", + "ripples", + "rotate", + "roughness", + "samples", + "scale", + "scallop_wave", + "scattering", + "seed", + "shadowless", + "sin", + "sine_wave", + "sinh", + "sky", + "sky_sphere", + "slice", + "slope_map", + "smooth", + "specular", + "spherical_mapping", + "spiral", + "spiral1", + "spiral2", + "spotlight", + "spotted", + "sqr", + "sqrt", + "statistics", + "str", + "strcmp", + "strength", + "strlen", + "strlwr", + "strupr", + "sturm", + "substr", + "switch", + "sys", + "t", + "tan", + "tanh", + "test_camera_1", + "test_camera_2", + "test_camera_3", + "test_camera_4", + "texture", + "texture_map", + "tga", + "thickness", + "threshold", + "tightness", + "tile2", + "tiles", + "track", + "transform", + "translate", + "transmit", + "triangle_wave", + "true", + "ttf", + "turbulence", + "turb_depth", + "type", + "ultra_wide_angle", + "up", + "use_color", + "use_colour", + "use_index", + "u_steps", + "val", + "variance", + "vaxis_rotate", + "vcross", + "vdot", + "version", + "vlength", + "vnormalize", + "volume_object", + "volume_rendered", + "vol_with_light", + "vrotate", + "v_steps", + "warning", + "warp", + "water_level", + "waves", + "while", + "width", + "wood", + "wrinkles", + "yes", + ), + prefix=r"\b", + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "bicubic_patch", + "blob", + "box", + "camera", + "cone", + "cubic", + "cylinder", + "difference", + "disc", + "height_field", + "intersection", + "julia_fractal", + "lathe", + "light_source", + "merge", + "mesh", + "object", + "plane", + "poly", + "polygon", + "prism", + "quadric", + "quartic", + "smooth_triangle", + "sor", + "sphere", + "superellipsoid", + "text", + "torus", + "triangle", + "union", + ), + suffix=r"\b", + ), + Name.Builtin, + ), + (r"\b(x|y|z|u|v)\b", Name.Builtin.Pseudo), + (r"[a-zA-Z_]\w*", Name), + (r"[0-9]*\.[0-9]+", Number.Float), + (r"[0-9]+", Number.Integer), + (r"[\[\](){}<>;,]", Punctuation), + (r"[-+*/=.|&]|<=|>=|!=", Operator), (r'"(\\\\|\\[^\\]|[^"\\])*"', String), - (r'\s+', Whitespace), + (r"\s+", Whitespace), ] } @@ -782,13 +1918,13 @@ class PovrayLexer(RegexLexer): to assume though that any POVRAY scene must have a camera and lightsource.""" result = 0 - if '#version' in text: + if "#version" in text: result += 0.05 - if '#declare' in text: + if "#declare" in text: result += 0.05 - if 'camera' in text: + if "camera" in text: result += 0.05 - if 'light_source' in text: + if "light_source" in text: result += 0.1 return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphql.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphql.py index 7de5b6e..83c222c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphql.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphql.py @@ -1,21 +1,27 @@ """ - pygments.lexers.graphql - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.graphql +~~~~~~~~~~~~~~~~~~~~~~~ - Lexer for GraphQL, an open-source data query and manipulation - language for APIs. +Lexer for GraphQL, an open-source data query and manipulation +language for APIs. - More information: - https://graphql.org/ +More information: +https://graphql.org/ - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, words, include, bygroups, default -from pygments.token import (Comment, Keyword, Name, Number, Punctuation, String, - Whitespace) - +from pygments.token import ( + Comment, + Keyword, + Name, + Number, + Punctuation, + String, + Whitespace, +) __all__ = ["GraphQLLexer"] @@ -58,11 +64,12 @@ class GraphQLLexer(RegexLexer): """ Lexer for GraphQL syntax """ + name = "GraphQL" aliases = ["graphql"] filenames = ["*.graphql"] url = "https://graphql.org" - version_added = '2.16' + version_added = "2.16" tokens = { "ignored_tokens": [ diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphviz.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphviz.py index 6b48415..5d05b6c 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphviz.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/graphviz.py @@ -1,58 +1,68 @@ """ - pygments.lexers.graphviz - ~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.graphviz +~~~~~~~~~~~~~~~~~~~~~~~~ - Lexer for the DOT language (graphviz). +Lexer for the DOT language (graphviz). - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups -from pygments.token import Comment, Keyword, Operator, Name, String, Number, \ - Punctuation, Whitespace +from pygments.token import ( + Comment, + Keyword, + Operator, + Name, + String, + Number, + Punctuation, + Whitespace, +) - -__all__ = ['GraphvizLexer'] +__all__ = ["GraphvizLexer"] class GraphvizLexer(RegexLexer): """ For graphviz DOT graph description language. """ - name = 'Graphviz' - url = 'https://www.graphviz.org/doc/info/lang.html' - aliases = ['graphviz', 'dot'] - filenames = ['*.gv', '*.dot'] - mimetypes = ['text/x-graphviz', 'text/vnd.graphviz'] - version_added = '2.8' + + name = "Graphviz" + url = "https://www.graphviz.org/doc/info/lang.html" + aliases = ["graphviz", "dot"] + filenames = ["*.gv", "*.dot"] + mimetypes = ["text/x-graphviz", "text/vnd.graphviz"] + version_added = "2.8" tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'(#|//).*?$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'(?i)(node|edge|graph|digraph|subgraph|strict)\b', Keyword), - (r'--|->', Operator), - (r'[{}[\]:;,]', Punctuation), - (r'(\b\D\w*)(\s*)(=)(\s*)', + "root": [ + (r"\s+", Whitespace), + (r"(#|//).*?$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"(?i)(node|edge|graph|digraph|subgraph|strict)\b", Keyword), + (r"--|->", Operator), + (r"[{}[\]:;,]", Punctuation), + ( + r"(\b\D\w*)(\s*)(=)(\s*)", bygroups(Name.Attribute, Whitespace, Punctuation, Whitespace), - 'attr_id'), - (r'\b(n|ne|e|se|s|sw|w|nw|c|_)\b', Name.Builtin), - (r'\b\D\w*', Name.Tag), # node - (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number), + "attr_id", + ), + (r"\b(n|ne|e|se|s|sw|w|nw|c|_)\b", Name.Builtin), + (r"\b\D\w*", Name.Tag), # node + (r"[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))", Number), (r'"(\\"|[^"])*?"', Name.Tag), # quoted node - (r'<', Punctuation, 'xml'), + (r"<", Punctuation, "xml"), ], - 'attr_id': [ - (r'\b\D\w*', String, '#pop'), - (r'[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))', Number, '#pop'), - (r'"(\\"|[^"])*?"', String.Double, '#pop'), - (r'<', Punctuation, ('#pop', 'xml')), + "attr_id": [ + (r"\b\D\w*", String, "#pop"), + (r"[-]?((\.[0-9]+)|([0-9]+(\.[0-9]*)?))", Number, "#pop"), + (r'"(\\"|[^"])*?"', String.Double, "#pop"), + (r"<", Punctuation, ("#pop", "xml")), + ], + "xml": [ + (r"<", Punctuation, "#push"), + (r">", Punctuation, "#pop"), + (r"\s+", Whitespace), + (r"[^<>\s]", Name.Tag), ], - 'xml': [ - (r'<', Punctuation, '#push'), - (r'>', Punctuation, '#pop'), - (r'\s+', Whitespace), - (r'[^<>\s]', Name.Tag), - ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gsql.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gsql.py index 9ff1878..9c10c66 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gsql.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/gsql.py @@ -1,103 +1,254 @@ """ - pygments.lexers.gsql - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.gsql +~~~~~~~~~~~~~~~~~~~~ - Lexers for TigerGraph GSQL graph query language +Lexers for TigerGraph GSQL graph query language - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, bygroups, using, this, words -from pygments.token import Keyword, Punctuation, Comment, Operator, Name, \ - String, Number, Whitespace +from pygments.token import ( + Keyword, + Punctuation, + Comment, + Operator, + Name, + String, + Number, + Whitespace, +) __all__ = ["GSQLLexer"] class GSQLLexer(RegexLexer): - """ For GSQL queries (version 3.x). """ - name = 'GSQL' - url = 'https://docs.tigergraph.com/dev/gsql-ref' - aliases = ['gsql'] - filenames = ['*.gsql'] - version_added = '2.10' + name = "GSQL" + url = "https://docs.tigergraph.com/dev/gsql-ref" + aliases = ["gsql"] + filenames = ["*.gsql"] + version_added = "2.10" flags = re.MULTILINE | re.IGNORECASE tokens = { - 'root': [ - include('comment'), - include('keywords'), - include('clauses'), - include('accums'), - include('relations'), - include('strings'), - include('whitespace'), - include('barewords'), - include('operators'), + "root": [ + include("comment"), + include("keywords"), + include("clauses"), + include("accums"), + include("relations"), + include("strings"), + include("whitespace"), + include("barewords"), + include("operators"), ], - 'comment': [ - (r'\#.*', Comment.Single), - (r'/\*(.|\n)*?\*/', Comment.Multiline), + "comment": [ + (r"\#.*", Comment.Single), + (r"/\*(.|\n)*?\*/", Comment.Multiline), ], - 'keywords': [ - (words(( - 'ACCUM', 'AND', 'ANY', 'API', 'AS', 'ASC', 'AVG', 'BAG', 'BATCH', - 'BETWEEN', 'BOOL', 'BOTH', 'BREAK', 'BY', 'CASE', 'CATCH', 'COALESCE', - 'COMPRESS', 'CONTINUE', 'COUNT', 'CREATE', 'DATETIME', 'DATETIME_ADD', - 'DATETIME_SUB', 'DELETE', 'DESC', 'DISTRIBUTED', 'DO', 'DOUBLE', - 'EDGE', 'ELSE', 'END', 'ESCAPE', 'EXCEPTION', 'FALSE', 'FILE', - 'FILTER', 'FLOAT', 'FOREACH', 'FOR', 'FROM', 'GRAPH', 'GROUP', - 'GSQL_INT_MAX', 'GSQL_INT_MIN', 'GSQL_UINT_MAX', 'HAVING', 'IF', - 'IN', 'INSERT', 'INT', 'INTERPRET', 'INTERSECT', 'INTERVAL', 'INTO', - 'IS', 'ISEMPTY', 'JSONARRAY', 'JSONOBJECT', 'LASTHOP', 'LEADING', - 'LIKE', 'LIMIT', 'LIST', 'LOAD_ACCUM', 'LOG', 'MAP', 'MATCH', 'MAX', - 'MIN', 'MINUS', 'NOT', 'NOW', 'NULL', 'OFFSET', 'OR', 'ORDER', 'PATH', - 'PER', 'PINNED', 'POST_ACCUM', 'POST-ACCUM', 'PRIMARY_ID', 'PRINT', - 'QUERY', 'RAISE', 'RANGE', 'REPLACE', 'RESET_COLLECTION_ACCUM', - 'RETURN', 'RETURNS', 'RUN', 'SAMPLE', 'SELECT', 'SELECT_VERTEX', - 'SET', 'SRC', 'STATIC', 'STRING', 'SUM', 'SYNTAX', 'TARGET', - 'TAGSTGT', 'THEN', 'TO', 'TO_CSV', 'TO_DATETIME', 'TRAILING', - 'TRIM', 'TRUE', 'TRY', 'TUPLE', 'TYPEDEF', 'UINT', 'UNION', 'UPDATE', - 'VALUES', 'VERTEX', 'WHEN', 'WHERE', 'WHILE', 'WITH'), - prefix=r'(?|<-', Operator), - (r'[.*{}\[\]\<\>\_]', Punctuation), + "relations": [ + (r"(-\s?)(\(.*\:\w?\))(\s?-)", bygroups(Operator, using(this), Operator)), + (r"->|<-", Operator), + (r"[.*{}\[\]\<\>\_]", Punctuation), ], - 'strings': [ + "strings": [ (r'"([^"\\]|\\.)*"', String), - (r'@{1,2}\w+', Name.Variable), + (r"@{1,2}\w+", Name.Variable), ], - 'whitespace': [ - (r'\s+', Whitespace), + "whitespace": [ + (r"\s+", Whitespace), ], - 'barewords': [ - (r'[a-z]\w*', Name), - (r'(\d+\.\d+|\d+)', Number), + "barewords": [ + (r"[a-z]\w*", Name), + (r"(\d+\.\d+|\d+)", Number), ], - 'operators': [ - (r'\$|[^0-9|\/|\-](\-\=|\+\=|\*\=|\\\=|\=|\=\=|\=\=\=|' - r'\+|\-|\*|\\|\+\=|\>|\<)[^\>|\/]', Operator), - (r'(\||\(|\)|\,|\;|\=|\-|\+|\*|\/|\>|\<|\:)', Operator), + "operators": [ + ( + r"\$|[^0-9|\/|\-](\-\=|\+\=|\*\=|\\\=|\=|\=\=|\=\=\=|" + r"\+|\-|\*|\\|\+\=|\>|\<)[^\>|\/]", + Operator, + ), + (r"(\||\(|\)|\,|\;|\=|\-|\+|\*|\/|\>|\<|\:)", Operator), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hare.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hare.py index 56548d5..7af7e7f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hare.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hare.py @@ -1,73 +1,121 @@ """ - pygments.lexers.hare - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.hare +~~~~~~~~~~~~~~~~~~~~ - Lexers for the Hare language. +Lexers for the Hare language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, words -from pygments.token import Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) + +__all__ = ["HareLexer"] -__all__ = ['HareLexer'] class HareLexer(RegexLexer): """ Lexer for the Hare programming language. """ - name = 'Hare' - url = 'https://harelang.org/' - aliases = ['hare'] - filenames = ['*.ha'] - mimetypes = ['text/x-hare'] - version_added = '2.19' - _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+' - _ws1 = r'\s*(?:/[*].*?[*]/\s*)?' + name = "Hare" + url = "https://harelang.org/" + aliases = ["hare"] + filenames = ["*.ha"] + mimetypes = ["text/x-hare"] + version_added = "2.19" + + _ws = r"(?:\s|//.*?\n|/[*].*?[*]/)+" + _ws1 = r"\s*(?:/[*].*?[*]/\s*)?" tokens = { - 'whitespace': [ - (r'^use.*;', Comment.Preproc), - (r'@[a-z]+', Comment.Preproc), - (r'\n', Whitespace), - (r'\s+', Whitespace), - (r'//.*?$', Comment.Single), + "whitespace": [ + (r"^use.*;", Comment.Preproc), + (r"@[a-z]+", Comment.Preproc), + (r"\n", Whitespace), + (r"\s+", Whitespace), + (r"//.*?$", Comment.Single), ], - 'statements': [ - (r'"', String, 'string'), - (r'`[^`]*`', String), + "statements": [ + (r'"', String, "string"), + (r"`[^`]*`", String), (r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), - (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex), - (r'0o[0-7]+[LlUu]*', Number.Oct), - (r'\d+[zui]?(\d+)?', Number.Integer), - (r'[~!%^&*+=|?:<>/-]', Operator), - (words(('as', 'is', '=>', '..', '...')), Operator), - (r'[()\[\],.{};]+', Punctuation), - (words(('abort', 'align', 'alloc', 'append', 'assert', 'case', - 'const', 'def', 'defer', 'delete', 'else', 'enum', 'export', - 'fn', 'for', 'free', 'if', 'let', 'len', 'match', 'offset', - 'return', 'static', 'struct', 'switch', 'type', 'union', - 'yield', 'vastart', 'vaarg', 'vaend'), - suffix=r'\b'), Keyword), - (r'(bool|int|uint|uintptr|u8|u16|u32|u64|i8|i16|i32|i64|f32|f64|null|done|never|void|nullable|rune|size|valist)\b', - Keyword.Type), - (r'(true|false|null)\b', Name.Builtin), - (r'[a-zA-Z_]\w*', Name), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float), + (r"0x[0-9a-fA-F]+[LlUu]*", Number.Hex), + (r"0o[0-7]+[LlUu]*", Number.Oct), + (r"\d+[zui]?(\d+)?", Number.Integer), + (r"[~!%^&*+=|?:<>/-]", Operator), + (words(("as", "is", "=>", "..", "...")), Operator), + (r"[()\[\],.{};]+", Punctuation), + ( + words( + ( + "abort", + "align", + "alloc", + "append", + "assert", + "case", + "const", + "def", + "defer", + "delete", + "else", + "enum", + "export", + "fn", + "for", + "free", + "if", + "let", + "len", + "match", + "offset", + "return", + "static", + "struct", + "switch", + "type", + "union", + "yield", + "vastart", + "vaarg", + "vaend", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + r"(bool|int|uint|uintptr|u8|u16|u32|u64|i8|i16|i32|i64|f32|f64|null|done|never|void|nullable|rune|size|valist)\b", + Keyword.Type, + ), + (r"(true|false|null)\b", Name.Builtin), + (r"[a-zA-Z_]\w*", Name), ], - 'string': [ - (r'"', String, '#pop'), - (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' - r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape), + "string": [ + (r'"', String, "#pop"), + ( + r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' + r"u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})", + String.Escape, + ), (r'[^\\"\n]+', String), # all other characters - (r'\\', String), # stray backslash + (r"\\", String), # stray backslash ], - 'root': [ - include('whitespace'), - include('statements'), + "root": [ + include("whitespace"), + include("statements"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haskell.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haskell.py index 0a9f2c1..92ff852 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haskell.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haskell.py @@ -1,154 +1,242 @@ """ - pygments.lexers.haskell - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.haskell +~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for Haskell and related languages. +Lexers for Haskell and related languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \ - default, include, inherit, line_re -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic, Whitespace +from pygments.lexer import ( + Lexer, + RegexLexer, + bygroups, + do_insertions, + default, + include, + inherit, + line_re, +) +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, + Whitespace, +) from pygments import unistring as uni -__all__ = ['HaskellLexer', 'HspecLexer', 'IdrisLexer', 'AgdaLexer', 'CryptolLexer', - 'LiterateHaskellLexer', 'LiterateIdrisLexer', 'LiterateAgdaLexer', - 'LiterateCryptolLexer', 'KokaLexer'] +__all__ = [ + "HaskellLexer", + "HspecLexer", + "IdrisLexer", + "AgdaLexer", + "CryptolLexer", + "LiterateHaskellLexer", + "LiterateIdrisLexer", + "LiterateAgdaLexer", + "LiterateCryptolLexer", + "KokaLexer", +] class HaskellLexer(RegexLexer): """ A Haskell lexer based on the lexemes defined in the Haskell 98 Report. """ - name = 'Haskell' - url = 'https://www.haskell.org/' - aliases = ['haskell', 'hs'] - filenames = ['*.hs'] - mimetypes = ['text/x-haskell'] - version_added = '0.8' - reserved = ('case', 'class', 'data', 'default', 'deriving', 'do', 'else', - 'family', 'if', 'in', 'infix[lr]?', 'instance', - 'let', 'newtype', 'of', 'then', 'type', 'where', '_') - ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK', - 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE', - 'DC[1-4]', 'NAK', 'SYN', 'ETB', 'CAN', - 'EM', 'SUB', 'ESC', '[FGRU]S', 'SP', 'DEL') + name = "Haskell" + url = "https://www.haskell.org/" + aliases = ["haskell", "hs"] + filenames = ["*.hs"] + mimetypes = ["text/x-haskell"] + version_added = "0.8" + + reserved = ( + "case", + "class", + "data", + "default", + "deriving", + "do", + "else", + "family", + "if", + "in", + "infix[lr]?", + "instance", + "let", + "newtype", + "of", + "then", + "type", + "where", + "_", + ) + ascii = ( + "NUL", + "SOH", + "[SE]TX", + "EOT", + "ENQ", + "ACK", + "BEL", + "BS", + "HT", + "LF", + "VT", + "FF", + "CR", + "S[OI]", + "DLE", + "DC[1-4]", + "NAK", + "SYN", + "ETB", + "CAN", + "EM", + "SUB", + "ESC", + "[FGRU]S", + "SP", + "DEL", + ) tokens = { - 'root': [ + "root": [ # Whitespace: - (r'\s+', Whitespace), + (r"\s+", Whitespace), # (r'--\s*|.*$', Comment.Doc), - (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single), - (r'\{-', Comment.Multiline, 'comment'), + (r"--(?![!#$%&*+./<=>?@^|_~:\\]).*?$", Comment.Single), + (r"\{-", Comment.Multiline, "comment"), # Lexemes: # Identifiers - (r'\bimport\b', Keyword.Reserved, 'import'), - (r'\bmodule\b', Keyword.Reserved, 'module'), - (r'\berror\b', Name.Exception), - (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved), + (r"\bimport\b", Keyword.Reserved, "import"), + (r"\bmodule\b", Keyword.Reserved, "module"), + (r"\berror\b", Name.Exception), + (r"\b({})(?!\')\b".format("|".join(reserved)), Keyword.Reserved), (r"'[^\\]'", String.Char), # this has to come before the TH quote - (r'^[_' + uni.Ll + r'][\w\']*', Name.Function), + (r"^[_" + uni.Ll + r"][\w\']*", Name.Function), (r"'?[_" + uni.Ll + r"][\w']*", Name), (r"('')?[" + uni.Lu + r"][\w\']*", Keyword.Type), (r"(')[" + uni.Lu + r"][\w\']*", Keyword.Type), - (r"(')\[[^\]]*\]", Keyword.Type), # tuples and lists get special treatment in GHC + ( + r"(')\[[^\]]*\]", + Keyword.Type, + ), # tuples and lists get special treatment in GHC (r"(')\([^)]*\)", Keyword.Type), # .. (r"(')[:!#$%&*+.\\/<=>?@^|~-]+", Keyword.Type), # promoted type operators # Operators - (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator - (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials - (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators - (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators + (r"\\(?![:!#$%&*+.\\/<=>?@^|~-]+)", Name.Function), # lambda operator + (r"(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)", Operator.Word), # specials + (r":[:!#$%&*+.\\/<=>?@^|~-]*", Keyword.Type), # Constructor operators + (r"[:!#$%&*+.\\/<=>?@^|~-]+", Operator), # Other operators # Numbers - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*', Number.Float), - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*' - r'(_*[pP][+-]?\d(_*\d)*)?', Number.Float), - (r'\d(_*\d)*_*[eE][+-]?\d(_*\d)*', Number.Float), - (r'\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?', Number.Float), - (r'0[bB]_*[01](_*[01])*', Number.Bin), - (r'0[oO]_*[0-7](_*[0-7])*', Number.Oct), - (r'0[xX]_*[\da-fA-F](_*[\da-fA-F])*', Number.Hex), - (r'\d(_*\d)*', Number.Integer), + (r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*", Number.Float), + ( + r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*\.[\da-fA-F](_*[\da-fA-F])*" + r"(_*[pP][+-]?\d(_*\d)*)?", + Number.Float, + ), + (r"\d(_*\d)*_*[eE][+-]?\d(_*\d)*", Number.Float), + (r"\d(_*\d)*\.\d(_*\d)*(_*[eE][+-]?\d(_*\d)*)?", Number.Float), + (r"0[bB]_*[01](_*[01])*", Number.Bin), + (r"0[oO]_*[0-7](_*[0-7])*", Number.Oct), + (r"0[xX]_*[\da-fA-F](_*[\da-fA-F])*", Number.Hex), + (r"\d(_*\d)*", Number.Integer), # Character/String Literals - (r"'", String.Char, 'character'), - (r'"', String, 'string'), + (r"'", String.Char, "character"), + (r'"', String, "string"), # Special - (r'\[\]', Keyword.Type), - (r'\(\)', Name.Builtin), - (r'[][(),;`{}]', Punctuation), + (r"\[\]", Keyword.Type), + (r"\(\)", Name.Builtin), + (r"[][(),;`{}]", Punctuation), ], - 'import': [ + "import": [ # Import statements - (r'\s+', Whitespace), - (r'"', String, 'string'), + (r"\s+", Whitespace), + (r'"', String, "string"), # after "funclist" state - (r'\)', Punctuation, '#pop'), - (r'qualified\b', Keyword), + (r"\)", Punctuation, "#pop"), + (r"qualified\b", Keyword), # import X as Y - (r'([' + uni.Lu + r'][\w.]*)(\s+)(as)(\s+)([' + uni.Lu + r'][\w.]*)', - bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), '#pop'), + ( + r"([" + uni.Lu + r"][\w.]*)(\s+)(as)(\s+)([" + uni.Lu + r"][\w.]*)", + bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), + "#pop", + ), # import X hiding (functions) - (r'([' + uni.Lu + r'][\w.]*)(\s+)(hiding)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), 'funclist'), + ( + r"([" + uni.Lu + r"][\w.]*)(\s+)(hiding)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), + "funclist", + ), # import X (functions) - (r'([' + uni.Lu + r'][\w.]*)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'), + ( + r"([" + uni.Lu + r"][\w.]*)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Punctuation), + "funclist", + ), # import X - (r'[\w.]+', Name.Namespace, '#pop'), + (r"[\w.]+", Name.Namespace, "#pop"), ], - 'module': [ - (r'\s+', Whitespace), - (r'([' + uni.Lu + r'][\w.]*)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'), - (r'[' + uni.Lu + r'][\w.]*', Name.Namespace, '#pop'), + "module": [ + (r"\s+", Whitespace), + ( + r"([" + uni.Lu + r"][\w.]*)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Punctuation), + "funclist", + ), + (r"[" + uni.Lu + r"][\w.]*", Name.Namespace, "#pop"), ], - 'funclist': [ - (r'\s+', Whitespace), - (r'[' + uni.Lu + r']\w*', Keyword.Type), - (r'(_[\w\']+|[' + uni.Ll + r'][\w\']*)', Name.Function), - (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single), - (r'\{-', Comment.Multiline, 'comment'), - (r',', Punctuation), - (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), + "funclist": [ + (r"\s+", Whitespace), + (r"[" + uni.Lu + r"]\w*", Keyword.Type), + (r"(_[\w\']+|[" + uni.Ll + r"][\w\']*)", Name.Function), + (r"--(?![!#$%&*+./<=>?@^|_~:\\]).*?$", Comment.Single), + (r"\{-", Comment.Multiline, "comment"), + (r",", Punctuation), + (r"[:!#$%&*+.\\/<=>?@^|~-]+", Operator), # (HACK, but it makes sense to push two instances, believe me) - (r'\(', Punctuation, ('funclist', 'funclist')), - (r'\)', Punctuation, '#pop:2'), + (r"\(", Punctuation, ("funclist", "funclist")), + (r"\)", Punctuation, "#pop:2"), ], # NOTE: the next four states are shared in the AgdaLexer; make sure # any change is compatible with Agda as well or copy over and change - 'comment': [ + "comment": [ # Multiline Comments - (r'[^-{}]+', Comment.Multiline), - (r'\{-', Comment.Multiline, '#push'), - (r'-\}', Comment.Multiline, '#pop'), - (r'[-{}]', Comment.Multiline), + (r"[^-{}]+", Comment.Multiline), + (r"\{-", Comment.Multiline, "#push"), + (r"-\}", Comment.Multiline, "#pop"), + (r"[-{}]", Comment.Multiline), ], - 'character': [ + "character": [ # Allows multi-chars, incorrectly. - (r"[^\\']'", String.Char, '#pop'), - (r"\\", String.Escape, 'escape'), - ("'", String.Char, '#pop'), + (r"[^\\']'", String.Char, "#pop"), + (r"\\", String.Escape, "escape"), + ("'", String.Char, "#pop"), ], - 'string': [ + "string": [ (r'[^\\"]+', String), - (r"\\", String.Escape, 'escape'), - ('"', String, '#pop'), + (r"\\", String.Escape, "escape"), + ('"', String, "#pop"), ], - 'escape': [ - (r'[abfnrtv"\'&\\]', String.Escape, '#pop'), - (r'\^[][' + uni.Lu + r'@^_]', String.Escape, '#pop'), - ('|'.join(ascii), String.Escape, '#pop'), - (r'o[0-7]+', String.Escape, '#pop'), - (r'x[\da-fA-F]+', String.Escape, '#pop'), - (r'\d+', String.Escape, '#pop'), - (r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop'), + "escape": [ + (r'[abfnrtv"\'&\\]', String.Escape, "#pop"), + (r"\^[][" + uni.Lu + r"@^_]", String.Escape, "#pop"), + ("|".join(ascii), String.Escape, "#pop"), + (r"o[0-7]+", String.Escape, "#pop"), + (r"x[\da-fA-F]+", String.Escape, "#pop"), + (r"\d+", String.Escape, "#pop"), + (r"(\s+)(\\)", bygroups(Whitespace, String.Escape), "#pop"), ], } @@ -158,14 +246,14 @@ class HspecLexer(HaskellLexer): A Haskell lexer with support for Hspec constructs. """ - name = 'Hspec' - aliases = ['hspec'] - filenames = ['*Spec.hs'] + name = "Hspec" + aliases = ["hspec"] + filenames = ["*Spec.hs"] mimetypes = [] - version_added = '2.4' + version_added = "2.4" tokens = { - 'root': [ + "root": [ (r'(it)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)), (r'(describe)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)), (r'(context)(\s*)("[^"]*")', bygroups(Text, Whitespace, String.Doc)), @@ -180,107 +268,201 @@ class IdrisLexer(RegexLexer): Based on the Haskell and Agda Lexer. """ - name = 'Idris' - url = 'https://www.idris-lang.org/' - aliases = ['idris', 'idr'] - filenames = ['*.idr'] - mimetypes = ['text/x-idris'] - version_added = '2.0' - reserved = ('case', 'class', 'data', 'default', 'using', 'do', 'else', - 'if', 'in', 'infix[lr]?', 'instance', 'rewrite', 'auto', - 'namespace', 'codata', 'mutual', 'private', 'public', 'abstract', - 'total', 'partial', - 'interface', 'implementation', 'export', 'covering', 'constructor', - 'let', 'proof', 'of', 'then', 'static', 'where', '_', 'with', - 'pattern', 'term', 'syntax', 'prefix', - 'postulate', 'parameters', 'record', 'dsl', 'impossible', 'implicit', - 'tactics', 'intros', 'intro', 'compute', 'refine', 'exact', 'trivial') + name = "Idris" + url = "https://www.idris-lang.org/" + aliases = ["idris", "idr"] + filenames = ["*.idr"] + mimetypes = ["text/x-idris"] + version_added = "2.0" - ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK', - 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE', - 'DC[1-4]', 'NAK', 'SYN', 'ETB', 'CAN', - 'EM', 'SUB', 'ESC', '[FGRU]S', 'SP', 'DEL') + reserved = ( + "case", + "class", + "data", + "default", + "using", + "do", + "else", + "if", + "in", + "infix[lr]?", + "instance", + "rewrite", + "auto", + "namespace", + "codata", + "mutual", + "private", + "public", + "abstract", + "total", + "partial", + "interface", + "implementation", + "export", + "covering", + "constructor", + "let", + "proof", + "of", + "then", + "static", + "where", + "_", + "with", + "pattern", + "term", + "syntax", + "prefix", + "postulate", + "parameters", + "record", + "dsl", + "impossible", + "implicit", + "tactics", + "intros", + "intro", + "compute", + "refine", + "exact", + "trivial", + ) - directives = ('lib', 'link', 'flag', 'include', 'hide', 'freeze', 'access', - 'default', 'logging', 'dynamic', 'name', 'error_handlers', 'language') + ascii = ( + "NUL", + "SOH", + "[SE]TX", + "EOT", + "ENQ", + "ACK", + "BEL", + "BS", + "HT", + "LF", + "VT", + "FF", + "CR", + "S[OI]", + "DLE", + "DC[1-4]", + "NAK", + "SYN", + "ETB", + "CAN", + "EM", + "SUB", + "ESC", + "[FGRU]S", + "SP", + "DEL", + ) + + directives = ( + "lib", + "link", + "flag", + "include", + "hide", + "freeze", + "access", + "default", + "logging", + "dynamic", + "name", + "error_handlers", + "language", + ) tokens = { - 'root': [ + "root": [ # Comments - (r'^(\s*)(%({}))'.format('|'.join(directives)), - bygroups(Whitespace, Keyword.Reserved)), - (r'(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$', bygroups(Whitespace, Comment.Single)), - (r'(\s*)(\|{3}.*?)$', bygroups(Whitespace, Comment.Single)), - (r'(\s*)(\{-)', bygroups(Whitespace, Comment.Multiline), 'comment'), + ( + r"^(\s*)(%({}))".format("|".join(directives)), + bygroups(Whitespace, Keyword.Reserved), + ), + ( + r"(\s*)(--(?![!#$%&*+./<=>?@^|_~:\\]).*?)$", + bygroups(Whitespace, Comment.Single), + ), + (r"(\s*)(\|{3}.*?)$", bygroups(Whitespace, Comment.Single)), + (r"(\s*)(\{-)", bygroups(Whitespace, Comment.Multiline), "comment"), # Declaration - (r'^(\s*)([^\s(){}]+)(\s*)(:)(\s*)', - bygroups(Whitespace, Name.Function, Whitespace, Operator.Word, Whitespace)), + ( + r"^(\s*)([^\s(){}]+)(\s*)(:)(\s*)", + bygroups( + Whitespace, Name.Function, Whitespace, Operator.Word, Whitespace + ), + ), # Identifiers - (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved), - (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace), 'module'), + (r"\b({})(?!\')\b".format("|".join(reserved)), Keyword.Reserved), + (r"(import|module)(\s+)", bygroups(Keyword.Reserved, Whitespace), "module"), (r"('')?[A-Z][\w\']*", Keyword.Type), - (r'[a-z][\w\']*', Text), + (r"[a-z][\w\']*", Text), # Special Symbols - (r'(<-|::|->|=>|=)', Operator.Word), # specials - (r'([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials + (r"(<-|::|->|=>|=)", Operator.Word), # specials + (r"([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)", Operator.Word), # specials # Numbers - (r'\d+[eE][+-]?\d+', Number.Float), - (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float), - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'\d+', Number.Integer), + (r"\d+[eE][+-]?\d+", Number.Float), + (r"\d+\.\d+([eE][+-]?\d+)?", Number.Float), + (r"0[xX][\da-fA-F]+", Number.Hex), + (r"\d+", Number.Integer), # Strings - (r"'", String.Char, 'character'), - (r'"', String, 'string'), - (r'[^\s(){}]+', Text), - (r'\s+?', Whitespace), # Whitespace + (r"'", String.Char, "character"), + (r'"', String, "string"), + (r"[^\s(){}]+", Text), + (r"\s+?", Whitespace), # Whitespace ], - 'module': [ - (r'\s+', Whitespace), - (r'([A-Z][\w.]*)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'), - (r'[A-Z][\w.]*', Name.Namespace, '#pop'), + "module": [ + (r"\s+", Whitespace), + ( + r"([A-Z][\w.]*)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Punctuation), + "funclist", + ), + (r"[A-Z][\w.]*", Name.Namespace, "#pop"), ], - 'funclist': [ - (r'\s+', Whitespace), - (r'[A-Z]\w*', Keyword.Type), - (r'(_[\w\']+|[a-z][\w\']*)', Name.Function), - (r'--.*$', Comment.Single), - (r'\{-', Comment.Multiline, 'comment'), - (r',', Punctuation), - (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), + "funclist": [ + (r"\s+", Whitespace), + (r"[A-Z]\w*", Keyword.Type), + (r"(_[\w\']+|[a-z][\w\']*)", Name.Function), + (r"--.*$", Comment.Single), + (r"\{-", Comment.Multiline, "comment"), + (r",", Punctuation), + (r"[:!#$%&*+.\\/<=>?@^|~-]+", Operator), # (HACK, but it makes sense to push two instances, believe me) - (r'\(', Punctuation, ('funclist', 'funclist')), - (r'\)', Punctuation, '#pop:2'), + (r"\(", Punctuation, ("funclist", "funclist")), + (r"\)", Punctuation, "#pop:2"), ], # NOTE: the next four states are shared in the AgdaLexer; make sure # any change is compatible with Agda as well or copy over and change - 'comment': [ + "comment": [ # Multiline Comments - (r'[^-{}]+', Comment.Multiline), - (r'\{-', Comment.Multiline, '#push'), - (r'-\}', Comment.Multiline, '#pop'), - (r'[-{}]', Comment.Multiline), + (r"[^-{}]+", Comment.Multiline), + (r"\{-", Comment.Multiline, "#push"), + (r"-\}", Comment.Multiline, "#pop"), + (r"[-{}]", Comment.Multiline), ], - 'character': [ + "character": [ # Allows multi-chars, incorrectly. (r"[^\\']", String.Char), - (r"\\", String.Escape, 'escape'), - ("'", String.Char, '#pop'), + (r"\\", String.Escape, "escape"), + ("'", String.Char, "#pop"), ], - 'string': [ + "string": [ (r'[^\\"]+', String), - (r"\\", String.Escape, 'escape'), - ('"', String, '#pop'), + (r"\\", String.Escape, "escape"), + ('"', String, "#pop"), ], - 'escape': [ - (r'[abfnrtv"\'&\\]', String.Escape, '#pop'), - (r'\^[][A-Z@^_]', String.Escape, '#pop'), - ('|'.join(ascii), String.Escape, '#pop'), - (r'o[0-7]+', String.Escape, '#pop'), - (r'x[\da-fA-F]+', String.Escape, '#pop'), - (r'\d+', String.Escape, '#pop'), - (r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop') + "escape": [ + (r'[abfnrtv"\'&\\]', String.Escape, "#pop"), + (r"\^[][A-Z@^_]", String.Escape, "#pop"), + ("|".join(ascii), String.Escape, "#pop"), + (r"o[0-7]+", String.Escape, "#pop"), + (r"x[\da-fA-F]+", String.Escape, "#pop"), + (r"\d+", String.Escape, "#pop"), + (r"(\s+)(\\)", bygroups(Whitespace, String.Escape), "#pop"), ], } @@ -291,70 +473,108 @@ class AgdaLexer(RegexLexer): proof assistant. """ - name = 'Agda' - url = 'http://wiki.portal.chalmers.se/agda/pmwiki.php' - aliases = ['agda'] - filenames = ['*.agda'] - mimetypes = ['text/x-agda'] - version_added = '2.0' + name = "Agda" + url = "http://wiki.portal.chalmers.se/agda/pmwiki.php" + aliases = ["agda"] + filenames = ["*.agda"] + mimetypes = ["text/x-agda"] + version_added = "2.0" reserved = ( - 'abstract', 'codata', 'coinductive', 'constructor', 'data', 'do', - 'eta-equality', 'field', 'forall', 'hiding', 'in', 'inductive', 'infix', - 'infixl', 'infixr', 'instance', 'interleaved', 'let', 'macro', 'mutual', - 'no-eta-equality', 'opaque', 'open', 'overlap', 'pattern', 'postulate', 'primitive', - 'private', 'quote', 'quoteTerm', 'record', 'renaming', 'rewrite', - 'syntax', 'tactic', 'unfolding', 'unquote', 'unquoteDecl', 'unquoteDef', 'using', - 'variable', 'where', 'with', + "abstract", + "codata", + "coinductive", + "constructor", + "data", + "do", + "eta-equality", + "field", + "forall", + "hiding", + "in", + "inductive", + "infix", + "infixl", + "infixr", + "instance", + "interleaved", + "let", + "macro", + "mutual", + "no-eta-equality", + "opaque", + "open", + "overlap", + "pattern", + "postulate", + "primitive", + "private", + "quote", + "quoteTerm", + "record", + "renaming", + "rewrite", + "syntax", + "tactic", + "unfolding", + "unquote", + "unquoteDecl", + "unquoteDef", + "using", + "variable", + "where", + "with", ) tokens = { - 'root': [ + "root": [ # Declaration - (r'^(\s*)([^\s(){}]+)(\s*)(:)(\s*)', - bygroups(Whitespace, Name.Function, Whitespace, - Operator.Word, Whitespace)), + ( + r"^(\s*)([^\s(){}]+)(\s*)(:)(\s*)", + bygroups( + Whitespace, Name.Function, Whitespace, Operator.Word, Whitespace + ), + ), # Comments - (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single), - (r'\{-', Comment.Multiline, 'comment'), + (r"--(?![!#$%&*+./<=>?@^|_~:\\]).*?$", Comment.Single), + (r"\{-", Comment.Multiline, "comment"), # Holes - (r'\{!', Comment.Directive, 'hole'), + (r"\{!", Comment.Directive, "hole"), # Lexemes: # Identifiers - (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved), - (r'(import|module)(\s+)', bygroups(Keyword.Reserved, Whitespace), - 'module'), - (r'\b(Set|Prop)[\u2080-\u2089]*\b', Keyword.Type), + (r"\b({})(?!\')\b".format("|".join(reserved)), Keyword.Reserved), + (r"(import|module)(\s+)", bygroups(Keyword.Reserved, Whitespace), "module"), + (r"\b(Set|Prop)[\u2080-\u2089]*\b", Keyword.Type), # Special Symbols - (r'(\(|\)|\{|\})', Operator), - (r'(\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)', Operator.Word), + (r"(\(|\)|\{|\})", Operator), + (r"(\.{1,3}|\||\u03BB|\u2200|\u2192|:|=|->)", Operator.Word), # Numbers - (r'\d+[eE][+-]?\d+', Number.Float), - (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float), - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'\d+', Number.Integer), + (r"\d+[eE][+-]?\d+", Number.Float), + (r"\d+\.\d+([eE][+-]?\d+)?", Number.Float), + (r"0[xX][\da-fA-F]+", Number.Hex), + (r"\d+", Number.Integer), # Strings - (r"'", String.Char, 'character'), - (r'"', String, 'string'), - (r'[^\s(){}]+', Text), - (r'\s+?', Whitespace), # Whitespace + (r"'", String.Char, "character"), + (r'"', String, "string"), + (r"[^\s(){}]+", Text), + (r"\s+?", Whitespace), # Whitespace ], - 'hole': [ + "hole": [ # Holes - (r'[^!{}]+', Comment.Directive), - (r'\{!', Comment.Directive, '#push'), - (r'!\}', Comment.Directive, '#pop'), - (r'[!{}]', Comment.Directive), + (r"[^!{}]+", Comment.Directive), + (r"\{!", Comment.Directive, "#push"), + (r"!\}", Comment.Directive, "#pop"), + (r"[!{}]", Comment.Directive), ], - 'module': [ - (r'\{-', Comment.Multiline, 'comment'), - (r'[a-zA-Z][\w.\']*', Name, '#pop'), - (r'[\W0-9_]+', Text) + "module": [ + (r"\{-", Comment.Multiline, "comment"), + (r"[a-zA-Z][\w.\']*", Name, "#pop"), + (r"[\W0-9_]+", Text), ], - 'comment': HaskellLexer.tokens['comment'], - 'character': HaskellLexer.tokens['character'], - 'string': HaskellLexer.tokens['string'], - 'escape': HaskellLexer.tokens['escape'] + "comment": HaskellLexer.tokens["comment"], + "character": HaskellLexer.tokens["character"], + "string": HaskellLexer.tokens["string"], + "escape": HaskellLexer.tokens["escape"], } @@ -362,133 +582,208 @@ class CryptolLexer(RegexLexer): """ FIXME: A Cryptol2 lexer based on the lexemes defined in the Haskell 98 Report. """ - name = 'Cryptol' - aliases = ['cryptol', 'cry'] - filenames = ['*.cry'] - mimetypes = ['text/x-cryptol'] - url = 'https://www.cryptol.net' - version_added = '2.0' - reserved = ('Arith', 'Bit', 'Cmp', 'False', 'Inf', 'True', 'else', - 'export', 'extern', 'fin', 'if', 'import', 'inf', 'lg2', - 'max', 'min', 'module', 'newtype', 'pragma', 'property', - 'then', 'type', 'where', 'width') - ascii = ('NUL', 'SOH', '[SE]TX', 'EOT', 'ENQ', 'ACK', - 'BEL', 'BS', 'HT', 'LF', 'VT', 'FF', 'CR', 'S[OI]', 'DLE', - 'DC[1-4]', 'NAK', 'SYN', 'ETB', 'CAN', - 'EM', 'SUB', 'ESC', '[FGRU]S', 'SP', 'DEL') + name = "Cryptol" + aliases = ["cryptol", "cry"] + filenames = ["*.cry"] + mimetypes = ["text/x-cryptol"] + url = "https://www.cryptol.net" + version_added = "2.0" + + reserved = ( + "Arith", + "Bit", + "Cmp", + "False", + "Inf", + "True", + "else", + "export", + "extern", + "fin", + "if", + "import", + "inf", + "lg2", + "max", + "min", + "module", + "newtype", + "pragma", + "property", + "then", + "type", + "where", + "width", + ) + ascii = ( + "NUL", + "SOH", + "[SE]TX", + "EOT", + "ENQ", + "ACK", + "BEL", + "BS", + "HT", + "LF", + "VT", + "FF", + "CR", + "S[OI]", + "DLE", + "DC[1-4]", + "NAK", + "SYN", + "ETB", + "CAN", + "EM", + "SUB", + "ESC", + "[FGRU]S", + "SP", + "DEL", + ) tokens = { - 'root': [ + "root": [ # Whitespace: - (r'\s+', Whitespace), + (r"\s+", Whitespace), # (r'--\s*|.*$', Comment.Doc), - (r'//.*$', Comment.Single), - (r'/\*', Comment.Multiline, 'comment'), + (r"//.*$", Comment.Single), + (r"/\*", Comment.Multiline, "comment"), # Lexemes: # Identifiers - (r'\bimport\b', Keyword.Reserved, 'import'), - (r'\bmodule\b', Keyword.Reserved, 'module'), - (r'\berror\b', Name.Exception), - (r'\b({})(?!\')\b'.format('|'.join(reserved)), Keyword.Reserved), - (r'^[_a-z][\w\']*', Name.Function), + (r"\bimport\b", Keyword.Reserved, "import"), + (r"\bmodule\b", Keyword.Reserved, "module"), + (r"\berror\b", Name.Exception), + (r"\b({})(?!\')\b".format("|".join(reserved)), Keyword.Reserved), + (r"^[_a-z][\w\']*", Name.Function), (r"'?[_a-z][\w']*", Name), (r"('')?[A-Z][\w\']*", Keyword.Type), # Operators - (r'\\(?![:!#$%&*+.\\/<=>?@^|~-]+)', Name.Function), # lambda operator - (r'(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)', Operator.Word), # specials - (r':[:!#$%&*+.\\/<=>?@^|~-]*', Keyword.Type), # Constructor operators - (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), # Other operators + (r"\\(?![:!#$%&*+.\\/<=>?@^|~-]+)", Name.Function), # lambda operator + (r"(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)", Operator.Word), # specials + (r":[:!#$%&*+.\\/<=>?@^|~-]*", Keyword.Type), # Constructor operators + (r"[:!#$%&*+.\\/<=>?@^|~-]+", Operator), # Other operators # Numbers - (r'\d+[eE][+-]?\d+', Number.Float), - (r'\d+\.\d+([eE][+-]?\d+)?', Number.Float), - (r'0[oO][0-7]+', Number.Oct), - (r'0[xX][\da-fA-F]+', Number.Hex), - (r'\d+', Number.Integer), + (r"\d+[eE][+-]?\d+", Number.Float), + (r"\d+\.\d+([eE][+-]?\d+)?", Number.Float), + (r"0[oO][0-7]+", Number.Oct), + (r"0[xX][\da-fA-F]+", Number.Hex), + (r"\d+", Number.Integer), # Character/String Literals - (r"'", String.Char, 'character'), - (r'"', String, 'string'), + (r"'", String.Char, "character"), + (r'"', String, "string"), # Special - (r'\[\]', Keyword.Type), - (r'\(\)', Name.Builtin), - (r'[][(),;`{}]', Punctuation), + (r"\[\]", Keyword.Type), + (r"\(\)", Name.Builtin), + (r"[][(),;`{}]", Punctuation), ], - 'import': [ + "import": [ # Import statements - (r'\s+', Whitespace), - (r'"', String, 'string'), + (r"\s+", Whitespace), + (r'"', String, "string"), # after "funclist" state - (r'\)', Punctuation, '#pop'), - (r'qualified\b', Keyword), + (r"\)", Punctuation, "#pop"), + (r"qualified\b", Keyword), # import X as Y - (r'([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)', - bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), '#pop'), + ( + r"([A-Z][\w.]*)(\s+)(as)(\s+)([A-Z][\w.]*)", + bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Name), + "#pop", + ), # import X hiding (functions) - (r'([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), 'funclist'), + ( + r"([A-Z][\w.]*)(\s+)(hiding)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Keyword, Whitespace, Punctuation), + "funclist", + ), # import X (functions) - (r'([A-Z][\w.]*)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'), + ( + r"([A-Z][\w.]*)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Punctuation), + "funclist", + ), # import X - (r'[\w.]+', Name.Namespace, '#pop'), + (r"[\w.]+", Name.Namespace, "#pop"), ], - 'module': [ - (r'\s+', Whitespace), - (r'([A-Z][\w.]*)(\s+)(\()', - bygroups(Name.Namespace, Whitespace, Punctuation), 'funclist'), - (r'[A-Z][\w.]*', Name.Namespace, '#pop'), + "module": [ + (r"\s+", Whitespace), + ( + r"([A-Z][\w.]*)(\s+)(\()", + bygroups(Name.Namespace, Whitespace, Punctuation), + "funclist", + ), + (r"[A-Z][\w.]*", Name.Namespace, "#pop"), ], - 'funclist': [ - (r'\s+', Whitespace), - (r'[A-Z]\w*', Keyword.Type), - (r'(_[\w\']+|[a-z][\w\']*)', Name.Function), + "funclist": [ + (r"\s+", Whitespace), + (r"[A-Z]\w*", Keyword.Type), + (r"(_[\w\']+|[a-z][\w\']*)", Name.Function), # TODO: these don't match the comments in docs, remove. # (r'--(?![!#$%&*+./<=>?@^|_~:\\]).*?$', Comment.Single), # (r'{-', Comment.Multiline, 'comment'), - (r',', Punctuation), - (r'[:!#$%&*+.\\/<=>?@^|~-]+', Operator), + (r",", Punctuation), + (r"[:!#$%&*+.\\/<=>?@^|~-]+", Operator), # (HACK, but it makes sense to push two instances, believe me) - (r'\(', Punctuation, ('funclist', 'funclist')), - (r'\)', Punctuation, '#pop:2'), + (r"\(", Punctuation, ("funclist", "funclist")), + (r"\)", Punctuation, "#pop:2"), ], - 'comment': [ + "comment": [ # Multiline Comments - (r'[^/*]+', Comment.Multiline), - (r'/\*', Comment.Multiline, '#push'), - (r'\*/', Comment.Multiline, '#pop'), - (r'[*/]', Comment.Multiline), + (r"[^/*]+", Comment.Multiline), + (r"/\*", Comment.Multiline, "#push"), + (r"\*/", Comment.Multiline, "#pop"), + (r"[*/]", Comment.Multiline), ], - 'character': [ + "character": [ # Allows multi-chars, incorrectly. - (r"[^\\']'", String.Char, '#pop'), - (r"\\", String.Escape, 'escape'), - ("'", String.Char, '#pop'), + (r"[^\\']'", String.Char, "#pop"), + (r"\\", String.Escape, "escape"), + ("'", String.Char, "#pop"), ], - 'string': [ + "string": [ (r'[^\\"]+', String), - (r"\\", String.Escape, 'escape'), - ('"', String, '#pop'), + (r"\\", String.Escape, "escape"), + ('"', String, "#pop"), ], - 'escape': [ - (r'[abfnrtv"\'&\\]', String.Escape, '#pop'), - (r'\^[][A-Z@^_]', String.Escape, '#pop'), - ('|'.join(ascii), String.Escape, '#pop'), - (r'o[0-7]+', String.Escape, '#pop'), - (r'x[\da-fA-F]+', String.Escape, '#pop'), - (r'\d+', String.Escape, '#pop'), - (r'(\s+)(\\)', bygroups(Whitespace, String.Escape), '#pop'), + "escape": [ + (r'[abfnrtv"\'&\\]', String.Escape, "#pop"), + (r"\^[][A-Z@^_]", String.Escape, "#pop"), + ("|".join(ascii), String.Escape, "#pop"), + (r"o[0-7]+", String.Escape, "#pop"), + (r"x[\da-fA-F]+", String.Escape, "#pop"), + (r"\d+", String.Escape, "#pop"), + (r"(\s+)(\\)", bygroups(Whitespace, String.Escape), "#pop"), ], } - EXTRA_KEYWORDS = {'join', 'split', 'reverse', 'transpose', 'width', - 'length', 'tail', '<<', '>>', '<<<', '>>>', 'const', - 'reg', 'par', 'seq', 'ASSERT', 'undefined', 'error', - 'trace'} + EXTRA_KEYWORDS = { + "join", + "split", + "reverse", + "transpose", + "width", + "length", + "tail", + "<<", + ">>", + "<<<", + ">>>", + "const", + "reg", + "par", + "seq", + "ASSERT", + "undefined", + "error", + "trace", + } def get_tokens_unprocessed(self, text): - stack = ['root'] - for index, token, value in \ - RegexLexer.get_tokens_unprocessed(self, text, stack): + stack = ["root"] + for index, token, value in RegexLexer.get_tokens_unprocessed(self, text, stack): if token is Name and value in self.EXTRA_KEYWORDS: yield index, Name.Builtin, value else: @@ -508,55 +803,57 @@ class LiterateLexer(Lexer): is a backslash or percent character, LaTeX is assumed, else Bird. """ - bird_re = re.compile(r'(>[ \t]*)(.*\n)') + bird_re = re.compile(r"(>[ \t]*)(.*\n)") def __init__(self, baselexer, **options): self.baselexer = baselexer Lexer.__init__(self, **options) def get_tokens_unprocessed(self, text): - style = self.options.get('litstyle') + style = self.options.get("litstyle") if style is None: - style = (text.lstrip()[0:1] in '%\\') and 'latex' or 'bird' + style = (text.lstrip()[0:1] in "%\\") and "latex" or "bird" - code = '' + code = "" insertions = [] - if style == 'bird': + if style == "bird": # bird-style for match in line_re.finditer(text): line = match.group() m = self.bird_re.match(line) if m: - insertions.append((len(code), - [(0, Comment.Special, m.group(1))])) + insertions.append((len(code), [(0, Comment.Special, m.group(1))])) code += m.group(2) else: insertions.append((len(code), [(0, Text, line)])) else: # latex-style from pygments.lexers.markup import TexLexer + lxlexer = TexLexer(**self.options) codelines = 0 - latex = '' + latex = "" for match in line_re.finditer(text): line = match.group() if codelines: - if line.lstrip().startswith('\\end{code}'): + if line.lstrip().startswith("\\end{code}"): codelines = 0 latex += line else: code += line - elif line.lstrip().startswith('\\begin{code}'): + elif line.lstrip().startswith("\\begin{code}"): codelines = 1 latex += line - insertions.append((len(code), - list(lxlexer.get_tokens_unprocessed(latex)))) - latex = '' + insertions.append( + (len(code), list(lxlexer.get_tokens_unprocessed(latex))) + ) + latex = "" else: latex += line - insertions.append((len(code), - list(lxlexer.get_tokens_unprocessed(latex)))) - yield from do_insertions(insertions, self.baselexer.get_tokens_unprocessed(code)) + insertions.append((len(code), list(lxlexer.get_tokens_unprocessed(latex)))) + yield from do_insertions( + insertions, self.baselexer.get_tokens_unprocessed(code) + ) class LiterateHaskellLexer(LiterateLexer): @@ -570,12 +867,13 @@ class LiterateHaskellLexer(LiterateLexer): is autodetected: if the first non-whitespace character in the source is a backslash or percent character, LaTeX is assumed, else Bird. """ - name = 'Literate Haskell' - aliases = ['literate-haskell', 'lhaskell', 'lhs'] - filenames = ['*.lhs'] - mimetypes = ['text/x-literate-haskell'] - url = 'https://wiki.haskell.org/Literate_programming' - version_added = '0.9' + + name = "Literate Haskell" + aliases = ["literate-haskell", "lhaskell", "lhs"] + filenames = ["*.lhs"] + mimetypes = ["text/x-literate-haskell"] + url = "https://wiki.haskell.org/Literate_programming" + version_added = "0.9" def __init__(self, **options): hslexer = HaskellLexer(**options) @@ -593,12 +891,13 @@ class LiterateIdrisLexer(LiterateLexer): is autodetected: if the first non-whitespace character in the source is a backslash or percent character, LaTeX is assumed, else Bird. """ - name = 'Literate Idris' - aliases = ['literate-idris', 'lidris', 'lidr'] - filenames = ['*.lidr'] - mimetypes = ['text/x-literate-idris'] - url = 'https://idris2.readthedocs.io/en/latest/reference/literate.html' - version_added = '2.0' + + name = "Literate Idris" + aliases = ["literate-idris", "lidris", "lidr"] + filenames = ["*.lidr"] + mimetypes = ["text/x-literate-idris"] + url = "https://idris2.readthedocs.io/en/latest/reference/literate.html" + version_added = "2.0" def __init__(self, **options): hslexer = IdrisLexer(**options) @@ -616,16 +915,17 @@ class LiterateAgdaLexer(LiterateLexer): is autodetected: if the first non-whitespace character in the source is a backslash or percent character, LaTeX is assumed, else Bird. """ - name = 'Literate Agda' - aliases = ['literate-agda', 'lagda'] - filenames = ['*.lagda'] - mimetypes = ['text/x-literate-agda'] - url = 'https://agda.readthedocs.io/en/latest/tools/literate-programming.html' - version_added = '2.0' + + name = "Literate Agda" + aliases = ["literate-agda", "lagda"] + filenames = ["*.lagda"] + mimetypes = ["text/x-literate-agda"] + url = "https://agda.readthedocs.io/en/latest/tools/literate-programming.html" + version_added = "2.0" def __init__(self, **options): agdalexer = AgdaLexer(**options) - LiterateLexer.__init__(self, agdalexer, litstyle='latex', **options) + LiterateLexer.__init__(self, agdalexer, litstyle="latex", **options) class LiterateCryptolLexer(LiterateLexer): @@ -639,12 +939,13 @@ class LiterateCryptolLexer(LiterateLexer): is autodetected: if the first non-whitespace character in the source is a backslash or percent character, LaTeX is assumed, else Bird. """ - name = 'Literate Cryptol' - aliases = ['literate-cryptol', 'lcryptol', 'lcry'] - filenames = ['*.lcry'] - mimetypes = ['text/x-literate-cryptol'] - url = 'https://www.cryptol.net' - version_added = '2.0' + + name = "Literate Cryptol" + aliases = ["literate-cryptol", "lcryptol", "lcry"] + filenames = ["*.lcry"] + mimetypes = ["text/x-literate-cryptol"] + url = "https://www.cryptol.net" + version_added = "2.0" def __init__(self, **options): crylexer = CryptolLexer(**options) @@ -656,54 +957,93 @@ class KokaLexer(RegexLexer): Lexer for the Koka language. """ - name = 'Koka' - url = 'https://koka-lang.github.io/koka/doc/index.html' - aliases = ['koka'] - filenames = ['*.kk', '*.kki'] - mimetypes = ['text/x-koka'] - version_added = '1.6' + name = "Koka" + url = "https://koka-lang.github.io/koka/doc/index.html" + aliases = ["koka"] + filenames = ["*.kk", "*.kki"] + mimetypes = ["text/x-koka"] + version_added = "1.6" keywords = [ - 'infix', 'infixr', 'infixl', - 'type', 'cotype', 'rectype', 'alias', - 'struct', 'con', - 'fun', 'function', 'val', 'var', - 'external', - 'if', 'then', 'else', 'elif', 'return', 'match', - 'private', 'public', 'private', - 'module', 'import', 'as', - 'include', 'inline', - 'rec', - 'try', 'yield', 'enum', - 'interface', 'instance', + "infix", + "infixr", + "infixl", + "type", + "cotype", + "rectype", + "alias", + "struct", + "con", + "fun", + "function", + "val", + "var", + "external", + "if", + "then", + "else", + "elif", + "return", + "match", + "private", + "public", + "private", + "module", + "import", + "as", + "include", + "inline", + "rec", + "try", + "yield", + "enum", + "interface", + "instance", ] # keywords that are followed by a type typeStartKeywords = [ - 'type', 'cotype', 'rectype', 'alias', 'struct', 'enum', + "type", + "cotype", + "rectype", + "alias", + "struct", + "enum", ] # keywords valid in a type typekeywords = [ - 'forall', 'exists', 'some', 'with', + "forall", + "exists", + "some", + "with", ] # builtin names and special names builtin = [ - 'for', 'while', 'repeat', - 'foreach', 'foreach-indexed', - 'error', 'catch', 'finally', - 'cs', 'js', 'file', 'ref', 'assigned', + "for", + "while", + "repeat", + "foreach", + "foreach-indexed", + "error", + "catch", + "finally", + "cs", + "js", + "file", + "ref", + "assigned", ] # symbols that can be in an operator - symbols = r'[$%&*+@!/\\^~=.:\-?|<>]+' + symbols = r"[$%&*+@!/\\^~=.:\-?|<>]+" # symbol boundary: an operator keyword should not be followed by any of these - sboundary = '(?!' + symbols + ')' + sboundary = "(?!" + symbols + ")" # name boundary: a keyword should not be followed by any of these - boundary = r'(?![\w/])' + boundary = r"(?![\w/])" # koka token abstractions tokenType = Name.Attribute @@ -712,155 +1052,163 @@ class KokaLexer(RegexLexer): # main lexer tokens = { - 'root': [ - include('whitespace'), - + "root": [ + include("whitespace"), # go into type mode - (r'::?' + sboundary, tokenType, 'type'), - (r'(alias)(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef), - 'alias-type'), - (r'(struct)(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef), - 'struct-type'), - ((r'({})'.format('|'.join(typeStartKeywords))) + - r'(\s+)([a-z]\w*)?', bygroups(Keyword, Whitespace, tokenTypeDef), - 'type'), - + (r"::?" + sboundary, tokenType, "type"), + ( + r"(alias)(\s+)([a-z]\w*)?", + bygroups(Keyword, Whitespace, tokenTypeDef), + "alias-type", + ), + ( + r"(struct)(\s+)([a-z]\w*)?", + bygroups(Keyword, Whitespace, tokenTypeDef), + "struct-type", + ), + ( + (r"({})".format("|".join(typeStartKeywords))) + r"(\s+)([a-z]\w*)?", + bygroups(Keyword, Whitespace, tokenTypeDef), + "type", + ), # special sequences of tokens (we use ?: for non-capturing group as # required by 'bygroups') - (r'(module)(\s+)(interface(?=\s))?(\s+)?((?:[a-z]\w*/)*[a-z]\w*)', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Namespace)), - (r'(import)(\s+)((?:[a-z]\w*/)*[a-z]\w*)' - r'(?:(\s*)(=)(\s*)(qualified)?(\s*)' - r'((?:[a-z]\w*/)*[a-z]\w*))?', - bygroups(Keyword, Whitespace, Name.Namespace, Whitespace, Keyword, Whitespace, - Keyword, Whitespace, Name.Namespace)), - - (r'^(public|private)?(\s+)?(function|fun|val)' - r'(\s+)([a-z]\w*|\((?:' + symbols + r'|/)\))', - bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Function)), - (r'^(?:(public|private)(?=\s+external))?((?|[=.]' + sboundary, Keyword), - + (r"({})".format("|".join(typekeywords)) + boundary, Keyword.Type), + (r"({})".format("|".join(keywords)) + boundary, Keyword), + (r"({})".format("|".join(builtin)) + boundary, Keyword.Pseudo), + (r"::?|:=|\->|[=.]" + sboundary, Keyword), # names - (r'((?:[a-z]\w*/)*)([A-Z]\w*)', - bygroups(Name.Namespace, tokenConstructor)), - (r'((?:[a-z]\w*/)*)([a-z]\w*)', bygroups(Name.Namespace, Name)), - (r'((?:[a-z]\w*/)*)(\((?:' + symbols + r'|/)\))', - bygroups(Name.Namespace, Name)), - (r'_\w*', Name.Variable), - + (r"((?:[a-z]\w*/)*)([A-Z]\w*)", bygroups(Name.Namespace, tokenConstructor)), + (r"((?:[a-z]\w*/)*)([a-z]\w*)", bygroups(Name.Namespace, Name)), + ( + r"((?:[a-z]\w*/)*)(\((?:" + symbols + r"|/)\))", + bygroups(Name.Namespace, Name), + ), + (r"_\w*", Name.Variable), # literal string - (r'@"', String.Double, 'litstring'), - + (r'@"', String.Double, "litstring"), # operators (symbols + "|/(?![*/])", Operator), - (r'`', Operator), - (r'[{}()\[\];,]', Punctuation), - + (r"`", Operator), + (r"[{}()\[\];,]", Punctuation), # literals. No check for literal characters with len > 1 - (r'[0-9]+\.[0-9]+([eE][\-+]?[0-9]+)?', Number.Float), - (r'0[xX][0-9a-fA-F]+', Number.Hex), - (r'[0-9]+', Number.Integer), - - (r"'", String.Char, 'char'), - (r'"', String.Double, 'string'), + (r"[0-9]+\.[0-9]+([eE][\-+]?[0-9]+)?", Number.Float), + (r"0[xX][0-9a-fA-F]+", Number.Hex), + (r"[0-9]+", Number.Integer), + (r"'", String.Char, "char"), + (r'"', String.Double, "string"), ], - # type started by alias - 'alias-type': [ - (r'=', Keyword), - include('type') - ], - + "alias-type": [(r"=", Keyword), include("type")], # type started by struct - 'struct-type': [ - (r'(?=\((?!,*\)))', Punctuation, '#pop'), - include('type') - ], - + "struct-type": [(r"(?=\((?!,*\)))", Punctuation, "#pop"), include("type")], # type started by colon - 'type': [ - (r'[(\[<]', tokenType, 'type-nested'), - include('type-content') - ], - + "type": [(r"[(\[<]", tokenType, "type-nested"), include("type-content")], # type nested in brackets: can contain parameters, comma etc. - 'type-nested': [ - (r'[)\]>]', tokenType, '#pop'), - (r'[(\[<]', tokenType, 'type-nested'), - (r',', tokenType), - (r'([a-z]\w*)(\s*)(:)(?!:)', - bygroups(Name, Whitespace, tokenType)), # parameter name - include('type-content') + "type-nested": [ + (r"[)\]>]", tokenType, "#pop"), + (r"[(\[<]", tokenType, "type-nested"), + (r",", tokenType), + ( + r"([a-z]\w*)(\s*)(:)(?!:)", + bygroups(Name, Whitespace, tokenType), + ), # parameter name + include("type-content"), ], - # shared contents of a type - 'type-content': [ - include('whitespace'), - + "type-content": [ + include("whitespace"), # keywords - (r'({})'.format('|'.join(typekeywords)) + boundary, Keyword), - (r'(?=(({})'.format('|'.join(keywords)) + boundary + '))', - Keyword, '#pop'), # need to match because names overlap... - + (r"({})".format("|".join(typekeywords)) + boundary, Keyword), + ( + r"(?=(({})".format("|".join(keywords)) + boundary + "))", + Keyword, + "#pop", + ), # need to match because names overlap... # kinds - (r'[EPHVX]' + boundary, tokenType), - + (r"[EPHVX]" + boundary, tokenType), # type names - (r'[a-z][0-9]*(?![\w/])', tokenType), - (r'_\w*', tokenType.Variable), # Generic.Emph - (r'((?:[a-z]\w*/)*)([A-Z]\w*)', - bygroups(Name.Namespace, tokenType)), - (r'((?:[a-z]\w*/)*)([a-z]\w+)', - bygroups(Name.Namespace, tokenType)), - + (r"[a-z][0-9]*(?![\w/])", tokenType), + (r"_\w*", tokenType.Variable), # Generic.Emph + (r"((?:[a-z]\w*/)*)([A-Z]\w*)", bygroups(Name.Namespace, tokenType)), + (r"((?:[a-z]\w*/)*)([a-z]\w+)", bygroups(Name.Namespace, tokenType)), # type keyword operators - (r'::|->|[.:|]', tokenType), - + (r"::|->|[.:|]", tokenType), # catchall - default('#pop') + default("#pop"), ], - # comments and literals - 'whitespace': [ - (r'(\n\s*)(#.*)$', bygroups(Whitespace, Comment.Preproc)), - (r'\s+', Whitespace), - (r'/\*', Comment.Multiline, 'comment'), - (r'//.*$', Comment.Single) + "whitespace": [ + (r"(\n\s*)(#.*)$", bygroups(Whitespace, Comment.Preproc)), + (r"\s+", Whitespace), + (r"/\*", Comment.Multiline, "comment"), + (r"//.*$", Comment.Single), ], - 'comment': [ - (r'[^/*]+', Comment.Multiline), - (r'/\*', Comment.Multiline, '#push'), - (r'\*/', Comment.Multiline, '#pop'), - (r'[*/]', Comment.Multiline), + "comment": [ + (r"[^/*]+", Comment.Multiline), + (r"/\*", Comment.Multiline, "#push"), + (r"\*/", Comment.Multiline, "#pop"), + (r"[*/]", Comment.Multiline), ], - 'litstring': [ + "litstring": [ (r'[^"]+', String.Double), (r'""', String.Escape), - (r'"', String.Double, '#pop'), + (r'"', String.Double, "#pop"), ], - 'string': [ + "string": [ (r'[^\\"\n]+', String.Double), - include('escape-sequence'), - (r'["\n]', String.Double, '#pop'), + include("escape-sequence"), + (r'["\n]', String.Double, "#pop"), ], - 'char': [ - (r'[^\\\'\n]+', String.Char), - include('escape-sequence'), - (r'[\'\n]', String.Char, '#pop'), + "char": [ + (r"[^\\\'\n]+", String.Char), + include("escape-sequence"), + (r"[\'\n]", String.Char, "#pop"), ], - 'escape-sequence': [ + "escape-sequence": [ (r'\\[nrt\\"\']', String.Escape), - (r'\\x[0-9a-fA-F]{2}', String.Escape), - (r'\\u[0-9a-fA-F]{4}', String.Escape), + (r"\\x[0-9a-fA-F]{2}", String.Escape), + (r"\\u[0-9a-fA-F]{4}", String.Escape), # Yes, \U literals are 6 hex digits. - (r'\\U[0-9a-fA-F]{6}', String.Escape) - ] + (r"\\U[0-9a-fA-F]{6}", String.Escape), + ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haxe.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haxe.py index 66bd2a3..d33d239 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haxe.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/haxe.py @@ -1,21 +1,30 @@ """ - pygments.lexers.haxe - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.haxe +~~~~~~~~~~~~~~~~~~~~ - Lexers for Haxe and related stuff. +Lexers for Haxe and related stuff. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \ - default -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Generic, Whitespace +from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, default +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Generic, + Whitespace, +) -__all__ = ['HaxeLexer', 'HxmlLexer'] +__all__ = ["HaxeLexer", "HxmlLexer"] class HaxeLexer(ExtendedRegexLexer): @@ -23,33 +32,37 @@ class HaxeLexer(ExtendedRegexLexer): For Haxe source code. """ - name = 'Haxe' - url = 'http://haxe.org/' - aliases = ['haxe', 'hxsl', 'hx'] - filenames = ['*.hx', '*.hxsl'] - mimetypes = ['text/haxe', 'text/x-haxe', 'text/x-hx'] - version_added = '1.3' + name = "Haxe" + url = "http://haxe.org/" + aliases = ["haxe", "hxsl", "hx"] + filenames = ["*.hx", "*.hxsl"] + mimetypes = ["text/haxe", "text/x-haxe", "text/x-hx"] + version_added = "1.3" # keywords extracted from lexer.mll in the haxe compiler source - keyword = (r'(?:function|class|static|var|if|else|while|do|for|' - r'break|return|continue|extends|implements|import|' - r'switch|case|default|public|private|try|untyped|' - r'catch|new|this|throw|extern|enum|in|interface|' - r'cast|override|dynamic|typedef|package|' - r'inline|using|null|true|false|abstract)\b') + keyword = ( + r"(?:function|class|static|var|if|else|while|do|for|" + r"break|return|continue|extends|implements|import|" + r"switch|case|default|public|private|try|untyped|" + r"catch|new|this|throw|extern|enum|in|interface|" + r"cast|override|dynamic|typedef|package|" + r"inline|using|null|true|false|abstract)\b" + ) # idtype in lexer.mll - typeid = r'_*[A-Z]\w*' + typeid = r"_*[A-Z]\w*" # combined ident and dollar and idtype - ident = r'(?:_*[a-z]\w*|_+[0-9]\w*|' + typeid + r'|_+|\$\w+)' + ident = r"(?:_*[a-z]\w*|_+[0-9]\w*|" + typeid + r"|_+|\$\w+)" - binop = (r'(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|' - r'!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|' - r'/|\-|=>|=)') + binop = ( + r"(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|" + r"!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|" + r"/|\-|=>|=)" + ) # ident except keywords - ident_no_keyword = r'(?!' + keyword + ')' + ident + ident_no_keyword = r"(?!" + keyword + ")" + ident flags = re.DOTALL | re.MULTILINE @@ -58,839 +71,830 @@ class HaxeLexer(ExtendedRegexLexer): def preproc_callback(self, match, ctx): proc = match.group(2) - if proc == 'if': + if proc == "if": # store the current stack self.preproc_stack.append(ctx.stack[:]) - elif proc in ['else', 'elseif']: + elif proc in ["else", "elseif"]: # restore the stack back to right before #if if self.preproc_stack: ctx.stack = self.preproc_stack[-1][:] - elif proc == 'end': + elif proc == "end": # remove the saved stack of previous #if if self.preproc_stack: self.preproc_stack.pop() # #if and #elseif should follow by an expr - if proc in ['if', 'elseif']: - ctx.stack.append('preproc-expr') + if proc in ["if", "elseif"]: + ctx.stack.append("preproc-expr") # #error can be optionally follow by the error msg - if proc in ['error']: - ctx.stack.append('preproc-error') + if proc in ["error"]: + ctx.stack.append("preproc-error") - yield match.start(), Comment.Preproc, '#' + proc + yield match.start(), Comment.Preproc, "#" + proc ctx.pos = match.end() tokens = { - 'root': [ - include('spaces'), - include('meta'), - (r'(?:package)\b', Keyword.Namespace, ('semicolon', 'package')), - (r'(?:import)\b', Keyword.Namespace, ('semicolon', 'import')), - (r'(?:using)\b', Keyword.Namespace, ('semicolon', 'using')), - (r'(?:extern|private)\b', Keyword.Declaration), - (r'(?:abstract)\b', Keyword.Declaration, 'abstract'), - (r'(?:class|interface)\b', Keyword.Declaration, 'class'), - (r'(?:enum)\b', Keyword.Declaration, 'enum'), - (r'(?:typedef)\b', Keyword.Declaration, 'typedef'), - + "root": [ + include("spaces"), + include("meta"), + (r"(?:package)\b", Keyword.Namespace, ("semicolon", "package")), + (r"(?:import)\b", Keyword.Namespace, ("semicolon", "import")), + (r"(?:using)\b", Keyword.Namespace, ("semicolon", "using")), + (r"(?:extern|private)\b", Keyword.Declaration), + (r"(?:abstract)\b", Keyword.Declaration, "abstract"), + (r"(?:class|interface)\b", Keyword.Declaration, "class"), + (r"(?:enum)\b", Keyword.Declaration, "enum"), + (r"(?:typedef)\b", Keyword.Declaration, "typedef"), # top-level expression # although it is not supported in haxe, but it is common to write # expression in web pages the positive lookahead here is to prevent # an infinite loop at the EOF - (r'(?=.)', Text, 'expr-statement'), + (r"(?=.)", Text, "expr-statement"), ], - # space/tab/comment/preproc - 'spaces': [ - (r'\s+', Whitespace), - (r'//[^\n\r]*', Comment.Single), - (r'/\*.*?\*/', Comment.Multiline), - (r'(#)(if|elseif|else|end|error)\b', preproc_callback), + "spaces": [ + (r"\s+", Whitespace), + (r"//[^\n\r]*", Comment.Single), + (r"/\*.*?\*/", Comment.Multiline), + (r"(#)(if|elseif|else|end|error)\b", preproc_callback), ], - - 'string-single-interpol': [ - (r'\$\{', String.Interpol, ('string-interpol-close', 'expr')), - (r'\$\$', String.Escape), - (r'\$(?=' + ident + ')', String.Interpol, 'ident'), - include('string-single'), + "string-single-interpol": [ + (r"\$\{", String.Interpol, ("string-interpol-close", "expr")), + (r"\$\$", String.Escape), + (r"\$(?=" + ident + ")", String.Interpol, "ident"), + include("string-single"), ], - - 'string-single': [ - (r"'", String.Single, '#pop'), - (r'\\.', String.Escape), - (r'.', String.Single), + "string-single": [ + (r"'", String.Single, "#pop"), + (r"\\.", String.Escape), + (r".", String.Single), ], - - 'string-double': [ - (r'"', String.Double, '#pop'), - (r'\\.', String.Escape), - (r'.', String.Double), + "string-double": [ + (r'"', String.Double, "#pop"), + (r"\\.", String.Escape), + (r".", String.Double), ], - - 'string-interpol-close': [ - (r'\$'+ident, String.Interpol), - (r'\}', String.Interpol, '#pop'), + "string-interpol-close": [ + (r"\$" + ident, String.Interpol), + (r"\}", String.Interpol, "#pop"), ], - - 'package': [ - include('spaces'), + "package": [ + include("spaces"), (ident, Name.Namespace), - (r'\.', Punctuation, 'import-ident'), - default('#pop'), + (r"\.", Punctuation, "import-ident"), + default("#pop"), ], - - 'import': [ - include('spaces'), + "import": [ + include("spaces"), (ident, Name.Namespace), - (r'\*', Keyword), # wildcard import - (r'\.', Punctuation, 'import-ident'), - (r'in', Keyword.Namespace, 'ident'), - default('#pop'), + (r"\*", Keyword), # wildcard import + (r"\.", Punctuation, "import-ident"), + (r"in", Keyword.Namespace, "ident"), + default("#pop"), ], - - 'import-ident': [ - include('spaces'), - (r'\*', Keyword, '#pop'), # wildcard import - (ident, Name.Namespace, '#pop'), + "import-ident": [ + include("spaces"), + (r"\*", Keyword, "#pop"), # wildcard import + (ident, Name.Namespace, "#pop"), ], - - 'using': [ - include('spaces'), + "using": [ + include("spaces"), (ident, Name.Namespace), - (r'\.', Punctuation, 'import-ident'), - default('#pop'), + (r"\.", Punctuation, "import-ident"), + default("#pop"), ], - - 'preproc-error': [ - (r'\s+', Whitespace), - (r"'", String.Single, ('#pop', 'string-single')), - (r'"', String.Double, ('#pop', 'string-double')), - default('#pop'), + "preproc-error": [ + (r"\s+", Whitespace), + (r"'", String.Single, ("#pop", "string-single")), + (r'"', String.Double, ("#pop", "string-double")), + default("#pop"), ], - - 'preproc-expr': [ - (r'\s+', Whitespace), - (r'\!', Comment.Preproc), - (r'\(', Comment.Preproc, ('#pop', 'preproc-parenthesis')), - - (ident, Comment.Preproc, '#pop'), - + "preproc-expr": [ + (r"\s+", Whitespace), + (r"\!", Comment.Preproc), + (r"\(", Comment.Preproc, ("#pop", "preproc-parenthesis")), + (ident, Comment.Preproc, "#pop"), # Float - (r'\.[0-9]+', Number.Float), - (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float), - (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float), - (r'[0-9]+\.[0-9]+', Number.Float), - (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float), - + (r"\.[0-9]+", Number.Float), + (r"[0-9]+[eE][+\-]?[0-9]+", Number.Float), + (r"[0-9]+\.[0-9]*[eE][+\-]?[0-9]+", Number.Float), + (r"[0-9]+\.[0-9]+", Number.Float), + (r"[0-9]+\.(?!" + ident + r"|\.\.)", Number.Float), # Int - (r'0x[0-9a-fA-F]+', Number.Hex), - (r'[0-9]+', Number.Integer), - + (r"0x[0-9a-fA-F]+", Number.Hex), + (r"[0-9]+", Number.Integer), # String - (r"'", String.Single, ('#pop', 'string-single')), - (r'"', String.Double, ('#pop', 'string-double')), + (r"'", String.Single, ("#pop", "string-single")), + (r'"', String.Double, ("#pop", "string-double")), ], - - 'preproc-parenthesis': [ - (r'\s+', Whitespace), - (r'\)', Comment.Preproc, '#pop'), - default('preproc-expr-in-parenthesis'), + "preproc-parenthesis": [ + (r"\s+", Whitespace), + (r"\)", Comment.Preproc, "#pop"), + default("preproc-expr-in-parenthesis"), ], - - 'preproc-expr-chain': [ - (r'\s+', Whitespace), - (binop, Comment.Preproc, ('#pop', 'preproc-expr-in-parenthesis')), - default('#pop'), + "preproc-expr-chain": [ + (r"\s+", Whitespace), + (binop, Comment.Preproc, ("#pop", "preproc-expr-in-parenthesis")), + default("#pop"), ], - # same as 'preproc-expr' but able to chain 'preproc-expr-chain' - 'preproc-expr-in-parenthesis': [ - (r'\s+', Whitespace), - (r'\!', Comment.Preproc), - (r'\(', Comment.Preproc, - ('#pop', 'preproc-expr-chain', 'preproc-parenthesis')), - - (ident, Comment.Preproc, ('#pop', 'preproc-expr-chain')), - + "preproc-expr-in-parenthesis": [ + (r"\s+", Whitespace), + (r"\!", Comment.Preproc), + ( + r"\(", + Comment.Preproc, + ("#pop", "preproc-expr-chain", "preproc-parenthesis"), + ), + (ident, Comment.Preproc, ("#pop", "preproc-expr-chain")), # Float - (r'\.[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')), - (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')), - (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')), - (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'preproc-expr-chain')), - (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'preproc-expr-chain')), - + (r"\.[0-9]+", Number.Float, ("#pop", "preproc-expr-chain")), + (r"[0-9]+[eE][+\-]?[0-9]+", Number.Float, ("#pop", "preproc-expr-chain")), + ( + r"[0-9]+\.[0-9]*[eE][+\-]?[0-9]+", + Number.Float, + ("#pop", "preproc-expr-chain"), + ), + (r"[0-9]+\.[0-9]+", Number.Float, ("#pop", "preproc-expr-chain")), + ( + r"[0-9]+\.(?!" + ident + r"|\.\.)", + Number.Float, + ("#pop", "preproc-expr-chain"), + ), # Int - (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'preproc-expr-chain')), - (r'[0-9]+', Number.Integer, ('#pop', 'preproc-expr-chain')), - + (r"0x[0-9a-fA-F]+", Number.Hex, ("#pop", "preproc-expr-chain")), + (r"[0-9]+", Number.Integer, ("#pop", "preproc-expr-chain")), # String - (r"'", String.Single, - ('#pop', 'preproc-expr-chain', 'string-single')), - (r'"', String.Double, - ('#pop', 'preproc-expr-chain', 'string-double')), + (r"'", String.Single, ("#pop", "preproc-expr-chain", "string-single")), + (r'"', String.Double, ("#pop", "preproc-expr-chain", "string-double")), ], - - 'abstract': [ - include('spaces'), - default(('#pop', 'abstract-body', 'abstract-relation', - 'abstract-opaque', 'type-param-constraint', 'type-name')), + "abstract": [ + include("spaces"), + default( + ( + "#pop", + "abstract-body", + "abstract-relation", + "abstract-opaque", + "type-param-constraint", + "type-name", + ) + ), ], - - 'abstract-body': [ - include('spaces'), - (r'\{', Punctuation, ('#pop', 'class-body')), + "abstract-body": [ + include("spaces"), + (r"\{", Punctuation, ("#pop", "class-body")), ], - - 'abstract-opaque': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'parenthesis-close', 'type')), - default('#pop'), + "abstract-opaque": [ + include("spaces"), + (r"\(", Punctuation, ("#pop", "parenthesis-close", "type")), + default("#pop"), ], - - 'abstract-relation': [ - include('spaces'), - (r'(?:to|from)', Keyword.Declaration, 'type'), - (r',', Punctuation), - default('#pop'), + "abstract-relation": [ + include("spaces"), + (r"(?:to|from)", Keyword.Declaration, "type"), + (r",", Punctuation), + default("#pop"), ], - - 'meta': [ - include('spaces'), - (r'@', Name.Decorator, ('meta-body', 'meta-ident', 'meta-colon')), + "meta": [ + include("spaces"), + (r"@", Name.Decorator, ("meta-body", "meta-ident", "meta-colon")), ], - # optional colon - 'meta-colon': [ - include('spaces'), - (r':', Name.Decorator, '#pop'), - default('#pop'), + "meta-colon": [ + include("spaces"), + (r":", Name.Decorator, "#pop"), + default("#pop"), ], - # same as 'ident' but set token as Name.Decorator instead of Name - 'meta-ident': [ - include('spaces'), - (ident, Name.Decorator, '#pop'), + "meta-ident": [ + include("spaces"), + (ident, Name.Decorator, "#pop"), ], - - 'meta-body': [ - include('spaces'), - (r'\(', Name.Decorator, ('#pop', 'meta-call')), - default('#pop'), + "meta-body": [ + include("spaces"), + (r"\(", Name.Decorator, ("#pop", "meta-call")), + default("#pop"), ], - - 'meta-call': [ - include('spaces'), - (r'\)', Name.Decorator, '#pop'), - default(('#pop', 'meta-call-sep', 'expr')), + "meta-call": [ + include("spaces"), + (r"\)", Name.Decorator, "#pop"), + default(("#pop", "meta-call-sep", "expr")), ], - - 'meta-call-sep': [ - include('spaces'), - (r'\)', Name.Decorator, '#pop'), - (r',', Punctuation, ('#pop', 'meta-call')), + "meta-call-sep": [ + include("spaces"), + (r"\)", Name.Decorator, "#pop"), + (r",", Punctuation, ("#pop", "meta-call")), ], - - 'typedef': [ - include('spaces'), - default(('#pop', 'typedef-body', 'type-param-constraint', - 'type-name')), + "typedef": [ + include("spaces"), + default(("#pop", "typedef-body", "type-param-constraint", "type-name")), ], - - 'typedef-body': [ - include('spaces'), - (r'=', Operator, ('#pop', 'optional-semicolon', 'type')), + "typedef-body": [ + include("spaces"), + (r"=", Operator, ("#pop", "optional-semicolon", "type")), ], - - 'enum': [ - include('spaces'), - default(('#pop', 'enum-body', 'bracket-open', - 'type-param-constraint', 'type-name')), + "enum": [ + include("spaces"), + default( + ( + "#pop", + "enum-body", + "bracket-open", + "type-param-constraint", + "type-name", + ) + ), ], - - 'enum-body': [ - include('spaces'), - include('meta'), - (r'\}', Punctuation, '#pop'), - (ident_no_keyword, Name, ('enum-member', 'type-param-constraint')), + "enum-body": [ + include("spaces"), + include("meta"), + (r"\}", Punctuation, "#pop"), + (ident_no_keyword, Name, ("enum-member", "type-param-constraint")), ], - - 'enum-member': [ - include('spaces'), - (r'\(', Punctuation, - ('#pop', 'semicolon', 'flag', 'function-param')), - default(('#pop', 'semicolon', 'flag')), + "enum-member": [ + include("spaces"), + (r"\(", Punctuation, ("#pop", "semicolon", "flag", "function-param")), + default(("#pop", "semicolon", "flag")), ], - - 'class': [ - include('spaces'), - default(('#pop', 'class-body', 'bracket-open', 'extends', - 'type-param-constraint', 'type-name')), + "class": [ + include("spaces"), + default( + ( + "#pop", + "class-body", + "bracket-open", + "extends", + "type-param-constraint", + "type-name", + ) + ), ], - - 'extends': [ - include('spaces'), - (r'(?:extends|implements)\b', Keyword.Declaration, 'type'), - (r',', Punctuation), # the comma is made optional here, since haxe2 - # requires the comma but haxe3 does not allow it - default('#pop'), + "extends": [ + include("spaces"), + (r"(?:extends|implements)\b", Keyword.Declaration, "type"), + (r",", Punctuation), # the comma is made optional here, since haxe2 + # requires the comma but haxe3 does not allow it + default("#pop"), ], - - 'bracket-open': [ - include('spaces'), - (r'\{', Punctuation, '#pop'), + "bracket-open": [ + include("spaces"), + (r"\{", Punctuation, "#pop"), ], - - 'bracket-close': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), + "bracket-close": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), ], - - 'class-body': [ - include('spaces'), - include('meta'), - (r'\}', Punctuation, '#pop'), - (r'(?:static|public|private|override|dynamic|inline|macro)\b', - Keyword.Declaration), - default('class-member'), + "class-body": [ + include("spaces"), + include("meta"), + (r"\}", Punctuation, "#pop"), + ( + r"(?:static|public|private|override|dynamic|inline|macro)\b", + Keyword.Declaration, + ), + default("class-member"), ], - - 'class-member': [ - include('spaces'), - (r'(var)\b', Keyword.Declaration, - ('#pop', 'optional-semicolon', 'var')), - (r'(function)\b', Keyword.Declaration, - ('#pop', 'optional-semicolon', 'class-method')), + "class-member": [ + include("spaces"), + (r"(var)\b", Keyword.Declaration, ("#pop", "optional-semicolon", "var")), + ( + r"(function)\b", + Keyword.Declaration, + ("#pop", "optional-semicolon", "class-method"), + ), ], - # local function, anonymous or not - 'function-local': [ - include('spaces'), - (ident_no_keyword, Name.Function, - ('#pop', 'optional-expr', 'flag', 'function-param', - 'parenthesis-open', 'type-param-constraint')), - default(('#pop', 'optional-expr', 'flag', 'function-param', - 'parenthesis-open', 'type-param-constraint')), + "function-local": [ + include("spaces"), + ( + ident_no_keyword, + Name.Function, + ( + "#pop", + "optional-expr", + "flag", + "function-param", + "parenthesis-open", + "type-param-constraint", + ), + ), + default( + ( + "#pop", + "optional-expr", + "flag", + "function-param", + "parenthesis-open", + "type-param-constraint", + ) + ), ], - - 'optional-expr': [ - include('spaces'), - include('expr'), - default('#pop'), + "optional-expr": [ + include("spaces"), + include("expr"), + default("#pop"), ], - - 'class-method': [ - include('spaces'), - (ident, Name.Function, ('#pop', 'optional-expr', 'flag', - 'function-param', 'parenthesis-open', - 'type-param-constraint')), + "class-method": [ + include("spaces"), + ( + ident, + Name.Function, + ( + "#pop", + "optional-expr", + "flag", + "function-param", + "parenthesis-open", + "type-param-constraint", + ), + ), ], - # function arguments - 'function-param': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), - (r'\?', Punctuation), - (ident_no_keyword, Name, - ('#pop', 'function-param-sep', 'assign', 'flag')), + "function-param": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), + (r"\?", Punctuation), + (ident_no_keyword, Name, ("#pop", "function-param-sep", "assign", "flag")), ], - - 'function-param-sep': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'function-param')), + "function-param-sep": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "function-param")), ], - - 'prop-get-set': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'parenthesis-close', - 'prop-get-set-opt', 'comma', 'prop-get-set-opt')), - default('#pop'), + "prop-get-set": [ + include("spaces"), + ( + r"\(", + Punctuation, + ( + "#pop", + "parenthesis-close", + "prop-get-set-opt", + "comma", + "prop-get-set-opt", + ), + ), + default("#pop"), ], - - 'prop-get-set-opt': [ - include('spaces'), - (r'(?:default|null|never|dynamic|get|set)\b', Keyword, '#pop'), - (ident_no_keyword, Text, '#pop'), # custom getter/setter + "prop-get-set-opt": [ + include("spaces"), + (r"(?:default|null|never|dynamic|get|set)\b", Keyword, "#pop"), + (ident_no_keyword, Text, "#pop"), # custom getter/setter ], - - 'expr-statement': [ - include('spaces'), + "expr-statement": [ + include("spaces"), # makes semicolon optional here, just to avoid checking the last # one is bracket or not. - default(('#pop', 'optional-semicolon', 'expr')), + default(("#pop", "optional-semicolon", "expr")), ], - - 'expr': [ - include('spaces'), - (r'@', Name.Decorator, ('#pop', 'optional-expr', 'meta-body', - 'meta-ident', 'meta-colon')), - (r'(?:\+\+|\-\-|~(?!/)|!|\-)', Operator), - (r'\(', Punctuation, ('#pop', 'expr-chain', 'parenthesis')), - (r'(?:static|public|private|override|dynamic|inline)\b', - Keyword.Declaration), - (r'(?:function)\b', Keyword.Declaration, ('#pop', 'expr-chain', - 'function-local')), - (r'\{', Punctuation, ('#pop', 'expr-chain', 'bracket')), - (r'(?:true|false|null)\b', Keyword.Constant, ('#pop', 'expr-chain')), - (r'(?:this)\b', Keyword, ('#pop', 'expr-chain')), - (r'(?:cast)\b', Keyword, ('#pop', 'expr-chain', 'cast')), - (r'(?:try)\b', Keyword, ('#pop', 'catch', 'expr')), - (r'(?:var)\b', Keyword.Declaration, ('#pop', 'var')), - (r'(?:new)\b', Keyword, ('#pop', 'expr-chain', 'new')), - (r'(?:switch)\b', Keyword, ('#pop', 'switch')), - (r'(?:if)\b', Keyword, ('#pop', 'if')), - (r'(?:do)\b', Keyword, ('#pop', 'do')), - (r'(?:while)\b', Keyword, ('#pop', 'while')), - (r'(?:for)\b', Keyword, ('#pop', 'for')), - (r'(?:untyped|throw)\b', Keyword), - (r'(?:return)\b', Keyword, ('#pop', 'optional-expr')), - (r'(?:macro)\b', Keyword, ('#pop', 'macro')), - (r'(?:continue|break)\b', Keyword, '#pop'), - (r'(?:\$\s*[a-z]\b|\$(?!'+ident+'))', Name, ('#pop', 'dollar')), - (ident_no_keyword, Name, ('#pop', 'expr-chain')), - + "expr": [ + include("spaces"), + ( + r"@", + Name.Decorator, + ("#pop", "optional-expr", "meta-body", "meta-ident", "meta-colon"), + ), + (r"(?:\+\+|\-\-|~(?!/)|!|\-)", Operator), + (r"\(", Punctuation, ("#pop", "expr-chain", "parenthesis")), + ( + r"(?:static|public|private|override|dynamic|inline)\b", + Keyword.Declaration, + ), + ( + r"(?:function)\b", + Keyword.Declaration, + ("#pop", "expr-chain", "function-local"), + ), + (r"\{", Punctuation, ("#pop", "expr-chain", "bracket")), + (r"(?:true|false|null)\b", Keyword.Constant, ("#pop", "expr-chain")), + (r"(?:this)\b", Keyword, ("#pop", "expr-chain")), + (r"(?:cast)\b", Keyword, ("#pop", "expr-chain", "cast")), + (r"(?:try)\b", Keyword, ("#pop", "catch", "expr")), + (r"(?:var)\b", Keyword.Declaration, ("#pop", "var")), + (r"(?:new)\b", Keyword, ("#pop", "expr-chain", "new")), + (r"(?:switch)\b", Keyword, ("#pop", "switch")), + (r"(?:if)\b", Keyword, ("#pop", "if")), + (r"(?:do)\b", Keyword, ("#pop", "do")), + (r"(?:while)\b", Keyword, ("#pop", "while")), + (r"(?:for)\b", Keyword, ("#pop", "for")), + (r"(?:untyped|throw)\b", Keyword), + (r"(?:return)\b", Keyword, ("#pop", "optional-expr")), + (r"(?:macro)\b", Keyword, ("#pop", "macro")), + (r"(?:continue|break)\b", Keyword, "#pop"), + (r"(?:\$\s*[a-z]\b|\$(?!" + ident + "))", Name, ("#pop", "dollar")), + (ident_no_keyword, Name, ("#pop", "expr-chain")), # Float - (r'\.[0-9]+', Number.Float, ('#pop', 'expr-chain')), - (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')), - (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, ('#pop', 'expr-chain')), - (r'[0-9]+\.[0-9]+', Number.Float, ('#pop', 'expr-chain')), - (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, ('#pop', 'expr-chain')), - + (r"\.[0-9]+", Number.Float, ("#pop", "expr-chain")), + (r"[0-9]+[eE][+\-]?[0-9]+", Number.Float, ("#pop", "expr-chain")), + (r"[0-9]+\.[0-9]*[eE][+\-]?[0-9]+", Number.Float, ("#pop", "expr-chain")), + (r"[0-9]+\.[0-9]+", Number.Float, ("#pop", "expr-chain")), + (r"[0-9]+\.(?!" + ident + r"|\.\.)", Number.Float, ("#pop", "expr-chain")), # Int - (r'0x[0-9a-fA-F]+', Number.Hex, ('#pop', 'expr-chain')), - (r'[0-9]+', Number.Integer, ('#pop', 'expr-chain')), - + (r"0x[0-9a-fA-F]+", Number.Hex, ("#pop", "expr-chain")), + (r"[0-9]+", Number.Integer, ("#pop", "expr-chain")), # String - (r"'", String.Single, ('#pop', 'expr-chain', 'string-single-interpol')), - (r'"', String.Double, ('#pop', 'expr-chain', 'string-double')), - + (r"'", String.Single, ("#pop", "expr-chain", "string-single-interpol")), + (r'"', String.Double, ("#pop", "expr-chain", "string-double")), # EReg - (r'~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*', String.Regex, ('#pop', 'expr-chain')), - + ( + r"~/(\\\\|\\[^\\]|[^/\\\n])*/[gimsu]*", + String.Regex, + ("#pop", "expr-chain"), + ), # Array - (r'\[', Punctuation, ('#pop', 'expr-chain', 'array-decl')), + (r"\[", Punctuation, ("#pop", "expr-chain", "array-decl")), ], - - 'expr-chain': [ - include('spaces'), - (r'(?:\+\+|\-\-)', Operator), - (binop, Operator, ('#pop', 'expr')), - (r'(?:in)\b', Keyword, ('#pop', 'expr')), - (r'\?', Operator, ('#pop', 'expr', 'ternary', 'expr')), - (r'(\.)(' + ident_no_keyword + ')', bygroups(Punctuation, Name)), - (r'\[', Punctuation, 'array-access'), - (r'\(', Punctuation, 'call'), - default('#pop'), + "expr-chain": [ + include("spaces"), + (r"(?:\+\+|\-\-)", Operator), + (binop, Operator, ("#pop", "expr")), + (r"(?:in)\b", Keyword, ("#pop", "expr")), + (r"\?", Operator, ("#pop", "expr", "ternary", "expr")), + (r"(\.)(" + ident_no_keyword + ")", bygroups(Punctuation, Name)), + (r"\[", Punctuation, "array-access"), + (r"\(", Punctuation, "call"), + default("#pop"), ], - # macro reification - 'macro': [ - include('spaces'), - include('meta'), - (r':', Punctuation, ('#pop', 'type')), - - (r'(?:extern|private)\b', Keyword.Declaration), - (r'(?:abstract)\b', Keyword.Declaration, ('#pop', 'optional-semicolon', 'abstract')), - (r'(?:class|interface)\b', Keyword.Declaration, ('#pop', 'optional-semicolon', 'macro-class')), - (r'(?:enum)\b', Keyword.Declaration, ('#pop', 'optional-semicolon', 'enum')), - (r'(?:typedef)\b', Keyword.Declaration, ('#pop', 'optional-semicolon', 'typedef')), - - default(('#pop', 'expr')), + "macro": [ + include("spaces"), + include("meta"), + (r":", Punctuation, ("#pop", "type")), + (r"(?:extern|private)\b", Keyword.Declaration), + ( + r"(?:abstract)\b", + Keyword.Declaration, + ("#pop", "optional-semicolon", "abstract"), + ), + ( + r"(?:class|interface)\b", + Keyword.Declaration, + ("#pop", "optional-semicolon", "macro-class"), + ), + ( + r"(?:enum)\b", + Keyword.Declaration, + ("#pop", "optional-semicolon", "enum"), + ), + ( + r"(?:typedef)\b", + Keyword.Declaration, + ("#pop", "optional-semicolon", "typedef"), + ), + default(("#pop", "expr")), ], - - 'macro-class': [ - (r'\{', Punctuation, ('#pop', 'class-body')), - include('class') - ], - + "macro-class": [(r"\{", Punctuation, ("#pop", "class-body")), include("class")], # cast can be written as "cast expr" or "cast(expr, type)" - 'cast': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'parenthesis-close', - 'cast-type', 'expr')), - default(('#pop', 'expr')), + "cast": [ + include("spaces"), + (r"\(", Punctuation, ("#pop", "parenthesis-close", "cast-type", "expr")), + default(("#pop", "expr")), ], - # optionally give a type as the 2nd argument of cast() - 'cast-type': [ - include('spaces'), - (r',', Punctuation, ('#pop', 'type')), - default('#pop'), + "cast-type": [ + include("spaces"), + (r",", Punctuation, ("#pop", "type")), + default("#pop"), ], - - 'catch': [ - include('spaces'), - (r'(?:catch)\b', Keyword, ('expr', 'function-param', - 'parenthesis-open')), - default('#pop'), + "catch": [ + include("spaces"), + (r"(?:catch)\b", Keyword, ("expr", "function-param", "parenthesis-open")), + default("#pop"), ], - # do-while loop - 'do': [ - include('spaces'), - default(('#pop', 'do-while', 'expr')), + "do": [ + include("spaces"), + default(("#pop", "do-while", "expr")), ], - # the while after do - 'do-while': [ - include('spaces'), - (r'(?:while)\b', Keyword, ('#pop', 'parenthesis', - 'parenthesis-open')), + "do-while": [ + include("spaces"), + (r"(?:while)\b", Keyword, ("#pop", "parenthesis", "parenthesis-open")), ], - - 'while': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'expr', 'parenthesis')), + "while": [ + include("spaces"), + (r"\(", Punctuation, ("#pop", "expr", "parenthesis")), ], - - 'for': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'expr', 'parenthesis')), + "for": [ + include("spaces"), + (r"\(", Punctuation, ("#pop", "expr", "parenthesis")), ], - - 'if': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'else', 'optional-semicolon', 'expr', - 'parenthesis')), + "if": [ + include("spaces"), + ( + r"\(", + Punctuation, + ("#pop", "else", "optional-semicolon", "expr", "parenthesis"), + ), ], - - 'else': [ - include('spaces'), - (r'(?:else)\b', Keyword, ('#pop', 'expr')), - default('#pop'), + "else": [ + include("spaces"), + (r"(?:else)\b", Keyword, ("#pop", "expr")), + default("#pop"), ], - - 'switch': [ - include('spaces'), - default(('#pop', 'switch-body', 'bracket-open', 'expr')), + "switch": [ + include("spaces"), + default(("#pop", "switch-body", "bracket-open", "expr")), ], - - 'switch-body': [ - include('spaces'), - (r'(?:case|default)\b', Keyword, ('case-block', 'case')), - (r'\}', Punctuation, '#pop'), + "switch-body": [ + include("spaces"), + (r"(?:case|default)\b", Keyword, ("case-block", "case")), + (r"\}", Punctuation, "#pop"), ], - - 'case': [ - include('spaces'), - (r':', Punctuation, '#pop'), - default(('#pop', 'case-sep', 'case-guard', 'expr')), + "case": [ + include("spaces"), + (r":", Punctuation, "#pop"), + default(("#pop", "case-sep", "case-guard", "expr")), ], - - 'case-sep': [ - include('spaces'), - (r':', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'case')), + "case-sep": [ + include("spaces"), + (r":", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "case")), ], - - 'case-guard': [ - include('spaces'), - (r'(?:if)\b', Keyword, ('#pop', 'parenthesis', 'parenthesis-open')), - default('#pop'), + "case-guard": [ + include("spaces"), + (r"(?:if)\b", Keyword, ("#pop", "parenthesis", "parenthesis-open")), + default("#pop"), ], - # optional multiple expr under a case - 'case-block': [ - include('spaces'), - (r'(?!(?:case|default)\b|\})', Keyword, 'expr-statement'), - default('#pop'), + "case-block": [ + include("spaces"), + (r"(?!(?:case|default)\b|\})", Keyword, "expr-statement"), + default("#pop"), ], - - 'new': [ - include('spaces'), - default(('#pop', 'call', 'parenthesis-open', 'type')), + "new": [ + include("spaces"), + default(("#pop", "call", "parenthesis-open", "type")), ], - - 'array-decl': [ - include('spaces'), - (r'\]', Punctuation, '#pop'), - default(('#pop', 'array-decl-sep', 'expr')), + "array-decl": [ + include("spaces"), + (r"\]", Punctuation, "#pop"), + default(("#pop", "array-decl-sep", "expr")), ], - - 'array-decl-sep': [ - include('spaces'), - (r'\]', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'array-decl')), + "array-decl-sep": [ + include("spaces"), + (r"\]", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "array-decl")), ], - - 'array-access': [ - include('spaces'), - default(('#pop', 'array-access-close', 'expr')), + "array-access": [ + include("spaces"), + default(("#pop", "array-access-close", "expr")), ], - - 'array-access-close': [ - include('spaces'), - (r'\]', Punctuation, '#pop'), + "array-access-close": [ + include("spaces"), + (r"\]", Punctuation, "#pop"), ], - - 'comma': [ - include('spaces'), - (r',', Punctuation, '#pop'), + "comma": [ + include("spaces"), + (r",", Punctuation, "#pop"), ], - - 'colon': [ - include('spaces'), - (r':', Punctuation, '#pop'), + "colon": [ + include("spaces"), + (r":", Punctuation, "#pop"), ], - - 'semicolon': [ - include('spaces'), - (r';', Punctuation, '#pop'), + "semicolon": [ + include("spaces"), + (r";", Punctuation, "#pop"), ], - - 'optional-semicolon': [ - include('spaces'), - (r';', Punctuation, '#pop'), - default('#pop'), + "optional-semicolon": [ + include("spaces"), + (r";", Punctuation, "#pop"), + default("#pop"), ], - # identity that CAN be a Haxe keyword - 'ident': [ - include('spaces'), - (ident, Name, '#pop'), + "ident": [ + include("spaces"), + (ident, Name, "#pop"), ], - - 'dollar': [ - include('spaces'), - (r'\{', Punctuation, ('#pop', 'expr-chain', 'bracket-close', 'expr')), - default(('#pop', 'expr-chain')), + "dollar": [ + include("spaces"), + (r"\{", Punctuation, ("#pop", "expr-chain", "bracket-close", "expr")), + default(("#pop", "expr-chain")), ], - - 'type-name': [ - include('spaces'), - (typeid, Name, '#pop'), + "type-name": [ + include("spaces"), + (typeid, Name, "#pop"), ], - - 'type-full-name': [ - include('spaces'), - (r'\.', Punctuation, 'ident'), - default('#pop'), + "type-full-name": [ + include("spaces"), + (r"\.", Punctuation, "ident"), + default("#pop"), ], - - 'type': [ - include('spaces'), - (r'\?', Punctuation), - (ident, Name, ('#pop', 'type-check', 'type-full-name')), - (r'\{', Punctuation, ('#pop', 'type-check', 'type-struct')), - (r'\(', Punctuation, ('#pop', 'type-check', 'type-parenthesis')), + "type": [ + include("spaces"), + (r"\?", Punctuation), + (ident, Name, ("#pop", "type-check", "type-full-name")), + (r"\{", Punctuation, ("#pop", "type-check", "type-struct")), + (r"\(", Punctuation, ("#pop", "type-check", "type-parenthesis")), ], - - 'type-parenthesis': [ - include('spaces'), - default(('#pop', 'parenthesis-close', 'type')), + "type-parenthesis": [ + include("spaces"), + default(("#pop", "parenthesis-close", "type")), ], - - 'type-check': [ - include('spaces'), - (r'->', Punctuation, ('#pop', 'type')), - (r'<(?!=)', Punctuation, 'type-param'), - default('#pop'), + "type-check": [ + include("spaces"), + (r"->", Punctuation, ("#pop", "type")), + (r"<(?!=)", Punctuation, "type-param"), + default("#pop"), ], - - 'type-struct': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), - (r'\?', Punctuation), - (r'>', Punctuation, ('comma', 'type')), - (ident_no_keyword, Name, ('#pop', 'type-struct-sep', 'type', 'colon')), - include('class-body'), + "type-struct": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), + (r"\?", Punctuation), + (r">", Punctuation, ("comma", "type")), + (ident_no_keyword, Name, ("#pop", "type-struct-sep", "type", "colon")), + include("class-body"), ], - - 'type-struct-sep': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'type-struct')), + "type-struct-sep": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "type-struct")), ], - # type-param can be a normal type or a constant literal... - 'type-param-type': [ + "type-param-type": [ # Float - (r'\.[0-9]+', Number.Float, '#pop'), - (r'[0-9]+[eE][+\-]?[0-9]+', Number.Float, '#pop'), - (r'[0-9]+\.[0-9]*[eE][+\-]?[0-9]+', Number.Float, '#pop'), - (r'[0-9]+\.[0-9]+', Number.Float, '#pop'), - (r'[0-9]+\.(?!' + ident + r'|\.\.)', Number.Float, '#pop'), - + (r"\.[0-9]+", Number.Float, "#pop"), + (r"[0-9]+[eE][+\-]?[0-9]+", Number.Float, "#pop"), + (r"[0-9]+\.[0-9]*[eE][+\-]?[0-9]+", Number.Float, "#pop"), + (r"[0-9]+\.[0-9]+", Number.Float, "#pop"), + (r"[0-9]+\.(?!" + ident + r"|\.\.)", Number.Float, "#pop"), # Int - (r'0x[0-9a-fA-F]+', Number.Hex, '#pop'), - (r'[0-9]+', Number.Integer, '#pop'), - + (r"0x[0-9a-fA-F]+", Number.Hex, "#pop"), + (r"[0-9]+", Number.Integer, "#pop"), # String - (r"'", String.Single, ('#pop', 'string-single')), - (r'"', String.Double, ('#pop', 'string-double')), - + (r"'", String.Single, ("#pop", "string-single")), + (r'"', String.Double, ("#pop", "string-double")), # EReg - (r'~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*', String.Regex, '#pop'), - + (r"~/(\\\\|\\[^\\]|[^/\\\n])*/[gim]*", String.Regex, "#pop"), # Array - (r'\[', Operator, ('#pop', 'array-decl')), - - include('type'), + (r"\[", Operator, ("#pop", "array-decl")), + include("type"), ], - # type-param part of a type # ie. the path in Map - 'type-param': [ - include('spaces'), - default(('#pop', 'type-param-sep', 'type-param-type')), + "type-param": [ + include("spaces"), + default(("#pop", "type-param-sep", "type-param-type")), ], - - 'type-param-sep': [ - include('spaces'), - (r'>', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'type-param')), + "type-param-sep": [ + include("spaces"), + (r">", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "type-param")), ], - # optional type-param that may include constraint # ie. - 'type-param-constraint': [ - include('spaces'), - (r'<(?!=)', Punctuation, ('#pop', 'type-param-constraint-sep', - 'type-param-constraint-flag', 'type-name')), - default('#pop'), + "type-param-constraint": [ + include("spaces"), + ( + r"<(?!=)", + Punctuation, + ( + "#pop", + "type-param-constraint-sep", + "type-param-constraint-flag", + "type-name", + ), + ), + default("#pop"), ], - - 'type-param-constraint-sep': [ - include('spaces'), - (r'>', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'type-param-constraint-sep', - 'type-param-constraint-flag', 'type-name')), + "type-param-constraint-sep": [ + include("spaces"), + (r">", Punctuation, "#pop"), + ( + r",", + Punctuation, + ( + "#pop", + "type-param-constraint-sep", + "type-param-constraint-flag", + "type-name", + ), + ), ], - # the optional constraint inside type-param - 'type-param-constraint-flag': [ - include('spaces'), - (r':', Punctuation, ('#pop', 'type-param-constraint-flag-type')), - default('#pop'), + "type-param-constraint-flag": [ + include("spaces"), + (r":", Punctuation, ("#pop", "type-param-constraint-flag-type")), + default("#pop"), ], - - 'type-param-constraint-flag-type': [ - include('spaces'), - (r'\(', Punctuation, ('#pop', 'type-param-constraint-flag-type-sep', - 'type')), - default(('#pop', 'type')), + "type-param-constraint-flag-type": [ + include("spaces"), + ( + r"\(", + Punctuation, + ("#pop", "type-param-constraint-flag-type-sep", "type"), + ), + default(("#pop", "type")), ], - - 'type-param-constraint-flag-type-sep': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), - (r',', Punctuation, 'type'), + "type-param-constraint-flag-type-sep": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), + (r",", Punctuation, "type"), ], - # a parenthesis expr that contain exactly one expr - 'parenthesis': [ - include('spaces'), - default(('#pop', 'parenthesis-close', 'flag', 'expr')), + "parenthesis": [ + include("spaces"), + default(("#pop", "parenthesis-close", "flag", "expr")), ], - - 'parenthesis-open': [ - include('spaces'), - (r'\(', Punctuation, '#pop'), + "parenthesis-open": [ + include("spaces"), + (r"\(", Punctuation, "#pop"), ], - - 'parenthesis-close': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), + "parenthesis-close": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), ], - - 'var': [ - include('spaces'), - (ident_no_keyword, Text, ('#pop', 'var-sep', 'assign', 'flag', 'prop-get-set')), + "var": [ + include("spaces"), + ( + ident_no_keyword, + Text, + ("#pop", "var-sep", "assign", "flag", "prop-get-set"), + ), ], - # optional more var decl. - 'var-sep': [ - include('spaces'), - (r',', Punctuation, ('#pop', 'var')), - default('#pop'), + "var-sep": [ + include("spaces"), + (r",", Punctuation, ("#pop", "var")), + default("#pop"), ], - # optional assignment - 'assign': [ - include('spaces'), - (r'=', Operator, ('#pop', 'expr')), - default('#pop'), + "assign": [ + include("spaces"), + (r"=", Operator, ("#pop", "expr")), + default("#pop"), ], - # optional type flag - 'flag': [ - include('spaces'), - (r':', Punctuation, ('#pop', 'type')), - default('#pop'), + "flag": [ + include("spaces"), + (r":", Punctuation, ("#pop", "type")), + default("#pop"), ], - # colon as part of a ternary operator (?:) - 'ternary': [ - include('spaces'), - (r':', Operator, '#pop'), + "ternary": [ + include("spaces"), + (r":", Operator, "#pop"), ], - # function call - 'call': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), - default(('#pop', 'call-sep', 'expr')), + "call": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), + default(("#pop", "call-sep", "expr")), ], - # after a call param - 'call-sep': [ - include('spaces'), - (r'\)', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'call')), + "call-sep": [ + include("spaces"), + (r"\)", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "call")), ], - # bracket can be block or object - 'bracket': [ - include('spaces'), - (r'(?!(?:\$\s*[a-z]\b|\$(?!'+ident+')))' + ident_no_keyword, Name, - ('#pop', 'bracket-check')), - (r"'", String.Single, ('#pop', 'bracket-check', 'string-single')), - (r'"', String.Double, ('#pop', 'bracket-check', 'string-double')), - default(('#pop', 'block')), + "bracket": [ + include("spaces"), + ( + r"(?!(?:\$\s*[a-z]\b|\$(?!" + ident + ")))" + ident_no_keyword, + Name, + ("#pop", "bracket-check"), + ), + (r"'", String.Single, ("#pop", "bracket-check", "string-single")), + (r'"', String.Double, ("#pop", "bracket-check", "string-double")), + default(("#pop", "block")), ], - - 'bracket-check': [ - include('spaces'), - (r':', Punctuation, ('#pop', 'object-sep', 'expr')), # is object - default(('#pop', 'block', 'optional-semicolon', 'expr-chain')), # is block + "bracket-check": [ + include("spaces"), + (r":", Punctuation, ("#pop", "object-sep", "expr")), # is object + default(("#pop", "block", "optional-semicolon", "expr-chain")), # is block ], - # code block - 'block': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), - default('expr-statement'), + "block": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), + default("expr-statement"), ], - # object in key-value pairs - 'object': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), - default(('#pop', 'object-sep', 'expr', 'colon', 'ident-or-string')) + "object": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), + default(("#pop", "object-sep", "expr", "colon", "ident-or-string")), ], - # a key of an object - 'ident-or-string': [ - include('spaces'), - (ident_no_keyword, Name, '#pop'), - (r"'", String.Single, ('#pop', 'string-single')), - (r'"', String.Double, ('#pop', 'string-double')), + "ident-or-string": [ + include("spaces"), + (ident_no_keyword, Name, "#pop"), + (r"'", String.Single, ("#pop", "string-single")), + (r'"', String.Double, ("#pop", "string-double")), ], - # after a key-value pair in object - 'object-sep': [ - include('spaces'), - (r'\}', Punctuation, '#pop'), - (r',', Punctuation, ('#pop', 'object')), + "object-sep": [ + include("spaces"), + (r"\}", Punctuation, "#pop"), + (r",", Punctuation, ("#pop", "object")), ], - - - } def analyse_text(text): - if re.match(r'\w+\s*:\s*\w', text): + if re.match(r"\w+\s*:\s*\w", text): return 0.3 @@ -898,38 +902,60 @@ class HxmlLexer(RegexLexer): """ Lexer for haXe build files. """ - name = 'Hxml' - url = 'https://haxe.org/manual/compiler-usage-hxml.html' - aliases = ['haxeml', 'hxml'] - filenames = ['*.hxml'] - version_added = '1.6' + + name = "Hxml" + url = "https://haxe.org/manual/compiler-usage-hxml.html" + aliases = ["haxeml", "hxml"] + filenames = ["*.hxml"] + version_added = "1.6" tokens = { - 'root': [ + "root": [ # Separator - (r'(--)(next)', bygroups(Punctuation, Generic.Heading)), + (r"(--)(next)", bygroups(Punctuation, Generic.Heading)), # Compiler switches with one dash - (r'(-)(prompt|debug|v)', bygroups(Punctuation, Keyword.Keyword)), + (r"(-)(prompt|debug|v)", bygroups(Punctuation, Keyword.Keyword)), # Compilerswitches with two dashes - (r'(--)(neko-source|flash-strict|flash-use-stage|no-opt|no-traces|' - r'no-inline|times|no-output)', bygroups(Punctuation, Keyword)), + ( + r"(--)(neko-source|flash-strict|flash-use-stage|no-opt|no-traces|" + r"no-inline|times|no-output)", + bygroups(Punctuation, Keyword), + ), # Targets and other options that take an argument - (r'(-)(cpp|js|neko|x|as3|swf9?|swf-lib|php|xml|main|lib|D|resource|' - r'cp|cmd)( +)(.+)', - bygroups(Punctuation, Keyword, Whitespace, String)), + ( + r"(-)(cpp|js|neko|x|as3|swf9?|swf-lib|php|xml|main|lib|D|resource|" + r"cp|cmd)( +)(.+)", + bygroups(Punctuation, Keyword, Whitespace, String), + ), # Options that take only numerical arguments - (r'(-)(swf-version)( +)(\d+)', - bygroups(Punctuation, Keyword, Whitespace, Number.Integer)), + ( + r"(-)(swf-version)( +)(\d+)", + bygroups(Punctuation, Keyword, Whitespace, Number.Integer), + ), # An Option that defines the size, the fps and the background # color of an flash movie - (r'(-)(swf-header)( +)(\d+)(:)(\d+)(:)(\d+)(:)([A-Fa-f0-9]{6})', - bygroups(Punctuation, Keyword, Whitespace, Number.Integer, - Punctuation, Number.Integer, Punctuation, Number.Integer, - Punctuation, Number.Hex)), + ( + r"(-)(swf-header)( +)(\d+)(:)(\d+)(:)(\d+)(:)([A-Fa-f0-9]{6})", + bygroups( + Punctuation, + Keyword, + Whitespace, + Number.Integer, + Punctuation, + Number.Integer, + Punctuation, + Number.Integer, + Punctuation, + Number.Hex, + ), + ), # options with two dashes that takes arguments - (r'(--)(js-namespace|php-front|php-lib|remap|gen-hx-classes)( +)' - r'(.+)', bygroups(Punctuation, Keyword, Whitespace, String)), + ( + r"(--)(js-namespace|php-front|php-lib|remap|gen-hx-classes)( +)" + r"(.+)", + bygroups(Punctuation, Keyword, Whitespace, String), + ), # Single line comment, multiline ones are not allowed. - (r'#.*', Comment.Single) + (r"#.*", Comment.Single), ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hdl.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hdl.py index d22b66f..9134787 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hdl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hdl.py @@ -1,143 +1,353 @@ """ - pygments.lexers.hdl - ~~~~~~~~~~~~~~~~~~~ +pygments.lexers.hdl +~~~~~~~~~~~~~~~~~~~ - Lexers for hardware descriptor languages. +Lexers for hardware descriptor languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, bygroups, include, using, this, words -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Whitespace, +) -__all__ = ['VerilogLexer', 'SystemVerilogLexer', 'VhdlLexer'] +__all__ = ["VerilogLexer", "SystemVerilogLexer", "VhdlLexer"] class VerilogLexer(RegexLexer): """ For verilog source code with preprocessor directives. """ - name = 'verilog' - aliases = ['verilog', 'v'] - filenames = ['*.v'] - mimetypes = ['text/x-verilog'] - url = 'https://en.wikipedia.org/wiki/Verilog' - version_added = '1.4' + + name = "verilog" + aliases = ["verilog", "v"] + filenames = ["*.v"] + mimetypes = ["text/x-verilog"] + url = "https://en.wikipedia.org/wiki/Verilog" + version_added = "1.4" #: optional Comment or Whitespace - _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+' + _ws = r"(?:\s|//.*?\n|/[*].*?[*]/)+" tokens = { - 'root': [ - (r'^\s*`define', Comment.Preproc, 'macro'), - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation - (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'[{}#@]', Punctuation), - (r'L?"', String, 'string'), + "root": [ + (r"^\s*`define", Comment.Preproc, "macro"), + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(String.Escape, Whitespace)), # line continuation + (r"/(\\\n)?/(\n|(.|\n)*?[^\\]\n)", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"[{}#@]", Punctuation), + (r'L?"', String, "string"), (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), - (r'([0-9]+)|(\'h)[0-9a-fA-F]+', Number.Hex), - (r'([0-9]+)|(\'b)[01]+', Number.Bin), - (r'([0-9]+)|(\'d)[0-9]+', Number.Integer), - (r'([0-9]+)|(\'o)[0-7]+', Number.Oct), - (r'\'[01xz]', Number), - (r'\d+[Ll]?', Number.Integer), - (r'[~!%^&*+=|?:<>/-]', Operator), - (r'[()\[\],.;\']', Punctuation), - (r'`[a-zA-Z_]\w*', Name.Constant), - - (r'^(\s*)(package)(\s+)', bygroups(Whitespace, Keyword.Namespace, Text)), - (r'^(\s*)(import)(\s+)', bygroups(Whitespace, Keyword.Namespace, Text), - 'import'), - - (words(( - 'always', 'always_comb', 'always_ff', 'always_latch', 'and', - 'assign', 'automatic', 'begin', 'break', 'buf', 'bufif0', 'bufif1', - 'case', 'casex', 'casez', 'cmos', 'const', 'continue', 'deassign', - 'default', 'defparam', 'disable', 'do', 'edge', 'else', 'end', 'endcase', - 'endfunction', 'endgenerate', 'endmodule', 'endpackage', 'endprimitive', - 'endspecify', 'endtable', 'endtask', 'enum', 'event', 'final', 'for', - 'force', 'forever', 'fork', 'function', 'generate', 'genvar', 'highz0', - 'highz1', 'if', 'initial', 'inout', 'input', 'integer', 'join', 'large', - 'localparam', 'macromodule', 'medium', 'module', 'nand', 'negedge', - 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or', 'output', 'packed', - 'parameter', 'pmos', 'posedge', 'primitive', 'pull0', 'pull1', - 'pulldown', 'pullup', 'rcmos', 'ref', 'release', 'repeat', 'return', - 'rnmos', 'rpmos', 'rtran', 'rtranif0', 'rtranif1', 'scalared', 'signed', - 'small', 'specify', 'specparam', 'strength', 'string', 'strong0', - 'strong1', 'struct', 'table', 'task', 'tran', 'tranif0', 'tranif1', - 'type', 'typedef', 'unsigned', 'var', 'vectored', 'void', 'wait', - 'weak0', 'weak1', 'while', 'xnor', 'xor'), suffix=r'\b'), - Keyword), - - (words(( - 'accelerate', 'autoexpand_vectornets', 'celldefine', 'default_nettype', - 'else', 'elsif', 'endcelldefine', 'endif', 'endprotect', 'endprotected', - 'expand_vectornets', 'ifdef', 'ifndef', 'include', 'noaccelerate', - 'noexpand_vectornets', 'noremove_gatenames', 'noremove_netnames', - 'nounconnected_drive', 'protect', 'protected', 'remove_gatenames', - 'remove_netnames', 'resetall', 'timescale', 'unconnected_drive', - 'undef'), prefix=r'`', suffix=r'\b'), - Comment.Preproc), - - (words(( - 'bits', 'bitstoreal', 'bitstoshortreal', 'countdrivers', 'display', 'fclose', - 'fdisplay', 'finish', 'floor', 'fmonitor', 'fopen', 'fstrobe', 'fwrite', - 'getpattern', 'history', 'incsave', 'input', 'itor', 'key', 'list', 'log', - 'monitor', 'monitoroff', 'monitoron', 'nokey', 'nolog', 'printtimescale', - 'random', 'readmemb', 'readmemh', 'realtime', 'realtobits', 'reset', - 'reset_count', 'reset_value', 'restart', 'rtoi', 'save', 'scale', 'scope', - 'shortrealtobits', 'showscopes', 'showvariables', 'showvars', 'sreadmemb', - 'sreadmemh', 'stime', 'stop', 'strobe', 'time', 'timeformat', 'write'), - prefix=r'\$', suffix=r'\b'), - Name.Builtin), - - (words(( - 'byte', 'shortint', 'int', 'longint', 'integer', 'time', - 'bit', 'logic', 'reg', 'supply0', 'supply1', 'tri', 'triand', - 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wor' - 'shortreal', 'real', 'realtime'), suffix=r'\b'), - Keyword.Type), - (r'[a-zA-Z_]\w*:(?!:)', Name.Label), - (r'\$?[a-zA-Z_]\w*', Name), - (r'\\(\S+)', Name), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float), + (r"([0-9]+)|(\'h)[0-9a-fA-F]+", Number.Hex), + (r"([0-9]+)|(\'b)[01]+", Number.Bin), + (r"([0-9]+)|(\'d)[0-9]+", Number.Integer), + (r"([0-9]+)|(\'o)[0-7]+", Number.Oct), + (r"\'[01xz]", Number), + (r"\d+[Ll]?", Number.Integer), + (r"[~!%^&*+=|?:<>/-]", Operator), + (r"[()\[\],.;\']", Punctuation), + (r"`[a-zA-Z_]\w*", Name.Constant), + (r"^(\s*)(package)(\s+)", bygroups(Whitespace, Keyword.Namespace, Text)), + ( + r"^(\s*)(import)(\s+)", + bygroups(Whitespace, Keyword.Namespace, Text), + "import", + ), + ( + words( + ( + "always", + "always_comb", + "always_ff", + "always_latch", + "and", + "assign", + "automatic", + "begin", + "break", + "buf", + "bufif0", + "bufif1", + "case", + "casex", + "casez", + "cmos", + "const", + "continue", + "deassign", + "default", + "defparam", + "disable", + "do", + "edge", + "else", + "end", + "endcase", + "endfunction", + "endgenerate", + "endmodule", + "endpackage", + "endprimitive", + "endspecify", + "endtable", + "endtask", + "enum", + "event", + "final", + "for", + "force", + "forever", + "fork", + "function", + "generate", + "genvar", + "highz0", + "highz1", + "if", + "initial", + "inout", + "input", + "integer", + "join", + "large", + "localparam", + "macromodule", + "medium", + "module", + "nand", + "negedge", + "nmos", + "nor", + "not", + "notif0", + "notif1", + "or", + "output", + "packed", + "parameter", + "pmos", + "posedge", + "primitive", + "pull0", + "pull1", + "pulldown", + "pullup", + "rcmos", + "ref", + "release", + "repeat", + "return", + "rnmos", + "rpmos", + "rtran", + "rtranif0", + "rtranif1", + "scalared", + "signed", + "small", + "specify", + "specparam", + "strength", + "string", + "strong0", + "strong1", + "struct", + "table", + "task", + "tran", + "tranif0", + "tranif1", + "type", + "typedef", + "unsigned", + "var", + "vectored", + "void", + "wait", + "weak0", + "weak1", + "while", + "xnor", + "xor", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + words( + ( + "accelerate", + "autoexpand_vectornets", + "celldefine", + "default_nettype", + "else", + "elsif", + "endcelldefine", + "endif", + "endprotect", + "endprotected", + "expand_vectornets", + "ifdef", + "ifndef", + "include", + "noaccelerate", + "noexpand_vectornets", + "noremove_gatenames", + "noremove_netnames", + "nounconnected_drive", + "protect", + "protected", + "remove_gatenames", + "remove_netnames", + "resetall", + "timescale", + "unconnected_drive", + "undef", + ), + prefix=r"`", + suffix=r"\b", + ), + Comment.Preproc, + ), + ( + words( + ( + "bits", + "bitstoreal", + "bitstoshortreal", + "countdrivers", + "display", + "fclose", + "fdisplay", + "finish", + "floor", + "fmonitor", + "fopen", + "fstrobe", + "fwrite", + "getpattern", + "history", + "incsave", + "input", + "itor", + "key", + "list", + "log", + "monitor", + "monitoroff", + "monitoron", + "nokey", + "nolog", + "printtimescale", + "random", + "readmemb", + "readmemh", + "realtime", + "realtobits", + "reset", + "reset_count", + "reset_value", + "restart", + "rtoi", + "save", + "scale", + "scope", + "shortrealtobits", + "showscopes", + "showvariables", + "showvars", + "sreadmemb", + "sreadmemh", + "stime", + "stop", + "strobe", + "time", + "timeformat", + "write", + ), + prefix=r"\$", + suffix=r"\b", + ), + Name.Builtin, + ), + ( + words( + ( + "byte", + "shortint", + "int", + "longint", + "integer", + "time", + "bit", + "logic", + "reg", + "supply0", + "supply1", + "tri", + "triand", + "trior", + "tri0", + "tri1", + "trireg", + "uwire", + "wire", + "wand", + "wor" "shortreal", + "real", + "realtime", + ), + suffix=r"\b", + ), + Keyword.Type, + ), + (r"[a-zA-Z_]\w*:(?!:)", Name.Label), + (r"\$?[a-zA-Z_]\w*", Name), + (r"\\(\S+)", Name), ], - 'string': [ - (r'"', String, '#pop'), + "string": [ + (r'"', String, "#pop"), (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), (r'[^\\"\n]+', String), # all other characters - (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation - (r'\\', String), # stray backslash + (r"(\\)(\n)", bygroups(String.Escape, Whitespace)), # line continuation + (r"\\", String), # stray backslash ], - 'macro': [ - (r'[^/\n]+', Comment.Preproc), - (r'/[*](.|\n)*?[*]/', Comment.Multiline), - (r'//.*?\n', Comment.Single, '#pop'), - (r'/', Comment.Preproc), - (r'(?<=\\)\n', Comment.Preproc), - (r'\n', Whitespace, '#pop'), + "macro": [ + (r"[^/\n]+", Comment.Preproc), + (r"/[*](.|\n)*?[*]/", Comment.Multiline), + (r"//.*?\n", Comment.Single, "#pop"), + (r"/", Comment.Preproc), + (r"(?<=\\)\n", Comment.Preproc), + (r"\n", Whitespace, "#pop"), ], - 'import': [ - (r'[\w:]+\*?', Name.Namespace, '#pop') - ] + "import": [(r"[\w:]+\*?", Name.Namespace, "#pop")], } def analyse_text(text): """Verilog code will use one of reg/wire/assign for sure, and that is not common elsewhere.""" result = 0 - if 'reg' in text: + if "reg" in text: result += 0.1 - if 'wire' in text: + if "wire" in text: result += 0.1 - if 'assign' in text: + if "assign" in text: result += 0.1 return result @@ -148,225 +358,602 @@ class SystemVerilogLexer(RegexLexer): Extends verilog lexer to recognise all SystemVerilog keywords from IEEE 1800-2009 standard. """ - name = 'systemverilog' - aliases = ['systemverilog', 'sv'] - filenames = ['*.sv', '*.svh'] - mimetypes = ['text/x-systemverilog'] - url = 'https://en.wikipedia.org/wiki/SystemVerilog' - version_added = '1.5' + + name = "systemverilog" + aliases = ["systemverilog", "sv"] + filenames = ["*.sv", "*.svh"] + mimetypes = ["text/x-systemverilog"] + url = "https://en.wikipedia.org/wiki/SystemVerilog" + version_added = "1.5" #: optional Comment or Whitespace - _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+' + _ws = r"(?:\s|//.*?\n|/[*].*?[*]/)+" tokens = { - 'root': [ - (r'^(\s*)(`define)', bygroups(Whitespace, Comment.Preproc), 'macro'), - (r'^(\s*)(package)(\s+)', bygroups(Whitespace, Keyword.Namespace, Whitespace)), - (r'^(\s*)(import)(\s+)', bygroups(Whitespace, Keyword.Namespace, Whitespace), 'import'), - - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation - (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'[{}#@]', Punctuation), - (r'L?"', String, 'string'), + "root": [ + (r"^(\s*)(`define)", bygroups(Whitespace, Comment.Preproc), "macro"), + ( + r"^(\s*)(package)(\s+)", + bygroups(Whitespace, Keyword.Namespace, Whitespace), + ), + ( + r"^(\s*)(import)(\s+)", + bygroups(Whitespace, Keyword.Namespace, Whitespace), + "import", + ), + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(String.Escape, Whitespace)), # line continuation + (r"/(\\\n)?/(\n|(.|\n)*?[^\\]\n)", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"[{}#@]", Punctuation), + (r'L?"', String, "string"), (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), - - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), - - (r'([1-9][_0-9]*)?\s*\'[sS]?[bB]\s*[xXzZ?01][_xXzZ?01]*', - Number.Bin), - (r'([1-9][_0-9]*)?\s*\'[sS]?[oO]\s*[xXzZ?0-7][_xXzZ?0-7]*', - Number.Oct), - (r'([1-9][_0-9]*)?\s*\'[sS]?[dD]\s*[xXzZ?0-9][_xXzZ?0-9]*', - Number.Integer), - (r'([1-9][_0-9]*)?\s*\'[sS]?[hH]\s*[xXzZ?0-9a-fA-F][_xXzZ?0-9a-fA-F]*', - Number.Hex), - - (r'\'[01xXzZ]', Number), - (r'[0-9][_0-9]*', Number.Integer), - - (r'[~!%^&*+=|?:<>/-]', Operator), - (words(('inside', 'dist'), suffix=r'\b'), Operator.Word), - - (r'[()\[\],.;\'$]', Punctuation), - (r'`[a-zA-Z_]\w*', Name.Constant), - - (words(( - 'accept_on', 'alias', 'always', 'always_comb', 'always_ff', - 'always_latch', 'and', 'assert', 'assign', 'assume', 'automatic', - 'before', 'begin', 'bind', 'bins', 'binsof', 'break', 'buf', - 'bufif0', 'bufif1', 'case', 'casex', 'casez', 'cell', - 'checker', 'clocking', 'cmos', 'config', - 'constraint', 'context', 'continue', 'cover', 'covergroup', - 'coverpoint', 'cross', 'deassign', 'default', 'defparam', 'design', - 'disable', 'do', 'edge', 'else', 'end', 'endcase', - 'endchecker', 'endclocking', 'endconfig', 'endfunction', - 'endgenerate', 'endgroup', 'endinterface', 'endmodule', 'endpackage', - 'endprimitive', 'endprogram', 'endproperty', 'endsequence', - 'endspecify', 'endtable', 'endtask', 'enum', 'eventually', - 'expect', 'export', 'extern', 'final', 'first_match', - 'for', 'force', 'foreach', 'forever', 'fork', 'forkjoin', 'function', - 'generate', 'genvar', 'global', 'highz0', 'highz1', 'if', 'iff', - 'ifnone', 'ignore_bins', 'illegal_bins', 'implies', 'implements', 'import', - 'incdir', 'include', 'initial', 'inout', 'input', - 'instance', 'interconnect', 'interface', 'intersect', 'join', - 'join_any', 'join_none', 'large', 'let', 'liblist', 'library', - 'local', 'localparam', 'macromodule', 'matches', - 'medium', 'modport', 'module', 'nand', 'negedge', 'nettype', 'new', 'nexttime', - 'nmos', 'nor', 'noshowcancelled', 'not', 'notif0', 'notif1', 'null', - 'or', 'output', 'package', 'packed', 'parameter', 'pmos', 'posedge', - 'primitive', 'priority', 'program', 'property', 'protected', 'pull0', - 'pull1', 'pulldown', 'pullup', 'pulsestyle_ondetect', - 'pulsestyle_onevent', 'pure', 'rand', 'randc', 'randcase', - 'randsequence', 'rcmos', 'ref', - 'reject_on', 'release', 'repeat', 'restrict', 'return', 'rnmos', - 'rpmos', 'rtran', 'rtranif0', 'rtranif1', 's_always', 's_eventually', - 's_nexttime', 's_until', 's_until_with', 'scalared', 'sequence', - 'showcancelled', 'small', 'soft', 'solve', - 'specify', 'specparam', 'static', 'strong', 'strong0', - 'strong1', 'struct', 'super', 'sync_accept_on', - 'sync_reject_on', 'table', 'tagged', 'task', 'this', 'throughout', - 'timeprecision', 'timeunit', 'tran', 'tranif0', 'tranif1', - 'typedef', 'union', 'unique', 'unique0', 'until', - 'until_with', 'untyped', 'use', 'vectored', - 'virtual', 'wait', 'wait_order', 'weak', 'weak0', - 'weak1', 'while', 'wildcard', 'with', 'within', - 'xnor', 'xor'), - suffix=r'\b'), - Keyword), - - (r'(class)(\s+)([a-zA-Z_]\w*)', - bygroups(Keyword.Declaration, Whitespace, Name.Class)), - (r'(extends)(\s+)([a-zA-Z_]\w*)', - bygroups(Keyword.Declaration, Whitespace, Name.Class)), - (r'(endclass\b)(?:(\s*)(:)(\s*)([a-zA-Z_]\w*))?', - bygroups(Keyword.Declaration, Whitespace, Punctuation, Whitespace, Name.Class)), - - (words(( - # Variable types - 'bit', 'byte', 'chandle', 'const', 'event', 'int', 'integer', - 'logic', 'longint', 'real', 'realtime', 'reg', 'shortint', - 'shortreal', 'signed', 'string', 'time', 'type', 'unsigned', - 'var', 'void', - # Net types - 'supply0', 'supply1', 'tri', 'triand', 'trior', 'trireg', - 'tri0', 'tri1', 'uwire', 'wand', 'wire', 'wor'), - suffix=r'\b'), - Keyword.Type), - - (words(( - '`__FILE__', '`__LINE__', '`begin_keywords', '`celldefine', - '`default_nettype', '`define', '`else', '`elsif', '`end_keywords', - '`endcelldefine', '`endif', '`ifdef', '`ifndef', '`include', - '`line', '`nounconnected_drive', '`pragma', '`resetall', - '`timescale', '`unconnected_drive', '`undef', '`undefineall'), - suffix=r'\b'), - Comment.Preproc), - - (words(( - # Simulation control tasks (20.2) - '$exit', '$finish', '$stop', - # Simulation time functions (20.3) - '$realtime', '$stime', '$time', - # Timescale tasks (20.4) - '$printtimescale', '$timeformat', - # Conversion functions - '$bitstoreal', '$bitstoshortreal', '$cast', '$itor', - '$realtobits', '$rtoi', '$shortrealtobits', '$signed', - '$unsigned', - # Data query functions (20.6) - '$bits', '$isunbounded', '$typename', - # Array query functions (20.7) - '$dimensions', '$high', '$increment', '$left', '$low', '$right', - '$size', '$unpacked_dimensions', - # Math functions (20.8) - '$acos', '$acosh', '$asin', '$asinh', '$atan', '$atan2', - '$atanh', '$ceil', '$clog2', '$cos', '$cosh', '$exp', '$floor', - '$hypot', '$ln', '$log10', '$pow', '$sin', '$sinh', '$sqrt', - '$tan', '$tanh', - # Bit vector system functions (20.9) - '$countbits', '$countones', '$isunknown', '$onehot', '$onehot0', - # Severity tasks (20.10) - '$info', '$error', '$fatal', '$warning', - # Assertion control tasks (20.12) - '$assertcontrol', '$assertfailoff', '$assertfailon', - '$assertkill', '$assertnonvacuouson', '$assertoff', '$asserton', - '$assertpassoff', '$assertpasson', '$assertvacuousoff', - # Sampled value system functions (20.13) - '$changed', '$changed_gclk', '$changing_gclk', '$falling_gclk', - '$fell', '$fell_gclk', '$future_gclk', '$past', '$past_gclk', - '$rising_gclk', '$rose', '$rose_gclk', '$sampled', '$stable', - '$stable_gclk', '$steady_gclk', - # Coverage control functions (20.14) - '$coverage_control', '$coverage_get', '$coverage_get_max', - '$coverage_merge', '$coverage_save', '$get_coverage', - '$load_coverage_db', '$set_coverage_db_name', - # Probabilistic distribution functions (20.15) - '$dist_chi_square', '$dist_erlang', '$dist_exponential', - '$dist_normal', '$dist_poisson', '$dist_t', '$dist_uniform', - '$random', - # Stochastic analysis tasks and functions (20.16) - '$q_add', '$q_exam', '$q_full', '$q_initialize', '$q_remove', - # PLA modeling tasks (20.17) - '$async$and$array', '$async$and$plane', '$async$nand$array', - '$async$nand$plane', '$async$nor$array', '$async$nor$plane', - '$async$or$array', '$async$or$plane', '$sync$and$array', - '$sync$and$plane', '$sync$nand$array', '$sync$nand$plane', - '$sync$nor$array', '$sync$nor$plane', '$sync$or$array', - '$sync$or$plane', - # Miscellaneous tasks and functions (20.18) - '$system', - # Display tasks (21.2) - '$display', '$displayb', '$displayh', '$displayo', '$monitor', - '$monitorb', '$monitorh', '$monitoro', '$monitoroff', - '$monitoron', '$strobe', '$strobeb', '$strobeh', '$strobeo', - '$write', '$writeb', '$writeh', '$writeo', - # File I/O tasks and functions (21.3) - '$fclose', '$fdisplay', '$fdisplayb', '$fdisplayh', - '$fdisplayo', '$feof', '$ferror', '$fflush', '$fgetc', '$fgets', - '$fmonitor', '$fmonitorb', '$fmonitorh', '$fmonitoro', '$fopen', - '$fread', '$fscanf', '$fseek', '$fstrobe', '$fstrobeb', - '$fstrobeh', '$fstrobeo', '$ftell', '$fwrite', '$fwriteb', - '$fwriteh', '$fwriteo', '$rewind', '$sformat', '$sformatf', - '$sscanf', '$swrite', '$swriteb', '$swriteh', '$swriteo', - '$ungetc', - # Memory load tasks (21.4) - '$readmemb', '$readmemh', - # Memory dump tasks (21.5) - '$writememb', '$writememh', - # Command line input (21.6) - '$test$plusargs', '$value$plusargs', - # VCD tasks (21.7) - '$dumpall', '$dumpfile', '$dumpflush', '$dumplimit', '$dumpoff', - '$dumpon', '$dumpports', '$dumpportsall', '$dumpportsflush', - '$dumpportslimit', '$dumpportsoff', '$dumpportson', '$dumpvars', - ), suffix=r'\b'), - Name.Builtin), - - (r'[a-zA-Z_]\w*:(?!:)', Name.Label), - (r'\$?[a-zA-Z_]\w*', Name), - (r'\\(\S+)', Name), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float), + (r"([1-9][_0-9]*)?\s*\'[sS]?[bB]\s*[xXzZ?01][_xXzZ?01]*", Number.Bin), + (r"([1-9][_0-9]*)?\s*\'[sS]?[oO]\s*[xXzZ?0-7][_xXzZ?0-7]*", Number.Oct), + (r"([1-9][_0-9]*)?\s*\'[sS]?[dD]\s*[xXzZ?0-9][_xXzZ?0-9]*", Number.Integer), + ( + r"([1-9][_0-9]*)?\s*\'[sS]?[hH]\s*[xXzZ?0-9a-fA-F][_xXzZ?0-9a-fA-F]*", + Number.Hex, + ), + (r"\'[01xXzZ]", Number), + (r"[0-9][_0-9]*", Number.Integer), + (r"[~!%^&*+=|?:<>/-]", Operator), + (words(("inside", "dist"), suffix=r"\b"), Operator.Word), + (r"[()\[\],.;\'$]", Punctuation), + (r"`[a-zA-Z_]\w*", Name.Constant), + ( + words( + ( + "accept_on", + "alias", + "always", + "always_comb", + "always_ff", + "always_latch", + "and", + "assert", + "assign", + "assume", + "automatic", + "before", + "begin", + "bind", + "bins", + "binsof", + "break", + "buf", + "bufif0", + "bufif1", + "case", + "casex", + "casez", + "cell", + "checker", + "clocking", + "cmos", + "config", + "constraint", + "context", + "continue", + "cover", + "covergroup", + "coverpoint", + "cross", + "deassign", + "default", + "defparam", + "design", + "disable", + "do", + "edge", + "else", + "end", + "endcase", + "endchecker", + "endclocking", + "endconfig", + "endfunction", + "endgenerate", + "endgroup", + "endinterface", + "endmodule", + "endpackage", + "endprimitive", + "endprogram", + "endproperty", + "endsequence", + "endspecify", + "endtable", + "endtask", + "enum", + "eventually", + "expect", + "export", + "extern", + "final", + "first_match", + "for", + "force", + "foreach", + "forever", + "fork", + "forkjoin", + "function", + "generate", + "genvar", + "global", + "highz0", + "highz1", + "if", + "iff", + "ifnone", + "ignore_bins", + "illegal_bins", + "implies", + "implements", + "import", + "incdir", + "include", + "initial", + "inout", + "input", + "instance", + "interconnect", + "interface", + "intersect", + "join", + "join_any", + "join_none", + "large", + "let", + "liblist", + "library", + "local", + "localparam", + "macromodule", + "matches", + "medium", + "modport", + "module", + "nand", + "negedge", + "nettype", + "new", + "nexttime", + "nmos", + "nor", + "noshowcancelled", + "not", + "notif0", + "notif1", + "null", + "or", + "output", + "package", + "packed", + "parameter", + "pmos", + "posedge", + "primitive", + "priority", + "program", + "property", + "protected", + "pull0", + "pull1", + "pulldown", + "pullup", + "pulsestyle_ondetect", + "pulsestyle_onevent", + "pure", + "rand", + "randc", + "randcase", + "randsequence", + "rcmos", + "ref", + "reject_on", + "release", + "repeat", + "restrict", + "return", + "rnmos", + "rpmos", + "rtran", + "rtranif0", + "rtranif1", + "s_always", + "s_eventually", + "s_nexttime", + "s_until", + "s_until_with", + "scalared", + "sequence", + "showcancelled", + "small", + "soft", + "solve", + "specify", + "specparam", + "static", + "strong", + "strong0", + "strong1", + "struct", + "super", + "sync_accept_on", + "sync_reject_on", + "table", + "tagged", + "task", + "this", + "throughout", + "timeprecision", + "timeunit", + "tran", + "tranif0", + "tranif1", + "typedef", + "union", + "unique", + "unique0", + "until", + "until_with", + "untyped", + "use", + "vectored", + "virtual", + "wait", + "wait_order", + "weak", + "weak0", + "weak1", + "while", + "wildcard", + "with", + "within", + "xnor", + "xor", + ), + suffix=r"\b", + ), + Keyword, + ), + ( + r"(class)(\s+)([a-zA-Z_]\w*)", + bygroups(Keyword.Declaration, Whitespace, Name.Class), + ), + ( + r"(extends)(\s+)([a-zA-Z_]\w*)", + bygroups(Keyword.Declaration, Whitespace, Name.Class), + ), + ( + r"(endclass\b)(?:(\s*)(:)(\s*)([a-zA-Z_]\w*))?", + bygroups( + Keyword.Declaration, Whitespace, Punctuation, Whitespace, Name.Class + ), + ), + ( + words( + ( + # Variable types + "bit", + "byte", + "chandle", + "const", + "event", + "int", + "integer", + "logic", + "longint", + "real", + "realtime", + "reg", + "shortint", + "shortreal", + "signed", + "string", + "time", + "type", + "unsigned", + "var", + "void", + # Net types + "supply0", + "supply1", + "tri", + "triand", + "trior", + "trireg", + "tri0", + "tri1", + "uwire", + "wand", + "wire", + "wor", + ), + suffix=r"\b", + ), + Keyword.Type, + ), + ( + words( + ( + "`__FILE__", + "`__LINE__", + "`begin_keywords", + "`celldefine", + "`default_nettype", + "`define", + "`else", + "`elsif", + "`end_keywords", + "`endcelldefine", + "`endif", + "`ifdef", + "`ifndef", + "`include", + "`line", + "`nounconnected_drive", + "`pragma", + "`resetall", + "`timescale", + "`unconnected_drive", + "`undef", + "`undefineall", + ), + suffix=r"\b", + ), + Comment.Preproc, + ), + ( + words( + ( + # Simulation control tasks (20.2) + "$exit", + "$finish", + "$stop", + # Simulation time functions (20.3) + "$realtime", + "$stime", + "$time", + # Timescale tasks (20.4) + "$printtimescale", + "$timeformat", + # Conversion functions + "$bitstoreal", + "$bitstoshortreal", + "$cast", + "$itor", + "$realtobits", + "$rtoi", + "$shortrealtobits", + "$signed", + "$unsigned", + # Data query functions (20.6) + "$bits", + "$isunbounded", + "$typename", + # Array query functions (20.7) + "$dimensions", + "$high", + "$increment", + "$left", + "$low", + "$right", + "$size", + "$unpacked_dimensions", + # Math functions (20.8) + "$acos", + "$acosh", + "$asin", + "$asinh", + "$atan", + "$atan2", + "$atanh", + "$ceil", + "$clog2", + "$cos", + "$cosh", + "$exp", + "$floor", + "$hypot", + "$ln", + "$log10", + "$pow", + "$sin", + "$sinh", + "$sqrt", + "$tan", + "$tanh", + # Bit vector system functions (20.9) + "$countbits", + "$countones", + "$isunknown", + "$onehot", + "$onehot0", + # Severity tasks (20.10) + "$info", + "$error", + "$fatal", + "$warning", + # Assertion control tasks (20.12) + "$assertcontrol", + "$assertfailoff", + "$assertfailon", + "$assertkill", + "$assertnonvacuouson", + "$assertoff", + "$asserton", + "$assertpassoff", + "$assertpasson", + "$assertvacuousoff", + # Sampled value system functions (20.13) + "$changed", + "$changed_gclk", + "$changing_gclk", + "$falling_gclk", + "$fell", + "$fell_gclk", + "$future_gclk", + "$past", + "$past_gclk", + "$rising_gclk", + "$rose", + "$rose_gclk", + "$sampled", + "$stable", + "$stable_gclk", + "$steady_gclk", + # Coverage control functions (20.14) + "$coverage_control", + "$coverage_get", + "$coverage_get_max", + "$coverage_merge", + "$coverage_save", + "$get_coverage", + "$load_coverage_db", + "$set_coverage_db_name", + # Probabilistic distribution functions (20.15) + "$dist_chi_square", + "$dist_erlang", + "$dist_exponential", + "$dist_normal", + "$dist_poisson", + "$dist_t", + "$dist_uniform", + "$random", + # Stochastic analysis tasks and functions (20.16) + "$q_add", + "$q_exam", + "$q_full", + "$q_initialize", + "$q_remove", + # PLA modeling tasks (20.17) + "$async$and$array", + "$async$and$plane", + "$async$nand$array", + "$async$nand$plane", + "$async$nor$array", + "$async$nor$plane", + "$async$or$array", + "$async$or$plane", + "$sync$and$array", + "$sync$and$plane", + "$sync$nand$array", + "$sync$nand$plane", + "$sync$nor$array", + "$sync$nor$plane", + "$sync$or$array", + "$sync$or$plane", + # Miscellaneous tasks and functions (20.18) + "$system", + # Display tasks (21.2) + "$display", + "$displayb", + "$displayh", + "$displayo", + "$monitor", + "$monitorb", + "$monitorh", + "$monitoro", + "$monitoroff", + "$monitoron", + "$strobe", + "$strobeb", + "$strobeh", + "$strobeo", + "$write", + "$writeb", + "$writeh", + "$writeo", + # File I/O tasks and functions (21.3) + "$fclose", + "$fdisplay", + "$fdisplayb", + "$fdisplayh", + "$fdisplayo", + "$feof", + "$ferror", + "$fflush", + "$fgetc", + "$fgets", + "$fmonitor", + "$fmonitorb", + "$fmonitorh", + "$fmonitoro", + "$fopen", + "$fread", + "$fscanf", + "$fseek", + "$fstrobe", + "$fstrobeb", + "$fstrobeh", + "$fstrobeo", + "$ftell", + "$fwrite", + "$fwriteb", + "$fwriteh", + "$fwriteo", + "$rewind", + "$sformat", + "$sformatf", + "$sscanf", + "$swrite", + "$swriteb", + "$swriteh", + "$swriteo", + "$ungetc", + # Memory load tasks (21.4) + "$readmemb", + "$readmemh", + # Memory dump tasks (21.5) + "$writememb", + "$writememh", + # Command line input (21.6) + "$test$plusargs", + "$value$plusargs", + # VCD tasks (21.7) + "$dumpall", + "$dumpfile", + "$dumpflush", + "$dumplimit", + "$dumpoff", + "$dumpon", + "$dumpports", + "$dumpportsall", + "$dumpportsflush", + "$dumpportslimit", + "$dumpportsoff", + "$dumpportson", + "$dumpvars", + ), + suffix=r"\b", + ), + Name.Builtin, + ), + (r"[a-zA-Z_]\w*:(?!:)", Name.Label), + (r"\$?[a-zA-Z_]\w*", Name), + (r"\\(\S+)", Name), ], - 'string': [ - (r'"', String, '#pop'), + "string": [ + (r'"', String, "#pop"), (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), (r'[^\\"\n]+', String), # all other characters - (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation - (r'\\', String), # stray backslash + (r"(\\)(\n)", bygroups(String.Escape, Whitespace)), # line continuation + (r"\\", String), # stray backslash ], - 'macro': [ - (r'[^/\n]+', Comment.Preproc), - (r'/[*](.|\n)*?[*]/', Comment.Multiline), - (r'//.*?$', Comment.Single, '#pop'), - (r'/', Comment.Preproc), - (r'(?<=\\)\n', Comment.Preproc), - (r'\n', Whitespace, '#pop'), + "macro": [ + (r"[^/\n]+", Comment.Preproc), + (r"/[*](.|\n)*?[*]/", Comment.Multiline), + (r"//.*?$", Comment.Single, "#pop"), + (r"/", Comment.Preproc), + (r"(?<=\\)\n", Comment.Preproc), + (r"\n", Whitespace, "#pop"), ], - 'import': [ - (r'[\w:]+\*?', Name.Namespace, '#pop') - ] + "import": [(r"[\w:]+\*?", Name.Namespace, "#pop")], } @@ -374,91 +961,214 @@ class VhdlLexer(RegexLexer): """ For VHDL source code. """ - name = 'vhdl' - aliases = ['vhdl'] - filenames = ['*.vhdl', '*.vhd'] - mimetypes = ['text/x-vhdl'] - url = 'https://en.wikipedia.org/wiki/VHDL' - version_added = '1.5' + + name = "vhdl" + aliases = ["vhdl"] + filenames = ["*.vhdl", "*.vhd"] + mimetypes = ["text/x-vhdl"] + url = "https://en.wikipedia.org/wiki/VHDL" + version_added = "1.5" flags = re.MULTILINE | re.IGNORECASE tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation - (r'--.*?$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), + "root": [ + (r"\s+", Whitespace), + (r"(\\)(\n)", bygroups(String.Escape, Whitespace)), # line continuation + (r"--.*?$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), (r"'(U|X|0|1|Z|W|L|H|-)'", String.Char), - (r'[~!%^&*+=|?:<>/-]', Operator), + (r"[~!%^&*+=|?:<>/-]", Operator), (r"'[a-z_]\w*", Name.Attribute), - (r'[()\[\],.;\']', Punctuation), + (r"[()\[\],.;\']", Punctuation), (r'"[^\n\\"]*"', String), - - (r'(library)(\s+)([a-z_]\w*)', - bygroups(Keyword, Whitespace, Name.Namespace)), - (r'(use)(\s+)(entity)', bygroups(Keyword, Whitespace, Keyword)), - (r'(use)(\s+)([a-z_][\w.]*\.)(all)', - bygroups(Keyword, Whitespace, Name.Namespace, Keyword)), - (r'(use)(\s+)([a-z_][\w.]*)', - bygroups(Keyword, Whitespace, Name.Namespace)), - (r'(std|ieee)(\.[a-z_]\w*)', - bygroups(Name.Namespace, Name.Namespace)), - (words(('std', 'ieee', 'work'), suffix=r'\b'), - Name.Namespace), - (r'(entity|component)(\s+)([a-z_]\w*)', - bygroups(Keyword, Whitespace, Name.Class)), - (r'(architecture|configuration)(\s+)([a-z_]\w*)(\s+)' - r'(of)(\s+)([a-z_]\w*)(\s+)(is)', - bygroups(Keyword, Whitespace, Name.Class, Whitespace, Keyword, Whitespace, - Name.Class, Whitespace, Keyword)), - (r'([a-z_]\w*)(:)(\s+)(process|for)', - bygroups(Name.Class, Operator, Whitespace, Keyword)), - (r'(end)(\s+)', bygroups(using(this), Whitespace), 'endblock'), - - include('types'), - include('keywords'), - include('numbers'), - - (r'[a-z_]\w*', Name), + ( + r"(library)(\s+)([a-z_]\w*)", + bygroups(Keyword, Whitespace, Name.Namespace), + ), + (r"(use)(\s+)(entity)", bygroups(Keyword, Whitespace, Keyword)), + ( + r"(use)(\s+)([a-z_][\w.]*\.)(all)", + bygroups(Keyword, Whitespace, Name.Namespace, Keyword), + ), + ( + r"(use)(\s+)([a-z_][\w.]*)", + bygroups(Keyword, Whitespace, Name.Namespace), + ), + (r"(std|ieee)(\.[a-z_]\w*)", bygroups(Name.Namespace, Name.Namespace)), + (words(("std", "ieee", "work"), suffix=r"\b"), Name.Namespace), + ( + r"(entity|component)(\s+)([a-z_]\w*)", + bygroups(Keyword, Whitespace, Name.Class), + ), + ( + r"(architecture|configuration)(\s+)([a-z_]\w*)(\s+)" + r"(of)(\s+)([a-z_]\w*)(\s+)(is)", + bygroups( + Keyword, + Whitespace, + Name.Class, + Whitespace, + Keyword, + Whitespace, + Name.Class, + Whitespace, + Keyword, + ), + ), + ( + r"([a-z_]\w*)(:)(\s+)(process|for)", + bygroups(Name.Class, Operator, Whitespace, Keyword), + ), + (r"(end)(\s+)", bygroups(using(this), Whitespace), "endblock"), + include("types"), + include("keywords"), + include("numbers"), + (r"[a-z_]\w*", Name), ], - 'endblock': [ - include('keywords'), - (r'[a-z_]\w*', Name.Class), - (r'\s+', Whitespace), - (r';', Punctuation, '#pop'), + "endblock": [ + include("keywords"), + (r"[a-z_]\w*", Name.Class), + (r"\s+", Whitespace), + (r";", Punctuation, "#pop"), ], - 'types': [ - (words(( - 'boolean', 'bit', 'character', 'severity_level', 'integer', 'time', - 'delay_length', 'natural', 'positive', 'string', 'bit_vector', - 'file_open_kind', 'file_open_status', 'std_ulogic', 'std_ulogic_vector', - 'std_logic', 'std_logic_vector', 'signed', 'unsigned'), suffix=r'\b'), - Keyword.Type), + "types": [ + ( + words( + ( + "boolean", + "bit", + "character", + "severity_level", + "integer", + "time", + "delay_length", + "natural", + "positive", + "string", + "bit_vector", + "file_open_kind", + "file_open_status", + "std_ulogic", + "std_ulogic_vector", + "std_logic", + "std_logic_vector", + "signed", + "unsigned", + ), + suffix=r"\b", + ), + Keyword.Type, + ), ], - 'keywords': [ - (words(( - 'abs', 'access', 'after', 'alias', 'all', 'and', - 'architecture', 'array', 'assert', 'attribute', 'begin', 'block', - 'body', 'buffer', 'bus', 'case', 'component', 'configuration', - 'constant', 'disconnect', 'downto', 'else', 'elsif', 'end', - 'entity', 'exit', 'file', 'for', 'function', 'generate', - 'generic', 'group', 'guarded', 'if', 'impure', 'in', - 'inertial', 'inout', 'is', 'label', 'library', 'linkage', - 'literal', 'loop', 'map', 'mod', 'nand', 'new', - 'next', 'nor', 'not', 'null', 'of', 'on', - 'open', 'or', 'others', 'out', 'package', 'port', - 'postponed', 'procedure', 'process', 'pure', 'range', 'record', - 'register', 'reject', 'rem', 'return', 'rol', 'ror', 'select', - 'severity', 'signal', 'shared', 'sla', 'sll', 'sra', - 'srl', 'subtype', 'then', 'to', 'transport', 'type', - 'units', 'until', 'use', 'variable', 'wait', 'when', - 'while', 'with', 'xnor', 'xor'), suffix=r'\b'), - Keyword), + "keywords": [ + ( + words( + ( + "abs", + "access", + "after", + "alias", + "all", + "and", + "architecture", + "array", + "assert", + "attribute", + "begin", + "block", + "body", + "buffer", + "bus", + "case", + "component", + "configuration", + "constant", + "disconnect", + "downto", + "else", + "elsif", + "end", + "entity", + "exit", + "file", + "for", + "function", + "generate", + "generic", + "group", + "guarded", + "if", + "impure", + "in", + "inertial", + "inout", + "is", + "label", + "library", + "linkage", + "literal", + "loop", + "map", + "mod", + "nand", + "new", + "next", + "nor", + "not", + "null", + "of", + "on", + "open", + "or", + "others", + "out", + "package", + "port", + "postponed", + "procedure", + "process", + "pure", + "range", + "record", + "register", + "reject", + "rem", + "return", + "rol", + "ror", + "select", + "severity", + "signal", + "shared", + "sla", + "sll", + "sra", + "srl", + "subtype", + "then", + "to", + "transport", + "type", + "units", + "until", + "use", + "variable", + "wait", + "when", + "while", + "with", + "xnor", + "xor", + ), + suffix=r"\b", + ), + Keyword, + ), ], - 'numbers': [ - (r'\d{1,2}#[0-9a-f_]+#?', Number.Integer), - (r'\d+', Number.Integer), - (r'(\d+\.\d*|\.\d+|\d+)E[+-]?\d+', Number.Float), + "numbers": [ + (r"\d{1,2}#[0-9a-f_]+#?", Number.Integer), + (r"\d+", Number.Integer), + (r"(\d+\.\d*|\.\d+|\d+)E[+-]?\d+", Number.Float), (r'X"[0-9a-f_]+"', Number.Hex), (r'O"[0-7_]+"', Number.Oct), (r'B"[01_]+"', Number.Bin), diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hexdump.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hexdump.py index 4da4edb..d4264fb 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hexdump.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/hexdump.py @@ -1,17 +1,17 @@ """ - pygments.lexers.hexdump - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.hexdump +~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for hexadecimal dumps. +Lexers for hexadecimal dumps. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, include from pygments.token import Name, Number, String, Punctuation, Whitespace -__all__ = ['HexdumpLexer'] +__all__ = ["HexdumpLexer"] class HexdumpLexer(RegexLexer): @@ -34,69 +34,92 @@ class HexdumpLexer(RegexLexer): * ``xxd FILE`` * ``DEBUG.EXE FILE.COM`` and entering ``d`` to the prompt. """ - name = 'Hexdump' - aliases = ['hexdump'] - url = 'https://en.wikipedia.org/wiki/Hex_dump' - version_added = '2.1' - hd = r'[0-9A-Ha-h]' + name = "Hexdump" + aliases = ["hexdump"] + url = "https://en.wikipedia.org/wiki/Hex_dump" + version_added = "2.1" + + hd = r"[0-9A-Ha-h]" tokens = { - 'root': [ - (r'\n', Whitespace), - include('offset'), - (r'('+hd+r'{2})(\-)('+hd+r'{2})', - bygroups(Number.Hex, Punctuation, Number.Hex)), - (hd+r'{2}', Number.Hex), - (r'(\s{2,3})(\>)(.{16})(\<)$', - bygroups(Whitespace, Punctuation, String, Punctuation), 'bracket-strings'), - (r'(\s{2,3})(\|)(.{16})(\|)$', - bygroups(Whitespace, Punctuation, String, Punctuation), 'piped-strings'), - (r'(\s{2,3})(\>)(.{1,15})(\<)$', - bygroups(Whitespace, Punctuation, String, Punctuation)), - (r'(\s{2,3})(\|)(.{1,15})(\|)$', - bygroups(Whitespace, Punctuation, String, Punctuation)), - (r'(\s{2,3})(.{1,15})$', bygroups(Whitespace, String)), - (r'(\s{2,3})(.{16}|.{20})$', bygroups(Whitespace, String), 'nonpiped-strings'), - (r'\s', Whitespace), - (r'^\*', Punctuation), + "root": [ + (r"\n", Whitespace), + include("offset"), + ( + r"(" + hd + r"{2})(\-)(" + hd + r"{2})", + bygroups(Number.Hex, Punctuation, Number.Hex), + ), + (hd + r"{2}", Number.Hex), + ( + r"(\s{2,3})(\>)(.{16})(\<)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + "bracket-strings", + ), + ( + r"(\s{2,3})(\|)(.{16})(\|)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + "piped-strings", + ), + ( + r"(\s{2,3})(\>)(.{1,15})(\<)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + ), + ( + r"(\s{2,3})(\|)(.{1,15})(\|)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + ), + (r"(\s{2,3})(.{1,15})$", bygroups(Whitespace, String)), + ( + r"(\s{2,3})(.{16}|.{20})$", + bygroups(Whitespace, String), + "nonpiped-strings", + ), + (r"\s", Whitespace), + (r"^\*", Punctuation), ], - 'offset': [ - (r'^('+hd+'+)(:)', bygroups(Name.Label, Punctuation), 'offset-mode'), - (r'^'+hd+'+', Name.Label), + "offset": [ + (r"^(" + hd + "+)(:)", bygroups(Name.Label, Punctuation), "offset-mode"), + (r"^" + hd + "+", Name.Label), ], - 'offset-mode': [ - (r'\s', Whitespace, '#pop'), - (hd+'+', Name.Label), - (r':', Punctuation) + "offset-mode": [ + (r"\s", Whitespace, "#pop"), + (hd + "+", Name.Label), + (r":", Punctuation), ], - 'piped-strings': [ - (r'\n', Whitespace), - include('offset'), - (hd+r'{2}', Number.Hex), - (r'(\s{2,3})(\|)(.{1,16})(\|)$', - bygroups(Whitespace, Punctuation, String, Punctuation)), - (r'\s', Whitespace), - (r'^\*', Punctuation), + "piped-strings": [ + (r"\n", Whitespace), + include("offset"), + (hd + r"{2}", Number.Hex), + ( + r"(\s{2,3})(\|)(.{1,16})(\|)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + ), + (r"\s", Whitespace), + (r"^\*", Punctuation), ], - 'bracket-strings': [ - (r'\n', Whitespace), - include('offset'), - (hd+r'{2}', Number.Hex), - (r'(\s{2,3})(\>)(.{1,16})(\<)$', - bygroups(Whitespace, Punctuation, String, Punctuation)), - (r'\s', Whitespace), - (r'^\*', Punctuation), + "bracket-strings": [ + (r"\n", Whitespace), + include("offset"), + (hd + r"{2}", Number.Hex), + ( + r"(\s{2,3})(\>)(.{1,16})(\<)$", + bygroups(Whitespace, Punctuation, String, Punctuation), + ), + (r"\s", Whitespace), + (r"^\*", Punctuation), ], - 'nonpiped-strings': [ - (r'\n', Whitespace), - include('offset'), - (r'('+hd+r'{2})(\-)('+hd+r'{2})', - bygroups(Number.Hex, Punctuation, Number.Hex)), - (hd+r'{2}', Number.Hex), - (r'(\s{19,})(.{1,20}?)$', bygroups(Whitespace, String)), - (r'(\s{2,3})(.{1,20})$', bygroups(Whitespace, String)), - (r'\s', Whitespace), - (r'^\*', Punctuation), + "nonpiped-strings": [ + (r"\n", Whitespace), + include("offset"), + ( + r"(" + hd + r"{2})(\-)(" + hd + r"{2})", + bygroups(Number.Hex, Punctuation, Number.Hex), + ), + (hd + r"{2}", Number.Hex), + (r"(\s{19,})(.{1,20}?)$", bygroups(Whitespace, String)), + (r"(\s{2,3})(.{1,20})$", bygroups(Whitespace, String)), + (r"\s", Whitespace), + (r"^\*", Punctuation), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/html.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/html.py index 66ba660..b3cc400 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/html.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/html.py @@ -1,19 +1,35 @@ """ - pygments.lexers.html - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.html +~~~~~~~~~~~~~~~~~~~~ - Lexers for HTML, XML and related markup. +Lexers for HTML, XML and related markup. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import RegexLexer, ExtendedRegexLexer, include, bygroups, \ - default, using, inherit, this -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Punctuation, Whitespace +from pygments.lexer import ( + RegexLexer, + ExtendedRegexLexer, + include, + bygroups, + default, + using, + inherit, + this, +) +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Punctuation, + Whitespace, +) from pygments.util import looks_like_xml, html_doctype_matches from pygments.lexers.javascript import JavascriptLexer @@ -21,8 +37,17 @@ from pygments.lexers.jvm import ScalaLexer from pygments.lexers.css import CssLexer, _indentation, _starts_block from pygments.lexers.ruby import RubyLexer -__all__ = ['HtmlLexer', 'DtdLexer', 'XmlLexer', 'XsltLexer', 'HamlLexer', - 'ScamlLexer', 'PugLexer', 'VueLexer', 'UrlEncodedLexer'] +__all__ = [ + "HtmlLexer", + "DtdLexer", + "XmlLexer", + "XsltLexer", + "HamlLexer", + "ScamlLexer", + "PugLexer", + "VueLexer", + "UrlEncodedLexer", +] class HtmlLexer(RegexLexer): @@ -31,71 +56,84 @@ class HtmlLexer(RegexLexer): by the appropriate lexer. """ - name = 'HTML' - url = 'https://html.spec.whatwg.org/' - aliases = ['html'] - filenames = ['*.html', '*.htm', '*.xhtml', '*.xslt'] - mimetypes = ['text/html', 'application/xhtml+xml'] - version_added = '' + name = "HTML" + url = "https://html.spec.whatwg.org/" + aliases = ["html"] + filenames = ["*.html", "*.htm", "*.xhtml", "*.xslt"] + mimetypes = ["text/html", "application/xhtml+xml"] + version_added = "" flags = re.IGNORECASE | re.DOTALL tokens = { - 'root': [ - ('[^<&]+', Text), - (r'&\S*?;', Name.Entity), - (r'\<\!\[CDATA\[.*?\]\]\>', Comment.Preproc), - (r'', Comment.Multiline), - (r'<\?.*?\?>', Comment.Preproc), - (']*>', Comment.Preproc), - (r'(<)(\s*)(script)(\s*)', - bygroups(Punctuation, Text, Name.Tag, Text), - ('script-content', 'tag')), - (r'(<)(\s*)(style)(\s*)', - bygroups(Punctuation, Text, Name.Tag, Text), - ('style-content', 'tag')), + "root": [ + ("[^<&]+", Text), + (r"&\S*?;", Name.Entity), + (r"\<\!\[CDATA\[.*?\]\]\>", Comment.Preproc), + (r"", Comment.Multiline), + (r"<\?.*?\?>", Comment.Preproc), + ("]*>", Comment.Preproc), + ( + r"(<)(\s*)(script)(\s*)", + bygroups(Punctuation, Text, Name.Tag, Text), + ("script-content", "tag"), + ), + ( + r"(<)(\s*)(style)(\s*)", + bygroups(Punctuation, Text, Name.Tag, Text), + ("style-content", "tag"), + ), # note: this allows tag names not used in HTML like , # this is to support yet-unknown template engines and the like - (r'(<)(\s*)([\w:.-]+)', - bygroups(Punctuation, Text, Name.Tag), 'tag'), - (r'(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)', - bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text, - Punctuation)), + (r"(<)(\s*)([\w:.-]+)", bygroups(Punctuation, Text, Name.Tag), "tag"), + ( + r"(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)", + bygroups( + Punctuation, Text, Punctuation, Text, Name.Tag, Text, Punctuation + ), + ), ], - 'tag': [ - (r'\s+', Text), - (r'([\w:-]+\s*)(=)(\s*)', bygroups(Name.Attribute, Operator, Text), - 'attr'), - (r'[\w:-]+', Name.Attribute), - (r'(/?)(\s*)(>)', bygroups(Punctuation, Text, Punctuation), '#pop'), + "tag": [ + (r"\s+", Text), + (r"([\w:-]+\s*)(=)(\s*)", bygroups(Name.Attribute, Operator, Text), "attr"), + (r"[\w:-]+", Name.Attribute), + (r"(/?)(\s*)(>)", bygroups(Punctuation, Text, Punctuation), "#pop"), ], - 'script-content': [ - (r'(<)(\s*)(/)(\s*)(script)(\s*)(>)', - bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text, - Punctuation), '#pop'), - (r'.+?(?=<\s*/\s*script\s*>)', using(JavascriptLexer)), + "script-content": [ + ( + r"(<)(\s*)(/)(\s*)(script)(\s*)(>)", + bygroups( + Punctuation, Text, Punctuation, Text, Name.Tag, Text, Punctuation + ), + "#pop", + ), + (r".+?(?=<\s*/\s*script\s*>)", using(JavascriptLexer)), # fallback cases for when there is no closing script tag # first look for newline and then go back into root state # if that fails just read the rest of the file # this is similar to the error handling logic in lexer.py - (r'.+?\n', using(JavascriptLexer), '#pop'), - (r'.+', using(JavascriptLexer), '#pop'), + (r".+?\n", using(JavascriptLexer), "#pop"), + (r".+", using(JavascriptLexer), "#pop"), ], - 'style-content': [ - (r'(<)(\s*)(/)(\s*)(style)(\s*)(>)', - bygroups(Punctuation, Text, Punctuation, Text, Name.Tag, Text, - Punctuation),'#pop'), - (r'.+?(?=<\s*/\s*style\s*>)', using(CssLexer)), + "style-content": [ + ( + r"(<)(\s*)(/)(\s*)(style)(\s*)(>)", + bygroups( + Punctuation, Text, Punctuation, Text, Name.Tag, Text, Punctuation + ), + "#pop", + ), + (r".+?(?=<\s*/\s*style\s*>)", using(CssLexer)), # fallback cases for when there is no closing style tag # first look for newline and then go back into root state # if that fails just read the rest of the file # this is similar to the error handling logic in lexer.py - (r'.+?\n', using(CssLexer), '#pop'), - (r'.+', using(CssLexer), '#pop'), + (r".+?\n", using(CssLexer), "#pop"), + (r".+", using(CssLexer), "#pop"), ], - 'attr': [ - ('".*?"', String, '#pop'), - ("'.*?'", String, '#pop'), - (r'[^\s>]+', String, '#pop'), + "attr": [ + ('".*?"', String, "#pop"), + ("'.*?'", String, "#pop"), + (r"[^\s>]+", String, "#pop"), ], } @@ -111,84 +149,76 @@ class DtdLexer(RegexLexer): flags = re.MULTILINE | re.DOTALL - name = 'DTD' - aliases = ['dtd'] - filenames = ['*.dtd'] - mimetypes = ['application/xml-dtd'] - url = 'https://en.wikipedia.org/wiki/Document_type_definition' - version_added = '1.5' + name = "DTD" + aliases = ["dtd"] + filenames = ["*.dtd"] + mimetypes = ["application/xml-dtd"] + url = "https://en.wikipedia.org/wiki/Document_type_definition" + version_added = "1.5" tokens = { - 'root': [ - include('common'), - - (r'(\s]+)', - bygroups(Keyword, Text, Name.Tag)), - (r'PUBLIC|SYSTEM', Keyword.Constant), - (r'[\[\]>]', Keyword), + "root": [ + include("common"), + (r"(\s]+)", bygroups(Keyword, Text, Name.Tag)), + (r"PUBLIC|SYSTEM", Keyword.Constant), + (r"[\[\]>]", Keyword), ], - - 'common': [ - (r'\s+', Text), - (r'(%|&)[^;]*;', Name.Entity), - ('', Comment, '#pop'), - ('-', Comment), + "comment": [ + ("[^-]+", Comment), + ("-->", Comment, "#pop"), + ("-", Comment), ], - - 'element': [ - include('common'), - (r'EMPTY|ANY|#PCDATA', Keyword.Constant), - (r'[^>\s|()?+*,]+', Name.Tag), - (r'>', Keyword, '#pop'), + "element": [ + include("common"), + (r"EMPTY|ANY|#PCDATA", Keyword.Constant), + (r"[^>\s|()?+*,]+", Name.Tag), + (r">", Keyword, "#pop"), ], - - 'attlist': [ - include('common'), - (r'CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION', - Keyword.Constant), - (r'#REQUIRED|#IMPLIED|#FIXED', Keyword.Constant), - (r'xml:space|xml:lang', Keyword.Reserved), - (r'[^>\s|()?+*,]+', Name.Attribute), - (r'>', Keyword, '#pop'), + "attlist": [ + include("common"), + ( + r"CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION", + Keyword.Constant, + ), + (r"#REQUIRED|#IMPLIED|#FIXED", Keyword.Constant), + (r"xml:space|xml:lang", Keyword.Reserved), + (r"[^>\s|()?+*,]+", Name.Attribute), + (r">", Keyword, "#pop"), ], - - 'entity': [ - include('common'), - (r'SYSTEM|PUBLIC|NDATA', Keyword.Constant), - (r'[^>\s|()?+*,]+', Name.Entity), - (r'>', Keyword, '#pop'), + "entity": [ + include("common"), + (r"SYSTEM|PUBLIC|NDATA", Keyword.Constant), + (r"[^>\s|()?+*,]+", Name.Entity), + (r">", Keyword, "#pop"), ], - - 'notation': [ - include('common'), - (r'SYSTEM|PUBLIC', Keyword.Constant), - (r'[^>\s|()?+*,]+', Name.Attribute), - (r'>', Keyword, '#pop'), + "notation": [ + include("common"), + (r"SYSTEM|PUBLIC", Keyword.Constant), + (r"[^>\s|()?+*,]+", Name.Attribute), + (r">", Keyword, "#pop"), ], } def analyse_text(text): - if not looks_like_xml(text) and \ - ('', Comment.Preproc), - (r'', Comment.Multiline), - (r'<\?.*?\?>', Comment.Preproc), - (']*>', Comment.Preproc), - (r'<\s*[\w:.-]+', Name.Tag, 'tag'), - (r'<\s*/\s*[\w:.-]+\s*>', Name.Tag), + "root": [ + (r"[^<&\s]+", Text), + (r"[^<&\S]+", Whitespace), + (r"&\S*?;", Name.Entity), + (r"\<\!\[CDATA\[.*?\]\]\>", Comment.Preproc), + (r"", Comment.Multiline), + (r"<\?.*?\?>", Comment.Preproc), + ("]*>", Comment.Preproc), + (r"<\s*[\w:.-]+", Name.Tag, "tag"), + (r"<\s*/\s*[\w:.-]+\s*>", Name.Tag), ], - 'tag': [ - (r'\s+', Whitespace), - (r'[\w.:-]+\s*=', Name.Attribute, 'attr'), - (r'/?\s*>', Name.Tag, '#pop'), + "tag": [ + (r"\s+", Whitespace), + (r"[\w.:-]+\s*=", Name.Attribute, "attr"), + (r"/?\s*>", Name.Tag, "#pop"), ], - 'attr': [ - (r'\s+', Whitespace), - ('".*?"', String, '#pop'), - ("'.*?'", String, '#pop'), - (r'[^\s>]+', String, '#pop'), + "attr": [ + (r"\s+", Whitespace), + ('".*?"', String, "#pop"), + ("'.*?'", String, "#pop"), + (r"[^\s>]+", String, "#pop"), ], } @@ -243,27 +277,54 @@ class XsltLexer(XmlLexer): A lexer for XSLT. """ - name = 'XSLT' - aliases = ['xslt'] - filenames = ['*.xsl', '*.xslt', '*.xpl'] # xpl is XProc - mimetypes = ['application/xsl+xml', 'application/xslt+xml'] - url = 'https://www.w3.org/TR/xslt-30' - version_added = '0.10' + name = "XSLT" + aliases = ["xslt"] + filenames = ["*.xsl", "*.xslt", "*.xpl"] # xpl is XProc + mimetypes = ["application/xsl+xml", "application/xslt+xml"] + url = "https://www.w3.org/TR/xslt-30" + version_added = "0.10" EXTRA_KEYWORDS = { - 'apply-imports', 'apply-templates', 'attribute', - 'attribute-set', 'call-template', 'choose', 'comment', - 'copy', 'copy-of', 'decimal-format', 'element', 'fallback', - 'for-each', 'if', 'import', 'include', 'key', 'message', - 'namespace-alias', 'number', 'otherwise', 'output', 'param', - 'preserve-space', 'processing-instruction', 'sort', - 'strip-space', 'stylesheet', 'template', 'text', 'transform', - 'value-of', 'variable', 'when', 'with-param' + "apply-imports", + "apply-templates", + "attribute", + "attribute-set", + "call-template", + "choose", + "comment", + "copy", + "copy-of", + "decimal-format", + "element", + "fallback", + "for-each", + "if", + "import", + "include", + "key", + "message", + "namespace-alias", + "number", + "otherwise", + "output", + "param", + "preserve-space", + "processing-instruction", + "sort", + "strip-space", + "stylesheet", + "template", + "text", + "transform", + "value-of", + "variable", + "when", + "with-param", } def get_tokens_unprocessed(self, text): for index, token, value in XmlLexer.get_tokens_unprocessed(self, text): - m = re.match(']*)/?>?', value) + m = re.match("]*)/?>?", value) if token is Name.Tag and m and m.group(1) in self.EXTRA_KEYWORDS: yield index, Keyword, value @@ -271,7 +332,7 @@ class XsltLexer(XmlLexer): yield index, token, value def analyse_text(text): - if looks_like_xml(text) and ']{1,2}(?=[ \t=])', Punctuation), - include('eval-or-plain'), + "tag": [ + include("css"), + (r"\{(,\n|" + _dot + r")*?\}", using(RubyLexer)), + (r"\[" + _dot + r"*?\]", using(RubyLexer)), + (r"\(", Text, "html-attributes"), + (r"/[ \t]*\n", Punctuation, "#pop:2"), + (r"[<>]{1,2}(?=[ \t=])", Punctuation), + include("eval-or-plain"), ], - - 'plain': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(RubyLexer), String.Interpol)), - (r'\n', Text, 'root'), + "plain": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Text), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(RubyLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], - - 'html-attributes': [ - (r'\s+', Text), - (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'), - (r'[\w:-]+', Name.Attribute), - (r'\)', Text, '#pop'), + "html-attributes": [ + (r"\s+", Text), + (r"[\w:-]+[ \t]*=", Name.Attribute, "html-attribute-value"), + (r"[\w:-]+", Name.Attribute), + (r"\)", Text, "#pop"), ], - - 'html-attribute-value': [ - (r'[ \t]+', Text), - (r'\w+', Name.Variable, '#pop'), - (r'@\w+', Name.Variable.Instance, '#pop'), - (r'\$\w+', Name.Variable.Global, '#pop'), - (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'), - (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'), + "html-attribute-value": [ + (r"[ \t]+", Text), + (r"\w+", Name.Variable, "#pop"), + (r"@\w+", Name.Variable.Instance, "#pop"), + (r"\$\w+", Name.Variable.Global, "#pop"), + (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, "#pop"), + (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, "#pop"), ], - - 'html-comment-block': [ - (_dot + '+', Comment), - (r'\n', Text, 'root'), + "html-comment-block": [ + (_dot + "+", Comment), + (r"\n", Text, "root"), ], - - 'haml-comment-block': [ - (_dot + '+', Comment.Preproc), - (r'\n', Text, 'root'), + "haml-comment-block": [ + (_dot + "+", Comment.Preproc), + (r"\n", Text, "root"), ], - - 'filter-block': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(RubyLexer), String.Interpol)), - (r'\n', Text, 'root'), + "filter-block": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Name.Decorator), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(RubyLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], } @@ -391,109 +461,120 @@ class ScamlLexer(ExtendedRegexLexer): For Scaml markup. Scaml is Haml for Scala. """ - name = 'Scaml' - aliases = ['scaml'] - filenames = ['*.scaml'] - mimetypes = ['text/x-scaml'] - url = 'https://scalate.github.io/scalate/' - version_added = '1.4' + name = "Scaml" + aliases = ["scaml"] + filenames = ["*.scaml"] + mimetypes = ["text/x-scaml"] + url = "https://scalate.github.io/scalate/" + version_added = "1.4" flags = re.IGNORECASE # Scaml does not yet support the " |\n" notation to # wrap long lines. Once it does, use the custom faux # dot instead. # _dot = r'(?: \|\n(?=.* \|)|.)' - _dot = r'.' + _dot = r"." tokens = { - 'root': [ - (r'[ \t]*\n', Text), - (r'[ \t]*', _indentation), + "root": [ + (r"[ \t]*\n", Text), + (r"[ \t]*", _indentation), ], - - 'css': [ - (r'\.[\w:-]+', Name.Class, 'tag'), - (r'\#[\w:-]+', Name.Function, 'tag'), + "css": [ + (r"\.[\w:-]+", Name.Class, "tag"), + (r"\#[\w:-]+", Name.Function, "tag"), ], - - 'eval-or-plain': [ - (r'[&!]?==', Punctuation, 'plain'), - (r'([&!]?[=~])(' + _dot + r'*\n)', - bygroups(Punctuation, using(ScalaLexer)), - 'root'), - default('plain'), + "eval-or-plain": [ + (r"[&!]?==", Punctuation, "plain"), + ( + r"([&!]?[=~])(" + _dot + r"*\n)", + bygroups(Punctuation, using(ScalaLexer)), + "root", + ), + default("plain"), ], - - 'content': [ - include('css'), - (r'%[\w:-]+', Name.Tag, 'tag'), - (r'!!!' + _dot + r'*\n', Name.Namespace, '#pop'), - (r'(/)(\[' + _dot + r'*?\])(' + _dot + r'*\n)', - bygroups(Comment, Comment.Special, Comment), - '#pop'), - (r'/' + _dot + r'*\n', _starts_block(Comment, 'html-comment-block'), - '#pop'), - (r'-#' + _dot + r'*\n', _starts_block(Comment.Preproc, - 'scaml-comment-block'), '#pop'), - (r'(-@\s*)(import)?(' + _dot + r'*\n)', - bygroups(Punctuation, Keyword, using(ScalaLexer)), - '#pop'), - (r'(-)(' + _dot + r'*\n)', - bygroups(Punctuation, using(ScalaLexer)), - '#pop'), - (r':' + _dot + r'*\n', _starts_block(Name.Decorator, 'filter-block'), - '#pop'), - include('eval-or-plain'), + "content": [ + include("css"), + (r"%[\w:-]+", Name.Tag, "tag"), + (r"!!!" + _dot + r"*\n", Name.Namespace, "#pop"), + ( + r"(/)(\[" + _dot + r"*?\])(" + _dot + r"*\n)", + bygroups(Comment, Comment.Special, Comment), + "#pop", + ), + ( + r"/" + _dot + r"*\n", + _starts_block(Comment, "html-comment-block"), + "#pop", + ), + ( + r"-#" + _dot + r"*\n", + _starts_block(Comment.Preproc, "scaml-comment-block"), + "#pop", + ), + ( + r"(-@\s*)(import)?(" + _dot + r"*\n)", + bygroups(Punctuation, Keyword, using(ScalaLexer)), + "#pop", + ), + ( + r"(-)(" + _dot + r"*\n)", + bygroups(Punctuation, using(ScalaLexer)), + "#pop", + ), + ( + r":" + _dot + r"*\n", + _starts_block(Name.Decorator, "filter-block"), + "#pop", + ), + include("eval-or-plain"), ], - - 'tag': [ - include('css'), - (r'\{(,\n|' + _dot + r')*?\}', using(ScalaLexer)), - (r'\[' + _dot + r'*?\]', using(ScalaLexer)), - (r'\(', Text, 'html-attributes'), - (r'/[ \t]*\n', Punctuation, '#pop:2'), - (r'[<>]{1,2}(?=[ \t=])', Punctuation), - include('eval-or-plain'), + "tag": [ + include("css"), + (r"\{(,\n|" + _dot + r")*?\}", using(ScalaLexer)), + (r"\[" + _dot + r"*?\]", using(ScalaLexer)), + (r"\(", Text, "html-attributes"), + (r"/[ \t]*\n", Punctuation, "#pop:2"), + (r"[<>]{1,2}(?=[ \t=])", Punctuation), + include("eval-or-plain"), ], - - 'plain': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(ScalaLexer), String.Interpol)), - (r'\n', Text, 'root'), + "plain": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Text), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(ScalaLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], - - 'html-attributes': [ - (r'\s+', Text), - (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'), - (r'[\w:-]+', Name.Attribute), - (r'\)', Text, '#pop'), + "html-attributes": [ + (r"\s+", Text), + (r"[\w:-]+[ \t]*=", Name.Attribute, "html-attribute-value"), + (r"[\w:-]+", Name.Attribute), + (r"\)", Text, "#pop"), ], - - 'html-attribute-value': [ - (r'[ \t]+', Text), - (r'\w+', Name.Variable, '#pop'), - (r'@\w+', Name.Variable.Instance, '#pop'), - (r'\$\w+', Name.Variable.Global, '#pop'), - (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'), - (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'), + "html-attribute-value": [ + (r"[ \t]+", Text), + (r"\w+", Name.Variable, "#pop"), + (r"@\w+", Name.Variable.Instance, "#pop"), + (r"\$\w+", Name.Variable.Global, "#pop"), + (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, "#pop"), + (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, "#pop"), ], - - 'html-comment-block': [ - (_dot + '+', Comment), - (r'\n', Text, 'root'), + "html-comment-block": [ + (_dot + "+", Comment), + (r"\n", Text, "root"), ], - - 'scaml-comment-block': [ - (_dot + '+', Comment.Preproc), - (r'\n', Text, 'root'), + "scaml-comment-block": [ + (_dot + "+", Comment.Preproc), + (r"\n", Text, "root"), ], - - 'filter-block': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(ScalaLexer), String.Interpol)), - (r'\n', Text, 'root'), + "filter-block": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Name.Decorator), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(ScalaLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], } @@ -505,106 +586,120 @@ class PugLexer(ExtendedRegexLexer): http://scalate.fusesource.org/documentation/scaml-reference.html """ - name = 'Pug' - aliases = ['pug', 'jade'] - filenames = ['*.pug', '*.jade'] - mimetypes = ['text/x-pug', 'text/x-jade'] - url = 'https://pugjs.org' - version_added = '1.4' + name = "Pug" + aliases = ["pug", "jade"] + filenames = ["*.pug", "*.jade"] + mimetypes = ["text/x-pug", "text/x-jade"] + url = "https://pugjs.org" + version_added = "1.4" flags = re.IGNORECASE - _dot = r'.' + _dot = r"." tokens = { - 'root': [ - (r'[ \t]*\n', Text), - (r'[ \t]*', _indentation), + "root": [ + (r"[ \t]*\n", Text), + (r"[ \t]*", _indentation), ], - - 'css': [ - (r'\.[\w:-]+', Name.Class, 'tag'), - (r'\#[\w:-]+', Name.Function, 'tag'), + "css": [ + (r"\.[\w:-]+", Name.Class, "tag"), + (r"\#[\w:-]+", Name.Function, "tag"), ], - - 'eval-or-plain': [ - (r'[&!]?==', Punctuation, 'plain'), - (r'([&!]?[=~])(' + _dot + r'*\n)', - bygroups(Punctuation, using(ScalaLexer)), 'root'), - default('plain'), + "eval-or-plain": [ + (r"[&!]?==", Punctuation, "plain"), + ( + r"([&!]?[=~])(" + _dot + r"*\n)", + bygroups(Punctuation, using(ScalaLexer)), + "root", + ), + default("plain"), ], - - 'content': [ - include('css'), - (r'!!!' + _dot + r'*\n', Name.Namespace, '#pop'), - (r'(/)(\[' + _dot + r'*?\])(' + _dot + r'*\n)', - bygroups(Comment, Comment.Special, Comment), - '#pop'), - (r'/' + _dot + r'*\n', _starts_block(Comment, 'html-comment-block'), - '#pop'), - (r'-#' + _dot + r'*\n', _starts_block(Comment.Preproc, - 'scaml-comment-block'), '#pop'), - (r'(-@\s*)(import)?(' + _dot + r'*\n)', - bygroups(Punctuation, Keyword, using(ScalaLexer)), - '#pop'), - (r'(-)(' + _dot + r'*\n)', - bygroups(Punctuation, using(ScalaLexer)), - '#pop'), - (r':' + _dot + r'*\n', _starts_block(Name.Decorator, 'filter-block'), - '#pop'), - (r'[\w:-]+', Name.Tag, 'tag'), - (r'\|', Text, 'eval-or-plain'), + "content": [ + include("css"), + (r"!!!" + _dot + r"*\n", Name.Namespace, "#pop"), + ( + r"(/)(\[" + _dot + r"*?\])(" + _dot + r"*\n)", + bygroups(Comment, Comment.Special, Comment), + "#pop", + ), + ( + r"/" + _dot + r"*\n", + _starts_block(Comment, "html-comment-block"), + "#pop", + ), + ( + r"-#" + _dot + r"*\n", + _starts_block(Comment.Preproc, "scaml-comment-block"), + "#pop", + ), + ( + r"(-@\s*)(import)?(" + _dot + r"*\n)", + bygroups(Punctuation, Keyword, using(ScalaLexer)), + "#pop", + ), + ( + r"(-)(" + _dot + r"*\n)", + bygroups(Punctuation, using(ScalaLexer)), + "#pop", + ), + ( + r":" + _dot + r"*\n", + _starts_block(Name.Decorator, "filter-block"), + "#pop", + ), + (r"[\w:-]+", Name.Tag, "tag"), + (r"\|", Text, "eval-or-plain"), ], - - 'tag': [ - include('css'), - (r'\{(,\n|' + _dot + r')*?\}', using(ScalaLexer)), - (r'\[' + _dot + r'*?\]', using(ScalaLexer)), - (r'\(', Text, 'html-attributes'), - (r'/[ \t]*\n', Punctuation, '#pop:2'), - (r'[<>]{1,2}(?=[ \t=])', Punctuation), - include('eval-or-plain'), + "tag": [ + include("css"), + (r"\{(,\n|" + _dot + r")*?\}", using(ScalaLexer)), + (r"\[" + _dot + r"*?\]", using(ScalaLexer)), + (r"\(", Text, "html-attributes"), + (r"/[ \t]*\n", Punctuation, "#pop:2"), + (r"[<>]{1,2}(?=[ \t=])", Punctuation), + include("eval-or-plain"), ], - - 'plain': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Text), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(ScalaLexer), String.Interpol)), - (r'\n', Text, 'root'), + "plain": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Text), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(ScalaLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], - - 'html-attributes': [ - (r'\s+', Text), - (r'[\w:-]+[ \t]*=', Name.Attribute, 'html-attribute-value'), - (r'[\w:-]+', Name.Attribute), - (r'\)', Text, '#pop'), + "html-attributes": [ + (r"\s+", Text), + (r"[\w:-]+[ \t]*=", Name.Attribute, "html-attribute-value"), + (r"[\w:-]+", Name.Attribute), + (r"\)", Text, "#pop"), ], - - 'html-attribute-value': [ - (r'[ \t]+', Text), - (r'\w+', Name.Variable, '#pop'), - (r'@\w+', Name.Variable.Instance, '#pop'), - (r'\$\w+', Name.Variable.Global, '#pop'), - (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, '#pop'), - (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, '#pop'), + "html-attribute-value": [ + (r"[ \t]+", Text), + (r"\w+", Name.Variable, "#pop"), + (r"@\w+", Name.Variable.Instance, "#pop"), + (r"\$\w+", Name.Variable.Global, "#pop"), + (r"'(\\\\|\\[^\\]|[^'\\\n])*'", String, "#pop"), + (r'"(\\\\|\\[^\\]|[^"\\\n])*"', String, "#pop"), ], - - 'html-comment-block': [ - (_dot + '+', Comment), - (r'\n', Text, 'root'), + "html-comment-block": [ + (_dot + "+", Comment), + (r"\n", Text, "root"), ], - - 'scaml-comment-block': [ - (_dot + '+', Comment.Preproc), - (r'\n', Text, 'root'), + "scaml-comment-block": [ + (_dot + "+", Comment.Preproc), + (r"\n", Text, "root"), ], - - 'filter-block': [ - (r'([^#\n]|#[^{\n]|(\\\\)*\\#\{)+', Name.Decorator), - (r'(#\{)(' + _dot + r'*?)(\})', - bygroups(String.Interpol, using(ScalaLexer), String.Interpol)), - (r'\n', Text, 'root'), + "filter-block": [ + (r"([^#\n]|#[^{\n]|(\\\\)*\\#\{)+", Name.Decorator), + ( + r"(#\{)(" + _dot + r"*?)(\})", + bygroups(String.Interpol, using(ScalaLexer), String.Interpol), + ), + (r"\n", Text, "root"), ], } + + JadeLexer = PugLexer # compat @@ -613,58 +708,69 @@ class UrlEncodedLexer(RegexLexer): Lexer for urlencoded data """ - name = 'urlencoded' - aliases = ['urlencoded'] - mimetypes = ['application/x-www-form-urlencoded'] - url = 'https://en.wikipedia.org/wiki/Percent-encoding' - version_added = '2.16' + name = "urlencoded" + aliases = ["urlencoded"] + mimetypes = ["application/x-www-form-urlencoded"] + url = "https://en.wikipedia.org/wiki/Percent-encoding" + version_added = "2.16" tokens = { - 'root': [ - ('([^&=]*)(=)([^=&]*)(&?)', bygroups(Name.Tag, Operator, String, Punctuation)), + "root": [ + ( + "([^&=]*)(=)([^=&]*)(&?)", + bygroups(Name.Tag, Operator, String, Punctuation), + ), ], } - + class VueLexer(HtmlLexer): """ For Vue Single-File Component. """ - name = 'Vue' - url = 'https://vuejs.org/api/sfc-spec.html' - aliases = ['vue'] - filenames = ['*.vue'] + name = "Vue" + url = "https://vuejs.org/api/sfc-spec.html" + aliases = ["vue"] + filenames = ["*.vue"] mimetypes = [] - version_added = '2.19' + version_added = "2.19" flags = re.IGNORECASE | re.DOTALL tokens = { - 'root': [ - (r'(\{\{)(.*?)(\}\})', bygroups(Comment.Preproc, - using(JavascriptLexer), Comment.Preproc)), - ('[^<&{]+', Text), + "root": [ + ( + r"(\{\{)(.*?)(\}\})", + bygroups(Comment.Preproc, using(JavascriptLexer), Comment.Preproc), + ), + ("[^<&{]+", Text), inherit, ], - 'tag': [ - (r'\s+', Text), - (r'((?:[@:]|v-)(?:[.\w:-]|\[[^\]]*?\])+\s*)(=)(\s*)', - bygroups(using(this, state=['name']), Operator, Text), - 'attr-directive'), - (r'([\w:-]+\s*)(=)(\s*)', bygroups(Name.Attribute, Operator, Text), - 'attr'), - (r'[\w:-]+', Name.Attribute), - (r'(/?)(\s*)(>)', bygroups(Punctuation, Text, Punctuation), '#pop'), + "tag": [ + (r"\s+", Text), + ( + r"((?:[@:]|v-)(?:[.\w:-]|\[[^\]]*?\])+\s*)(=)(\s*)", + bygroups(using(this, state=["name"]), Operator, Text), + "attr-directive", + ), + (r"([\w:-]+\s*)(=)(\s*)", bygroups(Name.Attribute, Operator, Text), "attr"), + (r"[\w:-]+", Name.Attribute), + (r"(/?)(\s*)(>)", bygroups(Punctuation, Text, Punctuation), "#pop"), ], - 'name': [ - (r'[\w-]+', Name.Attribute), - (r'[:@.]', Punctuation), - (r'(\[)([^\]]*?)(\])', bygroups(Comment.Preproc, - using(JavascriptLexer), Comment.Preproc)), + "name": [ + (r"[\w-]+", Name.Attribute), + (r"[:@.]", Punctuation), + ( + r"(\[)([^\]]*?)(\])", + bygroups(Comment.Preproc, using(JavascriptLexer), Comment.Preproc), + ), ], - 'attr-directive': [ - (r'(["\'])(.*?)(\1)', bygroups(String, - using(JavascriptLexer), String), '#pop'), - (r'[^\s>]+', using(JavascriptLexer), '#pop'), + "attr-directive": [ + ( + r'(["\'])(.*?)(\1)', + bygroups(String, using(JavascriptLexer), String), + "#pop", + ), + (r"[^\s>]+", using(JavascriptLexer), "#pop"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/idl.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/idl.py index 21b8d31..9fd8a9b 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/idl.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/idl.py @@ -1,274 +1,971 @@ """ - pygments.lexers.idl - ~~~~~~~~~~~~~~~~~~~ +pygments.lexers.idl +~~~~~~~~~~~~~~~~~~~ - Lexers for IDL. +Lexers for IDL. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, words, bygroups -from pygments.token import Text, Comment, Operator, Keyword, Name, Number, \ - String, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + Number, + String, + Whitespace, +) -__all__ = ['IDLLexer'] +__all__ = ["IDLLexer"] class IDLLexer(RegexLexer): """ Pygments Lexer for IDL (Interactive Data Language). """ - name = 'IDL' - url = 'https://www.l3harrisgeospatial.com/Software-Technology/IDL' - aliases = ['idl'] - filenames = ['*.pro'] - mimetypes = ['text/idl'] - version_added = '1.6' + + name = "IDL" + url = "https://www.l3harrisgeospatial.com/Software-Technology/IDL" + aliases = ["idl"] + filenames = ["*.pro"] + mimetypes = ["text/idl"] + version_added = "1.6" flags = re.IGNORECASE | re.MULTILINE _RESERVED = ( - 'and', 'begin', 'break', 'case', 'common', 'compile_opt', - 'continue', 'do', 'else', 'end', 'endcase', 'endelse', - 'endfor', 'endforeach', 'endif', 'endrep', 'endswitch', - 'endwhile', 'eq', 'for', 'foreach', 'forward_function', - 'function', 'ge', 'goto', 'gt', 'if', 'inherits', 'le', - 'lt', 'mod', 'ne', 'not', 'of', 'on_ioerror', 'or', 'pro', - 'repeat', 'switch', 'then', 'until', 'while', 'xor') + "and", + "begin", + "break", + "case", + "common", + "compile_opt", + "continue", + "do", + "else", + "end", + "endcase", + "endelse", + "endfor", + "endforeach", + "endif", + "endrep", + "endswitch", + "endwhile", + "eq", + "for", + "foreach", + "forward_function", + "function", + "ge", + "goto", + "gt", + "if", + "inherits", + "le", + "lt", + "mod", + "ne", + "not", + "of", + "on_ioerror", + "or", + "pro", + "repeat", + "switch", + "then", + "until", + "while", + "xor", + ) """Reserved words from: http://www.exelisvis.com/docs/reswords.html""" _BUILTIN_LIB = ( - 'abs', 'acos', 'adapt_hist_equal', 'alog', 'alog10', - 'amoeba', 'annotate', 'app_user_dir', 'app_user_dir_query', - 'arg_present', 'array_equal', 'array_indices', 'arrow', - 'ascii_template', 'asin', 'assoc', 'atan', 'axis', - 'a_correlate', 'bandpass_filter', 'bandreject_filter', - 'barplot', 'bar_plot', 'beseli', 'beselj', 'beselk', - 'besely', 'beta', 'bilinear', 'binary_template', 'bindgen', - 'binomial', 'bin_date', 'bit_ffs', 'bit_population', - 'blas_axpy', 'blk_con', 'box_cursor', 'breakpoint', - 'broyden', 'butterworth', 'bytarr', 'byte', 'byteorder', - 'bytscl', 'caldat', 'calendar', 'call_external', - 'call_function', 'call_method', 'call_procedure', 'canny', - 'catch', 'cd', r'cdf_\w*', 'ceil', 'chebyshev', - 'check_math', - 'chisqr_cvf', 'chisqr_pdf', 'choldc', 'cholsol', 'cindgen', - 'cir_3pnt', 'close', 'cluster', 'cluster_tree', 'clust_wts', - 'cmyk_convert', 'colorbar', 'colorize_sample', - 'colormap_applicable', 'colormap_gradient', - 'colormap_rotation', 'colortable', 'color_convert', - 'color_exchange', 'color_quan', 'color_range_map', 'comfit', - 'command_line_args', 'complex', 'complexarr', 'complexround', - 'compute_mesh_normals', 'cond', 'congrid', 'conj', - 'constrained_min', 'contour', 'convert_coord', 'convol', - 'convol_fft', 'coord2to3', 'copy_lun', 'correlate', 'cos', - 'cosh', 'cpu', 'cramer', 'create_cursor', 'create_struct', - 'create_view', 'crossp', 'crvlength', 'cti_test', - 'ct_luminance', 'cursor', 'curvefit', 'cvttobm', 'cv_coord', - 'cw_animate', 'cw_animate_getp', 'cw_animate_load', - 'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index', - 'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', - 'cw_form', 'cw_fslider', 'cw_light_editor', - 'cw_light_editor_get', 'cw_light_editor_set', 'cw_orient', - 'cw_palette_editor', 'cw_palette_editor_get', - 'cw_palette_editor_set', 'cw_pdmenu', 'cw_rgbslider', - 'cw_tmpl', 'cw_zoom', 'c_correlate', 'dblarr', 'db_exists', - 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key', - 'define_msgblk', 'define_msgblk_from_file', 'defroi', - 'defsysv', 'delvar', 'dendrogram', 'dendro_plot', 'deriv', - 'derivsig', 'determ', 'device', 'dfpmin', 'diag_matrix', - 'dialog_dbconnect', 'dialog_message', 'dialog_pickfile', - 'dialog_printersetup', 'dialog_printjob', - 'dialog_read_image', 'dialog_write_image', 'digital_filter', - 'dilate', 'dindgen', 'dissolve', 'dist', 'distance_measure', - 'dlm_load', 'dlm_register', 'doc_library', 'double', - 'draw_roi', 'edge_dog', 'efont', 'eigenql', 'eigenvec', - 'ellipse', 'elmhes', 'emboss', 'empty', 'enable_sysrtn', - 'eof', r'eos_\w*', 'erase', 'erf', 'erfc', 'erfcx', - 'erode', 'errorplot', 'errplot', 'estimator_filter', - 'execute', 'exit', 'exp', 'expand', 'expand_path', 'expint', - 'extrac', 'extract_slice', 'factorial', 'fft', 'filepath', - 'file_basename', 'file_chmod', 'file_copy', 'file_delete', - 'file_dirname', 'file_expand_path', 'file_info', - 'file_lines', 'file_link', 'file_mkdir', 'file_move', - 'file_poll_input', 'file_readlink', 'file_same', - 'file_search', 'file_test', 'file_which', 'findgen', - 'finite', 'fix', 'flick', 'float', 'floor', 'flow3', - 'fltarr', 'flush', 'format_axis_values', 'free_lun', - 'fstat', 'fulstr', 'funct', 'fv_test', 'fx_root', - 'fz_roots', 'f_cvf', 'f_pdf', 'gamma', 'gamma_ct', - 'gauss2dfit', 'gaussfit', 'gaussian_function', 'gaussint', - 'gauss_cvf', 'gauss_pdf', 'gauss_smooth', 'getenv', - 'getwindows', 'get_drive_list', 'get_dxf_objects', - 'get_kbrd', 'get_login_info', 'get_lun', 'get_screen_size', - 'greg2jul', r'grib_\w*', 'grid3', 'griddata', - 'grid_input', 'grid_tps', 'gs_iter', - r'h5[adfgirst]_\w*', 'h5_browser', 'h5_close', - 'h5_create', 'h5_get_libversion', 'h5_open', 'h5_parse', - 'hanning', 'hash', r'hdf_\w*', 'heap_free', - 'heap_gc', 'heap_nosave', 'heap_refcount', 'heap_save', - 'help', 'hilbert', 'histogram', 'hist_2d', 'hist_equal', - 'hls', 'hough', 'hqr', 'hsv', 'h_eq_ct', 'h_eq_int', - 'i18n_multibytetoutf8', 'i18n_multibytetowidechar', - 'i18n_utf8tomultibyte', 'i18n_widechartomultibyte', - 'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity', - 'idlexbr_assistant', 'idlitsys_createtool', 'idl_base64', - 'idl_validname', 'iellipse', 'igamma', 'igetcurrent', - 'igetdata', 'igetid', 'igetproperty', 'iimage', 'image', - 'image_cont', 'image_statistics', 'imaginary', 'imap', - 'indgen', 'intarr', 'interpol', 'interpolate', - 'interval_volume', 'int_2d', 'int_3d', 'int_tabulated', - 'invert', 'ioctl', 'iopen', 'iplot', 'ipolygon', - 'ipolyline', 'iputdata', 'iregister', 'ireset', 'iresolve', - 'irotate', 'ir_filter', 'isa', 'isave', 'iscale', - 'isetcurrent', 'isetproperty', 'ishft', 'isocontour', - 'isosurface', 'isurface', 'itext', 'itranslate', 'ivector', - 'ivolume', 'izoom', 'i_beta', 'journal', 'json_parse', - 'json_serialize', 'jul2greg', 'julday', 'keyword_set', - 'krig2d', 'kurtosis', 'kw_test', 'l64indgen', 'label_date', - 'label_region', 'ladfit', 'laguerre', 'laplacian', - 'la_choldc', 'la_cholmprove', 'la_cholsol', 'la_determ', - 'la_eigenproblem', 'la_eigenql', 'la_eigenvec', 'la_elmhes', - 'la_gm_linear_model', 'la_hqr', 'la_invert', - 'la_least_squares', 'la_least_square_equality', - 'la_linear_equation', 'la_ludc', 'la_lumprove', 'la_lusol', - 'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', - 'la_trired', 'la_trisol', 'least_squares_filter', 'leefilt', - 'legend', 'legendre', 'linbcg', 'lindgen', 'linfit', - 'linkimage', 'list', 'll_arc_distance', 'lmfit', 'lmgr', - 'lngamma', 'lnp_test', 'loadct', 'locale_get', - 'logical_and', 'logical_or', 'logical_true', 'lon64arr', - 'lonarr', 'long', 'long64', 'lsode', 'ludc', 'lumprove', - 'lusol', 'lu_complex', 'machar', 'make_array', 'make_dll', - 'make_rt', 'map', 'mapcontinents', 'mapgrid', 'map_2points', - 'map_continents', 'map_grid', 'map_image', 'map_patch', - 'map_proj_forward', 'map_proj_image', 'map_proj_info', - 'map_proj_init', 'map_proj_inverse', 'map_set', - 'matrix_multiply', 'matrix_power', 'max', 'md_test', - 'mean', 'meanabsdev', 'mean_filter', 'median', 'memory', - 'mesh_clip', 'mesh_decimate', 'mesh_issolid', 'mesh_merge', - 'mesh_numtriangles', 'mesh_obj', 'mesh_smooth', - 'mesh_surfacearea', 'mesh_validate', 'mesh_volume', - 'message', 'min', 'min_curve_surf', 'mk_html_help', - 'modifyct', 'moment', 'morph_close', 'morph_distance', - 'morph_gradient', 'morph_hitormiss', 'morph_open', - 'morph_thin', 'morph_tophat', 'multi', 'm_correlate', - r'ncdf_\w*', 'newton', 'noise_hurl', 'noise_pick', - 'noise_scatter', 'noise_slur', 'norm', 'n_elements', - 'n_params', 'n_tags', 'objarr', 'obj_class', 'obj_destroy', - 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid', - 'online_help', 'on_error', 'open', 'oplot', 'oploterr', - 'parse_url', 'particle_trace', 'path_cache', 'path_sep', - 'pcomp', 'plot', 'plot3d', 'ploterr', 'plots', 'plot_3dbox', - 'plot_field', 'pnt_line', 'point_lun', 'polarplot', - 'polar_contour', 'polar_surface', 'poly', 'polyfill', - 'polyfillv', 'polygon', 'polyline', 'polyshade', 'polywarp', - 'poly_2d', 'poly_area', 'poly_fit', 'popd', 'powell', - 'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes', - 'print', 'printd', 'product', 'profile', 'profiler', - 'profiles', 'project_vol', 'psafm', 'pseudo', - 'ps_show_fonts', 'ptrarr', 'ptr_free', 'ptr_new', - 'ptr_valid', 'pushd', 'p_correlate', 'qgrid3', 'qhull', - 'qromb', 'qromo', 'qsimp', 'query_ascii', 'query_bmp', - 'query_csv', 'query_dicom', 'query_gif', 'query_image', - 'query_jpeg', 'query_jpeg2000', 'query_mrsid', 'query_pict', - 'query_png', 'query_ppm', 'query_srf', 'query_tiff', - 'query_wav', 'radon', 'randomn', 'randomu', 'ranks', - 'rdpix', 'read', 'reads', 'readu', 'read_ascii', - 'read_binary', 'read_bmp', 'read_csv', 'read_dicom', - 'read_gif', 'read_image', 'read_interfile', 'read_jpeg', - 'read_jpeg2000', 'read_mrsid', 'read_pict', 'read_png', - 'read_ppm', 'read_spr', 'read_srf', 'read_sylk', - 'read_tiff', 'read_wav', 'read_wave', 'read_x11_bitmap', - 'read_xwd', 'real_part', 'rebin', 'recall_commands', - 'recon3', 'reduce_colors', 'reform', 'region_grow', - 'register_cursor', 'regress', 'replicate', - 'replicate_inplace', 'resolve_all', 'resolve_routine', - 'restore', 'retall', 'return', 'reverse', 'rk4', 'roberts', - 'rot', 'rotate', 'round', 'routine_filepath', - 'routine_info', 'rs_test', 'r_correlate', 'r_test', - 'save', 'savgol', 'scale3', 'scale3d', 'scope_level', - 'scope_traceback', 'scope_varfetch', 'scope_varname', - 'search2d', 'search3d', 'sem_create', 'sem_delete', - 'sem_lock', 'sem_release', 'setenv', 'set_plot', - 'set_shading', 'sfit', 'shade_surf', 'shade_surf_irr', - 'shade_volume', 'shift', 'shift_diff', 'shmdebug', 'shmmap', - 'shmunmap', 'shmvar', 'show3', 'showfont', 'simplex', 'sin', - 'sindgen', 'sinh', 'size', 'skewness', 'skip_lun', - 'slicer3', 'slide_image', 'smooth', 'sobel', 'socket', - 'sort', 'spawn', 'spher_harm', 'sph_4pnt', 'sph_scat', - 'spline', 'spline_p', 'spl_init', 'spl_interp', 'sprsab', - 'sprsax', 'sprsin', 'sprstp', 'sqrt', 'standardize', - 'stddev', 'stop', 'strarr', 'strcmp', 'strcompress', - 'streamline', 'stregex', 'stretch', 'string', 'strjoin', - 'strlen', 'strlowcase', 'strmatch', 'strmessage', 'strmid', - 'strpos', 'strput', 'strsplit', 'strtrim', 'struct_assign', - 'struct_hide', 'strupcase', 'surface', 'surfr', 'svdc', - 'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', - 'symbol', 'systime', 's_test', 't3d', 'tag_names', 'tan', - 'tanh', 'tek_color', 'temporary', 'tetra_clip', - 'tetra_surface', 'tetra_volume', 'text', 'thin', 'threed', - 'timegen', 'time_test2', 'tm_test', 'total', 'trace', - 'transpose', 'triangulate', 'trigrid', 'triql', 'trired', - 'trisol', 'tri_surf', 'truncate_lun', 'ts_coef', 'ts_diff', - 'ts_fcast', 'ts_smooth', 'tv', 'tvcrs', 'tvlct', 'tvrd', - 'tvscl', 'typename', 't_cvt', 't_pdf', 'uindgen', 'uint', - 'uintarr', 'ul64indgen', 'ulindgen', 'ulon64arr', 'ulonarr', - 'ulong', 'ulong64', 'uniq', 'unsharp_mask', 'usersym', - 'value_locate', 'variance', 'vector', 'vector_field', 'vel', - 'velovect', 'vert_t3d', 'voigt', 'voronoi', 'voxel_proj', - 'wait', 'warp_tri', 'watershed', 'wdelete', 'wf_draw', - 'where', 'widget_base', 'widget_button', 'widget_combobox', - 'widget_control', 'widget_displaycontextmen', 'widget_draw', - 'widget_droplist', 'widget_event', 'widget_info', - 'widget_label', 'widget_list', 'widget_propertysheet', - 'widget_slider', 'widget_tab', 'widget_table', - 'widget_text', 'widget_tree', 'widget_tree_move', - 'widget_window', 'wiener_filter', 'window', 'writeu', - 'write_bmp', 'write_csv', 'write_gif', 'write_image', - 'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', - 'write_png', 'write_ppm', 'write_spr', 'write_srf', - 'write_sylk', 'write_tiff', 'write_wav', 'write_wave', - 'wset', 'wshow', 'wtn', 'wv_applet', 'wv_cwt', - 'wv_cw_wavelet', 'wv_denoise', 'wv_dwt', 'wv_fn_coiflet', - 'wv_fn_daubechies', 'wv_fn_gaussian', 'wv_fn_haar', - 'wv_fn_morlet', 'wv_fn_paul', 'wv_fn_symlet', - 'wv_import_data', 'wv_import_wavelet', 'wv_plot3d_wps', - 'wv_plot_multires', 'wv_pwt', 'wv_tool_denoise', - 'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', - 'xinteranimate', 'xloadct', 'xmanager', 'xmng_tmpl', - 'xmtool', 'xobjview', 'xobjview_rotate', - 'xobjview_write_image', 'xpalette', 'xpcolor', 'xplot3d', - 'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit', - 'xvolume', 'xvolume_rotate', 'xvolume_write_image', - 'xyouts', 'zoom', 'zoom_24') + "abs", + "acos", + "adapt_hist_equal", + "alog", + "alog10", + "amoeba", + "annotate", + "app_user_dir", + "app_user_dir_query", + "arg_present", + "array_equal", + "array_indices", + "arrow", + "ascii_template", + "asin", + "assoc", + "atan", + "axis", + "a_correlate", + "bandpass_filter", + "bandreject_filter", + "barplot", + "bar_plot", + "beseli", + "beselj", + "beselk", + "besely", + "beta", + "bilinear", + "binary_template", + "bindgen", + "binomial", + "bin_date", + "bit_ffs", + "bit_population", + "blas_axpy", + "blk_con", + "box_cursor", + "breakpoint", + "broyden", + "butterworth", + "bytarr", + "byte", + "byteorder", + "bytscl", + "caldat", + "calendar", + "call_external", + "call_function", + "call_method", + "call_procedure", + "canny", + "catch", + "cd", + r"cdf_\w*", + "ceil", + "chebyshev", + "check_math", + "chisqr_cvf", + "chisqr_pdf", + "choldc", + "cholsol", + "cindgen", + "cir_3pnt", + "close", + "cluster", + "cluster_tree", + "clust_wts", + "cmyk_convert", + "colorbar", + "colorize_sample", + "colormap_applicable", + "colormap_gradient", + "colormap_rotation", + "colortable", + "color_convert", + "color_exchange", + "color_quan", + "color_range_map", + "comfit", + "command_line_args", + "complex", + "complexarr", + "complexround", + "compute_mesh_normals", + "cond", + "congrid", + "conj", + "constrained_min", + "contour", + "convert_coord", + "convol", + "convol_fft", + "coord2to3", + "copy_lun", + "correlate", + "cos", + "cosh", + "cpu", + "cramer", + "create_cursor", + "create_struct", + "create_view", + "crossp", + "crvlength", + "cti_test", + "ct_luminance", + "cursor", + "curvefit", + "cvttobm", + "cv_coord", + "cw_animate", + "cw_animate_getp", + "cw_animate_load", + "cw_animate_run", + "cw_arcball", + "cw_bgroup", + "cw_clr_index", + "cw_colorsel", + "cw_defroi", + "cw_field", + "cw_filesel", + "cw_form", + "cw_fslider", + "cw_light_editor", + "cw_light_editor_get", + "cw_light_editor_set", + "cw_orient", + "cw_palette_editor", + "cw_palette_editor_get", + "cw_palette_editor_set", + "cw_pdmenu", + "cw_rgbslider", + "cw_tmpl", + "cw_zoom", + "c_correlate", + "dblarr", + "db_exists", + "dcindgen", + "dcomplex", + "dcomplexarr", + "define_key", + "define_msgblk", + "define_msgblk_from_file", + "defroi", + "defsysv", + "delvar", + "dendrogram", + "dendro_plot", + "deriv", + "derivsig", + "determ", + "device", + "dfpmin", + "diag_matrix", + "dialog_dbconnect", + "dialog_message", + "dialog_pickfile", + "dialog_printersetup", + "dialog_printjob", + "dialog_read_image", + "dialog_write_image", + "digital_filter", + "dilate", + "dindgen", + "dissolve", + "dist", + "distance_measure", + "dlm_load", + "dlm_register", + "doc_library", + "double", + "draw_roi", + "edge_dog", + "efont", + "eigenql", + "eigenvec", + "ellipse", + "elmhes", + "emboss", + "empty", + "enable_sysrtn", + "eof", + r"eos_\w*", + "erase", + "erf", + "erfc", + "erfcx", + "erode", + "errorplot", + "errplot", + "estimator_filter", + "execute", + "exit", + "exp", + "expand", + "expand_path", + "expint", + "extrac", + "extract_slice", + "factorial", + "fft", + "filepath", + "file_basename", + "file_chmod", + "file_copy", + "file_delete", + "file_dirname", + "file_expand_path", + "file_info", + "file_lines", + "file_link", + "file_mkdir", + "file_move", + "file_poll_input", + "file_readlink", + "file_same", + "file_search", + "file_test", + "file_which", + "findgen", + "finite", + "fix", + "flick", + "float", + "floor", + "flow3", + "fltarr", + "flush", + "format_axis_values", + "free_lun", + "fstat", + "fulstr", + "funct", + "fv_test", + "fx_root", + "fz_roots", + "f_cvf", + "f_pdf", + "gamma", + "gamma_ct", + "gauss2dfit", + "gaussfit", + "gaussian_function", + "gaussint", + "gauss_cvf", + "gauss_pdf", + "gauss_smooth", + "getenv", + "getwindows", + "get_drive_list", + "get_dxf_objects", + "get_kbrd", + "get_login_info", + "get_lun", + "get_screen_size", + "greg2jul", + r"grib_\w*", + "grid3", + "griddata", + "grid_input", + "grid_tps", + "gs_iter", + r"h5[adfgirst]_\w*", + "h5_browser", + "h5_close", + "h5_create", + "h5_get_libversion", + "h5_open", + "h5_parse", + "hanning", + "hash", + r"hdf_\w*", + "heap_free", + "heap_gc", + "heap_nosave", + "heap_refcount", + "heap_save", + "help", + "hilbert", + "histogram", + "hist_2d", + "hist_equal", + "hls", + "hough", + "hqr", + "hsv", + "h_eq_ct", + "h_eq_int", + "i18n_multibytetoutf8", + "i18n_multibytetowidechar", + "i18n_utf8tomultibyte", + "i18n_widechartomultibyte", + "ibeta", + "icontour", + "iconvertcoord", + "idelete", + "identity", + "idlexbr_assistant", + "idlitsys_createtool", + "idl_base64", + "idl_validname", + "iellipse", + "igamma", + "igetcurrent", + "igetdata", + "igetid", + "igetproperty", + "iimage", + "image", + "image_cont", + "image_statistics", + "imaginary", + "imap", + "indgen", + "intarr", + "interpol", + "interpolate", + "interval_volume", + "int_2d", + "int_3d", + "int_tabulated", + "invert", + "ioctl", + "iopen", + "iplot", + "ipolygon", + "ipolyline", + "iputdata", + "iregister", + "ireset", + "iresolve", + "irotate", + "ir_filter", + "isa", + "isave", + "iscale", + "isetcurrent", + "isetproperty", + "ishft", + "isocontour", + "isosurface", + "isurface", + "itext", + "itranslate", + "ivector", + "ivolume", + "izoom", + "i_beta", + "journal", + "json_parse", + "json_serialize", + "jul2greg", + "julday", + "keyword_set", + "krig2d", + "kurtosis", + "kw_test", + "l64indgen", + "label_date", + "label_region", + "ladfit", + "laguerre", + "laplacian", + "la_choldc", + "la_cholmprove", + "la_cholsol", + "la_determ", + "la_eigenproblem", + "la_eigenql", + "la_eigenvec", + "la_elmhes", + "la_gm_linear_model", + "la_hqr", + "la_invert", + "la_least_squares", + "la_least_square_equality", + "la_linear_equation", + "la_ludc", + "la_lumprove", + "la_lusol", + "la_svd", + "la_tridc", + "la_trimprove", + "la_triql", + "la_trired", + "la_trisol", + "least_squares_filter", + "leefilt", + "legend", + "legendre", + "linbcg", + "lindgen", + "linfit", + "linkimage", + "list", + "ll_arc_distance", + "lmfit", + "lmgr", + "lngamma", + "lnp_test", + "loadct", + "locale_get", + "logical_and", + "logical_or", + "logical_true", + "lon64arr", + "lonarr", + "long", + "long64", + "lsode", + "ludc", + "lumprove", + "lusol", + "lu_complex", + "machar", + "make_array", + "make_dll", + "make_rt", + "map", + "mapcontinents", + "mapgrid", + "map_2points", + "map_continents", + "map_grid", + "map_image", + "map_patch", + "map_proj_forward", + "map_proj_image", + "map_proj_info", + "map_proj_init", + "map_proj_inverse", + "map_set", + "matrix_multiply", + "matrix_power", + "max", + "md_test", + "mean", + "meanabsdev", + "mean_filter", + "median", + "memory", + "mesh_clip", + "mesh_decimate", + "mesh_issolid", + "mesh_merge", + "mesh_numtriangles", + "mesh_obj", + "mesh_smooth", + "mesh_surfacearea", + "mesh_validate", + "mesh_volume", + "message", + "min", + "min_curve_surf", + "mk_html_help", + "modifyct", + "moment", + "morph_close", + "morph_distance", + "morph_gradient", + "morph_hitormiss", + "morph_open", + "morph_thin", + "morph_tophat", + "multi", + "m_correlate", + r"ncdf_\w*", + "newton", + "noise_hurl", + "noise_pick", + "noise_scatter", + "noise_slur", + "norm", + "n_elements", + "n_params", + "n_tags", + "objarr", + "obj_class", + "obj_destroy", + "obj_hasmethod", + "obj_isa", + "obj_new", + "obj_valid", + "online_help", + "on_error", + "open", + "oplot", + "oploterr", + "parse_url", + "particle_trace", + "path_cache", + "path_sep", + "pcomp", + "plot", + "plot3d", + "ploterr", + "plots", + "plot_3dbox", + "plot_field", + "pnt_line", + "point_lun", + "polarplot", + "polar_contour", + "polar_surface", + "poly", + "polyfill", + "polyfillv", + "polygon", + "polyline", + "polyshade", + "polywarp", + "poly_2d", + "poly_area", + "poly_fit", + "popd", + "powell", + "pref_commit", + "pref_get", + "pref_set", + "prewitt", + "primes", + "print", + "printd", + "product", + "profile", + "profiler", + "profiles", + "project_vol", + "psafm", + "pseudo", + "ps_show_fonts", + "ptrarr", + "ptr_free", + "ptr_new", + "ptr_valid", + "pushd", + "p_correlate", + "qgrid3", + "qhull", + "qromb", + "qromo", + "qsimp", + "query_ascii", + "query_bmp", + "query_csv", + "query_dicom", + "query_gif", + "query_image", + "query_jpeg", + "query_jpeg2000", + "query_mrsid", + "query_pict", + "query_png", + "query_ppm", + "query_srf", + "query_tiff", + "query_wav", + "radon", + "randomn", + "randomu", + "ranks", + "rdpix", + "read", + "reads", + "readu", + "read_ascii", + "read_binary", + "read_bmp", + "read_csv", + "read_dicom", + "read_gif", + "read_image", + "read_interfile", + "read_jpeg", + "read_jpeg2000", + "read_mrsid", + "read_pict", + "read_png", + "read_ppm", + "read_spr", + "read_srf", + "read_sylk", + "read_tiff", + "read_wav", + "read_wave", + "read_x11_bitmap", + "read_xwd", + "real_part", + "rebin", + "recall_commands", + "recon3", + "reduce_colors", + "reform", + "region_grow", + "register_cursor", + "regress", + "replicate", + "replicate_inplace", + "resolve_all", + "resolve_routine", + "restore", + "retall", + "return", + "reverse", + "rk4", + "roberts", + "rot", + "rotate", + "round", + "routine_filepath", + "routine_info", + "rs_test", + "r_correlate", + "r_test", + "save", + "savgol", + "scale3", + "scale3d", + "scope_level", + "scope_traceback", + "scope_varfetch", + "scope_varname", + "search2d", + "search3d", + "sem_create", + "sem_delete", + "sem_lock", + "sem_release", + "setenv", + "set_plot", + "set_shading", + "sfit", + "shade_surf", + "shade_surf_irr", + "shade_volume", + "shift", + "shift_diff", + "shmdebug", + "shmmap", + "shmunmap", + "shmvar", + "show3", + "showfont", + "simplex", + "sin", + "sindgen", + "sinh", + "size", + "skewness", + "skip_lun", + "slicer3", + "slide_image", + "smooth", + "sobel", + "socket", + "sort", + "spawn", + "spher_harm", + "sph_4pnt", + "sph_scat", + "spline", + "spline_p", + "spl_init", + "spl_interp", + "sprsab", + "sprsax", + "sprsin", + "sprstp", + "sqrt", + "standardize", + "stddev", + "stop", + "strarr", + "strcmp", + "strcompress", + "streamline", + "stregex", + "stretch", + "string", + "strjoin", + "strlen", + "strlowcase", + "strmatch", + "strmessage", + "strmid", + "strpos", + "strput", + "strsplit", + "strtrim", + "struct_assign", + "struct_hide", + "strupcase", + "surface", + "surfr", + "svdc", + "svdfit", + "svsol", + "swap_endian", + "swap_endian_inplace", + "symbol", + "systime", + "s_test", + "t3d", + "tag_names", + "tan", + "tanh", + "tek_color", + "temporary", + "tetra_clip", + "tetra_surface", + "tetra_volume", + "text", + "thin", + "threed", + "timegen", + "time_test2", + "tm_test", + "total", + "trace", + "transpose", + "triangulate", + "trigrid", + "triql", + "trired", + "trisol", + "tri_surf", + "truncate_lun", + "ts_coef", + "ts_diff", + "ts_fcast", + "ts_smooth", + "tv", + "tvcrs", + "tvlct", + "tvrd", + "tvscl", + "typename", + "t_cvt", + "t_pdf", + "uindgen", + "uint", + "uintarr", + "ul64indgen", + "ulindgen", + "ulon64arr", + "ulonarr", + "ulong", + "ulong64", + "uniq", + "unsharp_mask", + "usersym", + "value_locate", + "variance", + "vector", + "vector_field", + "vel", + "velovect", + "vert_t3d", + "voigt", + "voronoi", + "voxel_proj", + "wait", + "warp_tri", + "watershed", + "wdelete", + "wf_draw", + "where", + "widget_base", + "widget_button", + "widget_combobox", + "widget_control", + "widget_displaycontextmen", + "widget_draw", + "widget_droplist", + "widget_event", + "widget_info", + "widget_label", + "widget_list", + "widget_propertysheet", + "widget_slider", + "widget_tab", + "widget_table", + "widget_text", + "widget_tree", + "widget_tree_move", + "widget_window", + "wiener_filter", + "window", + "writeu", + "write_bmp", + "write_csv", + "write_gif", + "write_image", + "write_jpeg", + "write_jpeg2000", + "write_nrif", + "write_pict", + "write_png", + "write_ppm", + "write_spr", + "write_srf", + "write_sylk", + "write_tiff", + "write_wav", + "write_wave", + "wset", + "wshow", + "wtn", + "wv_applet", + "wv_cwt", + "wv_cw_wavelet", + "wv_denoise", + "wv_dwt", + "wv_fn_coiflet", + "wv_fn_daubechies", + "wv_fn_gaussian", + "wv_fn_haar", + "wv_fn_morlet", + "wv_fn_paul", + "wv_fn_symlet", + "wv_import_data", + "wv_import_wavelet", + "wv_plot3d_wps", + "wv_plot_multires", + "wv_pwt", + "wv_tool_denoise", + "xbm_edit", + "xdisplayfile", + "xdxf", + "xfont", + "xinteranimate", + "xloadct", + "xmanager", + "xmng_tmpl", + "xmtool", + "xobjview", + "xobjview_rotate", + "xobjview_write_image", + "xpalette", + "xpcolor", + "xplot3d", + "xregistered", + "xroi", + "xsq_test", + "xsurface", + "xvaredit", + "xvolume", + "xvolume_rotate", + "xvolume_write_image", + "xyouts", + "zoom", + "zoom_24", + ) """Functions from: http://www.exelisvis.com/docs/routines-1.html""" tokens = { - 'root': [ - (r'(^\s*)(;.*?)(\n)', bygroups(Whitespace, Comment.Single, - Whitespace)), - (words(_RESERVED, prefix=r'\b', suffix=r'\b'), Keyword), - (words(_BUILTIN_LIB, prefix=r'\b', suffix=r'\b'), Name.Builtin), - (r'\+=|-=|\^=|\*=|/=|#=|##=|<=|>=|=', Operator), - (r'\+\+|--|->|\+|-|##|#|\*|/|<|>|&&|\^|~|\|\|\?|:', Operator), - (r'\b(mod=|lt=|le=|eq=|ne=|ge=|gt=|not=|and=|or=|xor=)', Operator), - (r'\b(mod|lt|le|eq|ne|ge|gt|not|and|or|xor)\b', Operator), + "root": [ + (r"(^\s*)(;.*?)(\n)", bygroups(Whitespace, Comment.Single, Whitespace)), + (words(_RESERVED, prefix=r"\b", suffix=r"\b"), Keyword), + (words(_BUILTIN_LIB, prefix=r"\b", suffix=r"\b"), Name.Builtin), + (r"\+=|-=|\^=|\*=|/=|#=|##=|<=|>=|=", Operator), + (r"\+\+|--|->|\+|-|##|#|\*|/|<|>|&&|\^|~|\|\|\?|:", Operator), + (r"\b(mod=|lt=|le=|eq=|ne=|ge=|gt=|not=|and=|or=|xor=)", Operator), + (r"\b(mod|lt|le|eq|ne|ge|gt|not|and|or|xor)\b", Operator), (r'"[^\"]*"', String.Double), (r"'[^\']*'", String.Single), - (r'\b[+\-]?([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)(D|E)?([+\-]?[0-9]+)?\b', - Number.Float), - (r'\b\'[+\-]?[0-9A-F]+\'X(U?(S?|L{1,2})|B)\b', Number.Hex), - (r'\b\'[+\-]?[0-7]+\'O(U?(S?|L{1,2})|B)\b', Number.Oct), - (r'\b[+\-]?[0-9]+U?L{1,2}\b', Number.Integer.Long), - (r'\b[+\-]?[0-9]+U?S?\b', Number.Integer), - (r'\b[+\-]?[0-9]+B\b', Number), - (r'[ \t]+', Whitespace), - (r'\n', Whitespace), - (r'.', Text), + ( + r"\b[+\-]?([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)(D|E)?([+\-]?[0-9]+)?\b", + Number.Float, + ), + (r"\b\'[+\-]?[0-9A-F]+\'X(U?(S?|L{1,2})|B)\b", Number.Hex), + (r"\b\'[+\-]?[0-7]+\'O(U?(S?|L{1,2})|B)\b", Number.Oct), + (r"\b[+\-]?[0-9]+U?L{1,2}\b", Number.Integer.Long), + (r"\b[+\-]?[0-9]+U?S?\b", Number.Integer), + (r"\b[+\-]?[0-9]+B\b", Number), + (r"[ \t]+", Whitespace), + (r"\n", Whitespace), + (r".", Text), ] } @@ -276,9 +973,9 @@ class IDLLexer(RegexLexer): """endelse seems to be unique to IDL, endswitch is rare at least.""" result = 0 - if 'endelse' in text: + if "endelse" in text: result += 0.2 - if 'endswitch' in text: + if "endswitch" in text: result += 0.01 return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/igor.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/igor.py index 136c5b8..66fceec 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/igor.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/igor.py @@ -1,11 +1,11 @@ """ - pygments.lexers.igor - ~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.igor +~~~~~~~~~~~~~~~~~~~~ - Lexers for Igor Pro. +Lexers for Igor Pro. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re @@ -13,7 +13,7 @@ import re from pygments.lexer import RegexLexer, words from pygments.token import Text, Comment, Keyword, Name, String, Whitespace -__all__ = ['IgorLexer'] +__all__ = ["IgorLexer"] class IgorLexer(RegexLexer): @@ -21,415 +21,1621 @@ class IgorLexer(RegexLexer): Pygments Lexer for Igor Pro procedure files (.ipf). """ - name = 'Igor' - aliases = ['igor', 'igorpro'] - filenames = ['*.ipf'] - mimetypes = ['text/ipf'] - url = 'http://www.wavemetrics.com' - version_added = '2.0' + name = "Igor" + aliases = ["igor", "igorpro"] + filenames = ["*.ipf"] + mimetypes = ["text/ipf"] + url = "http://www.wavemetrics.com" + version_added = "2.0" flags = re.IGNORECASE | re.MULTILINE flowControl = ( - 'if', 'else', 'elseif', 'endif', 'for', 'endfor', 'strswitch', 'switch', - 'case', 'default', 'endswitch', 'do', 'while', 'try', 'catch', 'endtry', - 'break', 'continue', 'return', 'AbortOnRTE', 'AbortOnValue' + "if", + "else", + "elseif", + "endif", + "for", + "endfor", + "strswitch", + "switch", + "case", + "default", + "endswitch", + "do", + "while", + "try", + "catch", + "endtry", + "break", + "continue", + "return", + "AbortOnRTE", + "AbortOnValue", ) types = ( - 'variable', 'string', 'constant', 'strconstant', 'NVAR', 'SVAR', 'WAVE', - 'STRUCT', 'dfref', 'funcref', 'char', 'uchar', 'int16', 'uint16', 'int32', - 'uint32', 'int64', 'uint64', 'float', 'double', 'int' + "variable", + "string", + "constant", + "strconstant", + "NVAR", + "SVAR", + "WAVE", + "STRUCT", + "dfref", + "funcref", + "char", + "uchar", + "int16", + "uint16", + "int32", + "uint32", + "int64", + "uint64", + "float", + "double", + "int", ) keywords = ( - 'override', 'ThreadSafe', 'MultiThread', 'static', 'Proc', - 'Picture', 'Prompt', 'DoPrompt', 'macro', 'window', 'function', 'end', - 'Structure', 'EndStructure', 'EndMacro', 'Menu', 'SubMenu' + "override", + "ThreadSafe", + "MultiThread", + "static", + "Proc", + "Picture", + "Prompt", + "DoPrompt", + "macro", + "window", + "function", + "end", + "Structure", + "EndStructure", + "EndMacro", + "Menu", + "SubMenu", ) operations = ( - 'Abort', 'AddFIFOData', 'AddFIFOVectData', 'AddMovieAudio', 'AddMovieFrame', - 'AddWavesToBoxPlot', 'AddWavesToViolinPlot', 'AdoptFiles', 'APMath', 'Append', - 'AppendBoxPlot', 'AppendImage', 'AppendLayoutObject', 'AppendMatrixContour', - 'AppendText', 'AppendToGizmo', 'AppendToGraph', 'AppendToLayout', - 'AppendToTable', 'AppendViolinPlot', 'AppendXYZContour', 'AutoPositionWindow', - 'AxonTelegraphFindServers', 'BackgroundInfo', 'Beep', 'BezierToPolygon', - 'BoundingBall', 'BoxSmooth', 'BrowseURL', 'BuildMenu', 'Button', 'cd', 'Chart', - 'CheckBox', 'CheckDisplayed', 'ChooseColor', 'Close', 'CloseHelp', 'CloseMovie', - 'CloseProc', 'ColorScale', 'ColorTab2Wave', 'Concatenate', 'ControlBar', - 'ControlInfo', 'ControlUpdate', 'ConvertGlobalStringTextEncoding', 'ConvexHull', - 'Convolve', 'CopyDimLabels', 'CopyFile', 'CopyFolder', 'CopyScales', 'Correlate', - 'CreateAliasShortcut', 'CreateBrowser', 'Cross', 'CtrlBackground', 'CtrlFIFO', - 'CtrlNamedBackground', 'Cursor', 'CurveFit', 'CustomControl', 'CWT', - 'DAQmx_AI_SetupReader', 'DAQmx_AO_SetOutputs', 'DAQmx_CTR_CountEdges', - 'DAQmx_CTR_OutputPulse', 'DAQmx_CTR_Period', 'DAQmx_CTR_PulseWidth', - 'DAQmx_DeviceInfo', 'DAQmx_DIO_Config', 'DAQmx_DIO_WriteNewData', 'DAQmx_Scan', - 'DAQmx_WaveformGen', 'Debugger', 'DebuggerOptions', 'DefaultFont', - 'DefaultGuiControls', 'DefaultGuiFont', 'DefaultTextEncoding', 'DefineGuide', - 'DelayUpdate', 'DeleteAnnotations', 'DeleteFile', 'DeleteFolder', 'DeletePoints', - 'Differentiate', 'dir', 'Display', 'DisplayHelpTopic', 'DisplayProcedure', - 'DoAlert', 'DoIgorMenu', 'DoUpdate', 'DoWindow', 'DoXOPIdle', 'DPSS', - 'DrawAction', 'DrawArc', 'DrawBezier', 'DrawLine', 'DrawOval', 'DrawPICT', - 'DrawPoly', 'DrawRect', 'DrawRRect', 'DrawText', 'DrawUserShape', 'DSPDetrend', - 'DSPPeriodogram', 'Duplicate', 'DuplicateDataFolder', 'DWT', 'EdgeStats', 'Edit', - 'ErrorBars', 'EstimatePeakSizes', 'Execute', 'ExecuteScriptText', - 'ExperimentInfo', 'ExperimentModified', 'ExportGizmo', 'Extract', - 'FastGaussTransform', 'FastOp', 'FBinRead', 'FBinWrite', 'FCALL_CallFunction', - 'FCALL_FreeLibrary', 'FCALL_GetFunctionList', 'FCALL_GetParamTypeList', - 'FCALL_LoadLibrary', 'FCALL_Version', 'FFT', 'FGetPos', 'FIFOStatus', - 'FIFO2Wave', 'FilterFIR', 'FilterIIR', 'FindAPeak', 'FindContour', - 'FindDuplicates', 'FindLevel', 'FindLevels', 'FindPeak', 'FindPointsInPoly', - 'FindRoots', 'FindSequence', 'FindValue', 'FMaxFlat', 'FPClustering', 'fprintf', - 'FReadLine', 'FSetPos', 'FStatus', 'FTPCreateDirectory', 'FTPDelete', - 'FTPDownload', 'FTPUpload', 'FuncFit', 'FuncFitMD', 'GBLoadWave', 'GetAxis', - 'GetCamera', 'GetFileFolderInfo', 'GetGizmo', 'GetLastUserMenuInfo', - 'GetMarquee', 'GetMouse', 'GetSelection', 'GetWindow', 'GISCreateVectorLayer', - 'GISGetRasterInfo', 'GISGetRegisteredFileInfo', 'GISGetVectorLayerInfo', - 'GISLoadRasterData', 'GISLoadVectorData', 'GISRasterizeVectorData', - 'GISRegisterFile', 'GISTransformCoords', 'GISUnRegisterFile', - 'GISWriteFieldData', 'GISWriteGeometryData', 'GISWriteRaster', - 'GPIBReadBinaryWave2', 'GPIBReadBinary2', 'GPIBReadWave2', 'GPIBRead2', - 'GPIBWriteBinaryWave2', 'GPIBWriteBinary2', 'GPIBWriteWave2', 'GPIBWrite2', - 'GPIB2', 'GraphNormal', 'GraphWaveDraw', 'GraphWaveEdit', 'Grep', 'GroupBox', - 'Hanning', 'HCluster', 'HDFInfo', 'HDFReadImage', 'HDFReadSDS', 'HDFReadVset', - 'HDF5CloseFile', 'HDF5CloseGroup', 'HDF5Control', 'HDF5CreateFile', - 'HDF5CreateGroup', 'HDF5CreateLink', 'HDF5DimensionScale', 'HDF5Dump', - 'HDF5DumpErrors', 'HDF5FlushFile', 'HDF5ListAttributes', 'HDF5ListGroup', - 'HDF5LoadData', 'HDF5LoadGroup', 'HDF5LoadImage', 'HDF5OpenFile', - 'HDF5OpenGroup', 'HDF5SaveData', 'HDF5SaveGroup', 'HDF5SaveImage', - 'HDF5UnlinkObject', 'HideIgorMenus', 'HideInfo', 'HideProcedures', 'HideTools', - 'HilbertTransform', 'Histogram', 'ICA', 'IFFT', 'ImageAnalyzeParticles', - 'ImageBlend', 'ImageBoundaryToMask', 'ImageComposite', 'ImageEdgeDetection', - 'ImageFileInfo', 'ImageFilter', 'ImageFocus', 'ImageFromXYZ', - 'ImageGenerateROIMask', 'ImageGLCM', 'ImageHistModification', 'ImageHistogram', - 'ImageInterpolate', 'ImageLineProfile', 'ImageLoad', 'ImageMorphology', - 'ImageRegistration', 'ImageRemoveBackground', 'ImageRestore', 'ImageRotate', - 'ImageSave', 'ImageSeedFill', 'ImageSkeleton3d', 'ImageSnake', 'ImageStats', - 'ImageThreshold', 'ImageTransform', 'ImageUnwrapPhase', 'ImageWindow', - 'IndexSort', 'InsertPoints', 'InstantFrequency', 'Integrate', 'IntegrateODE', - 'Integrate2D', 'Interpolate2', 'Interpolate3D', 'Interp3DPath', 'ITCCloseAll2', - 'ITCCloseDevice2', 'ITCConfigAllChannels2', 'ITCConfigChannelReset2', - 'ITCConfigChannelUpload2', 'ITCConfigChannel2', 'ITCFIFOAvailableAll2', - 'ITCFIFOAvailable2', 'ITCGetAllChannelsConfig2', 'ITCGetChannelConfig2', - 'ITCGetCurrentDevice2', 'ITCGetDeviceInfo2', 'ITCGetDevices2', - 'ITCGetErrorString2', 'ITCGetSerialNumber2', 'ITCGetState2', 'ITCGetVersions2', - 'ITCInitialize2', 'ITCOpenDevice2', 'ITCReadADC2', 'ITCReadDigital2', - 'ITCReadTimer2', 'ITCSelectDevice2', 'ITCSetDAC2', 'ITCSetGlobals2', - 'ITCSetModes2', 'ITCSetState2', 'ITCStartAcq2', 'ITCStopAcq2', - 'ITCUpdateFIFOPositionAll2', 'ITCUpdateFIFOPosition2', 'ITCWriteDigital2', - 'JCAMPLoadWave', 'JointHistogram', 'JSONXOP_AddTree', 'JSONXOP_AddValue', - 'JSONXOP_Dump', 'JSONXOP_GetArraySize', 'JSONXOP_GetKeys', - 'JSONXOP_GetMaxArraySize', 'JSONXOP_GetType', 'JSONXOP_GetValue', 'JSONXOP_New', - 'JSONXOP_Parse', 'JSONXOP_Release', 'JSONXOP_Remove', 'JSONXOP_Version', - 'KillBackground', 'KillControl', 'KillDataFolder', 'KillFIFO', 'KillFreeAxis', - 'KillPath', 'KillPICTs', 'KillStrings', 'KillVariables', 'KillWaves', - 'KillWindow', 'KMeans', 'Label', 'Layout', 'LayoutPageAction', - 'LayoutSlideShow', 'Legend', 'LinearFeedbackShiftRegister', 'ListBox', - 'LoadData', 'LoadPackagePreferences', 'LoadPICT', 'LoadWave', 'Loess', - 'LombPeriodogram', 'Make', 'MakeIndex', 'MarkPerfTestTime', 'MatrixBalance', - 'MatrixConvolve', 'MatrixCorr', 'MatrixEigenV', 'MatrixFactor', 'MatrixFilter', - 'MatrixGaussJ', 'MatrixGLM', 'MatrixInverse', 'MatrixLinearSolve', - 'MatrixLinearSolveTD', 'MatrixLLS', 'MatrixLUBkSub', 'MatrixLUD', 'MatrixLUDTD', - 'MatrixMultiply', 'MatrixMultiplyAdd', 'MatrixOP', 'MatrixReverseBalance', - 'MatrixSchur', 'MatrixSolve', 'MatrixSparse', 'MatrixSVBkSub', 'MatrixSVD', - 'MatrixTranspose', 'MCC_FindServers', 'MeasureStyledText', - 'MFR_CheckForNewBricklets', 'MFR_CloseResultFile', 'MFR_CreateOverviewTable', - 'MFR_GetBrickletCount', 'MFR_GetBrickletData', 'MFR_GetBrickletDeployData', - 'MFR_GetBrickletMetaData', 'MFR_GetBrickletRawData', 'MFR_GetReportTemplate', - 'MFR_GetResultFileMetaData', 'MFR_GetResultFileName', - 'MFR_GetVernissageVersion', 'MFR_GetVersion', 'MFR_GetXOPErrorMessage', - 'MFR_OpenResultFile', 'MLLoadWave', 'Modify', 'ModifyBoxPlot', 'ModifyBrowser', - 'ModifyCamera', 'ModifyContour', 'ModifyControl', 'ModifyControlList', - 'ModifyFreeAxis', 'ModifyGizmo', 'ModifyGraph', 'ModifyImage', 'ModifyLayout', - 'ModifyPanel', 'ModifyProcedure', 'ModifyTable', 'ModifyViolinPlot', - 'ModifyWaterfall', 'MoveDataFolder', 'MoveFile', 'MoveFolder', 'MoveString', - 'MoveSubwindow', 'MoveVariable', 'MoveWave', 'MoveWindow', 'MultiTaperPSD', - 'MultiThreadingControl', 'NC_CloseFile', 'NC_DumpErrors', 'NC_Inquire', - 'NC_ListAttributes', 'NC_ListObjects', 'NC_LoadData', 'NC_OpenFile', - 'NeuralNetworkRun', 'NeuralNetworkTrain', 'NewCamera', 'NewDataFolder', - 'NewFIFO', 'NewFIFOChan', 'NewFreeAxis', 'NewGizmo', 'NewImage', 'NewLayout', - 'NewMovie', 'NewNotebook', 'NewPanel', 'NewPath', 'NewWaterfall', 'NILoadWave', - 'NI4882', 'Note', 'Notebook', 'NotebookAction', 'Open', 'OpenHelp', - 'OpenNotebook', 'Optimize', 'ParseOperationTemplate', 'PathInfo', - 'PauseForUser', 'PauseUpdate', 'PCA', 'PlayMovie', 'PlayMovieAction', - 'PlaySound', 'PolygonOp', 'PopupContextualMenu', 'PopupMenu', 'Preferences', - 'PrimeFactors', 'Print', 'printf', 'PrintGraphs', 'PrintLayout', - 'PrintNotebook', 'PrintSettings', 'PrintTable', 'Project', 'PulseStats', - 'PutScrapText', 'pwd', 'Quit', 'RatioFromNumber', 'Redimension', 'Remez', - 'Remove', 'RemoveContour', 'RemoveFromGizmo', 'RemoveFromGraph', - 'RemoveFromLayout', 'RemoveFromTable', 'RemoveImage', 'RemoveLayoutObjects', - 'RemovePath', 'Rename', 'RenameDataFolder', 'RenamePath', 'RenamePICT', - 'RenameWindow', 'ReorderImages', 'ReorderTraces', 'ReplaceText', 'ReplaceWave', - 'Resample', 'ResumeUpdate', 'Reverse', 'Rotate', 'Save', 'SaveData', - 'SaveExperiment', 'SaveGizmoCopy', 'SaveGraphCopy', 'SaveNotebook', - 'SavePackagePreferences', 'SavePICT', 'SaveTableCopy', 'SetActiveSubwindow', - 'SetAxis', 'SetBackground', 'SetDashPattern', 'SetDataFolder', 'SetDimLabel', - 'SetDrawEnv', 'SetDrawLayer', 'SetFileFolderInfo', 'SetFormula', - 'SetIdlePeriod', 'SetIgorHook', 'SetIgorMenuMode', 'SetIgorOption', - 'SetMarquee', 'SetProcessSleep', 'SetRandomSeed', 'SetScale', 'SetVariable', - 'SetWaveLock', 'SetWaveTextEncoding', 'SetWindow', 'ShowIgorMenus', 'ShowInfo', - 'ShowTools', 'Silent', 'Sleep', 'Slider', 'Smooth', 'SmoothCustom', 'Sort', - 'SortColumns', 'SoundInRecord', 'SoundInSet', 'SoundInStartChart', - 'SoundInStatus', 'SoundInStopChart', 'SoundLoadWave', 'SoundSaveWave', - 'SphericalInterpolate', 'SphericalTriangulate', 'SplitString', 'SplitWave', - 'sprintf', 'SQLHighLevelOp', 'sscanf', 'Stack', 'StackWindows', - 'StatsAngularDistanceTest', 'StatsANOVA1Test', 'StatsANOVA2NRTest', - 'StatsANOVA2RMTest', 'StatsANOVA2Test', 'StatsChiTest', - 'StatsCircularCorrelationTest', 'StatsCircularMeans', 'StatsCircularMoments', - 'StatsCircularTwoSampleTest', 'StatsCochranTest', 'StatsContingencyTable', - 'StatsDIPTest', 'StatsDunnettTest', 'StatsFriedmanTest', 'StatsFTest', - 'StatsHodgesAjneTest', 'StatsJBTest', 'StatsKDE', 'StatsKendallTauTest', - 'StatsKSTest', 'StatsKWTest', 'StatsLinearCorrelationTest', - 'StatsLinearRegression', 'StatsMultiCorrelationTest', 'StatsNPMCTest', - 'StatsNPNominalSRTest', 'StatsQuantiles', 'StatsRankCorrelationTest', - 'StatsResample', 'StatsSample', 'StatsScheffeTest', 'StatsShapiroWilkTest', - 'StatsSignTest', 'StatsSRTest', 'StatsTTest', 'StatsTukeyTest', - 'StatsVariancesTest', 'StatsWatsonUSquaredTest', 'StatsWatsonWilliamsTest', - 'StatsWheelerWatsonTest', 'StatsWilcoxonRankTest', 'StatsWRCorrelationTest', - 'STFT', 'StructFill', 'StructGet', 'StructPut', 'SumDimension', 'SumSeries', - 'TabControl', 'Tag', 'TDMLoadData', 'TDMSaveData', 'TextBox', 'TextHistogram', - 'Text2Bezier', 'ThreadGroupPutDF', 'ThreadStart', 'TickWavesFromAxis', 'Tile', - 'TileWindows', 'TitleBox', 'ToCommandLine', 'ToolsGrid', 'Triangulate3d', - 'TUFXOP_AcquireLock', 'TUFXOP_Clear', 'TUFXOP_GetStorage', 'TUFXOP_Init', - 'TUFXOP_ReleaseLock', 'TUFXOP_RunningInMainThread', 'TUFXOP_Version', 'Unwrap', - 'UnzipFile', 'URLRequest', 'ValDisplay', 'VDTClosePort2', 'VDTGetPortList2', - 'VDTGetStatus2', 'VDTOpenPort2', 'VDTOperationsPort2', 'VDTReadBinaryWave2', - 'VDTReadBinary2', 'VDTReadHexWave2', 'VDTReadHex2', 'VDTReadWave2', 'VDTRead2', - 'VDTTerminalPort2', 'VDTWriteBinaryWave2', 'VDTWriteBinary2', - 'VDTWriteHexWave2', 'VDTWriteHex2', 'VDTWriteWave2', 'VDTWrite2', 'VDT2', - 'VISAControl', 'VISARead', 'VISAReadBinary', 'VISAReadBinaryWave', - 'VISAReadWave', 'VISAWrite', 'VISAWriteBinary', 'VISAWriteBinaryWave', - 'VISAWriteWave', 'WaveMeanStdv', 'WaveStats', 'WaveTracking', 'WaveTransform', - 'wfprintf', 'WignerTransform', 'WindowFunction', 'XLLoadWave' + "Abort", + "AddFIFOData", + "AddFIFOVectData", + "AddMovieAudio", + "AddMovieFrame", + "AddWavesToBoxPlot", + "AddWavesToViolinPlot", + "AdoptFiles", + "APMath", + "Append", + "AppendBoxPlot", + "AppendImage", + "AppendLayoutObject", + "AppendMatrixContour", + "AppendText", + "AppendToGizmo", + "AppendToGraph", + "AppendToLayout", + "AppendToTable", + "AppendViolinPlot", + "AppendXYZContour", + "AutoPositionWindow", + "AxonTelegraphFindServers", + "BackgroundInfo", + "Beep", + "BezierToPolygon", + "BoundingBall", + "BoxSmooth", + "BrowseURL", + "BuildMenu", + "Button", + "cd", + "Chart", + "CheckBox", + "CheckDisplayed", + "ChooseColor", + "Close", + "CloseHelp", + "CloseMovie", + "CloseProc", + "ColorScale", + "ColorTab2Wave", + "Concatenate", + "ControlBar", + "ControlInfo", + "ControlUpdate", + "ConvertGlobalStringTextEncoding", + "ConvexHull", + "Convolve", + "CopyDimLabels", + "CopyFile", + "CopyFolder", + "CopyScales", + "Correlate", + "CreateAliasShortcut", + "CreateBrowser", + "Cross", + "CtrlBackground", + "CtrlFIFO", + "CtrlNamedBackground", + "Cursor", + "CurveFit", + "CustomControl", + "CWT", + "DAQmx_AI_SetupReader", + "DAQmx_AO_SetOutputs", + "DAQmx_CTR_CountEdges", + "DAQmx_CTR_OutputPulse", + "DAQmx_CTR_Period", + "DAQmx_CTR_PulseWidth", + "DAQmx_DeviceInfo", + "DAQmx_DIO_Config", + "DAQmx_DIO_WriteNewData", + "DAQmx_Scan", + "DAQmx_WaveformGen", + "Debugger", + "DebuggerOptions", + "DefaultFont", + "DefaultGuiControls", + "DefaultGuiFont", + "DefaultTextEncoding", + "DefineGuide", + "DelayUpdate", + "DeleteAnnotations", + "DeleteFile", + "DeleteFolder", + "DeletePoints", + "Differentiate", + "dir", + "Display", + "DisplayHelpTopic", + "DisplayProcedure", + "DoAlert", + "DoIgorMenu", + "DoUpdate", + "DoWindow", + "DoXOPIdle", + "DPSS", + "DrawAction", + "DrawArc", + "DrawBezier", + "DrawLine", + "DrawOval", + "DrawPICT", + "DrawPoly", + "DrawRect", + "DrawRRect", + "DrawText", + "DrawUserShape", + "DSPDetrend", + "DSPPeriodogram", + "Duplicate", + "DuplicateDataFolder", + "DWT", + "EdgeStats", + "Edit", + "ErrorBars", + "EstimatePeakSizes", + "Execute", + "ExecuteScriptText", + "ExperimentInfo", + "ExperimentModified", + "ExportGizmo", + "Extract", + "FastGaussTransform", + "FastOp", + "FBinRead", + "FBinWrite", + "FCALL_CallFunction", + "FCALL_FreeLibrary", + "FCALL_GetFunctionList", + "FCALL_GetParamTypeList", + "FCALL_LoadLibrary", + "FCALL_Version", + "FFT", + "FGetPos", + "FIFOStatus", + "FIFO2Wave", + "FilterFIR", + "FilterIIR", + "FindAPeak", + "FindContour", + "FindDuplicates", + "FindLevel", + "FindLevels", + "FindPeak", + "FindPointsInPoly", + "FindRoots", + "FindSequence", + "FindValue", + "FMaxFlat", + "FPClustering", + "fprintf", + "FReadLine", + "FSetPos", + "FStatus", + "FTPCreateDirectory", + "FTPDelete", + "FTPDownload", + "FTPUpload", + "FuncFit", + "FuncFitMD", + "GBLoadWave", + "GetAxis", + "GetCamera", + "GetFileFolderInfo", + "GetGizmo", + "GetLastUserMenuInfo", + "GetMarquee", + "GetMouse", + "GetSelection", + "GetWindow", + "GISCreateVectorLayer", + "GISGetRasterInfo", + "GISGetRegisteredFileInfo", + "GISGetVectorLayerInfo", + "GISLoadRasterData", + "GISLoadVectorData", + "GISRasterizeVectorData", + "GISRegisterFile", + "GISTransformCoords", + "GISUnRegisterFile", + "GISWriteFieldData", + "GISWriteGeometryData", + "GISWriteRaster", + "GPIBReadBinaryWave2", + "GPIBReadBinary2", + "GPIBReadWave2", + "GPIBRead2", + "GPIBWriteBinaryWave2", + "GPIBWriteBinary2", + "GPIBWriteWave2", + "GPIBWrite2", + "GPIB2", + "GraphNormal", + "GraphWaveDraw", + "GraphWaveEdit", + "Grep", + "GroupBox", + "Hanning", + "HCluster", + "HDFInfo", + "HDFReadImage", + "HDFReadSDS", + "HDFReadVset", + "HDF5CloseFile", + "HDF5CloseGroup", + "HDF5Control", + "HDF5CreateFile", + "HDF5CreateGroup", + "HDF5CreateLink", + "HDF5DimensionScale", + "HDF5Dump", + "HDF5DumpErrors", + "HDF5FlushFile", + "HDF5ListAttributes", + "HDF5ListGroup", + "HDF5LoadData", + "HDF5LoadGroup", + "HDF5LoadImage", + "HDF5OpenFile", + "HDF5OpenGroup", + "HDF5SaveData", + "HDF5SaveGroup", + "HDF5SaveImage", + "HDF5UnlinkObject", + "HideIgorMenus", + "HideInfo", + "HideProcedures", + "HideTools", + "HilbertTransform", + "Histogram", + "ICA", + "IFFT", + "ImageAnalyzeParticles", + "ImageBlend", + "ImageBoundaryToMask", + "ImageComposite", + "ImageEdgeDetection", + "ImageFileInfo", + "ImageFilter", + "ImageFocus", + "ImageFromXYZ", + "ImageGenerateROIMask", + "ImageGLCM", + "ImageHistModification", + "ImageHistogram", + "ImageInterpolate", + "ImageLineProfile", + "ImageLoad", + "ImageMorphology", + "ImageRegistration", + "ImageRemoveBackground", + "ImageRestore", + "ImageRotate", + "ImageSave", + "ImageSeedFill", + "ImageSkeleton3d", + "ImageSnake", + "ImageStats", + "ImageThreshold", + "ImageTransform", + "ImageUnwrapPhase", + "ImageWindow", + "IndexSort", + "InsertPoints", + "InstantFrequency", + "Integrate", + "IntegrateODE", + "Integrate2D", + "Interpolate2", + "Interpolate3D", + "Interp3DPath", + "ITCCloseAll2", + "ITCCloseDevice2", + "ITCConfigAllChannels2", + "ITCConfigChannelReset2", + "ITCConfigChannelUpload2", + "ITCConfigChannel2", + "ITCFIFOAvailableAll2", + "ITCFIFOAvailable2", + "ITCGetAllChannelsConfig2", + "ITCGetChannelConfig2", + "ITCGetCurrentDevice2", + "ITCGetDeviceInfo2", + "ITCGetDevices2", + "ITCGetErrorString2", + "ITCGetSerialNumber2", + "ITCGetState2", + "ITCGetVersions2", + "ITCInitialize2", + "ITCOpenDevice2", + "ITCReadADC2", + "ITCReadDigital2", + "ITCReadTimer2", + "ITCSelectDevice2", + "ITCSetDAC2", + "ITCSetGlobals2", + "ITCSetModes2", + "ITCSetState2", + "ITCStartAcq2", + "ITCStopAcq2", + "ITCUpdateFIFOPositionAll2", + "ITCUpdateFIFOPosition2", + "ITCWriteDigital2", + "JCAMPLoadWave", + "JointHistogram", + "JSONXOP_AddTree", + "JSONXOP_AddValue", + "JSONXOP_Dump", + "JSONXOP_GetArraySize", + "JSONXOP_GetKeys", + "JSONXOP_GetMaxArraySize", + "JSONXOP_GetType", + "JSONXOP_GetValue", + "JSONXOP_New", + "JSONXOP_Parse", + "JSONXOP_Release", + "JSONXOP_Remove", + "JSONXOP_Version", + "KillBackground", + "KillControl", + "KillDataFolder", + "KillFIFO", + "KillFreeAxis", + "KillPath", + "KillPICTs", + "KillStrings", + "KillVariables", + "KillWaves", + "KillWindow", + "KMeans", + "Label", + "Layout", + "LayoutPageAction", + "LayoutSlideShow", + "Legend", + "LinearFeedbackShiftRegister", + "ListBox", + "LoadData", + "LoadPackagePreferences", + "LoadPICT", + "LoadWave", + "Loess", + "LombPeriodogram", + "Make", + "MakeIndex", + "MarkPerfTestTime", + "MatrixBalance", + "MatrixConvolve", + "MatrixCorr", + "MatrixEigenV", + "MatrixFactor", + "MatrixFilter", + "MatrixGaussJ", + "MatrixGLM", + "MatrixInverse", + "MatrixLinearSolve", + "MatrixLinearSolveTD", + "MatrixLLS", + "MatrixLUBkSub", + "MatrixLUD", + "MatrixLUDTD", + "MatrixMultiply", + "MatrixMultiplyAdd", + "MatrixOP", + "MatrixReverseBalance", + "MatrixSchur", + "MatrixSolve", + "MatrixSparse", + "MatrixSVBkSub", + "MatrixSVD", + "MatrixTranspose", + "MCC_FindServers", + "MeasureStyledText", + "MFR_CheckForNewBricklets", + "MFR_CloseResultFile", + "MFR_CreateOverviewTable", + "MFR_GetBrickletCount", + "MFR_GetBrickletData", + "MFR_GetBrickletDeployData", + "MFR_GetBrickletMetaData", + "MFR_GetBrickletRawData", + "MFR_GetReportTemplate", + "MFR_GetResultFileMetaData", + "MFR_GetResultFileName", + "MFR_GetVernissageVersion", + "MFR_GetVersion", + "MFR_GetXOPErrorMessage", + "MFR_OpenResultFile", + "MLLoadWave", + "Modify", + "ModifyBoxPlot", + "ModifyBrowser", + "ModifyCamera", + "ModifyContour", + "ModifyControl", + "ModifyControlList", + "ModifyFreeAxis", + "ModifyGizmo", + "ModifyGraph", + "ModifyImage", + "ModifyLayout", + "ModifyPanel", + "ModifyProcedure", + "ModifyTable", + "ModifyViolinPlot", + "ModifyWaterfall", + "MoveDataFolder", + "MoveFile", + "MoveFolder", + "MoveString", + "MoveSubwindow", + "MoveVariable", + "MoveWave", + "MoveWindow", + "MultiTaperPSD", + "MultiThreadingControl", + "NC_CloseFile", + "NC_DumpErrors", + "NC_Inquire", + "NC_ListAttributes", + "NC_ListObjects", + "NC_LoadData", + "NC_OpenFile", + "NeuralNetworkRun", + "NeuralNetworkTrain", + "NewCamera", + "NewDataFolder", + "NewFIFO", + "NewFIFOChan", + "NewFreeAxis", + "NewGizmo", + "NewImage", + "NewLayout", + "NewMovie", + "NewNotebook", + "NewPanel", + "NewPath", + "NewWaterfall", + "NILoadWave", + "NI4882", + "Note", + "Notebook", + "NotebookAction", + "Open", + "OpenHelp", + "OpenNotebook", + "Optimize", + "ParseOperationTemplate", + "PathInfo", + "PauseForUser", + "PauseUpdate", + "PCA", + "PlayMovie", + "PlayMovieAction", + "PlaySound", + "PolygonOp", + "PopupContextualMenu", + "PopupMenu", + "Preferences", + "PrimeFactors", + "Print", + "printf", + "PrintGraphs", + "PrintLayout", + "PrintNotebook", + "PrintSettings", + "PrintTable", + "Project", + "PulseStats", + "PutScrapText", + "pwd", + "Quit", + "RatioFromNumber", + "Redimension", + "Remez", + "Remove", + "RemoveContour", + "RemoveFromGizmo", + "RemoveFromGraph", + "RemoveFromLayout", + "RemoveFromTable", + "RemoveImage", + "RemoveLayoutObjects", + "RemovePath", + "Rename", + "RenameDataFolder", + "RenamePath", + "RenamePICT", + "RenameWindow", + "ReorderImages", + "ReorderTraces", + "ReplaceText", + "ReplaceWave", + "Resample", + "ResumeUpdate", + "Reverse", + "Rotate", + "Save", + "SaveData", + "SaveExperiment", + "SaveGizmoCopy", + "SaveGraphCopy", + "SaveNotebook", + "SavePackagePreferences", + "SavePICT", + "SaveTableCopy", + "SetActiveSubwindow", + "SetAxis", + "SetBackground", + "SetDashPattern", + "SetDataFolder", + "SetDimLabel", + "SetDrawEnv", + "SetDrawLayer", + "SetFileFolderInfo", + "SetFormula", + "SetIdlePeriod", + "SetIgorHook", + "SetIgorMenuMode", + "SetIgorOption", + "SetMarquee", + "SetProcessSleep", + "SetRandomSeed", + "SetScale", + "SetVariable", + "SetWaveLock", + "SetWaveTextEncoding", + "SetWindow", + "ShowIgorMenus", + "ShowInfo", + "ShowTools", + "Silent", + "Sleep", + "Slider", + "Smooth", + "SmoothCustom", + "Sort", + "SortColumns", + "SoundInRecord", + "SoundInSet", + "SoundInStartChart", + "SoundInStatus", + "SoundInStopChart", + "SoundLoadWave", + "SoundSaveWave", + "SphericalInterpolate", + "SphericalTriangulate", + "SplitString", + "SplitWave", + "sprintf", + "SQLHighLevelOp", + "sscanf", + "Stack", + "StackWindows", + "StatsAngularDistanceTest", + "StatsANOVA1Test", + "StatsANOVA2NRTest", + "StatsANOVA2RMTest", + "StatsANOVA2Test", + "StatsChiTest", + "StatsCircularCorrelationTest", + "StatsCircularMeans", + "StatsCircularMoments", + "StatsCircularTwoSampleTest", + "StatsCochranTest", + "StatsContingencyTable", + "StatsDIPTest", + "StatsDunnettTest", + "StatsFriedmanTest", + "StatsFTest", + "StatsHodgesAjneTest", + "StatsJBTest", + "StatsKDE", + "StatsKendallTauTest", + "StatsKSTest", + "StatsKWTest", + "StatsLinearCorrelationTest", + "StatsLinearRegression", + "StatsMultiCorrelationTest", + "StatsNPMCTest", + "StatsNPNominalSRTest", + "StatsQuantiles", + "StatsRankCorrelationTest", + "StatsResample", + "StatsSample", + "StatsScheffeTest", + "StatsShapiroWilkTest", + "StatsSignTest", + "StatsSRTest", + "StatsTTest", + "StatsTukeyTest", + "StatsVariancesTest", + "StatsWatsonUSquaredTest", + "StatsWatsonWilliamsTest", + "StatsWheelerWatsonTest", + "StatsWilcoxonRankTest", + "StatsWRCorrelationTest", + "STFT", + "StructFill", + "StructGet", + "StructPut", + "SumDimension", + "SumSeries", + "TabControl", + "Tag", + "TDMLoadData", + "TDMSaveData", + "TextBox", + "TextHistogram", + "Text2Bezier", + "ThreadGroupPutDF", + "ThreadStart", + "TickWavesFromAxis", + "Tile", + "TileWindows", + "TitleBox", + "ToCommandLine", + "ToolsGrid", + "Triangulate3d", + "TUFXOP_AcquireLock", + "TUFXOP_Clear", + "TUFXOP_GetStorage", + "TUFXOP_Init", + "TUFXOP_ReleaseLock", + "TUFXOP_RunningInMainThread", + "TUFXOP_Version", + "Unwrap", + "UnzipFile", + "URLRequest", + "ValDisplay", + "VDTClosePort2", + "VDTGetPortList2", + "VDTGetStatus2", + "VDTOpenPort2", + "VDTOperationsPort2", + "VDTReadBinaryWave2", + "VDTReadBinary2", + "VDTReadHexWave2", + "VDTReadHex2", + "VDTReadWave2", + "VDTRead2", + "VDTTerminalPort2", + "VDTWriteBinaryWave2", + "VDTWriteBinary2", + "VDTWriteHexWave2", + "VDTWriteHex2", + "VDTWriteWave2", + "VDTWrite2", + "VDT2", + "VISAControl", + "VISARead", + "VISAReadBinary", + "VISAReadBinaryWave", + "VISAReadWave", + "VISAWrite", + "VISAWriteBinary", + "VISAWriteBinaryWave", + "VISAWriteWave", + "WaveMeanStdv", + "WaveStats", + "WaveTracking", + "WaveTransform", + "wfprintf", + "WignerTransform", + "WindowFunction", + "XLLoadWave", ) functions = ( - 'abs', 'acos', 'acosh', 'AddListItem', 'AiryA', 'AiryAD', 'AiryB', 'AiryBD', - 'alog', 'AnnotationInfo', 'AnnotationList', 'area', 'areaXY', 'asin', 'asinh', - 'atan', 'atanh', 'atan2', 'AxisInfo', 'AxisLabel', 'AxisList', - 'AxisValFromPixel', 'AxonTelegraphAGetDataNum', 'AxonTelegraphAGetDataString', - 'AxonTelegraphAGetDataStruct', 'AxonTelegraphGetDataNum', - 'AxonTelegraphGetDataString', 'AxonTelegraphGetDataStruct', - 'AxonTelegraphGetTimeoutMs', 'AxonTelegraphSetTimeoutMs', 'Base64Decode', - 'Base64Encode', 'Besseli', 'Besselj', 'Besselk', 'Bessely', 'beta', 'betai', - 'BinarySearch', 'BinarySearchInterp', 'binomial', 'binomialln', 'binomialNoise', - 'cabs', 'CaptureHistory', 'CaptureHistoryStart', 'ceil', 'centerOfMass', - 'centerOfMassXY', 'cequal', 'char2num', 'chebyshev', 'chebyshevU', 'CheckName', - 'ChildWindowList', 'CleanupName', 'cmplx', 'cmpstr', 'conj', 'ContourInfo', - 'ContourNameList', 'ContourNameToWaveRef', 'ContourZ', 'ControlNameList', - 'ConvertTextEncoding', 'cos', 'cosh', 'cosIntegral', 'cot', 'coth', - 'CountObjects', 'CountObjectsDFR', 'cpowi', 'CreateDataObjectName', - 'CreationDate', 'csc', 'csch', 'CsrInfo', 'CsrWave', 'CsrWaveRef', 'CsrXWave', - 'CsrXWaveRef', 'CTabList', 'DataFolderDir', 'DataFolderExists', - 'DataFolderList', 'DataFolderRefChanges', 'DataFolderRefsEqual', - 'DataFolderRefStatus', 'date', 'datetime', 'DateToJulian', 'date2secs', - 'Dawson', 'defined', 'deltax', 'digamma', 'dilogarithm', 'DimDelta', - 'DimOffset', 'DimSize', 'ei', 'ellipticE', 'ellipticK', 'enoise', 'equalWaves', - 'erf', 'erfc', 'erfcw', 'erfcx', 'exists', 'exp', 'expInt', 'expIntegralE1', - 'expNoise', 'factorial', 'Faddeeva', 'fakedata', 'faverage', 'faverageXY', - 'fDAQmx_AI_ChannelConfigs', 'fDAQmx_AI_GetReader', 'fDAQmx_AO_UpdateOutputs', - 'fDAQmx_ConnectTerminals', 'fDAQmx_CTR_Finished', 'fDAQmx_CTR_IsFinished', - 'fDAQmx_CTR_IsPulseFinished', 'fDAQmx_CTR_ReadCounter', - 'fDAQmx_CTR_ReadWithOptions', 'fDAQmx_CTR_SetPulseFrequency', - 'fDAQmx_CTR_Start', 'fDAQmx_DeviceNames', 'fDAQmx_DIO_Finished', - 'fDAQmx_DIO_PortWidth', 'fDAQmx_DIO_Read', 'fDAQmx_DIO_Write', - 'fDAQmx_DisconnectTerminals', 'fDAQmx_ErrorString', 'fDAQmx_ExternalCalDate', - 'fDAQmx_NumAnalogInputs', 'fDAQmx_NumAnalogOutputs', 'fDAQmx_NumCounters', - 'fDAQmx_NumDIOPorts', 'fDAQmx_ReadChan', 'fDAQmx_ReadNamedChan', - 'fDAQmx_ResetDevice', 'fDAQmx_ScanGetAvailable', 'fDAQmx_ScanGetNextIndex', - 'fDAQmx_ScanStart', 'fDAQmx_ScanStop', 'fDAQmx_ScanWait', - 'fDAQmx_ScanWaitWithTimeout', 'fDAQmx_SelfCalDate', 'fDAQmx_SelfCalibration', - 'fDAQmx_WaveformStart', 'fDAQmx_WaveformStop', 'fDAQmx_WF_IsFinished', - 'fDAQmx_WF_WaitUntilFinished', 'fDAQmx_WriteChan', 'FetchURL', 'FindDimLabel', - 'FindListItem', 'floor', 'FontList', 'FontSizeHeight', 'FontSizeStringWidth', - 'FresnelCos', 'FresnelSin', 'FuncRefInfo', 'FunctionInfo', 'FunctionList', - 'FunctionPath', 'gamma', 'gammaEuler', 'gammaInc', 'gammaNoise', 'gammln', - 'gammp', 'gammq', 'Gauss', 'Gauss1D', 'Gauss2D', 'gcd', 'GeometricMean', - 'GetBrowserLine', 'GetBrowserSelection', 'GetDataFolder', 'GetDataFolderDFR', - 'GetDefaultFont', 'GetDefaultFontSize', 'GetDefaultFontStyle', 'GetDimLabel', - 'GetEnvironmentVariable', 'GetErrMessage', 'GetFormula', - 'GetIndependentModuleName', 'GetIndexedObjName', 'GetIndexedObjNameDFR', - 'GetKeyState', 'GetRTErrMessage', 'GetRTError', 'GetRTLocation', 'GetRTLocInfo', - 'GetRTStackInfo', 'GetScrapText', 'GetUserData', 'GetWavesDataFolder', - 'GetWavesDataFolderDFR', 'GetWindowBrowserSelection', 'GISGetAllFileFormats', - 'GISSRefsAreEqual', 'GizmoInfo', 'GizmoScale', 'gnoise', 'GrepList', - 'GrepString', 'GuideInfo', 'GuideNameList', 'Hash', 'hcsr', 'HDF5AttributeInfo', - 'HDF5DatasetInfo', 'HDF5LibraryInfo', 'HDF5LinkInfo', 'HDF5TypeInfo', 'hermite', - 'hermiteGauss', 'HyperGNoise', 'HyperGPFQ', 'HyperG0F1', 'HyperG1F1', - 'HyperG2F1', 'i', 'IgorInfo', 'IgorVersion', 'imag', 'ImageInfo', - 'ImageNameList', 'ImageNameToWaveRef', 'IndependentModuleList', 'IndexedDir', - 'IndexedFile', 'IndexToScale', 'Inf', 'Integrate1D', 'interp', 'Interp2D', - 'Interp3D', 'inverseERF', 'inverseERFC', 'ItemsInList', 'JacobiCn', 'JacobiSn', - 'JulianToDate', 'Laguerre', 'LaguerreA', 'LaguerreGauss', 'LambertW', - 'LayoutInfo', 'leftx', 'LegendreA', 'limit', 'ListMatch', 'ListToTextWave', - 'ListToWaveRefWave', 'ln', 'log', 'logNormalNoise', 'lorentzianNoise', - 'LowerStr', 'MacroInfo', 'MacroList', 'MacroPath', 'magsqr', 'MandelbrotPoint', - 'MarcumQ', 'MatrixCondition', 'MatrixDet', 'MatrixDot', 'MatrixRank', - 'MatrixTrace', 'max', 'MCC_AutoBridgeBal', 'MCC_AutoFastComp', - 'MCC_AutoPipetteOffset', 'MCC_AutoSlowComp', 'MCC_AutoWholeCellComp', - 'MCC_GetBridgeBalEnable', 'MCC_GetBridgeBalResist', 'MCC_GetFastCompCap', - 'MCC_GetFastCompTau', 'MCC_GetHolding', 'MCC_GetHoldingEnable', 'MCC_GetMode', - 'MCC_GetNeutralizationCap', 'MCC_GetNeutralizationEnable', - 'MCC_GetOscKillerEnable', 'MCC_GetPipetteOffset', 'MCC_GetPrimarySignalGain', - 'MCC_GetPrimarySignalHPF', 'MCC_GetPrimarySignalLPF', 'MCC_GetRsCompBandwidth', - 'MCC_GetRsCompCorrection', 'MCC_GetRsCompEnable', 'MCC_GetRsCompPrediction', - 'MCC_GetSecondarySignalGain', 'MCC_GetSecondarySignalLPF', 'MCC_GetSlowCompCap', - 'MCC_GetSlowCompTau', 'MCC_GetSlowCompTauX20Enable', - 'MCC_GetSlowCurrentInjEnable', 'MCC_GetSlowCurrentInjLevel', - 'MCC_GetSlowCurrentInjSetlTime', 'MCC_GetWholeCellCompCap', - 'MCC_GetWholeCellCompEnable', 'MCC_GetWholeCellCompResist', - 'MCC_SelectMultiClamp700B', 'MCC_SetBridgeBalEnable', 'MCC_SetBridgeBalResist', - 'MCC_SetFastCompCap', 'MCC_SetFastCompTau', 'MCC_SetHolding', - 'MCC_SetHoldingEnable', 'MCC_SetMode', 'MCC_SetNeutralizationCap', - 'MCC_SetNeutralizationEnable', 'MCC_SetOscKillerEnable', 'MCC_SetPipetteOffset', - 'MCC_SetPrimarySignalGain', 'MCC_SetPrimarySignalHPF', 'MCC_SetPrimarySignalLPF', - 'MCC_SetRsCompBandwidth', 'MCC_SetRsCompCorrection', 'MCC_SetRsCompEnable', - 'MCC_SetRsCompPrediction', 'MCC_SetSecondarySignalGain', - 'MCC_SetSecondarySignalLPF', 'MCC_SetSlowCompCap', 'MCC_SetSlowCompTau', - 'MCC_SetSlowCompTauX20Enable', 'MCC_SetSlowCurrentInjEnable', - 'MCC_SetSlowCurrentInjLevel', 'MCC_SetSlowCurrentInjSetlTime', - 'MCC_SetTimeoutMs', 'MCC_SetWholeCellCompCap', 'MCC_SetWholeCellCompEnable', - 'MCC_SetWholeCellCompResist', 'mean', 'median', 'min', 'mod', 'ModDate', - 'MPFXEMGPeak', 'MPFXExpConvExpPeak', 'MPFXGaussPeak', 'MPFXLorentzianPeak', - 'MPFXVoigtPeak', 'NameOfWave', 'NaN', 'NewFreeDataFolder', 'NewFreeWave', 'norm', - 'NormalizeUnicode', 'note', 'NumberByKey', 'numpnts', 'numtype', - 'NumVarOrDefault', 'num2char', 'num2istr', 'num2str', 'NVAR_Exists', - 'OperationList', 'PadString', 'PanelResolution', 'ParamIsDefault', - 'ParseFilePath', 'PathList', 'pcsr', 'Pi', 'PICTInfo', 'PICTList', - 'PixelFromAxisVal', 'pnt2x', 'poissonNoise', 'poly', 'PolygonArea', 'poly2D', - 'PossiblyQuoteName', 'ProcedureText', 'ProcedureVersion', 'p2rect', 'qcsr', - 'real', 'RemoveByKey', 'RemoveEnding', 'RemoveFromList', 'RemoveListItem', - 'ReplaceNumberByKey', 'ReplaceString', 'ReplaceStringByKey', 'ReplicateString', - 'rightx', 'round', 'r2polar', 'sawtooth', 'scaleToIndex', 'ScreenResolution', - 'sec', 'sech', 'Secs2Date', 'Secs2Time', 'SelectNumber', 'SelectString', - 'SetEnvironmentVariable', 'sign', 'sin', 'sinc', 'sinh', 'sinIntegral', - 'SortList', 'SpecialCharacterInfo', 'SpecialCharacterList', 'SpecialDirPath', - 'SphericalBessJ', 'SphericalBessJD', 'SphericalBessY', 'SphericalBessYD', - 'SphericalHarmonics', 'SQLAllocHandle', 'SQLAllocStmt', - 'SQLBinaryWavesToTextWave', 'SQLBindCol', 'SQLBindParameter', 'SQLBrowseConnect', - 'SQLBulkOperations', 'SQLCancel', 'SQLCloseCursor', 'SQLColAttributeNum', - 'SQLColAttributeStr', 'SQLColumnPrivileges', 'SQLColumns', 'SQLConnect', - 'SQLDataSources', 'SQLDescribeCol', 'SQLDescribeParam', 'SQLDisconnect', - 'SQLDriverConnect', 'SQLDrivers', 'SQLEndTran', 'SQLError', 'SQLExecDirect', - 'SQLExecute', 'SQLFetch', 'SQLFetchScroll', 'SQLForeignKeys', 'SQLFreeConnect', - 'SQLFreeEnv', 'SQLFreeHandle', 'SQLFreeStmt', 'SQLGetConnectAttrNum', - 'SQLGetConnectAttrStr', 'SQLGetCursorName', 'SQLGetDataNum', 'SQLGetDataStr', - 'SQLGetDescFieldNum', 'SQLGetDescFieldStr', 'SQLGetDescRec', - 'SQLGetDiagFieldNum', 'SQLGetDiagFieldStr', 'SQLGetDiagRec', 'SQLGetEnvAttrNum', - 'SQLGetEnvAttrStr', 'SQLGetFunctions', 'SQLGetInfoNum', 'SQLGetInfoStr', - 'SQLGetStmtAttrNum', 'SQLGetStmtAttrStr', 'SQLGetTypeInfo', 'SQLMoreResults', - 'SQLNativeSql', 'SQLNumParams', 'SQLNumResultCols', 'SQLNumResultRowsIfKnown', - 'SQLNumRowsFetched', 'SQLParamData', 'SQLPrepare', 'SQLPrimaryKeys', - 'SQLProcedureColumns', 'SQLProcedures', 'SQLPutData', 'SQLReinitialize', - 'SQLRowCount', 'SQLSetConnectAttrNum', 'SQLSetConnectAttrStr', - 'SQLSetCursorName', 'SQLSetDescFieldNum', 'SQLSetDescFieldStr', 'SQLSetDescRec', - 'SQLSetEnvAttrNum', 'SQLSetEnvAttrStr', 'SQLSetPos', 'SQLSetStmtAttrNum', - 'SQLSetStmtAttrStr', 'SQLSpecialColumns', 'SQLStatistics', 'SQLTablePrivileges', - 'SQLTables', 'SQLTextWaveToBinaryWaves', 'SQLTextWaveTo2DBinaryWave', - 'SQLUpdateBoundValues', 'SQLXOPCheckState', 'SQL2DBinaryWaveToTextWave', 'sqrt', - 'StartMSTimer', 'StatsBetaCDF', 'StatsBetaPDF', 'StatsBinomialCDF', - 'StatsBinomialPDF', 'StatsCauchyCDF', 'StatsCauchyPDF', 'StatsChiCDF', - 'StatsChiPDF', 'StatsCMSSDCDF', 'StatsCorrelation', 'StatsDExpCDF', - 'StatsDExpPDF', 'StatsErlangCDF', 'StatsErlangPDF', 'StatsErrorPDF', - 'StatsEValueCDF', 'StatsEValuePDF', 'StatsExpCDF', 'StatsExpPDF', 'StatsFCDF', - 'StatsFPDF', 'StatsFriedmanCDF', 'StatsGammaCDF', 'StatsGammaPDF', - 'StatsGeometricCDF', 'StatsGeometricPDF', 'StatsGEVCDF', 'StatsGEVPDF', - 'StatsHyperGCDF', 'StatsHyperGPDF', 'StatsInvBetaCDF', 'StatsInvBinomialCDF', - 'StatsInvCauchyCDF', 'StatsInvChiCDF', 'StatsInvCMSSDCDF', 'StatsInvDExpCDF', - 'StatsInvEValueCDF', 'StatsInvExpCDF', 'StatsInvFCDF', 'StatsInvFriedmanCDF', - 'StatsInvGammaCDF', 'StatsInvGeometricCDF', 'StatsInvKuiperCDF', - 'StatsInvLogisticCDF', 'StatsInvLogNormalCDF', 'StatsInvMaxwellCDF', - 'StatsInvMooreCDF', 'StatsInvNBinomialCDF', 'StatsInvNCChiCDF', 'StatsInvNCFCDF', - 'StatsInvNormalCDF', 'StatsInvParetoCDF', 'StatsInvPoissonCDF', - 'StatsInvPowerCDF', 'StatsInvQCDF', 'StatsInvQpCDF', 'StatsInvRayleighCDF', - 'StatsInvRectangularCDF', 'StatsInvSpearmanCDF', 'StatsInvStudentCDF', - 'StatsInvTopDownCDF', 'StatsInvTriangularCDF', 'StatsInvUsquaredCDF', - 'StatsInvVonMisesCDF', 'StatsInvWeibullCDF', 'StatsKuiperCDF', - 'StatsLogisticCDF', 'StatsLogisticPDF', 'StatsLogNormalCDF', 'StatsLogNormalPDF', - 'StatsMaxwellCDF', 'StatsMaxwellPDF', 'StatsMedian', 'StatsMooreCDF', - 'StatsNBinomialCDF', 'StatsNBinomialPDF', 'StatsNCChiCDF', 'StatsNCChiPDF', - 'StatsNCFCDF', 'StatsNCFPDF', 'StatsNCTCDF', 'StatsNCTPDF', 'StatsNormalCDF', - 'StatsNormalPDF', 'StatsParetoCDF', 'StatsParetoPDF', 'StatsPermute', - 'StatsPoissonCDF', 'StatsPoissonPDF', 'StatsPowerCDF', 'StatsPowerNoise', - 'StatsPowerPDF', 'StatsQCDF', 'StatsQpCDF', 'StatsRayleighCDF', - 'StatsRayleighPDF', 'StatsRectangularCDF', 'StatsRectangularPDF', 'StatsRunsCDF', - 'StatsSpearmanRhoCDF', 'StatsStudentCDF', 'StatsStudentPDF', 'StatsTopDownCDF', - 'StatsTriangularCDF', 'StatsTriangularPDF', 'StatsTrimmedMean', - 'StatsUSquaredCDF', 'StatsVonMisesCDF', 'StatsVonMisesNoise', 'StatsVonMisesPDF', - 'StatsWaldCDF', 'StatsWaldPDF', 'StatsWeibullCDF', 'StatsWeibullPDF', - 'StopMSTimer', 'StringByKey', 'stringCRC', 'StringFromList', 'StringList', - 'stringmatch', 'StringToUnsignedByteWave', 'strlen', 'strsearch', - 'StrVarOrDefault', 'str2num', 'StudentA', 'StudentT', 'sum', 'SVAR_Exists', - 'TableInfo', 'TagVal', 'TagWaveRef', 'tan', 'tanh', 'TDMAddChannel', - 'TDMAddGroup', 'TDMAppendDataValues', 'TDMAppendDataValuesTime', - 'TDMChannelPropertyExists', 'TDMCloseChannel', 'TDMCloseFile', 'TDMCloseGroup', - 'TDMCreateChannelProperty', 'TDMCreateFile', 'TDMCreateFileProperty', - 'TDMCreateGroupProperty', 'TDMFilePropertyExists', 'TDMGetChannelPropertyNames', - 'TDMGetChannelPropertyNum', 'TDMGetChannelPropertyStr', - 'TDMGetChannelPropertyTime', 'TDMGetChannelPropertyType', 'TDMGetChannels', - 'TDMGetChannelStringPropertyLen', 'TDMGetDataType', 'TDMGetDataValues', - 'TDMGetDataValuesTime', 'TDMGetFilePropertyNames', 'TDMGetFilePropertyNum', - 'TDMGetFilePropertyStr', 'TDMGetFilePropertyTime', 'TDMGetFilePropertyType', - 'TDMGetFileStringPropertyLen', 'TDMGetGroupPropertyNames', - 'TDMGetGroupPropertyNum', 'TDMGetGroupPropertyStr', 'TDMGetGroupPropertyTime', - 'TDMGetGroupPropertyType', 'TDMGetGroups', 'TDMGetGroupStringPropertyLen', - 'TDMGetLibraryErrorDescription', 'TDMGetNumChannelProperties', - 'TDMGetNumChannels', 'TDMGetNumDataValues', 'TDMGetNumFileProperties', - 'TDMGetNumGroupProperties', 'TDMGetNumGroups', 'TDMGroupPropertyExists', - 'TDMOpenFile', 'TDMOpenFileEx', 'TDMRemoveChannel', 'TDMRemoveGroup', - 'TDMReplaceDataValues', 'TDMReplaceDataValuesTime', 'TDMSaveFile', - 'TDMSetChannelPropertyNum', 'TDMSetChannelPropertyStr', - 'TDMSetChannelPropertyTime', 'TDMSetDataValues', 'TDMSetDataValuesTime', - 'TDMSetFilePropertyNum', 'TDMSetFilePropertyStr', 'TDMSetFilePropertyTime', - 'TDMSetGroupPropertyNum', 'TDMSetGroupPropertyStr', 'TDMSetGroupPropertyTime', - 'TextEncodingCode', 'TextEncodingName', 'TextFile', 'ThreadGroupCreate', - 'ThreadGroupGetDF', 'ThreadGroupGetDFR', 'ThreadGroupRelease', 'ThreadGroupWait', - 'ThreadProcessorCount', 'ThreadReturnValue', 'ticks', 'time', 'TraceFromPixel', - 'TraceInfo', 'TraceNameList', 'TraceNameToWaveRef', 'TrimString', 'trunc', - 'UniqueName', 'UnPadString', 'UnsetEnvironmentVariable', 'UpperStr', 'URLDecode', - 'URLEncode', 'VariableList', 'Variance', 'vcsr', 'viAssertIntrSignal', - 'viAssertTrigger', 'viAssertUtilSignal', 'viClear', 'viClose', 'viDisableEvent', - 'viDiscardEvents', 'viEnableEvent', 'viFindNext', 'viFindRsrc', 'viGetAttribute', - 'viGetAttributeString', 'viGpibCommand', 'viGpibControlATN', 'viGpibControlREN', - 'viGpibPassControl', 'viGpibSendIFC', 'viIn8', 'viIn16', 'viIn32', 'viLock', - 'viMapAddress', 'viMapTrigger', 'viMemAlloc', 'viMemFree', 'viMoveIn8', - 'viMoveIn16', 'viMoveIn32', 'viMoveOut8', 'viMoveOut16', 'viMoveOut32', 'viOpen', - 'viOpenDefaultRM', 'viOut8', 'viOut16', 'viOut32', 'viPeek8', 'viPeek16', - 'viPeek32', 'viPoke8', 'viPoke16', 'viPoke32', 'viRead', 'viReadSTB', - 'viSetAttribute', 'viSetAttributeString', 'viStatusDesc', 'viTerminate', - 'viUnlock', 'viUnmapAddress', 'viUnmapTrigger', 'viUsbControlIn', - 'viUsbControlOut', 'viVxiCommandQuery', 'viWaitOnEvent', 'viWrite', 'VoigtFunc', - 'VoigtPeak', 'WaveCRC', 'WaveDataToString', 'WaveDims', 'WaveExists', 'WaveHash', - 'WaveInfo', 'WaveList', 'WaveMax', 'WaveMin', 'WaveMinAndMax', 'WaveModCount', - 'WaveName', 'WaveRefIndexed', 'WaveRefIndexedDFR', 'WaveRefsEqual', - 'WaveRefWaveToList', 'WaveTextEncoding', 'WaveType', 'WaveUnits', - 'WhichListItem', 'WinList', 'WinName', 'WinRecreation', 'WinType', 'wnoise', - 'xcsr', 'XWaveName', 'XWaveRefFromTrace', 'x2pnt', 'zcsr', 'ZernikeR', - 'zeromq_client_connect', 'zeromq_client_recv', 'zeromq_client_send', - 'zeromq_handler_start', 'zeromq_handler_stop', 'zeromq_pub_bind', - 'zeromq_pub_send', 'zeromq_server_bind', 'zeromq_server_recv', - 'zeromq_server_send', 'zeromq_set', 'zeromq_set_logging_template', 'zeromq_stop', - 'zeromq_sub_add_filter', 'zeromq_sub_connect', 'zeromq_sub_recv', - 'zeromq_sub_remove_filter', 'zeromq_test_callfunction', - 'zeromq_test_serializeWave', 'zeta' + "abs", + "acos", + "acosh", + "AddListItem", + "AiryA", + "AiryAD", + "AiryB", + "AiryBD", + "alog", + "AnnotationInfo", + "AnnotationList", + "area", + "areaXY", + "asin", + "asinh", + "atan", + "atanh", + "atan2", + "AxisInfo", + "AxisLabel", + "AxisList", + "AxisValFromPixel", + "AxonTelegraphAGetDataNum", + "AxonTelegraphAGetDataString", + "AxonTelegraphAGetDataStruct", + "AxonTelegraphGetDataNum", + "AxonTelegraphGetDataString", + "AxonTelegraphGetDataStruct", + "AxonTelegraphGetTimeoutMs", + "AxonTelegraphSetTimeoutMs", + "Base64Decode", + "Base64Encode", + "Besseli", + "Besselj", + "Besselk", + "Bessely", + "beta", + "betai", + "BinarySearch", + "BinarySearchInterp", + "binomial", + "binomialln", + "binomialNoise", + "cabs", + "CaptureHistory", + "CaptureHistoryStart", + "ceil", + "centerOfMass", + "centerOfMassXY", + "cequal", + "char2num", + "chebyshev", + "chebyshevU", + "CheckName", + "ChildWindowList", + "CleanupName", + "cmplx", + "cmpstr", + "conj", + "ContourInfo", + "ContourNameList", + "ContourNameToWaveRef", + "ContourZ", + "ControlNameList", + "ConvertTextEncoding", + "cos", + "cosh", + "cosIntegral", + "cot", + "coth", + "CountObjects", + "CountObjectsDFR", + "cpowi", + "CreateDataObjectName", + "CreationDate", + "csc", + "csch", + "CsrInfo", + "CsrWave", + "CsrWaveRef", + "CsrXWave", + "CsrXWaveRef", + "CTabList", + "DataFolderDir", + "DataFolderExists", + "DataFolderList", + "DataFolderRefChanges", + "DataFolderRefsEqual", + "DataFolderRefStatus", + "date", + "datetime", + "DateToJulian", + "date2secs", + "Dawson", + "defined", + "deltax", + "digamma", + "dilogarithm", + "DimDelta", + "DimOffset", + "DimSize", + "ei", + "ellipticE", + "ellipticK", + "enoise", + "equalWaves", + "erf", + "erfc", + "erfcw", + "erfcx", + "exists", + "exp", + "expInt", + "expIntegralE1", + "expNoise", + "factorial", + "Faddeeva", + "fakedata", + "faverage", + "faverageXY", + "fDAQmx_AI_ChannelConfigs", + "fDAQmx_AI_GetReader", + "fDAQmx_AO_UpdateOutputs", + "fDAQmx_ConnectTerminals", + "fDAQmx_CTR_Finished", + "fDAQmx_CTR_IsFinished", + "fDAQmx_CTR_IsPulseFinished", + "fDAQmx_CTR_ReadCounter", + "fDAQmx_CTR_ReadWithOptions", + "fDAQmx_CTR_SetPulseFrequency", + "fDAQmx_CTR_Start", + "fDAQmx_DeviceNames", + "fDAQmx_DIO_Finished", + "fDAQmx_DIO_PortWidth", + "fDAQmx_DIO_Read", + "fDAQmx_DIO_Write", + "fDAQmx_DisconnectTerminals", + "fDAQmx_ErrorString", + "fDAQmx_ExternalCalDate", + "fDAQmx_NumAnalogInputs", + "fDAQmx_NumAnalogOutputs", + "fDAQmx_NumCounters", + "fDAQmx_NumDIOPorts", + "fDAQmx_ReadChan", + "fDAQmx_ReadNamedChan", + "fDAQmx_ResetDevice", + "fDAQmx_ScanGetAvailable", + "fDAQmx_ScanGetNextIndex", + "fDAQmx_ScanStart", + "fDAQmx_ScanStop", + "fDAQmx_ScanWait", + "fDAQmx_ScanWaitWithTimeout", + "fDAQmx_SelfCalDate", + "fDAQmx_SelfCalibration", + "fDAQmx_WaveformStart", + "fDAQmx_WaveformStop", + "fDAQmx_WF_IsFinished", + "fDAQmx_WF_WaitUntilFinished", + "fDAQmx_WriteChan", + "FetchURL", + "FindDimLabel", + "FindListItem", + "floor", + "FontList", + "FontSizeHeight", + "FontSizeStringWidth", + "FresnelCos", + "FresnelSin", + "FuncRefInfo", + "FunctionInfo", + "FunctionList", + "FunctionPath", + "gamma", + "gammaEuler", + "gammaInc", + "gammaNoise", + "gammln", + "gammp", + "gammq", + "Gauss", + "Gauss1D", + "Gauss2D", + "gcd", + "GeometricMean", + "GetBrowserLine", + "GetBrowserSelection", + "GetDataFolder", + "GetDataFolderDFR", + "GetDefaultFont", + "GetDefaultFontSize", + "GetDefaultFontStyle", + "GetDimLabel", + "GetEnvironmentVariable", + "GetErrMessage", + "GetFormula", + "GetIndependentModuleName", + "GetIndexedObjName", + "GetIndexedObjNameDFR", + "GetKeyState", + "GetRTErrMessage", + "GetRTError", + "GetRTLocation", + "GetRTLocInfo", + "GetRTStackInfo", + "GetScrapText", + "GetUserData", + "GetWavesDataFolder", + "GetWavesDataFolderDFR", + "GetWindowBrowserSelection", + "GISGetAllFileFormats", + "GISSRefsAreEqual", + "GizmoInfo", + "GizmoScale", + "gnoise", + "GrepList", + "GrepString", + "GuideInfo", + "GuideNameList", + "Hash", + "hcsr", + "HDF5AttributeInfo", + "HDF5DatasetInfo", + "HDF5LibraryInfo", + "HDF5LinkInfo", + "HDF5TypeInfo", + "hermite", + "hermiteGauss", + "HyperGNoise", + "HyperGPFQ", + "HyperG0F1", + "HyperG1F1", + "HyperG2F1", + "i", + "IgorInfo", + "IgorVersion", + "imag", + "ImageInfo", + "ImageNameList", + "ImageNameToWaveRef", + "IndependentModuleList", + "IndexedDir", + "IndexedFile", + "IndexToScale", + "Inf", + "Integrate1D", + "interp", + "Interp2D", + "Interp3D", + "inverseERF", + "inverseERFC", + "ItemsInList", + "JacobiCn", + "JacobiSn", + "JulianToDate", + "Laguerre", + "LaguerreA", + "LaguerreGauss", + "LambertW", + "LayoutInfo", + "leftx", + "LegendreA", + "limit", + "ListMatch", + "ListToTextWave", + "ListToWaveRefWave", + "ln", + "log", + "logNormalNoise", + "lorentzianNoise", + "LowerStr", + "MacroInfo", + "MacroList", + "MacroPath", + "magsqr", + "MandelbrotPoint", + "MarcumQ", + "MatrixCondition", + "MatrixDet", + "MatrixDot", + "MatrixRank", + "MatrixTrace", + "max", + "MCC_AutoBridgeBal", + "MCC_AutoFastComp", + "MCC_AutoPipetteOffset", + "MCC_AutoSlowComp", + "MCC_AutoWholeCellComp", + "MCC_GetBridgeBalEnable", + "MCC_GetBridgeBalResist", + "MCC_GetFastCompCap", + "MCC_GetFastCompTau", + "MCC_GetHolding", + "MCC_GetHoldingEnable", + "MCC_GetMode", + "MCC_GetNeutralizationCap", + "MCC_GetNeutralizationEnable", + "MCC_GetOscKillerEnable", + "MCC_GetPipetteOffset", + "MCC_GetPrimarySignalGain", + "MCC_GetPrimarySignalHPF", + "MCC_GetPrimarySignalLPF", + "MCC_GetRsCompBandwidth", + "MCC_GetRsCompCorrection", + "MCC_GetRsCompEnable", + "MCC_GetRsCompPrediction", + "MCC_GetSecondarySignalGain", + "MCC_GetSecondarySignalLPF", + "MCC_GetSlowCompCap", + "MCC_GetSlowCompTau", + "MCC_GetSlowCompTauX20Enable", + "MCC_GetSlowCurrentInjEnable", + "MCC_GetSlowCurrentInjLevel", + "MCC_GetSlowCurrentInjSetlTime", + "MCC_GetWholeCellCompCap", + "MCC_GetWholeCellCompEnable", + "MCC_GetWholeCellCompResist", + "MCC_SelectMultiClamp700B", + "MCC_SetBridgeBalEnable", + "MCC_SetBridgeBalResist", + "MCC_SetFastCompCap", + "MCC_SetFastCompTau", + "MCC_SetHolding", + "MCC_SetHoldingEnable", + "MCC_SetMode", + "MCC_SetNeutralizationCap", + "MCC_SetNeutralizationEnable", + "MCC_SetOscKillerEnable", + "MCC_SetPipetteOffset", + "MCC_SetPrimarySignalGain", + "MCC_SetPrimarySignalHPF", + "MCC_SetPrimarySignalLPF", + "MCC_SetRsCompBandwidth", + "MCC_SetRsCompCorrection", + "MCC_SetRsCompEnable", + "MCC_SetRsCompPrediction", + "MCC_SetSecondarySignalGain", + "MCC_SetSecondarySignalLPF", + "MCC_SetSlowCompCap", + "MCC_SetSlowCompTau", + "MCC_SetSlowCompTauX20Enable", + "MCC_SetSlowCurrentInjEnable", + "MCC_SetSlowCurrentInjLevel", + "MCC_SetSlowCurrentInjSetlTime", + "MCC_SetTimeoutMs", + "MCC_SetWholeCellCompCap", + "MCC_SetWholeCellCompEnable", + "MCC_SetWholeCellCompResist", + "mean", + "median", + "min", + "mod", + "ModDate", + "MPFXEMGPeak", + "MPFXExpConvExpPeak", + "MPFXGaussPeak", + "MPFXLorentzianPeak", + "MPFXVoigtPeak", + "NameOfWave", + "NaN", + "NewFreeDataFolder", + "NewFreeWave", + "norm", + "NormalizeUnicode", + "note", + "NumberByKey", + "numpnts", + "numtype", + "NumVarOrDefault", + "num2char", + "num2istr", + "num2str", + "NVAR_Exists", + "OperationList", + "PadString", + "PanelResolution", + "ParamIsDefault", + "ParseFilePath", + "PathList", + "pcsr", + "Pi", + "PICTInfo", + "PICTList", + "PixelFromAxisVal", + "pnt2x", + "poissonNoise", + "poly", + "PolygonArea", + "poly2D", + "PossiblyQuoteName", + "ProcedureText", + "ProcedureVersion", + "p2rect", + "qcsr", + "real", + "RemoveByKey", + "RemoveEnding", + "RemoveFromList", + "RemoveListItem", + "ReplaceNumberByKey", + "ReplaceString", + "ReplaceStringByKey", + "ReplicateString", + "rightx", + "round", + "r2polar", + "sawtooth", + "scaleToIndex", + "ScreenResolution", + "sec", + "sech", + "Secs2Date", + "Secs2Time", + "SelectNumber", + "SelectString", + "SetEnvironmentVariable", + "sign", + "sin", + "sinc", + "sinh", + "sinIntegral", + "SortList", + "SpecialCharacterInfo", + "SpecialCharacterList", + "SpecialDirPath", + "SphericalBessJ", + "SphericalBessJD", + "SphericalBessY", + "SphericalBessYD", + "SphericalHarmonics", + "SQLAllocHandle", + "SQLAllocStmt", + "SQLBinaryWavesToTextWave", + "SQLBindCol", + "SQLBindParameter", + "SQLBrowseConnect", + "SQLBulkOperations", + "SQLCancel", + "SQLCloseCursor", + "SQLColAttributeNum", + "SQLColAttributeStr", + "SQLColumnPrivileges", + "SQLColumns", + "SQLConnect", + "SQLDataSources", + "SQLDescribeCol", + "SQLDescribeParam", + "SQLDisconnect", + "SQLDriverConnect", + "SQLDrivers", + "SQLEndTran", + "SQLError", + "SQLExecDirect", + "SQLExecute", + "SQLFetch", + "SQLFetchScroll", + "SQLForeignKeys", + "SQLFreeConnect", + "SQLFreeEnv", + "SQLFreeHandle", + "SQLFreeStmt", + "SQLGetConnectAttrNum", + "SQLGetConnectAttrStr", + "SQLGetCursorName", + "SQLGetDataNum", + "SQLGetDataStr", + "SQLGetDescFieldNum", + "SQLGetDescFieldStr", + "SQLGetDescRec", + "SQLGetDiagFieldNum", + "SQLGetDiagFieldStr", + "SQLGetDiagRec", + "SQLGetEnvAttrNum", + "SQLGetEnvAttrStr", + "SQLGetFunctions", + "SQLGetInfoNum", + "SQLGetInfoStr", + "SQLGetStmtAttrNum", + "SQLGetStmtAttrStr", + "SQLGetTypeInfo", + "SQLMoreResults", + "SQLNativeSql", + "SQLNumParams", + "SQLNumResultCols", + "SQLNumResultRowsIfKnown", + "SQLNumRowsFetched", + "SQLParamData", + "SQLPrepare", + "SQLPrimaryKeys", + "SQLProcedureColumns", + "SQLProcedures", + "SQLPutData", + "SQLReinitialize", + "SQLRowCount", + "SQLSetConnectAttrNum", + "SQLSetConnectAttrStr", + "SQLSetCursorName", + "SQLSetDescFieldNum", + "SQLSetDescFieldStr", + "SQLSetDescRec", + "SQLSetEnvAttrNum", + "SQLSetEnvAttrStr", + "SQLSetPos", + "SQLSetStmtAttrNum", + "SQLSetStmtAttrStr", + "SQLSpecialColumns", + "SQLStatistics", + "SQLTablePrivileges", + "SQLTables", + "SQLTextWaveToBinaryWaves", + "SQLTextWaveTo2DBinaryWave", + "SQLUpdateBoundValues", + "SQLXOPCheckState", + "SQL2DBinaryWaveToTextWave", + "sqrt", + "StartMSTimer", + "StatsBetaCDF", + "StatsBetaPDF", + "StatsBinomialCDF", + "StatsBinomialPDF", + "StatsCauchyCDF", + "StatsCauchyPDF", + "StatsChiCDF", + "StatsChiPDF", + "StatsCMSSDCDF", + "StatsCorrelation", + "StatsDExpCDF", + "StatsDExpPDF", + "StatsErlangCDF", + "StatsErlangPDF", + "StatsErrorPDF", + "StatsEValueCDF", + "StatsEValuePDF", + "StatsExpCDF", + "StatsExpPDF", + "StatsFCDF", + "StatsFPDF", + "StatsFriedmanCDF", + "StatsGammaCDF", + "StatsGammaPDF", + "StatsGeometricCDF", + "StatsGeometricPDF", + "StatsGEVCDF", + "StatsGEVPDF", + "StatsHyperGCDF", + "StatsHyperGPDF", + "StatsInvBetaCDF", + "StatsInvBinomialCDF", + "StatsInvCauchyCDF", + "StatsInvChiCDF", + "StatsInvCMSSDCDF", + "StatsInvDExpCDF", + "StatsInvEValueCDF", + "StatsInvExpCDF", + "StatsInvFCDF", + "StatsInvFriedmanCDF", + "StatsInvGammaCDF", + "StatsInvGeometricCDF", + "StatsInvKuiperCDF", + "StatsInvLogisticCDF", + "StatsInvLogNormalCDF", + "StatsInvMaxwellCDF", + "StatsInvMooreCDF", + "StatsInvNBinomialCDF", + "StatsInvNCChiCDF", + "StatsInvNCFCDF", + "StatsInvNormalCDF", + "StatsInvParetoCDF", + "StatsInvPoissonCDF", + "StatsInvPowerCDF", + "StatsInvQCDF", + "StatsInvQpCDF", + "StatsInvRayleighCDF", + "StatsInvRectangularCDF", + "StatsInvSpearmanCDF", + "StatsInvStudentCDF", + "StatsInvTopDownCDF", + "StatsInvTriangularCDF", + "StatsInvUsquaredCDF", + "StatsInvVonMisesCDF", + "StatsInvWeibullCDF", + "StatsKuiperCDF", + "StatsLogisticCDF", + "StatsLogisticPDF", + "StatsLogNormalCDF", + "StatsLogNormalPDF", + "StatsMaxwellCDF", + "StatsMaxwellPDF", + "StatsMedian", + "StatsMooreCDF", + "StatsNBinomialCDF", + "StatsNBinomialPDF", + "StatsNCChiCDF", + "StatsNCChiPDF", + "StatsNCFCDF", + "StatsNCFPDF", + "StatsNCTCDF", + "StatsNCTPDF", + "StatsNormalCDF", + "StatsNormalPDF", + "StatsParetoCDF", + "StatsParetoPDF", + "StatsPermute", + "StatsPoissonCDF", + "StatsPoissonPDF", + "StatsPowerCDF", + "StatsPowerNoise", + "StatsPowerPDF", + "StatsQCDF", + "StatsQpCDF", + "StatsRayleighCDF", + "StatsRayleighPDF", + "StatsRectangularCDF", + "StatsRectangularPDF", + "StatsRunsCDF", + "StatsSpearmanRhoCDF", + "StatsStudentCDF", + "StatsStudentPDF", + "StatsTopDownCDF", + "StatsTriangularCDF", + "StatsTriangularPDF", + "StatsTrimmedMean", + "StatsUSquaredCDF", + "StatsVonMisesCDF", + "StatsVonMisesNoise", + "StatsVonMisesPDF", + "StatsWaldCDF", + "StatsWaldPDF", + "StatsWeibullCDF", + "StatsWeibullPDF", + "StopMSTimer", + "StringByKey", + "stringCRC", + "StringFromList", + "StringList", + "stringmatch", + "StringToUnsignedByteWave", + "strlen", + "strsearch", + "StrVarOrDefault", + "str2num", + "StudentA", + "StudentT", + "sum", + "SVAR_Exists", + "TableInfo", + "TagVal", + "TagWaveRef", + "tan", + "tanh", + "TDMAddChannel", + "TDMAddGroup", + "TDMAppendDataValues", + "TDMAppendDataValuesTime", + "TDMChannelPropertyExists", + "TDMCloseChannel", + "TDMCloseFile", + "TDMCloseGroup", + "TDMCreateChannelProperty", + "TDMCreateFile", + "TDMCreateFileProperty", + "TDMCreateGroupProperty", + "TDMFilePropertyExists", + "TDMGetChannelPropertyNames", + "TDMGetChannelPropertyNum", + "TDMGetChannelPropertyStr", + "TDMGetChannelPropertyTime", + "TDMGetChannelPropertyType", + "TDMGetChannels", + "TDMGetChannelStringPropertyLen", + "TDMGetDataType", + "TDMGetDataValues", + "TDMGetDataValuesTime", + "TDMGetFilePropertyNames", + "TDMGetFilePropertyNum", + "TDMGetFilePropertyStr", + "TDMGetFilePropertyTime", + "TDMGetFilePropertyType", + "TDMGetFileStringPropertyLen", + "TDMGetGroupPropertyNames", + "TDMGetGroupPropertyNum", + "TDMGetGroupPropertyStr", + "TDMGetGroupPropertyTime", + "TDMGetGroupPropertyType", + "TDMGetGroups", + "TDMGetGroupStringPropertyLen", + "TDMGetLibraryErrorDescription", + "TDMGetNumChannelProperties", + "TDMGetNumChannels", + "TDMGetNumDataValues", + "TDMGetNumFileProperties", + "TDMGetNumGroupProperties", + "TDMGetNumGroups", + "TDMGroupPropertyExists", + "TDMOpenFile", + "TDMOpenFileEx", + "TDMRemoveChannel", + "TDMRemoveGroup", + "TDMReplaceDataValues", + "TDMReplaceDataValuesTime", + "TDMSaveFile", + "TDMSetChannelPropertyNum", + "TDMSetChannelPropertyStr", + "TDMSetChannelPropertyTime", + "TDMSetDataValues", + "TDMSetDataValuesTime", + "TDMSetFilePropertyNum", + "TDMSetFilePropertyStr", + "TDMSetFilePropertyTime", + "TDMSetGroupPropertyNum", + "TDMSetGroupPropertyStr", + "TDMSetGroupPropertyTime", + "TextEncodingCode", + "TextEncodingName", + "TextFile", + "ThreadGroupCreate", + "ThreadGroupGetDF", + "ThreadGroupGetDFR", + "ThreadGroupRelease", + "ThreadGroupWait", + "ThreadProcessorCount", + "ThreadReturnValue", + "ticks", + "time", + "TraceFromPixel", + "TraceInfo", + "TraceNameList", + "TraceNameToWaveRef", + "TrimString", + "trunc", + "UniqueName", + "UnPadString", + "UnsetEnvironmentVariable", + "UpperStr", + "URLDecode", + "URLEncode", + "VariableList", + "Variance", + "vcsr", + "viAssertIntrSignal", + "viAssertTrigger", + "viAssertUtilSignal", + "viClear", + "viClose", + "viDisableEvent", + "viDiscardEvents", + "viEnableEvent", + "viFindNext", + "viFindRsrc", + "viGetAttribute", + "viGetAttributeString", + "viGpibCommand", + "viGpibControlATN", + "viGpibControlREN", + "viGpibPassControl", + "viGpibSendIFC", + "viIn8", + "viIn16", + "viIn32", + "viLock", + "viMapAddress", + "viMapTrigger", + "viMemAlloc", + "viMemFree", + "viMoveIn8", + "viMoveIn16", + "viMoveIn32", + "viMoveOut8", + "viMoveOut16", + "viMoveOut32", + "viOpen", + "viOpenDefaultRM", + "viOut8", + "viOut16", + "viOut32", + "viPeek8", + "viPeek16", + "viPeek32", + "viPoke8", + "viPoke16", + "viPoke32", + "viRead", + "viReadSTB", + "viSetAttribute", + "viSetAttributeString", + "viStatusDesc", + "viTerminate", + "viUnlock", + "viUnmapAddress", + "viUnmapTrigger", + "viUsbControlIn", + "viUsbControlOut", + "viVxiCommandQuery", + "viWaitOnEvent", + "viWrite", + "VoigtFunc", + "VoigtPeak", + "WaveCRC", + "WaveDataToString", + "WaveDims", + "WaveExists", + "WaveHash", + "WaveInfo", + "WaveList", + "WaveMax", + "WaveMin", + "WaveMinAndMax", + "WaveModCount", + "WaveName", + "WaveRefIndexed", + "WaveRefIndexedDFR", + "WaveRefsEqual", + "WaveRefWaveToList", + "WaveTextEncoding", + "WaveType", + "WaveUnits", + "WhichListItem", + "WinList", + "WinName", + "WinRecreation", + "WinType", + "wnoise", + "xcsr", + "XWaveName", + "XWaveRefFromTrace", + "x2pnt", + "zcsr", + "ZernikeR", + "zeromq_client_connect", + "zeromq_client_recv", + "zeromq_client_send", + "zeromq_handler_start", + "zeromq_handler_stop", + "zeromq_pub_bind", + "zeromq_pub_send", + "zeromq_server_bind", + "zeromq_server_recv", + "zeromq_server_send", + "zeromq_set", + "zeromq_set_logging_template", + "zeromq_stop", + "zeromq_sub_add_filter", + "zeromq_sub_connect", + "zeromq_sub_recv", + "zeromq_sub_remove_filter", + "zeromq_test_callfunction", + "zeromq_test_serializeWave", + "zeta", ) tokens = { - 'root': [ - (r'//.*$', Comment.Single), + "root": [ + (r"//.*$", Comment.Single), (r'"([^"\\]|\\.)*"', String), # Flow Control. - (words(flowControl, prefix=r'\b', suffix=r'\b'), Keyword), + (words(flowControl, prefix=r"\b", suffix=r"\b"), Keyword), # Types. - (words(types, prefix=r'\b', suffix=r'\b'), Keyword.Type), + (words(types, prefix=r"\b", suffix=r"\b"), Keyword.Type), # Keywords. - (words(keywords, prefix=r'\b', suffix=r'\b'), Keyword.Reserved), + (words(keywords, prefix=r"\b", suffix=r"\b"), Keyword.Reserved), # Built-in operations. - (words(operations, prefix=r'\b', suffix=r'\b'), Name.Class), + (words(operations, prefix=r"\b", suffix=r"\b"), Name.Class), # Built-in functions. - (words(functions, prefix=r'\b', suffix=r'\b'), Name.Function), + (words(functions, prefix=r"\b", suffix=r"\b"), Name.Function), # Compiler directives. - (r'^#(include|pragma|define|undef|ifdef|ifndef|if|elif|else|endif)', - Name.Decorator), - (r'\s+', Whitespace), + ( + r"^#(include|pragma|define|undef|ifdef|ifndef|if|elif|else|endif)", + Name.Decorator, + ), + (r"\s+", Whitespace), (r'[^a-z"/]+$', Text), - (r'.', Text), + (r".", Text), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/inferno.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/inferno.py index b5caf55..a7fa363 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/inferno.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/inferno.py @@ -1,20 +1,28 @@ """ - pygments.lexers.inferno - ~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.inferno +~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for Inferno os and all the related stuff. +Lexers for Inferno os and all the related stuff. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, bygroups, default -from pygments.token import Punctuation, Comment, Operator, Keyword, \ - Name, String, Number, Whitespace +from pygments.token import ( + Punctuation, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Whitespace, +) -__all__ = ['LimboLexer'] +__all__ = ["LimboLexer"] class LimboLexer(RegexLexer): @@ -25,63 +33,76 @@ class LimboLexer(RegexLexer): - maybe implement better var declaration highlighting - some simple syntax error highlighting """ - name = 'Limbo' - url = 'http://www.vitanuova.com/inferno/limbo.html' - aliases = ['limbo'] - filenames = ['*.b'] - mimetypes = ['text/limbo'] - version_added = '2.0' + + name = "Limbo" + url = "http://www.vitanuova.com/inferno/limbo.html" + aliases = ["limbo"] + filenames = ["*.b"] + mimetypes = ["text/limbo"] + version_added = "2.0" tokens = { - 'whitespace': [ - (r'^(\s*)([a-zA-Z_]\w*:)(\s*\n)', - bygroups(Whitespace, Name.Label, Whitespace)), - (r'\n', Whitespace), - (r'\s+', Whitespace), - (r'#(\n|(.|\n)*?[^\\]\n)', Comment.Single), + "whitespace": [ + ( + r"^(\s*)([a-zA-Z_]\w*:)(\s*\n)", + bygroups(Whitespace, Name.Label, Whitespace), + ), + (r"\n", Whitespace), + (r"\s+", Whitespace), + (r"#(\n|(.|\n)*?[^\\]\n)", Comment.Single), ], - 'string': [ - (r'"', String, '#pop'), - (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' - r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape), - (r'[^\\"\n]+', String), # all other characters - (r'\\', String), # stray backslash + "string": [ + (r'"', String, "#pop"), + ( + r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' + r"u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})", + String.Escape, + ), + (r'[^\\"\n]+', String), # all other characters + (r"\\", String), # stray backslash ], - 'statements': [ - (r'"', String, 'string'), + "statements": [ + (r'"', String, "string"), (r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), - (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float), - (r'(\d+\.\d*|\.\d+|\d+[fF])', Number.Float), - (r'16r[0-9a-fA-F]+', Number.Hex), - (r'8r[0-7]+', Number.Oct), - (r'((([1-3]\d)|([2-9]))r)?(\d+)', Number.Integer), - (r'[()\[\],.]', Punctuation), - (r'[~!%^&*+=|?:<>/-]|(->)|(<-)|(=>)|(::)', Operator), - (r'(alt|break|case|continue|cyclic|do|else|exit' - r'for|hd|if|implement|import|include|len|load|or' - r'pick|return|spawn|tagof|tl|to|while)\b', Keyword), - (r'(byte|int|big|real|string|array|chan|list|adt' - r'|fn|ref|of|module|self|type)\b', Keyword.Type), - (r'(con|iota|nil)\b', Keyword.Constant), - (r'[a-zA-Z_]\w*', Name), + (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+", Number.Float), + (r"(\d+\.\d*|\.\d+|\d+[fF])", Number.Float), + (r"16r[0-9a-fA-F]+", Number.Hex), + (r"8r[0-7]+", Number.Oct), + (r"((([1-3]\d)|([2-9]))r)?(\d+)", Number.Integer), + (r"[()\[\],.]", Punctuation), + (r"[~!%^&*+=|?:<>/-]|(->)|(<-)|(=>)|(::)", Operator), + ( + r"(alt|break|case|continue|cyclic|do|else|exit" + r"for|hd|if|implement|import|include|len|load|or" + r"pick|return|spawn|tagof|tl|to|while)\b", + Keyword, + ), + ( + r"(byte|int|big|real|string|array|chan|list|adt" + r"|fn|ref|of|module|self|type)\b", + Keyword.Type, + ), + (r"(con|iota|nil)\b", Keyword.Constant), + (r"[a-zA-Z_]\w*", Name), ], - 'statement' : [ - include('whitespace'), - include('statements'), - ('[{}]', Punctuation), - (';', Punctuation, '#pop'), + "statement": [ + include("whitespace"), + include("statements"), + ("[{}]", Punctuation), + (";", Punctuation, "#pop"), ], - 'root': [ - include('whitespace'), - default('statement'), + "root": [ + include("whitespace"), + default("statement"), ], } def analyse_text(text): # Any limbo module implements something - if re.search(r'^implement \w+;', text, re.MULTILINE): + if re.search(r"^implement \w+;", text, re.MULTILINE): return 0.7 + # TODO: # - Make lexers for: # - asm sources diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/installers.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/installers.py index 3f12a25..885c3e9 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/installers.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/installers.py @@ -1,145 +1,175 @@ """ - pygments.lexers.installers - ~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.installers +~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for installer/packager DSLs and formats. +Lexers for installer/packager DSLs and formats. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re from pygments.lexer import RegexLexer, include, bygroups, using, this, default -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Punctuation, Generic, Number, Whitespace +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Punctuation, + Generic, + Number, + Whitespace, +) -__all__ = ['NSISLexer', 'RPMSpecLexer', - 'DebianSourcesLexer', 'SourcesListLexer', - 'DebianControlLexer'] +__all__ = [ + "NSISLexer", + "RPMSpecLexer", + "DebianSourcesLexer", + "SourcesListLexer", + "DebianControlLexer", +] class NSISLexer(RegexLexer): """ For NSIS scripts. """ - name = 'NSIS' - url = 'http://nsis.sourceforge.net/' - aliases = ['nsis', 'nsi', 'nsh'] - filenames = ['*.nsi', '*.nsh'] - mimetypes = ['text/x-nsis'] - version_added = '1.6' + + name = "NSIS" + url = "http://nsis.sourceforge.net/" + aliases = ["nsis", "nsi", "nsh"] + filenames = ["*.nsi", "*.nsh"] + mimetypes = ["text/x-nsis"] + version_added = "1.6" flags = re.IGNORECASE tokens = { - 'root': [ - (r'([;#].*)(\n)', bygroups(Comment, Whitespace)), + "root": [ + (r"([;#].*)(\n)", bygroups(Comment, Whitespace)), (r"'.*?'", String.Single), - (r'"', String.Double, 'str_double'), - (r'`', String.Backtick, 'str_backtick'), - include('macro'), - include('interpol'), - include('basic'), - (r'\$\{[a-z_|][\w|]*\}', Keyword.Pseudo), - (r'/[a-z_]\w*', Name.Attribute), - (r'\s+', Whitespace), - (r'[\w.]+', Text), + (r'"', String.Double, "str_double"), + (r"`", String.Backtick, "str_backtick"), + include("macro"), + include("interpol"), + include("basic"), + (r"\$\{[a-z_|][\w|]*\}", Keyword.Pseudo), + (r"/[a-z_]\w*", Name.Attribute), + (r"\s+", Whitespace), + (r"[\w.]+", Text), ], - 'basic': [ - (r'(\n)(Function)(\s+)([._a-z][.\w]*)\b', - bygroups(Whitespace, Keyword, Whitespace, Name.Function)), - (r'\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\b', - bygroups(Keyword.Namespace, Punctuation, Name.Function)), - (r'\b([_a-z]\w*)(:)', bygroups(Name.Label, Punctuation)), - (r'(\b[ULS]|\B)([!<>=]?=|\<\>?|\>)\B', Operator), - (r'[|+-]', Operator), - (r'\\', Punctuation), - (r'\b(Abort|Add(?:BrandingImage|Size)|' - r'Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|' - r'BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|' - r'(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|' - r'ComponentText|CopyFiles|CRCCheck|' - r'Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|' - r'Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|' - r'Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|' - r'EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|' - r'ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|' - r'Read(?:Byte)?|Seek|Write(?:Byte)?)?|' - r'Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|' - r'Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|' - r'ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|' - r'InstDirError|LabelAddress|TempFileName)|' - r'Goto|HideWindow|Icon|' - r'If(?:Abort|Errors|FileExists|RebootFlag|Silent)|' - r'InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|' - r'Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|' - r'IsWindow|LangString(?:UP)?|' - r'License(?:BkColor|Data|ForceSelection|LangString|Text)|' - r'LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|' - r'MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|' - r'PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|' - r'Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|' - r'Return|RMDir|SearchPath|Section(?:Divider|End|' - r'(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|' - r'SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|' - r'or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|' - r'DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|' - r'Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|' - r'Silent|StaticBkColor)|' - r'Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|' - r'SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|' - r'Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|' - r'UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|' - r'Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|' - r'XPStyle)\b', Keyword), - (r'\b(CUR|END|(?:FILE_ATTRIBUTE_)?' - r'(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|' - r'HK(CC|CR|CU|DD|LM|PD|U)|' - r'HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|' - r'LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|' - r'ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|' - r'MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|' - r'ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|' - r'OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|' - r'YESNO(?:CANCEL)?)|SET|SHCTX|' - r'SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|' - r'admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|' - r'force|hide|highest|if(?:diff|newer)|lastused|leave|left|' - r'listonly|lzma|nevershow|none|normal|off|on|pop|push|' - r'radiobuttons|right|show|silent|silentlog|smooth|textonly|top|' - r'true|try|user|zlib)\b', Name.Constant), + "basic": [ + ( + r"(\n)(Function)(\s+)([._a-z][.\w]*)\b", + bygroups(Whitespace, Keyword, Whitespace, Name.Function), + ), + ( + r"\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\b", + bygroups(Keyword.Namespace, Punctuation, Name.Function), + ), + (r"\b([_a-z]\w*)(:)", bygroups(Name.Label, Punctuation)), + (r"(\b[ULS]|\B)([!<>=]?=|\<\>?|\>)\B", Operator), + (r"[|+-]", Operator), + (r"\\", Punctuation), + ( + r"\b(Abort|Add(?:BrandingImage|Size)|" + r"Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|" + r"BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|" + r"(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|" + r"ComponentText|CopyFiles|CRCCheck|" + r"Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|" + r"Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|" + r"Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|" + r"EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|" + r"ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|" + r"Read(?:Byte)?|Seek|Write(?:Byte)?)?|" + r"Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|" + r"Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|" + r"ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|" + r"InstDirError|LabelAddress|TempFileName)|" + r"Goto|HideWindow|Icon|" + r"If(?:Abort|Errors|FileExists|RebootFlag|Silent)|" + r"InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|" + r"Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|" + r"IsWindow|LangString(?:UP)?|" + r"License(?:BkColor|Data|ForceSelection|LangString|Text)|" + r"LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|" + r"MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|" + r"PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|" + r"Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|" + r"Return|RMDir|SearchPath|Section(?:Divider|End|" + r"(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|" + r"SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|" + r"or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|" + r"DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|" + r"Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|" + r"Silent|StaticBkColor)|" + r"Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|" + r"SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|" + r"Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|" + r"UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|" + r"Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|" + r"XPStyle)\b", + Keyword, + ), + ( + r"\b(CUR|END|(?:FILE_ATTRIBUTE_)?" + r"(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|" + r"HK(CC|CR|CU|DD|LM|PD|U)|" + r"HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|" + r"LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|" + r"ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|" + r"MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|" + r"ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|" + r"OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|" + r"YESNO(?:CANCEL)?)|SET|SHCTX|" + r"SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|" + r"admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|" + r"force|hide|highest|if(?:diff|newer)|lastused|leave|left|" + r"listonly|lzma|nevershow|none|normal|off|on|pop|push|" + r"radiobuttons|right|show|silent|silentlog|smooth|textonly|top|" + r"true|try|user|zlib)\b", + Name.Constant, + ), ], - 'macro': [ - (r'\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|' - r'delfilefile|echo(?:message)?|else|endif|error|execute|' - r'if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|' - r'search(?:parse|replace)|system|tempfilesymbol|undef|verbose|' - r'warning)\b', Comment.Preproc), + "macro": [ + ( + r"\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|" + r"delfilefile|echo(?:message)?|else|endif|error|execute|" + r"if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|" + r"search(?:parse|replace)|system|tempfilesymbol|undef|verbose|" + r"warning)\b", + Comment.Preproc, + ), ], - 'interpol': [ - (r'\$(R?[0-9])', Name.Builtin.Pseudo), # registers - (r'\$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|' - r'DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|' - r'HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|' - r'PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|' - r'RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|' - r'STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})', - Name.Builtin), - (r'\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)', Name.Variable.Global), - (r'\$[a-z_]\w*', Name.Variable), + "interpol": [ + (r"\$(R?[0-9])", Name.Builtin.Pseudo), # registers + ( + r"\$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|" + r"DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|" + r"HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|" + r"PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|" + r"RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|" + r"STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})", + Name.Builtin, + ), + (r"\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)", Name.Variable.Global), + (r"\$[a-z_]\w*", Name.Variable), ], - 'str_double': [ - (r'"', String.Double, '#pop'), + "str_double": [ + (r'"', String.Double, "#pop"), (r'\$(\\[nrt"]|\$)', String.Escape), - include('interpol'), + include("interpol"), (r'[^"]+', String.Double), ], - 'str_backtick': [ - (r'`', String.Double, '#pop'), + "str_backtick": [ + (r"`", String.Double, "#pop"), (r'\$(\\[nrt"]|\$)', String.Escape), - include('interpol'), - (r'[^`]+', String.Double), + include("interpol"), + (r"[^`]+", String.Double), ], } @@ -149,72 +179,78 @@ class RPMSpecLexer(RegexLexer): For RPM ``.spec`` files. """ - name = 'RPMSpec' - aliases = ['spec'] - filenames = ['*.spec'] - mimetypes = ['text/x-rpm-spec'] - url = 'https://rpm-software-management.github.io/rpm/manual/spec.html' - version_added = '1.6' + name = "RPMSpec" + aliases = ["spec"] + filenames = ["*.spec"] + mimetypes = ["text/x-rpm-spec"] + url = "https://rpm-software-management.github.io/rpm/manual/spec.html" + version_added = "1.6" - _directives = ('(?:package|prep|build|install|clean|check|pre[a-z]*|' - 'post[a-z]*|trigger[a-z]*|files)') + _directives = ( + "(?:package|prep|build|install|clean|check|pre[a-z]*|" + "post[a-z]*|trigger[a-z]*|files)" + ) tokens = { - 'root': [ - (r'#.*$', Comment), - include('basic'), + "root": [ + (r"#.*$", Comment), + include("basic"), ], - 'description': [ - (r'^(%' + _directives + ')(.*)$', - bygroups(Name.Decorator, Text), '#pop'), - (r'\s+', Whitespace), - (r'.', Text), + "description": [ + (r"^(%" + _directives + ")(.*)$", bygroups(Name.Decorator, Text), "#pop"), + (r"\s+", Whitespace), + (r".", Text), ], - 'changelog': [ - (r'\*.*$', Generic.Subheading), - (r'^(%' + _directives + ')(.*)$', - bygroups(Name.Decorator, Text), '#pop'), - (r'\s+', Whitespace), - (r'.', Text), + "changelog": [ + (r"\*.*$", Generic.Subheading), + (r"^(%" + _directives + ")(.*)$", bygroups(Name.Decorator, Text), "#pop"), + (r"\s+", Whitespace), + (r".", Text), ], - 'string': [ - (r'"', String.Double, '#pop'), + "string": [ + (r'"', String.Double, "#pop"), (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), - include('interpol'), - (r'.', String.Double), + include("interpol"), + (r".", String.Double), ], - 'basic': [ - include('macro'), - (r'(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|' - r'Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|' - r'Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Suggests|Provides|Conflicts|' - r'Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$', - bygroups(Generic.Heading, Punctuation, using(this))), - (r'^%description', Name.Decorator, 'description'), - (r'^%changelog', Name.Decorator, 'changelog'), - (r'^(%' + _directives + ')(.*)$', bygroups(Name.Decorator, Text)), - (r'%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|' - r'make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)', - Keyword), - include('interpol'), + "basic": [ + include("macro"), + ( + r"(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|" + r"Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|" + r"Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Suggests|Provides|Conflicts|" + r"Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$", + bygroups(Generic.Heading, Punctuation, using(this)), + ), + (r"^%description", Name.Decorator, "description"), + (r"^%changelog", Name.Decorator, "changelog"), + (r"^(%" + _directives + ")(.*)$", bygroups(Name.Decorator, Text)), + ( + r"%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|" + r"make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)", + Keyword, + ), + include("interpol"), (r"'.*?'", String.Single), - (r'"', String.Double, 'string'), - (r'\s+', Whitespace), - (r'.', Text), + (r'"', String.Double, "string"), + (r"\s+", Whitespace), + (r".", Text), ], - 'macro': [ - (r'%define.*$', Comment.Preproc), - (r'%\{\!\?.*%define.*\}', Comment.Preproc), - (r'(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$', - bygroups(Comment.Preproc, Text)), + "macro": [ + (r"%define.*$", Comment.Preproc), + (r"%\{\!\?.*%define.*\}", Comment.Preproc), + ( + r"(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$", + bygroups(Comment.Preproc, Text), + ), + ], + "interpol": [ + (r"%\{?__[a-z_]+\}?", Name.Function), + (r"%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?", Keyword.Pseudo), + (r"%\{\?\w+\}", Name.Variable), + (r"\$\{?RPM_[A-Z0-9_]+\}?", Name.Variable.Global), + (r"%\{[a-zA-Z]\w+\}", Keyword.Constant), ], - 'interpol': [ - (r'%\{?__[a-z_]+\}?', Name.Function), - (r'%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?', Keyword.Pseudo), - (r'%\{\?\w+\}', Name.Variable), - (r'\$\{?RPM_[A-Z0-9_]+\}?', Name.Variable.Global), - (r'%\{[a-zA-Z]\w+\}', Keyword.Constant), - ] } @@ -223,22 +259,28 @@ class DebianSourcesLexer(RegexLexer): Lexer that highlights debian.sources files. """ - name = 'Debian Sources file' - aliases = ['debian.sources'] - filenames = ['*.sources'] - version_added = '2.19' - url = 'https://manpages.debian.org/bookworm/apt/sources.list.5.en.html#THE_DEB_AND_DEB-SRC_TYPES:_GENERAL_FORMAT' + name = "Debian Sources file" + aliases = ["debian.sources"] + filenames = ["*.sources"] + version_added = "2.19" + url = "https://manpages.debian.org/bookworm/apt/sources.list.5.en.html#THE_DEB_AND_DEB-SRC_TYPES:_GENERAL_FORMAT" tokens = { - 'root': [ - (r'^(Signed-By)(:)(\s*)', bygroups(Keyword, Punctuation, Whitespace), 'signed-by'), - (r'^([a-zA-Z\-0-9\.]*?)(:)(\s*)(.*?)$', - bygroups(Keyword, Punctuation, Whitespace, String)), + "root": [ + ( + r"^(Signed-By)(:)(\s*)", + bygroups(Keyword, Punctuation, Whitespace), + "signed-by", + ), + ( + r"^([a-zA-Z\-0-9\.]*?)(:)(\s*)(.*?)$", + bygroups(Keyword, Punctuation, Whitespace, String), + ), + ], + "signed-by": [ + (r" -----END PGP PUBLIC KEY BLOCK-----\n", Text, "#pop"), + (r".+\n", Text), ], - 'signed-by': [ - (r' -----END PGP PUBLIC KEY BLOCK-----\n', Text, '#pop'), - (r'.+\n', Text), - ], } @@ -247,46 +289,45 @@ class SourcesListLexer(RegexLexer): Lexer that highlights debian sources.list files. """ - name = 'Debian Sourcelist' - aliases = ['debsources', 'sourceslist', 'sources.list'] - filenames = ['sources.list'] - version_added = '0.7' - mimetype = ['application/x-debian-sourceslist'] - url = 'https://wiki.debian.org/SourcesList' + name = "Debian Sourcelist" + aliases = ["debsources", "sourceslist", "sources.list"] + filenames = ["sources.list"] + version_added = "0.7" + mimetype = ["application/x-debian-sourceslist"] + url = "https://wiki.debian.org/SourcesList" tokens = { - 'root': [ - (r'\s+', Whitespace), - (r'#.*?$', Comment), - (r'^(deb(?:-src)?)(\s+)', - bygroups(Keyword, Whitespace), 'distribution') + "root": [ + (r"\s+", Whitespace), + (r"#.*?$", Comment), + (r"^(deb(?:-src)?)(\s+)", bygroups(Keyword, Whitespace), "distribution"), ], - 'distribution': [ - (r'#.*?$', Comment, '#pop'), - (r'\$\(ARCH\)', Name.Variable), - (r'[^\s$[]+', String), - (r'\[', String.Other, 'escaped-distribution'), - (r'\$', String), - (r'\s+', Whitespace, 'components') + "distribution": [ + (r"#.*?$", Comment, "#pop"), + (r"\$\(ARCH\)", Name.Variable), + (r"[^\s$[]+", String), + (r"\[", String.Other, "escaped-distribution"), + (r"\$", String), + (r"\s+", Whitespace, "components"), ], - 'escaped-distribution': [ - (r'\]', String.Other, '#pop'), - (r'\$\(ARCH\)', Name.Variable), - (r'[^\]$]+', String.Other), - (r'\$', String.Other) + "escaped-distribution": [ + (r"\]", String.Other, "#pop"), + (r"\$\(ARCH\)", Name.Variable), + (r"[^\]$]+", String.Other), + (r"\$", String.Other), + ], + "components": [ + (r"#.*?$", Comment, "#pop:2"), + (r"$", Text, "#pop:2"), + (r"\s+", Whitespace), + (r"\S+", Keyword.Pseudo), ], - 'components': [ - (r'#.*?$', Comment, '#pop:2'), - (r'$', Text, '#pop:2'), - (r'\s+', Whitespace), - (r'\S+', Keyword.Pseudo), - ] } def analyse_text(text): for line in text.splitlines(): line = line.strip() - if line.startswith('deb ') or line.startswith('deb-src '): + if line.startswith("deb ") or line.startswith("deb-src "): return True @@ -294,59 +335,85 @@ class DebianControlLexer(RegexLexer): """ Lexer for Debian ``control`` files and ``apt-cache show `` outputs. """ - name = 'Debian Control file' - url = 'https://www.debian.org/doc/debian-policy/ch-controlfields.html' - aliases = ['debcontrol', 'control'] - filenames = ['control'] - version_added = '0.9' + + name = "Debian Control file" + url = "https://www.debian.org/doc/debian-policy/ch-controlfields.html" + aliases = ["debcontrol", "control"] + filenames = ["control"] + version_added = "0.9" tokens = { - 'root': [ - (r'^(Description)', Keyword, 'description'), - (r'^(Maintainer|Uploaders|Changed-By)(:)(\s*)', - bygroups(Keyword, Punctuation, Whitespace), - 'maintainer'), - (r'^((?:Build-|Pre-)?Depends(?:-Indep|-Arch)?)(:)(\s*)', - bygroups(Keyword, Punctuation, Whitespace), 'package_list'), - (r'^(Recommends|Suggests|Enhances|Breaks|Replaces|Provides|Conflicts)(:)(\s*)', - bygroups(Keyword, Punctuation, Whitespace), 'package_list'), - (r'^((?:Python-)?Version)(:)(\s*)(\S+)$', - bygroups(Keyword, Punctuation, Whitespace, Number)), - (r'^((?:Installed-)?Size)(:)(\s*)(\S+)$', - bygroups(Keyword, Punctuation, Whitespace, Number)), - (r'^(MD5Sum|SHA1|SHA256)(:)(\s*)(\S+)$', - bygroups(Keyword, Punctuation, Whitespace, Number)), - (r'^([a-zA-Z\-0-9\.]*?)(:)(\s*)(.*?)$', - bygroups(Keyword, Punctuation, Whitespace, String)), + "root": [ + (r"^(Description)", Keyword, "description"), + ( + r"^(Maintainer|Uploaders|Changed-By)(:)(\s*)", + bygroups(Keyword, Punctuation, Whitespace), + "maintainer", + ), + ( + r"^((?:Build-|Pre-)?Depends(?:-Indep|-Arch)?)(:)(\s*)", + bygroups(Keyword, Punctuation, Whitespace), + "package_list", + ), + ( + r"^(Recommends|Suggests|Enhances|Breaks|Replaces|Provides|Conflicts)(:)(\s*)", + bygroups(Keyword, Punctuation, Whitespace), + "package_list", + ), + ( + r"^((?:Python-)?Version)(:)(\s*)(\S+)$", + bygroups(Keyword, Punctuation, Whitespace, Number), + ), + ( + r"^((?:Installed-)?Size)(:)(\s*)(\S+)$", + bygroups(Keyword, Punctuation, Whitespace, Number), + ), + ( + r"^(MD5Sum|SHA1|SHA256)(:)(\s*)(\S+)$", + bygroups(Keyword, Punctuation, Whitespace, Number), + ), + ( + r"^([a-zA-Z\-0-9\.]*?)(:)(\s*)(.*?)$", + bygroups(Keyword, Punctuation, Whitespace, String), + ), ], - 'maintainer': [ - (r'<[^>]+>$', Generic.Strong, '#pop'), - (r'<[^>]+>', Generic.Strong), - (r',\n?', Whitespace), - (r'[^,<]+$', Text, '#pop'), - (r'[^,<]+', Text), + "maintainer": [ + (r"<[^>]+>$", Generic.Strong, "#pop"), + (r"<[^>]+>", Generic.Strong), + (r",\n?", Whitespace), + (r"[^,<]+$", Text, "#pop"), + (r"[^,<]+", Text), ], - 'description': [ - (r'(.*)(Homepage)(: )(\S+)', - bygroups(Text, String, Name, Name.Class)), - (r':.*\n', Generic.Strong), - (r' .*\n', Text), - default('#pop'), + "description": [ + (r"(.*)(Homepage)(: )(\S+)", bygroups(Text, String, Name, Name.Class)), + (r":.*\n", Generic.Strong), + (r" .*\n", Text), + default("#pop"), ], - 'package_list': [ - (r'(\$)(\{)(\w+)(\s*)(:)(\s*)(\w+)(\})', - bygroups(Operator, Punctuation, Name.Entity, Whitespace, - Punctuation, Whitespace, Text, Punctuation)), - (r'\(', Punctuation, 'package_list_vers'), - (r'\|', Operator), - (r'\n\s', Whitespace), - (r'\n', Whitespace, '#pop'), - (r'[,\s]', Text), - (r'[+.a-zA-Z0-9-]+', Name.Function), - (r'\[.*?\]', Name.Entity), + "package_list": [ + ( + r"(\$)(\{)(\w+)(\s*)(:)(\s*)(\w+)(\})", + bygroups( + Operator, + Punctuation, + Name.Entity, + Whitespace, + Punctuation, + Whitespace, + Text, + Punctuation, + ), + ), + (r"\(", Punctuation, "package_list_vers"), + (r"\|", Operator), + (r"\n\s", Whitespace), + (r"\n", Whitespace, "#pop"), + (r"[,\s]", Text), + (r"[+.a-zA-Z0-9-]+", Name.Function), + (r"\[.*?\]", Name.Entity), + ], + "package_list_vers": [ + (r"\)", Punctuation, "#pop"), + (r"([><=]+)(\s*)([^)]+)", bygroups(Operator, Whitespace, Number)), ], - 'package_list_vers': [ - (r'\)', Punctuation, '#pop'), - (r'([><=]+)(\s*)([^)]+)', bygroups(Operator, Whitespace, Number)), - ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/int_fiction.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/int_fiction.py index b142c54..b1ffaee 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/int_fiction.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/int_fiction.py @@ -1,22 +1,30 @@ """ - pygments.lexers.int_fiction - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.int_fiction +~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for interactive fiction languages. +Lexers for interactive fiction languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import RegexLexer, include, bygroups, using, \ - this, default, words -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Error, Generic +from pygments.lexer import RegexLexer, include, bygroups, using, this, default, words +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Error, + Generic, +) -__all__ = ['Inform6Lexer', 'Inform6TemplateLexer', 'Inform7Lexer', - 'Tads3Lexer'] +__all__ = ["Inform6Lexer", "Inform6TemplateLexer", "Inform7Lexer", "Tads3Lexer"] class Inform6Lexer(RegexLexer): @@ -24,478 +32,680 @@ class Inform6Lexer(RegexLexer): For Inform 6 source code. """ - name = 'Inform 6' - url = 'http://inform-fiction.org/' - aliases = ['inform6', 'i6'] - filenames = ['*.inf'] - version_added = '2.0' + name = "Inform 6" + url = "http://inform-fiction.org/" + aliases = ["inform6", "i6"] + filenames = ["*.inf"] + version_added = "2.0" flags = re.MULTILINE | re.DOTALL - _name = r'[a-zA-Z_]\w*' + _name = r"[a-zA-Z_]\w*" # Inform 7 maps these four character classes to their ASCII # equivalents. To support Inform 6 inclusions within Inform 7, # Inform6Lexer maps them too. - _dash = '\\-\u2010-\u2014' + _dash = "\\-\u2010-\u2014" _dquote = '"\u201c\u201d' _squote = "'\u2018\u2019" - _newline = '\\n\u0085\u2028\u2029' + _newline = "\\n\u0085\u2028\u2029" tokens = { - 'root': [ - (rf'\A(!%[^{_newline}]*[{_newline}])+', Comment.Preproc, - 'directive'), - default('directive') + "root": [ + (rf"\A(!%[^{_newline}]*[{_newline}])+", Comment.Preproc, "directive"), + default("directive"), ], - '_whitespace': [ - (r'\s+', Text), - (rf'![^{_newline}]*', Comment.Single) + "_whitespace": [(r"\s+", Text), (rf"![^{_newline}]*", Comment.Single)], + "default": [ + include("_whitespace"), + (r"\[", Punctuation, "many-values"), # Array initialization + (r":|(?=;)", Punctuation, "#pop"), + (r"<", Punctuation), # Second angle bracket in an action statement + default(("expression", "_expression")), ], - 'default': [ - include('_whitespace'), - (r'\[', Punctuation, 'many-values'), # Array initialization - (r':|(?=;)', Punctuation, '#pop'), - (r'<', Punctuation), # Second angle bracket in an action statement - default(('expression', '_expression')) - ], - # Expressions - '_expression': [ - include('_whitespace'), - (r'(?=sp\b)', Text, '#pop'), - (rf'(?=[{_dquote}{_squote}$0-9#a-zA-Z_])', Text, - ('#pop', 'value')), - (rf'\+\+|[{_dash}]{{1,2}}(?!>)|~~?', Operator), - (rf'(?=[()\[{_dash},?@{{:;])', Text, '#pop') + "_expression": [ + include("_whitespace"), + (r"(?=sp\b)", Text, "#pop"), + (rf"(?=[{_dquote}{_squote}$0-9#a-zA-Z_])", Text, ("#pop", "value")), + (rf"\+\+|[{_dash}]{{1,2}}(?!>)|~~?", Operator), + (rf"(?=[()\[{_dash},?@{{:;])", Text, "#pop"), ], - 'expression': [ - include('_whitespace'), - (r'\(', Punctuation, ('expression', '_expression')), - (r'\)', Punctuation, '#pop'), - (r'\[', Punctuation, ('#pop', 'statements', 'locals')), - (rf'>(?=(\s+|(![^{_newline}]*))*[>;])', Punctuation), - (rf'\+\+|[{_dash}]{{2}}(?!>)', Operator), - (r',', Punctuation, '_expression'), - (rf'&&?|\|\|?|[=~><]?=|[{_dash}]{{1,2}}>?|\.\.?[&#]?|::|[<>+*/%]', - Operator, '_expression'), - (r'(has|hasnt|in|notin|ofclass|or|provides)\b', Operator.Word, - '_expression'), - (r'sp\b', Name), - (r'\?~?', Name.Label, 'label?'), - (r'[@{]', Error), - default('#pop') + "expression": [ + include("_whitespace"), + (r"\(", Punctuation, ("expression", "_expression")), + (r"\)", Punctuation, "#pop"), + (r"\[", Punctuation, ("#pop", "statements", "locals")), + (rf">(?=(\s+|(![^{_newline}]*))*[>;])", Punctuation), + (rf"\+\+|[{_dash}]{{2}}(?!>)", Operator), + (r",", Punctuation, "_expression"), + ( + rf"&&?|\|\|?|[=~><]?=|[{_dash}]{{1,2}}>?|\.\.?[&#]?|::|[<>+*/%]", + Operator, + "_expression", + ), + ( + r"(has|hasnt|in|notin|ofclass|or|provides)\b", + Operator.Word, + "_expression", + ), + (r"sp\b", Name), + (r"\?~?", Name.Label, "label?"), + (r"[@{]", Error), + default("#pop"), ], - '_assembly-expression': [ - (r'\(', Punctuation, ('#push', '_expression')), - (r'[\[\]]', Punctuation), - (rf'[{_dash}]>', Punctuation, '_expression'), - (r'sp\b', Keyword.Pseudo), - (r';', Punctuation, '#pop:3'), - include('expression') + "_assembly-expression": [ + (r"\(", Punctuation, ("#push", "_expression")), + (r"[\[\]]", Punctuation), + (rf"[{_dash}]>", Punctuation, "_expression"), + (r"sp\b", Keyword.Pseudo), + (r";", Punctuation, "#pop:3"), + include("expression"), ], - '_for-expression': [ - (r'\)', Punctuation, '#pop:2'), - (r':', Punctuation, '#pop'), - include('expression') + "_for-expression": [ + (r"\)", Punctuation, "#pop:2"), + (r":", Punctuation, "#pop"), + include("expression"), ], - '_keyword-expression': [ - (r'(from|near|to)\b', Keyword, '_expression'), - include('expression') + "_keyword-expression": [ + (r"(from|near|to)\b", Keyword, "_expression"), + include("expression"), ], - '_list-expression': [ - (r',', Punctuation, '#pop'), - include('expression') + "_list-expression": [(r",", Punctuation, "#pop"), include("expression")], + "_object-expression": [ + (r"has\b", Keyword.Declaration, "#pop"), + include("_list-expression"), ], - '_object-expression': [ - (r'has\b', Keyword.Declaration, '#pop'), - include('_list-expression') - ], - # Values - 'value': [ - include('_whitespace'), + "value": [ + include("_whitespace"), # Strings - (rf'[{_squote}][^@][{_squote}]', String.Char, '#pop'), - (rf'([{_squote}])(@\{{[0-9a-fA-F]*\}})([{_squote}])', - bygroups(String.Char, String.Escape, String.Char), '#pop'), - (rf'([{_squote}])(@.{{2}})([{_squote}])', - bygroups(String.Char, String.Escape, String.Char), '#pop'), - (rf'[{_squote}]', String.Single, ('#pop', 'dictionary-word')), - (rf'[{_dquote}]', String.Double, ('#pop', 'string')), + (rf"[{_squote}][^@][{_squote}]", String.Char, "#pop"), + ( + rf"([{_squote}])(@\{{[0-9a-fA-F]*\}})([{_squote}])", + bygroups(String.Char, String.Escape, String.Char), + "#pop", + ), + ( + rf"([{_squote}])(@.{{2}})([{_squote}])", + bygroups(String.Char, String.Escape, String.Char), + "#pop", + ), + (rf"[{_squote}]", String.Single, ("#pop", "dictionary-word")), + (rf"[{_dquote}]", String.Double, ("#pop", "string")), # Numbers - (rf'\$[<>]?[+{_dash}][0-9]*\.?[0-9]*([eE][+{_dash}]?[0-9]+)?', - Number.Float, '#pop'), - (r'\$[0-9a-fA-F]+', Number.Hex, '#pop'), - (r'\$\$[01]+', Number.Bin, '#pop'), - (r'[0-9]+', Number.Integer, '#pop'), + ( + rf"\$[<>]?[+{_dash}][0-9]*\.?[0-9]*([eE][+{_dash}]?[0-9]+)?", + Number.Float, + "#pop", + ), + (r"\$[0-9a-fA-F]+", Number.Hex, "#pop"), + (r"\$\$[01]+", Number.Bin, "#pop"), + (r"[0-9]+", Number.Integer, "#pop"), # Values prefixed by hashes - (rf'(##|#a\$)({_name})', bygroups(Operator, Name), '#pop'), - (rf'(#g\$)({_name})', - bygroups(Operator, Name.Variable.Global), '#pop'), - (r'#[nw]\$', Operator, ('#pop', 'obsolete-dictionary-word')), - (rf'(#r\$)({_name})', bygroups(Operator, Name.Function), '#pop'), - (r'#', Name.Builtin, ('#pop', 'system-constant')), + (rf"(##|#a\$)({_name})", bygroups(Operator, Name), "#pop"), + (rf"(#g\$)({_name})", bygroups(Operator, Name.Variable.Global), "#pop"), + (r"#[nw]\$", Operator, ("#pop", "obsolete-dictionary-word")), + (rf"(#r\$)({_name})", bygroups(Operator, Name.Function), "#pop"), + (r"#", Name.Builtin, ("#pop", "system-constant")), # System functions - (words(( - 'child', 'children', 'elder', 'eldest', 'glk', 'indirect', 'metaclass', - 'parent', 'random', 'sibling', 'younger', 'youngest'), suffix=r'\b'), - Name.Builtin, '#pop'), + ( + words( + ( + "child", + "children", + "elder", + "eldest", + "glk", + "indirect", + "metaclass", + "parent", + "random", + "sibling", + "younger", + "youngest", + ), + suffix=r"\b", + ), + Name.Builtin, + "#pop", + ), # Metaclasses - (r'(?i)(Class|Object|Routine|String)\b', Name.Builtin, '#pop'), + (r"(?i)(Class|Object|Routine|String)\b", Name.Builtin, "#pop"), # Veneer routines - (words(( - 'Box__Routine', 'CA__Pr', 'CDefArt', 'CInDefArt', 'Cl__Ms', - 'Copy__Primitive', 'CP__Tab', 'DA__Pr', 'DB__Pr', 'DefArt', 'Dynam__String', - 'EnglishNumber', 'Glk__Wrap', 'IA__Pr', 'IB__Pr', 'InDefArt', 'Main__', - 'Meta__class', 'OB__Move', 'OB__Remove', 'OC__Cl', 'OP__Pr', 'Print__Addr', - 'Print__PName', 'PrintShortName', 'RA__Pr', 'RA__Sc', 'RL__Pr', 'R_Process', - 'RT__ChG', 'RT__ChGt', 'RT__ChLDB', 'RT__ChLDW', 'RT__ChPR', 'RT__ChPrintA', - 'RT__ChPrintC', 'RT__ChPrintO', 'RT__ChPrintS', 'RT__ChPS', 'RT__ChR', - 'RT__ChSTB', 'RT__ChSTW', 'RT__ChT', 'RT__Err', 'RT__TrPS', 'RV__Pr', - 'Symb__Tab', 'Unsigned__Compare', 'WV__Pr', 'Z__Region'), - prefix='(?i)', suffix=r'\b'), - Name.Builtin, '#pop'), + ( + words( + ( + "Box__Routine", + "CA__Pr", + "CDefArt", + "CInDefArt", + "Cl__Ms", + "Copy__Primitive", + "CP__Tab", + "DA__Pr", + "DB__Pr", + "DefArt", + "Dynam__String", + "EnglishNumber", + "Glk__Wrap", + "IA__Pr", + "IB__Pr", + "InDefArt", + "Main__", + "Meta__class", + "OB__Move", + "OB__Remove", + "OC__Cl", + "OP__Pr", + "Print__Addr", + "Print__PName", + "PrintShortName", + "RA__Pr", + "RA__Sc", + "RL__Pr", + "R_Process", + "RT__ChG", + "RT__ChGt", + "RT__ChLDB", + "RT__ChLDW", + "RT__ChPR", + "RT__ChPrintA", + "RT__ChPrintC", + "RT__ChPrintO", + "RT__ChPrintS", + "RT__ChPS", + "RT__ChR", + "RT__ChSTB", + "RT__ChSTW", + "RT__ChT", + "RT__Err", + "RT__TrPS", + "RV__Pr", + "Symb__Tab", + "Unsigned__Compare", + "WV__Pr", + "Z__Region", + ), + prefix="(?i)", + suffix=r"\b", + ), + Name.Builtin, + "#pop", + ), # Other built-in symbols - (words(( - 'call', 'copy', 'create', 'DEBUG', 'destroy', 'DICT_CHAR_SIZE', - 'DICT_ENTRY_BYTES', 'DICT_IS_UNICODE', 'DICT_WORD_SIZE', 'DOUBLE_HI_INFINITY', - 'DOUBLE_HI_NAN', 'DOUBLE_HI_NINFINITY', 'DOUBLE_LO_INFINITY', 'DOUBLE_LO_NAN', - 'DOUBLE_LO_NINFINITY', 'false', 'FLOAT_INFINITY', 'FLOAT_NAN', 'FLOAT_NINFINITY', - 'GOBJFIELD_CHAIN', 'GOBJFIELD_CHILD', 'GOBJFIELD_NAME', 'GOBJFIELD_PARENT', - 'GOBJFIELD_PROPTAB', 'GOBJFIELD_SIBLING', 'GOBJ_EXT_START', - 'GOBJ_TOTAL_LENGTH', 'Grammar__Version', 'INDIV_PROP_START', 'INFIX', - 'infix__watching', 'MODULE_MODE', 'name', 'nothing', 'NUM_ATTR_BYTES', 'print', - 'print_to_array', 'recreate', 'remaining', 'self', 'sender', 'STRICT_MODE', - 'sw__var', 'sys__glob0', 'sys__glob1', 'sys__glob2', 'sys_statusline_flag', - 'TARGET_GLULX', 'TARGET_ZCODE', 'temp__global2', 'temp__global3', - 'temp__global4', 'temp_global', 'true', 'USE_MODULES', 'WORDSIZE'), - prefix='(?i)', suffix=r'\b'), - Name.Builtin, '#pop'), + ( + words( + ( + "call", + "copy", + "create", + "DEBUG", + "destroy", + "DICT_CHAR_SIZE", + "DICT_ENTRY_BYTES", + "DICT_IS_UNICODE", + "DICT_WORD_SIZE", + "DOUBLE_HI_INFINITY", + "DOUBLE_HI_NAN", + "DOUBLE_HI_NINFINITY", + "DOUBLE_LO_INFINITY", + "DOUBLE_LO_NAN", + "DOUBLE_LO_NINFINITY", + "false", + "FLOAT_INFINITY", + "FLOAT_NAN", + "FLOAT_NINFINITY", + "GOBJFIELD_CHAIN", + "GOBJFIELD_CHILD", + "GOBJFIELD_NAME", + "GOBJFIELD_PARENT", + "GOBJFIELD_PROPTAB", + "GOBJFIELD_SIBLING", + "GOBJ_EXT_START", + "GOBJ_TOTAL_LENGTH", + "Grammar__Version", + "INDIV_PROP_START", + "INFIX", + "infix__watching", + "MODULE_MODE", + "name", + "nothing", + "NUM_ATTR_BYTES", + "print", + "print_to_array", + "recreate", + "remaining", + "self", + "sender", + "STRICT_MODE", + "sw__var", + "sys__glob0", + "sys__glob1", + "sys__glob2", + "sys_statusline_flag", + "TARGET_GLULX", + "TARGET_ZCODE", + "temp__global2", + "temp__global3", + "temp__global4", + "temp_global", + "true", + "USE_MODULES", + "WORDSIZE", + ), + prefix="(?i)", + suffix=r"\b", + ), + Name.Builtin, + "#pop", + ), # Other values - (_name, Name, '#pop') - ], - 'value?': [ - include('value'), - default('#pop') + (_name, Name, "#pop"), ], + "value?": [include("value"), default("#pop")], # Strings - 'dictionary-word': [ - (rf'[~^]+|//[^{_squote}]*', String.Escape), - (rf'[^~^/\\@({{{_squote}]+', String.Single), - (r'[/({]', String.Single), - (r'@\{[0-9a-fA-F]*\}', String.Escape), - (r'@.{2}', String.Escape), - (rf'[{_squote}]', String.Single, '#pop') + "dictionary-word": [ + (rf"[~^]+|//[^{_squote}]*", String.Escape), + (rf"[^~^/\\@({{{_squote}]+", String.Single), + (r"[/({]", String.Single), + (r"@\{[0-9a-fA-F]*\}", String.Escape), + (r"@.{2}", String.Escape), + (rf"[{_squote}]", String.Single, "#pop"), ], - 'string': [ - (r'[~^]+', String.Escape), - (rf'[^~^\\@({{{_dquote}]+', String.Double), - (r'[({]', String.Double), - (r'\\', String.Escape), - (rf'@(\\\s*[{_newline}]\s*)*@((\\\s*[{_newline}]\s*)*[0-9])*', String.Escape), - (rf'@(\\\s*[{_newline}]\s*)*[({{]((\\\s*[{_newline}]\s*)*[0-9a-zA-Z_])*' - rf'(\\\s*[{_newline}]\s*)*[)}}]', - String.Escape), - (rf'@(\\\s*[{_newline}]\s*)*.(\\\s*[{_newline}]\s*)*.', - String.Escape), - (rf'[{_dquote}]', String.Double, '#pop') + "string": [ + (r"[~^]+", String.Escape), + (rf"[^~^\\@({{{_dquote}]+", String.Double), + (r"[({]", String.Double), + (r"\\", String.Escape), + ( + rf"@(\\\s*[{_newline}]\s*)*@((\\\s*[{_newline}]\s*)*[0-9])*", + String.Escape, + ), + ( + rf"@(\\\s*[{_newline}]\s*)*[({{]((\\\s*[{_newline}]\s*)*[0-9a-zA-Z_])*" + rf"(\\\s*[{_newline}]\s*)*[)}}]", + String.Escape, + ), + (rf"@(\\\s*[{_newline}]\s*)*.(\\\s*[{_newline}]\s*)*.", String.Escape), + (rf"[{_dquote}]", String.Double, "#pop"), ], - 'plain-string': [ - (rf'[^~^\\({{\[\]{_dquote}]+', String.Double), - (r'[~^({\[\]]', String.Double), - (r'\\', String.Escape), - (rf'[{_dquote}]', String.Double, '#pop') + "plain-string": [ + (rf"[^~^\\({{\[\]{_dquote}]+", String.Double), + (r"[~^({\[\]]", String.Double), + (r"\\", String.Escape), + (rf"[{_dquote}]", String.Double, "#pop"), ], # Names - '_constant': [ - include('_whitespace'), - (_name, Name.Constant, '#pop'), - include('value') + "_constant": [ + include("_whitespace"), + (_name, Name.Constant, "#pop"), + include("value"), ], - 'constant*': [ - include('_whitespace'), - (r',', Punctuation), - (r'=', Punctuation, 'value?'), - (_name, Name.Constant, 'value?'), - default('#pop') + "constant*": [ + include("_whitespace"), + (r",", Punctuation), + (r"=", Punctuation, "value?"), + (_name, Name.Constant, "value?"), + default("#pop"), ], - '_global': [ - include('_whitespace'), - (_name, Name.Variable.Global, '#pop'), - include('value') + "_global": [ + include("_whitespace"), + (_name, Name.Variable.Global, "#pop"), + include("value"), ], - 'label?': [ - include('_whitespace'), - (_name, Name.Label, '#pop'), - default('#pop') + "label?": [ + include("_whitespace"), + (_name, Name.Label, "#pop"), + default("#pop"), ], - 'variable?': [ - include('_whitespace'), - (_name, Name.Variable, '#pop'), - default('#pop') + "variable?": [ + include("_whitespace"), + (_name, Name.Variable, "#pop"), + default("#pop"), ], # Values after hashes - 'obsolete-dictionary-word': [ - (r'\S\w*', String.Other, '#pop') - ], - 'system-constant': [ - include('_whitespace'), - (_name, Name.Builtin, '#pop') - ], - + "obsolete-dictionary-word": [(r"\S\w*", String.Other, "#pop")], + "system-constant": [include("_whitespace"), (_name, Name.Builtin, "#pop")], # Directives - 'directive': [ - include('_whitespace'), - (r'#', Punctuation), - (r';', Punctuation, '#pop'), - (r'\[', Punctuation, - ('default', 'statements', 'locals', 'routine-name?')), - (words(( - 'abbreviate', 'endif', 'dictionary', 'ifdef', 'iffalse', 'ifndef', 'ifnot', - 'iftrue', 'ifv3', 'ifv5', 'release', 'serial', 'switches', 'system_file', - 'version'), prefix='(?i)', suffix=r'\b'), - Keyword, 'default'), - (r'(?i)(array|global)\b', Keyword, - ('default', 'directive-keyword?', '_global')), - (r'(?i)attribute\b', Keyword, ('default', 'alias?', '_constant')), - (r'(?i)class\b', Keyword, - ('object-body', 'duplicates', 'class-name')), - (r'(?i)(constant|default)\b', Keyword, - ('default', 'constant*')), - (r'(?i)(end\b)(.*)', bygroups(Keyword, Text)), - (r'(?i)(extend|verb)\b', Keyword, 'grammar'), - (r'(?i)fake_action\b', Keyword, ('default', '_constant')), - (r'(?i)import\b', Keyword, 'manifest'), - (r'(?i)(include|link|origsource)\b', Keyword, - ('default', 'before-plain-string?')), - (r'(?i)(lowstring|undef)\b', Keyword, ('default', '_constant')), - (r'(?i)message\b', Keyword, ('default', 'diagnostic')), - (r'(?i)(nearby|object)\b', Keyword, - ('object-body', '_object-head')), - (r'(?i)property\b', Keyword, - ('default', 'alias?', '_constant', 'property-keyword*')), - (r'(?i)replace\b', Keyword, - ('default', 'routine-name?', 'routine-name?')), - (r'(?i)statusline\b', Keyword, ('default', 'directive-keyword?')), - (r'(?i)stub\b', Keyword, ('default', 'routine-name?')), - (r'(?i)trace\b', Keyword, - ('default', 'trace-keyword?', 'trace-keyword?')), - (r'(?i)zcharacter\b', Keyword, - ('default', 'directive-keyword?', 'directive-keyword?')), - (_name, Name.Class, ('object-body', '_object-head')) + "directive": [ + include("_whitespace"), + (r"#", Punctuation), + (r";", Punctuation, "#pop"), + (r"\[", Punctuation, ("default", "statements", "locals", "routine-name?")), + ( + words( + ( + "abbreviate", + "endif", + "dictionary", + "ifdef", + "iffalse", + "ifndef", + "ifnot", + "iftrue", + "ifv3", + "ifv5", + "release", + "serial", + "switches", + "system_file", + "version", + ), + prefix="(?i)", + suffix=r"\b", + ), + Keyword, + "default", + ), + ( + r"(?i)(array|global)\b", + Keyword, + ("default", "directive-keyword?", "_global"), + ), + (r"(?i)attribute\b", Keyword, ("default", "alias?", "_constant")), + (r"(?i)class\b", Keyword, ("object-body", "duplicates", "class-name")), + (r"(?i)(constant|default)\b", Keyword, ("default", "constant*")), + (r"(?i)(end\b)(.*)", bygroups(Keyword, Text)), + (r"(?i)(extend|verb)\b", Keyword, "grammar"), + (r"(?i)fake_action\b", Keyword, ("default", "_constant")), + (r"(?i)import\b", Keyword, "manifest"), + ( + r"(?i)(include|link|origsource)\b", + Keyword, + ("default", "before-plain-string?"), + ), + (r"(?i)(lowstring|undef)\b", Keyword, ("default", "_constant")), + (r"(?i)message\b", Keyword, ("default", "diagnostic")), + (r"(?i)(nearby|object)\b", Keyword, ("object-body", "_object-head")), + ( + r"(?i)property\b", + Keyword, + ("default", "alias?", "_constant", "property-keyword*"), + ), + (r"(?i)replace\b", Keyword, ("default", "routine-name?", "routine-name?")), + (r"(?i)statusline\b", Keyword, ("default", "directive-keyword?")), + (r"(?i)stub\b", Keyword, ("default", "routine-name?")), + (r"(?i)trace\b", Keyword, ("default", "trace-keyword?", "trace-keyword?")), + ( + r"(?i)zcharacter\b", + Keyword, + ("default", "directive-keyword?", "directive-keyword?"), + ), + (_name, Name.Class, ("object-body", "_object-head")), ], # [, Replace, Stub - 'routine-name?': [ - include('_whitespace'), - (_name, Name.Function, '#pop'), - default('#pop') + "routine-name?": [ + include("_whitespace"), + (_name, Name.Function, "#pop"), + default("#pop"), ], - 'locals': [ - include('_whitespace'), - (r';', Punctuation, '#pop'), - (r'\*', Punctuation), - (r'"', String.Double, 'plain-string'), - (_name, Name.Variable) + "locals": [ + include("_whitespace"), + (r";", Punctuation, "#pop"), + (r"\*", Punctuation), + (r'"', String.Double, "plain-string"), + (_name, Name.Variable), ], # Array - 'many-values': [ - include('_whitespace'), - (r';', Punctuation), - (r'\]', Punctuation, '#pop'), - (r':', Error), - default(('expression', '_expression')) + "many-values": [ + include("_whitespace"), + (r";", Punctuation), + (r"\]", Punctuation, "#pop"), + (r":", Error), + default(("expression", "_expression")), ], # Attribute, Property - 'alias?': [ - include('_whitespace'), - (r'alias\b', Keyword, ('#pop', '_constant')), - default('#pop') + "alias?": [ + include("_whitespace"), + (r"alias\b", Keyword, ("#pop", "_constant")), + default("#pop"), ], # Class, Object, Nearby - 'class-name': [ - include('_whitespace'), - (r'(?=[,;]|(class|has|private|with)\b)', Text, '#pop'), - (_name, Name.Class, '#pop') + "class-name": [ + include("_whitespace"), + (r"(?=[,;]|(class|has|private|with)\b)", Text, "#pop"), + (_name, Name.Class, "#pop"), ], - 'duplicates': [ - include('_whitespace'), - (r'\(', Punctuation, ('#pop', 'expression', '_expression')), - default('#pop') + "duplicates": [ + include("_whitespace"), + (r"\(", Punctuation, ("#pop", "expression", "_expression")), + default("#pop"), ], - '_object-head': [ - (rf'[{_dash}]>', Punctuation), - (r'(class|has|private|with)\b', Keyword.Declaration, '#pop'), - include('_global') + "_object-head": [ + (rf"[{_dash}]>", Punctuation), + (r"(class|has|private|with)\b", Keyword.Declaration, "#pop"), + include("_global"), ], - 'object-body': [ - include('_whitespace'), - (r';', Punctuation, '#pop:2'), - (r',', Punctuation), - (r'class\b', Keyword.Declaration, 'class-segment'), - (r'(has|private|with)\b', Keyword.Declaration), - (r':', Error), - default(('_object-expression', '_expression')) + "object-body": [ + include("_whitespace"), + (r";", Punctuation, "#pop:2"), + (r",", Punctuation), + (r"class\b", Keyword.Declaration, "class-segment"), + (r"(has|private|with)\b", Keyword.Declaration), + (r":", Error), + default(("_object-expression", "_expression")), ], - 'class-segment': [ - include('_whitespace'), - (r'(?=[,;]|(class|has|private|with)\b)', Text, '#pop'), + "class-segment": [ + include("_whitespace"), + (r"(?=[,;]|(class|has|private|with)\b)", Text, "#pop"), (_name, Name.Class), - default('value') + default("value"), ], # Extend, Verb - 'grammar': [ - include('_whitespace'), - (r'=', Punctuation, ('#pop', 'default')), - (r'\*', Punctuation, ('#pop', 'grammar-line')), - default('_directive-keyword') + "grammar": [ + include("_whitespace"), + (r"=", Punctuation, ("#pop", "default")), + (r"\*", Punctuation, ("#pop", "grammar-line")), + default("_directive-keyword"), ], - 'grammar-line': [ - include('_whitespace'), - (r';', Punctuation, '#pop'), - (r'[/*]', Punctuation), - (rf'[{_dash}]>', Punctuation, 'value'), - (r'(noun|scope)\b', Keyword, '=routine'), - default('_directive-keyword') + "grammar-line": [ + include("_whitespace"), + (r";", Punctuation, "#pop"), + (r"[/*]", Punctuation), + (rf"[{_dash}]>", Punctuation, "value"), + (r"(noun|scope)\b", Keyword, "=routine"), + default("_directive-keyword"), ], - '=routine': [ - include('_whitespace'), - (r'=', Punctuation, 'routine-name?'), - default('#pop') + "=routine": [ + include("_whitespace"), + (r"=", Punctuation, "routine-name?"), + default("#pop"), ], # Import - 'manifest': [ - include('_whitespace'), - (r';', Punctuation, '#pop'), - (r',', Punctuation), - (r'(?i)global\b', Keyword, '_global'), - default('_global') + "manifest": [ + include("_whitespace"), + (r";", Punctuation, "#pop"), + (r",", Punctuation), + (r"(?i)global\b", Keyword, "_global"), + default("_global"), ], # Include, Link, Message - 'diagnostic': [ - include('_whitespace'), - (rf'[{_dquote}]', String.Double, ('#pop', 'message-string')), - default(('#pop', 'before-plain-string?', 'directive-keyword?')) + "diagnostic": [ + include("_whitespace"), + (rf"[{_dquote}]", String.Double, ("#pop", "message-string")), + default(("#pop", "before-plain-string?", "directive-keyword?")), ], - 'before-plain-string?': [ - include('_whitespace'), - (rf'[{_dquote}]', String.Double, ('#pop', 'plain-string')), - default('#pop') + "before-plain-string?": [ + include("_whitespace"), + (rf"[{_dquote}]", String.Double, ("#pop", "plain-string")), + default("#pop"), ], - 'message-string': [ - (r'[~^]+', String.Escape), - include('plain-string') - ], - + "message-string": [(r"[~^]+", String.Escape), include("plain-string")], # Keywords used in directives - '_directive-keyword!': [ - include('_whitespace'), - (words(( - 'additive', 'alias', 'buffer', 'class', 'creature', 'data', 'error', 'fatalerror', - 'first', 'has', 'held', 'individual', 'initial', 'initstr', 'last', 'long', 'meta', - 'multi', 'multiexcept', 'multiheld', 'multiinside', 'noun', 'number', 'only', - 'private', 'replace', 'reverse', 'scope', 'score', 'special', 'string', 'table', - 'terminating', 'time', 'topic', 'warning', 'with'), suffix=r'\b'), - Keyword, '#pop'), - (r'static\b', Keyword), - (rf'[{_dash}]{{1,2}}>|[+=]', Punctuation, '#pop') + "_directive-keyword!": [ + include("_whitespace"), + ( + words( + ( + "additive", + "alias", + "buffer", + "class", + "creature", + "data", + "error", + "fatalerror", + "first", + "has", + "held", + "individual", + "initial", + "initstr", + "last", + "long", + "meta", + "multi", + "multiexcept", + "multiheld", + "multiinside", + "noun", + "number", + "only", + "private", + "replace", + "reverse", + "scope", + "score", + "special", + "string", + "table", + "terminating", + "time", + "topic", + "warning", + "with", + ), + suffix=r"\b", + ), + Keyword, + "#pop", + ), + (r"static\b", Keyword), + (rf"[{_dash}]{{1,2}}>|[+=]", Punctuation, "#pop"), ], - '_directive-keyword': [ - include('_directive-keyword!'), - include('value') + "_directive-keyword": [include("_directive-keyword!"), include("value")], + "directive-keyword?": [include("_directive-keyword!"), default("#pop")], + "property-keyword*": [ + include("_whitespace"), + ( + words( + ("additive", "individual", "long"), + suffix=rf"\b(?=(\s*|(![^{_newline}]*[{_newline}]))*[_a-zA-Z])", + ), + Keyword, + ), + default("#pop"), ], - 'directive-keyword?': [ - include('_directive-keyword!'), - default('#pop') + "trace-keyword?": [ + include("_whitespace"), + ( + words( + ( + "assembly", + "dictionary", + "expressions", + "lines", + "linker", + "objects", + "off", + "on", + "symbols", + "tokens", + "verbs", + ), + suffix=r"\b", + ), + Keyword, + "#pop", + ), + default("#pop"), ], - 'property-keyword*': [ - include('_whitespace'), - (words(('additive', 'individual', 'long'), - suffix=rf'\b(?=(\s*|(![^{_newline}]*[{_newline}]))*[_a-zA-Z])'), - Keyword), - default('#pop') - ], - 'trace-keyword?': [ - include('_whitespace'), - (words(( - 'assembly', 'dictionary', 'expressions', 'lines', 'linker', - 'objects', 'off', 'on', 'symbols', 'tokens', 'verbs'), suffix=r'\b'), - Keyword, '#pop'), - default('#pop') - ], - # Statements - 'statements': [ - include('_whitespace'), - (r'\]', Punctuation, '#pop'), - (r'[;{}]', Punctuation), - (words(( - 'box', 'break', 'continue', 'default', 'give', 'inversion', - 'new_line', 'quit', 'read', 'remove', 'return', 'rfalse', 'rtrue', - 'spaces', 'string', 'until'), suffix=r'\b'), - Keyword, 'default'), - (r'(do|else)\b', Keyword), - (r'(font|style)\b', Keyword, - ('default', 'miscellaneous-keyword?')), - (r'for\b', Keyword, ('for', '(?')), - (r'(if|switch|while)', Keyword, - ('expression', '_expression', '(?')), - (r'(jump|save|restore)\b', Keyword, ('default', 'label?')), - (r'objectloop\b', Keyword, - ('_keyword-expression', 'variable?', '(?')), - (rf'print(_ret)?\b|(?=[{_dquote}])', Keyword, 'print-list'), - (r'\.', Name.Label, 'label?'), - (r'@', Keyword, 'opcode'), - (r'#(?![agrnw]\$|#)', Punctuation, 'directive'), - (r'<', Punctuation, 'default'), - (r'move\b', Keyword, - ('default', '_keyword-expression', '_expression')), - default(('default', '_keyword-expression', '_expression')) + "statements": [ + include("_whitespace"), + (r"\]", Punctuation, "#pop"), + (r"[;{}]", Punctuation), + ( + words( + ( + "box", + "break", + "continue", + "default", + "give", + "inversion", + "new_line", + "quit", + "read", + "remove", + "return", + "rfalse", + "rtrue", + "spaces", + "string", + "until", + ), + suffix=r"\b", + ), + Keyword, + "default", + ), + (r"(do|else)\b", Keyword), + (r"(font|style)\b", Keyword, ("default", "miscellaneous-keyword?")), + (r"for\b", Keyword, ("for", "(?")), + (r"(if|switch|while)", Keyword, ("expression", "_expression", "(?")), + (r"(jump|save|restore)\b", Keyword, ("default", "label?")), + (r"objectloop\b", Keyword, ("_keyword-expression", "variable?", "(?")), + (rf"print(_ret)?\b|(?=[{_dquote}])", Keyword, "print-list"), + (r"\.", Name.Label, "label?"), + (r"@", Keyword, "opcode"), + (r"#(?![agrnw]\$|#)", Punctuation, "directive"), + (r"<", Punctuation, "default"), + (r"move\b", Keyword, ("default", "_keyword-expression", "_expression")), + default(("default", "_keyword-expression", "_expression")), ], - 'miscellaneous-keyword?': [ - include('_whitespace'), - (r'(bold|fixed|from|near|off|on|reverse|roman|to|underline)\b', - Keyword, '#pop'), - (r'(a|A|an|address|char|name|number|object|property|string|the|' - rf'The)\b(?=(\s+|(![^{_newline}]*))*\))', Keyword.Pseudo, - '#pop'), - (rf'{_name}(?=(\s+|(![^{_newline}]*))*\))', Name.Function, - '#pop'), - default('#pop') + "miscellaneous-keyword?": [ + include("_whitespace"), + ( + r"(bold|fixed|from|near|off|on|reverse|roman|to|underline)\b", + Keyword, + "#pop", + ), + ( + r"(a|A|an|address|char|name|number|object|property|string|the|" + rf"The)\b(?=(\s+|(![^{_newline}]*))*\))", + Keyword.Pseudo, + "#pop", + ), + (rf"{_name}(?=(\s+|(![^{_newline}]*))*\))", Name.Function, "#pop"), + default("#pop"), ], - '(?': [ - include('_whitespace'), - (r'\(', Punctuation, '#pop'), - default('#pop') + "(?": [include("_whitespace"), (r"\(", Punctuation, "#pop"), default("#pop")], + "for": [ + include("_whitespace"), + (r";", Punctuation, ("_for-expression", "_expression")), + default(("_for-expression", "_expression")), ], - 'for': [ - include('_whitespace'), - (r';', Punctuation, ('_for-expression', '_expression')), - default(('_for-expression', '_expression')) + "print-list": [ + include("_whitespace"), + (r";", Punctuation, "#pop"), + (r":", Error), + default(("_list-expression", "_expression", "_list-expression", "form")), ], - 'print-list': [ - include('_whitespace'), - (r';', Punctuation, '#pop'), - (r':', Error), - default(('_list-expression', '_expression', '_list-expression', 'form')) + "form": [ + include("_whitespace"), + (r"\(", Punctuation, ("#pop", "miscellaneous-keyword?")), + default("#pop"), ], - 'form': [ - include('_whitespace'), - (r'\(', Punctuation, ('#pop', 'miscellaneous-keyword?')), - default('#pop') - ], - # Assembly - 'opcode': [ - include('_whitespace'), - (rf'[{_dquote}]', String.Double, ('operands', 'plain-string')), - (rf'[{_dash}]{{1,2}}>', Punctuation, 'operands'), - (_name, Keyword, 'operands') + "opcode": [ + include("_whitespace"), + (rf"[{_dquote}]", String.Double, ("operands", "plain-string")), + (rf"[{_dash}]{{1,2}}>", Punctuation, "operands"), + (_name, Keyword, "operands"), ], - 'operands': [ - (r':', Error), - default(('_assembly-expression', '_expression')) - ] + "operands": [(r":", Error), default(("_assembly-expression", "_expression"))], } def get_tokens_unprocessed(self, text): @@ -507,9 +717,8 @@ class Inform6Lexer(RegexLexer): objectloop_queue = [] objectloop_token_count = -1 previous_token = None - for index, token, value in RegexLexer.get_tokens_unprocessed(self, - text): - if previous_token is Name.Variable and value == 'in': + for index, token, value in RegexLexer.get_tokens_unprocessed(self, text): + if previous_token is Name.Variable and value == "in": objectloop_queue = [[index, token, value]] objectloop_token_count = 2 elif objectloop_token_count > 0: @@ -518,7 +727,7 @@ class Inform6Lexer(RegexLexer): objectloop_queue.append((index, token, value)) else: if objectloop_token_count == 0: - if objectloop_queue[-1][2] == ')': + if objectloop_queue[-1][2] == ")": objectloop_queue[0][1] = Keyword while objectloop_queue: yield objectloop_queue.pop(0) @@ -533,7 +742,7 @@ class Inform6Lexer(RegexLexer): """We try to find a keyword which seem relatively common, unfortunately there is a decent overlap with Smalltalk keywords otherwise here..""" result = 0 - if re.search('\borigsource\b', text, re.IGNORECASE): + if re.search("\borigsource\b", text, re.IGNORECASE): result += 0.05 return result @@ -544,18 +753,18 @@ class Inform7Lexer(RegexLexer): For Inform 7 source code. """ - name = 'Inform 7' - url = 'http://inform7.com/' - aliases = ['inform7', 'i7'] - filenames = ['*.ni', '*.i7x'] - version_added = '2.0' + name = "Inform 7" + url = "http://inform7.com/" + aliases = ["inform7", "i7"] + filenames = ["*.ni", "*.i7x"] + version_added = "2.0" flags = re.MULTILINE | re.DOTALL _dash = Inform6Lexer._dash _dquote = Inform6Lexer._dquote _newline = Inform6Lexer._newline - _start = rf'\A|(?<=[{_newline}])' + _start = rf"\A|(?<=[{_newline}])" # There are three variants of Inform 7, differing in how to # interpret at signs and braces in I6T. In top-level inclusions, at @@ -563,159 +772,195 @@ class Inform7Lexer(RegexLexer): # and use options, tokens in braces are treated as I7. Use options # also interpret "{N}". tokens = {} - token_variants = ['+i6t-not-inline', '+i6t-inline', '+i6t-use-option'] + token_variants = ["+i6t-not-inline", "+i6t-inline", "+i6t-use-option"] for level in token_variants: tokens[level] = { - '+i6-root': list(Inform6Lexer.tokens['root']), - '+i6t-root': [ # For Inform6TemplateLexer - (rf'[^{Inform6Lexer._newline}]*', Comment.Preproc, - ('directive', '+p')) + "+i6-root": list(Inform6Lexer.tokens["root"]), + "+i6t-root": [ # For Inform6TemplateLexer + (rf"[^{Inform6Lexer._newline}]*", Comment.Preproc, ("directive", "+p")) ], - 'root': [ - (r'(\|?\s)+', Text), - (r'\[', Comment.Multiline, '+comment'), - (rf'[{_dquote}]', Generic.Heading, - ('+main', '+titling', '+titling-string')), - default(('+main', '+heading?')) + "root": [ + (r"(\|?\s)+", Text), + (r"\[", Comment.Multiline, "+comment"), + ( + rf"[{_dquote}]", + Generic.Heading, + ("+main", "+titling", "+titling-string"), + ), + default(("+main", "+heading?")), ], - '+titling-string': [ - (rf'[^{_dquote}]+', Generic.Heading), - (rf'[{_dquote}]', Generic.Heading, '#pop') + "+titling-string": [ + (rf"[^{_dquote}]+", Generic.Heading), + (rf"[{_dquote}]", Generic.Heading, "#pop"), ], - '+titling': [ - (r'\[', Comment.Multiline, '+comment'), - (rf'[^{_dquote}.;:|{_newline}]+', Generic.Heading), - (rf'[{_dquote}]', Generic.Heading, '+titling-string'), - (rf'[{_newline}]{{2}}|(?<=[\s{_dquote}])\|[\s{_dquote}]', - Text, ('#pop', '+heading?')), - (rf'[.;:]|(?<=[\s{_dquote}])\|', Text, '#pop'), - (rf'[|{_newline}]', Generic.Heading) + "+titling": [ + (r"\[", Comment.Multiline, "+comment"), + (rf"[^{_dquote}.;:|{_newline}]+", Generic.Heading), + (rf"[{_dquote}]", Generic.Heading, "+titling-string"), + ( + rf"[{_newline}]{{2}}|(?<=[\s{_dquote}])\|[\s{_dquote}]", + Text, + ("#pop", "+heading?"), + ), + (rf"[.;:]|(?<=[\s{_dquote}])\|", Text, "#pop"), + (rf"[|{_newline}]", Generic.Heading), ], - '+main': [ - (rf'(?i)[^{_dquote}:a\[(|{_newline}]+', Text), - (rf'[{_dquote}]', String.Double, '+text'), - (r':', Text, '+phrase-definition'), - (r'(?i)\bas\b', Text, '+use-option'), - (r'\[', Comment.Multiline, '+comment'), - (rf'(\([{_dash}])(.*?)([{_dash}]\))', - bygroups(Punctuation, - using(this, state=('+i6-root', 'directive'), - i6t='+i6t-not-inline'), Punctuation)), - (rf'({_start}|(?<=[\s;:.{_dquote}]))\|\s|[{_newline}]{{2,}}', Text, '+heading?'), - (rf'(?i)[a(|{_newline}]', Text) + "+main": [ + (rf"(?i)[^{_dquote}:a\[(|{_newline}]+", Text), + (rf"[{_dquote}]", String.Double, "+text"), + (r":", Text, "+phrase-definition"), + (r"(?i)\bas\b", Text, "+use-option"), + (r"\[", Comment.Multiline, "+comment"), + ( + rf"(\([{_dash}])(.*?)([{_dash}]\))", + bygroups( + Punctuation, + using( + this, state=("+i6-root", "directive"), i6t="+i6t-not-inline" + ), + Punctuation, + ), + ), + ( + rf"({_start}|(?<=[\s;:.{_dquote}]))\|\s|[{_newline}]{{2,}}", + Text, + "+heading?", + ), + (rf"(?i)[a(|{_newline}]", Text), ], - '+phrase-definition': [ - (r'\s+', Text), - (r'\[', Comment.Multiline, '+comment'), - (rf'(\([{_dash}])(.*?)([{_dash}]\))', - bygroups(Punctuation, - using(this, state=('+i6-root', 'directive', - 'default', 'statements'), - i6t='+i6t-inline'), Punctuation), '#pop'), - default('#pop') + "+phrase-definition": [ + (r"\s+", Text), + (r"\[", Comment.Multiline, "+comment"), + ( + rf"(\([{_dash}])(.*?)([{_dash}]\))", + bygroups( + Punctuation, + using( + this, + state=("+i6-root", "directive", "default", "statements"), + i6t="+i6t-inline", + ), + Punctuation, + ), + "#pop", + ), + default("#pop"), ], - '+use-option': [ - (r'\s+', Text), - (r'\[', Comment.Multiline, '+comment'), - (rf'(\([{_dash}])(.*?)([{_dash}]\))', - bygroups(Punctuation, - using(this, state=('+i6-root', 'directive'), - i6t='+i6t-use-option'), Punctuation), '#pop'), - default('#pop') + "+use-option": [ + (r"\s+", Text), + (r"\[", Comment.Multiline, "+comment"), + ( + rf"(\([{_dash}])(.*?)([{_dash}]\))", + bygroups( + Punctuation, + using( + this, state=("+i6-root", "directive"), i6t="+i6t-use-option" + ), + Punctuation, + ), + "#pop", + ), + default("#pop"), ], - '+comment': [ - (r'[^\[\]]+', Comment.Multiline), - (r'\[', Comment.Multiline, '#push'), - (r'\]', Comment.Multiline, '#pop') + "+comment": [ + (r"[^\[\]]+", Comment.Multiline), + (r"\[", Comment.Multiline, "#push"), + (r"\]", Comment.Multiline, "#pop"), ], - '+text': [ - (rf'[^\[{_dquote}]+', String.Double), - (r'\[.*?\]', String.Interpol), - (rf'[{_dquote}]', String.Double, '#pop') + "+text": [ + (rf"[^\[{_dquote}]+", String.Double), + (r"\[.*?\]", String.Interpol), + (rf"[{_dquote}]", String.Double, "#pop"), ], - '+heading?': [ - (r'(\|?\s)+', Text), - (r'\[', Comment.Multiline, '+comment'), - (rf'[{_dash}]{{4}}\s+', Text, '+documentation-heading'), - (rf'[{_dash}]{{1,3}}', Text), - (rf'(?i)(volume|book|part|chapter|section)\b[^{_newline}]*', - Generic.Heading, '#pop'), - default('#pop') + "+heading?": [ + (r"(\|?\s)+", Text), + (r"\[", Comment.Multiline, "+comment"), + (rf"[{_dash}]{{4}}\s+", Text, "+documentation-heading"), + (rf"[{_dash}]{{1,3}}", Text), + ( + rf"(?i)(volume|book|part|chapter|section)\b[^{_newline}]*", + Generic.Heading, + "#pop", + ), + default("#pop"), ], - '+documentation-heading': [ - (r'\s+', Text), - (r'\[', Comment.Multiline, '+comment'), - (r'(?i)documentation\s+', Text, '+documentation-heading2'), - default('#pop') + "+documentation-heading": [ + (r"\s+", Text), + (r"\[", Comment.Multiline, "+comment"), + (r"(?i)documentation\s+", Text, "+documentation-heading2"), + default("#pop"), ], - '+documentation-heading2': [ - (r'\s+', Text), - (r'\[', Comment.Multiline, '+comment'), - (rf'[{_dash}]{{4}}\s', Text, '+documentation'), - default('#pop:2') + "+documentation-heading2": [ + (r"\s+", Text), + (r"\[", Comment.Multiline, "+comment"), + (rf"[{_dash}]{{4}}\s", Text, "+documentation"), + default("#pop:2"), ], - '+documentation': [ - (rf'(?i)({_start})\s*(chapter|example)\s*:[^{_newline}]*', Generic.Heading), - (rf'(?i)({_start})\s*section\s*:[^{_newline}]*', - Generic.Subheading), - (rf'(({_start})\t.*?[{_newline}])+', - using(this, state='+main')), - (rf'[^{_newline}\[]+|[{_newline}\[]', Text), - (r'\[', Comment.Multiline, '+comment'), + "+documentation": [ + ( + rf"(?i)({_start})\s*(chapter|example)\s*:[^{_newline}]*", + Generic.Heading, + ), + (rf"(?i)({_start})\s*section\s*:[^{_newline}]*", Generic.Subheading), + (rf"(({_start})\t.*?[{_newline}])+", using(this, state="+main")), + (rf"[^{_newline}\[]+|[{_newline}\[]", Text), + (r"\[", Comment.Multiline, "+comment"), ], - '+i6t-not-inline': [ - (rf'({_start})@c( .*?)?([{_newline}]|\Z)', - Comment.Preproc), - (rf'({_start})@([{_dash}]+|Purpose:)[^{_newline}]*', - Comment.Preproc), - (rf'({_start})@p( .*?)?([{_newline}]|\Z)', - Generic.Heading, '+p') + "+i6t-not-inline": [ + (rf"({_start})@c( .*?)?([{_newline}]|\Z)", Comment.Preproc), + (rf"({_start})@([{_dash}]+|Purpose:)[^{_newline}]*", Comment.Preproc), + (rf"({_start})@p( .*?)?([{_newline}]|\Z)", Generic.Heading, "+p"), ], - '+i6t-use-option': [ - include('+i6t-not-inline'), - (r'(\{)(N)(\})', bygroups(Punctuation, Text, Punctuation)) + "+i6t-use-option": [ + include("+i6t-not-inline"), + (r"(\{)(N)(\})", bygroups(Punctuation, Text, Punctuation)), ], - '+i6t-inline': [ - (r'(\{)(\S[^}]*)?(\})', - bygroups(Punctuation, using(this, state='+main'), - Punctuation)) + "+i6t-inline": [ + ( + r"(\{)(\S[^}]*)?(\})", + bygroups(Punctuation, using(this, state="+main"), Punctuation), + ) ], - '+i6t': [ - (rf'(\{{[{_dash}])(![^}}]*)(\}}?)', - bygroups(Punctuation, Comment.Single, Punctuation)), - (rf'(\{{[{_dash}])(lines)(:)([^}}]*)(\}}?)', - bygroups(Punctuation, Keyword, Punctuation, Text, - Punctuation), '+lines'), - (rf'(\{{[{_dash}])([^:}}]*)(:?)([^}}]*)(\}}?)', - bygroups(Punctuation, Keyword, Punctuation, Text, - Punctuation)), - (r'(\(\+)(.*?)(\+\)|\Z)', - bygroups(Punctuation, using(this, state='+main'), - Punctuation)) + "+i6t": [ + ( + rf"(\{{[{_dash}])(![^}}]*)(\}}?)", + bygroups(Punctuation, Comment.Single, Punctuation), + ), + ( + rf"(\{{[{_dash}])(lines)(:)([^}}]*)(\}}?)", + bygroups(Punctuation, Keyword, Punctuation, Text, Punctuation), + "+lines", + ), + ( + rf"(\{{[{_dash}])([^:}}]*)(:?)([^}}]*)(\}}?)", + bygroups(Punctuation, Keyword, Punctuation, Text, Punctuation), + ), + ( + r"(\(\+)(.*?)(\+\)|\Z)", + bygroups(Punctuation, using(this, state="+main"), Punctuation), + ), ], - '+p': [ - (r'[^@]+', Comment.Preproc), - (rf'({_start})@c( .*?)?([{_newline}]|\Z)', - Comment.Preproc, '#pop'), - (rf'({_start})@([{_dash}]|Purpose:)', Comment.Preproc), - (rf'({_start})@p( .*?)?([{_newline}]|\Z)', - Generic.Heading), - (r'@', Comment.Preproc) + "+p": [ + (r"[^@]+", Comment.Preproc), + (rf"({_start})@c( .*?)?([{_newline}]|\Z)", Comment.Preproc, "#pop"), + (rf"({_start})@([{_dash}]|Purpose:)", Comment.Preproc), + (rf"({_start})@p( .*?)?([{_newline}]|\Z)", Generic.Heading), + (r"@", Comment.Preproc), + ], + "+lines": [ + (rf"({_start})@c( .*?)?([{_newline}]|\Z)", Comment.Preproc), + (rf"({_start})@([{_dash}]|Purpose:)[^{_newline}]*", Comment.Preproc), + (rf"({_start})@p( .*?)?([{_newline}]|\Z)", Generic.Heading, "+p"), + (rf"({_start})@\w*[ {_newline}]", Keyword), + (rf"![^{_newline}]*", Comment.Single), + ( + rf"(\{{)([{_dash}]endlines)(\}})", + bygroups(Punctuation, Keyword, Punctuation), + "#pop", + ), + (rf"[^@!{{]+?([{_newline}]|\Z)|.", Text), ], - '+lines': [ - (rf'({_start})@c( .*?)?([{_newline}]|\Z)', - Comment.Preproc), - (rf'({_start})@([{_dash}]|Purpose:)[^{_newline}]*', - Comment.Preproc), - (rf'({_start})@p( .*?)?([{_newline}]|\Z)', - Generic.Heading, '+p'), - (rf'({_start})@\w*[ {_newline}]', Keyword), - (rf'![^{_newline}]*', Comment.Single), - (rf'(\{{)([{_dash}]endlines)(\}})', - bygroups(Punctuation, Keyword, Punctuation), '#pop'), - (rf'[^@!{{]+?([{_newline}]|\Z)|.', Text) - ] } # Inform 7 can include snippets of Inform 6 template language, # so all of Inform6Lexer's states are copied here, with @@ -725,14 +970,14 @@ class Inform7Lexer(RegexLexer): # They deal with template syntax either by including modified # states, or by matching r'' then pushing to modified states. for token in Inform6Lexer.tokens: - if token == 'root': + if token == "root": continue tokens[level][token] = list(Inform6Lexer.tokens[token]) - if not token.startswith('_'): - tokens[level][token][:0] = [include('+i6t'), include(level)] + if not token.startswith("_"): + tokens[level][token][:0] = [include("+i6t"), include(level)] def __init__(self, **options): - level = options.get('i6t', '+i6t-not-inline') + level = options.get("i6t", "+i6t-not-inline") if level not in self._all_tokens: self._tokens = self.__class__.process_tokendef(level) else: @@ -745,12 +990,12 @@ class Inform6TemplateLexer(Inform7Lexer): For Inform 6 template code. """ - name = 'Inform 6 template' - aliases = ['i6t'] - filenames = ['*.i6t'] - version_added = '2.0' + name = "Inform 6 template" + aliases = ["i6t"] + filenames = ["*.i6t"] + version_added = "2.0" - def get_tokens_unprocessed(self, text, stack=('+i6t-root',)): + def get_tokens_unprocessed(self, text, stack=("+i6t-root",)): return Inform7Lexer.get_tokens_unprocessed(self, text, stack) @@ -759,597 +1004,662 @@ class Tads3Lexer(RegexLexer): For TADS 3 source code. """ - name = 'TADS 3' - aliases = ['tads3'] - filenames = ['*.t'] - url = 'https://www.tads.org' - version_added = '' + name = "TADS 3" + aliases = ["tads3"] + filenames = ["*.t"] + url = "https://www.tads.org" + version_added = "" flags = re.DOTALL | re.MULTILINE - _comment_single = r'(?://(?:[^\\\n]|\\+[\w\W])*$)' - _comment_multiline = r'(?:/\*(?:[^*]|\*(?!/))*\*/)' - _escape = (r'(?:\\(?:[\n\\<>"\'^v bnrt]|u[\da-fA-F]{,4}|x[\da-fA-F]{,2}|' - r'[0-3]?[0-7]{1,2}))') - _name = r'(?:[_a-zA-Z]\w*)' - _no_quote = r'(?=\s|\\?>)' - _operator = (r'(?:&&|\|\||\+\+|--|\?\?|::|[.,@\[\]~]|' - r'(?:[=+\-*/%!&|^]|<>?>?)=?)') - _ws = rf'(?:\\|\s|{_comment_single}|{_comment_multiline})' - _ws_pp = rf'(?:\\\n|[^\S\n]|{_comment_single}|{_comment_multiline})' + _comment_single = r"(?://(?:[^\\\n]|\\+[\w\W])*$)" + _comment_multiline = r"(?:/\*(?:[^*]|\*(?!/))*\*/)" + _escape = ( + r'(?:\\(?:[\n\\<>"\'^v bnrt]|u[\da-fA-F]{,4}|x[\da-fA-F]{,2}|' + r"[0-3]?[0-7]{1,2}))" + ) + _name = r"(?:[_a-zA-Z]\w*)" + _no_quote = r"(?=\s|\\?>)" + _operator = ( + r"(?:&&|\|\||\+\+|--|\?\?|::|[.,@\[\]~]|" r"(?:[=+\-*/%!&|^]|<>?>?)=?)" + ) + _ws = rf"(?:\\|\s|{_comment_single}|{_comment_multiline})" + _ws_pp = rf"(?:\\\n|[^\S\n]|{_comment_single}|{_comment_multiline})" def _make_string_state(triple, double, verbatim=None, _escape=_escape): if verbatim: - verbatim = ''.join([f'(?:{re.escape(c.lower())}|{re.escape(c.upper())})' - for c in verbatim]) + verbatim = "".join( + [f"(?:{re.escape(c.lower())}|{re.escape(c.upper())})" for c in verbatim] + ) char = r'"' if double else r"'" token = String.Double if double else String.Single - escaped_quotes = rf'+|{char}(?!{char}{{2}})' if triple else r'' - prefix = '{}{}'.format('t' if triple else '', 'd' if double else 's') - tag_state_name = f'{prefix}qt' + escaped_quotes = rf"+|{char}(?!{char}{{2}})" if triple else r"" + prefix = "{}{}".format("t" if triple else "", "d" if double else "s") + tag_state_name = f"{prefix}qt" state = [] if triple: state += [ - (rf'{char}{{3,}}', token, '#pop'), - (rf'\\{char}+', String.Escape), - (char, token) + (rf"{char}{{3,}}", token, "#pop"), + (rf"\\{char}+", String.Escape), + (char, token), ] else: - state.append((char, token, '#pop')) - state += [ - include('s/verbatim'), - (rf'[^\\<&{{}}{char}]+', token) - ] + state.append((char, token, "#pop")) + state += [include("s/verbatim"), (rf"[^\\<&{{}}{char}]+", token)] if verbatim: # This regex can't use `(?i)` because escape sequences are # case-sensitive. `<\XMP>` works; `<\xmp>` doesn't. - state.append((rf'\\?<(/|\\\\|(?!{_escape})\\){verbatim}(?=[\s=>])', - Name.Tag, ('#pop', f'{prefix}qs', tag_state_name))) + state.append( + ( + rf"\\?<(/|\\\\|(?!{_escape})\\){verbatim}(?=[\s=>])", + Name.Tag, + ("#pop", f"{prefix}qs", tag_state_name), + ) + ) else: state += [ - (rf'\\?<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*>?', Comment.Multiline), - (r'(?i)\\?]|\\>)', Name.Tag, - ('#pop', f'{prefix}qs/listing', tag_state_name)), - (r'(?i)\\?]|\\>)', Name.Tag, - ('#pop', f'{prefix}qs/xmp', tag_state_name)), - (rf'\\?<([^\s=><\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*', Name.Tag, - tag_state_name), - include('s/entity') + ( + rf"\\?<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*>?", + Comment.Multiline, + ), + ( + r"(?i)\\?]|\\>)", + Name.Tag, + ("#pop", f"{prefix}qs/listing", tag_state_name), + ), + ( + r"(?i)\\?]|\\>)", + Name.Tag, + ("#pop", f"{prefix}qs/xmp", tag_state_name), + ), + ( + rf"\\?<([^\s=><\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*", + Name.Tag, + tag_state_name, + ), + include("s/entity"), ] state += [ - include('s/escape'), - (rf'\{{([^}}<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*\}}', String.Interpol), - (r'[\\&{}<]', token) + include("s/escape"), + ( + rf"\{{([^}}<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*\}}", + String.Interpol, + ), + (r"[\\&{}<]", token), ] return state def _make_tag_state(triple, double, _escape=_escape): char = r'"' if double else r"'" - quantifier = r'{3,}' if triple else r'' - state_name = '{}{}qt'.format('t' if triple else '', 'd' if double else 's') + quantifier = r"{3,}" if triple else r"" + state_name = "{}{}qt".format("t" if triple else "", "d" if double else "s") token = String.Double if double else String.Single - escaped_quotes = rf'+|{char}(?!{char}{{2}})' if triple else r'' + escaped_quotes = rf"+|{char}(?!{char}{{2}})" if triple else r"" return [ - (rf'{char}{quantifier}', token, '#pop:2'), - (r'(\s|\\\n)+', Text), - (r'(=)(\\?")', bygroups(Punctuation, String.Double), - f'dqs/{state_name}'), - (r"(=)(\\?')", bygroups(Punctuation, String.Single), - f'sqs/{state_name}'), - (r'=', Punctuation, f'uqs/{state_name}'), - (r'\\?>', Name.Tag, '#pop'), - (rf'\{{([^}}<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*\}}', String.Interpol), - (rf'([^\s=><\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)+', Name.Attribute), - include('s/escape'), - include('s/verbatim'), - include('s/entity'), - (r'[\\{}&]', Name.Attribute) + (rf"{char}{quantifier}", token, "#pop:2"), + (r"(\s|\\\n)+", Text), + (r'(=)(\\?")', bygroups(Punctuation, String.Double), f"dqs/{state_name}"), + (r"(=)(\\?')", bygroups(Punctuation, String.Single), f"sqs/{state_name}"), + (r"=", Punctuation, f"uqs/{state_name}"), + (r"\\?>", Name.Tag, "#pop"), + ( + rf"\{{([^}}<\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)*\}}", + String.Interpol, + ), + ( + rf"([^\s=><\\{char}]|<(?!<)|\\{char}{escaped_quotes}|{_escape}|\\.)+", + Name.Attribute, + ), + include("s/escape"), + include("s/verbatim"), + include("s/entity"), + (r"[\\{}&]", Name.Attribute), ] - def _make_attribute_value_state(terminator, host_triple, host_double, - _escape=_escape): - token = (String.Double if terminator == r'"' else - String.Single if terminator == r"'" else String.Other) + def _make_attribute_value_state( + terminator, host_triple, host_double, _escape=_escape + ): + token = ( + String.Double + if terminator == r'"' + else String.Single if terminator == r"'" else String.Other + ) host_char = r'"' if host_double else r"'" - host_quantifier = r'{3,}' if host_triple else r'' + host_quantifier = r"{3,}" if host_triple else r"" host_token = String.Double if host_double else String.Single - escaped_quotes = (rf'+|{host_char}(?!{host_char}{{2}})' - if host_triple else r'') + escaped_quotes = rf"+|{host_char}(?!{host_char}{{2}})" if host_triple else r"" return [ - (rf'{host_char}{host_quantifier}', host_token, '#pop:3'), - (r'{}{}'.format(r'' if token is String.Other else r'\\?', terminator), - token, '#pop'), - include('s/verbatim'), - include('s/entity'), - (rf'\{{([^}}<\\{host_char}]|<(?!<)|\\{host_char}{escaped_quotes}|{_escape}|\\.)*\}}', String.Interpol), - (r'([^\s"\'<%s{}\\&])+' % (r'>' if token is String.Other else r''), - token), - include('s/escape'), - (r'["\'\s&{<}\\]', token) + (rf"{host_char}{host_quantifier}", host_token, "#pop:3"), + ( + r"{}{}".format(r"" if token is String.Other else r"\\?", terminator), + token, + "#pop", + ), + include("s/verbatim"), + include("s/entity"), + ( + rf"\{{([^}}<\\{host_char}]|<(?!<)|\\{host_char}{escaped_quotes}|{_escape}|\\.)*\}}", + String.Interpol, + ), + (r'([^\s"\'<%s{}\\&])+' % (r">" if token is String.Other else r""), token), + include("s/escape"), + (r'["\'\s&{<}\\]', token), ] tokens = { - 'root': [ - ('\ufeff', Text), - (r'\{', Punctuation, 'object-body'), - (r';+', Punctuation), - (r'(?=(argcount|break|case|catch|continue|default|definingobj|' - r'delegated|do|else|for|foreach|finally|goto|if|inherited|' - r'invokee|local|nil|new|operator|replaced|return|self|switch|' - r'targetobj|targetprop|throw|true|try|while)\b)', Text, 'block'), - (rf'({_name})({_ws}*)(\()', - bygroups(Name.Function, using(this, state='whitespace'), - Punctuation), - ('block?/root', 'more/parameters', 'main/parameters')), - include('whitespace'), - (r'\++', Punctuation), + "root": [ + ("\ufeff", Text), + (r"\{", Punctuation, "object-body"), + (r";+", Punctuation), + ( + r"(?=(argcount|break|case|catch|continue|default|definingobj|" + r"delegated|do|else|for|foreach|finally|goto|if|inherited|" + r"invokee|local|nil|new|operator|replaced|return|self|switch|" + r"targetobj|targetprop|throw|true|try|while)\b)", + Text, + "block", + ), + ( + rf"({_name})({_ws}*)(\()", + bygroups(Name.Function, using(this, state="whitespace"), Punctuation), + ("block?/root", "more/parameters", "main/parameters"), + ), + include("whitespace"), + (r"\++", Punctuation), (r'[^\s!"%-(*->@-_a-z{-~]+', Error), # Averts an infinite loop - (r'(?!\Z)', Text, 'main/root') + (r"(?!\Z)", Text, "main/root"), ], - 'main/root': [ - include('main/basic'), - default(('#pop', 'object-body/no-braces', 'classes', 'class')) + "main/root": [ + include("main/basic"), + default(("#pop", "object-body/no-braces", "classes", "class")), ], - 'object-body/no-braces': [ - (r';', Punctuation, '#pop'), - (r'\{', Punctuation, ('#pop', 'object-body')), - include('object-body') + "object-body/no-braces": [ + (r";", Punctuation, "#pop"), + (r"\{", Punctuation, ("#pop", "object-body")), + include("object-body"), ], - 'object-body': [ - (r';', Punctuation), - (r'\{', Punctuation, '#push'), - (r'\}', Punctuation, '#pop'), - (r':', Punctuation, ('classes', 'class')), - (rf'({_name}?)({_ws}*)(\()', - bygroups(Name.Function, using(this, state='whitespace'), - Punctuation), - ('block?', 'more/parameters', 'main/parameters')), - (rf'({_name})({_ws}*)(\{{)', - bygroups(Name.Function, using(this, state='whitespace'), - Punctuation), 'block'), - (rf'({_name})({_ws}*)(:)', - bygroups(Name.Variable, using(this, state='whitespace'), - Punctuation), - ('object-body/no-braces', 'classes', 'class')), - include('whitespace'), - (rf'->|{_operator}', Punctuation, 'main'), - default('main/object-body') + "object-body": [ + (r";", Punctuation), + (r"\{", Punctuation, "#push"), + (r"\}", Punctuation, "#pop"), + (r":", Punctuation, ("classes", "class")), + ( + rf"({_name}?)({_ws}*)(\()", + bygroups(Name.Function, using(this, state="whitespace"), Punctuation), + ("block?", "more/parameters", "main/parameters"), + ), + ( + rf"({_name})({_ws}*)(\{{)", + bygroups(Name.Function, using(this, state="whitespace"), Punctuation), + "block", + ), + ( + rf"({_name})({_ws}*)(:)", + bygroups(Name.Variable, using(this, state="whitespace"), Punctuation), + ("object-body/no-braces", "classes", "class"), + ), + include("whitespace"), + (rf"->|{_operator}", Punctuation, "main"), + default("main/object-body"), ], - 'main/object-body': [ - include('main/basic'), - (rf'({_name})({_ws}*)(=?)', - bygroups(Name.Variable, using(this, state='whitespace'), - Punctuation), ('#pop', 'more', 'main')), - default('#pop:2') + "main/object-body": [ + include("main/basic"), + ( + rf"({_name})({_ws}*)(=?)", + bygroups(Name.Variable, using(this, state="whitespace"), Punctuation), + ("#pop", "more", "main"), + ), + default("#pop:2"), ], - 'block?/root': [ - (r'\{', Punctuation, ('#pop', 'block')), - include('whitespace'), - (r'(?=[\[\'"<(:])', Text, # It might be a VerbRule macro. - ('#pop', 'object-body/no-braces', 'grammar', 'grammar-rules')), + "block?/root": [ + (r"\{", Punctuation, ("#pop", "block")), + include("whitespace"), + ( + r'(?=[\[\'"<(:])', + Text, # It might be a VerbRule macro. + ("#pop", "object-body/no-braces", "grammar", "grammar-rules"), + ), # It might be a macro like DefineAction. - default(('#pop', 'object-body/no-braces')) + default(("#pop", "object-body/no-braces")), ], - 'block?': [ - (r'\{', Punctuation, ('#pop', 'block')), - include('whitespace'), - default('#pop') + "block?": [ + (r"\{", Punctuation, ("#pop", "block")), + include("whitespace"), + default("#pop"), ], - 'block/basic': [ - (r'[;:]+', Punctuation), - (r'\{', Punctuation, '#push'), - (r'\}', Punctuation, '#pop'), - (r'default\b', Keyword.Reserved), - (rf'({_name})({_ws}*)(:)', - bygroups(Name.Label, using(this, state='whitespace'), - Punctuation)), - include('whitespace') + "block/basic": [ + (r"[;:]+", Punctuation), + (r"\{", Punctuation, "#push"), + (r"\}", Punctuation, "#pop"), + (r"default\b", Keyword.Reserved), + ( + rf"({_name})({_ws}*)(:)", + bygroups(Name.Label, using(this, state="whitespace"), Punctuation), + ), + include("whitespace"), ], - 'block': [ - include('block/basic'), - (r'(?!\Z)', Text, ('more', 'main')) + "block": [include("block/basic"), (r"(?!\Z)", Text, ("more", "main"))], + "block/embed": [ + (r">>", String.Interpol, "#pop"), + include("block/basic"), + (r"(?!\Z)", Text, ("more/embed", "main")), ], - 'block/embed': [ - (r'>>', String.Interpol, '#pop'), - include('block/basic'), - (r'(?!\Z)', Text, ('more/embed', 'main')) - ], - 'main/basic': [ - include('whitespace'), - (r'\(', Punctuation, ('#pop', 'more', 'main')), - (r'\[', Punctuation, ('#pop', 'more/list', 'main')), - (r'\{', Punctuation, ('#pop', 'more/inner', 'main/inner', - 'more/parameters', 'main/parameters')), - (r'\*|\.{3}', Punctuation, '#pop'), - (r'(?i)0x[\da-f]+', Number.Hex, '#pop'), - (r'(\d+\.(?!\.)\d*|\.\d+)([eE][-+]?\d+)?|\d+[eE][-+]?\d+', - Number.Float, '#pop'), - (r'0[0-7]+', Number.Oct, '#pop'), - (r'\d+', Number.Integer, '#pop'), - (r'"""', String.Double, ('#pop', 'tdqs')), - (r"'''", String.Single, ('#pop', 'tsqs')), - (r'"', String.Double, ('#pop', 'dqs')), - (r"'", String.Single, ('#pop', 'sqs')), - (r'R"""', String.Regex, ('#pop', 'tdqr')), - (r"R'''", String.Regex, ('#pop', 'tsqr')), - (r'R"', String.Regex, ('#pop', 'dqr')), - (r"R'", String.Regex, ('#pop', 'sqr')), + "main/basic": [ + include("whitespace"), + (r"\(", Punctuation, ("#pop", "more", "main")), + (r"\[", Punctuation, ("#pop", "more/list", "main")), + ( + r"\{", + Punctuation, + ( + "#pop", + "more/inner", + "main/inner", + "more/parameters", + "main/parameters", + ), + ), + (r"\*|\.{3}", Punctuation, "#pop"), + (r"(?i)0x[\da-f]+", Number.Hex, "#pop"), + ( + r"(\d+\.(?!\.)\d*|\.\d+)([eE][-+]?\d+)?|\d+[eE][-+]?\d+", + Number.Float, + "#pop", + ), + (r"0[0-7]+", Number.Oct, "#pop"), + (r"\d+", Number.Integer, "#pop"), + (r'"""', String.Double, ("#pop", "tdqs")), + (r"'''", String.Single, ("#pop", "tsqs")), + (r'"', String.Double, ("#pop", "dqs")), + (r"'", String.Single, ("#pop", "sqs")), + (r'R"""', String.Regex, ("#pop", "tdqr")), + (r"R'''", String.Regex, ("#pop", "tsqr")), + (r'R"', String.Regex, ("#pop", "dqr")), + (r"R'", String.Regex, ("#pop", "sqr")), # Two-token keywords - (rf'(extern)({_ws}+)(object\b)', - bygroups(Keyword.Reserved, using(this, state='whitespace'), - Keyword.Reserved)), - (rf'(function|method)({_ws}*)(\()', - bygroups(Keyword.Reserved, using(this, state='whitespace'), - Punctuation), - ('#pop', 'block?', 'more/parameters', 'main/parameters')), - (rf'(modify)({_ws}+)(grammar\b)', - bygroups(Keyword.Reserved, using(this, state='whitespace'), - Keyword.Reserved), - ('#pop', 'object-body/no-braces', ':', 'grammar')), - (rf'(new)({_ws}+(?=(?:function|method)\b))', - bygroups(Keyword.Reserved, using(this, state='whitespace'))), - (rf'(object)({_ws}+)(template\b)', - bygroups(Keyword.Reserved, using(this, state='whitespace'), - Keyword.Reserved), ('#pop', 'template')), - (rf'(string)({_ws}+)(template\b)', - bygroups(Keyword, using(this, state='whitespace'), - Keyword.Reserved), ('#pop', 'function-name')), + ( + rf"(extern)({_ws}+)(object\b)", + bygroups( + Keyword.Reserved, using(this, state="whitespace"), Keyword.Reserved + ), + ), + ( + rf"(function|method)({_ws}*)(\()", + bygroups( + Keyword.Reserved, using(this, state="whitespace"), Punctuation + ), + ("#pop", "block?", "more/parameters", "main/parameters"), + ), + ( + rf"(modify)({_ws}+)(grammar\b)", + bygroups( + Keyword.Reserved, using(this, state="whitespace"), Keyword.Reserved + ), + ("#pop", "object-body/no-braces", ":", "grammar"), + ), + ( + rf"(new)({_ws}+(?=(?:function|method)\b))", + bygroups(Keyword.Reserved, using(this, state="whitespace")), + ), + ( + rf"(object)({_ws}+)(template\b)", + bygroups( + Keyword.Reserved, using(this, state="whitespace"), Keyword.Reserved + ), + ("#pop", "template"), + ), + ( + rf"(string)({_ws}+)(template\b)", + bygroups(Keyword, using(this, state="whitespace"), Keyword.Reserved), + ("#pop", "function-name"), + ), # Keywords - (r'(argcount|definingobj|invokee|replaced|targetobj|targetprop)\b', - Name.Builtin, '#pop'), - (r'(break|continue|goto)\b', Keyword.Reserved, ('#pop', 'label')), - (r'(case|extern|if|intrinsic|return|static|while)\b', - Keyword.Reserved), - (r'catch\b', Keyword.Reserved, ('#pop', 'catch')), - (r'class\b', Keyword.Reserved, - ('#pop', 'object-body/no-braces', 'class')), - (r'(default|do|else|finally|try)\b', Keyword.Reserved, '#pop'), - (r'(dictionary|property)\b', Keyword.Reserved, - ('#pop', 'constants')), - (r'enum\b', Keyword.Reserved, ('#pop', 'enum')), - (r'export\b', Keyword.Reserved, ('#pop', 'main')), - (r'(for|foreach)\b', Keyword.Reserved, - ('#pop', 'more/inner', 'main/inner')), - (r'(function|method)\b', Keyword.Reserved, - ('#pop', 'block?', 'function-name')), - (r'grammar\b', Keyword.Reserved, - ('#pop', 'object-body/no-braces', 'grammar')), - (r'inherited\b', Keyword.Reserved, ('#pop', 'inherited')), - (r'local\b', Keyword.Reserved, - ('#pop', 'more/local', 'main/local')), - (r'(modify|replace|switch|throw|transient)\b', Keyword.Reserved, - '#pop'), - (r'new\b', Keyword.Reserved, ('#pop', 'class')), - (r'(nil|true)\b', Keyword.Constant, '#pop'), - (r'object\b', Keyword.Reserved, ('#pop', 'object-body/no-braces')), - (r'operator\b', Keyword.Reserved, ('#pop', 'operator')), - (r'propertyset\b', Keyword.Reserved, - ('#pop', 'propertyset', 'main')), - (r'self\b', Name.Builtin.Pseudo, '#pop'), - (r'template\b', Keyword.Reserved, ('#pop', 'template')), + ( + r"(argcount|definingobj|invokee|replaced|targetobj|targetprop)\b", + Name.Builtin, + "#pop", + ), + (r"(break|continue|goto)\b", Keyword.Reserved, ("#pop", "label")), + (r"(case|extern|if|intrinsic|return|static|while)\b", Keyword.Reserved), + (r"catch\b", Keyword.Reserved, ("#pop", "catch")), + (r"class\b", Keyword.Reserved, ("#pop", "object-body/no-braces", "class")), + (r"(default|do|else|finally|try)\b", Keyword.Reserved, "#pop"), + (r"(dictionary|property)\b", Keyword.Reserved, ("#pop", "constants")), + (r"enum\b", Keyword.Reserved, ("#pop", "enum")), + (r"export\b", Keyword.Reserved, ("#pop", "main")), + ( + r"(for|foreach)\b", + Keyword.Reserved, + ("#pop", "more/inner", "main/inner"), + ), + ( + r"(function|method)\b", + Keyword.Reserved, + ("#pop", "block?", "function-name"), + ), + ( + r"grammar\b", + Keyword.Reserved, + ("#pop", "object-body/no-braces", "grammar"), + ), + (r"inherited\b", Keyword.Reserved, ("#pop", "inherited")), + (r"local\b", Keyword.Reserved, ("#pop", "more/local", "main/local")), + (r"(modify|replace|switch|throw|transient)\b", Keyword.Reserved, "#pop"), + (r"new\b", Keyword.Reserved, ("#pop", "class")), + (r"(nil|true)\b", Keyword.Constant, "#pop"), + (r"object\b", Keyword.Reserved, ("#pop", "object-body/no-braces")), + (r"operator\b", Keyword.Reserved, ("#pop", "operator")), + (r"propertyset\b", Keyword.Reserved, ("#pop", "propertyset", "main")), + (r"self\b", Name.Builtin.Pseudo, "#pop"), + (r"template\b", Keyword.Reserved, ("#pop", "template")), # Operators - (rf'(__objref|defined)({_ws}*)(\()', - bygroups(Operator.Word, using(this, state='whitespace'), - Operator), ('#pop', 'more/__objref', 'main')), - (r'delegated\b', Operator.Word), + ( + rf"(__objref|defined)({_ws}*)(\()", + bygroups(Operator.Word, using(this, state="whitespace"), Operator), + ("#pop", "more/__objref", "main"), + ), + (r"delegated\b", Operator.Word), # Compiler-defined macros and built-in properties - (r'(__DATE__|__DEBUG|__LINE__|__FILE__|' - r'__TADS_MACRO_FORMAT_VERSION|__TADS_SYS_\w*|__TADS_SYSTEM_NAME|' - r'__TADS_VERSION_MAJOR|__TADS_VERSION_MINOR|__TADS3|__TIME__|' - r'construct|finalize|grammarInfo|grammarTag|lexicalParent|' - r'miscVocab|sourceTextGroup|sourceTextGroupName|' - r'sourceTextGroupOrder|sourceTextOrder)\b', Name.Builtin, '#pop') + ( + r"(__DATE__|__DEBUG|__LINE__|__FILE__|" + r"__TADS_MACRO_FORMAT_VERSION|__TADS_SYS_\w*|__TADS_SYSTEM_NAME|" + r"__TADS_VERSION_MAJOR|__TADS_VERSION_MINOR|__TADS3|__TIME__|" + r"construct|finalize|grammarInfo|grammarTag|lexicalParent|" + r"miscVocab|sourceTextGroup|sourceTextGroupName|" + r"sourceTextGroupOrder|sourceTextOrder)\b", + Name.Builtin, + "#pop", + ), ], - 'main': [ - include('main/basic'), - (_name, Name, '#pop'), - default('#pop') - ], - 'more/basic': [ - (r'\(', Punctuation, ('more/list', 'main')), - (r'\[', Punctuation, ('more', 'main')), - (r'\.{3}', Punctuation), - (r'->|\.\.', Punctuation, 'main'), - (r'(?=;)|[:)\]]', Punctuation, '#pop'), - include('whitespace'), - (_operator, Operator, 'main'), - (r'\?', Operator, ('main', 'more/conditional', 'main')), - (rf'(is|not)({_ws}+)(in\b)', - bygroups(Operator.Word, using(this, state='whitespace'), - Operator.Word)), - (r'[^\s!"%-_a-z{-~]+', Error) # Averts an infinite loop - ], - 'more': [ - include('more/basic'), - default('#pop') + "main": [include("main/basic"), (_name, Name, "#pop"), default("#pop")], + "more/basic": [ + (r"\(", Punctuation, ("more/list", "main")), + (r"\[", Punctuation, ("more", "main")), + (r"\.{3}", Punctuation), + (r"->|\.\.", Punctuation, "main"), + (r"(?=;)|[:)\]]", Punctuation, "#pop"), + include("whitespace"), + (_operator, Operator, "main"), + (r"\?", Operator, ("main", "more/conditional", "main")), + ( + rf"(is|not)({_ws}+)(in\b)", + bygroups(Operator.Word, using(this, state="whitespace"), Operator.Word), + ), + (r'[^\s!"%-_a-z{-~]+', Error), # Averts an infinite loop ], + "more": [include("more/basic"), default("#pop")], # Then expression (conditional operator) - 'more/conditional': [ - (r':(?!:)', Operator, '#pop'), - include('more') - ], + "more/conditional": [(r":(?!:)", Operator, "#pop"), include("more")], # Embedded expressions - 'more/embed': [ - (r'>>', String.Interpol, '#pop:2'), - include('more') - ], + "more/embed": [(r">>", String.Interpol, "#pop:2"), include("more")], # For/foreach loop initializer or short-form anonymous function - 'main/inner': [ - (r'\(', Punctuation, ('#pop', 'more/inner', 'main/inner')), - (r'local\b', Keyword.Reserved, ('#pop', 'main/local')), - include('main') + "main/inner": [ + (r"\(", Punctuation, ("#pop", "more/inner", "main/inner")), + (r"local\b", Keyword.Reserved, ("#pop", "main/local")), + include("main"), ], - 'more/inner': [ - (r'\}', Punctuation, '#pop'), - (r',', Punctuation, 'main/inner'), - (r'(in|step)\b', Keyword, 'main/inner'), - include('more') + "more/inner": [ + (r"\}", Punctuation, "#pop"), + (r",", Punctuation, "main/inner"), + (r"(in|step)\b", Keyword, "main/inner"), + include("more"), ], # Local - 'main/local': [ - (_name, Name.Variable, '#pop'), - include('whitespace') - ], - 'more/local': [ - (r',', Punctuation, 'main/local'), - include('more') - ], + "main/local": [(_name, Name.Variable, "#pop"), include("whitespace")], + "more/local": [(r",", Punctuation, "main/local"), include("more")], # List - 'more/list': [ - (r'[,:]', Punctuation, 'main'), - include('more') - ], + "more/list": [(r"[,:]", Punctuation, "main"), include("more")], # Parameter list - 'main/parameters': [ - (rf'({_name})({_ws}*)(?=:)', - bygroups(Name.Variable, using(this, state='whitespace')), '#pop'), - (rf'({_name})({_ws}+)({_name})', - bygroups(Name.Class, using(this, state='whitespace'), - Name.Variable), '#pop'), - (r'\[+', Punctuation), - include('main/basic'), - (_name, Name.Variable, '#pop'), - default('#pop') + "main/parameters": [ + ( + rf"({_name})({_ws}*)(?=:)", + bygroups(Name.Variable, using(this, state="whitespace")), + "#pop", + ), + ( + rf"({_name})({_ws}+)({_name})", + bygroups(Name.Class, using(this, state="whitespace"), Name.Variable), + "#pop", + ), + (r"\[+", Punctuation), + include("main/basic"), + (_name, Name.Variable, "#pop"), + default("#pop"), ], - 'more/parameters': [ - (rf'(:)({_ws}*(?=[?=,:)]))', - bygroups(Punctuation, using(this, state='whitespace'))), - (r'[?\]]+', Punctuation), - (r'[:)]', Punctuation, ('#pop', 'multimethod?')), - (r',', Punctuation, 'main/parameters'), - (r'=', Punctuation, ('more/parameter', 'main')), - include('more') + "more/parameters": [ + ( + rf"(:)({_ws}*(?=[?=,:)]))", + bygroups(Punctuation, using(this, state="whitespace")), + ), + (r"[?\]]+", Punctuation), + (r"[:)]", Punctuation, ("#pop", "multimethod?")), + (r",", Punctuation, "main/parameters"), + (r"=", Punctuation, ("more/parameter", "main")), + include("more"), ], - 'more/parameter': [ - (r'(?=[,)])', Text, '#pop'), - include('more') + "more/parameter": [(r"(?=[,)])", Text, "#pop"), include("more")], + "multimethod?": [ + (r"multimethod\b", Keyword, "#pop"), + include("whitespace"), + default("#pop"), ], - 'multimethod?': [ - (r'multimethod\b', Keyword, '#pop'), - include('whitespace'), - default('#pop') - ], - # Statements and expressions - 'more/__objref': [ - (r',', Punctuation, 'mode'), - (r'\)', Operator, '#pop'), - include('more') + "more/__objref": [ + (r",", Punctuation, "mode"), + (r"\)", Operator, "#pop"), + include("more"), ], - 'mode': [ - (r'(error|warn)\b', Keyword, '#pop'), - include('whitespace') + "mode": [(r"(error|warn)\b", Keyword, "#pop"), include("whitespace")], + "catch": [ + (r"\(+", Punctuation), + (_name, Name.Exception, ("#pop", "variables")), + include("whitespace"), ], - 'catch': [ - (r'\(+', Punctuation), - (_name, Name.Exception, ('#pop', 'variables')), - include('whitespace') + "enum": [ + include("whitespace"), + (r"token\b", Keyword, ("#pop", "constants")), + default(("#pop", "constants")), ], - 'enum': [ - include('whitespace'), - (r'token\b', Keyword, ('#pop', 'constants')), - default(('#pop', 'constants')) - ], - 'grammar': [ - (r'\)+', Punctuation), - (r'\(', Punctuation, 'grammar-tag'), - (r':', Punctuation, 'grammar-rules'), + "grammar": [ + (r"\)+", Punctuation), + (r"\(", Punctuation, "grammar-tag"), + (r":", Punctuation, "grammar-rules"), (_name, Name.Class), - include('whitespace') + include("whitespace"), ], - 'grammar-tag': [ - include('whitespace'), - (r'"""([^\\"<]|""?(?!")|\\"+|\\.|<(?!<))+("{3,}|<<)|' - r'R"""([^\\"]|""?(?!")|\\"+|\\.)+"{3,}|' - r"'''([^\\'<]|''?(?!')|\\'+|\\.|<(?!<))+('{3,}|<<)|" - r"R'''([^\\']|''?(?!')|\\'+|\\.)+'{3,}|" - r'"([^\\"<]|\\.|<(?!<))+("|<<)|R"([^\\"]|\\.)+"|' - r"'([^\\'<]|\\.|<(?!<))+('|<<)|R'([^\\']|\\.)+'|" - r"([^)\s\\/]|/(?![/*]))+|\)", String.Other, '#pop') + "grammar-tag": [ + include("whitespace"), + ( + r'"""([^\\"<]|""?(?!")|\\"+|\\.|<(?!<))+("{3,}|<<)|' + r'R"""([^\\"]|""?(?!")|\\"+|\\.)+"{3,}|' + r"'''([^\\'<]|''?(?!')|\\'+|\\.|<(?!<))+('{3,}|<<)|" + r"R'''([^\\']|''?(?!')|\\'+|\\.)+'{3,}|" + r'"([^\\"<]|\\.|<(?!<))+("|<<)|R"([^\\"]|\\.)+"|' + r"'([^\\'<]|\\.|<(?!<))+('|<<)|R'([^\\']|\\.)+'|" + r"([^)\s\\/]|/(?![/*]))+|\)", + String.Other, + "#pop", + ), ], - 'grammar-rules': [ - include('string'), - include('whitespace'), - (rf'(\[)({_ws}*)(badness)', - bygroups(Punctuation, using(this, state='whitespace'), Keyword), - 'main'), - (rf'->|{_operator}|[()]', Punctuation), + "grammar-rules": [ + include("string"), + include("whitespace"), + ( + rf"(\[)({_ws}*)(badness)", + bygroups(Punctuation, using(this, state="whitespace"), Keyword), + "main", + ), + (rf"->|{_operator}|[()]", Punctuation), (_name, Name.Constant), - default('#pop:2') + default("#pop:2"), ], - ':': [ - (r':', Punctuation, '#pop') + ":": [(r":", Punctuation, "#pop")], + "function-name": [ + (r"(<<([^>]|>>>|>(?!>))*>>)+", String.Interpol), + (rf"(?={_name}?{_ws}*[({{])", Text, "#pop"), + (_name, Name.Function, "#pop"), + include("whitespace"), ], - 'function-name': [ - (r'(<<([^>]|>>>|>(?!>))*>>)+', String.Interpol), - (rf'(?={_name}?{_ws}*[({{])', Text, '#pop'), - (_name, Name.Function, '#pop'), - include('whitespace') + "inherited": [ + (r"<", Punctuation, ("#pop", "classes", "class")), + include("whitespace"), + (_name, Name.Class, "#pop"), + default("#pop"), ], - 'inherited': [ - (r'<', Punctuation, ('#pop', 'classes', 'class')), - include('whitespace'), - (_name, Name.Class, '#pop'), - default('#pop') - ], - 'operator': [ - (r'negate\b', Operator.Word, '#pop'), - include('whitespace'), + "operator": [ + (r"negate\b", Operator.Word, "#pop"), + include("whitespace"), (_operator, Operator), - default('#pop') + default("#pop"), ], - 'propertyset': [ - (r'\(', Punctuation, ('more/parameters', 'main/parameters')), - (r'\{', Punctuation, ('#pop', 'object-body')), - include('whitespace') + "propertyset": [ + (r"\(", Punctuation, ("more/parameters", "main/parameters")), + (r"\{", Punctuation, ("#pop", "object-body")), + include("whitespace"), ], - 'template': [ - (r'(?=;)', Text, '#pop'), - include('string'), - (r'inherited\b', Keyword.Reserved), - include('whitespace'), - (rf'->|\?|{_operator}', Punctuation), - (_name, Name.Variable) + "template": [ + (r"(?=;)", Text, "#pop"), + include("string"), + (r"inherited\b", Keyword.Reserved), + include("whitespace"), + (rf"->|\?|{_operator}", Punctuation), + (_name, Name.Variable), ], - # Identifiers - 'class': [ - (r'\*|\.{3}', Punctuation, '#pop'), - (r'object\b', Keyword.Reserved, '#pop'), - (r'transient\b', Keyword.Reserved), - (_name, Name.Class, '#pop'), - include('whitespace'), - default('#pop') + "class": [ + (r"\*|\.{3}", Punctuation, "#pop"), + (r"object\b", Keyword.Reserved, "#pop"), + (r"transient\b", Keyword.Reserved), + (_name, Name.Class, "#pop"), + include("whitespace"), + default("#pop"), ], - 'classes': [ - (r'[:,]', Punctuation, 'class'), - include('whitespace'), - (r'>', Punctuation, '#pop'), - default('#pop') + "classes": [ + (r"[:,]", Punctuation, "class"), + include("whitespace"), + (r">", Punctuation, "#pop"), + default("#pop"), ], - 'constants': [ - (r',+', Punctuation), - (r';', Punctuation, '#pop'), - (r'property\b', Keyword.Reserved), + "constants": [ + (r",+", Punctuation), + (r";", Punctuation, "#pop"), + (r"property\b", Keyword.Reserved), (_name, Name.Constant), - include('whitespace') + include("whitespace"), ], - 'label': [ - (_name, Name.Label, '#pop'), - include('whitespace'), - default('#pop') + "label": [(_name, Name.Label, "#pop"), include("whitespace"), default("#pop")], + "variables": [ + (r",+", Punctuation), + (r"\)", Punctuation, "#pop"), + include("whitespace"), + (_name, Name.Variable), ], - 'variables': [ - (r',+', Punctuation), - (r'\)', Punctuation, '#pop'), - include('whitespace'), - (_name, Name.Variable) - ], - # Whitespace and comments - 'whitespace': [ - (rf'^{_ws_pp}*#({_comment_multiline}|[^\n]|(?<=\\)\n)*\n?', - Comment.Preproc), + "whitespace": [ + ( + rf"^{_ws_pp}*#({_comment_multiline}|[^\n]|(?<=\\)\n)*\n?", + Comment.Preproc, + ), (_comment_single, Comment.Single), (_comment_multiline, Comment.Multiline), - (rf'\\+\n+{_ws_pp}*#?|\n+|([^\S\n]|\\)+', Text) + (rf"\\+\n+{_ws_pp}*#?|\n+|([^\S\n]|\\)+", Text), ], - # Strings - 'string': [ - (r'"""', String.Double, 'tdqs'), - (r"'''", String.Single, 'tsqs'), - (r'"', String.Double, 'dqs'), - (r"'", String.Single, 'sqs') + "string": [ + (r'"""', String.Double, "tdqs"), + (r"'''", String.Single, "tsqs"), + (r'"', String.Double, "dqs"), + (r"'", String.Single, "sqs"), ], - 's/escape': [ - (rf'\{{\{{|\}}\}}|{_escape}', String.Escape) + "s/escape": [(rf"\{{\{{|\}}\}}|{_escape}", String.Escape)], + "s/verbatim": [ + ( + r"<<\s*(as\s+decreasingly\s+likely\s+outcomes|cycling|else|end|" + r"first\s+time|one\s+of|only|or|otherwise|" + r"(sticky|(then\s+)?(purely\s+)?at)\s+random|stopping|" + r"(then\s+)?(half\s+)?shuffled|\|\|)\s*>>", + String.Interpol, + ), + ( + rf"<<(%(_({_escape}|\\?.)|[\-+ ,#]|\[\d*\]?)*\d*\.?\d*({_escape}|\\?.)|" + r"\s*((else|otherwise)\s+)?(if|unless)\b)?", + String.Interpol, + ("block/embed", "more/embed", "main"), + ), ], - 's/verbatim': [ - (r'<<\s*(as\s+decreasingly\s+likely\s+outcomes|cycling|else|end|' - r'first\s+time|one\s+of|only|or|otherwise|' - r'(sticky|(then\s+)?(purely\s+)?at)\s+random|stopping|' - r'(then\s+)?(half\s+)?shuffled|\|\|)\s*>>', String.Interpol), - (rf'<<(%(_({_escape}|\\?.)|[\-+ ,#]|\[\d*\]?)*\d*\.?\d*({_escape}|\\?.)|' - r'\s*((else|otherwise)\s+)?(if|unless)\b)?', - String.Interpol, ('block/embed', 'more/embed', 'main')) - ], - 's/entity': [ - (r'(?i)&(#(x[\da-f]+|\d+)|[a-z][\da-z]*);?', Name.Entity) - ], - 'tdqs': _make_string_state(True, True), - 'tsqs': _make_string_state(True, False), - 'dqs': _make_string_state(False, True), - 'sqs': _make_string_state(False, False), - 'tdqs/listing': _make_string_state(True, True, 'listing'), - 'tsqs/listing': _make_string_state(True, False, 'listing'), - 'dqs/listing': _make_string_state(False, True, 'listing'), - 'sqs/listing': _make_string_state(False, False, 'listing'), - 'tdqs/xmp': _make_string_state(True, True, 'xmp'), - 'tsqs/xmp': _make_string_state(True, False, 'xmp'), - 'dqs/xmp': _make_string_state(False, True, 'xmp'), - 'sqs/xmp': _make_string_state(False, False, 'xmp'), - + "s/entity": [(r"(?i)&(#(x[\da-f]+|\d+)|[a-z][\da-z]*);?", Name.Entity)], + "tdqs": _make_string_state(True, True), + "tsqs": _make_string_state(True, False), + "dqs": _make_string_state(False, True), + "sqs": _make_string_state(False, False), + "tdqs/listing": _make_string_state(True, True, "listing"), + "tsqs/listing": _make_string_state(True, False, "listing"), + "dqs/listing": _make_string_state(False, True, "listing"), + "sqs/listing": _make_string_state(False, False, "listing"), + "tdqs/xmp": _make_string_state(True, True, "xmp"), + "tsqs/xmp": _make_string_state(True, False, "xmp"), + "dqs/xmp": _make_string_state(False, True, "xmp"), + "sqs/xmp": _make_string_state(False, False, "xmp"), # Tags - 'tdqt': _make_tag_state(True, True), - 'tsqt': _make_tag_state(True, False), - 'dqt': _make_tag_state(False, True), - 'sqt': _make_tag_state(False, False), - 'dqs/tdqt': _make_attribute_value_state(r'"', True, True), - 'dqs/tsqt': _make_attribute_value_state(r'"', True, False), - 'dqs/dqt': _make_attribute_value_state(r'"', False, True), - 'dqs/sqt': _make_attribute_value_state(r'"', False, False), - 'sqs/tdqt': _make_attribute_value_state(r"'", True, True), - 'sqs/tsqt': _make_attribute_value_state(r"'", True, False), - 'sqs/dqt': _make_attribute_value_state(r"'", False, True), - 'sqs/sqt': _make_attribute_value_state(r"'", False, False), - 'uqs/tdqt': _make_attribute_value_state(_no_quote, True, True), - 'uqs/tsqt': _make_attribute_value_state(_no_quote, True, False), - 'uqs/dqt': _make_attribute_value_state(_no_quote, False, True), - 'uqs/sqt': _make_attribute_value_state(_no_quote, False, False), - + "tdqt": _make_tag_state(True, True), + "tsqt": _make_tag_state(True, False), + "dqt": _make_tag_state(False, True), + "sqt": _make_tag_state(False, False), + "dqs/tdqt": _make_attribute_value_state(r'"', True, True), + "dqs/tsqt": _make_attribute_value_state(r'"', True, False), + "dqs/dqt": _make_attribute_value_state(r'"', False, True), + "dqs/sqt": _make_attribute_value_state(r'"', False, False), + "sqs/tdqt": _make_attribute_value_state(r"'", True, True), + "sqs/tsqt": _make_attribute_value_state(r"'", True, False), + "sqs/dqt": _make_attribute_value_state(r"'", False, True), + "sqs/sqt": _make_attribute_value_state(r"'", False, False), + "uqs/tdqt": _make_attribute_value_state(_no_quote, True, True), + "uqs/tsqt": _make_attribute_value_state(_no_quote, True, False), + "uqs/dqt": _make_attribute_value_state(_no_quote, False, True), + "uqs/sqt": _make_attribute_value_state(_no_quote, False, False), # Regular expressions - 'tdqr': [ + "tdqr": [ (r'[^\\"]+', String.Regex), (r'\\"*', String.Regex), - (r'"{3,}', String.Regex, '#pop'), - (r'"', String.Regex) + (r'"{3,}', String.Regex, "#pop"), + (r'"', String.Regex), ], - 'tsqr': [ + "tsqr": [ (r"[^\\']+", String.Regex), (r"\\'*", String.Regex), - (r"'{3,}", String.Regex, '#pop'), - (r"'", String.Regex) + (r"'{3,}", String.Regex, "#pop"), + (r"'", String.Regex), ], - 'dqr': [ + "dqr": [ (r'[^\\"]+', String.Regex), (r'\\"?', String.Regex), - (r'"', String.Regex, '#pop') + (r'"', String.Regex, "#pop"), ], - 'sqr': [ + "sqr": [ (r"[^\\']+", String.Regex), (r"\\'?", String.Regex), - (r"'", String.Regex, '#pop') - ] + (r"'", String.Regex, "#pop"), + ], } def get_tokens_unprocessed(self, text, **kwargs): - pp = rf'^{self._ws_pp}*#{self._ws_pp}*' + pp = rf"^{self._ws_pp}*#{self._ws_pp}*" if_false_level = 0 - for index, token, value in ( - RegexLexer.get_tokens_unprocessed(self, text, **kwargs)): + for index, token, value in RegexLexer.get_tokens_unprocessed( + self, text, **kwargs + ): if if_false_level == 0: # Not in a false #if - if (token is Comment.Preproc and - re.match(rf'{pp}if{self._ws_pp}+(0|nil){self._ws_pp}*$\n?', value)): + if token is Comment.Preproc and re.match( + rf"{pp}if{self._ws_pp}+(0|nil){self._ws_pp}*$\n?", value + ): if_false_level = 1 else: # In a false #if if token is Comment.Preproc: - if (if_false_level == 1 and - re.match(rf'{pp}el(if|se)\b', value)): + if if_false_level == 1 and re.match(rf"{pp}el(if|se)\b", value): if_false_level = 0 - elif re.match(rf'{pp}if', value): + elif re.match(rf"{pp}if", value): if_false_level += 1 - elif re.match(rf'{pp}endif\b', value): + elif re.match(rf"{pp}endif\b", value): if_false_level -= 1 else: token = Comment @@ -1360,11 +1670,11 @@ class Tads3Lexer(RegexLexer): identifiers. It looks like a 'GameMainDef' has to be present, and/or a 'versionInfo' with an 'IFID' field.""" result = 0 - if '__TADS' in text or 'GameMainDef' in text: + if "__TADS" in text or "GameMainDef" in text: result += 0.2 # This is a fairly unique keyword which is likely used in source as well - if 'versionInfo' in text and 'IFID' in text: + if "versionInfo" in text and "IFID" in text: result += 0.1 return result diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/iolang.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/iolang.py index 0269384..5e24fea 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/iolang.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/iolang.py @@ -1,61 +1,61 @@ """ - pygments.lexers.iolang - ~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.iolang +~~~~~~~~~~~~~~~~~~~~~~ - Lexers for the Io language. +Lexers for the Io language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer -from pygments.token import Comment, Operator, Keyword, Name, String, Number, \ - Whitespace +from pygments.token import Comment, Operator, Keyword, Name, String, Number, Whitespace -__all__ = ['IoLexer'] +__all__ = ["IoLexer"] class IoLexer(RegexLexer): """ For Io (a small, prototype-based programming language) source. """ - name = 'Io' - url = 'http://iolanguage.com/' - filenames = ['*.io'] - aliases = ['io'] - mimetypes = ['text/x-iosrc'] - version_added = '0.10' + + name = "Io" + url = "http://iolanguage.com/" + filenames = ["*.io"] + aliases = ["io"] + mimetypes = ["text/x-iosrc"] + version_added = "0.10" tokens = { - 'root': [ - (r'\n', Whitespace), - (r'\s+', Whitespace), + "root": [ + (r"\n", Whitespace), + (r"\s+", Whitespace), # Comments - (r'//(.*?)$', Comment.Single), - (r'#(.*?)$', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r'/\+', Comment.Multiline, 'nestedcomment'), + (r"//(.*?)$", Comment.Single), + (r"#(.*?)$", Comment.Single), + (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline), + (r"/\+", Comment.Multiline, "nestedcomment"), # DoubleQuotedString (r'"(\\\\|\\[^\\]|[^"\\])*"', String), # Operators - (r'::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}', - Operator), + ( + r"::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}", + Operator, + ), # keywords - (r'(clone|do|doFile|doString|method|for|if|else|elseif|then)\b', - Keyword), + (r"(clone|do|doFile|doString|method|for|if|else|elseif|then)\b", Keyword), # constants - (r'(nil|false|true)\b', Name.Constant), + (r"(nil|false|true)\b", Name.Constant), # names - (r'(Object|list|List|Map|args|Sequence|Coroutine|File)\b', - Name.Builtin), - (r'[a-zA-Z_]\w*', Name), + (r"(Object|list|List|Map|args|Sequence|Coroutine|File)\b", Name.Builtin), + (r"[a-zA-Z_]\w*", Name), # numbers - (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float), - (r'\d+', Number.Integer) + (r"(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?", Number.Float), + (r"\d+", Number.Integer), + ], + "nestedcomment": [ + (r"[^+/]+", Comment.Multiline), + (r"/\+", Comment.Multiline, "#push"), + (r"\+/", Comment.Multiline, "#pop"), + (r"[+/]", Comment.Multiline), ], - 'nestedcomment': [ - (r'[^+/]+', Comment.Multiline), - (r'/\+', Comment.Multiline, '#push'), - (r'\+/', Comment.Multiline, '#pop'), - (r'[+/]', Comment.Multiline), - ] } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/j.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/j.py index 1eb418e..c49238e 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/j.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/j.py @@ -1,18 +1,26 @@ """ - pygments.lexers.j - ~~~~~~~~~~~~~~~~~ +pygments.lexers.j +~~~~~~~~~~~~~~~~~ - Lexer for the J programming language. +Lexer for the J programming language. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, words, include, bygroups -from pygments.token import Comment, Keyword, Name, Number, Operator, \ - Punctuation, String, Whitespace +from pygments.token import ( + Comment, + Keyword, + Name, + Number, + Operator, + Punctuation, + String, + Whitespace, +) -__all__ = ['JLexer'] +__all__ = ["JLexer"] class JLexer(RegexLexer): @@ -20,132 +28,210 @@ class JLexer(RegexLexer): For J source code. """ - name = 'J' - url = 'http://jsoftware.com/' - aliases = ['j'] - filenames = ['*.ijs'] - mimetypes = ['text/x-j'] - version_added = '2.1' + name = "J" + url = "http://jsoftware.com/" + aliases = ["j"] + filenames = ["*.ijs"] + mimetypes = ["text/x-j"] + version_added = "2.1" - validName = r'\b[a-zA-Z]\w*' + validName = r"\b[a-zA-Z]\w*" tokens = { - 'root': [ + "root": [ # Shebang script - (r'#!.*$', Comment.Preproc), - + (r"#!.*$", Comment.Preproc), # Comments - (r'NB\..*', Comment.Single), - (r'(\n+\s*)(Note)', bygroups(Whitespace, Comment.Multiline), - 'comment'), - (r'(\s*)(Note.*)', bygroups(Whitespace, Comment.Single)), - + (r"NB\..*", Comment.Single), + (r"(\n+\s*)(Note)", bygroups(Whitespace, Comment.Multiline), "comment"), + (r"(\s*)(Note.*)", bygroups(Whitespace, Comment.Single)), # Whitespace - (r'\s+', Whitespace), - + (r"\s+", Whitespace), # Strings - (r"'", String, 'singlequote'), - + (r"'", String, "singlequote"), # Definitions - (r'0\s+:\s*0', Name.Entity, 'nounDefinition'), - (r'(noun)(\s+)(define)(\s*)$', bygroups(Name.Entity, Whitespace, - Name.Entity, Whitespace), 'nounDefinition'), - (r'([1-4]|13)\s+:\s*0\b', - Name.Function, 'explicitDefinition'), - (r'(adverb|conjunction|dyad|monad|verb)(\s+)(define)\b', + (r"0\s+:\s*0", Name.Entity, "nounDefinition"), + ( + r"(noun)(\s+)(define)(\s*)$", + bygroups(Name.Entity, Whitespace, Name.Entity, Whitespace), + "nounDefinition", + ), + (r"([1-4]|13)\s+:\s*0\b", Name.Function, "explicitDefinition"), + ( + r"(adverb|conjunction|dyad|monad|verb)(\s+)(define)\b", bygroups(Name.Function, Whitespace, Name.Function), - 'explicitDefinition'), - + "explicitDefinition", + ), # Flow Control - (words(('for_', 'goto_', 'label_'), suffix=validName+r'\.'), Name.Label), - (words(( - 'assert', 'break', 'case', 'catch', 'catchd', - 'catcht', 'continue', 'do', 'else', 'elseif', - 'end', 'fcase', 'for', 'if', 'return', - 'select', 'throw', 'try', 'while', 'whilst', - ), suffix=r'\.'), Name.Label), - + (words(("for_", "goto_", "label_"), suffix=validName + r"\."), Name.Label), + ( + words( + ( + "assert", + "break", + "case", + "catch", + "catchd", + "catcht", + "continue", + "do", + "else", + "elseif", + "end", + "fcase", + "for", + "if", + "return", + "select", + "throw", + "try", + "while", + "whilst", + ), + suffix=r"\.", + ), + Name.Label, + ), # Variable Names (validName, Name.Variable), - # Standard Library - (words(( - 'ARGV', 'CR', 'CRLF', 'DEL', 'Debug', - 'EAV', 'EMPTY', 'FF', 'JVERSION', 'LF', - 'LF2', 'Note', 'TAB', 'alpha17', 'alpha27', - 'apply', 'bind', 'boxopen', 'boxxopen', 'bx', - 'clear', 'cutLF', 'cutopen', 'datatype', 'def', - 'dfh', 'drop', 'each', 'echo', 'empty', - 'erase', 'every', 'evtloop', 'exit', 'expand', - 'fetch', 'file2url', 'fixdotdot', 'fliprgb', 'getargs', - 'getenv', 'hfd', 'inv', 'inverse', 'iospath', - 'isatty', 'isutf8', 'items', 'leaf', 'list', - 'nameclass', 'namelist', 'names', 'nc', - 'nl', 'on', 'pick', 'rows', - 'script', 'scriptd', 'sign', 'sminfo', 'smoutput', - 'sort', 'split', 'stderr', 'stdin', 'stdout', - 'table', 'take', 'timespacex', 'timex', 'tmoutput', - 'toCRLF', 'toHOST', 'toJ', 'tolower', 'toupper', - 'type', 'ucp', 'ucpcount', 'usleep', 'utf8', - 'uucp', - )), Name.Function), - + ( + words( + ( + "ARGV", + "CR", + "CRLF", + "DEL", + "Debug", + "EAV", + "EMPTY", + "FF", + "JVERSION", + "LF", + "LF2", + "Note", + "TAB", + "alpha17", + "alpha27", + "apply", + "bind", + "boxopen", + "boxxopen", + "bx", + "clear", + "cutLF", + "cutopen", + "datatype", + "def", + "dfh", + "drop", + "each", + "echo", + "empty", + "erase", + "every", + "evtloop", + "exit", + "expand", + "fetch", + "file2url", + "fixdotdot", + "fliprgb", + "getargs", + "getenv", + "hfd", + "inv", + "inverse", + "iospath", + "isatty", + "isutf8", + "items", + "leaf", + "list", + "nameclass", + "namelist", + "names", + "nc", + "nl", + "on", + "pick", + "rows", + "script", + "scriptd", + "sign", + "sminfo", + "smoutput", + "sort", + "split", + "stderr", + "stdin", + "stdout", + "table", + "take", + "timespacex", + "timex", + "tmoutput", + "toCRLF", + "toHOST", + "toJ", + "tolower", + "toupper", + "type", + "ucp", + "ucpcount", + "usleep", + "utf8", + "uucp", + ) + ), + Name.Function, + ), # Copula - (r'=[.:]', Operator), - + (r"=[.:]", Operator), # Builtins (r'[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/?]', Operator), - # Short Keywords - (r'[abCdDeEfHiIjLMoprtT]\.', Keyword.Reserved), - (r'[aDiLpqsStux]\:', Keyword.Reserved), - (r'(_[0-9])\:', Keyword.Constant), - + (r"[abCdDeEfHiIjLMoprtT]\.", Keyword.Reserved), + (r"[aDiLpqsStux]\:", Keyword.Reserved), + (r"(_[0-9])\:", Keyword.Constant), # Parens - (r'\(', Punctuation, 'parentheses'), - + (r"\(", Punctuation, "parentheses"), # Numbers - include('numbers'), + include("numbers"), ], - - 'comment': [ - (r'[^)]', Comment.Multiline), - (r'^\)', Comment.Multiline, '#pop'), - (r'[)]', Comment.Multiline), + "comment": [ + (r"[^)]", Comment.Multiline), + (r"^\)", Comment.Multiline, "#pop"), + (r"[)]", Comment.Multiline), ], - - 'explicitDefinition': [ - (r'\b[nmuvxy]\b', Name.Decorator), - include('root'), - (r'[^)]', Name), - (r'^\)', Name.Label, '#pop'), - (r'[)]', Name), + "explicitDefinition": [ + (r"\b[nmuvxy]\b", Name.Decorator), + include("root"), + (r"[^)]", Name), + (r"^\)", Name.Label, "#pop"), + (r"[)]", Name), ], - - 'numbers': [ - (r'\b_{1,2}\b', Number), - (r'_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?', Number), - (r'_?\d+\.(?=\d+)', Number.Float), - (r'_?\d+x', Number.Integer.Long), - (r'_?\d+', Number.Integer), + "numbers": [ + (r"\b_{1,2}\b", Number), + (r"_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?", Number), + (r"_?\d+\.(?=\d+)", Number.Float), + (r"_?\d+x", Number.Integer.Long), + (r"_?\d+", Number.Integer), ], - - 'nounDefinition': [ - (r'[^)]+', String), - (r'^\)', Name.Label, '#pop'), - (r'[)]', String), + "nounDefinition": [ + (r"[^)]+", String), + (r"^\)", Name.Label, "#pop"), + (r"[)]", String), ], - - 'parentheses': [ - (r'\)', Punctuation, '#pop'), + "parentheses": [ + (r"\)", Punctuation, "#pop"), # include('nounDefinition'), - include('explicitDefinition'), - include('root'), + include("explicitDefinition"), + include("root"), ], - - 'singlequote': [ + "singlequote": [ (r"[^']+", String), (r"''", String), - (r"'", String, '#pop'), + (r"'", String, "#pop"), ], } diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/javascript.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/javascript.py index d361b6e..5b7da8f 100644 --- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/javascript.py +++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/javascript.py @@ -1,33 +1,71 @@ """ - pygments.lexers.javascript - ~~~~~~~~~~~~~~~~~~~~~~~~~~ +pygments.lexers.javascript +~~~~~~~~~~~~~~~~~~~~~~~~~~ - Lexers for JavaScript and related languages. +Lexers for JavaScript and related languages. - :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. +:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. +:license: BSD, see LICENSE for details. """ import re -from pygments.lexer import bygroups, combined, default, do_insertions, include, \ - inherit, Lexer, RegexLexer, this, using, words, line_re -from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ - Number, Punctuation, Other, Generic, Whitespace +from pygments.lexer import ( + bygroups, + combined, + default, + do_insertions, + include, + inherit, + Lexer, + RegexLexer, + this, + using, + words, + line_re, +) +from pygments.token import ( + Text, + Comment, + Operator, + Keyword, + Name, + String, + Number, + Punctuation, + Other, + Generic, + Whitespace, +) from pygments.util import get_bool_opt import pygments.unistring as uni -__all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer', - 'TypeScriptLexer', 'LassoLexer', 'ObjectiveJLexer', - 'CoffeeScriptLexer', 'MaskLexer', 'EarlGreyLexer', 'JuttleLexer', - 'NodeConsoleLexer'] +__all__ = [ + "JavascriptLexer", + "KalLexer", + "LiveScriptLexer", + "DartLexer", + "TypeScriptLexer", + "LassoLexer", + "ObjectiveJLexer", + "CoffeeScriptLexer", + "MaskLexer", + "EarlGreyLexer", + "JuttleLexer", + "NodeConsoleLexer", +] -JS_IDENT_START = ('(?:[$_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') + - ']|\\\\u[a-fA-F0-9]{4})') -JS_IDENT_PART = ('(?:[$' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl', - 'Mn', 'Mc', 'Nd', 'Pc') + - '\u200c\u200d]|\\\\u[a-fA-F0-9]{4})') -JS_IDENT = JS_IDENT_START + '(?:' + JS_IDENT_PART + ')*' +JS_IDENT_START = ( + "(?:[$_" + + uni.combine("Lu", "Ll", "Lt", "Lm", "Lo", "Nl") + + "]|\\\\u[a-fA-F0-9]{4})" +) +JS_IDENT_PART = ( + "(?:[$" + + uni.combine("Lu", "Ll", "Lt", "Lm", "Lo", "Nl", "Mn", "Mc", "Nd", "Pc") + + "\u200c\u200d]|\\\\u[a-fA-F0-9]{4})" +) +JS_IDENT = JS_IDENT_START + "(?:" + JS_IDENT_PART + ")*" class JavascriptLexer(RegexLexer): @@ -35,104 +73,130 @@ class JavascriptLexer(RegexLexer): For JavaScript source code. """ - name = 'JavaScript' - url = 'https://www.ecma-international.org/publications-and-standards/standards/ecma-262/' - aliases = ['javascript', 'js'] - filenames = ['*.js', '*.jsm', '*.mjs', '*.cjs'] - mimetypes = ['application/javascript', 'application/x-javascript', - 'text/x-javascript', 'text/javascript'] - version_added = '' + name = "JavaScript" + url = "https://www.ecma-international.org/publications-and-standards/standards/ecma-262/" + aliases = ["javascript", "js"] + filenames = ["*.js", "*.jsm", "*.mjs", "*.cjs"] + mimetypes = [ + "application/javascript", + "application/x-javascript", + "text/x-javascript", + "text/javascript", + ] + version_added = "" flags = re.DOTALL | re.MULTILINE tokens = { - 'commentsandwhitespace': [ - (r'\s+', Whitespace), - (r')?', Other), - (r'[^[<]+', Other), + "delimiters": [ + (r"\[no_square_brackets\]", Comment.Preproc, "nosquarebrackets"), + (r"\[noprocess\]", Comment.Preproc, "noprocess"), + (r"\[", Comment.Preproc, "squarebrackets"), + (r"<\?(lasso(script)?|=)", Comment.Preproc, "anglebrackets"), + (r"<(!--.*?-->)?", Other), + (r"[^[<]+", Other), ], - 'nosquarebrackets': [ - (r'\[noprocess\]', Comment.Preproc, 'noprocess'), - (r'\[', Other), - (r'<\?(lasso(script)?|=)', Comment.Preproc, 'anglebrackets'), - (r'<(!--.*?-->)?', Other), - (r'[^[<]+', Other), + "nosquarebrackets": [ + (r"\[noprocess\]", Comment.Preproc, "noprocess"), + (r"\[", Other), + (r"<\?(lasso(script)?|=)", Comment.Preproc, "anglebrackets"), + (r"<(!--.*?-->)?", Other), + (r"[^[<]+", Other), ], - 'noprocess': [ - (r'\[/noprocess\]', Comment.Preproc, '#pop'), - (r'\[', Other), - (r'[^[]', Other), + "noprocess": [ + (r"\[/noprocess\]", Comment.Preproc, "#pop"), + (r"\[", Other), + (r"[^[]", Other), ], - 'squarebrackets': [ - (r'\]', Comment.Preproc, '#pop'), - include('lasso'), + "squarebrackets": [ + (r"\]", Comment.Preproc, "#pop"), + include("lasso"), ], - 'anglebrackets': [ - (r'\?>', Comment.Preproc, '#pop'), - include('lasso'), + "anglebrackets": [ + (r"\?>", Comment.Preproc, "#pop"), + include("lasso"), ], - 'lassofile': [ - (r'\]|\?>', Comment.Preproc, '#pop'), - include('lasso'), + "lassofile": [ + (r"\]|\?>", Comment.Preproc, "#pop"), + include("lasso"), ], - 'whitespacecomments': [ - (r'\s+', Whitespace), - (r'(//.*?)(\s*)$', bygroups(Comment.Single, Whitespace)), - (r'/\*\*!.*?\*/', String.Doc), - (r'/\*.*?\*/', Comment.Multiline), + "whitespacecomments": [ + (r"\s+", Whitespace), + (r"(//.*?)(\s*)$", bygroups(Comment.Single, Whitespace)), + (r"/\*\*!.*?\*/", String.Doc), + (r"/\*.*?\*/", Comment.Multiline), ], - 'lasso': [ + "lasso": [ # whitespace/comments - include('whitespacecomments'), - + include("whitespacecomments"), # literals - (r'\d*\.\d+(e[+-]?\d+)?', Number.Float), - (r'0x[\da-f]+', Number.Hex), - (r'\d+', Number.Integer), - (r'(infinity|NaN)\b', Number), - (r"'", String.Single, 'singlestring'), - (r'"', String.Double, 'doublestring'), - (r'`[^`]*`', String.Backtick), - + (r"\d*\.\d+(e[+-]?\d+)?", Number.Float), + (r"0x[\da-f]+", Number.Hex), + (r"\d+", Number.Integer), + (r"(infinity|NaN)\b", Number), + (r"'", String.Single, "singlestring"), + (r'"', String.Double, "doublestring"), + (r"`[^`]*`", String.Backtick), # names - (r'\$[a-z_][\w.]*', Name.Variable), - (r'#([a-z_][\w.]*|\d+\b)', Name.Variable.Instance), - (r"(\.)(\s*)('[a-z_][\w.]*')", - bygroups(Name.Builtin.Pseudo, Whitespace, Name.Variable.Class)), - (r"(self)(\s*)(->)(\s*)('[a-z_][\w.]*')", - bygroups(Name.Builtin.Pseudo, Whitespace, Operator, Whitespace, - Name.Variable.Class)), - (r'(\.\.?)(\s*)([a-z_][\w.]*(=(?!=))?)', - bygroups(Name.Builtin.Pseudo, Whitespace, Name.Other.Member)), - (r'(->\\?|&)(\s*)([a-z_][\w.]*(=(?!=))?)', - bygroups(Operator, Whitespace, Name.Other.Member)), - (r'(?)(self|inherited|currentcapture|givenblock)\b', - Name.Builtin.Pseudo), - (r'-(?!infinity)[a-z_][\w.]*', Name.Attribute), - (r'(::)(\s*)([a-z_][\w.]*)', - bygroups(Punctuation, Whitespace, Name.Label)), - (r'(error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|' - r'Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|' - r'Error_DeleteError|Error_FieldRestriction|Error_FileNotFound|' - r'Error_InvalidDatabase|Error_InvalidPassword|' - r'Error_InvalidUsername|Error_ModuleNotFound|' - r'Error_NoError|Error_NoPermission|Error_OutOfMemory|' - r'Error_ReqColumnMissing|Error_ReqFieldMissing|' - r'Error_RequiredColumnMissing|Error_RequiredFieldMissing|' - r'Error_UpdateError)\b', Name.Exception), - + (r"\$[a-z_][\w.]*", Name.Variable), + (r"#([a-z_][\w.]*|\d+\b)", Name.Variable.Instance), + ( + r"(\.)(\s*)('[a-z_][\w.]*')", + bygroups(Name.Builtin.Pseudo, Whitespace, Name.Variable.Class), + ), + ( + r"(self)(\s*)(->)(\s*)('[a-z_][\w.]*')", + bygroups( + Name.Builtin.Pseudo, + Whitespace, + Operator, + Whitespace, + Name.Variable.Class, + ), + ), + ( + r"(\.\.?)(\s*)([a-z_][\w.]*(=(?!=))?)", + bygroups(Name.Builtin.Pseudo, Whitespace, Name.Other.Member), + ), + ( + r"(->\\?|&)(\s*)([a-z_][\w.]*(=(?!=))?)", + bygroups(Operator, Whitespace, Name.Other.Member), + ), + ( + r"(?)(self|inherited|currentcapture|givenblock)\b", + Name.Builtin.Pseudo, + ), + (r"-(?!infinity)[a-z_][\w.]*", Name.Attribute), + (r"(::)(\s*)([a-z_][\w.]*)", bygroups(Punctuation, Whitespace, Name.Label)), + ( + r"(error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|" + r"Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|" + r"Error_DeleteError|Error_FieldRestriction|Error_FileNotFound|" + r"Error_InvalidDatabase|Error_InvalidPassword|" + r"Error_InvalidUsername|Error_ModuleNotFound|" + r"Error_NoError|Error_NoPermission|Error_OutOfMemory|" + r"Error_ReqColumnMissing|Error_ReqFieldMissing|" + r"Error_RequiredColumnMissing|Error_RequiredFieldMissing|" + r"Error_UpdateError)\b", + Name.Exception, + ), # definitions - (r'(define)(\s+)([a-z_][\w.]*)(\s*)(=>)(\s*)(type|trait|thread)\b', - bygroups(Keyword.Declaration, Whitespace, Name.Class, - Whitespace, Operator, Whitespace, Keyword)), - (r'(define)(\s+)([a-z_][\w.]*)(\s*)(->)(\s*)([a-z_][\w.]*=?|[-+*/%])', - bygroups(Keyword.Declaration, Whitespace, Name.Class, - Whitespace, Operator, Whitespace, Name.Function), - 'signature'), - (r'(define)(\s+)([a-z_][\w.]*)', - bygroups(Keyword.Declaration, Whitespace, Name.Function), 'signature'), - (r'(public|protected|private|provide)(\s+)(([a-z_][\w.]*=?|[-+*/%])' - r'(?=\s*\())', bygroups(Keyword, Whitespace, Name.Function), - 'signature'), - (r'(public|protected|private|provide)(\s+)([a-z_][\w.]*)', - bygroups(Keyword, Whitespace, Name.Function)), - + ( + r"(define)(\s+)([a-z_][\w.]*)(\s*)(=>)(\s*)(type|trait|thread)\b", + bygroups( + Keyword.Declaration, + Whitespace, + Name.Class, + Whitespace, + Operator, + Whitespace, + Keyword, + ), + ), + ( + r"(define)(\s+)([a-z_][\w.]*)(\s*)(->)(\s*)([a-z_][\w.]*=?|[-+*/%])", + bygroups( + Keyword.Declaration, + Whitespace, + Name.Class, + Whitespace, + Operator, + Whitespace, + Name.Function, + ), + "signature", + ), + ( + r"(define)(\s+)([a-z_][\w.]*)", + bygroups(Keyword.Declaration, Whitespace, Name.Function), + "signature", + ), + ( + r"(public|protected|private|provide)(\s+)(([a-z_][\w.]*=?|[-+*/%])" + r"(?=\s*\())", + bygroups(Keyword, Whitespace, Name.Function), + "signature", + ), + ( + r"(public|protected|private|provide)(\s+)([a-z_][\w.]*)", + bygroups(Keyword, Whitespace, Name.Function), + ), # keywords - (r'(true|false|none|minimal|full|all|void)\b', Keyword.Constant), - (r'(local|var|variable|global|data(?=\s))\b', Keyword.Declaration), - (r'(array|date|decimal|duration|integer|map|pair|string|tag|xml|' - r'null|boolean|bytes|keyword|list|locale|queue|set|stack|' - r'staticarray)\b', Keyword.Type), - (r'([a-z_][\w.]*)(\s+)(in)\b', bygroups(Name, Whitespace, Keyword)), - (r'(let|into)(\s+)([a-z_][\w.]*)', bygroups(Keyword, Whitespace, Name)), - (r'require\b', Keyword, 'requiresection'), - (r'(/?)(Namespace_Using)\b', bygroups(Punctuation, Keyword.Namespace)), - (r'(/?)(Cache|Database_Names|Database_SchemaNames|' - r'Database_TableNames|Define_Tag|Define_Type|Email_Batch|' - r'Encode_Set|HTML_Comment|Handle|Handle_Error|Header|If|Inline|' - r'Iterate|LJAX_Target|Link|Link_CurrentAction|Link_CurrentGroup|' - r'Link_CurrentRecord|Link_Detail|Link_FirstGroup|Link_FirstRecord|' - r'Link_LastGroup|Link_LastRecord|Link_NextGroup|Link_NextRecord|' - r'Link_PrevGroup|Link_PrevRecord|Log|Loop|Output_None|Portal|' - r'Private|Protect|Records|Referer|Referrer|Repeating|ResultSet|' - r'Rows|Search_Args|Search_Arguments|Select|Sort_Args|' - r'Sort_Arguments|Thread_Atomic|Value_List|While|Abort|Case|Else|' - r'Fail_If|Fail_IfNot|Fail|If_Empty|If_False|If_Null|If_True|' - r'Loop_Abort|Loop_Continue|Loop_Count|Params|Params_Up|Return|' - r'Return_Value|Run_Children|SOAP_DefineTag|SOAP_LastRequest|' - r'SOAP_LastResponse|Tag_Name|ascending|average|by|define|' - r'descending|do|equals|frozen|group|handle_failure|import|in|into|' - r'join|let|match|max|min|on|order|parent|protected|provide|public|' - r'require|returnhome|skip|split_thread|sum|take|thread|to|trait|' - r'type|where|with|yield|yieldhome)\b', - bygroups(Punctuation, Keyword)), - + (r"(true|false|none|minimal|full|all|void)\b", Keyword.Constant), + (r"(local|var|variable|global|data(?=\s))\b", Keyword.Declaration), + ( + r"(array|date|decimal|duration|integer|map|pair|string|tag|xml|" + r"null|boolean|bytes|keyword|list|locale|queue|set|stack|" + r"staticarray)\b", + Keyword.Type, + ), + (r"([a-z_][\w.]*)(\s+)(in)\b", bygroups(Name, Whitespace, Keyword)), + (r"(let|into)(\s+)([a-z_][\w.]*)", bygroups(Keyword, Whitespace, Name)), + (r"require\b", Keyword, "requiresection"), + (r"(/?)(Namespace_Using)\b", bygroups(Punctuation, Keyword.Namespace)), + ( + r"(/?)(Cache|Database_Names|Database_SchemaNames|" + r"Database_TableNames|Define_Tag|Define_Type|Email_Batch|" + r"Encode_Set|HTML_Comment|Handle|Handle_Error|Header|If|Inline|" + r"Iterate|LJAX_Target|Link|Link_CurrentAction|Link_CurrentGroup|" + r"Link_CurrentRecord|Link_Detail|Link_FirstGroup|Link_FirstRecord|" + r"Link_LastGroup|Link_LastRecord|Link_NextGroup|Link_NextRecord|" + r"Link_PrevGroup|Link_PrevRecord|Log|Loop|Output_None|Portal|" + r"Private|Protect|Records|Referer|Referrer|Repeating|ResultSet|" + r"Rows|Search_Args|Search_Arguments|Select|Sort_Args|" + r"Sort_Arguments|Thread_Atomic|Value_List|While|Abort|Case|Else|" + r"Fail_If|Fail_IfNot|Fail|If_Empty|If_False|If_Null|If_True|" + r"Loop_Abort|Loop_Continue|Loop_Count|Params|Params_Up|Return|" + r"Return_Value|Run_Children|SOAP_DefineTag|SOAP_LastRequest|" + r"SOAP_LastResponse|Tag_Name|ascending|average|by|define|" + r"descending|do|equals|frozen|group|handle_failure|import|in|into|" + r"join|let|match|max|min|on|order|parent|protected|provide|public|" + r"require|returnhome|skip|split_thread|sum|take|thread|to|trait|" + r"type|where|with|yield|yieldhome)\b", + bygroups(Punctuation, Keyword), + ), # other - (r',', Punctuation, 'commamember'), - (r'(and|or|not)\b', Operator.Word), - (r'([a-z_][\w.]*)(\s*)(::)(\s*)([a-z_][\w.]*)?(\s*=(?!=))', - bygroups(Name, Whitespace, Punctuation, Whitespace, Name.Label, - Operator)), - (r'(/?)([\w.]+)', bygroups(Punctuation, Name.Other)), - (r'(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b', - bygroups(Operator, Operator.Word)), - (r':=|[-+*/%=<>&|!?\\]+', Operator), - (r'[{}():;,@^]', Punctuation), + (r",", Punctuation, "commamember"), + (r"(and|or|not)\b", Operator.Word), + ( + r"([a-z_][\w.]*)(\s*)(::)(\s*)([a-z_][\w.]*)?(\s*=(?!=))", + bygroups( + Name, Whitespace, Punctuation, Whitespace, Name.Label, Operator + ), + ), + (r"(/?)([\w.]+)", bygroups(Punctuation, Name.Other)), + ( + r"(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b", + bygroups(Operator, Operator.Word), + ), + (r":=|[-+*/%=<>&|!?\\]+", Operator), + (r"[{}():;,@^]", Punctuation), ], - 'singlestring': [ - (r"'", String.Single, '#pop'), + "singlestring": [ + (r"'", String.Single, "#pop"), (r"[^'\\]+", String.Single), - include('escape'), + include("escape"), (r"\\", String.Single), ], - 'doublestring': [ - (r'"', String.Double, '#pop'), + "doublestring": [ + (r'"', String.Double, "#pop"), (r'[^"\\]+', String.Double), - include('escape'), - (r'\\', String.Double), + include("escape"), + (r"\\", String.Double), ], - 'escape': [ - (r'\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:\n\r]+:|' - r'[abefnrtv?"\'\\]|$)', String.Escape), + "escape": [ + ( + r"\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:\n\r]+:|" + r'[abefnrtv?"\'\\]|$)', + String.Escape, + ), ], - 'signature': [ - (r'=>', Operator, '#pop'), - (r'\)', Punctuation, '#pop'), - (r'[(,]', Punctuation, 'parameter'), - include('lasso'), + "signature": [ + (r"=>", Operator, "#pop"), + (r"\)", Punctuation, "#pop"), + (r"[(,]", Punctuation, "parameter"), + include("lasso"), ], - 'parameter': [ - (r'\)', Punctuation, '#pop'), - (r'-?[a-z_][\w.]*', Name.Attribute, '#pop'), - (r'\.\.\.', Name.Builtin.Pseudo), - include('lasso'), + "parameter": [ + (r"\)", Punctuation, "#pop"), + (r"-?[a-z_][\w.]*", Name.Attribute, "#pop"), + (r"\.\.\.", Name.Builtin.Pseudo), + include("lasso"), ], - 'requiresection': [ - (r'(([a-z_][\w.]*=?|[-+*/%])(?=\s*\())', Name, 'requiresignature'), - (r'(([a-z_][\w.]*=?|[-+*/%])(?=(\s*::\s*[\w.]+)?\s*,))', Name), - (r'[a-z_][\w.]*=?|[-+*/%]', Name, '#pop'), - (r'(::)(\s*)([a-z_][\w.]*)', - bygroups(Punctuation, Whitespace, Name.Label)), - (r',', Punctuation), - include('whitespacecomments'), + "requiresection": [ + (r"(([a-z_][\w.]*=?|[-+*/%])(?=\s*\())", Name, "requiresignature"), + (r"(([a-z_][\w.]*=?|[-+*/%])(?=(\s*::\s*[\w.]+)?\s*,))", Name), + (r"[a-z_][\w.]*=?|[-+*/%]", Name, "#pop"), + (r"(::)(\s*)([a-z_][\w.]*)", bygroups(Punctuation, Whitespace, Name.Label)), + (r",", Punctuation), + include("whitespacecomments"), ], - 'requiresignature': [ - (r'(\)(?=(\s*::\s*[\w.]+)?\s*,))', Punctuation, '#pop'), - (r'\)', Punctuation, '#pop:2'), - (r'-?[a-z_][\w.]*', Name.Attribute), - (r'(::)(\s*)([a-z_][\w.]*)', - bygroups(Punctuation, Whitespace, Name.Label)), - (r'\.\.\.', Name.Builtin.Pseudo), - (r'[(,]', Punctuation), - include('whitespacecomments'), + "requiresignature": [ + (r"(\)(?=(\s*::\s*[\w.]+)?\s*,))", Punctuation, "#pop"), + (r"\)", Punctuation, "#pop:2"), + (r"-?[a-z_][\w.]*", Name.Attribute), + (r"(::)(\s*)([a-z_][\w.]*)", bygroups(Punctuation, Whitespace, Name.Label)), + (r"\.\.\.", Name.Builtin.Pseudo), + (r"[(,]", Punctuation), + include("whitespacecomments"), ], - 'commamember': [ - (r'(([a-z_][\w.]*=?|[-+*/%])' - r'(?=\s*(\(([^()]*\([^()]*\))*[^)]*\)\s*)?(::[\w.\s]+)?=>))', - Name.Function, 'signature'), - include('whitespacecomments'), - default('#pop'), + "commamember": [ + ( + r"(([a-z_][\w.]*=?|[-+*/%])" + r"(?=\s*(\(([^()]*\([^()]*\))*[^)]*\)\s*)?(::[\w.\s]+)?=>))", + Name.Function, + "signature", + ), + include("whitespacecomments"), + default("#pop"), ], } def __init__(self, **options): - self.builtinshighlighting = get_bool_opt( - options, 'builtinshighlighting', True) - self.requiredelimiters = get_bool_opt( - options, 'requiredelimiters', False) + self.builtinshighlighting = get_bool_opt(options, "builtinshighlighting", True) + self.requiredelimiters = get_bool_opt(options, "requiredelimiters", False) self._builtins = set() self._members = set() if self.builtinshighlighting: from pygments.lexers._lasso_builtins import BUILTINS, MEMBERS + for key, value in BUILTINS.items(): self._builtins.update(value) for key, value in MEMBERS.items(): @@ -766,25 +999,27 @@ class LassoLexer(RegexLexer): RegexLexer.__init__(self, **options) def get_tokens_unprocessed(self, text): - stack = ['root'] + stack = ["root"] if self.requiredelimiters: - stack.append('delimiters') - for index, token, value in \ - RegexLexer.get_tokens_unprocessed(self, text, stack): - if (token is Name.Other and value.lower() in self._builtins or - token is Name.Other.Member and - value.lower().rstrip('=') in self._members): + stack.append("delimiters") + for index, token, value in RegexLexer.get_tokens_unprocessed(self, text, stack): + if ( + token is Name.Other + and value.lower() in self._builtins + or token is Name.Other.Member + and value.lower().rstrip("=") in self._members + ): yield index, Name.Builtin, value continue yield index, token, value def analyse_text(text): rv = 0.0 - if 'bin/lasso9' in text: + if "bin/lasso9" in text: rv += 0.8 - if re.search(r'<\?lasso', text, re.I): + if re.search(r"<\?lasso", text, re.I): rv += 0.4 - if re.search(r'local\(', text, re.I): + if re.search(r"local\(", text, re.I): rv += 0.4 return rv @@ -794,215 +1029,243 @@ class ObjectiveJLexer(RegexLexer): For Objective-J source code with preprocessor directives. """ - name = 'Objective-J' - aliases = ['objective-j', 'objectivej', 'obj-j', 'objj'] - filenames = ['*.j'] - mimetypes = ['text/x-objective-j'] - url = 'https://www.cappuccino.dev/learn/objective-j.html' - version_added = '1.3' + name = "Objective-J" + aliases = ["objective-j", "objectivej", "obj-j", "objj"] + filenames = ["*.j"] + mimetypes = ["text/x-objective-j"] + url = "https://www.cappuccino.dev/learn/objective-j.html" + version_added = "1.3" #: optional Comment or Whitespace - _ws = r'(?:\s|//[^\n]*\n|/[*](?:[^*]|[*][^/])*[*]/)*' + _ws = r"(?:\s|//[^\n]*\n|/[*](?:[^*]|[*][^/])*[*]/)*" flags = re.DOTALL | re.MULTILINE tokens = { - 'root': [ - include('whitespace'), - + "root": [ + include("whitespace"), # function definition - (r'^(' + _ws + r'[+-]' + _ws + r')([(a-zA-Z_].*?[^(])(' + _ws + r'\{)', - bygroups(using(this), using(this, state='function_signature'), - using(this))), - + ( + r"^(" + _ws + r"[+-]" + _ws + r")([(a-zA-Z_].*?[^(])(" + _ws + r"\{)", + bygroups( + using(this), using(this, state="function_signature"), using(this) + ), + ), # class definition - (r'(@interface|@implementation)(\s+)', bygroups(Keyword, Whitespace), - 'classname'), - (r'(@class|@protocol)(\s*)', bygroups(Keyword, Whitespace), - 'forward_classname'), - (r'(\s*)(@end)(\s*)', bygroups(Whitespace, Keyword, Whitespace)), - - include('statements'), - ('[{()}]', Punctuation), - (';', Punctuation), + ( + r"(@interface|@implementation)(\s+)", + bygroups(Keyword, Whitespace), + "classname", + ), + ( + r"(@class|@protocol)(\s*)", + bygroups(Keyword, Whitespace), + "forward_classname", + ), + (r"(\s*)(@end)(\s*)", bygroups(Whitespace, Keyword, Whitespace)), + include("statements"), + ("[{()}]", Punctuation), + (";", Punctuation), ], - 'whitespace': [ - (r'(@import)(\s+)("(?:\\\\|\\"|[^"])*")', - bygroups(Comment.Preproc, Whitespace, String.Double)), - (r'(@import)(\s+)(<(?:\\\\|\\>|[^>])*>)', - bygroups(Comment.Preproc, Whitespace, String.Double)), - (r'(#(?:include|import))(\s+)("(?:\\\\|\\"|[^"])*")', - bygroups(Comment.Preproc, Whitespace, String.Double)), - (r'(#(?:include|import))(\s+)(<(?:\\\\|\\>|[^>])*>)', - bygroups(Comment.Preproc, Whitespace, String.Double)), - - (r'#if\s+0', Comment.Preproc, 'if0'), - (r'#', Comment.Preproc, 'macro'), - - (r'\s+', Whitespace), - (r'(\\)(\n)', - bygroups(String.Escape, Whitespace)), # line continuation - (r'//(\n|(.|\n)*?[^\\]\n)', Comment.Single), - (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), - (r') - if attr_content[index-2:index] != '--': + if attr_content[index - 2 : index] != "--": break start = index + 1 if index == -1: # No tag end - yield from self.get_tokens_unprocessed(attr_content, stack=['root', 'attr']) + yield from self.get_tokens_unprocessed(attr_content, stack=["root", "attr"]) return attr = attr_content[:index] - yield from self.get_tokens_unprocessed(attr, stack=['root', 'attr']) - yield match.start(3) + index, Punctuation, '>' + yield from self.get_tokens_unprocessed(attr, stack=["root", "attr"]) + yield match.start(3) + index, Punctuation, ">" lexer = None - content = attr_content[index+1:] + content = attr_content[index + 1 :] lang_match = re.findall(r'\blang=("|\'|)(\w+)(\1)', attr) if len(lang_match) >= 1: @@ -973,26 +1158,26 @@ class WikitextLexer(RegexLexer): start = 0 index = 0 while True: - index = attr_content.find('>', start) + index = attr_content.find(">", start) # Exclude comment end (-->) - if attr_content[index-2:index] != '--': + if attr_content[index - 2 : index] != "--": break start = index + 1 if index == -1: # No tag end - yield from self.get_tokens_unprocessed(attr_content, stack=['root', 'attr']) + yield from self.get_tokens_unprocessed(attr_content, stack=["root", "attr"]) return attr = attr_content[:index] - content = attr_content[index+1:] - yield from self.get_tokens_unprocessed(attr, stack=['root', 'attr']) - yield match.start(3) + index, Punctuation, '>' + content = attr_content[index + 1 :] + yield from self.get_tokens_unprocessed(attr, stack=["root", "attr"]) + yield match.start(3) + index, Punctuation, ">" lang_match = re.findall(r'\blang=("|\'|)(\w+)(\1)', attr) # Pick the last match in case of multiple matches - lang = lang_match[-1][1] if len(lang_match) >= 1 else 'lilypond' + lang = lang_match[-1][1] if len(lang_match) >= 1 else "lilypond" - if lang == 'lilypond': # Case sensitive + if lang == "lilypond": # Case sensitive yield from LilyPondLexer().get_tokens_unprocessed(content) else: # ABC # FIXME: Use ABC lexer in the future @@ -1000,167 +1185,476 @@ class WikitextLexer(RegexLexer): # a-z removed to prevent linter from complaining, REMEMBER to use (?i) title_char = r' %!"$&\'()*,\-./0-9:;=?@A-Z\\\^_`~+\u0080-\uFFFF' - nbsp_char = r'(?:\t| |&\#0*160;|&\#[Xx]0*[Aa]0;|[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000])' + nbsp_char = r"(?:\t| |&\#0*160;|&\#[Xx]0*[Aa]0;|[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000])" link_address = r'(?:[0-9.]+|\[[0-9a-f:.]+\]|[^\x00-\x20"<>\[\]\x7F\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFFFD])' - link_char_class = r'[^\x00-\x20"<>\[\]\x7F\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFFFD]' + link_char_class = ( + r'[^\x00-\x20"<>\[\]\x7F\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFFFD]' + ) double_slashes_i = { - '__FORCETOC__', '__NOCONTENTCONVERT__', '__NOCC__', '__NOEDITSECTION__', '__NOGALLERY__', - '__NOTITLECONVERT__', '__NOTC__', '__NOTOC__', '__TOC__', + "__FORCETOC__", + "__NOCONTENTCONVERT__", + "__NOCC__", + "__NOEDITSECTION__", + "__NOGALLERY__", + "__NOTITLECONVERT__", + "__NOTC__", + "__NOTOC__", + "__TOC__", } double_slashes = { - '__EXPECTUNUSEDCATEGORY__', '__HIDDENCAT__', '__INDEX__', '__NEWSECTIONLINK__', - '__NOINDEX__', '__NONEWSECTIONLINK__', '__STATICREDIRECT__', '__NOGLOBAL__', - '__DISAMBIG__', '__EXPECTED_UNCONNECTED_PAGE__', + "__EXPECTUNUSEDCATEGORY__", + "__HIDDENCAT__", + "__INDEX__", + "__NEWSECTIONLINK__", + "__NOINDEX__", + "__NONEWSECTIONLINK__", + "__STATICREDIRECT__", + "__NOGLOBAL__", + "__DISAMBIG__", + "__EXPECTED_UNCONNECTED_PAGE__", } protocols = { - 'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://', 'https://', - 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:', 'nntp://', 'redis://', - 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://', 'svn://', 'tel:', 'telnet://', 'urn:', - 'worldwind://', 'xmpp:', '//', + "bitcoin:", + "ftp://", + "ftps://", + "geo:", + "git://", + "gopher://", + "http://", + "https://", + "irc://", + "ircs://", + "magnet:", + "mailto:", + "mms://", + "news:", + "nntp://", + "redis://", + "sftp://", + "sip:", + "sips:", + "sms:", + "ssh://", + "svn://", + "tel:", + "telnet://", + "urn:", + "worldwind://", + "xmpp:", + "//", } - non_relative_protocols = protocols - {'//'} + non_relative_protocols = protocols - {"//"} html_tags = { - 'abbr', 'b', 'bdi', 'bdo', 'big', 'blockquote', 'br', 'caption', 'center', 'cite', 'code', - 'data', 'dd', 'del', 'dfn', 'div', 'dl', 'dt', 'em', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', - 'h6', 'hr', 'i', 'ins', 'kbd', 'li', 'link', 'mark', 'meta', 'ol', 'p', 'q', 'rb', 'rp', - 'rt', 'rtc', 'ruby', 's', 'samp', 'small', 'span', 'strike', 'strong', 'sub', 'sup', - 'table', 'td', 'th', 'time', 'tr', 'tt', 'u', 'ul', 'var', 'wbr', + "abbr", + "b", + "bdi", + "bdo", + "big", + "blockquote", + "br", + "caption", + "center", + "cite", + "code", + "data", + "dd", + "del", + "dfn", + "div", + "dl", + "dt", + "em", + "font", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hr", + "i", + "ins", + "kbd", + "li", + "link", + "mark", + "meta", + "ol", + "p", + "q", + "rb", + "rp", + "rt", + "rtc", + "ruby", + "s", + "samp", + "small", + "span", + "strike", + "strong", + "sub", + "sup", + "table", + "td", + "th", + "time", + "tr", + "tt", + "u", + "ul", + "var", + "wbr", } parser_tags = { - 'graph', 'charinsert', 'rss', 'chem', 'categorytree', 'nowiki', 'inputbox', 'math', - 'hiero', 'score', 'pre', 'ref', 'translate', 'imagemap', 'templatestyles', 'languages', - 'noinclude', 'mapframe', 'section', 'poem', 'syntaxhighlight', 'includeonly', 'tvar', - 'onlyinclude', 'templatedata', 'langconvert', 'timeline', 'dynamicpagelist', 'gallery', - 'maplink', 'ce', 'references', + "graph", + "charinsert", + "rss", + "chem", + "categorytree", + "nowiki", + "inputbox", + "math", + "hiero", + "score", + "pre", + "ref", + "translate", + "imagemap", + "templatestyles", + "languages", + "noinclude", + "mapframe", + "section", + "poem", + "syntaxhighlight", + "includeonly", + "tvar", + "onlyinclude", + "templatedata", + "langconvert", + "timeline", + "dynamicpagelist", + "gallery", + "maplink", + "ce", + "references", } variant_langs = { # ZhConverter.php - 'zh', 'zh-hans', 'zh-hant', 'zh-cn', 'zh-hk', 'zh-mo', 'zh-my', 'zh-sg', 'zh-tw', + "zh", + "zh-hans", + "zh-hant", + "zh-cn", + "zh-hk", + "zh-mo", + "zh-my", + "zh-sg", + "zh-tw", # WuuConverter.php - 'wuu', 'wuu-hans', 'wuu-hant', + "wuu", + "wuu-hans", + "wuu-hant", # UzConverter.php - 'uz', 'uz-latn', 'uz-cyrl', + "uz", + "uz-latn", + "uz-cyrl", # TlyConverter.php - 'tly', 'tly-cyrl', + "tly", + "tly-cyrl", # TgConverter.php - 'tg', 'tg-latn', + "tg", + "tg-latn", # SrConverter.php - 'sr', 'sr-ec', 'sr-el', + "sr", + "sr-ec", + "sr-el", # ShiConverter.php - 'shi', 'shi-tfng', 'shi-latn', + "shi", + "shi-tfng", + "shi-latn", # ShConverter.php - 'sh-latn', 'sh-cyrl', + "sh-latn", + "sh-cyrl", # KuConverter.php - 'ku', 'ku-arab', 'ku-latn', + "ku", + "ku-arab", + "ku-latn", # IuConverter.php - 'iu', 'ike-cans', 'ike-latn', + "iu", + "ike-cans", + "ike-latn", # GanConverter.php - 'gan', 'gan-hans', 'gan-hant', + "gan", + "gan-hans", + "gan-hant", # EnConverter.php - 'en', 'en-x-piglatin', + "en", + "en-x-piglatin", # CrhConverter.php - 'crh', 'crh-cyrl', 'crh-latn', + "crh", + "crh-cyrl", + "crh-latn", # BanConverter.php - 'ban', 'ban-bali', 'ban-x-dharma', 'ban-x-palmleaf', 'ban-x-pku', + "ban", + "ban-bali", + "ban-x-dharma", + "ban-x-palmleaf", + "ban-x-pku", } magic_vars_i = { - 'ARTICLEPATH', 'INT', 'PAGEID', 'SCRIPTPATH', 'SERVER', 'SERVERNAME', 'STYLEPATH', + "ARTICLEPATH", + "INT", + "PAGEID", + "SCRIPTPATH", + "SERVER", + "SERVERNAME", + "STYLEPATH", } magic_vars = { - '!', '=', 'BASEPAGENAME', 'BASEPAGENAMEE', 'CASCADINGSOURCES', 'CONTENTLANGUAGE', - 'CONTENTLANG', 'CURRENTDAY', 'CURRENTDAY2', 'CURRENTDAYNAME', 'CURRENTDOW', 'CURRENTHOUR', - 'CURRENTMONTH', 'CURRENTMONTH2', 'CURRENTMONTH1', 'CURRENTMONTHABBREV', 'CURRENTMONTHNAME', - 'CURRENTMONTHNAMEGEN', 'CURRENTTIME', 'CURRENTTIMESTAMP', 'CURRENTVERSION', 'CURRENTWEEK', - 'CURRENTYEAR', 'DIRECTIONMARK', 'DIRMARK', 'FULLPAGENAME', 'FULLPAGENAMEE', 'LOCALDAY', - 'LOCALDAY2', 'LOCALDAYNAME', 'LOCALDOW', 'LOCALHOUR', 'LOCALMONTH', 'LOCALMONTH2', - 'LOCALMONTH1', 'LOCALMONTHABBREV', 'LOCALMONTHNAME', 'LOCALMONTHNAMEGEN', 'LOCALTIME', - 'LOCALTIMESTAMP', 'LOCALWEEK', 'LOCALYEAR', 'NAMESPACE', 'NAMESPACEE', 'NAMESPACENUMBER', - 'NUMBEROFACTIVEUSERS', 'NUMBEROFADMINS', 'NUMBEROFARTICLES', 'NUMBEROFEDITS', - 'NUMBEROFFILES', 'NUMBEROFPAGES', 'NUMBEROFUSERS', 'PAGELANGUAGE', 'PAGENAME', 'PAGENAMEE', - 'REVISIONDAY', 'REVISIONDAY2', 'REVISIONID', 'REVISIONMONTH', 'REVISIONMONTH1', - 'REVISIONSIZE', 'REVISIONTIMESTAMP', 'REVISIONUSER', 'REVISIONYEAR', 'ROOTPAGENAME', - 'ROOTPAGENAMEE', 'SITENAME', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME', 'SUBJECTPAGENAMEE', - 'ARTICLEPAGENAMEE', 'SUBJECTSPACE', 'ARTICLESPACE', 'SUBJECTSPACEE', 'ARTICLESPACEE', - 'SUBPAGENAME', 'SUBPAGENAMEE', 'TALKPAGENAME', 'TALKPAGENAMEE', 'TALKSPACE', 'TALKSPACEE', + "!", + "=", + "BASEPAGENAME", + "BASEPAGENAMEE", + "CASCADINGSOURCES", + "CONTENTLANGUAGE", + "CONTENTLANG", + "CURRENTDAY", + "CURRENTDAY2", + "CURRENTDAYNAME", + "CURRENTDOW", + "CURRENTHOUR", + "CURRENTMONTH", + "CURRENTMONTH2", + "CURRENTMONTH1", + "CURRENTMONTHABBREV", + "CURRENTMONTHNAME", + "CURRENTMONTHNAMEGEN", + "CURRENTTIME", + "CURRENTTIMESTAMP", + "CURRENTVERSION", + "CURRENTWEEK", + "CURRENTYEAR", + "DIRECTIONMARK", + "DIRMARK", + "FULLPAGENAME", + "FULLPAGENAMEE", + "LOCALDAY", + "LOCALDAY2", + "LOCALDAYNAME", + "LOCALDOW", + "LOCALHOUR", + "LOCALMONTH", + "LOCALMONTH2", + "LOCALMONTH1", + "LOCALMONTHABBREV", + "LOCALMONTHNAME", + "LOCALMONTHNAMEGEN", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCALWEEK", + "LOCALYEAR", + "NAMESPACE", + "NAMESPACEE", + "NAMESPACENUMBER", + "NUMBEROFACTIVEUSERS", + "NUMBEROFADMINS", + "NUMBEROFARTICLES", + "NUMBEROFEDITS", + "NUMBEROFFILES", + "NUMBEROFPAGES", + "NUMBEROFUSERS", + "PAGELANGUAGE", + "PAGENAME", + "PAGENAMEE", + "REVISIONDAY", + "REVISIONDAY2", + "REVISIONID", + "REVISIONMONTH", + "REVISIONMONTH1", + "REVISIONSIZE", + "REVISIONTIMESTAMP", + "REVISIONUSER", + "REVISIONYEAR", + "ROOTPAGENAME", + "ROOTPAGENAMEE", + "SITENAME", + "SUBJECTPAGENAME", + "ARTICLEPAGENAME", + "SUBJECTPAGENAMEE", + "ARTICLEPAGENAMEE", + "SUBJECTSPACE", + "ARTICLESPACE", + "SUBJECTSPACEE", + "ARTICLESPACEE", + "SUBPAGENAME", + "SUBPAGENAMEE", + "TALKPAGENAME", + "TALKPAGENAMEE", + "TALKSPACE", + "TALKSPACEE", } parser_functions_i = { - 'ANCHORENCODE', 'BIDI', 'CANONICALURL', 'CANONICALURLE', 'FILEPATH', 'FORMATNUM', - 'FULLURL', 'FULLURLE', 'GENDER', 'GRAMMAR', 'INT', r'\#LANGUAGE', 'LC', 'LCFIRST', 'LOCALURL', - 'LOCALURLE', 'NS', 'NSE', 'PADLEFT', 'PADRIGHT', 'PAGEID', 'PLURAL', 'UC', 'UCFIRST', - 'URLENCODE', + "ANCHORENCODE", + "BIDI", + "CANONICALURL", + "CANONICALURLE", + "FILEPATH", + "FORMATNUM", + "FULLURL", + "FULLURLE", + "GENDER", + "GRAMMAR", + "INT", + r"\#LANGUAGE", + "LC", + "LCFIRST", + "LOCALURL", + "LOCALURLE", + "NS", + "NSE", + "PADLEFT", + "PADRIGHT", + "PAGEID", + "PLURAL", + "UC", + "UCFIRST", + "URLENCODE", } parser_functions = { - 'BASEPAGENAME', 'BASEPAGENAMEE', 'CASCADINGSOURCES', 'DEFAULTSORT', 'DEFAULTSORTKEY', - 'DEFAULTCATEGORYSORT', 'FULLPAGENAME', 'FULLPAGENAMEE', 'NAMESPACE', 'NAMESPACEE', - 'NAMESPACENUMBER', 'NUMBERINGROUP', 'NUMINGROUP', 'NUMBEROFACTIVEUSERS', 'NUMBEROFADMINS', - 'NUMBEROFARTICLES', 'NUMBEROFEDITS', 'NUMBEROFFILES', 'NUMBEROFPAGES', 'NUMBEROFUSERS', - 'PAGENAME', 'PAGENAMEE', 'PAGESINCATEGORY', 'PAGESINCAT', 'PAGESIZE', 'PROTECTIONEXPIRY', - 'PROTECTIONLEVEL', 'REVISIONDAY', 'REVISIONDAY2', 'REVISIONID', 'REVISIONMONTH', - 'REVISIONMONTH1', 'REVISIONTIMESTAMP', 'REVISIONUSER', 'REVISIONYEAR', 'ROOTPAGENAME', - 'ROOTPAGENAMEE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME', 'SUBJECTPAGENAMEE', - 'ARTICLEPAGENAMEE', 'SUBJECTSPACE', 'ARTICLESPACE', 'SUBJECTSPACEE', 'ARTICLESPACEE', - 'SUBPAGENAME', 'SUBPAGENAMEE', 'TALKPAGENAME', 'TALKPAGENAMEE', 'TALKSPACE', 'TALKSPACEE', - 'INT', 'DISPLAYTITLE', 'PAGESINNAMESPACE', 'PAGESINNS', + "BASEPAGENAME", + "BASEPAGENAMEE", + "CASCADINGSOURCES", + "DEFAULTSORT", + "DEFAULTSORTKEY", + "DEFAULTCATEGORYSORT", + "FULLPAGENAME", + "FULLPAGENAMEE", + "NAMESPACE", + "NAMESPACEE", + "NAMESPACENUMBER", + "NUMBERINGROUP", + "NUMINGROUP", + "NUMBEROFACTIVEUSERS", + "NUMBEROFADMINS", + "NUMBEROFARTICLES", + "NUMBEROFEDITS", + "NUMBEROFFILES", + "NUMBEROFPAGES", + "NUMBEROFUSERS", + "PAGENAME", + "PAGENAMEE", + "PAGESINCATEGORY", + "PAGESINCAT", + "PAGESIZE", + "PROTECTIONEXPIRY", + "PROTECTIONLEVEL", + "REVISIONDAY", + "REVISIONDAY2", + "REVISIONID", + "REVISIONMONTH", + "REVISIONMONTH1", + "REVISIONTIMESTAMP", + "REVISIONUSER", + "REVISIONYEAR", + "ROOTPAGENAME", + "ROOTPAGENAMEE", + "SUBJECTPAGENAME", + "ARTICLEPAGENAME", + "SUBJECTPAGENAMEE", + "ARTICLEPAGENAMEE", + "SUBJECTSPACE", + "ARTICLESPACE", + "SUBJECTSPACEE", + "ARTICLESPACEE", + "SUBPAGENAME", + "SUBPAGENAMEE", + "TALKPAGENAME", + "TALKPAGENAMEE", + "TALKSPACE", + "TALKSPACEE", + "INT", + "DISPLAYTITLE", + "PAGESINNAMESPACE", + "PAGESINNS", } tokens = { - 'root': [ + "root": [ # Redirects - (r"""(?xi) + ( + r"""(?xi) (\A\s*?)(\#REDIRECT:?) # may contain a colon (\s+)(\[\[) (?=[^\]\n]* \]\]$) """, - bygroups(Whitespace, Keyword, Whitespace, Punctuation), 'redirect-inner'), + bygroups(Whitespace, Keyword, Whitespace, Punctuation), + "redirect-inner", + ), # Subheadings - (r'^(={2,6})(.+?)(\1)(\s*$\n)', - bygroups(Generic.Subheading, Generic.Subheading, Generic.Subheading, Whitespace)), + ( + r"^(={2,6})(.+?)(\1)(\s*$\n)", + bygroups( + Generic.Subheading, + Generic.Subheading, + Generic.Subheading, + Whitespace, + ), + ), # Headings - (r'^(=.+?=)(\s*$\n)', - bygroups(Generic.Heading, Whitespace)), + (r"^(=.+?=)(\s*$\n)", bygroups(Generic.Heading, Whitespace)), # Double-slashed magic words - (words(double_slashes_i, prefix=r'(?i)'), Name.Function.Magic), + (words(double_slashes_i, prefix=r"(?i)"), Name.Function.Magic), (words(double_slashes), Name.Function.Magic), # Raw URLs - (r'(?i)\b(?:{}){}{}*'.format('|'.join(protocols), - link_address, link_char_class), Name.Label), + ( + r"(?i)\b(?:{}){}{}*".format( + "|".join(protocols), link_address, link_char_class + ), + Name.Label, + ), # Magic links - (rf'\b(?:RFC|PMID){nbsp_char}+[0-9]+\b', - Name.Function.Magic), - (r"""(?x) + (rf"\b(?:RFC|PMID){nbsp_char}+[0-9]+\b", Name.Function.Magic), + ( + r"""(?x) \bISBN {nbsp_char} (?: 97[89] {nbsp_dash}? )? (?: [0-9] {nbsp_dash}? ){{9}} # escape format() [0-9Xx]\b - """.format(nbsp_char=nbsp_char, nbsp_dash=f'(?:-|{nbsp_char})'), Name.Function.Magic), - include('list'), - include('inline'), - include('text'), + """.format(nbsp_char=nbsp_char, nbsp_dash=f"(?:-|{nbsp_char})"), + Name.Function.Magic, + ), + include("list"), + include("inline"), + include("text"), ], - 'redirect-inner': [ - (r'(\]\])(\s*?\n)', bygroups(Punctuation, Whitespace), '#pop'), - (r'(\#)([^#]*?)', bygroups(Punctuation, Name.Label)), - (rf'(?i)[{title_char}]+', Name.Tag), + "redirect-inner": [ + (r"(\]\])(\s*?\n)", bygroups(Punctuation, Whitespace), "#pop"), + (r"(\#)([^#]*?)", bygroups(Punctuation, Name.Label)), + (rf"(?i)[{title_char}]+", Name.Tag), ], - 'list': [ + "list": [ # Description lists - (r'^;', Keyword, 'dt'), + (r"^;", Keyword, "dt"), # Ordered lists, unordered lists and indents - (r'^[#:*]+', Keyword), + (r"^[#:*]+", Keyword), # Horizontal rules - (r'^-{4,}', Keyword), + (r"^-{4,}", Keyword), ], - 'inline': [ + "inline": [ # Signatures - (r'~{3,5}', Keyword), + (r"~{3,5}", Keyword), # Entities - include('entity'), + include("entity"), # Bold & italic - (r"('')(''')(?!')", bygroups(Generic.Emph, - Generic.EmphStrong), 'inline-italic-bold'), - (r"'''(?!')", Generic.Strong, 'inline-bold'), - (r"''(?!')", Generic.Emph, 'inline-italic'), + ( + r"('')(''')(?!')", + bygroups(Generic.Emph, Generic.EmphStrong), + "inline-italic-bold", + ), + (r"'''(?!')", Generic.Strong, "inline-bold"), + (r"''(?!')", Generic.Emph, "inline-italic"), # Comments & parameters & templates - include('replaceable'), + include("replaceable"), # Media links ( r"""(?xi) @@ -1168,10 +1662,16 @@ class WikitextLexer(RegexLexer): (File|Image) (:) ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | )*) (?: (\#) ([{}]*?) )? - """.format(title_char, f'{title_char}#'), - bygroups(Punctuation, Name.Namespace, Punctuation, - using(this, state=['wikilink-name']), Punctuation, Name.Label), - 'medialink-inner' + """.format(title_char, f"{title_char}#"), + bygroups( + Punctuation, + Name.Namespace, + Punctuation, + using(this, state=["wikilink-name"]), + Punctuation, + Name.Label, + ), + "medialink-inner", ), # Wikilinks ( @@ -1181,10 +1681,21 @@ class WikitextLexer(RegexLexer): ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | )*?) (?: (\#) ([{}]*?) )? (\]\]) - """.format('|'.join(protocols), title_char.replace('/', ''), - title_char, f'{title_char}#'), - bygroups(Punctuation, Name.Namespace, Punctuation, - using(this, state=['wikilink-name']), Punctuation, Name.Label, Punctuation) + """.format( + "|".join(protocols), + title_char.replace("/", ""), + title_char, + f"{title_char}#", + ), + bygroups( + Punctuation, + Name.Namespace, + Punctuation, + using(this, state=["wikilink-name"]), + Punctuation, + Name.Label, + Punctuation, + ), ), ( r"""(?xi) @@ -1193,11 +1704,22 @@ class WikitextLexer(RegexLexer): ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | )*?) (?: (\#) ([{}]*?) )? (\|) - """.format('|'.join(protocols), title_char.replace('/', ''), - title_char, f'{title_char}#'), - bygroups(Punctuation, Name.Namespace, Punctuation, - using(this, state=['wikilink-name']), Punctuation, Name.Label, Punctuation), - 'wikilink-inner' + """.format( + "|".join(protocols), + title_char.replace("/", ""), + title_char, + f"{title_char}#", + ), + bygroups( + Punctuation, + Name.Namespace, + Punctuation, + using(this, state=["wikilink-name"]), + Punctuation, + Name.Label, + Punctuation, + ), + "wikilink-inner", ), # External links ( @@ -1205,92 +1727,191 @@ class WikitextLexer(RegexLexer): (\[) ((?:{}) {} {}*) (\s*) - """.format('|'.join(protocols), link_address, link_char_class), + """.format("|".join(protocols), link_address, link_char_class), bygroups(Punctuation, Name.Label, Whitespace), - 'extlink-inner' + "extlink-inner", ), # Tables - (r'^(:*)(\s*?)(\{\|)([^\n]*)$', bygroups(Keyword, - Whitespace, Punctuation, using(this, state=['root', 'attr'])), 'table'), + ( + r"^(:*)(\s*?)(\{\|)([^\n]*)$", + bygroups( + Keyword, + Whitespace, + Punctuation, + using(this, state=["root", "attr"]), + ), + "table", + ), # HTML tags - (r'(?i)(<)({})\b'.format('|'.join(html_tags)), - bygroups(Punctuation, Name.Tag), 'tag-inner-ordinary'), - (r'(?i)()'.format('|'.join(html_tags)), - bygroups(Punctuation, Name.Tag, Whitespace, Punctuation)), + ( + r"(?i)(<)({})\b".format("|".join(html_tags)), + bygroups(Punctuation, Name.Tag), + "tag-inner-ordinary", + ), + ( + r"(?i)()".format("|".join(html_tags)), + bygroups(Punctuation, Name.Tag, Whitespace, Punctuation), + ), # - (r'(?i)(<)(nowiki)\b', bygroups(Punctuation, - Name.Tag), ('tag-nowiki', 'tag-inner')), + ( + r"(?i)(<)(nowiki)\b", + bygroups(Punctuation, Name.Tag), + ("tag-nowiki", "tag-inner"), + ), #
-            (r'(?i)(<)(pre)\b', bygroups(Punctuation,
-             Name.Tag), ('tag-pre', 'tag-inner')),
+            (
+                r"(?i)(<)(pre)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-pre", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(categorytree)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-categorytree', 'tag-inner')),
+            (
+                r"(?i)(<)(categorytree)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-categorytree", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(hiero)\b', bygroups(Punctuation,
-             Name.Tag), ('tag-hiero', 'tag-inner')),
+            (
+                r"(?i)(<)(hiero)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-hiero", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(math)\b', bygroups(Punctuation,
-             Name.Tag), ('tag-math', 'tag-inner')),
+            (
+                r"(?i)(<)(math)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-math", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(chem)\b', bygroups(Punctuation,
-             Name.Tag), ('tag-chem', 'tag-inner')),
+            (
+                r"(?i)(<)(chem)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-chem", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(ce)\b', bygroups(Punctuation,
-             Name.Tag), ('tag-ce', 'tag-inner')),
+            (
+                r"(?i)(<)(ce)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-ce", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(charinsert)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-charinsert', 'tag-inner')),
+            (
+                r"(?i)(<)(charinsert)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-charinsert", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(templatedata)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-templatedata', 'tag-inner')),
+            (
+                r"(?i)(<)(templatedata)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-templatedata", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(gallery)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-gallery', 'tag-inner')),
+            (
+                r"(?i)(<)(gallery)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-gallery", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(gallery)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-graph', 'tag-inner')),
+            (
+                r"(?i)(<)(gallery)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-graph", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(dynamicpagelist)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-dynamicpagelist', 'tag-inner')),
+            (
+                r"(?i)(<)(dynamicpagelist)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-dynamicpagelist", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(inputbox)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-inputbox', 'tag-inner')),
+            (
+                r"(?i)(<)(inputbox)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-inputbox", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(rss)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-rss', 'tag-inner')),
+            (
+                r"(?i)(<)(rss)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-rss", "tag-inner"),
+            ),
             # 
-            (r'(?i)(<)(imagemap)\b', bygroups(
-                Punctuation, Name.Tag), ('tag-imagemap', 'tag-inner')),
+            (
+                r"(?i)(<)(imagemap)\b",
+                bygroups(Punctuation, Name.Tag),
+                ("tag-imagemap", "tag-inner"),
+            ),
             # 
-            (r'(?i)()',
-             bygroups(Punctuation, Name.Tag, Whitespace, Punctuation)),
-            (r'(?si)(<)(syntaxhighlight)\b([^>]*?(?.*?)(?=)',
-             bygroups(Punctuation, Name.Tag, handle_syntaxhighlight)),
+            (
+                r"(?i)()",
+                bygroups(Punctuation, Name.Tag, Whitespace, Punctuation),
+            ),
+            (
+                r"(?si)(<)(syntaxhighlight)\b([^>]*?(?.*?)(?=)",
+                bygroups(Punctuation, Name.Tag, handle_syntaxhighlight),
+            ),
             # : Fallback case for self-closing tags
-            (r'(?i)(<)(syntaxhighlight)\b(\s*?)((?:[^>]|-->)*?)(/\s*?(?)*?)(/\s*?(?)*?)(/\s*?(?)*?)(/\s*?(?)*?)(/\s*?(?)*?)(/\s*?(?|\Z)', Comment.Multiline),
+            (r"|\Z)", Comment.Multiline),
             # Parameters
             (
                 r"""(?x)
@@ -1423,81 +2058,100 @@ class WikitextLexer(RegexLexer):
                     (?=\}{3}|\|)
                 """,
                 bygroups(Punctuation, Name.Variable),
-                'parameter-inner',
+                "parameter-inner",
             ),
             # Magic variables
-            (r'(?i)(\{{\{{)(\s*)({})(\s*)(\}}\}})'.format('|'.join(magic_vars_i)),
-             bygroups(Punctuation, Whitespace, Name.Function, Whitespace, Punctuation)),
-            (r'(\{{\{{)(\s*)({})(\s*)(\}}\}})'.format('|'.join(magic_vars)),
-                bygroups(Punctuation, Whitespace, Name.Function, Whitespace, Punctuation)),
-            # Parser functions & templates
-            (r'\{\{', Punctuation, 'template-begin-space'),
-            #  legacy syntax
-            (r'(?i)(<)(tvar)\b(\|)([^>]*?)(>)', bygroups(Punctuation,
-             Name.Tag, Punctuation, String, Punctuation)),
-            (r'', Punctuation, '#pop'),
-            # 
-            (r'(?i)(<)(tvar)\b', bygroups(Punctuation, Name.Tag), 'tag-inner-ordinary'),
-            (r'(?i)()',
-             bygroups(Punctuation, Name.Tag, Whitespace, Punctuation)),
-        ],
-        'parameter-inner': [
-            (r'\}{3}', Punctuation, '#pop'),
-            (r'\|', Punctuation),
-            include('inline'),
-            include('text'),
-        ],
-        'template-begin-space': [
-            # Templates allow line breaks at the beginning, and due to how MediaWiki handles
-            # comments, an extra state is required to handle things like {{\n\n name}}
-            (r'|\Z)', Comment.Multiline),
-            (r'\s+', Whitespace),
-            # Parser functions
             (
-                r'(?i)(\#[{}]*?|{})(:)'.format(title_char,
-                                           '|'.join(parser_functions_i)),
-                bygroups(Name.Function, Punctuation), ('#pop', 'template-inner')
+                r"(?i)(\{{\{{)(\s*)({})(\s*)(\}}\}})".format("|".join(magic_vars_i)),
+                bygroups(
+                    Punctuation, Whitespace, Name.Function, Whitespace, Punctuation
+                ),
             ),
             (
-                r'({})(:)'.format('|'.join(parser_functions)),
-                bygroups(Name.Function, Punctuation), ('#pop', 'template-inner')
+                r"(\{{\{{)(\s*)({})(\s*)(\}}\}})".format("|".join(magic_vars)),
+                bygroups(
+                    Punctuation, Whitespace, Name.Function, Whitespace, Punctuation
+                ),
+            ),
+            # Parser functions & templates
+            (r"\{\{", Punctuation, "template-begin-space"),
+            #  legacy syntax
+            (
+                r"(?i)(<)(tvar)\b(\|)([^>]*?)(>)",
+                bygroups(Punctuation, Name.Tag, Punctuation, String, Punctuation),
+            ),
+            (r"", Punctuation, "#pop"),
+            # 
+            (r"(?i)(<)(tvar)\b", bygroups(Punctuation, Name.Tag), "tag-inner-ordinary"),
+            (
+                r"(?i)()",
+                bygroups(Punctuation, Name.Tag, Whitespace, Punctuation),
+            ),
+        ],
+        "parameter-inner": [
+            (r"\}{3}", Punctuation, "#pop"),
+            (r"\|", Punctuation),
+            include("inline"),
+            include("text"),
+        ],
+        "template-begin-space": [
+            # Templates allow line breaks at the beginning, and due to how MediaWiki handles
+            # comments, an extra state is required to handle things like {{\n\n name}}
+            (r"|\Z)", Comment.Multiline),
+            (r"\s+", Whitespace),
+            # Parser functions
+            (
+                r"(?i)(\#[{}]*?|{})(:)".format(
+                    title_char, "|".join(parser_functions_i)
+                ),
+                bygroups(Name.Function, Punctuation),
+                ("#pop", "template-inner"),
+            ),
+            (
+                r"({})(:)".format("|".join(parser_functions)),
+                bygroups(Name.Function, Punctuation),
+                ("#pop", "template-inner"),
             ),
             # Templates
             (
-                rf'(?i)([{title_char}]*?)(:)',
-                bygroups(Name.Namespace, Punctuation), ('#pop', 'template-name')
+                rf"(?i)([{title_char}]*?)(:)",
+                bygroups(Name.Namespace, Punctuation),
+                ("#pop", "template-name"),
+            ),
+            default(
+                ("#pop", "template-name"),
             ),
-            default(('#pop', 'template-name'),),
         ],
-        'template-name': [
-            (r'(\s*?)(\|)', bygroups(Text, Punctuation), ('#pop', 'template-inner')),
-            (r'\}\}', Punctuation, '#pop'),
-            (r'\n', Text, '#pop'),
-            include('replaceable'),
+        "template-name": [
+            (r"(\s*?)(\|)", bygroups(Text, Punctuation), ("#pop", "template-inner")),
+            (r"\}\}", Punctuation, "#pop"),
+            (r"\n", Text, "#pop"),
+            include("replaceable"),
             *text_rules(Name.Tag),
         ],
-        'template-inner': [
-            (r'\}\}', Punctuation, '#pop'),
-            (r'\|', Punctuation),
+        "template-inner": [
+            (r"\}\}", Punctuation, "#pop"),
+            (r"\|", Punctuation),
             (
                 r"""(?x)
                     (?<=\|)
                     ( (?: (?! \{\{ | \}\} )[^=\|<])*? ) # Exclude templates and tags
                     (=)
                 """,
-                bygroups(Name.Label, Operator)
+                bygroups(Name.Label, Operator),
             ),
-            include('inline'),
-            include('text'),
+            include("inline"),
+            include("text"),
         ],
-        'table': [
+        "table": [
             # Use [ \t\n\r\0\x0B] instead of \s to follow PHP trim() behavior
             # Endings
-            (r'^([ \t\n\r\0\x0B]*?)(\|\})',
-             bygroups(Whitespace, Punctuation), '#pop'),
+            (r"^([ \t\n\r\0\x0B]*?)(\|\})", bygroups(Whitespace, Punctuation), "#pop"),
             # Table rows
-            (r'^([ \t\n\r\0\x0B]*?)(\|-+)(.*)$', bygroups(Whitespace, Punctuation,
-             using(this, state=['root', 'attr']))),
+            (
+                r"^([ \t\n\r\0\x0B]*?)(\|-+)(.*)$",
+                bygroups(Whitespace, Punctuation, using(this, state=["root", "attr"])),
+            ),
             # Captions
             (
                 r"""(?x)
@@ -1506,8 +2160,13 @@ class WikitextLexer(RegexLexer):
                 (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|) )?
                 (.*?)$
                 """,
-                bygroups(Whitespace, Punctuation, using(this, state=[
-                         'root', 'attr']), Punctuation, Generic.Heading),
+                bygroups(
+                    Whitespace,
+                    Punctuation,
+                    using(this, state=["root", "attr"]),
+                    Punctuation,
+                    Generic.Heading,
+                ),
             ),
             # Table data
             (
@@ -1515,8 +2174,7 @@ class WikitextLexer(RegexLexer):
                 ( ^(?:[ \t\n\r\0\x0B]*?)\| | \|\| )
                 (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|)(?!\|) )?
                 """,
-                bygroups(Punctuation, using(this, state=[
-                         'root', 'attr']), Punctuation),
+                bygroups(Punctuation, using(this, state=["root", "attr"]), Punctuation),
             ),
             # Table headers
             (
@@ -1524,17 +2182,16 @@ class WikitextLexer(RegexLexer):
                 ( ^(?:[ \t\n\r\0\x0B]*?)!  )
                 (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|)(?!\|) )?
                 """,
-                bygroups(Punctuation, using(this, state=[
-                         'root', 'attr']), Punctuation),
-                'table-header',
+                bygroups(Punctuation, using(this, state=["root", "attr"]), Punctuation),
+                "table-header",
             ),
-            include('list'),
-            include('inline'),
-            include('text'),
+            include("list"),
+            include("inline"),
+            include("text"),
         ],
-        'table-header': [
+        "table-header": [
             # Requires another state for || handling inside headers
-            (r'\n', Text, '#pop'),
+            (r"\n", Text, "#pop"),
             (
                 r"""(?x)
                 (!!|\|\|)
@@ -1543,112 +2200,123 @@ class WikitextLexer(RegexLexer):
                     (\|)(?!\|)
                 )?
                 """,
-                bygroups(Punctuation, using(this, state=[
-                         'root', 'attr']), Punctuation)
+                bygroups(Punctuation, using(this, state=["root", "attr"]), Punctuation),
             ),
             *text_rules(Generic.Subheading),
         ],
-        'entity': [
-            (r'&\S*?;', Name.Entity),
+        "entity": [
+            (r"&\S*?;", Name.Entity),
         ],
-        'dt': [
-            (r'\n', Text, '#pop'),
-            include('inline'),
-            (r':', Keyword, '#pop'),
-            include('text'),
+        "dt": [
+            (r"\n", Text, "#pop"),
+            include("inline"),
+            (r":", Keyword, "#pop"),
+            include("text"),
         ],
-        'extlink-inner': [
-            (r'\]', Punctuation, '#pop'),
-            include('inline'),
-            include('text'),
+        "extlink-inner": [
+            (r"\]", Punctuation, "#pop"),
+            include("inline"),
+            include("text"),
         ],
-        'nowiki-ish': [
-            include('entity'),
-            include('text'),
+        "nowiki-ish": [
+            include("entity"),
+            include("text"),
         ],
-        'attr': [
-            include('replaceable'),
-            (r'\s+', Whitespace),
-            (r'(=)(\s*)(")', bygroups(Operator, Whitespace, String.Double), 'attr-val-2'),
-            (r"(=)(\s*)(')", bygroups(Operator, Whitespace, String.Single), 'attr-val-1'),
-            (r'(=)(\s*)', bygroups(Operator, Whitespace), 'attr-val-0'),
-            (r'[\w:-]+', Name.Attribute),
-
+        "attr": [
+            include("replaceable"),
+            (r"\s+", Whitespace),
+            (
+                r'(=)(\s*)(")',
+                bygroups(Operator, Whitespace, String.Double),
+                "attr-val-2",
+            ),
+            (
+                r"(=)(\s*)(')",
+                bygroups(Operator, Whitespace, String.Single),
+                "attr-val-1",
+            ),
+            (r"(=)(\s*)", bygroups(Operator, Whitespace), "attr-val-0"),
+            (r"[\w:-]+", Name.Attribute),
         ],
-        'attr-val-0': [
-            (r'\s', Whitespace, '#pop'),
-            include('replaceable'),
+        "attr-val-0": [
+            (r"\s", Whitespace, "#pop"),
+            include("replaceable"),
             *text_rules(String),
         ],
-        'attr-val-1': [
-            (r"'", String.Single, '#pop'),
-            include('replaceable'),
+        "attr-val-1": [
+            (r"'", String.Single, "#pop"),
+            include("replaceable"),
             *text_rules(String.Single),
         ],
-        'attr-val-2': [
-            (r'"', String.Double, '#pop'),
-            include('replaceable'),
+        "attr-val-2": [
+            (r'"', String.Double, "#pop"),
+            include("replaceable"),
             *text_rules(String.Double),
         ],
-        'tag-inner-ordinary': [
-            (r'/?\s*>', Punctuation, '#pop'),
-            include('tag-attr'),
+        "tag-inner-ordinary": [
+            (r"/?\s*>", Punctuation, "#pop"),
+            include("tag-attr"),
         ],
-        'tag-inner': [
+        "tag-inner": [
             # Return to root state for self-closing tags
-            (r'/\s*>', Punctuation, '#pop:2'),
-            (r'\s*>', Punctuation, '#pop'),
-            include('tag-attr'),
+            (r"/\s*>", Punctuation, "#pop:2"),
+            (r"\s*>", Punctuation, "#pop"),
+            include("tag-attr"),
         ],
         # There states below are just like their non-tag variants, the key difference is
         # they forcibly quit when encountering tag closing markup
-        'tag-attr': [
-            include('replaceable'),
-            (r'\s+', Whitespace),
-            (r'(=)(\s*)(")', bygroups(Operator,
-             Whitespace, String.Double), 'tag-attr-val-2'),
-            (r"(=)(\s*)(')", bygroups(Operator,
-             Whitespace, String.Single), 'tag-attr-val-1'),
-            (r'(=)(\s*)', bygroups(Operator, Whitespace), 'tag-attr-val-0'),
-            (r'[\w:-]+', Name.Attribute),
-
+        "tag-attr": [
+            include("replaceable"),
+            (r"\s+", Whitespace),
+            (
+                r'(=)(\s*)(")',
+                bygroups(Operator, Whitespace, String.Double),
+                "tag-attr-val-2",
+            ),
+            (
+                r"(=)(\s*)(')",
+                bygroups(Operator, Whitespace, String.Single),
+                "tag-attr-val-1",
+            ),
+            (r"(=)(\s*)", bygroups(Operator, Whitespace), "tag-attr-val-0"),
+            (r"[\w:-]+", Name.Attribute),
         ],
-        'tag-attr-val-0': [
-            (r'\s', Whitespace, '#pop'),
-            (r'/?>', Punctuation, '#pop:2'),
-            include('replaceable'),
+        "tag-attr-val-0": [
+            (r"\s", Whitespace, "#pop"),
+            (r"/?>", Punctuation, "#pop:2"),
+            include("replaceable"),
             *text_rules(String),
         ],
-        'tag-attr-val-1': [
-            (r"'", String.Single, '#pop'),
-            (r'/?>', Punctuation, '#pop:2'),
-            include('replaceable'),
+        "tag-attr-val-1": [
+            (r"'", String.Single, "#pop"),
+            (r"/?>", Punctuation, "#pop:2"),
+            include("replaceable"),
             *text_rules(String.Single),
         ],
-        'tag-attr-val-2': [
-            (r'"', String.Double, '#pop'),
-            (r'/?>', Punctuation, '#pop:2'),
-            include('replaceable'),
+        "tag-attr-val-2": [
+            (r'"', String.Double, "#pop"),
+            (r"/?>", Punctuation, "#pop:2"),
+            include("replaceable"),
             *text_rules(String.Double),
         ],
-        'tag-nowiki': nowiki_tag_rules('nowiki'),
-        'tag-pre': nowiki_tag_rules('pre'),
-        'tag-categorytree': plaintext_tag_rules('categorytree'),
-        'tag-dynamicpagelist': plaintext_tag_rules('dynamicpagelist'),
-        'tag-hiero': plaintext_tag_rules('hiero'),
-        'tag-inputbox': plaintext_tag_rules('inputbox'),
-        'tag-imagemap': plaintext_tag_rules('imagemap'),
-        'tag-charinsert': plaintext_tag_rules('charinsert'),
-        'tag-timeline': plaintext_tag_rules('timeline'),
-        'tag-gallery': plaintext_tag_rules('gallery'),
-        'tag-graph': plaintext_tag_rules('graph'),
-        'tag-rss': plaintext_tag_rules('rss'),
-        'tag-math': delegate_tag_rules('math', TexLexer, state='math'),
-        'tag-chem': delegate_tag_rules('chem', TexLexer, state='math'),
-        'tag-ce': delegate_tag_rules('ce', TexLexer, state='math'),
-        'tag-templatedata': delegate_tag_rules('templatedata', JsonLexer),
-        'text-italic': text_rules(Generic.Emph),
-        'text-bold': text_rules(Generic.Strong),
-        'text-bold-italic': text_rules(Generic.EmphStrong),
-        'text': text_rules(Text),
+        "tag-nowiki": nowiki_tag_rules("nowiki"),
+        "tag-pre": nowiki_tag_rules("pre"),
+        "tag-categorytree": plaintext_tag_rules("categorytree"),
+        "tag-dynamicpagelist": plaintext_tag_rules("dynamicpagelist"),
+        "tag-hiero": plaintext_tag_rules("hiero"),
+        "tag-inputbox": plaintext_tag_rules("inputbox"),
+        "tag-imagemap": plaintext_tag_rules("imagemap"),
+        "tag-charinsert": plaintext_tag_rules("charinsert"),
+        "tag-timeline": plaintext_tag_rules("timeline"),
+        "tag-gallery": plaintext_tag_rules("gallery"),
+        "tag-graph": plaintext_tag_rules("graph"),
+        "tag-rss": plaintext_tag_rules("rss"),
+        "tag-math": delegate_tag_rules("math", TexLexer, state="math"),
+        "tag-chem": delegate_tag_rules("chem", TexLexer, state="math"),
+        "tag-ce": delegate_tag_rules("ce", TexLexer, state="math"),
+        "tag-templatedata": delegate_tag_rules("templatedata", JsonLexer),
+        "text-italic": text_rules(Generic.Emph),
+        "text-bold": text_rules(Generic.Strong),
+        "text-bold-italic": text_rules(Generic.EmphStrong),
+        "text": text_rules(Text),
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/math.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/math.py
index b225ffc..faa4f5c 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/math.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/math.py
@@ -1,17 +1,21 @@
 """
-    pygments.lexers.math
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.math
+~~~~~~~~~~~~~~~~~~~~
 
-    Just export lexers that were contained in this module.
+Just export lexers that were contained in this module.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 # ruff: noqa: F401
 from pygments.lexers.python import NumPyLexer
-from pygments.lexers.matlab import MatlabLexer, MatlabSessionLexer, \
-    OctaveLexer, ScilabLexer
+from pygments.lexers.matlab import (
+    MatlabLexer,
+    MatlabSessionLexer,
+    OctaveLexer,
+    ScilabLexer,
+)
 from pygments.lexers.julia import JuliaLexer, JuliaConsoleLexer
 from pygments.lexers.r import RConsoleLexer, SLexer, RdLexer
 from pygments.lexers.modeling import BugsLexer, JagsLexer, StanLexer
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/matlab.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/matlab.py
index 8eeffc9..d225602 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/matlab.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/matlab.py
@@ -1,90 +1,129 @@
 """
-    pygments.lexers.matlab
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.matlab
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Matlab and related languages.
+Lexers for Matlab and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import Lexer, RegexLexer, bygroups, default, words, \
-    do_insertions, include
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Generic, Whitespace
+from pygments.lexer import (
+    Lexer,
+    RegexLexer,
+    bygroups,
+    default,
+    words,
+    do_insertions,
+    include,
+)
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Generic,
+    Whitespace,
+)
 
 from pygments.lexers import _scilab_builtins
 
-__all__ = ['MatlabLexer', 'MatlabSessionLexer', 'OctaveLexer', 'ScilabLexer']
+__all__ = ["MatlabLexer", "MatlabSessionLexer", "OctaveLexer", "ScilabLexer"]
 
 
 class MatlabLexer(RegexLexer):
     """
     For Matlab source code.
     """
-    name = 'Matlab'
-    aliases = ['matlab']
-    filenames = ['*.m']
-    mimetypes = ['text/matlab']
-    url = 'https://www.mathworks.com/products/matlab.html'
-    version_added = '0.10'
 
-    _operators = r'-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\^|\.\\|\./|/|\\'
+    name = "Matlab"
+    aliases = ["matlab"]
+    filenames = ["*.m"]
+    mimetypes = ["text/matlab"]
+    url = "https://www.mathworks.com/products/matlab.html"
+    version_added = "0.10"
+
+    _operators = r"-|==|~=|<=|>=|<|>|&&|&|~|\|\|?|\.\*|\*|\+|\.\^|\^|\.\\|\./|/|\\"
 
     tokens = {
-        'expressions': [
+        "expressions": [
             # operators:
             (_operators, Operator),
-
             # numbers (must come before punctuation to handle `.5`; cannot use
             # `\b` due to e.g. `5. + .5`).  The negative lookahead on operators
             # avoids including the dot in `1./x` (the dot is part of `./`).
-            (rf'(? and then
             # (equal | open-parenthesis |  | ).
-            (rf'(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|{_operators}\s|\s)',
-             bygroups(Whitespace, Name, Whitespace), 'commandargs'),
-
-            include('expressions')
+            (
+                rf"(?:^|(?<=;))(\s*)(\w+)(\s+)(?!=|\(|{_operators}\s|\s)",
+                bygroups(Whitespace, Name, Whitespace),
+                "commandargs",
+            ),
+            include("expressions"),
         ],
-        'blockcomment': [
-            (r'^\s*%\}', Comment.Multiline, '#pop'),
-            (r'^.*\n', Comment.Multiline),
-            (r'.', Comment.Multiline),
+        "blockcomment": [
+            (r"^\s*%\}", Comment.Multiline, "#pop"),
+            (r"^.*\n", Comment.Multiline),
+            (r".", Comment.Multiline),
         ],
-        'deffunc': [
-            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
-             bygroups(Whitespace, Text, Whitespace, Punctuation,
-                      Whitespace, Name.Function, Punctuation, Text,
-                      Punctuation, Whitespace), '#pop'),
+        "deffunc": [
+            (
+                r"(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)",
+                bygroups(
+                    Whitespace,
+                    Text,
+                    Whitespace,
+                    Punctuation,
+                    Whitespace,
+                    Name.Function,
+                    Punctuation,
+                    Text,
+                    Punctuation,
+                    Whitespace,
+                ),
+                "#pop",
+            ),
             # function with no args
-            (r'(\s*)([a-zA-Z_]\w*)',
-             bygroups(Whitespace, Name.Function), '#pop'),
+            (r"(\s*)([a-zA-Z_]\w*)", bygroups(Whitespace, Name.Function), "#pop"),
         ],
-        'propattrs': [
-            (r'(\w+)(\s*)(=)(\s*)(\d+)',
-             bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
-                      Number)),
-            (r'(\w+)(\s*)(=)(\s*)([a-zA-Z]\w*)',
-             bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace,
-                      Keyword)),
-            (r',', Punctuation),
-            (r'\)', Punctuation, '#pop'),
-            (r'\s+', Whitespace),
-            (r'.', Text),
+        "propattrs": [
+            (
+                r"(\w+)(\s*)(=)(\s*)(\d+)",
+                bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace, Number),
+            ),
+            (
+                r"(\w+)(\s*)(=)(\s*)([a-zA-Z]\w*)",
+                bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace, Keyword),
+            ),
+            (r",", Punctuation),
+            (r"\)", Punctuation, "#pop"),
+            (r"\s+", Whitespace),
+            (r".", Text),
         ],
-        'defprops': [
-            (r'%\{\s*\n', Comment.Multiline, 'blockcomment'),
-            (r'%.*$', Comment),
-            (r'(?.
     """
-    name = 'Matlab session'
-    aliases = ['matlabsession']
-    url = 'https://www.mathworks.com/products/matlab.html'
-    version_added = '0.10'
+
+    name = "Matlab session"
+    aliases = ["matlabsession"]
+    url = "https://www.mathworks.com/products/matlab.html"
+    version_added = "0.10"
     _example = "matlabsession/matlabsession_sample.txt"
 
     def get_tokens_unprocessed(self, text):
         mlexer = MatlabLexer(**self.options)
 
-        curcode = ''
+        curcode = ""
         insertions = []
         continuation = False
 
         for match in line_re.finditer(text):
             line = match.group()
 
-            if line.startswith('>> '):
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, line[:3])]))
+            if line.startswith(">> "):
+                insertions.append((len(curcode), [(0, Generic.Prompt, line[:3])]))
                 curcode += line[3:]
 
-            elif line.startswith('>>'):
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, line[:2])]))
+            elif line.startswith(">>"):
+                insertions.append((len(curcode), [(0, Generic.Prompt, line[:2])]))
                 curcode += line[2:]
 
-            elif line.startswith('???'):
+            elif line.startswith("???"):
 
                 idx = len(curcode)
 
@@ -2782,43 +2833,45 @@ class MatlabSessionLexer(Lexer):
                 line_start = len(insertions[-1][-1][-1])
                 # Set leading spaces with the length of the prompt to be a generic prompt
                 # This keeps code aligned when prompts are removed, say with some Javascript
-                if line.startswith(' '*line_start):
+                if line.startswith(" " * line_start):
                     insertions.append(
-                        (len(curcode), [(0, Generic.Prompt, line[:line_start])]))
+                        (len(curcode), [(0, Generic.Prompt, line[:line_start])])
+                    )
                     curcode += line[line_start:]
                 else:
                     curcode += line
             else:
                 if curcode:
                     yield from do_insertions(
-                        insertions, mlexer.get_tokens_unprocessed(curcode))
-                    curcode = ''
+                        insertions, mlexer.get_tokens_unprocessed(curcode)
+                    )
+                    curcode = ""
                     insertions = []
 
                 yield match.start(), Generic.Output, line
 
             # Does not allow continuation if a comment is included after the ellipses.
             # Continues any line that ends with ..., even comments (lines that start with %)
-            if line.strip().endswith('...'):
+            if line.strip().endswith("..."):
                 continuation = True
             else:
                 continuation = False
 
         if curcode:  # or item:
-            yield from do_insertions(
-                insertions, mlexer.get_tokens_unprocessed(curcode))
+            yield from do_insertions(insertions, mlexer.get_tokens_unprocessed(curcode))
 
 
 class OctaveLexer(RegexLexer):
     """
     For GNU Octave source code.
     """
-    name = 'Octave'
-    url = 'https://www.gnu.org/software/octave/index'
-    aliases = ['octave']
-    filenames = ['*.m']
-    mimetypes = ['text/octave']
-    version_added = '1.5'
+
+    name = "Octave"
+    url = "https://www.gnu.org/software/octave/index"
+    aliases = ["octave"]
+    filenames = ["*.m"]
+    mimetypes = ["text/octave"]
+    version_added = "1.5"
 
     # These lists are generated automatically.
     # Run the following in bash shell:
@@ -2845,379 +2898,1310 @@ class OctaveLexer(RegexLexer):
     # taken from Octave Mercurial changeset 8cc154f45e37 (30-jan-2011)
 
     builtin_kw = (
-        "addlistener", "addpath", "addproperty", "all",
-        "and", "any", "argnames", "argv", "assignin",
-        "atexit", "autoload",
-        "available_graphics_toolkits", "beep_on_error",
-        "bitand", "bitmax", "bitor", "bitshift", "bitxor",
-        "cat", "cell", "cellstr", "char", "class", "clc",
-        "columns", "command_line_path",
-        "completion_append_char", "completion_matches",
-        "complex", "confirm_recursive_rmdir", "cputime",
-        "crash_dumps_octave_core", "ctranspose", "cumprod",
-        "cumsum", "debug_on_error", "debug_on_interrupt",
-        "debug_on_warning", "default_save_options",
-        "dellistener", "diag", "diff", "disp",
-        "doc_cache_file", "do_string_escapes", "double",
-        "drawnow", "e", "echo_executing_commands", "eps",
-        "eq", "errno", "errno_list", "error", "eval",
-        "evalin", "exec", "exist", "exit", "eye", "false",
-        "fclear", "fclose", "fcntl", "fdisp", "feof",
-        "ferror", "feval", "fflush", "fgetl", "fgets",
-        "fieldnames", "file_in_loadpath", "file_in_path",
-        "filemarker", "filesep", "find_dir_in_path",
-        "fixed_point_format", "fnmatch", "fopen", "fork",
-        "formula", "fprintf", "fputs", "fread", "freport",
-        "frewind", "fscanf", "fseek", "fskipl", "ftell",
-        "functions", "fwrite", "ge", "genpath", "get",
-        "getegid", "getenv", "geteuid", "getgid",
-        "getpgrp", "getpid", "getppid", "getuid", "glob",
-        "gt", "gui_mode", "history_control",
-        "history_file", "history_size",
-        "history_timestamp_format_string", "home",
-        "horzcat", "hypot", "ifelse",
-        "ignore_function_time_stamp", "inferiorto",
-        "info_file", "info_program", "inline", "input",
-        "intmax", "intmin", "ipermute",
-        "is_absolute_filename", "isargout", "isbool",
-        "iscell", "iscellstr", "ischar", "iscomplex",
-        "isempty", "isfield", "isfloat", "isglobal",
-        "ishandle", "isieee", "isindex", "isinteger",
-        "islogical", "ismatrix", "ismethod", "isnull",
-        "isnumeric", "isobject", "isreal",
-        "is_rooted_relative_filename", "issorted",
-        "isstruct", "isvarname", "kbhit", "keyboard",
-        "kill", "lasterr", "lasterror", "lastwarn",
-        "ldivide", "le", "length", "link", "linspace",
-        "logical", "lstat", "lt", "make_absolute_filename",
-        "makeinfo_program", "max_recursion_depth", "merge",
-        "methods", "mfilename", "minus", "mislocked",
-        "mkdir", "mkfifo", "mkstemp", "mldivide", "mlock",
-        "mouse_wheel_zoom", "mpower", "mrdivide", "mtimes",
-        "munlock", "nargin", "nargout",
-        "native_float_format", "ndims", "ne", "nfields",
-        "nnz", "norm", "not", "numel", "nzmax",
-        "octave_config_info", "octave_core_file_limit",
+        "addlistener",
+        "addpath",
+        "addproperty",
+        "all",
+        "and",
+        "any",
+        "argnames",
+        "argv",
+        "assignin",
+        "atexit",
+        "autoload",
+        "available_graphics_toolkits",
+        "beep_on_error",
+        "bitand",
+        "bitmax",
+        "bitor",
+        "bitshift",
+        "bitxor",
+        "cat",
+        "cell",
+        "cellstr",
+        "char",
+        "class",
+        "clc",
+        "columns",
+        "command_line_path",
+        "completion_append_char",
+        "completion_matches",
+        "complex",
+        "confirm_recursive_rmdir",
+        "cputime",
+        "crash_dumps_octave_core",
+        "ctranspose",
+        "cumprod",
+        "cumsum",
+        "debug_on_error",
+        "debug_on_interrupt",
+        "debug_on_warning",
+        "default_save_options",
+        "dellistener",
+        "diag",
+        "diff",
+        "disp",
+        "doc_cache_file",
+        "do_string_escapes",
+        "double",
+        "drawnow",
+        "e",
+        "echo_executing_commands",
+        "eps",
+        "eq",
+        "errno",
+        "errno_list",
+        "error",
+        "eval",
+        "evalin",
+        "exec",
+        "exist",
+        "exit",
+        "eye",
+        "false",
+        "fclear",
+        "fclose",
+        "fcntl",
+        "fdisp",
+        "feof",
+        "ferror",
+        "feval",
+        "fflush",
+        "fgetl",
+        "fgets",
+        "fieldnames",
+        "file_in_loadpath",
+        "file_in_path",
+        "filemarker",
+        "filesep",
+        "find_dir_in_path",
+        "fixed_point_format",
+        "fnmatch",
+        "fopen",
+        "fork",
+        "formula",
+        "fprintf",
+        "fputs",
+        "fread",
+        "freport",
+        "frewind",
+        "fscanf",
+        "fseek",
+        "fskipl",
+        "ftell",
+        "functions",
+        "fwrite",
+        "ge",
+        "genpath",
+        "get",
+        "getegid",
+        "getenv",
+        "geteuid",
+        "getgid",
+        "getpgrp",
+        "getpid",
+        "getppid",
+        "getuid",
+        "glob",
+        "gt",
+        "gui_mode",
+        "history_control",
+        "history_file",
+        "history_size",
+        "history_timestamp_format_string",
+        "home",
+        "horzcat",
+        "hypot",
+        "ifelse",
+        "ignore_function_time_stamp",
+        "inferiorto",
+        "info_file",
+        "info_program",
+        "inline",
+        "input",
+        "intmax",
+        "intmin",
+        "ipermute",
+        "is_absolute_filename",
+        "isargout",
+        "isbool",
+        "iscell",
+        "iscellstr",
+        "ischar",
+        "iscomplex",
+        "isempty",
+        "isfield",
+        "isfloat",
+        "isglobal",
+        "ishandle",
+        "isieee",
+        "isindex",
+        "isinteger",
+        "islogical",
+        "ismatrix",
+        "ismethod",
+        "isnull",
+        "isnumeric",
+        "isobject",
+        "isreal",
+        "is_rooted_relative_filename",
+        "issorted",
+        "isstruct",
+        "isvarname",
+        "kbhit",
+        "keyboard",
+        "kill",
+        "lasterr",
+        "lasterror",
+        "lastwarn",
+        "ldivide",
+        "le",
+        "length",
+        "link",
+        "linspace",
+        "logical",
+        "lstat",
+        "lt",
+        "make_absolute_filename",
+        "makeinfo_program",
+        "max_recursion_depth",
+        "merge",
+        "methods",
+        "mfilename",
+        "minus",
+        "mislocked",
+        "mkdir",
+        "mkfifo",
+        "mkstemp",
+        "mldivide",
+        "mlock",
+        "mouse_wheel_zoom",
+        "mpower",
+        "mrdivide",
+        "mtimes",
+        "munlock",
+        "nargin",
+        "nargout",
+        "native_float_format",
+        "ndims",
+        "ne",
+        "nfields",
+        "nnz",
+        "norm",
+        "not",
+        "numel",
+        "nzmax",
+        "octave_config_info",
+        "octave_core_file_limit",
         "octave_core_file_name",
-        "octave_core_file_options", "ones", "or",
-        "output_max_field_width", "output_precision",
-        "page_output_immediately", "page_screen_output",
-        "path", "pathsep", "pause", "pclose", "permute",
-        "pi", "pipe", "plus", "popen", "power",
-        "print_empty_dimensions", "printf",
-        "print_struct_array_contents", "prod",
-        "program_invocation_name", "program_name",
-        "putenv", "puts", "pwd", "quit", "rats", "rdivide",
-        "readdir", "readlink", "read_readline_init_file",
-        "realmax", "realmin", "rehash", "rename",
-        "repelems", "re_read_readline_init_file", "reset",
-        "reshape", "resize", "restoredefaultpath",
-        "rethrow", "rmdir", "rmfield", "rmpath", "rows",
-        "save_header_format_string", "save_precision",
-        "saving_history", "scanf", "set", "setenv",
-        "shell_cmd", "sighup_dumps_octave_core",
-        "sigterm_dumps_octave_core", "silent_functions",
-        "single", "size", "size_equal", "sizemax",
-        "sizeof", "sleep", "source", "sparse_auto_mutate",
-        "split_long_rows", "sprintf", "squeeze", "sscanf",
-        "stat", "stderr", "stdin", "stdout", "strcmp",
-        "strcmpi", "string_fill_char", "strncmp",
-        "strncmpi", "struct", "struct_levels_to_print",
-        "strvcat", "subsasgn", "subsref", "sum", "sumsq",
-        "superiorto", "suppress_verbose_help_message",
-        "symlink", "system", "tic", "tilde_expand",
-        "times", "tmpfile", "tmpnam", "toc", "toupper",
-        "transpose", "true", "typeinfo", "umask", "uminus",
-        "uname", "undo_string_escapes", "unlink", "uplus",
-        "upper", "usage", "usleep", "vec", "vectorize",
-        "vertcat", "waitpid", "warning", "warranty",
-        "whos_line_format", "yes_or_no", "zeros",
-        "inf", "Inf", "nan", "NaN")
+        "octave_core_file_options",
+        "ones",
+        "or",
+        "output_max_field_width",
+        "output_precision",
+        "page_output_immediately",
+        "page_screen_output",
+        "path",
+        "pathsep",
+        "pause",
+        "pclose",
+        "permute",
+        "pi",
+        "pipe",
+        "plus",
+        "popen",
+        "power",
+        "print_empty_dimensions",
+        "printf",
+        "print_struct_array_contents",
+        "prod",
+        "program_invocation_name",
+        "program_name",
+        "putenv",
+        "puts",
+        "pwd",
+        "quit",
+        "rats",
+        "rdivide",
+        "readdir",
+        "readlink",
+        "read_readline_init_file",
+        "realmax",
+        "realmin",
+        "rehash",
+        "rename",
+        "repelems",
+        "re_read_readline_init_file",
+        "reset",
+        "reshape",
+        "resize",
+        "restoredefaultpath",
+        "rethrow",
+        "rmdir",
+        "rmfield",
+        "rmpath",
+        "rows",
+        "save_header_format_string",
+        "save_precision",
+        "saving_history",
+        "scanf",
+        "set",
+        "setenv",
+        "shell_cmd",
+        "sighup_dumps_octave_core",
+        "sigterm_dumps_octave_core",
+        "silent_functions",
+        "single",
+        "size",
+        "size_equal",
+        "sizemax",
+        "sizeof",
+        "sleep",
+        "source",
+        "sparse_auto_mutate",
+        "split_long_rows",
+        "sprintf",
+        "squeeze",
+        "sscanf",
+        "stat",
+        "stderr",
+        "stdin",
+        "stdout",
+        "strcmp",
+        "strcmpi",
+        "string_fill_char",
+        "strncmp",
+        "strncmpi",
+        "struct",
+        "struct_levels_to_print",
+        "strvcat",
+        "subsasgn",
+        "subsref",
+        "sum",
+        "sumsq",
+        "superiorto",
+        "suppress_verbose_help_message",
+        "symlink",
+        "system",
+        "tic",
+        "tilde_expand",
+        "times",
+        "tmpfile",
+        "tmpnam",
+        "toc",
+        "toupper",
+        "transpose",
+        "true",
+        "typeinfo",
+        "umask",
+        "uminus",
+        "uname",
+        "undo_string_escapes",
+        "unlink",
+        "uplus",
+        "upper",
+        "usage",
+        "usleep",
+        "vec",
+        "vectorize",
+        "vertcat",
+        "waitpid",
+        "warning",
+        "warranty",
+        "whos_line_format",
+        "yes_or_no",
+        "zeros",
+        "inf",
+        "Inf",
+        "nan",
+        "NaN",
+    )
 
     command_kw = ("close", "load", "who", "whos")
 
     function_kw = (
-        "accumarray", "accumdim", "acosd", "acotd",
-        "acscd", "addtodate", "allchild", "ancestor",
-        "anova", "arch_fit", "arch_rnd", "arch_test",
-        "area", "arma_rnd", "arrayfun", "ascii", "asctime",
-        "asecd", "asind", "assert", "atand",
-        "autoreg_matrix", "autumn", "axes", "axis", "bar",
-        "barh", "bartlett", "bartlett_test", "beep",
-        "betacdf", "betainv", "betapdf", "betarnd",
-        "bicgstab", "bicubic", "binary", "binocdf",
-        "binoinv", "binopdf", "binornd", "bitcmp",
-        "bitget", "bitset", "blackman", "blanks",
-        "blkdiag", "bone", "box", "brighten", "calendar",
-        "cast", "cauchy_cdf", "cauchy_inv", "cauchy_pdf",
-        "cauchy_rnd", "caxis", "celldisp", "center", "cgs",
+        "accumarray",
+        "accumdim",
+        "acosd",
+        "acotd",
+        "acscd",
+        "addtodate",
+        "allchild",
+        "ancestor",
+        "anova",
+        "arch_fit",
+        "arch_rnd",
+        "arch_test",
+        "area",
+        "arma_rnd",
+        "arrayfun",
+        "ascii",
+        "asctime",
+        "asecd",
+        "asind",
+        "assert",
+        "atand",
+        "autoreg_matrix",
+        "autumn",
+        "axes",
+        "axis",
+        "bar",
+        "barh",
+        "bartlett",
+        "bartlett_test",
+        "beep",
+        "betacdf",
+        "betainv",
+        "betapdf",
+        "betarnd",
+        "bicgstab",
+        "bicubic",
+        "binary",
+        "binocdf",
+        "binoinv",
+        "binopdf",
+        "binornd",
+        "bitcmp",
+        "bitget",
+        "bitset",
+        "blackman",
+        "blanks",
+        "blkdiag",
+        "bone",
+        "box",
+        "brighten",
+        "calendar",
+        "cast",
+        "cauchy_cdf",
+        "cauchy_inv",
+        "cauchy_pdf",
+        "cauchy_rnd",
+        "caxis",
+        "celldisp",
+        "center",
+        "cgs",
         "chisquare_test_homogeneity",
-        "chisquare_test_independence", "circshift", "cla",
-        "clabel", "clf", "clock", "cloglog", "closereq",
-        "colon", "colorbar", "colormap", "colperm",
-        "comet", "common_size", "commutation_matrix",
-        "compan", "compare_versions", "compass",
-        "computer", "cond", "condest", "contour",
-        "contourc", "contourf", "contrast", "conv",
-        "convhull", "cool", "copper", "copyfile", "cor",
-        "corrcoef", "cor_test", "cosd", "cotd", "cov",
-        "cplxpair", "cross", "cscd", "cstrcat", "csvread",
-        "csvwrite", "ctime", "cumtrapz", "curl", "cut",
-        "cylinder", "date", "datenum", "datestr",
-        "datetick", "datevec", "dblquad", "deal",
-        "deblank", "deconv", "delaunay", "delaunayn",
-        "delete", "demo", "detrend", "diffpara", "diffuse",
-        "dir", "discrete_cdf", "discrete_inv",
-        "discrete_pdf", "discrete_rnd", "display",
-        "divergence", "dlmwrite", "dos", "dsearch",
-        "dsearchn", "duplication_matrix", "durbinlevinson",
-        "ellipsoid", "empirical_cdf", "empirical_inv",
-        "empirical_pdf", "empirical_rnd", "eomday",
-        "errorbar", "etime", "etreeplot", "example",
-        "expcdf", "expinv", "expm", "exppdf", "exprnd",
-        "ezcontour", "ezcontourf", "ezmesh", "ezmeshc",
-        "ezplot", "ezpolar", "ezsurf", "ezsurfc", "factor",
-        "factorial", "fail", "fcdf", "feather", "fftconv",
-        "fftfilt", "fftshift", "figure", "fileattrib",
-        "fileparts", "fill", "findall", "findobj",
-        "findstr", "finv", "flag", "flipdim", "fliplr",
-        "flipud", "fpdf", "fplot", "fractdiff", "freqz",
-        "freqz_plot", "frnd", "fsolve",
-        "f_test_regression", "ftp", "fullfile", "fzero",
-        "gamcdf", "gaminv", "gampdf", "gamrnd", "gca",
-        "gcbf", "gcbo", "gcf", "genvarname", "geocdf",
-        "geoinv", "geopdf", "geornd", "getfield", "ginput",
-        "glpk", "gls", "gplot", "gradient",
-        "graphics_toolkit", "gray", "grid", "griddata",
-        "griddatan", "gtext", "gunzip", "gzip", "hadamard",
-        "hamming", "hankel", "hanning", "hggroup",
-        "hidden", "hilb", "hist", "histc", "hold", "hot",
-        "hotelling_test", "housh", "hsv", "hurst",
-        "hygecdf", "hygeinv", "hygepdf", "hygernd",
-        "idivide", "ifftshift", "image", "imagesc",
-        "imfinfo", "imread", "imshow", "imwrite", "index",
-        "info", "inpolygon", "inputname", "interpft",
-        "interpn", "intersect", "invhilb", "iqr", "isa",
-        "isdefinite", "isdir", "is_duplicate_entry",
-        "isequal", "isequalwithequalnans", "isfigure",
-        "ishermitian", "ishghandle", "is_leap_year",
-        "isletter", "ismac", "ismember", "ispc", "isprime",
-        "isprop", "isscalar", "issquare", "isstrprop",
-        "issymmetric", "isunix", "is_valid_file_id",
-        "isvector", "jet", "kendall",
+        "chisquare_test_independence",
+        "circshift",
+        "cla",
+        "clabel",
+        "clf",
+        "clock",
+        "cloglog",
+        "closereq",
+        "colon",
+        "colorbar",
+        "colormap",
+        "colperm",
+        "comet",
+        "common_size",
+        "commutation_matrix",
+        "compan",
+        "compare_versions",
+        "compass",
+        "computer",
+        "cond",
+        "condest",
+        "contour",
+        "contourc",
+        "contourf",
+        "contrast",
+        "conv",
+        "convhull",
+        "cool",
+        "copper",
+        "copyfile",
+        "cor",
+        "corrcoef",
+        "cor_test",
+        "cosd",
+        "cotd",
+        "cov",
+        "cplxpair",
+        "cross",
+        "cscd",
+        "cstrcat",
+        "csvread",
+        "csvwrite",
+        "ctime",
+        "cumtrapz",
+        "curl",
+        "cut",
+        "cylinder",
+        "date",
+        "datenum",
+        "datestr",
+        "datetick",
+        "datevec",
+        "dblquad",
+        "deal",
+        "deblank",
+        "deconv",
+        "delaunay",
+        "delaunayn",
+        "delete",
+        "demo",
+        "detrend",
+        "diffpara",
+        "diffuse",
+        "dir",
+        "discrete_cdf",
+        "discrete_inv",
+        "discrete_pdf",
+        "discrete_rnd",
+        "display",
+        "divergence",
+        "dlmwrite",
+        "dos",
+        "dsearch",
+        "dsearchn",
+        "duplication_matrix",
+        "durbinlevinson",
+        "ellipsoid",
+        "empirical_cdf",
+        "empirical_inv",
+        "empirical_pdf",
+        "empirical_rnd",
+        "eomday",
+        "errorbar",
+        "etime",
+        "etreeplot",
+        "example",
+        "expcdf",
+        "expinv",
+        "expm",
+        "exppdf",
+        "exprnd",
+        "ezcontour",
+        "ezcontourf",
+        "ezmesh",
+        "ezmeshc",
+        "ezplot",
+        "ezpolar",
+        "ezsurf",
+        "ezsurfc",
+        "factor",
+        "factorial",
+        "fail",
+        "fcdf",
+        "feather",
+        "fftconv",
+        "fftfilt",
+        "fftshift",
+        "figure",
+        "fileattrib",
+        "fileparts",
+        "fill",
+        "findall",
+        "findobj",
+        "findstr",
+        "finv",
+        "flag",
+        "flipdim",
+        "fliplr",
+        "flipud",
+        "fpdf",
+        "fplot",
+        "fractdiff",
+        "freqz",
+        "freqz_plot",
+        "frnd",
+        "fsolve",
+        "f_test_regression",
+        "ftp",
+        "fullfile",
+        "fzero",
+        "gamcdf",
+        "gaminv",
+        "gampdf",
+        "gamrnd",
+        "gca",
+        "gcbf",
+        "gcbo",
+        "gcf",
+        "genvarname",
+        "geocdf",
+        "geoinv",
+        "geopdf",
+        "geornd",
+        "getfield",
+        "ginput",
+        "glpk",
+        "gls",
+        "gplot",
+        "gradient",
+        "graphics_toolkit",
+        "gray",
+        "grid",
+        "griddata",
+        "griddatan",
+        "gtext",
+        "gunzip",
+        "gzip",
+        "hadamard",
+        "hamming",
+        "hankel",
+        "hanning",
+        "hggroup",
+        "hidden",
+        "hilb",
+        "hist",
+        "histc",
+        "hold",
+        "hot",
+        "hotelling_test",
+        "housh",
+        "hsv",
+        "hurst",
+        "hygecdf",
+        "hygeinv",
+        "hygepdf",
+        "hygernd",
+        "idivide",
+        "ifftshift",
+        "image",
+        "imagesc",
+        "imfinfo",
+        "imread",
+        "imshow",
+        "imwrite",
+        "index",
+        "info",
+        "inpolygon",
+        "inputname",
+        "interpft",
+        "interpn",
+        "intersect",
+        "invhilb",
+        "iqr",
+        "isa",
+        "isdefinite",
+        "isdir",
+        "is_duplicate_entry",
+        "isequal",
+        "isequalwithequalnans",
+        "isfigure",
+        "ishermitian",
+        "ishghandle",
+        "is_leap_year",
+        "isletter",
+        "ismac",
+        "ismember",
+        "ispc",
+        "isprime",
+        "isprop",
+        "isscalar",
+        "issquare",
+        "isstrprop",
+        "issymmetric",
+        "isunix",
+        "is_valid_file_id",
+        "isvector",
+        "jet",
+        "kendall",
         "kolmogorov_smirnov_cdf",
-        "kolmogorov_smirnov_test", "kruskal_wallis_test",
-        "krylov", "kurtosis", "laplace_cdf", "laplace_inv",
-        "laplace_pdf", "laplace_rnd", "legend", "legendre",
-        "license", "line", "linkprop", "list_primes",
-        "loadaudio", "loadobj", "logistic_cdf",
-        "logistic_inv", "logistic_pdf", "logistic_rnd",
-        "logit", "loglog", "loglogerr", "logm", "logncdf",
-        "logninv", "lognpdf", "lognrnd", "logspace",
-        "lookfor", "ls_command", "lsqnonneg", "magic",
-        "mahalanobis", "manova", "matlabroot",
-        "mcnemar_test", "mean", "meansq", "median", "menu",
-        "mesh", "meshc", "meshgrid", "meshz", "mexext",
-        "mget", "mkpp", "mode", "moment", "movefile",
-        "mpoles", "mput", "namelengthmax", "nargchk",
-        "nargoutchk", "nbincdf", "nbininv", "nbinpdf",
-        "nbinrnd", "nchoosek", "ndgrid", "newplot", "news",
-        "nonzeros", "normcdf", "normest", "norminv",
-        "normpdf", "normrnd", "now", "nthroot", "null",
-        "ocean", "ols", "onenormest", "optimget",
-        "optimset", "orderfields", "orient", "orth",
-        "pack", "pareto", "parseparams", "pascal", "patch",
-        "pathdef", "pcg", "pchip", "pcolor", "pcr",
-        "peaks", "periodogram", "perl", "perms", "pie",
-        "pink", "planerot", "playaudio", "plot",
-        "plotmatrix", "plotyy", "poisscdf", "poissinv",
-        "poisspdf", "poissrnd", "polar", "poly",
-        "polyaffine", "polyarea", "polyderiv", "polyfit",
-        "polygcd", "polyint", "polyout", "polyreduce",
-        "polyval", "polyvalm", "postpad", "powerset",
-        "ppder", "ppint", "ppjumps", "ppplot", "ppval",
-        "pqpnonneg", "prepad", "primes", "print",
-        "print_usage", "prism", "probit", "qp", "qqplot",
-        "quadcc", "quadgk", "quadl", "quadv", "quiver",
-        "qzhess", "rainbow", "randi", "range", "rank",
-        "ranks", "rat", "reallog", "realpow", "realsqrt",
-        "record", "rectangle_lw", "rectangle_sw",
-        "rectint", "refresh", "refreshdata",
-        "regexptranslate", "repmat", "residue", "ribbon",
-        "rindex", "roots", "rose", "rosser", "rotdim",
-        "rref", "run", "run_count", "rundemos", "run_test",
-        "runtests", "saveas", "saveaudio", "saveobj",
-        "savepath", "scatter", "secd", "semilogx",
-        "semilogxerr", "semilogy", "semilogyerr",
-        "setaudio", "setdiff", "setfield", "setxor",
-        "shading", "shift", "shiftdim", "sign_test",
-        "sinc", "sind", "sinetone", "sinewave", "skewness",
-        "slice", "sombrero", "sortrows", "spaugment",
-        "spconvert", "spdiags", "spearman", "spectral_adf",
-        "spectral_xdf", "specular", "speed", "spencer",
-        "speye", "spfun", "sphere", "spinmap", "spline",
-        "spones", "sprand", "sprandn", "sprandsym",
-        "spring", "spstats", "spy", "sqp", "stairs",
-        "statistics", "std", "stdnormal_cdf",
-        "stdnormal_inv", "stdnormal_pdf", "stdnormal_rnd",
-        "stem", "stft", "strcat", "strchr", "strjust",
-        "strmatch", "strread", "strsplit", "strtok",
-        "strtrim", "strtrunc", "structfun", "studentize",
-        "subplot", "subsindex", "subspace", "substr",
-        "substruct", "summer", "surf", "surface", "surfc",
-        "surfl", "surfnorm", "svds", "swapbytes",
-        "sylvester_matrix", "symvar", "synthesis", "table",
-        "tand", "tar", "tcdf", "tempdir", "tempname",
-        "test", "text", "textread", "textscan", "tinv",
-        "title", "toeplitz", "tpdf", "trace", "trapz",
-        "treelayout", "treeplot", "triangle_lw",
-        "triangle_sw", "tril", "trimesh", "triplequad",
-        "triplot", "trisurf", "triu", "trnd", "tsearchn",
-        "t_test", "t_test_regression", "type", "unidcdf",
-        "unidinv", "unidpdf", "unidrnd", "unifcdf",
-        "unifinv", "unifpdf", "unifrnd", "union", "unique",
-        "unix", "unmkpp", "unpack", "untabify", "untar",
-        "unwrap", "unzip", "u_test", "validatestring",
-        "vander", "var", "var_test", "vech", "ver",
-        "version", "view", "voronoi", "voronoin",
-        "waitforbuttonpress", "wavread", "wavwrite",
-        "wblcdf", "wblinv", "wblpdf", "wblrnd", "weekday",
-        "welch_test", "what", "white", "whitebg",
-        "wienrnd", "wilcoxon_test", "wilkinson", "winter",
-        "xlabel", "xlim", "ylabel", "yulewalker", "zip",
-        "zlabel", "z_test")
+        "kolmogorov_smirnov_test",
+        "kruskal_wallis_test",
+        "krylov",
+        "kurtosis",
+        "laplace_cdf",
+        "laplace_inv",
+        "laplace_pdf",
+        "laplace_rnd",
+        "legend",
+        "legendre",
+        "license",
+        "line",
+        "linkprop",
+        "list_primes",
+        "loadaudio",
+        "loadobj",
+        "logistic_cdf",
+        "logistic_inv",
+        "logistic_pdf",
+        "logistic_rnd",
+        "logit",
+        "loglog",
+        "loglogerr",
+        "logm",
+        "logncdf",
+        "logninv",
+        "lognpdf",
+        "lognrnd",
+        "logspace",
+        "lookfor",
+        "ls_command",
+        "lsqnonneg",
+        "magic",
+        "mahalanobis",
+        "manova",
+        "matlabroot",
+        "mcnemar_test",
+        "mean",
+        "meansq",
+        "median",
+        "menu",
+        "mesh",
+        "meshc",
+        "meshgrid",
+        "meshz",
+        "mexext",
+        "mget",
+        "mkpp",
+        "mode",
+        "moment",
+        "movefile",
+        "mpoles",
+        "mput",
+        "namelengthmax",
+        "nargchk",
+        "nargoutchk",
+        "nbincdf",
+        "nbininv",
+        "nbinpdf",
+        "nbinrnd",
+        "nchoosek",
+        "ndgrid",
+        "newplot",
+        "news",
+        "nonzeros",
+        "normcdf",
+        "normest",
+        "norminv",
+        "normpdf",
+        "normrnd",
+        "now",
+        "nthroot",
+        "null",
+        "ocean",
+        "ols",
+        "onenormest",
+        "optimget",
+        "optimset",
+        "orderfields",
+        "orient",
+        "orth",
+        "pack",
+        "pareto",
+        "parseparams",
+        "pascal",
+        "patch",
+        "pathdef",
+        "pcg",
+        "pchip",
+        "pcolor",
+        "pcr",
+        "peaks",
+        "periodogram",
+        "perl",
+        "perms",
+        "pie",
+        "pink",
+        "planerot",
+        "playaudio",
+        "plot",
+        "plotmatrix",
+        "plotyy",
+        "poisscdf",
+        "poissinv",
+        "poisspdf",
+        "poissrnd",
+        "polar",
+        "poly",
+        "polyaffine",
+        "polyarea",
+        "polyderiv",
+        "polyfit",
+        "polygcd",
+        "polyint",
+        "polyout",
+        "polyreduce",
+        "polyval",
+        "polyvalm",
+        "postpad",
+        "powerset",
+        "ppder",
+        "ppint",
+        "ppjumps",
+        "ppplot",
+        "ppval",
+        "pqpnonneg",
+        "prepad",
+        "primes",
+        "print",
+        "print_usage",
+        "prism",
+        "probit",
+        "qp",
+        "qqplot",
+        "quadcc",
+        "quadgk",
+        "quadl",
+        "quadv",
+        "quiver",
+        "qzhess",
+        "rainbow",
+        "randi",
+        "range",
+        "rank",
+        "ranks",
+        "rat",
+        "reallog",
+        "realpow",
+        "realsqrt",
+        "record",
+        "rectangle_lw",
+        "rectangle_sw",
+        "rectint",
+        "refresh",
+        "refreshdata",
+        "regexptranslate",
+        "repmat",
+        "residue",
+        "ribbon",
+        "rindex",
+        "roots",
+        "rose",
+        "rosser",
+        "rotdim",
+        "rref",
+        "run",
+        "run_count",
+        "rundemos",
+        "run_test",
+        "runtests",
+        "saveas",
+        "saveaudio",
+        "saveobj",
+        "savepath",
+        "scatter",
+        "secd",
+        "semilogx",
+        "semilogxerr",
+        "semilogy",
+        "semilogyerr",
+        "setaudio",
+        "setdiff",
+        "setfield",
+        "setxor",
+        "shading",
+        "shift",
+        "shiftdim",
+        "sign_test",
+        "sinc",
+        "sind",
+        "sinetone",
+        "sinewave",
+        "skewness",
+        "slice",
+        "sombrero",
+        "sortrows",
+        "spaugment",
+        "spconvert",
+        "spdiags",
+        "spearman",
+        "spectral_adf",
+        "spectral_xdf",
+        "specular",
+        "speed",
+        "spencer",
+        "speye",
+        "spfun",
+        "sphere",
+        "spinmap",
+        "spline",
+        "spones",
+        "sprand",
+        "sprandn",
+        "sprandsym",
+        "spring",
+        "spstats",
+        "spy",
+        "sqp",
+        "stairs",
+        "statistics",
+        "std",
+        "stdnormal_cdf",
+        "stdnormal_inv",
+        "stdnormal_pdf",
+        "stdnormal_rnd",
+        "stem",
+        "stft",
+        "strcat",
+        "strchr",
+        "strjust",
+        "strmatch",
+        "strread",
+        "strsplit",
+        "strtok",
+        "strtrim",
+        "strtrunc",
+        "structfun",
+        "studentize",
+        "subplot",
+        "subsindex",
+        "subspace",
+        "substr",
+        "substruct",
+        "summer",
+        "surf",
+        "surface",
+        "surfc",
+        "surfl",
+        "surfnorm",
+        "svds",
+        "swapbytes",
+        "sylvester_matrix",
+        "symvar",
+        "synthesis",
+        "table",
+        "tand",
+        "tar",
+        "tcdf",
+        "tempdir",
+        "tempname",
+        "test",
+        "text",
+        "textread",
+        "textscan",
+        "tinv",
+        "title",
+        "toeplitz",
+        "tpdf",
+        "trace",
+        "trapz",
+        "treelayout",
+        "treeplot",
+        "triangle_lw",
+        "triangle_sw",
+        "tril",
+        "trimesh",
+        "triplequad",
+        "triplot",
+        "trisurf",
+        "triu",
+        "trnd",
+        "tsearchn",
+        "t_test",
+        "t_test_regression",
+        "type",
+        "unidcdf",
+        "unidinv",
+        "unidpdf",
+        "unidrnd",
+        "unifcdf",
+        "unifinv",
+        "unifpdf",
+        "unifrnd",
+        "union",
+        "unique",
+        "unix",
+        "unmkpp",
+        "unpack",
+        "untabify",
+        "untar",
+        "unwrap",
+        "unzip",
+        "u_test",
+        "validatestring",
+        "vander",
+        "var",
+        "var_test",
+        "vech",
+        "ver",
+        "version",
+        "view",
+        "voronoi",
+        "voronoin",
+        "waitforbuttonpress",
+        "wavread",
+        "wavwrite",
+        "wblcdf",
+        "wblinv",
+        "wblpdf",
+        "wblrnd",
+        "weekday",
+        "welch_test",
+        "what",
+        "white",
+        "whitebg",
+        "wienrnd",
+        "wilcoxon_test",
+        "wilkinson",
+        "winter",
+        "xlabel",
+        "xlim",
+        "ylabel",
+        "yulewalker",
+        "zip",
+        "zlabel",
+        "z_test",
+    )
 
     loadable_kw = (
-        "airy", "amd", "balance", "besselh", "besseli",
-        "besselj", "besselk", "bessely", "bitpack",
-        "bsxfun", "builtin", "ccolamd", "cellfun",
-        "cellslices", "chol", "choldelete", "cholinsert",
-        "cholinv", "cholshift", "cholupdate", "colamd",
-        "colloc", "convhulln", "convn", "csymamd",
-        "cummax", "cummin", "daspk", "daspk_options",
-        "dasrt", "dasrt_options", "dassl", "dassl_options",
-        "dbclear", "dbdown", "dbstack", "dbstatus",
-        "dbstop", "dbtype", "dbup", "dbwhere", "det",
-        "dlmread", "dmperm", "dot", "eig", "eigs",
-        "endgrent", "endpwent", "etree", "fft", "fftn",
-        "fftw", "filter", "find", "full", "gcd",
-        "getgrent", "getgrgid", "getgrnam", "getpwent",
-        "getpwnam", "getpwuid", "getrusage", "givens",
-        "gmtime", "gnuplot_binary", "hess", "ifft",
-        "ifftn", "inv", "isdebugmode", "issparse", "kron",
-        "localtime", "lookup", "lsode", "lsode_options",
-        "lu", "luinc", "luupdate", "matrix_type", "max",
-        "min", "mktime", "pinv", "qr", "qrdelete",
-        "qrinsert", "qrshift", "qrupdate", "quad",
-        "quad_options", "qz", "rand", "rande", "randg",
-        "randn", "randp", "randperm", "rcond", "regexp",
-        "regexpi", "regexprep", "schur", "setgrent",
-        "setpwent", "sort", "spalloc", "sparse", "spparms",
-        "sprank", "sqrtm", "strfind", "strftime",
-        "strptime", "strrep", "svd", "svd_driver", "syl",
-        "symamd", "symbfact", "symrcm", "time", "tsearch",
-        "typecast", "urlread", "urlwrite")
+        "airy",
+        "amd",
+        "balance",
+        "besselh",
+        "besseli",
+        "besselj",
+        "besselk",
+        "bessely",
+        "bitpack",
+        "bsxfun",
+        "builtin",
+        "ccolamd",
+        "cellfun",
+        "cellslices",
+        "chol",
+        "choldelete",
+        "cholinsert",
+        "cholinv",
+        "cholshift",
+        "cholupdate",
+        "colamd",
+        "colloc",
+        "convhulln",
+        "convn",
+        "csymamd",
+        "cummax",
+        "cummin",
+        "daspk",
+        "daspk_options",
+        "dasrt",
+        "dasrt_options",
+        "dassl",
+        "dassl_options",
+        "dbclear",
+        "dbdown",
+        "dbstack",
+        "dbstatus",
+        "dbstop",
+        "dbtype",
+        "dbup",
+        "dbwhere",
+        "det",
+        "dlmread",
+        "dmperm",
+        "dot",
+        "eig",
+        "eigs",
+        "endgrent",
+        "endpwent",
+        "etree",
+        "fft",
+        "fftn",
+        "fftw",
+        "filter",
+        "find",
+        "full",
+        "gcd",
+        "getgrent",
+        "getgrgid",
+        "getgrnam",
+        "getpwent",
+        "getpwnam",
+        "getpwuid",
+        "getrusage",
+        "givens",
+        "gmtime",
+        "gnuplot_binary",
+        "hess",
+        "ifft",
+        "ifftn",
+        "inv",
+        "isdebugmode",
+        "issparse",
+        "kron",
+        "localtime",
+        "lookup",
+        "lsode",
+        "lsode_options",
+        "lu",
+        "luinc",
+        "luupdate",
+        "matrix_type",
+        "max",
+        "min",
+        "mktime",
+        "pinv",
+        "qr",
+        "qrdelete",
+        "qrinsert",
+        "qrshift",
+        "qrupdate",
+        "quad",
+        "quad_options",
+        "qz",
+        "rand",
+        "rande",
+        "randg",
+        "randn",
+        "randp",
+        "randperm",
+        "rcond",
+        "regexp",
+        "regexpi",
+        "regexprep",
+        "schur",
+        "setgrent",
+        "setpwent",
+        "sort",
+        "spalloc",
+        "sparse",
+        "spparms",
+        "sprank",
+        "sqrtm",
+        "strfind",
+        "strftime",
+        "strptime",
+        "strrep",
+        "svd",
+        "svd_driver",
+        "syl",
+        "symamd",
+        "symbfact",
+        "symrcm",
+        "time",
+        "tsearch",
+        "typecast",
+        "urlread",
+        "urlwrite",
+    )
 
     mapping_kw = (
-        "abs", "acos", "acosh", "acot", "acoth", "acsc",
-        "acsch", "angle", "arg", "asec", "asech", "asin",
-        "asinh", "atan", "atanh", "beta", "betainc",
-        "betaln", "bincoeff", "cbrt", "ceil", "conj", "cos",
-        "cosh", "cot", "coth", "csc", "csch", "erf", "erfc",
-        "erfcx", "erfinv", "exp", "finite", "fix", "floor",
-        "fmod", "gamma", "gammainc", "gammaln", "imag",
-        "isalnum", "isalpha", "isascii", "iscntrl",
-        "isdigit", "isfinite", "isgraph", "isinf",
-        "islower", "isna", "isnan", "isprint", "ispunct",
-        "isspace", "isupper", "isxdigit", "lcm", "lgamma",
-        "log", "lower", "mod", "real", "rem", "round",
-        "roundb", "sec", "sech", "sign", "sin", "sinh",
-        "sqrt", "tan", "tanh", "toascii", "tolower", "xor")
+        "abs",
+        "acos",
+        "acosh",
+        "acot",
+        "acoth",
+        "acsc",
+        "acsch",
+        "angle",
+        "arg",
+        "asec",
+        "asech",
+        "asin",
+        "asinh",
+        "atan",
+        "atanh",
+        "beta",
+        "betainc",
+        "betaln",
+        "bincoeff",
+        "cbrt",
+        "ceil",
+        "conj",
+        "cos",
+        "cosh",
+        "cot",
+        "coth",
+        "csc",
+        "csch",
+        "erf",
+        "erfc",
+        "erfcx",
+        "erfinv",
+        "exp",
+        "finite",
+        "fix",
+        "floor",
+        "fmod",
+        "gamma",
+        "gammainc",
+        "gammaln",
+        "imag",
+        "isalnum",
+        "isalpha",
+        "isascii",
+        "iscntrl",
+        "isdigit",
+        "isfinite",
+        "isgraph",
+        "isinf",
+        "islower",
+        "isna",
+        "isnan",
+        "isprint",
+        "ispunct",
+        "isspace",
+        "isupper",
+        "isxdigit",
+        "lcm",
+        "lgamma",
+        "log",
+        "lower",
+        "mod",
+        "real",
+        "rem",
+        "round",
+        "roundb",
+        "sec",
+        "sech",
+        "sign",
+        "sin",
+        "sinh",
+        "sqrt",
+        "tan",
+        "tanh",
+        "toascii",
+        "tolower",
+        "xor",
+    )
 
     builtin_consts = (
-        "EDITOR", "EXEC_PATH", "I", "IMAGE_PATH", "NA",
-        "OCTAVE_HOME", "OCTAVE_VERSION", "PAGER",
-        "PAGER_FLAGS", "SEEK_CUR", "SEEK_END", "SEEK_SET",
-        "SIG", "S_ISBLK", "S_ISCHR", "S_ISDIR", "S_ISFIFO",
-        "S_ISLNK", "S_ISREG", "S_ISSOCK", "WCONTINUE",
-        "WCOREDUMP", "WEXITSTATUS", "WIFCONTINUED",
-        "WIFEXITED", "WIFSIGNALED", "WIFSTOPPED", "WNOHANG",
-        "WSTOPSIG", "WTERMSIG", "WUNTRACED")
+        "EDITOR",
+        "EXEC_PATH",
+        "I",
+        "IMAGE_PATH",
+        "NA",
+        "OCTAVE_HOME",
+        "OCTAVE_VERSION",
+        "PAGER",
+        "PAGER_FLAGS",
+        "SEEK_CUR",
+        "SEEK_END",
+        "SEEK_SET",
+        "SIG",
+        "S_ISBLK",
+        "S_ISCHR",
+        "S_ISDIR",
+        "S_ISFIFO",
+        "S_ISLNK",
+        "S_ISREG",
+        "S_ISSOCK",
+        "WCONTINUE",
+        "WCOREDUMP",
+        "WEXITSTATUS",
+        "WIFCONTINUED",
+        "WIFEXITED",
+        "WIFSIGNALED",
+        "WIFSTOPPED",
+        "WNOHANG",
+        "WSTOPSIG",
+        "WTERMSIG",
+        "WUNTRACED",
+    )
 
     tokens = {
-        'root': [
-            (r'%\{\s*\n', Comment.Multiline, 'percentblockcomment'),
-            (r'#\{\s*\n', Comment.Multiline, 'hashblockcomment'),
-            (r'[%#].*$', Comment),
-            (r'^\s*function\b', Keyword, 'deffunc'),
-
+        "root": [
+            (r"%\{\s*\n", Comment.Multiline, "percentblockcomment"),
+            (r"#\{\s*\n", Comment.Multiline, "hashblockcomment"),
+            (r"[%#].*$", Comment),
+            (r"^\s*function\b", Keyword, "deffunc"),
             # from 'iskeyword' on hg changeset 8cc154f45e37
-            (words((
-                '__FILE__', '__LINE__', 'break', 'case', 'catch', 'classdef',
-                'continue', 'do', 'else', 'elseif', 'end', 'end_try_catch',
-                'end_unwind_protect', 'endclassdef', 'endevents', 'endfor',
-                'endfunction', 'endif', 'endmethods', 'endproperties', 'endswitch',
-                'endwhile', 'events', 'for', 'function', 'get', 'global', 'if',
-                'methods', 'otherwise', 'persistent', 'properties', 'return',
-                'set', 'static', 'switch', 'try', 'until', 'unwind_protect',
-                'unwind_protect_cleanup', 'while'), suffix=r'\b'),
-             Keyword),
-
-            (words(builtin_kw + command_kw + function_kw + loadable_kw + mapping_kw,
-                   suffix=r'\b'),  Name.Builtin),
-
-            (words(builtin_consts, suffix=r'\b'), Name.Constant),
-
+            (
+                words(
+                    (
+                        "__FILE__",
+                        "__LINE__",
+                        "break",
+                        "case",
+                        "catch",
+                        "classdef",
+                        "continue",
+                        "do",
+                        "else",
+                        "elseif",
+                        "end",
+                        "end_try_catch",
+                        "end_unwind_protect",
+                        "endclassdef",
+                        "endevents",
+                        "endfor",
+                        "endfunction",
+                        "endif",
+                        "endmethods",
+                        "endproperties",
+                        "endswitch",
+                        "endwhile",
+                        "events",
+                        "for",
+                        "function",
+                        "get",
+                        "global",
+                        "if",
+                        "methods",
+                        "otherwise",
+                        "persistent",
+                        "properties",
+                        "return",
+                        "set",
+                        "static",
+                        "switch",
+                        "try",
+                        "until",
+                        "unwind_protect",
+                        "unwind_protect_cleanup",
+                        "while",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                words(
+                    builtin_kw + command_kw + function_kw + loadable_kw + mapping_kw,
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
+            (words(builtin_consts, suffix=r"\b"), Name.Constant),
             # operators in Octave but not Matlab:
-            (r'-=|!=|!|/=|--', Operator),
+            (r"-=|!=|!|/=|--", Operator),
             # operators:
-            (r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
+            (r"-|==|~=|<|>|<=|>=|&&|&|~|\|\|?", Operator),
             # operators in Octave but not Matlab requiring escape for re:
-            (r'\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*', Operator),
+            (r"\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*", Operator),
             # operators requiring escape for re:
-            (r'\.\*|\*|\+|\.\^|\^|\.\\|\.\/|\/|\\', Operator),
-
-
+            (r"\.\*|\*|\+|\.\^|\^|\.\\|\.\/|\/|\\", Operator),
             # punctuation:
-            (r'[\[\](){}:@.,]', Punctuation),
-            (r'=|:|;', Punctuation),
-
+            (r"[\[\](){}:@.,]", Punctuation),
+            (r"=|:|;", Punctuation),
             (r'"[^"]*"', String),
-
-            (r'(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?', Number.Float),
-            (r'\d+[eEf][+-]?[0-9]+', Number.Float),
-            (r'\d+', Number.Integer),
-
+            (r"(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?", Number.Float),
+            (r"\d+[eEf][+-]?[0-9]+", Number.Float),
+            (r"\d+", Number.Integer),
             # quote can be transpose, instead of string:
             # (not great, but handles common cases...)
-            (r'(?<=[\w)\].])\'+', Operator),
-            (r'(?|<=|>=|&&|&|~|\|\|?', Operator),
+            (r"-|==|~=|<|>|<=|>=|&&|&|~|\|\|?", Operator),
             # operators requiring escape for re:
-            (r'\.\*|\*|\+|\.\^|\^|\.\\|\.\/|\/|\\', Operator),
-
+            (r"\.\*|\*|\+|\.\^|\^|\.\\|\.\/|\/|\\", Operator),
             # punctuation:
-            (r'[\[\](){}@.,=:;]+', Punctuation),
-
+            (r"[\[\](){}@.,=:;]+", Punctuation),
             (r'"[^"]*"', String),
-
             # quote can be transpose, instead of string:
             # (not great, but handles common cases...)
-            (r'(?<=[\w)\].])\'+', Operator),
-            (r'(?', r'<', r'|', r'!', r"'")
+    constants = (
+        "%pi",
+        "%e",
+        "%phi",
+        "%gamma",
+        "%i",
+        "und",
+        "ind",
+        "infinity",
+        "inf",
+        "minf",
+        "true",
+        "false",
+        "unknown",
+        "done",
+    )
 
-    operator_words = ('and', 'or', 'not')
+    operators = (
+        r".",
+        r":",
+        r"=",
+        r"#",
+        r"+",
+        r"-",
+        r"*",
+        r"/",
+        r"^",
+        r"@",
+        r">",
+        r"<",
+        r"|",
+        r"!",
+        r"'",
+    )
+
+    operator_words = ("and", "or", "not")
 
     tokens = {
-        'root': [
-            (r'/\*', Comment.Multiline, 'comment'),
+        "root": [
+            (r"/\*", Comment.Multiline, "comment"),
             (r'"(?:[^"\\]|\\.)*"', String),
-            (r'\(|\)|\[|\]|\{|\}', Punctuation),
-            (r'[,;$]', Punctuation),
-            (words (constants), Name.Constant),
-            (words (keywords), Keyword),
-            (words (operators), Operator),
-            (words (operator_words), Operator.Word),
-            (r'''(?x)
+            (r"\(|\)|\[|\]|\{|\}", Punctuation),
+            (r"[,;$]", Punctuation),
+            (words(constants), Name.Constant),
+            (words(keywords), Keyword),
+            (words(operators), Operator),
+            (words(operator_words), Operator.Word),
+            (
+                r"""(?x)
               ((?:[a-zA-Z_#][\w#]*|`[^`]*`)
-              (?:::[a-zA-Z_#][\w#]*|`[^`]*`)*)(\s*)([(])''',
-             bygroups(Name.Function, Text.Whitespace, Punctuation)),
-            (r'''(?x)
+              (?:::[a-zA-Z_#][\w#]*|`[^`]*`)*)(\s*)([(])""",
+                bygroups(Name.Function, Text.Whitespace, Punctuation),
+            ),
+            (
+                r"""(?x)
               (?:[a-zA-Z_#%][\w#%]*|`[^`]*`)
-              (?:::[a-zA-Z_#%][\w#%]*|`[^`]*`)*''', Name.Variable),
-            (r'[-+]?(\d*\.\d+([bdefls][-+]?\d+)?|\d+(\.\d*)?[bdefls][-+]?\d+)', Number.Float),
-            (r'[-+]?\d+', Number.Integer),
-            (r'\s+', Text.Whitespace),
-            (r'.', Text)
+              (?:::[a-zA-Z_#%][\w#%]*|`[^`]*`)*""",
+                Name.Variable,
+            ),
+            (
+                r"[-+]?(\d*\.\d+([bdefls][-+]?\d+)?|\d+(\.\d*)?[bdefls][-+]?\d+)",
+                Number.Float,
+            ),
+            (r"[-+]?\d+", Number.Integer),
+            (r"\s+", Text.Whitespace),
+            (r".", Text),
+        ],
+        "comment": [
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
         ],
-        'comment': [
-            (r'[^*/]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]', Comment.Multiline)
-        ]
     }
 
-    def analyse_text (text):
+    def analyse_text(text):
         strength = 0.0
         # Input expression terminator.
-        if re.search (r'\$\s*$', text, re.MULTILINE):
+        if re.search(r"\$\s*$", text, re.MULTILINE):
             strength += 0.05
         # Function definition operator.
-        if ':=' in text:
+        if ":=" in text:
             strength += 0.02
         return strength
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/meson.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/meson.py
index 6f2c6da..7187e0d 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/meson.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/meson.py
@@ -1,18 +1,26 @@
 """
-    pygments.lexers.meson
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.meson
+~~~~~~~~~~~~~~~~~~~~~
 
-    Pygments lexer for the Meson build system
+Pygments lexer for the Meson build system
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words, include
-from pygments.token import Comment, Name, Number, Punctuation, Operator, \
-    Keyword, String, Whitespace
+from pygments.token import (
+    Comment,
+    Name,
+    Number,
+    Punctuation,
+    Operator,
+    Keyword,
+    String,
+    Whitespace,
+)
 
-__all__ = ['MesonLexer']
+__all__ = ["MesonLexer"]
 
 
 class MesonLexer(RegexLexer):
@@ -27,113 +35,128 @@ class MesonLexer(RegexLexer):
     # TODO String interpolation @VARNAME@ inner matches
     # TODO keyword_arg: value inner matches
 
-    name = 'Meson'
-    url = 'https://mesonbuild.com/'
-    aliases = ['meson', 'meson.build']
-    filenames = ['meson.build', 'meson_options.txt']
-    mimetypes = ['text/x-meson']
-    version_added = '2.10'
+    name = "Meson"
+    url = "https://mesonbuild.com/"
+    aliases = ["meson", "meson.build"]
+    filenames = ["meson.build", "meson_options.txt"]
+    mimetypes = ["text/x-meson"]
+    version_added = "2.10"
 
     tokens = {
-        'root': [
-            (r'#.*?$', Comment),
+        "root": [
+            (r"#.*?$", Comment),
             (r"'''.*'''", String.Single),
-            (r'[1-9][0-9]*', Number.Integer),
-            (r'0o[0-7]+', Number.Oct),
-            (r'0x[a-fA-F0-9]+', Number.Hex),
-            include('string'),
-            include('keywords'),
-            include('expr'),
-            (r'[a-zA-Z_][a-zA-Z_0-9]*', Name),
-            (r'\s+', Whitespace),
+            (r"[1-9][0-9]*", Number.Integer),
+            (r"0o[0-7]+", Number.Oct),
+            (r"0x[a-fA-F0-9]+", Number.Hex),
+            include("string"),
+            include("keywords"),
+            include("expr"),
+            (r"[a-zA-Z_][a-zA-Z_0-9]*", Name),
+            (r"\s+", Whitespace),
         ],
-        'string': [
+        "string": [
             (r"[']{3}([']{0,2}([^\\']|\\(.|\n)))*[']{3}", String),
             (r"'.*?(?!]"
@@ -123,14 +126,12 @@ class MCFunctionLexer(RegexLexer):
             include("operators"),
             include("selectors"),
         ],
-
         "names": [
             # The start of a command (either beginning of line OR after the run keyword)
             #  We don't encode a list of keywords since mods, plugins, or even pre-processors
             #  may add new commands, so we have a 'close-enough' regex which catches them.
             (r"^(\s*)([a-z_]+)", bygroups(Whitespace, Name.Builtin)),
             (r"(?<=run)\s+[a-z_]+", Name.Builtin),
-
             # UUID
             (r"\b[0-9a-fA-F]+(?:-[0-9a-fA-F]+){4}\b", Name.Variable),
             include("resource-name"),
@@ -139,7 +140,6 @@ class MCFunctionLexer(RegexLexer):
             (r"[A-Za-z_][\w.#%$]+", Keyword.Constant),
             (r"[#%$][\w.#%$]+", Name.Variable.Magic),
         ],
-
         "resource-name": [
             # resource names have to be lowercase
             (r"#?[a-z_][a-z_.-]*:[a-z0-9_./-]+", Name.Function),
@@ -147,19 +147,23 @@ class MCFunctionLexer(RegexLexer):
             #  a `/` must be present "somewhere"
             (r"#?[a-z0-9_\.\-]+\/[a-z0-9_\.\-\/]+", Name.Function),
         ],
-
         "whitespace": [
             (r"\s+", Whitespace),
         ],
-
         "comments": [
-            (rf"^\s*(#{_block_comment_prefix})", Comment.Multiline,
-             ("comments.block", "comments.block.emphasized")),
+            (
+                rf"^\s*(#{_block_comment_prefix})",
+                Comment.Multiline,
+                ("comments.block", "comments.block.emphasized"),
+            ),
             (r"#.*$", Comment.Single),
         ],
         "comments.block": [
-            (rf"^\s*#{_block_comment_prefix}", Comment.Multiline,
-             "comments.block.emphasized"),
+            (
+                rf"^\s*#{_block_comment_prefix}",
+                Comment.Multiline,
+                "comments.block.emphasized",
+            ),
             (r"^\s*#", Comment.Multiline, "comments.block.normal"),
             default("#pop"),
         ],
@@ -178,24 +182,18 @@ class MCFunctionLexer(RegexLexer):
         "comments.block.special": [
             # Params
             (r"@\S+", Name.Decorator),
-
             include("resource-name"),
-
             # Scoreboard player names
             (r"[#%$][\w.#%$]+", Name.Variable.Magic),
         ],
-
         "operators": [
             (r"[\-~%^?!+*<>\\/|&=.]", Operator),
         ],
-
         "literals": [
             (r"\.\.", Literal),
             (r"(true|false)", Keyword.Pseudo),
-
             # these are like unquoted strings and appear in many places
             (r"[A-Za-z_]+", Name.Variable.Class),
-
             (r"[0-7]b", Number.Byte),
             (r"[+-]?\d*\.?\d+([eE]?[+-]?\d+)?[df]?\b", Number.Float),
             (r"[+-]?\d+\b", Number.Integer),
@@ -212,12 +210,9 @@ class MCFunctionLexer(RegexLexer):
             (r"[^\\'\n]+", String.Single),
             (r"'", String.Single, "#pop"),
         ],
-
         "selectors": [
             (r"@[a-z]", Name.Variable),
         ],
-
-
         ## Generic Property Container
         # There are several, differing instances where the language accepts
         #  specific contained keys or contained key, value pairings.
@@ -259,29 +254,27 @@ class MCFunctionLexer(RegexLexer):
             include("whitespace"),
             include("property"),
             (r"\]", Punctuation, "#pop"),
-
             # lists can have sequences of items
             (r",", Punctuation),
         ],
         "property.key": [
             include("whitespace"),
-
             # resource names (for advancements)
             #  can omit `:` to default `minecraft:`
             # must check if there is a future equals sign if `:` is in the name
-            (r"#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)", Name.Attribute, "property.delimiter"),
+            (
+                r"#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)",
+                Name.Attribute,
+                "property.delimiter",
+            ),
             (r"#?[a-z_][a-z0-9_\.\-/]+", Name.Attribute, "property.delimiter"),
-
             # unquoted NBT key
             (r"[A-Za-z_\-\+]+", Name.Attribute, "property.delimiter"),
-
             # quoted JSON or NBT key
             (r'"', Name.Attribute, "property.delimiter", "literals.string-double"),
             (r"'", Name.Attribute, "property.delimiter", "literals.string-single"),
-
             # index for a list
             (r"-?\d+", Number.Integer, "property.delimiter"),
-
             default("#pop"),
         ],
         "property.key.string-double": [
@@ -296,96 +289,104 @@ class MCFunctionLexer(RegexLexer):
         ],
         "property.delimiter": [
             include("whitespace"),
-
             (r"[:=]!?", Punctuation, "property.value"),
             (r",", Punctuation),
-
             default("#pop"),
         ],
         "property.value": [
             include("whitespace"),
-
             # unquoted resource names are valid literals here
             (r"#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+", Name.Tag),
             (r"#?[a-z_][a-z0-9_\.\-/]+", Name.Tag),
-
             include("literals"),
             include("property"),
-
             default("#pop"),
         ],
     }
 
 
 class MCSchemaLexer(RegexLexer):
-    """Lexer for Minecraft Add-ons data Schemas, an interface structure standard used in Minecraft
-    """
+    """Lexer for Minecraft Add-ons data Schemas, an interface structure standard used in Minecraft"""
 
-    name = 'MCSchema'
-    url = 'https://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/'
-    aliases = ['mcschema']
-    filenames = ['*.mcschema']
-    mimetypes = ['text/mcschema']
-    version_added = '2.14'
+    name = "MCSchema"
+    url = "https://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/"
+    aliases = ["mcschema"]
+    filenames = ["*.mcschema"]
+    mimetypes = ["text/mcschema"]
+    version_added = "2.14"
 
     tokens = {
-        'commentsandwhitespace': [
-            (r'\s+', Whitespace),
-            (r'//.*?$', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline)
+        "commentsandwhitespace": [
+            (r"\s+", Whitespace),
+            (r"//.*?$", Comment.Single),
+            (r"/\*.*?\*/", Comment.Multiline),
         ],
-        'slashstartsregex': [
-            include('commentsandwhitespace'),
-            (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
-             r'([gimuysd]+\b|\B)', String.Regex, '#pop'),
-            (r'(?=/)', Text, ('#pop', 'badregex')),
-            default('#pop')
+        "slashstartsregex": [
+            include("commentsandwhitespace"),
+            (
+                r"/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/" r"([gimuysd]+\b|\B)",
+                String.Regex,
+                "#pop",
+            ),
+            (r"(?=/)", Text, ("#pop", "badregex")),
+            default("#pop"),
         ],
-        'badregex': [
-            (r'\n', Whitespace, '#pop')
-        ],
-        'singlestring': [
-            (r'\\.', String.Escape),
-            (r"'", String.Single, '#pop'),
+        "badregex": [(r"\n", Whitespace, "#pop")],
+        "singlestring": [
+            (r"\\.", String.Escape),
+            (r"'", String.Single, "#pop"),
             (r"[^\\']+", String.Single),
         ],
-        'doublestring': [
-            (r'\\.', String.Escape),
-            (r'"', String.Double, '#pop'),
+        "doublestring": [
+            (r"\\.", String.Escape),
+            (r'"', String.Double, "#pop"),
             (r'[^\\"]+', String.Double),
         ],
-        'root': [
-            (r'^(?=\s|/|', Comment, '#pop'),
-            (r'[^\-]+|-', Comment),
+        "html-comment": [
+            (r"-->", Comment, "#pop"),
+            (r"[^\-]+|-", Comment),
         ],
     }
 
@@ -772,89 +853,164 @@ class ReasonLexer(RegexLexer):
     For the ReasonML language.
     """
 
-    name = 'ReasonML'
-    url = 'https://reasonml.github.io/'
-    aliases = ['reasonml', 'reason']
-    filenames = ['*.re', '*.rei']
-    mimetypes = ['text/x-reasonml']
-    version_added = '2.6'
+    name = "ReasonML"
+    url = "https://reasonml.github.io/"
+    aliases = ["reasonml", "reason"]
+    filenames = ["*.re", "*.rei"]
+    mimetypes = ["text/x-reasonml"]
+    version_added = "2.6"
 
     keywords = (
-        'as', 'assert', 'begin', 'class', 'constraint', 'do', 'done', 'downto',
-        'else', 'end', 'exception', 'external', 'false', 'for', 'fun', 'esfun',
-        'function', 'functor', 'if', 'in', 'include', 'inherit', 'initializer', 'lazy',
-        'let', 'switch', 'module', 'pub', 'mutable', 'new', 'nonrec', 'object', 'of',
-        'open', 'pri', 'rec', 'sig', 'struct', 'then', 'to', 'true', 'try',
-        'type', 'val', 'virtual', 'when', 'while', 'with',
+        "as",
+        "assert",
+        "begin",
+        "class",
+        "constraint",
+        "do",
+        "done",
+        "downto",
+        "else",
+        "end",
+        "exception",
+        "external",
+        "false",
+        "for",
+        "fun",
+        "esfun",
+        "function",
+        "functor",
+        "if",
+        "in",
+        "include",
+        "inherit",
+        "initializer",
+        "lazy",
+        "let",
+        "switch",
+        "module",
+        "pub",
+        "mutable",
+        "new",
+        "nonrec",
+        "object",
+        "of",
+        "open",
+        "pri",
+        "rec",
+        "sig",
+        "struct",
+        "then",
+        "to",
+        "true",
+        "try",
+        "type",
+        "val",
+        "virtual",
+        "when",
+        "while",
+        "with",
     )
     keyopts = (
-        '!=', '#', '&', '&&', r'\(', r'\)', r'\*', r'\+', ',', '-',
-        r'-\.', '=>', r'\.', r'\.\.', r'\.\.\.', ':', '::', ':=', ':>', ';', ';;', '<',
-        '<-', '=', '>', '>]', r'>\}', r'\?', r'\?\?', r'\[', r'\[<', r'\[>',
-        r'\[\|', ']', '_', '`', r'\{', r'\{<', r'\|', r'\|\|', r'\|]', r'\}', '~'
+        "!=",
+        "#",
+        "&",
+        "&&",
+        r"\(",
+        r"\)",
+        r"\*",
+        r"\+",
+        ",",
+        "-",
+        r"-\.",
+        "=>",
+        r"\.",
+        r"\.\.",
+        r"\.\.\.",
+        ":",
+        "::",
+        ":=",
+        ":>",
+        ";",
+        ";;",
+        "<",
+        "<-",
+        "=",
+        ">",
+        ">]",
+        r">\}",
+        r"\?",
+        r"\?\?",
+        r"\[",
+        r"\[<",
+        r"\[>",
+        r"\[\|",
+        "]",
+        "_",
+        "`",
+        r"\{",
+        r"\{<",
+        r"\|",
+        r"\|\|",
+        r"\|]",
+        r"\}",
+        "~",
     )
 
-    operators = r'[!$%&*+\./:<=>?@^|~-]'
-    word_operators = ('and', 'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod', 'or')
-    prefix_syms = r'[!?~]'
-    infix_syms = r'[=<>@^|&+\*/$%-]'
-    primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list', 'array')
+    operators = r"[!$%&*+\./:<=>?@^|~-]"
+    word_operators = ("and", "asr", "land", "lor", "lsl", "lsr", "lxor", "mod", "or")
+    prefix_syms = r"[!?~]"
+    infix_syms = r"[=<>@^|&+\*/$%-]"
+    primitives = ("unit", "int", "float", "bool", "string", "char", "list", "array")
 
     tokens = {
-        'escape-sequence': [
+        "escape-sequence": [
             (r'\\[\\"\'ntbr]', String.Escape),
-            (r'\\[0-9]{3}', String.Escape),
-            (r'\\x[0-9a-fA-F]{2}', String.Escape),
+            (r"\\[0-9]{3}", String.Escape),
+            (r"\\x[0-9a-fA-F]{2}", String.Escape),
         ],
-        'root': [
-            (r'\s+', Text),
-            (r'false|true|\(\)|\[\]', Name.Builtin.Pseudo),
-            (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
-            (r'\b([A-Z][\w\']*)', Name.Class),
-            (r'//.*?\n', Comment.Single),
-            (r'\/\*(?!/)', Comment.Multiline, 'comment'),
-            (r'\b({})\b'.format('|'.join(keywords)), Keyword),
-            (r'({})'.format('|'.join(keyopts[::-1])), Operator.Word),
-            (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
-            (r'\b({})\b'.format('|'.join(word_operators)), Operator.Word),
-            (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
-
+        "root": [
+            (r"\s+", Text),
+            (r"false|true|\(\)|\[\]", Name.Builtin.Pseudo),
+            (r"\b([A-Z][\w\']*)(?=\s*\.)", Name.Namespace, "dotted"),
+            (r"\b([A-Z][\w\']*)", Name.Class),
+            (r"//.*?\n", Comment.Single),
+            (r"\/\*(?!/)", Comment.Multiline, "comment"),
+            (r"\b({})\b".format("|".join(keywords)), Keyword),
+            (r"({})".format("|".join(keyopts[::-1])), Operator.Word),
+            (rf"({infix_syms}|{prefix_syms})?{operators}", Operator),
+            (r"\b({})\b".format("|".join(word_operators)), Operator.Word),
+            (r"\b({})\b".format("|".join(primitives)), Keyword.Type),
             (r"[^\W\d][\w']*", Name),
-
-            (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
-            (r'0[xX][\da-fA-F][\da-fA-F_]*', Number.Hex),
-            (r'0[oO][0-7][0-7_]*', Number.Oct),
-            (r'0[bB][01][01_]*', Number.Bin),
-            (r'\d[\d_]*', Number.Integer),
-
-            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
-             String.Char),
+            (r"-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)", Number.Float),
+            (r"0[xX][\da-fA-F][\da-fA-F_]*", Number.Hex),
+            (r"0[oO][0-7][0-7_]*", Number.Oct),
+            (r"0[bB][01][01_]*", Number.Bin),
+            (r"\d[\d_]*", Number.Integer),
+            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'", String.Char),
             (r"'.'", String.Char),
             (r"'", Keyword),
-
-            (r'"', String.Double, 'string'),
-
-            (r'[~?][a-z][\w\']*:', Name.Variable),
+            (r'"', String.Double, "string"),
+            (r"[~?][a-z][\w\']*:", Name.Variable),
         ],
-        'comment': [
-            (r'[^/*]+', Comment.Multiline),
-            (r'\/\*', Comment.Multiline, '#push'),
-            (r'\*\/', Comment.Multiline, '#pop'),
-            (r'\*', Comment.Multiline),
+        "comment": [
+            (r"[^/*]+", Comment.Multiline),
+            (r"\/\*", Comment.Multiline, "#push"),
+            (r"\*\/", Comment.Multiline, "#pop"),
+            (r"\*", Comment.Multiline),
         ],
-        'string': [
+        "string": [
             (r'[^\\"]+', String.Double),
-            include('escape-sequence'),
-            (r'\\\n', String.Double),
-            (r'"', String.Double, '#pop'),
+            include("escape-sequence"),
+            (r"\\\n", String.Double),
+            (r'"', String.Double, "#pop"),
         ],
-        'dotted': [
-            (r'\s+', Text),
-            (r'\.', Punctuation),
-            (r'[A-Z][\w\']*(?=\s*\.)', Name.Namespace),
-            (r'[A-Z][\w\']*', Name.Class, '#pop'),
-            (r'[a-z_][\w\']*', Name, '#pop'),
-            default('#pop'),
+        "dotted": [
+            (r"\s+", Text),
+            (r"\.", Punctuation),
+            (r"[A-Z][\w\']*(?=\s*\.)", Name.Namespace),
+            (r"[A-Z][\w\']*", Name.Class, "#pop"),
+            (r"[a-z_][\w\']*", Name, "#pop"),
+            default("#pop"),
         ],
     }
 
@@ -864,95 +1020,176 @@ class FStarLexer(RegexLexer):
     For the F* language.
     """
 
-    name = 'FStar'
-    url = 'https://www.fstar-lang.org/'
-    aliases = ['fstar']
-    filenames = ['*.fst', '*.fsti']
-    mimetypes = ['text/x-fstar']
-    version_added = '2.7'
+    name = "FStar"
+    url = "https://www.fstar-lang.org/"
+    aliases = ["fstar"]
+    filenames = ["*.fst", "*.fsti"]
+    mimetypes = ["text/x-fstar"]
+    version_added = "2.7"
 
     keywords = (
-        'abstract', 'attributes', 'noeq', 'unopteq', 'and'
-        'begin', 'by', 'default', 'effect', 'else', 'end', 'ensures',
-        'exception', 'exists', 'false', 'forall', 'fun', 'function', 'if',
-        'in', 'include', 'inline', 'inline_for_extraction', 'irreducible',
-        'logic', 'match', 'module', 'mutable', 'new', 'new_effect', 'noextract',
-        'of', 'open', 'opaque', 'private', 'range_of', 'reifiable',
-        'reify', 'reflectable', 'requires', 'set_range_of', 'sub_effect',
-        'synth', 'then', 'total', 'true', 'try', 'type', 'unfold', 'unfoldable',
-        'val', 'when', 'with', 'not'
+        "abstract",
+        "attributes",
+        "noeq",
+        "unopteq",
+        "and" "begin",
+        "by",
+        "default",
+        "effect",
+        "else",
+        "end",
+        "ensures",
+        "exception",
+        "exists",
+        "false",
+        "forall",
+        "fun",
+        "function",
+        "if",
+        "in",
+        "include",
+        "inline",
+        "inline_for_extraction",
+        "irreducible",
+        "logic",
+        "match",
+        "module",
+        "mutable",
+        "new",
+        "new_effect",
+        "noextract",
+        "of",
+        "open",
+        "opaque",
+        "private",
+        "range_of",
+        "reifiable",
+        "reify",
+        "reflectable",
+        "requires",
+        "set_range_of",
+        "sub_effect",
+        "synth",
+        "then",
+        "total",
+        "true",
+        "try",
+        "type",
+        "unfold",
+        "unfoldable",
+        "val",
+        "when",
+        "with",
+        "not",
     )
-    decl_keywords = ('let', 'rec')
-    assume_keywords = ('assume', 'admit', 'assert', 'calc')
+    decl_keywords = ("let", "rec")
+    assume_keywords = ("assume", "admit", "assert", "calc")
     keyopts = (
-        r'~', r'-', r'/\\', r'\\/', r'<:', r'<@', r'\(\|', r'\|\)', r'#', r'u#',
-        r'&', r'\(', r'\)', r'\(\)', r',', r'~>', r'->', r'<-', r'<--', r'<==>',
-        r'==>', r'\.', r'\?', r'\?\.', r'\.\[', r'\.\(', r'\.\(\|', r'\.\[\|',
-        r'\{:pattern', r':', r'::', r':=', r';', r';;', r'=', r'%\[', r'!\{',
-        r'\[', r'\[@', r'\[\|', r'\|>', r'\]', r'\|\]', r'\{', r'\|', r'\}', r'\$'
+        r"~",
+        r"-",
+        r"/\\",
+        r"\\/",
+        r"<:",
+        r"<@",
+        r"\(\|",
+        r"\|\)",
+        r"#",
+        r"u#",
+        r"&",
+        r"\(",
+        r"\)",
+        r"\(\)",
+        r",",
+        r"~>",
+        r"->",
+        r"<-",
+        r"<--",
+        r"<==>",
+        r"==>",
+        r"\.",
+        r"\?",
+        r"\?\.",
+        r"\.\[",
+        r"\.\(",
+        r"\.\(\|",
+        r"\.\[\|",
+        r"\{:pattern",
+        r":",
+        r"::",
+        r":=",
+        r";",
+        r";;",
+        r"=",
+        r"%\[",
+        r"!\{",
+        r"\[",
+        r"\[@",
+        r"\[\|",
+        r"\|>",
+        r"\]",
+        r"\|\]",
+        r"\{",
+        r"\|",
+        r"\}",
+        r"\$",
     )
 
-    operators = r'[!$%&*+\./:<=>?@^|~-]'
-    prefix_syms = r'[!?~]'
-    infix_syms = r'[=<>@^|&+\*/$%-]'
-    primitives = ('unit', 'int', 'float', 'bool', 'string', 'char', 'list', 'array')
+    operators = r"[!$%&*+\./:<=>?@^|~-]"
+    prefix_syms = r"[!?~]"
+    infix_syms = r"[=<>@^|&+\*/$%-]"
+    primitives = ("unit", "int", "float", "bool", "string", "char", "list", "array")
 
     tokens = {
-        'escape-sequence': [
+        "escape-sequence": [
             (r'\\[\\"\'ntbr]', String.Escape),
-            (r'\\[0-9]{3}', String.Escape),
-            (r'\\x[0-9a-fA-F]{2}', String.Escape),
+            (r"\\[0-9]{3}", String.Escape),
+            (r"\\x[0-9a-fA-F]{2}", String.Escape),
         ],
-        'root': [
-            (r'\s+', Text),
-            (r'false|true|False|True|\(\)|\[\]', Name.Builtin.Pseudo),
-            (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Namespace, 'dotted'),
-            (r'\b([A-Z][\w\']*)', Name.Class),
-            (r'\(\*(?![)])', Comment, 'comment'),
-            (r'\/\/.+$', Comment),
-            (r'\b({})\b'.format('|'.join(keywords)), Keyword),
-            (r'\b({})\b'.format('|'.join(assume_keywords)), Name.Exception),
-            (r'\b({})\b'.format('|'.join(decl_keywords)), Keyword.Declaration),
-            (r'({})'.format('|'.join(keyopts[::-1])), Operator),
-            (rf'({infix_syms}|{prefix_syms})?{operators}', Operator),
-            (r'\b({})\b'.format('|'.join(primitives)), Keyword.Type),
-
+        "root": [
+            (r"\s+", Text),
+            (r"false|true|False|True|\(\)|\[\]", Name.Builtin.Pseudo),
+            (r"\b([A-Z][\w\']*)(?=\s*\.)", Name.Namespace, "dotted"),
+            (r"\b([A-Z][\w\']*)", Name.Class),
+            (r"\(\*(?![)])", Comment, "comment"),
+            (r"\/\/.+$", Comment),
+            (r"\b({})\b".format("|".join(keywords)), Keyword),
+            (r"\b({})\b".format("|".join(assume_keywords)), Name.Exception),
+            (r"\b({})\b".format("|".join(decl_keywords)), Keyword.Declaration),
+            (r"({})".format("|".join(keyopts[::-1])), Operator),
+            (rf"({infix_syms}|{prefix_syms})?{operators}", Operator),
+            (r"\b({})\b".format("|".join(primitives)), Keyword.Type),
             (r"[^\W\d][\w']*", Name),
-
-            (r'-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)', Number.Float),
-            (r'0[xX][\da-fA-F][\da-fA-F_]*', Number.Hex),
-            (r'0[oO][0-7][0-7_]*', Number.Oct),
-            (r'0[bB][01][01_]*', Number.Bin),
-            (r'\d[\d_]*', Number.Integer),
-
-            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
-             String.Char),
+            (r"-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)", Number.Float),
+            (r"0[xX][\da-fA-F][\da-fA-F_]*", Number.Hex),
+            (r"0[oO][0-7][0-7_]*", Number.Oct),
+            (r"0[bB][01][01_]*", Number.Bin),
+            (r"\d[\d_]*", Number.Integer),
+            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'", String.Char),
             (r"'.'", String.Char),
             (r"'", Keyword),  # a stray quote is another syntax element
             (r"\`([\w\'.]+)\`", Operator.Word),  # for infix applications
             (r"\`", Keyword),  # for quoting
-            (r'"', String.Double, 'string'),
-
-            (r'[~?][a-z][\w\']*:', Name.Variable),
+            (r'"', String.Double, "string"),
+            (r"[~?][a-z][\w\']*:", Name.Variable),
         ],
-        'comment': [
-            (r'[^(*)]+', Comment),
-            (r'\(\*', Comment, '#push'),
-            (r'\*\)', Comment, '#pop'),
-            (r'[(*)]', Comment),
+        "comment": [
+            (r"[^(*)]+", Comment),
+            (r"\(\*", Comment, "#push"),
+            (r"\*\)", Comment, "#pop"),
+            (r"[(*)]", Comment),
         ],
-        'string': [
+        "string": [
             (r'[^\\"]+', String.Double),
-            include('escape-sequence'),
-            (r'\\\n', String.Double),
-            (r'"', String.Double, '#pop'),
+            include("escape-sequence"),
+            (r"\\\n", String.Double),
+            (r'"', String.Double, "#pop"),
         ],
-        'dotted': [
-            (r'\s+', Text),
-            (r'\.', Punctuation),
-            (r'[A-Z][\w\']*(?=\s*\.)', Name.Namespace),
-            (r'[A-Z][\w\']*', Name.Class, '#pop'),
-            (r'[a-z_][\w\']*', Name, '#pop'),
-            default('#pop'),
+        "dotted": [
+            (r"\s+", Text),
+            (r"\.", Punctuation),
+            (r"[A-Z][\w\']*(?=\s*\.)", Name.Namespace),
+            (r"[A-Z][\w\']*", Name.Class, "#pop"),
+            (r"[a-z_][\w\']*", Name, "#pop"),
+            default("#pop"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modeling.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modeling.py
index d681e7f..c575ffd 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modeling.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modeling.py
@@ -1,97 +1,118 @@
 """
-    pygments.lexers.modeling
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.modeling
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for modeling languages.
+Lexers for modeling languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, bygroups, using, default
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
 
 from pygments.lexers.html import HtmlLexer
 from pygments.lexers import _stan_builtins
 
-__all__ = ['ModelicaLexer', 'BugsLexer', 'JagsLexer', 'StanLexer']
+__all__ = ["ModelicaLexer", "BugsLexer", "JagsLexer", "StanLexer"]
 
 
 class ModelicaLexer(RegexLexer):
     """
     For Modelica source code.
     """
-    name = 'Modelica'
-    url = 'http://www.modelica.org/'
-    aliases = ['modelica']
-    filenames = ['*.mo']
-    mimetypes = ['text/x-modelica']
-    version_added = '1.1'
+
+    name = "Modelica"
+    url = "http://www.modelica.org/"
+    aliases = ["modelica"]
+    filenames = ["*.mo"]
+    mimetypes = ["text/x-modelica"]
+    version_added = "1.1"
 
     flags = re.DOTALL | re.MULTILINE
 
     _name = r"(?:'(?:[^\\']|\\.)+'|[a-zA-Z_]\w*)"
 
     tokens = {
-        'whitespace': [
-            (r'[\s\ufeff]+', Text),
-            (r'//[^\n]*\n?', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline)
+        "whitespace": [
+            (r"[\s\ufeff]+", Text),
+            (r"//[^\n]*\n?", Comment.Single),
+            (r"/\*.*?\*/", Comment.Multiline),
         ],
-        'root': [
-            include('whitespace'),
-            (r'"', String.Double, 'string'),
-            (r'[()\[\]{},;]+', Punctuation),
-            (r'\.?[*^/+-]|\.|<>|[<>:=]=?', Operator),
-            (r'\d+(\.?\d*[eE][-+]?\d+|\.\d*)', Number.Float),
-            (r'\d+', Number.Integer),
-            (r'(abs|acos|actualStream|array|asin|assert|AssertionLevel|atan|'
-             r'atan2|backSample|Boolean|cardinality|cat|ceil|change|Clock|'
-             r'Connections|cos|cosh|cross|delay|diagonal|div|edge|exp|'
-             r'ExternalObject|fill|floor|getInstanceName|hold|homotopy|'
-             r'identity|inStream|integer|Integer|interval|inverse|isPresent|'
-             r'linspace|log|log10|matrix|max|min|mod|ndims|noClock|noEvent|'
-             r'ones|outerProduct|pre|previous|product|Real|reinit|rem|rooted|'
-             r'sample|scalar|semiLinear|shiftSample|sign|sin|sinh|size|skew|'
-             r'smooth|spatialDistribution|sqrt|StateSelect|String|subSample|'
-             r'sum|superSample|symmetric|tan|tanh|terminal|terminate|time|'
-             r'transpose|vector|zeros)\b', Name.Builtin),
-            (r'(algorithm|annotation|break|connect|constant|constrainedby|der|'
-             r'discrete|each|else|elseif|elsewhen|encapsulated|enumeration|'
-             r'equation|exit|expandable|extends|external|firstTick|final|flow|for|if|'
-             r'import|impure|in|initial|inner|input|interval|loop|nondiscrete|outer|'
-             r'output|parameter|partial|protected|public|pure|redeclare|'
-             r'replaceable|return|stream|then|when|while)\b',
-             Keyword.Reserved),
-            (r'(and|not|or)\b', Operator.Word),
-            (r'(block|class|connector|end|function|model|operator|package|'
-             r'record|type)\b', Keyword.Reserved, 'class'),
-            (r'(false|true)\b', Keyword.Constant),
-            (r'within\b', Keyword.Reserved, 'package-prefix'),
-            (_name, Name)
+        "root": [
+            include("whitespace"),
+            (r'"', String.Double, "string"),
+            (r"[()\[\]{},;]+", Punctuation),
+            (r"\.?[*^/+-]|\.|<>|[<>:=]=?", Operator),
+            (r"\d+(\.?\d*[eE][-+]?\d+|\.\d*)", Number.Float),
+            (r"\d+", Number.Integer),
+            (
+                r"(abs|acos|actualStream|array|asin|assert|AssertionLevel|atan|"
+                r"atan2|backSample|Boolean|cardinality|cat|ceil|change|Clock|"
+                r"Connections|cos|cosh|cross|delay|diagonal|div|edge|exp|"
+                r"ExternalObject|fill|floor|getInstanceName|hold|homotopy|"
+                r"identity|inStream|integer|Integer|interval|inverse|isPresent|"
+                r"linspace|log|log10|matrix|max|min|mod|ndims|noClock|noEvent|"
+                r"ones|outerProduct|pre|previous|product|Real|reinit|rem|rooted|"
+                r"sample|scalar|semiLinear|shiftSample|sign|sin|sinh|size|skew|"
+                r"smooth|spatialDistribution|sqrt|StateSelect|String|subSample|"
+                r"sum|superSample|symmetric|tan|tanh|terminal|terminate|time|"
+                r"transpose|vector|zeros)\b",
+                Name.Builtin,
+            ),
+            (
+                r"(algorithm|annotation|break|connect|constant|constrainedby|der|"
+                r"discrete|each|else|elseif|elsewhen|encapsulated|enumeration|"
+                r"equation|exit|expandable|extends|external|firstTick|final|flow|for|if|"
+                r"import|impure|in|initial|inner|input|interval|loop|nondiscrete|outer|"
+                r"output|parameter|partial|protected|public|pure|redeclare|"
+                r"replaceable|return|stream|then|when|while)\b",
+                Keyword.Reserved,
+            ),
+            (r"(and|not|or)\b", Operator.Word),
+            (
+                r"(block|class|connector|end|function|model|operator|package|"
+                r"record|type)\b",
+                Keyword.Reserved,
+                "class",
+            ),
+            (r"(false|true)\b", Keyword.Constant),
+            (r"within\b", Keyword.Reserved, "package-prefix"),
+            (_name, Name),
         ],
-        'class': [
-            include('whitespace'),
-            (r'(function|record)\b', Keyword.Reserved),
-            (r'(if|for|when|while)\b', Keyword.Reserved, '#pop'),
-            (_name, Name.Class, '#pop'),
-            default('#pop')
+        "class": [
+            include("whitespace"),
+            (r"(function|record)\b", Keyword.Reserved),
+            (r"(if|for|when|while)\b", Keyword.Reserved, "#pop"),
+            (_name, Name.Class, "#pop"),
+            default("#pop"),
         ],
-        'package-prefix': [
-            include('whitespace'),
-            (_name, Name.Namespace, '#pop'),
-            default('#pop')
+        "package-prefix": [
+            include("whitespace"),
+            (_name, Name.Namespace, "#pop"),
+            default("#pop"),
         ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (r'\\[\'"?\\abfnrtv]', String.Escape),
-            (r'(?i)<\s*html\s*>([^\\"]|\\.)+?(<\s*/\s*html\s*>|(?="))',
-             using(HtmlLexer)),
-            (r'<|\\?[^"\\<]+', String.Double)
-        ]
+            (
+                r'(?i)<\s*html\s*>([^\\"]|\\.)+?(<\s*/\s*html\s*>|(?="))',
+                using(HtmlLexer),
+            ),
+            (r'<|\\?[^"\\<]+', String.Double),
+        ],
     }
 
 
@@ -101,27 +122,79 @@ class BugsLexer(RegexLexer):
     models.
     """
 
-    name = 'BUGS'
-    aliases = ['bugs', 'winbugs', 'openbugs']
-    filenames = ['*.bug']
-    url = 'https://www.mrc-bsu.cam.ac.uk/software/bugs/openbugs'
-    version_added = '1.6'
+    name = "BUGS"
+    aliases = ["bugs", "winbugs", "openbugs"]
+    filenames = ["*.bug"]
+    url = "https://www.mrc-bsu.cam.ac.uk/software/bugs/openbugs"
+    version_added = "1.6"
 
     _FUNCTIONS = (
         # Scalar functions
-        'abs', 'arccos', 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctanh',
-        'cloglog', 'cos', 'cosh', 'cumulative', 'cut', 'density', 'deviance',
-        'equals', 'expr', 'gammap', 'ilogit', 'icloglog', 'integral', 'log',
-        'logfact', 'loggam', 'logit', 'max', 'min', 'phi', 'post.p.value',
-        'pow', 'prior.p.value', 'probit', 'replicate.post', 'replicate.prior',
-        'round', 'sin', 'sinh', 'solution', 'sqrt', 'step', 'tan', 'tanh',
-        'trunc',
+        "abs",
+        "arccos",
+        "arccosh",
+        "arcsin",
+        "arcsinh",
+        "arctan",
+        "arctanh",
+        "cloglog",
+        "cos",
+        "cosh",
+        "cumulative",
+        "cut",
+        "density",
+        "deviance",
+        "equals",
+        "expr",
+        "gammap",
+        "ilogit",
+        "icloglog",
+        "integral",
+        "log",
+        "logfact",
+        "loggam",
+        "logit",
+        "max",
+        "min",
+        "phi",
+        "post.p.value",
+        "pow",
+        "prior.p.value",
+        "probit",
+        "replicate.post",
+        "replicate.prior",
+        "round",
+        "sin",
+        "sinh",
+        "solution",
+        "sqrt",
+        "step",
+        "tan",
+        "tanh",
+        "trunc",
         # Vector functions
-        'inprod', 'interp.lin', 'inverse', 'logdet', 'mean', 'eigen.vals',
-        'ode', 'prod', 'p.valueM', 'rank', 'ranked', 'replicate.postM',
-        'sd', 'sort', 'sum',
+        "inprod",
+        "interp.lin",
+        "inverse",
+        "logdet",
+        "mean",
+        "eigen.vals",
+        "ode",
+        "prod",
+        "p.valueM",
+        "rank",
+        "ranked",
+        "replicate.postM",
+        "sd",
+        "sort",
+        "sum",
         # Special
-        'D', 'I', 'F', 'T', 'C')
+        "D",
+        "I",
+        "F",
+        "T",
+        "C",
+    )
     """ OpenBUGS built-in functions
 
     From http://www.openbugs.info/Manuals/ModelSpecification.html#ContentsAII
@@ -135,12 +208,37 @@ class BugsLexer(RegexLexer):
 
     """
 
-    _DISTRIBUTIONS = ('dbern', 'dbin', 'dcat', 'dnegbin', 'dpois',
-                      'dhyper', 'dbeta', 'dchisqr', 'ddexp', 'dexp',
-                      'dflat', 'dgamma', 'dgev', 'df', 'dggamma', 'dgpar',
-                      'dloglik', 'dlnorm', 'dlogis', 'dnorm', 'dpar',
-                      'dt', 'dunif', 'dweib', 'dmulti', 'ddirch', 'dmnorm',
-                      'dmt', 'dwish')
+    _DISTRIBUTIONS = (
+        "dbern",
+        "dbin",
+        "dcat",
+        "dnegbin",
+        "dpois",
+        "dhyper",
+        "dbeta",
+        "dchisqr",
+        "ddexp",
+        "dexp",
+        "dflat",
+        "dgamma",
+        "dgev",
+        "df",
+        "dggamma",
+        "dgpar",
+        "dloglik",
+        "dlnorm",
+        "dlogis",
+        "dnorm",
+        "dpar",
+        "dt",
+        "dunif",
+        "dweib",
+        "dmulti",
+        "ddirch",
+        "dmnorm",
+        "dmt",
+        "dwish",
+    )
     """ OpenBUGS built-in distributions
 
     Functions from
@@ -148,39 +246,40 @@ class BugsLexer(RegexLexer):
     """
 
     tokens = {
-        'whitespace': [
+        "whitespace": [
             (r"\s+", Text),
         ],
-        'comments': [
+        "comments": [
             # Comments
-            (r'#.*$', Comment.Single),
+            (r"#.*$", Comment.Single),
         ],
-        'root': [
+        "root": [
             # Comments
-            include('comments'),
-            include('whitespace'),
+            include("comments"),
+            include("whitespace"),
             # Block start
-            (r'(model)(\s+)(\{)',
-             bygroups(Keyword.Namespace, Text, Punctuation)),
+            (r"(model)(\s+)(\{)", bygroups(Keyword.Namespace, Text, Punctuation)),
             # Reserved Words
-            (r'(for|in)(?![\w.])', Keyword.Reserved),
+            (r"(for|in)(?![\w.])", Keyword.Reserved),
             # Built-in Functions
-            (r'({})(?=\s*\()'.format(r'|'.join(_FUNCTIONS + _DISTRIBUTIONS)),
-             Name.Builtin),
+            (
+                r"({})(?=\s*\()".format(r"|".join(_FUNCTIONS + _DISTRIBUTIONS)),
+                Name.Builtin,
+            ),
             # Regular variable names
-            (r'[A-Za-z][\w.]*', Name),
+            (r"[A-Za-z][\w.]*", Name),
             # Number Literals
-            (r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?', Number),
+            (r"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?", Number),
             # Punctuation
-            (r'\[|\]|\(|\)|:|,|;', Punctuation),
+            (r"\[|\]|\(|\)|:|,|;", Punctuation),
             # Assignment operators
             # SLexer makes these tokens Operators.
-            (r'<-|~', Operator),
+            (r"<-|~", Operator),
             # Infix and prefix operators
-            (r'\+|-|\*|/', Operator),
+            (r"\+|-|\*|/", Operator),
             # Block
-            (r'[{}]', Punctuation),
-        ]
+            (r"[{}]", Punctuation),
+        ],
     }
 
     def analyse_text(text):
@@ -195,82 +294,158 @@ class JagsLexer(RegexLexer):
     Pygments Lexer for JAGS.
     """
 
-    name = 'JAGS'
-    aliases = ['jags']
-    filenames = ['*.jag', '*.bug']
-    url = 'https://mcmc-jags.sourceforge.io'
-    version_added = '1.6'
+    name = "JAGS"
+    aliases = ["jags"]
+    filenames = ["*.jag", "*.bug"]
+    url = "https://mcmc-jags.sourceforge.io"
+    version_added = "1.6"
 
     # JAGS
     _FUNCTIONS = (
-        'abs', 'arccos', 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctanh',
-        'cos', 'cosh', 'cloglog',
-        'equals', 'exp', 'icloglog', 'ifelse', 'ilogit', 'log', 'logfact',
-        'loggam', 'logit', 'phi', 'pow', 'probit', 'round', 'sin', 'sinh',
-        'sqrt', 'step', 'tan', 'tanh', 'trunc', 'inprod', 'interp.lin',
-        'logdet', 'max', 'mean', 'min', 'prod', 'sum', 'sd', 'inverse',
-        'rank', 'sort', 't', 'acos', 'acosh', 'asin', 'asinh', 'atan',
+        "abs",
+        "arccos",
+        "arccosh",
+        "arcsin",
+        "arcsinh",
+        "arctan",
+        "arctanh",
+        "cos",
+        "cosh",
+        "cloglog",
+        "equals",
+        "exp",
+        "icloglog",
+        "ifelse",
+        "ilogit",
+        "log",
+        "logfact",
+        "loggam",
+        "logit",
+        "phi",
+        "pow",
+        "probit",
+        "round",
+        "sin",
+        "sinh",
+        "sqrt",
+        "step",
+        "tan",
+        "tanh",
+        "trunc",
+        "inprod",
+        "interp.lin",
+        "logdet",
+        "max",
+        "mean",
+        "min",
+        "prod",
+        "sum",
+        "sd",
+        "inverse",
+        "rank",
+        "sort",
+        "t",
+        "acos",
+        "acosh",
+        "asin",
+        "asinh",
+        "atan",
         # Truncation/Censoring (should I include)
-        'T', 'I')
+        "T",
+        "I",
+    )
     # Distributions with density, probability and quartile functions
-    _DISTRIBUTIONS = tuple(f'[dpq]{x}' for x in
-                           ('bern', 'beta', 'dchiqsqr', 'ddexp', 'dexp',
-                            'df', 'gamma', 'gen.gamma', 'logis', 'lnorm',
-                            'negbin', 'nchisqr', 'norm', 'par', 'pois', 'weib'))
+    _DISTRIBUTIONS = tuple(
+        f"[dpq]{x}"
+        for x in (
+            "bern",
+            "beta",
+            "dchiqsqr",
+            "ddexp",
+            "dexp",
+            "df",
+            "gamma",
+            "gen.gamma",
+            "logis",
+            "lnorm",
+            "negbin",
+            "nchisqr",
+            "norm",
+            "par",
+            "pois",
+            "weib",
+        )
+    )
     # Other distributions without density and probability
     _OTHER_DISTRIBUTIONS = (
-        'dt', 'dunif', 'dbetabin', 'dbern', 'dbin', 'dcat', 'dhyper',
-        'ddirch', 'dmnorm', 'dwish', 'dmt', 'dmulti', 'dbinom', 'dchisq',
-        'dnbinom', 'dweibull', 'ddirich')
+        "dt",
+        "dunif",
+        "dbetabin",
+        "dbern",
+        "dbin",
+        "dcat",
+        "dhyper",
+        "ddirch",
+        "dmnorm",
+        "dwish",
+        "dmt",
+        "dmulti",
+        "dbinom",
+        "dchisq",
+        "dnbinom",
+        "dweibull",
+        "ddirich",
+    )
 
     tokens = {
-        'whitespace': [
+        "whitespace": [
             (r"\s+", Text),
         ],
-        'names': [
+        "names": [
             # Regular variable names
-            (r'[a-zA-Z][\w.]*\b', Name),
+            (r"[a-zA-Z][\w.]*\b", Name),
         ],
-        'comments': [
+        "comments": [
             # do not use stateful comments
-            (r'(?s)/\*.*?\*/', Comment.Multiline),
+            (r"(?s)/\*.*?\*/", Comment.Multiline),
             # Comments
-            (r'#.*$', Comment.Single),
+            (r"#.*$", Comment.Single),
         ],
-        'root': [
+        "root": [
             # Comments
-            include('comments'),
-            include('whitespace'),
+            include("comments"),
+            include("whitespace"),
             # Block start
-            (r'(model|data)(\s+)(\{)',
-             bygroups(Keyword.Namespace, Text, Punctuation)),
-            (r'var(?![\w.])', Keyword.Declaration),
+            (r"(model|data)(\s+)(\{)", bygroups(Keyword.Namespace, Text, Punctuation)),
+            (r"var(?![\w.])", Keyword.Declaration),
             # Reserved Words
-            (r'(for|in)(?![\w.])', Keyword.Reserved),
+            (r"(for|in)(?![\w.])", Keyword.Reserved),
             # Builtins
             # Need to use lookahead because . is a valid char
-            (r'({})(?=\s*\()'.format(r'|'.join(_FUNCTIONS
-                                          + _DISTRIBUTIONS
-                                          + _OTHER_DISTRIBUTIONS)),
-             Name.Builtin),
+            (
+                r"({})(?=\s*\()".format(
+                    r"|".join(_FUNCTIONS + _DISTRIBUTIONS + _OTHER_DISTRIBUTIONS)
+                ),
+                Name.Builtin,
+            ),
             # Names
-            include('names'),
+            include("names"),
             # Number Literals
-            (r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?', Number),
-            (r'\[|\]|\(|\)|:|,|;', Punctuation),
+            (r"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?", Number),
+            (r"\[|\]|\(|\)|:|,|;", Punctuation),
             # Assignment operators
-            (r'<-|~', Operator),
+            (r"<-|~", Operator),
             # # JAGS includes many more than OpenBUGS
-            (r'\+|-|\*|\/|\|\|[&]{2}|[<>=]=?|\^|%.*?%', Operator),
-            (r'[{}]', Punctuation),
-        ]
+            (r"\+|-|\*|\/|\|\|[&]{2}|[<>=]=?|\^|%.*?%", Operator),
+            (r"[{}]", Punctuation),
+        ],
     }
 
     def analyse_text(text):
-        if re.search(r'^\s*model\s*\{', text, re.M):
-            if re.search(r'^\s*data\s*\{', text, re.M):
+        if re.search(r"^\s*model\s*\{", text, re.M):
+            if re.search(r"^\s*data\s*\{", text, re.M):
                 return 0.9
-            elif re.search(r'^\s*var', text, re.M):
+            elif re.search(r"^\s*var", text, re.M):
                 return 0.9
             else:
                 return 0.3
@@ -286,81 +461,99 @@ class StanLexer(RegexLexer):
     `pdf `__.
     """
 
-    name = 'Stan'
-    aliases = ['stan']
-    filenames = ['*.stan']
-    url = 'https://mc-stan.org'
-    version_added = '1.6'
+    name = "Stan"
+    aliases = ["stan"]
+    filenames = ["*.stan"]
+    url = "https://mc-stan.org"
+    version_added = "1.6"
 
     tokens = {
-        'whitespace': [
+        "whitespace": [
             (r"\s+", Text),
         ],
-        'comments': [
-            (r'(?s)/\*.*?\*/', Comment.Multiline),
+        "comments": [
+            (r"(?s)/\*.*?\*/", Comment.Multiline),
             # Comments
-            (r'(//|#).*$', Comment.Single),
+            (r"(//|#).*$", Comment.Single),
         ],
-        'root': [
+        "root": [
             (r'"[^"]*"', String),
             # Comments
-            include('comments'),
+            include("comments"),
             # block start
-            include('whitespace'),
+            include("whitespace"),
             # Block start
-            (r'({})(\s*)(\{{)'.format(r'|'.join(('functions', 'data', r'transformed\s+?data',
-                        'parameters', r'transformed\s+parameters',
-                        'model', r'generated\s+quantities'))),
-             bygroups(Keyword.Namespace, Text, Punctuation)),
+            (
+                r"({})(\s*)(\{{)".format(
+                    r"|".join(
+                        (
+                            "functions",
+                            "data",
+                            r"transformed\s+?data",
+                            "parameters",
+                            r"transformed\s+parameters",
+                            "model",
+                            r"generated\s+quantities",
+                        )
+                    )
+                ),
+                bygroups(Keyword.Namespace, Text, Punctuation),
+            ),
             # target keyword
-            (r'target\s*\+=', Keyword),
+            (r"target\s*\+=", Keyword),
             # Reserved Words
-            (r'({})\b'.format(r'|'.join(_stan_builtins.KEYWORDS)), Keyword),
+            (r"({})\b".format(r"|".join(_stan_builtins.KEYWORDS)), Keyword),
             # Truncation
-            (r'T(?=\s*\[)', Keyword),
+            (r"T(?=\s*\[)", Keyword),
             # Data types
-            (r'({})\b'.format(r'|'.join(_stan_builtins.TYPES)), Keyword.Type),
-             # < should be punctuation, but elsewhere I can't tell if it is in
-             # a range constraint
-            (r'(<)(\s*)(upper|lower|offset|multiplier)(\s*)(=)',
-             bygroups(Operator, Whitespace, Keyword, Whitespace, Punctuation)),
-            (r'(,)(\s*)(upper)(\s*)(=)',
-             bygroups(Punctuation, Whitespace, Keyword, Whitespace, Punctuation)),
+            (r"({})\b".format(r"|".join(_stan_builtins.TYPES)), Keyword.Type),
+            # < should be punctuation, but elsewhere I can't tell if it is in
+            # a range constraint
+            (
+                r"(<)(\s*)(upper|lower|offset|multiplier)(\s*)(=)",
+                bygroups(Operator, Whitespace, Keyword, Whitespace, Punctuation),
+            ),
+            (
+                r"(,)(\s*)(upper)(\s*)(=)",
+                bygroups(Punctuation, Whitespace, Keyword, Whitespace, Punctuation),
+            ),
             # Punctuation
             (r"[;,\[\]()]", Punctuation),
             # Builtin
-            (r'({})(?=\s*\()'.format('|'.join(_stan_builtins.FUNCTIONS)), Name.Builtin),
-            (r'(~)(\s*)({})(?=\s*\()'.format('|'.join(_stan_builtins.DISTRIBUTIONS)),
-                bygroups(Operator, Whitespace, Name.Builtin)),
+            (r"({})(?=\s*\()".format("|".join(_stan_builtins.FUNCTIONS)), Name.Builtin),
+            (
+                r"(~)(\s*)({})(?=\s*\()".format("|".join(_stan_builtins.DISTRIBUTIONS)),
+                bygroups(Operator, Whitespace, Name.Builtin),
+            ),
             # Special names ending in __, like lp__
-            (r'[A-Za-z]\w*__\b', Name.Builtin.Pseudo),
-            (r'({})\b'.format(r'|'.join(_stan_builtins.RESERVED)), Keyword.Reserved),
+            (r"[A-Za-z]\w*__\b", Name.Builtin.Pseudo),
+            (r"({})\b".format(r"|".join(_stan_builtins.RESERVED)), Keyword.Reserved),
             # user-defined functions
-            (r'[A-Za-z]\w*(?=\s*\()]', Name.Function),
+            (r"[A-Za-z]\w*(?=\s*\()]", Name.Function),
             # Imaginary Literals
-            (r'[0-9]+(\.[0-9]*)?([eE][+-]?[0-9]+)?i', Number.Float),
-            (r'\.[0-9]+([eE][+-]?[0-9]+)?i', Number.Float),
-            (r'[0-9]+i', Number.Float),
+            (r"[0-9]+(\.[0-9]*)?([eE][+-]?[0-9]+)?i", Number.Float),
+            (r"\.[0-9]+([eE][+-]?[0-9]+)?i", Number.Float),
+            (r"[0-9]+i", Number.Float),
             # Real Literals
-            (r'[0-9]+(\.[0-9]*)?([eE][+-]?[0-9]+)?', Number.Float),
-            (r'\.[0-9]+([eE][+-]?[0-9]+)?', Number.Float),
+            (r"[0-9]+(\.[0-9]*)?([eE][+-]?[0-9]+)?", Number.Float),
+            (r"\.[0-9]+([eE][+-]?[0-9]+)?", Number.Float),
             # Integer Literals
-            (r'[0-9]+', Number.Integer),
+            (r"[0-9]+", Number.Integer),
             # Regular variable names
-            (r'[A-Za-z]\w*\b', Name),
+            (r"[A-Za-z]\w*\b", Name),
             # Assignment operators
-            (r'<-|(?:\+|-|\.?/|\.?\*|=)?=|~', Operator),
+            (r"<-|(?:\+|-|\.?/|\.?\*|=)?=|~", Operator),
             # Infix, prefix and postfix operators (and = )
             (r"\+|-|\.?\*|\.?/|\\|'|\.?\^|!=?|<=?|>=?|\|\||&&|%|\?|:|%/%|!", Operator),
             # Block delimiters
-            (r'[{}]', Punctuation),
+            (r"[{}]", Punctuation),
             # Distribution |
-            (r'\|', Punctuation)
-        ]
+            (r"\|", Punctuation),
+        ],
     }
 
     def analyse_text(text):
-        if re.search(r'^\s*parameters\s*\{', text, re.M):
+        if re.search(r"^\s*parameters\s*\{", text, re.M):
             return 1.0
         else:
             return 0.0
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modula2.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modula2.py
index 713f472..34da1c3 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modula2.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/modula2.py
@@ -1,21 +1,30 @@
 """
-    pygments.lexers.modula2
-    ~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.modula2
+~~~~~~~~~~~~~~~~~~~~~~~
 
-    Multi-Dialect Lexer for Modula-2.
+Multi-Dialect Lexer for Modula-2.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include
 from pygments.util import get_bool_opt, get_list_opt
-from pygments.token import Text, Comment, Operator, Keyword, Name, \
-    String, Number, Punctuation, Error
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Error,
+)
 
-__all__ = ['Modula2Lexer']
+__all__ = ["Modula2Lexer"]
 
 
 # Multi-Dialect Modula-2 Lexer
@@ -156,353 +165,658 @@ class Modula2Lexer(RegexLexer):
     .. versionchanged:: 2.1
        Added multi-dialect support.
     """
-    name = 'Modula-2'
-    url = 'http://www.modula2.org/'
-    aliases = ['modula2', 'm2']
-    filenames = ['*.def', '*.mod']
-    mimetypes = ['text/x-modula2']
-    version_added = '1.3'
+
+    name = "Modula-2"
+    url = "http://www.modula2.org/"
+    aliases = ["modula2", "m2"]
+    filenames = ["*.def", "*.mod"]
+    mimetypes = ["text/x-modula2"]
+    version_added = "1.3"
 
     flags = re.MULTILINE | re.DOTALL
 
     tokens = {
-        'whitespace': [
-            (r'\n+', Text),  # blank lines
-            (r'\s+', Text),  # whitespace
+        "whitespace": [
+            (r"\n+", Text),  # blank lines
+            (r"\s+", Text),  # whitespace
         ],
-        'dialecttags': [
+        "dialecttags": [
             # PIM Dialect Tag
-            (r'\(\*!m2pim\*\)', Comment.Special),
+            (r"\(\*!m2pim\*\)", Comment.Special),
             # ISO Dialect Tag
-            (r'\(\*!m2iso\*\)', Comment.Special),
+            (r"\(\*!m2iso\*\)", Comment.Special),
             # M2R10 Dialect Tag
-            (r'\(\*!m2r10\*\)', Comment.Special),
+            (r"\(\*!m2r10\*\)", Comment.Special),
             # ObjM2 Dialect Tag
-            (r'\(\*!objm2\*\)', Comment.Special),
+            (r"\(\*!objm2\*\)", Comment.Special),
             # Aglet Extensions Dialect Tag
-            (r'\(\*!m2iso\+aglet\*\)', Comment.Special),
+            (r"\(\*!m2iso\+aglet\*\)", Comment.Special),
             # GNU Extensions Dialect Tag
-            (r'\(\*!m2pim\+gm2\*\)', Comment.Special),
+            (r"\(\*!m2pim\+gm2\*\)", Comment.Special),
             # p1 Extensions Dialect Tag
-            (r'\(\*!m2iso\+p1\*\)', Comment.Special),
+            (r"\(\*!m2iso\+p1\*\)", Comment.Special),
             # XDS Extensions Dialect Tag
-            (r'\(\*!m2iso\+xds\*\)', Comment.Special),
+            (r"\(\*!m2iso\+xds\*\)", Comment.Special),
         ],
-        'identifiers': [
-            (r'([a-zA-Z_$][\w$]*)', Name),
+        "identifiers": [
+            (r"([a-zA-Z_$][\w$]*)", Name),
         ],
-        'prefixed_number_literals': [
+        "prefixed_number_literals": [
             #
             # Base-2, whole number
-            (r'0b[01]+(\'[01]+)*', Number.Bin),
+            (r"0b[01]+(\'[01]+)*", Number.Bin),
             #
             # Base-16, whole number
-            (r'0[ux][0-9A-F]+(\'[0-9A-F]+)*', Number.Hex),
+            (r"0[ux][0-9A-F]+(\'[0-9A-F]+)*", Number.Hex),
         ],
-        'plain_number_literals': [
+        "plain_number_literals": [
             #
             # Base-10, real number with exponent
-            (r'[0-9]+(\'[0-9]+)*'  # integral part
-             r'\.[0-9]+(\'[0-9]+)*'  # fractional part
-             r'[eE][+-]?[0-9]+(\'[0-9]+)*',  # exponent
-             Number.Float),
+            (
+                r"[0-9]+(\'[0-9]+)*"  # integral part
+                r"\.[0-9]+(\'[0-9]+)*"  # fractional part
+                r"[eE][+-]?[0-9]+(\'[0-9]+)*",  # exponent
+                Number.Float,
+            ),
             #
             # Base-10, real number without exponent
-            (r'[0-9]+(\'[0-9]+)*'  # integral part
-             r'\.[0-9]+(\'[0-9]+)*',  # fractional part
-             Number.Float),
+            (
+                r"[0-9]+(\'[0-9]+)*"  # integral part
+                r"\.[0-9]+(\'[0-9]+)*",  # fractional part
+                Number.Float,
+            ),
             #
             # Base-10, whole number
-            (r'[0-9]+(\'[0-9]+)*', Number.Integer),
+            (r"[0-9]+(\'[0-9]+)*", Number.Integer),
         ],
-        'suffixed_number_literals': [
+        "suffixed_number_literals": [
             #
             # Base-8, whole number
-            (r'[0-7]+B', Number.Oct),
+            (r"[0-7]+B", Number.Oct),
             #
             # Base-8, character code
-            (r'[0-7]+C', Number.Oct),
+            (r"[0-7]+C", Number.Oct),
             #
             # Base-16, number
-            (r'[0-9A-F]+H', Number.Hex),
+            (r"[0-9A-F]+H", Number.Hex),
         ],
-        'string_literals': [
+        "string_literals": [
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
         ],
-        'digraph_operators': [
+        "digraph_operators": [
             # Dot Product Operator
-            (r'\*\.', Operator),
+            (r"\*\.", Operator),
             # Array Concatenation Operator
-            (r'\+>', Operator),  # M2R10 + ObjM2
+            (r"\+>", Operator),  # M2R10 + ObjM2
             # Inequality Operator
-            (r'<>', Operator),  # ISO + PIM
+            (r"<>", Operator),  # ISO + PIM
             # Less-Or-Equal, Subset
-            (r'<=', Operator),
+            (r"<=", Operator),
             # Greater-Or-Equal, Superset
-            (r'>=', Operator),
+            (r">=", Operator),
             # Identity Operator
-            (r'==', Operator),  # M2R10 + ObjM2
+            (r"==", Operator),  # M2R10 + ObjM2
             # Type Conversion Operator
-            (r'::', Operator),  # M2R10 + ObjM2
+            (r"::", Operator),  # M2R10 + ObjM2
             # Assignment Symbol
-            (r':=', Operator),
+            (r":=", Operator),
             # Postfix Increment Mutator
-            (r'\+\+', Operator),  # M2R10 + ObjM2
+            (r"\+\+", Operator),  # M2R10 + ObjM2
             # Postfix Decrement Mutator
-            (r'--', Operator),  # M2R10 + ObjM2
+            (r"--", Operator),  # M2R10 + ObjM2
         ],
-        'unigraph_operators': [
+        "unigraph_operators": [
             # Arithmetic Operators
-            (r'[+-]', Operator),
-            (r'[*/]', Operator),
+            (r"[+-]", Operator),
+            (r"[*/]", Operator),
             # ISO 80000-2 compliant Set Difference Operator
-            (r'\\', Operator),  # M2R10 + ObjM2
+            (r"\\", Operator),  # M2R10 + ObjM2
             # Relational Operators
-            (r'[=#<>]', Operator),
+            (r"[=#<>]", Operator),
             # Dereferencing Operator
-            (r'\^', Operator),
+            (r"\^", Operator),
             # Dereferencing Operator Synonym
-            (r'@', Operator),  # ISO
+            (r"@", Operator),  # ISO
             # Logical AND Operator Synonym
-            (r'&', Operator),  # PIM + ISO
+            (r"&", Operator),  # PIM + ISO
             # Logical NOT Operator Synonym
-            (r'~', Operator),  # PIM + ISO
+            (r"~", Operator),  # PIM + ISO
             # Smalltalk Message Prefix
-            (r'`', Operator),  # ObjM2
+            (r"`", Operator),  # ObjM2
         ],
-        'digraph_punctuation': [
+        "digraph_punctuation": [
             # Range Constructor
-            (r'\.\.', Punctuation),
+            (r"\.\.", Punctuation),
             # Opening Chevron Bracket
-            (r'<<', Punctuation),  # M2R10 + ISO
+            (r"<<", Punctuation),  # M2R10 + ISO
             # Closing Chevron Bracket
-            (r'>>', Punctuation),  # M2R10 + ISO
+            (r">>", Punctuation),  # M2R10 + ISO
             # Blueprint Punctuation
-            (r'->', Punctuation),  # M2R10 + ISO
+            (r"->", Punctuation),  # M2R10 + ISO
             # Distinguish |# and # in M2 R10
-            (r'\|#', Punctuation),
+            (r"\|#", Punctuation),
             # Distinguish ## and # in M2 R10
-            (r'##', Punctuation),
+            (r"##", Punctuation),
             # Distinguish |* and * in M2 R10
-            (r'\|\*', Punctuation),
+            (r"\|\*", Punctuation),
         ],
-        'unigraph_punctuation': [
+        "unigraph_punctuation": [
             # Common Punctuation
-            (r'[()\[\]{},.:;|]', Punctuation),
+            (r"[()\[\]{},.:;|]", Punctuation),
             # Case Label Separator Synonym
-            (r'!', Punctuation),  # ISO
+            (r"!", Punctuation),  # ISO
             # Blueprint Punctuation
-            (r'\?', Punctuation),  # M2R10 + ObjM2
+            (r"\?", Punctuation),  # M2R10 + ObjM2
         ],
-        'comments': [
+        "comments": [
             # Single Line Comment
-            (r'^//.*?\n', Comment.Single),  # M2R10 + ObjM2
+            (r"^//.*?\n", Comment.Single),  # M2R10 + ObjM2
             # Block Comment
-            (r'\(\*([^$].*?)\*\)', Comment.Multiline),
+            (r"\(\*([^$].*?)\*\)", Comment.Multiline),
             # Template Block Comment
-            (r'/\*(.*?)\*/', Comment.Multiline),  # M2R10 + ObjM2
+            (r"/\*(.*?)\*/", Comment.Multiline),  # M2R10 + ObjM2
         ],
-        'pragmas': [
+        "pragmas": [
             # ISO Style Pragmas
-            (r'<\*.*?\*>', Comment.Preproc),  # ISO, M2R10 + ObjM2
+            (r"<\*.*?\*>", Comment.Preproc),  # ISO, M2R10 + ObjM2
             # Pascal Style Pragmas
-            (r'\(\*\$.*?\*\)', Comment.Preproc),  # PIM
+            (r"\(\*\$.*?\*\)", Comment.Preproc),  # PIM
+        ],
+        "root": [
+            include("whitespace"),
+            include("dialecttags"),
+            include("pragmas"),
+            include("comments"),
+            include("identifiers"),
+            include("suffixed_number_literals"),  # PIM + ISO
+            include("prefixed_number_literals"),  # M2R10 + ObjM2
+            include("plain_number_literals"),
+            include("string_literals"),
+            include("digraph_punctuation"),
+            include("digraph_operators"),
+            include("unigraph_punctuation"),
+            include("unigraph_operators"),
         ],
-        'root': [
-            include('whitespace'),
-            include('dialecttags'),
-            include('pragmas'),
-            include('comments'),
-            include('identifiers'),
-            include('suffixed_number_literals'),  # PIM + ISO
-            include('prefixed_number_literals'),  # M2R10 + ObjM2
-            include('plain_number_literals'),
-            include('string_literals'),
-            include('digraph_punctuation'),
-            include('digraph_operators'),
-            include('unigraph_punctuation'),
-            include('unigraph_operators'),
-        ]
     }
 
-#  C o m m o n   D a t a s e t s
+    #  C o m m o n   D a t a s e t s
 
     # Common Reserved Words Dataset
     common_reserved_words = (
         # 37 common reserved words
-        'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', 'DIV',
-        'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'FOR', 'FROM', 'IF',
-        'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD', 'MODULE', 'NOT',
-        'OF', 'OR', 'POINTER', 'PROCEDURE', 'RECORD', 'REPEAT', 'RETURN',
-        'SET', 'THEN', 'TO', 'TYPE', 'UNTIL', 'VAR', 'WHILE',
+        "AND",
+        "ARRAY",
+        "BEGIN",
+        "BY",
+        "CASE",
+        "CONST",
+        "DEFINITION",
+        "DIV",
+        "DO",
+        "ELSE",
+        "ELSIF",
+        "END",
+        "EXIT",
+        "FOR",
+        "FROM",
+        "IF",
+        "IMPLEMENTATION",
+        "IMPORT",
+        "IN",
+        "LOOP",
+        "MOD",
+        "MODULE",
+        "NOT",
+        "OF",
+        "OR",
+        "POINTER",
+        "PROCEDURE",
+        "RECORD",
+        "REPEAT",
+        "RETURN",
+        "SET",
+        "THEN",
+        "TO",
+        "TYPE",
+        "UNTIL",
+        "VAR",
+        "WHILE",
     )
 
     # Common Builtins Dataset
     common_builtins = (
         # 16 common builtins
-        'ABS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'CHR', 'FALSE', 'INTEGER',
-        'LONGINT', 'LONGREAL', 'MAX', 'MIN', 'NIL', 'ODD', 'ORD', 'REAL',
-        'TRUE',
+        "ABS",
+        "BOOLEAN",
+        "CARDINAL",
+        "CHAR",
+        "CHR",
+        "FALSE",
+        "INTEGER",
+        "LONGINT",
+        "LONGREAL",
+        "MAX",
+        "MIN",
+        "NIL",
+        "ODD",
+        "ORD",
+        "REAL",
+        "TRUE",
     )
 
     # Common Pseudo-Module Builtins Dataset
     common_pseudo_builtins = (
         # 4 common pseudo builtins
-        'ADDRESS', 'BYTE', 'WORD', 'ADR'
+        "ADDRESS",
+        "BYTE",
+        "WORD",
+        "ADR",
     )
 
-#  P I M   M o d u l a - 2   D a t a s e t s
+    #  P I M   M o d u l a - 2   D a t a s e t s
 
     # Lexemes to Mark as Error Tokens for PIM Modula-2
     pim_lexemes_to_reject = (
-        '!', '`', '@', '$', '%', '?', '\\', '==', '++', '--', '::', '*.',
-        '+>', '->', '<<', '>>', '|#', '##',
+        "!",
+        "`",
+        "@",
+        "$",
+        "%",
+        "?",
+        "\\",
+        "==",
+        "++",
+        "--",
+        "::",
+        "*.",
+        "+>",
+        "->",
+        "<<",
+        ">>",
+        "|#",
+        "##",
     )
 
     # PIM Modula-2 Additional Reserved Words Dataset
     pim_additional_reserved_words = (
         # 3 additional reserved words
-        'EXPORT', 'QUALIFIED', 'WITH',
+        "EXPORT",
+        "QUALIFIED",
+        "WITH",
     )
 
     # PIM Modula-2 Additional Builtins Dataset
     pim_additional_builtins = (
         # 16 additional builtins
-        'BITSET', 'CAP', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT', 'HALT', 'HIGH',
-        'INC', 'INCL', 'NEW', 'NIL', 'PROC', 'SIZE', 'TRUNC', 'VAL',
+        "BITSET",
+        "CAP",
+        "DEC",
+        "DISPOSE",
+        "EXCL",
+        "FLOAT",
+        "HALT",
+        "HIGH",
+        "INC",
+        "INCL",
+        "NEW",
+        "NIL",
+        "PROC",
+        "SIZE",
+        "TRUNC",
+        "VAL",
     )
 
     # PIM Modula-2 Additional Pseudo-Module Builtins Dataset
     pim_additional_pseudo_builtins = (
         # 5 additional pseudo builtins
-        'SYSTEM', 'PROCESS', 'TSIZE', 'NEWPROCESS', 'TRANSFER',
+        "SYSTEM",
+        "PROCESS",
+        "TSIZE",
+        "NEWPROCESS",
+        "TRANSFER",
     )
 
-#  I S O   M o d u l a - 2   D a t a s e t s
+    #  I S O   M o d u l a - 2   D a t a s e t s
 
     # Lexemes to Mark as Error Tokens for ISO Modula-2
     iso_lexemes_to_reject = (
-        '`', '$', '%', '?', '\\', '==', '++', '--', '::', '*.', '+>', '->',
-        '<<', '>>', '|#', '##',
+        "`",
+        "$",
+        "%",
+        "?",
+        "\\",
+        "==",
+        "++",
+        "--",
+        "::",
+        "*.",
+        "+>",
+        "->",
+        "<<",
+        ">>",
+        "|#",
+        "##",
     )
 
     # ISO Modula-2 Additional Reserved Words Dataset
     iso_additional_reserved_words = (
         # 9 additional reserved words (ISO 10514-1)
-        'EXCEPT', 'EXPORT', 'FINALLY', 'FORWARD', 'PACKEDSET', 'QUALIFIED',
-        'REM', 'RETRY', 'WITH',
+        "EXCEPT",
+        "EXPORT",
+        "FINALLY",
+        "FORWARD",
+        "PACKEDSET",
+        "QUALIFIED",
+        "REM",
+        "RETRY",
+        "WITH",
         # 10 additional reserved words (ISO 10514-2 & ISO 10514-3)
-        'ABSTRACT', 'AS', 'CLASS', 'GUARD', 'INHERIT', 'OVERRIDE', 'READONLY',
-        'REVEAL', 'TRACED', 'UNSAFEGUARDED',
+        "ABSTRACT",
+        "AS",
+        "CLASS",
+        "GUARD",
+        "INHERIT",
+        "OVERRIDE",
+        "READONLY",
+        "REVEAL",
+        "TRACED",
+        "UNSAFEGUARDED",
     )
 
     # ISO Modula-2 Additional Builtins Dataset
     iso_additional_builtins = (
         # 26 additional builtins (ISO 10514-1)
-        'BITSET', 'CAP', 'CMPLX', 'COMPLEX', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT',
-        'HALT', 'HIGH', 'IM', 'INC', 'INCL', 'INT', 'INTERRUPTIBLE',  'LENGTH',
-        'LFLOAT', 'LONGCOMPLEX', 'NEW', 'PROC', 'PROTECTION', 'RE', 'SIZE',
-        'TRUNC', 'UNINTERRUBTIBLE', 'VAL',
+        "BITSET",
+        "CAP",
+        "CMPLX",
+        "COMPLEX",
+        "DEC",
+        "DISPOSE",
+        "EXCL",
+        "FLOAT",
+        "HALT",
+        "HIGH",
+        "IM",
+        "INC",
+        "INCL",
+        "INT",
+        "INTERRUPTIBLE",
+        "LENGTH",
+        "LFLOAT",
+        "LONGCOMPLEX",
+        "NEW",
+        "PROC",
+        "PROTECTION",
+        "RE",
+        "SIZE",
+        "TRUNC",
+        "UNINTERRUBTIBLE",
+        "VAL",
         # 5 additional builtins (ISO 10514-2 & ISO 10514-3)
-        'CREATE', 'DESTROY', 'EMPTY', 'ISMEMBER', 'SELF',
+        "CREATE",
+        "DESTROY",
+        "EMPTY",
+        "ISMEMBER",
+        "SELF",
     )
 
     # ISO Modula-2 Additional Pseudo-Module Builtins Dataset
     iso_additional_pseudo_builtins = (
         # 14 additional builtins (SYSTEM)
-        'SYSTEM', 'BITSPERLOC', 'LOCSPERBYTE', 'LOCSPERWORD', 'LOC',
-        'ADDADR', 'SUBADR', 'DIFADR', 'MAKEADR', 'ADR',
-        'ROTATE', 'SHIFT', 'CAST', 'TSIZE',
+        "SYSTEM",
+        "BITSPERLOC",
+        "LOCSPERBYTE",
+        "LOCSPERWORD",
+        "LOC",
+        "ADDADR",
+        "SUBADR",
+        "DIFADR",
+        "MAKEADR",
+        "ADR",
+        "ROTATE",
+        "SHIFT",
+        "CAST",
+        "TSIZE",
         # 13 additional builtins (COROUTINES)
-        'COROUTINES', 'ATTACH', 'COROUTINE', 'CURRENT', 'DETACH', 'HANDLER',
-        'INTERRUPTSOURCE', 'IOTRANSFER', 'IsATTACHED', 'LISTEN',
-        'NEWCOROUTINE', 'PROT', 'TRANSFER',
+        "COROUTINES",
+        "ATTACH",
+        "COROUTINE",
+        "CURRENT",
+        "DETACH",
+        "HANDLER",
+        "INTERRUPTSOURCE",
+        "IOTRANSFER",
+        "IsATTACHED",
+        "LISTEN",
+        "NEWCOROUTINE",
+        "PROT",
+        "TRANSFER",
         # 9 additional builtins (EXCEPTIONS)
-        'EXCEPTIONS', 'AllocateSource', 'CurrentNumber', 'ExceptionNumber',
-        'ExceptionSource', 'GetMessage', 'IsCurrentSource',
-        'IsExceptionalExecution', 'RAISE',
+        "EXCEPTIONS",
+        "AllocateSource",
+        "CurrentNumber",
+        "ExceptionNumber",
+        "ExceptionSource",
+        "GetMessage",
+        "IsCurrentSource",
+        "IsExceptionalExecution",
+        "RAISE",
         # 3 additional builtins (TERMINATION)
-        'TERMINATION', 'IsTerminating', 'HasHalted',
+        "TERMINATION",
+        "IsTerminating",
+        "HasHalted",
         # 4 additional builtins (M2EXCEPTION)
-        'M2EXCEPTION', 'M2Exceptions', 'M2Exception', 'IsM2Exception',
-        'indexException', 'rangeException', 'caseSelectException',
-        'invalidLocation', 'functionException', 'wholeValueException',
-        'wholeDivException', 'realValueException', 'realDivException',
-        'complexValueException', 'complexDivException', 'protException',
-        'sysException', 'coException', 'exException',
+        "M2EXCEPTION",
+        "M2Exceptions",
+        "M2Exception",
+        "IsM2Exception",
+        "indexException",
+        "rangeException",
+        "caseSelectException",
+        "invalidLocation",
+        "functionException",
+        "wholeValueException",
+        "wholeDivException",
+        "realValueException",
+        "realDivException",
+        "complexValueException",
+        "complexDivException",
+        "protException",
+        "sysException",
+        "coException",
+        "exException",
     )
 
-#  M o d u l a - 2   R 1 0   D a t a s e t s
+    #  M o d u l a - 2   R 1 0   D a t a s e t s
 
     # Lexemes to Mark as Error Tokens for Modula-2 R10
     m2r10_lexemes_to_reject = (
-        '!', '`', '@', '$', '%', '&', '<>',
+        "!",
+        "`",
+        "@",
+        "$",
+        "%",
+        "&",
+        "<>",
     )
 
     # Modula-2 R10 reserved words in addition to the common set
     m2r10_additional_reserved_words = (
         # 12 additional reserved words
-        'ALIAS', 'ARGLIST', 'BLUEPRINT', 'COPY', 'GENLIB', 'INDETERMINATE',
-        'NEW', 'NONE', 'OPAQUE', 'REFERENTIAL', 'RELEASE', 'RETAIN',
+        "ALIAS",
+        "ARGLIST",
+        "BLUEPRINT",
+        "COPY",
+        "GENLIB",
+        "INDETERMINATE",
+        "NEW",
+        "NONE",
+        "OPAQUE",
+        "REFERENTIAL",
+        "RELEASE",
+        "RETAIN",
         # 2 additional reserved words with symbolic assembly option
-        'ASM', 'REG',
+        "ASM",
+        "REG",
     )
 
     # Modula-2 R10 builtins in addition to the common set
     m2r10_additional_builtins = (
         # 26 additional builtins
-        'CARDINAL', 'COUNT', 'EMPTY', 'EXISTS', 'INSERT', 'LENGTH', 'LONGCARD',
-        'OCTET', 'PTR', 'PRED', 'READ', 'READNEW', 'REMOVE', 'RETRIEVE', 'SORT',
-        'STORE', 'SUBSET', 'SUCC', 'TLIMIT', 'TMAX', 'TMIN', 'TRUE', 'TSIZE',
-        'UNICHAR', 'WRITE', 'WRITEF',
+        "CARDINAL",
+        "COUNT",
+        "EMPTY",
+        "EXISTS",
+        "INSERT",
+        "LENGTH",
+        "LONGCARD",
+        "OCTET",
+        "PTR",
+        "PRED",
+        "READ",
+        "READNEW",
+        "REMOVE",
+        "RETRIEVE",
+        "SORT",
+        "STORE",
+        "SUBSET",
+        "SUCC",
+        "TLIMIT",
+        "TMAX",
+        "TMIN",
+        "TRUE",
+        "TSIZE",
+        "UNICHAR",
+        "WRITE",
+        "WRITEF",
     )
 
     # Modula-2 R10 Additional Pseudo-Module Builtins Dataset
     m2r10_additional_pseudo_builtins = (
         # 13 additional builtins (TPROPERTIES)
-        'TPROPERTIES', 'PROPERTY', 'LITERAL', 'TPROPERTY', 'TLITERAL',
-        'TBUILTIN', 'TDYN', 'TREFC', 'TNIL', 'TBASE', 'TPRECISION',
-        'TMAXEXP', 'TMINEXP',
+        "TPROPERTIES",
+        "PROPERTY",
+        "LITERAL",
+        "TPROPERTY",
+        "TLITERAL",
+        "TBUILTIN",
+        "TDYN",
+        "TREFC",
+        "TNIL",
+        "TBASE",
+        "TPRECISION",
+        "TMAXEXP",
+        "TMINEXP",
         # 4 additional builtins (CONVERSION)
-        'CONVERSION', 'TSXFSIZE', 'SXF', 'VAL',
+        "CONVERSION",
+        "TSXFSIZE",
+        "SXF",
+        "VAL",
         # 35 additional builtins (UNSAFE)
-        'UNSAFE', 'CAST', 'INTRINSIC', 'AVAIL', 'ADD', 'SUB', 'ADDC', 'SUBC',
-        'FETCHADD', 'FETCHSUB', 'SHL', 'SHR', 'ASHR', 'ROTL', 'ROTR', 'ROTLC',
-        'ROTRC', 'BWNOT', 'BWAND', 'BWOR', 'BWXOR', 'BWNAND', 'BWNOR',
-        'SETBIT', 'TESTBIT', 'LSBIT', 'MSBIT', 'CSBITS', 'BAIL', 'HALT',
-        'TODO', 'FFI', 'ADDR', 'VARGLIST', 'VARGC',
+        "UNSAFE",
+        "CAST",
+        "INTRINSIC",
+        "AVAIL",
+        "ADD",
+        "SUB",
+        "ADDC",
+        "SUBC",
+        "FETCHADD",
+        "FETCHSUB",
+        "SHL",
+        "SHR",
+        "ASHR",
+        "ROTL",
+        "ROTR",
+        "ROTLC",
+        "ROTRC",
+        "BWNOT",
+        "BWAND",
+        "BWOR",
+        "BWXOR",
+        "BWNAND",
+        "BWNOR",
+        "SETBIT",
+        "TESTBIT",
+        "LSBIT",
+        "MSBIT",
+        "CSBITS",
+        "BAIL",
+        "HALT",
+        "TODO",
+        "FFI",
+        "ADDR",
+        "VARGLIST",
+        "VARGC",
         # 11 additional builtins (ATOMIC)
-        'ATOMIC', 'INTRINSIC', 'AVAIL', 'SWAP', 'CAS', 'INC', 'DEC', 'BWAND',
-        'BWNAND', 'BWOR', 'BWXOR',
+        "ATOMIC",
+        "INTRINSIC",
+        "AVAIL",
+        "SWAP",
+        "CAS",
+        "INC",
+        "DEC",
+        "BWAND",
+        "BWNAND",
+        "BWOR",
+        "BWXOR",
         # 7 additional builtins (COMPILER)
-        'COMPILER', 'DEBUG', 'MODNAME', 'PROCNAME', 'LINENUM', 'DEFAULT',
-        'HASH',
+        "COMPILER",
+        "DEBUG",
+        "MODNAME",
+        "PROCNAME",
+        "LINENUM",
+        "DEFAULT",
+        "HASH",
         # 5 additional builtins (ASSEMBLER)
-        'ASSEMBLER', 'REGISTER', 'SETREG', 'GETREG', 'CODE',
+        "ASSEMBLER",
+        "REGISTER",
+        "SETREG",
+        "GETREG",
+        "CODE",
     )
 
-#  O b j e c t i v e   M o d u l a - 2   D a t a s e t s
+    #  O b j e c t i v e   M o d u l a - 2   D a t a s e t s
 
     # Lexemes to Mark as Error Tokens for Objective Modula-2
     objm2_lexemes_to_reject = (
-        '!', '$', '%', '&', '<>',
+        "!",
+        "$",
+        "%",
+        "&",
+        "<>",
     )
 
     # Objective Modula-2 Extensions
     # reserved words in addition to Modula-2 R10
     objm2_additional_reserved_words = (
         # 16 additional reserved words
-        'BYCOPY', 'BYREF', 'CLASS', 'CONTINUE', 'CRITICAL', 'INOUT', 'METHOD',
-        'ON', 'OPTIONAL', 'OUT', 'PRIVATE', 'PROTECTED', 'PROTOCOL', 'PUBLIC',
-        'SUPER', 'TRY',
+        "BYCOPY",
+        "BYREF",
+        "CLASS",
+        "CONTINUE",
+        "CRITICAL",
+        "INOUT",
+        "METHOD",
+        "ON",
+        "OPTIONAL",
+        "OUT",
+        "PRIVATE",
+        "PROTECTED",
+        "PROTOCOL",
+        "PUBLIC",
+        "SUPER",
+        "TRY",
     )
 
     # Objective Modula-2 Extensions
     # builtins in addition to Modula-2 R10
     objm2_additional_builtins = (
         # 3 additional builtins
-        'OBJECT', 'NO', 'YES',
+        "OBJECT",
+        "NO",
+        "YES",
     )
 
     # Objective Modula-2 Extensions
@@ -511,7 +825,7 @@ class Modula2Lexer(RegexLexer):
         # None
     )
 
-#  A g l e t   M o d u l a - 2   D a t a s e t s
+    #  A g l e t   M o d u l a - 2   D a t a s e t s
 
     # Aglet Extensions
     # reserved words in addition to ISO Modula-2
@@ -523,8 +837,15 @@ class Modula2Lexer(RegexLexer):
     # builtins in addition to ISO Modula-2
     aglet_additional_builtins = (
         # 9 additional builtins
-        'BITSET8', 'BITSET16', 'BITSET32', 'CARDINAL8', 'CARDINAL16',
-        'CARDINAL32', 'INTEGER8', 'INTEGER16', 'INTEGER32',
+        "BITSET8",
+        "BITSET16",
+        "BITSET32",
+        "CARDINAL8",
+        "CARDINAL16",
+        "CARDINAL32",
+        "INTEGER8",
+        "INTEGER16",
+        "INTEGER32",
     )
 
     # Aglet Modula-2 Extensions
@@ -533,24 +854,49 @@ class Modula2Lexer(RegexLexer):
         # None
     )
 
-#  G N U   M o d u l a - 2   D a t a s e t s
+    #  G N U   M o d u l a - 2   D a t a s e t s
 
     # GNU Extensions
     # reserved words in addition to PIM Modula-2
     gm2_additional_reserved_words = (
         # 10 additional reserved words
-        'ASM', '__ATTRIBUTE__', '__BUILTIN__', '__COLUMN__', '__DATE__',
-        '__FILE__', '__FUNCTION__', '__LINE__', '__MODULE__', 'VOLATILE',
+        "ASM",
+        "__ATTRIBUTE__",
+        "__BUILTIN__",
+        "__COLUMN__",
+        "__DATE__",
+        "__FILE__",
+        "__FUNCTION__",
+        "__LINE__",
+        "__MODULE__",
+        "VOLATILE",
     )
 
     # GNU Extensions
     # builtins in addition to PIM Modula-2
     gm2_additional_builtins = (
         # 21 additional builtins
-        'BITSET8', 'BITSET16', 'BITSET32', 'CARDINAL8', 'CARDINAL16',
-        'CARDINAL32', 'CARDINAL64', 'COMPLEX32', 'COMPLEX64', 'COMPLEX96',
-        'COMPLEX128', 'INTEGER8', 'INTEGER16', 'INTEGER32', 'INTEGER64',
-        'REAL8', 'REAL16', 'REAL32', 'REAL96', 'REAL128', 'THROW',
+        "BITSET8",
+        "BITSET16",
+        "BITSET32",
+        "CARDINAL8",
+        "CARDINAL16",
+        "CARDINAL32",
+        "CARDINAL64",
+        "COMPLEX32",
+        "COMPLEX64",
+        "COMPLEX96",
+        "COMPLEX128",
+        "INTEGER8",
+        "INTEGER16",
+        "INTEGER32",
+        "INTEGER64",
+        "REAL8",
+        "REAL16",
+        "REAL32",
+        "REAL96",
+        "REAL128",
+        "THROW",
     )
 
     # GNU Extensions
@@ -559,7 +905,7 @@ class Modula2Lexer(RegexLexer):
         # None
     )
 
-#  p 1   M o d u l a - 2   D a t a s e t s
+    #  p 1   M o d u l a - 2   D a t a s e t s
 
     # p1 Extensions
     # reserved words in addition to ISO Modula-2
@@ -577,76 +923,160 @@ class Modula2Lexer(RegexLexer):
     # pseudo-module builtins in addition to ISO Modula-2
     p1_additional_pseudo_builtins = (
         # 1 additional builtin
-        'BCD',
+        "BCD",
     )
 
-#  X D S   M o d u l a - 2   D a t a s e t s
+    #  X D S   M o d u l a - 2   D a t a s e t s
 
     # XDS Extensions
     # reserved words in addition to ISO Modula-2
     xds_additional_reserved_words = (
         # 1 additional reserved word
-        'SEQ',
+        "SEQ",
     )
 
     # XDS Extensions
     # builtins in addition to ISO Modula-2
     xds_additional_builtins = (
         # 9 additional builtins
-        'ASH', 'ASSERT', 'DIFFADR_TYPE', 'ENTIER', 'INDEX', 'LEN',
-        'LONGCARD', 'SHORTCARD', 'SHORTINT',
+        "ASH",
+        "ASSERT",
+        "DIFFADR_TYPE",
+        "ENTIER",
+        "INDEX",
+        "LEN",
+        "LONGCARD",
+        "SHORTCARD",
+        "SHORTINT",
     )
 
     # XDS Modula-2 Extensions
     # pseudo-module builtins in addition to ISO Modula-2
     xds_additional_pseudo_builtins = (
         # 22 additional builtins (SYSTEM)
-        'PROCESS', 'NEWPROCESS', 'BOOL8', 'BOOL16', 'BOOL32', 'CARD8',
-        'CARD16', 'CARD32', 'INT8', 'INT16', 'INT32', 'REF', 'MOVE',
-        'FILL', 'GET', 'PUT', 'CC', 'int', 'unsigned', 'size_t', 'void'
+        "PROCESS",
+        "NEWPROCESS",
+        "BOOL8",
+        "BOOL16",
+        "BOOL32",
+        "CARD8",
+        "CARD16",
+        "CARD32",
+        "INT8",
+        "INT16",
+        "INT32",
+        "REF",
+        "MOVE",
+        "FILL",
+        "GET",
+        "PUT",
+        "CC",
+        "int",
+        "unsigned",
+        "size_t",
+        "void"
         # 3 additional builtins (COMPILER)
-        'COMPILER', 'OPTION', 'EQUATION'
+        "COMPILER",
+        "OPTION",
+        "EQUATION",
     )
 
-#  P I M   S t a n d a r d   L i b r a r y   D a t a s e t s
+    #  P I M   S t a n d a r d   L i b r a r y   D a t a s e t s
 
     # PIM Modula-2 Standard Library Modules Dataset
     pim_stdlib_module_identifiers = (
-        'Terminal', 'FileSystem', 'InOut', 'RealInOut', 'MathLib0', 'Storage',
+        "Terminal",
+        "FileSystem",
+        "InOut",
+        "RealInOut",
+        "MathLib0",
+        "Storage",
     )
 
     # PIM Modula-2 Standard Library Types Dataset
     pim_stdlib_type_identifiers = (
-        'Flag', 'FlagSet', 'Response', 'Command', 'Lock', 'Permission',
-        'MediumType', 'File', 'FileProc', 'DirectoryProc', 'FileCommand',
-        'DirectoryCommand',
+        "Flag",
+        "FlagSet",
+        "Response",
+        "Command",
+        "Lock",
+        "Permission",
+        "MediumType",
+        "File",
+        "FileProc",
+        "DirectoryProc",
+        "FileCommand",
+        "DirectoryCommand",
     )
 
     # PIM Modula-2 Standard Library Procedures Dataset
     pim_stdlib_proc_identifiers = (
-        'Read', 'BusyRead', 'ReadAgain', 'Write', 'WriteString', 'WriteLn',
-        'Create', 'Lookup', 'Close', 'Delete', 'Rename', 'SetRead', 'SetWrite',
-        'SetModify', 'SetOpen', 'Doio', 'SetPos', 'GetPos', 'Length', 'Reset',
-        'Again', 'ReadWord', 'WriteWord', 'ReadChar', 'WriteChar',
-        'CreateMedium', 'DeleteMedium', 'AssignName', 'DeassignName',
-        'ReadMedium', 'LookupMedium', 'OpenInput', 'OpenOutput', 'CloseInput',
-        'CloseOutput', 'ReadString', 'ReadInt', 'ReadCard', 'ReadWrd',
-        'WriteInt', 'WriteCard', 'WriteOct', 'WriteHex', 'WriteWrd',
-        'ReadReal', 'WriteReal', 'WriteFixPt', 'WriteRealOct', 'sqrt', 'exp',
-        'ln', 'sin', 'cos', 'arctan', 'entier', 'ALLOCATE', 'DEALLOCATE',
+        "Read",
+        "BusyRead",
+        "ReadAgain",
+        "Write",
+        "WriteString",
+        "WriteLn",
+        "Create",
+        "Lookup",
+        "Close",
+        "Delete",
+        "Rename",
+        "SetRead",
+        "SetWrite",
+        "SetModify",
+        "SetOpen",
+        "Doio",
+        "SetPos",
+        "GetPos",
+        "Length",
+        "Reset",
+        "Again",
+        "ReadWord",
+        "WriteWord",
+        "ReadChar",
+        "WriteChar",
+        "CreateMedium",
+        "DeleteMedium",
+        "AssignName",
+        "DeassignName",
+        "ReadMedium",
+        "LookupMedium",
+        "OpenInput",
+        "OpenOutput",
+        "CloseInput",
+        "CloseOutput",
+        "ReadString",
+        "ReadInt",
+        "ReadCard",
+        "ReadWrd",
+        "WriteInt",
+        "WriteCard",
+        "WriteOct",
+        "WriteHex",
+        "WriteWrd",
+        "ReadReal",
+        "WriteReal",
+        "WriteFixPt",
+        "WriteRealOct",
+        "sqrt",
+        "exp",
+        "ln",
+        "sin",
+        "cos",
+        "arctan",
+        "entier",
+        "ALLOCATE",
+        "DEALLOCATE",
     )
 
     # PIM Modula-2 Standard Library Variables Dataset
-    pim_stdlib_var_identifiers = (
-        'Done', 'termCH', 'in', 'out'
-    )
+    pim_stdlib_var_identifiers = ("Done", "termCH", "in", "out")
 
     # PIM Modula-2 Standard Library Constants Dataset
-    pim_stdlib_const_identifiers = (
-        'EOL',
-    )
+    pim_stdlib_const_identifiers = ("EOL",)
 
-#  I S O   S t a n d a r d   L i b r a r y   D a t a s e t s
+    #  I S O   S t a n d a r d   L i b r a r y   D a t a s e t s
 
     # ISO Modula-2 Standard Library Modules Dataset
     iso_stdlib_module_identifiers = (
@@ -673,172 +1103,239 @@ class Modula2Lexer(RegexLexer):
         # TO DO
     )
 
-#  M 2   R 1 0   S t a n d a r d   L i b r a r y   D a t a s e t s
+    #  M 2   R 1 0   S t a n d a r d   L i b r a r y   D a t a s e t s
 
     # Modula-2 R10 Standard Library ADTs Dataset
     m2r10_stdlib_adt_identifiers = (
-        'BCD', 'LONGBCD', 'BITSET', 'SHORTBITSET', 'LONGBITSET',
-        'LONGLONGBITSET', 'COMPLEX', 'LONGCOMPLEX', 'SHORTCARD', 'LONGLONGCARD',
-        'SHORTINT', 'LONGLONGINT', 'POSINT', 'SHORTPOSINT', 'LONGPOSINT',
-        'LONGLONGPOSINT', 'BITSET8', 'BITSET16', 'BITSET32', 'BITSET64',
-        'BITSET128', 'BS8', 'BS16', 'BS32', 'BS64', 'BS128', 'CARDINAL8',
-        'CARDINAL16', 'CARDINAL32', 'CARDINAL64', 'CARDINAL128', 'CARD8',
-        'CARD16', 'CARD32', 'CARD64', 'CARD128', 'INTEGER8', 'INTEGER16',
-        'INTEGER32', 'INTEGER64', 'INTEGER128', 'INT8', 'INT16', 'INT32',
-        'INT64', 'INT128', 'STRING', 'UNISTRING',
+        "BCD",
+        "LONGBCD",
+        "BITSET",
+        "SHORTBITSET",
+        "LONGBITSET",
+        "LONGLONGBITSET",
+        "COMPLEX",
+        "LONGCOMPLEX",
+        "SHORTCARD",
+        "LONGLONGCARD",
+        "SHORTINT",
+        "LONGLONGINT",
+        "POSINT",
+        "SHORTPOSINT",
+        "LONGPOSINT",
+        "LONGLONGPOSINT",
+        "BITSET8",
+        "BITSET16",
+        "BITSET32",
+        "BITSET64",
+        "BITSET128",
+        "BS8",
+        "BS16",
+        "BS32",
+        "BS64",
+        "BS128",
+        "CARDINAL8",
+        "CARDINAL16",
+        "CARDINAL32",
+        "CARDINAL64",
+        "CARDINAL128",
+        "CARD8",
+        "CARD16",
+        "CARD32",
+        "CARD64",
+        "CARD128",
+        "INTEGER8",
+        "INTEGER16",
+        "INTEGER32",
+        "INTEGER64",
+        "INTEGER128",
+        "INT8",
+        "INT16",
+        "INT32",
+        "INT64",
+        "INT128",
+        "STRING",
+        "UNISTRING",
     )
 
     # Modula-2 R10 Standard Library Blueprints Dataset
     m2r10_stdlib_blueprint_identifiers = (
-        'ProtoRoot', 'ProtoComputational', 'ProtoNumeric', 'ProtoScalar',
-        'ProtoNonScalar', 'ProtoCardinal', 'ProtoInteger', 'ProtoReal',
-        'ProtoComplex', 'ProtoVector', 'ProtoTuple', 'ProtoCompArray',
-        'ProtoCollection', 'ProtoStaticArray', 'ProtoStaticSet',
-        'ProtoStaticString', 'ProtoArray', 'ProtoString', 'ProtoSet',
-        'ProtoMultiSet', 'ProtoDictionary', 'ProtoMultiDict', 'ProtoExtension',
-        'ProtoIO', 'ProtoCardMath', 'ProtoIntMath', 'ProtoRealMath',
+        "ProtoRoot",
+        "ProtoComputational",
+        "ProtoNumeric",
+        "ProtoScalar",
+        "ProtoNonScalar",
+        "ProtoCardinal",
+        "ProtoInteger",
+        "ProtoReal",
+        "ProtoComplex",
+        "ProtoVector",
+        "ProtoTuple",
+        "ProtoCompArray",
+        "ProtoCollection",
+        "ProtoStaticArray",
+        "ProtoStaticSet",
+        "ProtoStaticString",
+        "ProtoArray",
+        "ProtoString",
+        "ProtoSet",
+        "ProtoMultiSet",
+        "ProtoDictionary",
+        "ProtoMultiDict",
+        "ProtoExtension",
+        "ProtoIO",
+        "ProtoCardMath",
+        "ProtoIntMath",
+        "ProtoRealMath",
     )
 
     # Modula-2 R10 Standard Library Modules Dataset
     m2r10_stdlib_module_identifiers = (
-        'ASCII', 'BooleanIO', 'CharIO', 'UnicharIO', 'OctetIO',
-        'CardinalIO', 'LongCardIO', 'IntegerIO', 'LongIntIO', 'RealIO',
-        'LongRealIO', 'BCDIO', 'LongBCDIO', 'CardMath', 'LongCardMath',
-        'IntMath', 'LongIntMath', 'RealMath', 'LongRealMath', 'BCDMath',
-        'LongBCDMath', 'FileIO', 'FileSystem', 'Storage', 'IOSupport',
+        "ASCII",
+        "BooleanIO",
+        "CharIO",
+        "UnicharIO",
+        "OctetIO",
+        "CardinalIO",
+        "LongCardIO",
+        "IntegerIO",
+        "LongIntIO",
+        "RealIO",
+        "LongRealIO",
+        "BCDIO",
+        "LongBCDIO",
+        "CardMath",
+        "LongCardMath",
+        "IntMath",
+        "LongIntMath",
+        "RealMath",
+        "LongRealMath",
+        "BCDMath",
+        "LongBCDMath",
+        "FileIO",
+        "FileSystem",
+        "Storage",
+        "IOSupport",
     )
 
     # Modula-2 R10 Standard Library Types Dataset
     m2r10_stdlib_type_identifiers = (
-        'File', 'Status',
+        "File",
+        "Status",
         # TO BE COMPLETED
     )
 
     # Modula-2 R10 Standard Library Procedures Dataset
     m2r10_stdlib_proc_identifiers = (
-        'ALLOCATE', 'DEALLOCATE', 'SIZE',
+        "ALLOCATE",
+        "DEALLOCATE",
+        "SIZE",
         # TO BE COMPLETED
     )
 
     # Modula-2 R10 Standard Library Variables Dataset
     m2r10_stdlib_var_identifiers = (
-        'stdIn', 'stdOut', 'stdErr',
+        "stdIn",
+        "stdOut",
+        "stdErr",
     )
 
     # Modula-2 R10 Standard Library Constants Dataset
     m2r10_stdlib_const_identifiers = (
-        'pi', 'tau',
+        "pi",
+        "tau",
     )
 
-#  D i a l e c t s
+    #  D i a l e c t s
 
     # Dialect modes
     dialects = (
-        'unknown',
-        'm2pim', 'm2iso', 'm2r10', 'objm2',
-        'm2iso+aglet', 'm2pim+gm2', 'm2iso+p1', 'm2iso+xds',
+        "unknown",
+        "m2pim",
+        "m2iso",
+        "m2r10",
+        "objm2",
+        "m2iso+aglet",
+        "m2pim+gm2",
+        "m2iso+p1",
+        "m2iso+xds",
     )
 
-#   D a t a b a s e s
+    #   D a t a b a s e s
 
     # Lexemes to Mark as Errors Database
     lexemes_to_reject_db = {
         # Lexemes to reject for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Lexemes to reject for PIM Modula-2
-        'm2pim': (
-            pim_lexemes_to_reject,
-        ),
+        "m2pim": (pim_lexemes_to_reject,),
         # Lexemes to reject for ISO Modula-2
-        'm2iso': (
-            iso_lexemes_to_reject,
-        ),
+        "m2iso": (iso_lexemes_to_reject,),
         # Lexemes to reject for Modula-2 R10
-        'm2r10': (
-            m2r10_lexemes_to_reject,
-        ),
+        "m2r10": (m2r10_lexemes_to_reject,),
         # Lexemes to reject for Objective Modula-2
-        'objm2': (
-            objm2_lexemes_to_reject,
-        ),
+        "objm2": (objm2_lexemes_to_reject,),
         # Lexemes to reject for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_lexemes_to_reject,
-        ),
+        "m2iso+aglet": (iso_lexemes_to_reject,),
         # Lexemes to reject for GNU Modula-2
-        'm2pim+gm2': (
-            pim_lexemes_to_reject,
-        ),
+        "m2pim+gm2": (pim_lexemes_to_reject,),
         # Lexemes to reject for p1 Modula-2
-        'm2iso+p1': (
-            iso_lexemes_to_reject,
-        ),
+        "m2iso+p1": (iso_lexemes_to_reject,),
         # Lexemes to reject for XDS Modula-2
-        'm2iso+xds': (
-            iso_lexemes_to_reject,
-        ),
+        "m2iso+xds": (iso_lexemes_to_reject,),
     }
 
     # Reserved Words Database
     reserved_words_db = {
         # Reserved words for unknown dialect
-        'unknown': (
+        "unknown": (
             common_reserved_words,
             pim_additional_reserved_words,
             iso_additional_reserved_words,
             m2r10_additional_reserved_words,
         ),
-
         # Reserved words for PIM Modula-2
-        'm2pim': (
+        "m2pim": (
             common_reserved_words,
             pim_additional_reserved_words,
         ),
-
         # Reserved words for Modula-2 R10
-        'm2iso': (
+        "m2iso": (
             common_reserved_words,
             iso_additional_reserved_words,
         ),
-
         # Reserved words for ISO Modula-2
-        'm2r10': (
+        "m2r10": (
             common_reserved_words,
             m2r10_additional_reserved_words,
         ),
-
         # Reserved words for Objective Modula-2
-        'objm2': (
+        "objm2": (
             common_reserved_words,
             m2r10_additional_reserved_words,
             objm2_additional_reserved_words,
         ),
-
         # Reserved words for Aglet Modula-2 Extensions
-        'm2iso+aglet': (
+        "m2iso+aglet": (
             common_reserved_words,
             iso_additional_reserved_words,
             aglet_additional_reserved_words,
         ),
-
         # Reserved words for GNU Modula-2 Extensions
-        'm2pim+gm2': (
+        "m2pim+gm2": (
             common_reserved_words,
             pim_additional_reserved_words,
             gm2_additional_reserved_words,
         ),
-
         # Reserved words for p1 Modula-2 Extensions
-        'm2iso+p1': (
+        "m2iso+p1": (
             common_reserved_words,
             iso_additional_reserved_words,
             p1_additional_reserved_words,
         ),
-
         # Reserved words for XDS Modula-2 Extensions
-        'm2iso+xds': (
+        "m2iso+xds": (
             common_reserved_words,
             iso_additional_reserved_words,
             xds_additional_reserved_words,
@@ -848,61 +1345,53 @@ class Modula2Lexer(RegexLexer):
     # Builtins Database
     builtins_db = {
         # Builtins for unknown dialect
-        'unknown': (
+        "unknown": (
             common_builtins,
             pim_additional_builtins,
             iso_additional_builtins,
             m2r10_additional_builtins,
         ),
-
         # Builtins for PIM Modula-2
-        'm2pim': (
+        "m2pim": (
             common_builtins,
             pim_additional_builtins,
         ),
-
         # Builtins for ISO Modula-2
-        'm2iso': (
+        "m2iso": (
             common_builtins,
             iso_additional_builtins,
         ),
-
         # Builtins for ISO Modula-2
-        'm2r10': (
+        "m2r10": (
             common_builtins,
             m2r10_additional_builtins,
         ),
-
         # Builtins for Objective Modula-2
-        'objm2': (
+        "objm2": (
             common_builtins,
             m2r10_additional_builtins,
             objm2_additional_builtins,
         ),
-
         # Builtins for Aglet Modula-2 Extensions
-        'm2iso+aglet': (
+        "m2iso+aglet": (
             common_builtins,
             iso_additional_builtins,
             aglet_additional_builtins,
         ),
-
         # Builtins for GNU Modula-2 Extensions
-        'm2pim+gm2': (
+        "m2pim+gm2": (
             common_builtins,
             pim_additional_builtins,
             gm2_additional_builtins,
         ),
-
         # Builtins for p1 Modula-2 Extensions
-        'm2iso+p1': (
+        "m2iso+p1": (
             common_builtins,
             iso_additional_builtins,
             p1_additional_builtins,
         ),
-
         # Builtins for XDS Modula-2 Extensions
-        'm2iso+xds': (
+        "m2iso+xds": (
             common_builtins,
             iso_additional_builtins,
             xds_additional_builtins,
@@ -912,61 +1401,53 @@ class Modula2Lexer(RegexLexer):
     # Pseudo-Module Builtins Database
     pseudo_builtins_db = {
         # Builtins for unknown dialect
-        'unknown': (
+        "unknown": (
             common_pseudo_builtins,
             pim_additional_pseudo_builtins,
             iso_additional_pseudo_builtins,
             m2r10_additional_pseudo_builtins,
         ),
-
         # Builtins for PIM Modula-2
-        'm2pim': (
+        "m2pim": (
             common_pseudo_builtins,
             pim_additional_pseudo_builtins,
         ),
-
         # Builtins for ISO Modula-2
-        'm2iso': (
+        "m2iso": (
             common_pseudo_builtins,
             iso_additional_pseudo_builtins,
         ),
-
         # Builtins for ISO Modula-2
-        'm2r10': (
+        "m2r10": (
             common_pseudo_builtins,
             m2r10_additional_pseudo_builtins,
         ),
-
         # Builtins for Objective Modula-2
-        'objm2': (
+        "objm2": (
             common_pseudo_builtins,
             m2r10_additional_pseudo_builtins,
             objm2_additional_pseudo_builtins,
         ),
-
         # Builtins for Aglet Modula-2 Extensions
-        'm2iso+aglet': (
+        "m2iso+aglet": (
             common_pseudo_builtins,
             iso_additional_pseudo_builtins,
             aglet_additional_pseudo_builtins,
         ),
-
         # Builtins for GNU Modula-2 Extensions
-        'm2pim+gm2': (
+        "m2pim+gm2": (
             common_pseudo_builtins,
             pim_additional_pseudo_builtins,
             gm2_additional_pseudo_builtins,
         ),
-
         # Builtins for p1 Modula-2 Extensions
-        'm2iso+p1': (
+        "m2iso+p1": (
             common_pseudo_builtins,
             iso_additional_pseudo_builtins,
             p1_additional_pseudo_builtins,
         ),
-
         # Builtins for XDS Modula-2 Extensions
-        'm2iso+xds': (
+        "m2iso+xds": (
             common_pseudo_builtins,
             iso_additional_pseudo_builtins,
             xds_additional_pseudo_builtins,
@@ -976,46 +1457,35 @@ class Modula2Lexer(RegexLexer):
     # Standard Library ADTs Database
     stdlib_adts_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library ADTs for PIM Modula-2
-        'm2pim': (
+        "m2pim": (
             # No first class library types
         ),
-
         # Standard Library ADTs for ISO Modula-2
-        'm2iso': (
+        "m2iso": (
             # No first class library types
         ),
-
         # Standard Library ADTs for Modula-2 R10
-        'm2r10': (
-            m2r10_stdlib_adt_identifiers,
-        ),
-
+        "m2r10": (m2r10_stdlib_adt_identifiers,),
         # Standard Library ADTs for Objective Modula-2
-        'objm2': (
-            m2r10_stdlib_adt_identifiers,
-        ),
-
+        "objm2": (m2r10_stdlib_adt_identifiers,),
         # Standard Library ADTs for Aglet Modula-2
-        'm2iso+aglet': (
+        "m2iso+aglet": (
             # No first class library types
         ),
-
         # Standard Library ADTs for GNU Modula-2
-        'm2pim+gm2': (
+        "m2pim+gm2": (
             # No first class library types
         ),
-
         # Standard Library ADTs for p1 Modula-2
-        'm2iso+p1': (
+        "m2iso+p1": (
             # No first class library types
         ),
-
         # Standard Library ADTs for XDS Modula-2
-        'm2iso+xds': (
+        "m2iso+xds": (
             # No first class library types
         ),
     }
@@ -1023,249 +1493,138 @@ class Modula2Lexer(RegexLexer):
     # Standard Library Modules Database
     stdlib_modules_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library Modules for PIM Modula-2
-        'm2pim': (
-            pim_stdlib_module_identifiers,
-        ),
-
+        "m2pim": (pim_stdlib_module_identifiers,),
         # Standard Library Modules for ISO Modula-2
-        'm2iso': (
-            iso_stdlib_module_identifiers,
-        ),
-
+        "m2iso": (iso_stdlib_module_identifiers,),
         # Standard Library Modules for Modula-2 R10
-        'm2r10': (
+        "m2r10": (
             m2r10_stdlib_blueprint_identifiers,
             m2r10_stdlib_module_identifiers,
             m2r10_stdlib_adt_identifiers,
         ),
-
         # Standard Library Modules for Objective Modula-2
-        'objm2': (
+        "objm2": (
             m2r10_stdlib_blueprint_identifiers,
             m2r10_stdlib_module_identifiers,
         ),
-
         # Standard Library Modules for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_stdlib_module_identifiers,
-        ),
-
+        "m2iso+aglet": (iso_stdlib_module_identifiers,),
         # Standard Library Modules for GNU Modula-2
-        'm2pim+gm2': (
-            pim_stdlib_module_identifiers,
-        ),
-
+        "m2pim+gm2": (pim_stdlib_module_identifiers,),
         # Standard Library Modules for p1 Modula-2
-        'm2iso+p1': (
-            iso_stdlib_module_identifiers,
-        ),
-
+        "m2iso+p1": (iso_stdlib_module_identifiers,),
         # Standard Library Modules for XDS Modula-2
-        'm2iso+xds': (
-            iso_stdlib_module_identifiers,
-        ),
+        "m2iso+xds": (iso_stdlib_module_identifiers,),
     }
 
     # Standard Library Types Database
     stdlib_types_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library Types for PIM Modula-2
-        'm2pim': (
-            pim_stdlib_type_identifiers,
-        ),
-
+        "m2pim": (pim_stdlib_type_identifiers,),
         # Standard Library Types for ISO Modula-2
-        'm2iso': (
-            iso_stdlib_type_identifiers,
-        ),
-
+        "m2iso": (iso_stdlib_type_identifiers,),
         # Standard Library Types for Modula-2 R10
-        'm2r10': (
-            m2r10_stdlib_type_identifiers,
-        ),
-
+        "m2r10": (m2r10_stdlib_type_identifiers,),
         # Standard Library Types for Objective Modula-2
-        'objm2': (
-            m2r10_stdlib_type_identifiers,
-        ),
-
+        "objm2": (m2r10_stdlib_type_identifiers,),
         # Standard Library Types for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_stdlib_type_identifiers,
-        ),
-
+        "m2iso+aglet": (iso_stdlib_type_identifiers,),
         # Standard Library Types for GNU Modula-2
-        'm2pim+gm2': (
-            pim_stdlib_type_identifiers,
-        ),
-
+        "m2pim+gm2": (pim_stdlib_type_identifiers,),
         # Standard Library Types for p1 Modula-2
-        'm2iso+p1': (
-            iso_stdlib_type_identifiers,
-        ),
-
+        "m2iso+p1": (iso_stdlib_type_identifiers,),
         # Standard Library Types for XDS Modula-2
-        'm2iso+xds': (
-            iso_stdlib_type_identifiers,
-        ),
+        "m2iso+xds": (iso_stdlib_type_identifiers,),
     }
 
     # Standard Library Procedures Database
     stdlib_procedures_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library Procedures for PIM Modula-2
-        'm2pim': (
-            pim_stdlib_proc_identifiers,
-        ),
-
+        "m2pim": (pim_stdlib_proc_identifiers,),
         # Standard Library Procedures for ISO Modula-2
-        'm2iso': (
-            iso_stdlib_proc_identifiers,
-        ),
-
+        "m2iso": (iso_stdlib_proc_identifiers,),
         # Standard Library Procedures for Modula-2 R10
-        'm2r10': (
-            m2r10_stdlib_proc_identifiers,
-        ),
-
+        "m2r10": (m2r10_stdlib_proc_identifiers,),
         # Standard Library Procedures for Objective Modula-2
-        'objm2': (
-            m2r10_stdlib_proc_identifiers,
-        ),
-
+        "objm2": (m2r10_stdlib_proc_identifiers,),
         # Standard Library Procedures for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_stdlib_proc_identifiers,
-        ),
-
+        "m2iso+aglet": (iso_stdlib_proc_identifiers,),
         # Standard Library Procedures for GNU Modula-2
-        'm2pim+gm2': (
-            pim_stdlib_proc_identifiers,
-        ),
-
+        "m2pim+gm2": (pim_stdlib_proc_identifiers,),
         # Standard Library Procedures for p1 Modula-2
-        'm2iso+p1': (
-            iso_stdlib_proc_identifiers,
-        ),
-
+        "m2iso+p1": (iso_stdlib_proc_identifiers,),
         # Standard Library Procedures for XDS Modula-2
-        'm2iso+xds': (
-            iso_stdlib_proc_identifiers,
-        ),
+        "m2iso+xds": (iso_stdlib_proc_identifiers,),
     }
 
     # Standard Library Variables Database
     stdlib_variables_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library Variables for PIM Modula-2
-        'm2pim': (
-            pim_stdlib_var_identifiers,
-        ),
-
+        "m2pim": (pim_stdlib_var_identifiers,),
         # Standard Library Variables for ISO Modula-2
-        'm2iso': (
-            iso_stdlib_var_identifiers,
-        ),
-
+        "m2iso": (iso_stdlib_var_identifiers,),
         # Standard Library Variables for Modula-2 R10
-        'm2r10': (
-            m2r10_stdlib_var_identifiers,
-        ),
-
+        "m2r10": (m2r10_stdlib_var_identifiers,),
         # Standard Library Variables for Objective Modula-2
-        'objm2': (
-            m2r10_stdlib_var_identifiers,
-        ),
-
+        "objm2": (m2r10_stdlib_var_identifiers,),
         # Standard Library Variables for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_stdlib_var_identifiers,
-        ),
-
+        "m2iso+aglet": (iso_stdlib_var_identifiers,),
         # Standard Library Variables for GNU Modula-2
-        'm2pim+gm2': (
-            pim_stdlib_var_identifiers,
-        ),
-
+        "m2pim+gm2": (pim_stdlib_var_identifiers,),
         # Standard Library Variables for p1 Modula-2
-        'm2iso+p1': (
-            iso_stdlib_var_identifiers,
-        ),
-
+        "m2iso+p1": (iso_stdlib_var_identifiers,),
         # Standard Library Variables for XDS Modula-2
-        'm2iso+xds': (
-            iso_stdlib_var_identifiers,
-        ),
+        "m2iso+xds": (iso_stdlib_var_identifiers,),
     }
 
     # Standard Library Constants Database
     stdlib_constants_db = {
         # Empty entry for unknown dialect
-        'unknown': (
+        "unknown": (
             # LEAVE THIS EMPTY
         ),
         # Standard Library Constants for PIM Modula-2
-        'm2pim': (
-            pim_stdlib_const_identifiers,
-        ),
-
+        "m2pim": (pim_stdlib_const_identifiers,),
         # Standard Library Constants for ISO Modula-2
-        'm2iso': (
-            iso_stdlib_const_identifiers,
-        ),
-
+        "m2iso": (iso_stdlib_const_identifiers,),
         # Standard Library Constants for Modula-2 R10
-        'm2r10': (
-            m2r10_stdlib_const_identifiers,
-        ),
-
+        "m2r10": (m2r10_stdlib_const_identifiers,),
         # Standard Library Constants for Objective Modula-2
-        'objm2': (
-            m2r10_stdlib_const_identifiers,
-        ),
-
+        "objm2": (m2r10_stdlib_const_identifiers,),
         # Standard Library Constants for Aglet Modula-2
-        'm2iso+aglet': (
-            iso_stdlib_const_identifiers,
-        ),
-
+        "m2iso+aglet": (iso_stdlib_const_identifiers,),
         # Standard Library Constants for GNU Modula-2
-        'm2pim+gm2': (
-            pim_stdlib_const_identifiers,
-        ),
-
+        "m2pim+gm2": (pim_stdlib_const_identifiers,),
         # Standard Library Constants for p1 Modula-2
-        'm2iso+p1': (
-            iso_stdlib_const_identifiers,
-        ),
-
+        "m2iso+p1": (iso_stdlib_const_identifiers,),
         # Standard Library Constants for XDS Modula-2
-        'm2iso+xds': (
-            iso_stdlib_const_identifiers,
-        ),
+        "m2iso+xds": (iso_stdlib_const_identifiers,),
     }
 
-#   M e t h o d s
+    #   M e t h o d s
 
     # initialise a lexer instance
     def __init__(self, **options):
         #
         # check dialect options
         #
-        dialects = get_list_opt(options, 'dialect', [])
+        dialects = get_list_opt(options, "dialect", [])
         #
         for dialect_option in dialects:
             if dialect_option in self.dialects[1:-1]:
@@ -1276,16 +1635,16 @@ class Modula2Lexer(RegexLexer):
         # Fallback Mode (DEFAULT)
         else:
             # no valid dialect option
-            self.set_dialect('unknown')
+            self.set_dialect("unknown")
         #
         self.dialect_set_by_tag = False
         #
         # check style options
         #
-        styles = get_list_opt(options, 'style', [])
+        styles = get_list_opt(options, "style", [])
         #
         # use lowercase mode for Algol style
-        if 'algol' in styles or 'algol_nu' in styles:
+        if "algol" in styles or "algol_nu" in styles:
             self.algol_publication_mode = True
         else:
             self.algol_publication_mode = False
@@ -1293,7 +1652,8 @@ class Modula2Lexer(RegexLexer):
         # Check option flags
         #
         self.treat_stdlib_adts_as_builtins = get_bool_opt(
-            options, 'treat_stdlib_adts_as_builtins', True)
+            options, "treat_stdlib_adts_as_builtins", True
+        )
         #
         # call superclass initialiser
         RegexLexer.__init__(self, **options)
@@ -1306,7 +1666,7 @@ class Modula2Lexer(RegexLexer):
         #
         # check dialect name against known dialects
         if dialect_id not in self.dialects:
-            dialect = 'unknown'  # default
+            dialect = "unknown"  # default
         else:
             dialect = dialect_id
         #
@@ -1407,17 +1767,19 @@ class Modula2Lexer(RegexLexer):
         #    print 'entered get_dialect_from_dialect_tag with arg: ', dialect_tag
         #
         # constants
-        left_tag_delim = '(*!'
-        right_tag_delim = '*)'
+        left_tag_delim = "(*!"
+        right_tag_delim = "*)"
         left_tag_delim_len = len(left_tag_delim)
         right_tag_delim_len = len(right_tag_delim)
         indicator_start = left_tag_delim_len
         indicator_end = -(right_tag_delim_len)
         #
         # check comment string for dialect indicator
-        if len(dialect_tag) > (left_tag_delim_len + right_tag_delim_len) \
-           and dialect_tag.startswith(left_tag_delim) \
-           and dialect_tag.endswith(right_tag_delim):
+        if (
+            len(dialect_tag) > (left_tag_delim_len + right_tag_delim_len)
+            and dialect_tag.startswith(left_tag_delim)
+            and dialect_tag.endswith(right_tag_delim)
+        ):
             #
             # if __debug__:
             #    print 'dialect tag found'
@@ -1443,10 +1805,10 @@ class Modula2Lexer(RegexLexer):
                     return indicator
             else:
                 # indicator does not match any dialect
-                return 'unknown'  # default
+                return "unknown"  # default
         else:
             # invalid indicator string
-            return 'unknown'  # default
+            return "unknown"  # default
 
     # intercept the token stream, modify token attributes and return them
     def get_tokens_unprocessed(self, text):
@@ -1455,7 +1817,7 @@ class Modula2Lexer(RegexLexer):
             # check for dialect tag if dialect has not been set by tag
             if not self.dialect_set_by_tag and token == Comment.Special:
                 indicated_dialect = self.get_dialect_from_dialect_tag(value)
-                if indicated_dialect != 'unknown':
+                if indicated_dialect != "unknown":
                     # token is a dialect indicator
                     # reset reserved words and builtins
                     self.set_dialect(indicated_dialect)
@@ -1504,37 +1866,38 @@ class Modula2Lexer(RegexLexer):
             elif token in Number:
                 #
                 # mark prefix number literals as error for PIM and ISO dialects
-                if self.dialect not in ('unknown', 'm2r10', 'objm2'):
-                    if "'" in value or value[0:2] in ('0b', '0x', '0u'):
+                if self.dialect not in ("unknown", "m2r10", "objm2"):
+                    if "'" in value or value[0:2] in ("0b", "0x", "0u"):
                         token = Error
                 #
-                elif self.dialect in ('m2r10', 'objm2'):
+                elif self.dialect in ("m2r10", "objm2"):
                     # mark base-8 number literals as errors for M2 R10 and ObjM2
                     if token is Number.Oct:
                         token = Error
                     # mark suffix base-16 literals as errors for M2 R10 and ObjM2
-                    elif token is Number.Hex and 'H' in value:
+                    elif token is Number.Hex and "H" in value:
                         token = Error
                     # mark real numbers with E as errors for M2 R10 and ObjM2
-                    elif token is Number.Float and 'E' in value:
+                    elif token is Number.Float and "E" in value:
                         token = Error
             #
             elif token in Comment:
                 #
                 # mark single line comment as error for PIM and ISO dialects
                 if token is Comment.Single:
-                    if self.dialect not in ('unknown', 'm2r10', 'objm2'):
+                    if self.dialect not in ("unknown", "m2r10", "objm2"):
                         token = Error
                 #
                 if token is Comment.Preproc:
                     # mark ISO pragma as error for PIM dialects
-                    if value.startswith('<*') and \
-                       self.dialect.startswith('m2pim'):
+                    if value.startswith("<*") and self.dialect.startswith("m2pim"):
                         token = Error
                     # mark PIM pragma as comment for other dialects
-                    elif value.startswith('(*$') and \
-                            self.dialect != 'unknown' and \
-                            not self.dialect.startswith('m2pim'):
+                    elif (
+                        value.startswith("(*$")
+                        and self.dialect != "unknown"
+                        and not self.dialect.startswith("m2pim")
+                    ):
                         token = Comment.Multiline
             #
             else:  # token is neither Name nor Comment
@@ -1545,16 +1908,16 @@ class Modula2Lexer(RegexLexer):
                 #
                 # substitute lexemes when in Algol mode
                 if self.algol_publication_mode:
-                    if value == '#':
-                        value = '≠'
-                    elif value == '<=':
-                        value = '≤'
-                    elif value == '>=':
-                        value = '≥'
-                    elif value == '==':
-                        value = '≡'
-                    elif value == '*.':
-                        value = '•'
+                    if value == "#":
+                        value = "≠"
+                    elif value == "<=":
+                        value = "≤"
+                    elif value == ">=":
+                        value = "≥"
+                    elif value == "==":
+                        value = "≡"
+                    elif value == "*.":
+                        value = "•"
 
             # return result
             yield index, token, value
@@ -1564,16 +1927,16 @@ class Modula2Lexer(RegexLexer):
         instead."""
 
         # Check if this looks like Pascal, if not, bail out early
-        if not ('(*' in text and '*)' in text and ':=' in text):
+        if not ("(*" in text and "*)" in text and ":=" in text):
             return
 
         result = 0
         # Procedure is in Modula2
-        if re.search(r'\bPROCEDURE\b', text):
+        if re.search(r"\bPROCEDURE\b", text):
             result += 0.6
 
         # FUNCTION is only valid in Pascal, but not in Modula2
-        if re.search(r'\bFUNCTION\b', text):
+        if re.search(r"\bFUNCTION\b", text):
             result = 0.0
 
         return result
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mojo.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mojo.py
index 4df18c4..611d8ff 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mojo.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mojo.py
@@ -1,11 +1,11 @@
 """
-    pygments.lexers.mojo
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.mojo
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Mojo and related languages.
+Lexers for Mojo and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import keyword
@@ -330,8 +330,7 @@ class MojoLexer(RegexLexer):
                 r"(?![ \t]*(?:"  # not followed by...
                 r"[:,;=^&|@~)\]}]|(?:" +  # characters and keywords that mean this isn't
                 # pattern matching (but None/True/False is ok)
-                r"|".join(k for k in keyword.kwlist if k[0].islower())
-                + r")\b))",
+                r"|".join(k for k in keyword.kwlist if k[0].islower()) + r")\b))",
                 bygroups(Whitespace, Keyword),
                 "soft-keywords-inner",
             ),
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/monte.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/monte.py
index c01d2dc..7ac7e73 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/monte.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/monte.py
@@ -1,77 +1,192 @@
 """
-    pygments.lexers.monte
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.monte
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the Monte programming language.
+Lexer for the Monte programming language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
-from pygments.token import Comment, Error, Keyword, Name, Number, Operator, \
-    Punctuation, String, Whitespace
+from pygments.token import (
+    Comment,
+    Error,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Whitespace,
+)
 from pygments.lexer import RegexLexer, include, words
 
-__all__ = ['MonteLexer']
+__all__ = ["MonteLexer"]
 
 
 # `var` handled separately
 # `interface` handled separately
-_declarations = ['bind', 'def', 'fn', 'object']
-_methods = ['method', 'to']
+_declarations = ["bind", "def", "fn", "object"]
+_methods = ["method", "to"]
 _keywords = [
-    'as', 'break', 'catch', 'continue', 'else', 'escape', 'exit', 'exports',
-    'extends', 'finally', 'for', 'guards', 'if', 'implements', 'import',
-    'in', 'match', 'meta', 'pass', 'return', 'switch', 'try', 'via', 'when',
-    'while',
+    "as",
+    "break",
+    "catch",
+    "continue",
+    "else",
+    "escape",
+    "exit",
+    "exports",
+    "extends",
+    "finally",
+    "for",
+    "guards",
+    "if",
+    "implements",
+    "import",
+    "in",
+    "match",
+    "meta",
+    "pass",
+    "return",
+    "switch",
+    "try",
+    "via",
+    "when",
+    "while",
 ]
 _operators = [
     # Unary
-    '~', '!',
+    "~",
+    "!",
     # Binary
-    '+', '-', '*', '/', '%', '**', '&', '|', '^', '<<', '>>',
+    "+",
+    "-",
+    "*",
+    "/",
+    "%",
+    "**",
+    "&",
+    "|",
+    "^",
+    "<<",
+    ">>",
     # Binary augmented
-    '+=', '-=', '*=', '/=', '%=', '**=', '&=', '|=', '^=', '<<=', '>>=',
+    "+=",
+    "-=",
+    "*=",
+    "/=",
+    "%=",
+    "**=",
+    "&=",
+    "|=",
+    "^=",
+    "<<=",
+    ">>=",
     # Comparison
-    '==', '!=', '<', '<=', '>', '>=', '<=>',
+    "==",
+    "!=",
+    "<",
+    "<=",
+    ">",
+    ">=",
+    "<=>",
     # Patterns and assignment
-    ':=', '?', '=~', '!~', '=>',
+    ":=",
+    "?",
+    "=~",
+    "!~",
+    "=>",
     # Calls and sends
-    '.', '<-', '->',
+    ".",
+    "<-",
+    "->",
 ]
 _escape_pattern = (
-    r'(?:\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|'
-    r'\\["\'\\bftnr])')
+    r"(?:\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|" r'\\["\'\\bftnr])'
+)
 # _char = _escape_chars + [('.', String.Char)]
-_identifier = r'[_a-zA-Z]\w*'
+_identifier = r"[_a-zA-Z]\w*"
 
 _constants = [
     # Void constants
-    'null',
+    "null",
     # Bool constants
-    'false', 'true',
+    "false",
+    "true",
     # Double constants
-    'Infinity', 'NaN',
+    "Infinity",
+    "NaN",
     # Special objects
-    'M', 'Ref', 'throw', 'traceln',
+    "M",
+    "Ref",
+    "throw",
+    "traceln",
 ]
 
 _guards = [
-    'Any', 'Binding', 'Bool', 'Bytes', 'Char', 'DeepFrozen', 'Double',
-    'Empty', 'Int', 'List', 'Map', 'Near', 'NullOk', 'Same', 'Selfless',
-    'Set', 'Str', 'SubrangeGuard', 'Transparent', 'Void',
+    "Any",
+    "Binding",
+    "Bool",
+    "Bytes",
+    "Char",
+    "DeepFrozen",
+    "Double",
+    "Empty",
+    "Int",
+    "List",
+    "Map",
+    "Near",
+    "NullOk",
+    "Same",
+    "Selfless",
+    "Set",
+    "Str",
+    "SubrangeGuard",
+    "Transparent",
+    "Void",
 ]
 
 _safeScope = [
-    '_accumulateList', '_accumulateMap', '_auditedBy', '_bind',
-    '_booleanFlow', '_comparer', '_equalizer', '_iterForever', '_loop',
-    '_makeBytes', '_makeDouble', '_makeFinalSlot', '_makeInt', '_makeList',
-    '_makeMap', '_makeMessageDesc', '_makeOrderedSpace', '_makeParamDesc',
-    '_makeProtocolDesc', '_makeSourceSpan', '_makeString', '_makeVarSlot',
-    '_makeVerbFacet', '_mapExtract', '_matchSame', '_quasiMatcher',
-    '_slotToBinding', '_splitList', '_suchThat', '_switchFailed',
-    '_validateFor', 'b__quasiParser', 'eval', 'import', 'm__quasiParser',
-    'makeBrandPair', 'makeLazySlot', 'safeScope', 'simple__quasiParser',
+    "_accumulateList",
+    "_accumulateMap",
+    "_auditedBy",
+    "_bind",
+    "_booleanFlow",
+    "_comparer",
+    "_equalizer",
+    "_iterForever",
+    "_loop",
+    "_makeBytes",
+    "_makeDouble",
+    "_makeFinalSlot",
+    "_makeInt",
+    "_makeList",
+    "_makeMap",
+    "_makeMessageDesc",
+    "_makeOrderedSpace",
+    "_makeParamDesc",
+    "_makeProtocolDesc",
+    "_makeSourceSpan",
+    "_makeString",
+    "_makeVarSlot",
+    "_makeVerbFacet",
+    "_mapExtract",
+    "_matchSame",
+    "_quasiMatcher",
+    "_slotToBinding",
+    "_splitList",
+    "_suchThat",
+    "_switchFailed",
+    "_validateFor",
+    "b__quasiParser",
+    "eval",
+    "import",
+    "m__quasiParser",
+    "makeBrandPair",
+    "makeLazySlot",
+    "safeScope",
+    "simple__quasiParser",
 ]
 
 
@@ -79,125 +194,105 @@ class MonteLexer(RegexLexer):
     """
     Lexer for the Monte programming language.
     """
-    name = 'Monte'
-    url = 'https://monte.readthedocs.io/'
-    aliases = ['monte']
-    filenames = ['*.mt']
-    version_added = '2.2'
+
+    name = "Monte"
+    url = "https://monte.readthedocs.io/"
+    aliases = ["monte"]
+    filenames = ["*.mt"]
+    version_added = "2.2"
 
     tokens = {
-        'root': [
+        "root": [
             # Comments
-            (r'#[^\n]*\n', Comment),
-
+            (r"#[^\n]*\n", Comment),
             # Docstrings
             # Apologies for the non-greedy matcher here.
-            (r'/\*\*.*?\*/', String.Doc),
-
+            (r"/\*\*.*?\*/", String.Doc),
             # `var` declarations
-            (r'\bvar\b', Keyword.Declaration, 'var'),
-
+            (r"\bvar\b", Keyword.Declaration, "var"),
             # `interface` declarations
-            (r'\binterface\b', Keyword.Declaration, 'interface'),
-
+            (r"\binterface\b", Keyword.Declaration, "interface"),
             # method declarations
-            (words(_methods, prefix='\\b', suffix='\\b'),
-             Keyword, 'method'),
-
+            (words(_methods, prefix="\\b", suffix="\\b"), Keyword, "method"),
             # All other declarations
-            (words(_declarations, prefix='\\b', suffix='\\b'),
-             Keyword.Declaration),
-
+            (words(_declarations, prefix="\\b", suffix="\\b"), Keyword.Declaration),
             # Keywords
-            (words(_keywords, prefix='\\b', suffix='\\b'), Keyword),
-
+            (words(_keywords, prefix="\\b", suffix="\\b"), Keyword),
             # Literals
-            ('[+-]?0x[_0-9a-fA-F]+', Number.Hex),
-            (r'[+-]?[_0-9]+\.[_0-9]*([eE][+-]?[_0-9]+)?', Number.Float),
-            ('[+-]?[_0-9]+', Number.Integer),
-            ("'", String.Double, 'char'),
-            ('"', String.Double, 'string'),
-
+            ("[+-]?0x[_0-9a-fA-F]+", Number.Hex),
+            (r"[+-]?[_0-9]+\.[_0-9]*([eE][+-]?[_0-9]+)?", Number.Float),
+            ("[+-]?[_0-9]+", Number.Integer),
+            ("'", String.Double, "char"),
+            ('"', String.Double, "string"),
             # Quasiliterals
-            ('`', String.Backtick, 'ql'),
-
+            ("`", String.Backtick, "ql"),
             # Operators
             (words(_operators), Operator),
-
             # Verb operators
-            (_identifier + '=', Operator.Word),
-
+            (_identifier + "=", Operator.Word),
             # Safe scope constants
-            (words(_constants, prefix='\\b', suffix='\\b'),
-             Keyword.Pseudo),
-
+            (words(_constants, prefix="\\b", suffix="\\b"), Keyword.Pseudo),
             # Safe scope guards
-            (words(_guards, prefix='\\b', suffix='\\b'), Keyword.Type),
-
+            (words(_guards, prefix="\\b", suffix="\\b"), Keyword.Type),
             # All other safe scope names
-            (words(_safeScope, prefix='\\b', suffix='\\b'),
-             Name.Builtin),
-
+            (words(_safeScope, prefix="\\b", suffix="\\b"), Name.Builtin),
             # Identifiers
             (_identifier, Name),
-
             # Punctuation
-            (r'\(|\)|\{|\}|\[|\]|:|,', Punctuation),
-
+            (r"\(|\)|\{|\}|\[|\]|:|,", Punctuation),
             # Whitespace
-            (' +', Whitespace),
-
+            (" +", Whitespace),
             # Definite lexer errors
-            ('=', Error),
+            ("=", Error),
         ],
-        'char': [
+        "char": [
             # It is definitely an error to have a char of width == 0.
-            ("'", Error, 'root'),
-            (_escape_pattern, String.Escape, 'charEnd'),
-            ('.', String.Char, 'charEnd'),
+            ("'", Error, "root"),
+            (_escape_pattern, String.Escape, "charEnd"),
+            (".", String.Char, "charEnd"),
         ],
-        'charEnd': [
-            ("'", String.Char, '#pop:2'),
+        "charEnd": [
+            ("'", String.Char, "#pop:2"),
             # It is definitely an error to have a char of width > 1.
-            ('.', Error),
+            (".", Error),
         ],
         # The state of things coming into an interface.
-        'interface': [
-            (' +', Whitespace),
-            (_identifier, Name.Class, '#pop'),
-            include('root'),
+        "interface": [
+            (" +", Whitespace),
+            (_identifier, Name.Class, "#pop"),
+            include("root"),
         ],
         # The state of things coming into a method.
-        'method': [
-            (' +', Whitespace),
-            (_identifier, Name.Function, '#pop'),
-            include('root'),
+        "method": [
+            (" +", Whitespace),
+            (_identifier, Name.Function, "#pop"),
+            include("root"),
         ],
-        'string': [
-            ('"', String.Double, 'root'),
+        "string": [
+            ('"', String.Double, "root"),
             (_escape_pattern, String.Escape),
-            (r'\n', String.Double),
-            ('.', String.Double),
+            (r"\n", String.Double),
+            (".", String.Double),
         ],
-        'ql': [
-            ('`', String.Backtick, 'root'),
-            (r'\$' + _escape_pattern, String.Escape),
-            (r'\$\$', String.Escape),
-            (r'@@', String.Escape),
-            (r'\$\{', String.Interpol, 'qlNest'),
-            (r'@\{', String.Interpol, 'qlNest'),
-            (r'\$' + _identifier, Name),
-            ('@' + _identifier, Name),
-            ('.', String.Backtick),
+        "ql": [
+            ("`", String.Backtick, "root"),
+            (r"\$" + _escape_pattern, String.Escape),
+            (r"\$\$", String.Escape),
+            (r"@@", String.Escape),
+            (r"\$\{", String.Interpol, "qlNest"),
+            (r"@\{", String.Interpol, "qlNest"),
+            (r"\$" + _identifier, Name),
+            ("@" + _identifier, Name),
+            (".", String.Backtick),
         ],
-        'qlNest': [
-            (r'\}', String.Interpol, '#pop'),
-            include('root'),
+        "qlNest": [
+            (r"\}", String.Interpol, "#pop"),
+            include("root"),
         ],
         # The state of things immediately following `var`.
-        'var': [
-            (' +', Whitespace),
-            (_identifier, Name.Variable, '#pop'),
-            include('root'),
+        "var": [
+            (" +", Whitespace),
+            (_identifier, Name.Variable, "#pop"),
+            include("root"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mosel.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mosel.py
index 426c9a1..adca5ee 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mosel.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/mosel.py
@@ -1,390 +1,395 @@
 """
-    pygments.lexers.mosel
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.mosel
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the mosel language.
-    http://www.fico.com/en/products/fico-xpress-optimization
+Lexers for the mosel language.
+http://www.fico.com/en/products/fico-xpress-optimization
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['MoselLexer']
+__all__ = ["MoselLexer"]
 
 FUNCTIONS = (
     # core functions
-    '_',
-    'abs',
-    'arctan',
-    'asproc',
-    'assert',
-    'bitflip',
-    'bitneg',
-    'bitset',
-    'bitshift',
-    'bittest',
-    'bitval',
-    'ceil',
-    'cos',
-    'create',
-    'currentdate',
-    'currenttime',
-    'cutelt',
-    'cutfirst',
-    'cuthead',
-    'cutlast',
-    'cuttail',
-    'datablock',
-    'delcell',
-    'exists',
-    'exit',
-    'exp',
-    'exportprob',
-    'fclose',
-    'fflush',
-    'finalize',
-    'findfirst',
-    'findlast',
-    'floor',
-    'fopen',
-    'fselect',
-    'fskipline',
-    'fwrite',
-    'fwrite_',
-    'fwriteln',
-    'fwriteln_',
-    'getact',
-    'getcoeff',
-    'getcoeffs',
-    'getdual',
-    'getelt',
-    'getfid',
-    'getfirst',
-    'getfname',
-    'gethead',
-    'getlast',
-    'getobjval',
-    'getparam',
-    'getrcost',
-    'getreadcnt',
-    'getreverse',
-    'getsize',
-    'getslack',
-    'getsol',
-    'gettail',
-    'gettype',
-    'getvars',
-    'isdynamic',
-    'iseof',
-    'isfinite',
-    'ishidden',
-    'isinf',
-    'isnan',
-    'isodd',
-    'ln',
-    'localsetparam',
-    'log',
-    'makesos1',
-    'makesos2',
-    'maxlist',
-    'memoryuse',
-    'minlist',
-    'newmuid',
-    'publish',
-    'random',
-    'read',
-    'readln',
-    'reset',
-    'restoreparam',
-    'reverse',
-    'round',
-    'setcoeff',
-    'sethidden',
-    'setioerr',
-    'setmatherr',
-    'setname',
-    'setparam',
-    'setrandseed',
-    'setrange',
-    'settype',
-    'sin',
-    'splithead',
-    'splittail',
-    'sqrt',
-    'strfmt',
-    'substr',
-    'timestamp',
-    'unpublish',
-    'versionnum',
-    'versionstr',
-    'write',
-    'write_',
-    'writeln',
-    'writeln_',
-
+    "_",
+    "abs",
+    "arctan",
+    "asproc",
+    "assert",
+    "bitflip",
+    "bitneg",
+    "bitset",
+    "bitshift",
+    "bittest",
+    "bitval",
+    "ceil",
+    "cos",
+    "create",
+    "currentdate",
+    "currenttime",
+    "cutelt",
+    "cutfirst",
+    "cuthead",
+    "cutlast",
+    "cuttail",
+    "datablock",
+    "delcell",
+    "exists",
+    "exit",
+    "exp",
+    "exportprob",
+    "fclose",
+    "fflush",
+    "finalize",
+    "findfirst",
+    "findlast",
+    "floor",
+    "fopen",
+    "fselect",
+    "fskipline",
+    "fwrite",
+    "fwrite_",
+    "fwriteln",
+    "fwriteln_",
+    "getact",
+    "getcoeff",
+    "getcoeffs",
+    "getdual",
+    "getelt",
+    "getfid",
+    "getfirst",
+    "getfname",
+    "gethead",
+    "getlast",
+    "getobjval",
+    "getparam",
+    "getrcost",
+    "getreadcnt",
+    "getreverse",
+    "getsize",
+    "getslack",
+    "getsol",
+    "gettail",
+    "gettype",
+    "getvars",
+    "isdynamic",
+    "iseof",
+    "isfinite",
+    "ishidden",
+    "isinf",
+    "isnan",
+    "isodd",
+    "ln",
+    "localsetparam",
+    "log",
+    "makesos1",
+    "makesos2",
+    "maxlist",
+    "memoryuse",
+    "minlist",
+    "newmuid",
+    "publish",
+    "random",
+    "read",
+    "readln",
+    "reset",
+    "restoreparam",
+    "reverse",
+    "round",
+    "setcoeff",
+    "sethidden",
+    "setioerr",
+    "setmatherr",
+    "setname",
+    "setparam",
+    "setrandseed",
+    "setrange",
+    "settype",
+    "sin",
+    "splithead",
+    "splittail",
+    "sqrt",
+    "strfmt",
+    "substr",
+    "timestamp",
+    "unpublish",
+    "versionnum",
+    "versionstr",
+    "write",
+    "write_",
+    "writeln",
+    "writeln_",
     # mosel exam mmxprs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
-    'addcut',
-    'addcuts',
-    'addmipsol',
-    'basisstability',
-    'calcsolinfo',
-    'clearmipdir',
-    'clearmodcut',
-    'command',
-    'copysoltoinit',
-    'crossoverlpsol',
-    'defdelayedrows',
-    'defsecurevecs',
-    'delcuts',
-    'dropcuts',
-    'estimatemarginals',
-    'fixglobal',
-    'flushmsgq',
-    'getbstat',
-    'getcnlist',
-    'getcplist',
-    'getdualray',
-    'getiis',
-    'getiissense',
-    'getiistype',
-    'getinfcause',
-    'getinfeas',
-    'getlb',
-    'getlct',
-    'getleft',
-    'getloadedlinctrs',
-    'getloadedmpvars',
-    'getname',
-    'getprimalray',
-    'getprobstat',
-    'getrange',
-    'getright',
-    'getsensrng',
-    'getsize',
-    'getsol',
-    'gettype',
-    'getub',
-    'getvars',
-    'gety',
-    'hasfeature',
-    'implies',
-    'indicator',
-    'initglobal',
-    'ishidden',
-    'isiisvalid',
-    'isintegral',
-    'loadbasis',
-    'loadcuts',
-    'loadlpsol',
-    'loadmipsol',
-    'loadprob',
-    'maximise',
-    'maximize',
-    'minimise',
-    'minimize',
-    'postsolve',
-    'readbasis',
-    'readdirs',
-    'readsol',
-    'refinemipsol',
-    'rejectintsol',
-    'repairinfeas',
-    'repairinfeas_deprec',
-    'resetbasis',
-    'resetiis',
-    'resetsol',
-    'savebasis',
-    'savemipsol',
-    'savesol',
-    'savestate',
-    'selectsol',
-    'setarchconsistency',
-    'setbstat',
-    'setcallback',
-    'setcbcutoff',
-    'setgndata',
-    'sethidden',
-    'setlb',
-    'setmipdir',
-    'setmodcut',
-    'setsol',
-    'setub',
-    'setucbdata',
-    'stopoptimise',
-    'stopoptimize',
-    'storecut',
-    'storecuts',
-    'unloadprob',
-    'uselastbarsol',
-    'writebasis',
-    'writedirs',
-    'writeprob',
-    'writesol',
-    'xor',
-    'xprs_addctr',
-    'xprs_addindic',
-
+    "addcut",
+    "addcuts",
+    "addmipsol",
+    "basisstability",
+    "calcsolinfo",
+    "clearmipdir",
+    "clearmodcut",
+    "command",
+    "copysoltoinit",
+    "crossoverlpsol",
+    "defdelayedrows",
+    "defsecurevecs",
+    "delcuts",
+    "dropcuts",
+    "estimatemarginals",
+    "fixglobal",
+    "flushmsgq",
+    "getbstat",
+    "getcnlist",
+    "getcplist",
+    "getdualray",
+    "getiis",
+    "getiissense",
+    "getiistype",
+    "getinfcause",
+    "getinfeas",
+    "getlb",
+    "getlct",
+    "getleft",
+    "getloadedlinctrs",
+    "getloadedmpvars",
+    "getname",
+    "getprimalray",
+    "getprobstat",
+    "getrange",
+    "getright",
+    "getsensrng",
+    "getsize",
+    "getsol",
+    "gettype",
+    "getub",
+    "getvars",
+    "gety",
+    "hasfeature",
+    "implies",
+    "indicator",
+    "initglobal",
+    "ishidden",
+    "isiisvalid",
+    "isintegral",
+    "loadbasis",
+    "loadcuts",
+    "loadlpsol",
+    "loadmipsol",
+    "loadprob",
+    "maximise",
+    "maximize",
+    "minimise",
+    "minimize",
+    "postsolve",
+    "readbasis",
+    "readdirs",
+    "readsol",
+    "refinemipsol",
+    "rejectintsol",
+    "repairinfeas",
+    "repairinfeas_deprec",
+    "resetbasis",
+    "resetiis",
+    "resetsol",
+    "savebasis",
+    "savemipsol",
+    "savesol",
+    "savestate",
+    "selectsol",
+    "setarchconsistency",
+    "setbstat",
+    "setcallback",
+    "setcbcutoff",
+    "setgndata",
+    "sethidden",
+    "setlb",
+    "setmipdir",
+    "setmodcut",
+    "setsol",
+    "setub",
+    "setucbdata",
+    "stopoptimise",
+    "stopoptimize",
+    "storecut",
+    "storecuts",
+    "unloadprob",
+    "uselastbarsol",
+    "writebasis",
+    "writedirs",
+    "writeprob",
+    "writesol",
+    "xor",
+    "xprs_addctr",
+    "xprs_addindic",
     # mosel exam mmsystem | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
-    'addmonths',
-    'copytext',
-    'cuttext',
-    'deltext',
-    'endswith',
-    'erase',
-    'expandpath',
-    'fcopy',
-    'fdelete',
-    'findfiles',
-    'findtext',
-    'fmove',
-    'formattext',
-    'getasnumber',
-    'getchar',
-    'getcwd',
-    'getdate',
-    'getday',
-    'getdaynum',
-    'getdays',
-    'getdirsep',
-    'getdsoparam',
-    'getendparse',
-    'getenv',
-    'getfsize',
-    'getfstat',
-    'getftime',
-    'gethour',
-    'getminute',
-    'getmonth',
-    'getmsec',
-    'getoserrmsg',
-    'getoserror',
-    'getpathsep',
-    'getqtype',
-    'getsecond',
-    'getsepchar',
-    'getsize',
-    'getstart',
-    'getsucc',
-    'getsysinfo',
-    'getsysstat',
-    'gettime',
-    'gettmpdir',
-    'gettrim',
-    'getweekday',
-    'getyear',
-    'inserttext',
-    'isvalid',
-    'jointext',
-    'makedir',
-    'makepath',
-    'newtar',
-    'newzip',
-    'nextfield',
-    'openpipe',
-    'parseextn',
-    'parseint',
-    'parsereal',
-    'parsetext',
-    'pastetext',
-    'pathmatch',
-    'pathsplit',
-    'qsort',
-    'quote',
-    'readtextline',
-    'regmatch',
-    'regreplace',
-    'removedir',
-    'removefiles',
-    'setchar',
-    'setdate',
-    'setday',
-    'setdsoparam',
-    'setendparse',
-    'setenv',
-    'sethour',
-    'setminute',
-    'setmonth',
-    'setmsec',
-    'setoserror',
-    'setqtype',
-    'setsecond',
-    'setsepchar',
-    'setstart',
-    'setsucc',
-    'settime',
-    'settrim',
-    'setyear',
-    'sleep',
-    'splittext',
-    'startswith',
-    'system',
-    'tarlist',
-    'textfmt',
-    'tolower',
-    'toupper',
-    'trim',
-    'untar',
-    'unzip',
-    'ziplist',
-
+    "addmonths",
+    "copytext",
+    "cuttext",
+    "deltext",
+    "endswith",
+    "erase",
+    "expandpath",
+    "fcopy",
+    "fdelete",
+    "findfiles",
+    "findtext",
+    "fmove",
+    "formattext",
+    "getasnumber",
+    "getchar",
+    "getcwd",
+    "getdate",
+    "getday",
+    "getdaynum",
+    "getdays",
+    "getdirsep",
+    "getdsoparam",
+    "getendparse",
+    "getenv",
+    "getfsize",
+    "getfstat",
+    "getftime",
+    "gethour",
+    "getminute",
+    "getmonth",
+    "getmsec",
+    "getoserrmsg",
+    "getoserror",
+    "getpathsep",
+    "getqtype",
+    "getsecond",
+    "getsepchar",
+    "getsize",
+    "getstart",
+    "getsucc",
+    "getsysinfo",
+    "getsysstat",
+    "gettime",
+    "gettmpdir",
+    "gettrim",
+    "getweekday",
+    "getyear",
+    "inserttext",
+    "isvalid",
+    "jointext",
+    "makedir",
+    "makepath",
+    "newtar",
+    "newzip",
+    "nextfield",
+    "openpipe",
+    "parseextn",
+    "parseint",
+    "parsereal",
+    "parsetext",
+    "pastetext",
+    "pathmatch",
+    "pathsplit",
+    "qsort",
+    "quote",
+    "readtextline",
+    "regmatch",
+    "regreplace",
+    "removedir",
+    "removefiles",
+    "setchar",
+    "setdate",
+    "setday",
+    "setdsoparam",
+    "setendparse",
+    "setenv",
+    "sethour",
+    "setminute",
+    "setmonth",
+    "setmsec",
+    "setoserror",
+    "setqtype",
+    "setsecond",
+    "setsepchar",
+    "setstart",
+    "setsucc",
+    "settime",
+    "settrim",
+    "setyear",
+    "sleep",
+    "splittext",
+    "startswith",
+    "system",
+    "tarlist",
+    "textfmt",
+    "tolower",
+    "toupper",
+    "trim",
+    "untar",
+    "unzip",
+    "ziplist",
     # mosel exam mmjobs | sed -n -e "s/ [pf][a-z]* \([a-zA-Z0-9_]*\).*/'\1',/p" | sort -u
-    'canceltimer',
-    'clearaliases',
-    'compile',
-    'connect',
-    'detach',
-    'disconnect',
-    'dropnextevent',
-    'findxsrvs',
-    'getaliases',
-    'getannidents',
-    'getannotations',
-    'getbanner',
-    'getclass',
-    'getdsoprop',
-    'getdsopropnum',
-    'getexitcode',
-    'getfromgid',
-    'getfromid',
-    'getfromuid',
-    'getgid',
-    'gethostalias',
-    'getid',
-    'getmodprop',
-    'getmodpropnum',
-    'getnextevent',
-    'getnode',
-    'getrmtid',
-    'getstatus',
-    'getsysinfo',
-    'gettimer',
-    'getuid',
-    'getvalue',
-    'isqueueempty',
-    'load',
-    'nullevent',
-    'peeknextevent',
-    'resetmodpar',
-    'run',
-    'send',
-    'setcontrol',
-    'setdefstream',
-    'setgid',
-    'sethostalias',
-    'setmodpar',
-    'settimer',
-    'setuid',
-    'setworkdir',
-    'stop',
-    'unload',
-    'wait',
-    'waitexpired',
-    'waitfor',
-    'waitforend',
+    "canceltimer",
+    "clearaliases",
+    "compile",
+    "connect",
+    "detach",
+    "disconnect",
+    "dropnextevent",
+    "findxsrvs",
+    "getaliases",
+    "getannidents",
+    "getannotations",
+    "getbanner",
+    "getclass",
+    "getdsoprop",
+    "getdsopropnum",
+    "getexitcode",
+    "getfromgid",
+    "getfromid",
+    "getfromuid",
+    "getgid",
+    "gethostalias",
+    "getid",
+    "getmodprop",
+    "getmodpropnum",
+    "getnextevent",
+    "getnode",
+    "getrmtid",
+    "getstatus",
+    "getsysinfo",
+    "gettimer",
+    "getuid",
+    "getvalue",
+    "isqueueempty",
+    "load",
+    "nullevent",
+    "peeknextevent",
+    "resetmodpar",
+    "run",
+    "send",
+    "setcontrol",
+    "setdefstream",
+    "setgid",
+    "sethostalias",
+    "setmodpar",
+    "settimer",
+    "setuid",
+    "setworkdir",
+    "stop",
+    "unload",
+    "wait",
+    "waitexpired",
+    "waitfor",
+    "waitforend",
 )
 
 
@@ -392,56 +397,140 @@ class MoselLexer(RegexLexer):
     """
     For the Mosel optimization language.
     """
-    name = 'Mosel'
-    aliases = ['mosel']
-    filenames = ['*.mos']
-    url = 'https://www.fico.com/fico-xpress-optimization/docs/latest/mosel/mosel_lang/dhtml/moselreflang.html'
-    version_added = '2.6'
+
+    name = "Mosel"
+    aliases = ["mosel"]
+    filenames = ["*.mos"]
+    url = "https://www.fico.com/fico-xpress-optimization/docs/latest/mosel/mosel_lang/dhtml/moselreflang.html"
+    version_added = "2.6"
 
     tokens = {
-        'root': [
-            (r'\n', Text),
-            (r'\s+', Text.Whitespace),
-            (r'!.*?\n', Comment.Single),
-            (r'\(!(.|\n)*?!\)', Comment.Multiline),
-            (words((
-                'and', 'as', 'break', 'case', 'count', 'declarations', 'do',
-                'dynamic', 'elif', 'else', 'end-', 'end', 'evaluation', 'false',
-                'forall', 'forward', 'from', 'function', 'hashmap', 'if',
-                'imports', 'include', 'initialisations', 'initializations', 'inter',
-                'max', 'min', 'model', 'namespace', 'next', 'not', 'nsgroup',
-                'nssearch', 'of', 'options', 'or', 'package', 'parameters',
-                'procedure', 'public', 'prod', 'record', 'repeat', 'requirements',
-                'return', 'sum', 'then', 'to', 'true', 'union', 'until', 'uses',
-                'version', 'while', 'with'), prefix=r'\b', suffix=r'\b'),
-             Keyword.Builtin),
-            (words((
-                'range', 'array', 'set', 'list', 'mpvar', 'mpproblem', 'linctr',
-                'nlctr', 'integer', 'string', 'real', 'boolean', 'text', 'time',
-                'date', 'datetime', 'returned', 'Model', 'Mosel', 'counter',
-                'xmldoc', 'is_sos1', 'is_sos2', 'is_integer', 'is_binary',
-                'is_continuous', 'is_free', 'is_semcont', 'is_semint',
-                'is_partint'), prefix=r'\b', suffix=r'\b'),
-             Keyword.Type),
-            (r'(\+|\-|\*|/|=|<=|>=|\||\^|<|>|<>|\.\.|\.|:=|::|:|in|mod|div)',
-             Operator),
-            (r'[()\[\]{},;]+', Punctuation),
-            (words(FUNCTIONS,  prefix=r'\b', suffix=r'\b'), Name.Function),
-            (r'(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?', Number.Float),
-            (r'\d+([eE][+-]?\d+)?', Number.Integer),
-            (r'[+-]?Infinity', Number.Integer),
-            (r'0[xX][0-9a-fA-F]+', Number),
-            (r'"', String.Double, 'double_quote'),
-            (r'\'', String.Single, 'single_quote'),
-            (r'(\w+|(\.(?!\.)))', Text),
+        "root": [
+            (r"\n", Text),
+            (r"\s+", Text.Whitespace),
+            (r"!.*?\n", Comment.Single),
+            (r"\(!(.|\n)*?!\)", Comment.Multiline),
+            (
+                words(
+                    (
+                        "and",
+                        "as",
+                        "break",
+                        "case",
+                        "count",
+                        "declarations",
+                        "do",
+                        "dynamic",
+                        "elif",
+                        "else",
+                        "end-",
+                        "end",
+                        "evaluation",
+                        "false",
+                        "forall",
+                        "forward",
+                        "from",
+                        "function",
+                        "hashmap",
+                        "if",
+                        "imports",
+                        "include",
+                        "initialisations",
+                        "initializations",
+                        "inter",
+                        "max",
+                        "min",
+                        "model",
+                        "namespace",
+                        "next",
+                        "not",
+                        "nsgroup",
+                        "nssearch",
+                        "of",
+                        "options",
+                        "or",
+                        "package",
+                        "parameters",
+                        "procedure",
+                        "public",
+                        "prod",
+                        "record",
+                        "repeat",
+                        "requirements",
+                        "return",
+                        "sum",
+                        "then",
+                        "to",
+                        "true",
+                        "union",
+                        "until",
+                        "uses",
+                        "version",
+                        "while",
+                        "with",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Keyword.Builtin,
+            ),
+            (
+                words(
+                    (
+                        "range",
+                        "array",
+                        "set",
+                        "list",
+                        "mpvar",
+                        "mpproblem",
+                        "linctr",
+                        "nlctr",
+                        "integer",
+                        "string",
+                        "real",
+                        "boolean",
+                        "text",
+                        "time",
+                        "date",
+                        "datetime",
+                        "returned",
+                        "Model",
+                        "Mosel",
+                        "counter",
+                        "xmldoc",
+                        "is_sos1",
+                        "is_sos2",
+                        "is_integer",
+                        "is_binary",
+                        "is_continuous",
+                        "is_free",
+                        "is_semcont",
+                        "is_semint",
+                        "is_partint",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Keyword.Type,
+            ),
+            (r"(\+|\-|\*|/|=|<=|>=|\||\^|<|>|<>|\.\.|\.|:=|::|:|in|mod|div)", Operator),
+            (r"[()\[\]{},;]+", Punctuation),
+            (words(FUNCTIONS, prefix=r"\b", suffix=r"\b"), Name.Function),
+            (r"(\d+\.(?!\.)\d*|\.(?!.)\d+)([eE][+-]?\d+)?", Number.Float),
+            (r"\d+([eE][+-]?\d+)?", Number.Integer),
+            (r"[+-]?Infinity", Number.Integer),
+            (r"0[xX][0-9a-fA-F]+", Number),
+            (r'"', String.Double, "double_quote"),
+            (r"\'", String.Single, "single_quote"),
+            (r"(\w+|(\.(?!\.)))", Text),
         ],
-        'single_quote': [
-            (r'\'', String.Single, '#pop'),
-            (r'[^\']+', String.Single),
+        "single_quote": [
+            (r"\'", String.Single, "#pop"),
+            (r"[^\']+", String.Single),
         ],
-        'double_quote': [
+        "double_quote": [
             (r'(\\"|\\[0-7]{1,3}\D|\\[abfnrtv]|\\\\)', String.Escape),
-            (r'\"', String.Double, '#pop'),
+            (r"\"", String.Double, "#pop"),
             (r'[^"\\]+', String.Double),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ncl.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ncl.py
index d2f4760..c33c9d3 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ncl.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ncl.py
@@ -1,894 +1,2836 @@
 """
-    pygments.lexers.ncl
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.ncl
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for NCAR Command Language.
+Lexers for NCAR Command Language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['NCLLexer']
+__all__ = ["NCLLexer"]
 
 
 class NCLLexer(RegexLexer):
     """
     Lexer for NCL code.
     """
-    name = 'NCL'
-    aliases = ['ncl']
-    filenames = ['*.ncl']
-    mimetypes = ['text/ncl']
-    url = 'https://www.ncl.ucar.edu'
-    version_added = '2.2'
+
+    name = "NCL"
+    aliases = ["ncl"]
+    filenames = ["*.ncl"]
+    mimetypes = ["text/ncl"]
+    url = "https://www.ncl.ucar.edu"
+    version_added = "2.2"
 
     flags = re.MULTILINE
 
     tokens = {
-        'root': [
-            (r';.*\n', Comment),
-            include('strings'),
-            include('core'),
-            (r'[a-zA-Z_]\w*', Name),
-            include('nums'),
-            (r'[\s]+', Text),
+        "root": [
+            (r";.*\n", Comment),
+            include("strings"),
+            include("core"),
+            (r"[a-zA-Z_]\w*", Name),
+            include("nums"),
+            (r"[\s]+", Text),
         ],
-        'core': [
+        "core": [
             # Statements
-            (words((
-                'begin', 'break', 'continue', 'create', 'defaultapp', 'do',
-                'else', 'end', 'external', 'exit', 'True', 'False', 'file', 'function',
-                'getvalues', 'graphic', 'group', 'if', 'list', 'load', 'local',
-                'new', '_Missing', 'Missing', 'noparent', 'procedure',
-                'quit', 'QUIT', 'Quit', 'record', 'return', 'setvalues', 'stop',
-                'then', 'while'), prefix=r'\b', suffix=r'\s*\b'),
-             Keyword),
-
+            (
+                words(
+                    (
+                        "begin",
+                        "break",
+                        "continue",
+                        "create",
+                        "defaultapp",
+                        "do",
+                        "else",
+                        "end",
+                        "external",
+                        "exit",
+                        "True",
+                        "False",
+                        "file",
+                        "function",
+                        "getvalues",
+                        "graphic",
+                        "group",
+                        "if",
+                        "list",
+                        "load",
+                        "local",
+                        "new",
+                        "_Missing",
+                        "Missing",
+                        "noparent",
+                        "procedure",
+                        "quit",
+                        "QUIT",
+                        "Quit",
+                        "record",
+                        "return",
+                        "setvalues",
+                        "stop",
+                        "then",
+                        "while",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\s*\b",
+                ),
+                Keyword,
+            ),
             # Data Types
-            (words((
-                'ubyte', 'uint', 'uint64', 'ulong', 'string', 'byte',
-                'character', 'double', 'float', 'integer', 'int64', 'logical',
-                'long', 'short', 'ushort', 'enumeric', 'numeric', 'snumeric'),
-                prefix=r'\b', suffix=r'\s*\b'),
-             Keyword.Type),
-
+            (
+                words(
+                    (
+                        "ubyte",
+                        "uint",
+                        "uint64",
+                        "ulong",
+                        "string",
+                        "byte",
+                        "character",
+                        "double",
+                        "float",
+                        "integer",
+                        "int64",
+                        "logical",
+                        "long",
+                        "short",
+                        "ushort",
+                        "enumeric",
+                        "numeric",
+                        "snumeric",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\s*\b",
+                ),
+                Keyword.Type,
+            ),
             # Operators
-            (r'[\%^*+\-/<>]', Operator),
-
+            (r"[\%^*+\-/<>]", Operator),
             # punctuation:
-            (r'[\[\]():@$!&|.,\\{}]', Punctuation),
-            (r'[=:]', Punctuation),
-
+            (r"[\[\]():@$!&|.,\\{}]", Punctuation),
+            (r"[=:]", Punctuation),
             # Intrinsics
-            (words((
-                'abs', 'acos', 'addfile', 'addfiles', 'all', 'angmom_atm', 'any',
-                'area_conserve_remap', 'area_hi2lores', 'area_poly_sphere',
-                'asciiread', 'asciiwrite', 'asin', 'atan', 'atan2', 'attsetvalues',
-                'avg', 'betainc', 'bin_avg', 'bin_sum', 'bw_bandpass_filter',
-                'cancor', 'cbinread', 'cbinwrite', 'cd_calendar', 'cd_inv_calendar',
-                'cdfbin_p', 'cdfbin_pr', 'cdfbin_s', 'cdfbin_xn', 'cdfchi_p',
-                'cdfchi_x', 'cdfgam_p', 'cdfgam_x', 'cdfnor_p', 'cdfnor_x',
-                'cdft_p', 'cdft_t', 'ceil', 'center_finite_diff',
-                'center_finite_diff_n', 'cfftb', 'cfftf', 'cfftf_frq_reorder',
-                'charactertodouble', 'charactertofloat', 'charactertointeger',
-                'charactertolong', 'charactertoshort', 'charactertostring',
-                'chartodouble', 'chartofloat', 'chartoint', 'chartointeger',
-                'chartolong', 'chartoshort', 'chartostring', 'chiinv', 'clear',
-                'color_index_to_rgba', 'conform', 'conform_dims', 'cos', 'cosh',
-                'count_unique_values', 'covcorm', 'covcorm_xy', 'craybinnumrec',
-                'craybinrecread', 'create_graphic', 'csa1', 'csa1d', 'csa1s',
-                'csa1x', 'csa1xd', 'csa1xs', 'csa2', 'csa2d', 'csa2l', 'csa2ld',
-                'csa2ls', 'csa2lx', 'csa2lxd', 'csa2lxs', 'csa2s', 'csa2x',
-                'csa2xd', 'csa2xs', 'csa3', 'csa3d', 'csa3l', 'csa3ld', 'csa3ls',
-                'csa3lx', 'csa3lxd', 'csa3lxs', 'csa3s', 'csa3x', 'csa3xd',
-                'csa3xs', 'csc2s', 'csgetp', 'css2c', 'cssetp', 'cssgrid', 'csstri',
-                'csvoro', 'cumsum', 'cz2ccm', 'datatondc', 'day_of_week',
-                'day_of_year', 'days_in_month', 'default_fillvalue', 'delete',
-                'depth_to_pres', 'destroy', 'determinant', 'dewtemp_trh',
-                'dgeevx_lapack', 'dim_acumrun_n', 'dim_avg', 'dim_avg_n',
-                'dim_avg_wgt', 'dim_avg_wgt_n', 'dim_cumsum', 'dim_cumsum_n',
-                'dim_gamfit_n', 'dim_gbits', 'dim_max', 'dim_max_n', 'dim_median',
-                'dim_median_n', 'dim_min', 'dim_min_n', 'dim_num', 'dim_num_n',
-                'dim_numrun_n', 'dim_pqsort', 'dim_pqsort_n', 'dim_product',
-                'dim_product_n', 'dim_rmsd', 'dim_rmsd_n', 'dim_rmvmean',
-                'dim_rmvmean_n', 'dim_rmvmed', 'dim_rmvmed_n', 'dim_spi_n',
-                'dim_standardize', 'dim_standardize_n', 'dim_stat4', 'dim_stat4_n',
-                'dim_stddev', 'dim_stddev_n', 'dim_sum', 'dim_sum_n', 'dim_sum_wgt',
-                'dim_sum_wgt_n', 'dim_variance', 'dim_variance_n', 'dimsizes',
-                'doubletobyte', 'doubletochar', 'doubletocharacter',
-                'doubletofloat', 'doubletoint', 'doubletointeger', 'doubletolong',
-                'doubletoshort', 'dpres_hybrid_ccm', 'dpres_plevel', 'draw',
-                'draw_color_palette', 'dsgetp', 'dsgrid2', 'dsgrid2d', 'dsgrid2s',
-                'dsgrid3', 'dsgrid3d', 'dsgrid3s', 'dspnt2', 'dspnt2d', 'dspnt2s',
-                'dspnt3', 'dspnt3d', 'dspnt3s', 'dssetp', 'dtrend', 'dtrend_msg',
-                'dtrend_msg_n', 'dtrend_n', 'dtrend_quadratic',
-                'dtrend_quadratic_msg_n', 'dv2uvf', 'dv2uvg', 'dz_height',
-                'echo_off', 'echo_on', 'eof2data', 'eof_varimax', 'eofcor',
-                'eofcor_pcmsg', 'eofcor_ts', 'eofcov', 'eofcov_pcmsg', 'eofcov_ts',
-                'eofunc', 'eofunc_ts', 'eofunc_varimax', 'equiv_sample_size', 'erf',
-                'erfc', 'esacr', 'esacv', 'esccr', 'esccv', 'escorc', 'escorc_n',
-                'escovc', 'exit', 'exp', 'exp_tapersh', 'exp_tapersh_wgts',
-                'exp_tapershC', 'ezfftb', 'ezfftb_n', 'ezfftf', 'ezfftf_n',
-                'f2fosh', 'f2foshv', 'f2fsh', 'f2fshv', 'f2gsh', 'f2gshv', 'fabs',
-                'fbindirread', 'fbindirwrite', 'fbinnumrec', 'fbinread',
-                'fbinrecread', 'fbinrecwrite', 'fbinwrite', 'fft2db', 'fft2df',
-                'fftshift', 'fileattdef', 'filechunkdimdef', 'filedimdef',
-                'fileexists', 'filegrpdef', 'filevarattdef', 'filevarchunkdef',
-                'filevarcompressleveldef', 'filevardef', 'filevardimsizes',
-                'filwgts_lancos', 'filwgts_lanczos', 'filwgts_normal',
-                'floattobyte', 'floattochar', 'floattocharacter', 'floattoint',
-                'floattointeger', 'floattolong', 'floattoshort', 'floor',
-                'fluxEddy', 'fo2fsh', 'fo2fshv', 'fourier_info', 'frame', 'fspan',
-                'ftcurv', 'ftcurvd', 'ftcurvi', 'ftcurvp', 'ftcurvpi', 'ftcurvps',
-                'ftcurvs', 'ftest', 'ftgetp', 'ftkurv', 'ftkurvd', 'ftkurvp',
-                'ftkurvpd', 'ftsetp', 'ftsurf', 'g2fsh', 'g2fshv', 'g2gsh',
-                'g2gshv', 'gamma', 'gammainc', 'gaus', 'gaus_lobat',
-                'gaus_lobat_wgt', 'gc_aangle', 'gc_clkwise', 'gc_dangle',
-                'gc_inout', 'gc_latlon', 'gc_onarc', 'gc_pnt2gc', 'gc_qarea',
-                'gc_tarea', 'generate_2d_array', 'get_color_index',
-                'get_color_rgba', 'get_cpu_time', 'get_isolines', 'get_ncl_version',
-                'get_script_name', 'get_script_prefix_name', 'get_sphere_radius',
-                'get_unique_values', 'getbitsone', 'getenv', 'getfiledimsizes',
-                'getfilegrpnames', 'getfilepath', 'getfilevaratts',
-                'getfilevarchunkdimsizes', 'getfilevardims', 'getfilevardimsizes',
-                'getfilevarnames', 'getfilevartypes', 'getvaratts', 'getvardims',
-                'gradsf', 'gradsg', 'greg2jul', 'grid2triple', 'hlsrgb', 'hsvrgb',
-                'hydro', 'hyi2hyo', 'idsfft', 'igradsf', 'igradsg', 'ilapsf',
-                'ilapsg', 'ilapvf', 'ilapvg', 'ind', 'ind_resolve', 'int2p',
-                'int2p_n', 'integertobyte', 'integertochar', 'integertocharacter',
-                'integertoshort', 'inttobyte', 'inttochar', 'inttoshort',
-                'inverse_matrix', 'isatt', 'isbigendian', 'isbyte', 'ischar',
-                'iscoord', 'isdefined', 'isdim', 'isdimnamed', 'isdouble',
-                'isenumeric', 'isfile', 'isfilepresent', 'isfilevar',
-                'isfilevaratt', 'isfilevarcoord', 'isfilevardim', 'isfloat',
-                'isfunc', 'isgraphic', 'isint', 'isint64', 'isinteger',
-                'isleapyear', 'islogical', 'islong', 'ismissing', 'isnan_ieee',
-                'isnumeric', 'ispan', 'isproc', 'isshort', 'issnumeric', 'isstring',
-                'isubyte', 'isuint', 'isuint64', 'isulong', 'isunlimited',
-                'isunsigned', 'isushort', 'isvar', 'jul2greg', 'kmeans_as136',
-                'kolsm2_n', 'kron_product', 'lapsf', 'lapsg', 'lapvf', 'lapvg',
-                'latlon2utm', 'lclvl', 'lderuvf', 'lderuvg', 'linint1', 'linint1_n',
-                'linint2', 'linint2_points', 'linmsg', 'linmsg_n', 'linrood_latwgt',
-                'linrood_wgt', 'list_files', 'list_filevars', 'list_hlus',
-                'list_procfuncs', 'list_vars', 'ListAppend', 'ListCount',
-                'ListGetType', 'ListIndex', 'ListIndexFromName', 'ListPop',
-                'ListPush', 'ListSetType', 'loadscript', 'local_max', 'local_min',
-                'log', 'log10', 'longtobyte', 'longtochar', 'longtocharacter',
-                'longtoint', 'longtointeger', 'longtoshort', 'lspoly', 'lspoly_n',
-                'mask', 'max', 'maxind', 'min', 'minind', 'mixed_layer_depth',
-                'mixhum_ptd', 'mixhum_ptrh', 'mjo_cross_coh2pha',
-                'mjo_cross_segment', 'moc_globe_atl', 'monthday', 'natgrid',
-                'natgridd', 'natgrids', 'ncargpath', 'ncargversion', 'ndctodata',
-                'ndtooned', 'new', 'NewList', 'ngezlogo', 'nggcog', 'nggetp',
-                'nglogo', 'ngsetp', 'NhlAddAnnotation', 'NhlAddData',
-                'NhlAddOverlay', 'NhlAddPrimitive', 'NhlAppGetDefaultParentId',
-                'NhlChangeWorkstation', 'NhlClassName', 'NhlClearWorkstation',
-                'NhlDataPolygon', 'NhlDataPolyline', 'NhlDataPolymarker',
-                'NhlDataToNDC', 'NhlDestroy', 'NhlDraw', 'NhlFrame', 'NhlFreeColor',
-                'NhlGetBB', 'NhlGetClassResources', 'NhlGetErrorObjectId',
-                'NhlGetNamedColorIndex', 'NhlGetParentId',
-                'NhlGetParentWorkstation', 'NhlGetWorkspaceObjectId',
-                'NhlIsAllocatedColor', 'NhlIsApp', 'NhlIsDataComm', 'NhlIsDataItem',
-                'NhlIsDataSpec', 'NhlIsTransform', 'NhlIsView', 'NhlIsWorkstation',
-                'NhlName', 'NhlNDCPolygon', 'NhlNDCPolyline', 'NhlNDCPolymarker',
-                'NhlNDCToData', 'NhlNewColor', 'NhlNewDashPattern', 'NhlNewMarker',
-                'NhlPalGetDefined', 'NhlRemoveAnnotation', 'NhlRemoveData',
-                'NhlRemoveOverlay', 'NhlRemovePrimitive', 'NhlSetColor',
-                'NhlSetDashPattern', 'NhlSetMarker', 'NhlUpdateData',
-                'NhlUpdateWorkstation', 'nice_mnmxintvl', 'nngetaspectd',
-                'nngetaspects', 'nngetp', 'nngetsloped', 'nngetslopes', 'nngetwts',
-                'nngetwtsd', 'nnpnt', 'nnpntd', 'nnpntend', 'nnpntendd',
-                'nnpntinit', 'nnpntinitd', 'nnpntinits', 'nnpnts', 'nnsetp', 'num',
-                'obj_anal_ic', 'omega_ccm', 'onedtond', 'overlay', 'paleo_outline',
-                'pdfxy_bin', 'poisson_grid_fill', 'pop_remap', 'potmp_insitu_ocn',
-                'prcwater_dp', 'pres2hybrid', 'pres_hybrid_ccm', 'pres_sigma',
-                'print', 'print_table', 'printFileVarSummary', 'printVarSummary',
-                'product', 'pslec', 'pslhor', 'pslhyp', 'qsort', 'rand',
-                'random_chi', 'random_gamma', 'random_normal', 'random_setallseed',
-                'random_uniform', 'rcm2points', 'rcm2rgrid', 'rdsstoi',
-                'read_colormap_file', 'reg_multlin', 'regcoef', 'regCoef_n',
-                'regline', 'relhum', 'replace_ieeenan', 'reshape', 'reshape_ind',
-                'rgba_to_color_index', 'rgbhls', 'rgbhsv', 'rgbyiq', 'rgrid2rcm',
-                'rhomb_trunc', 'rip_cape_2d', 'rip_cape_3d', 'round', 'rtest',
-                'runave', 'runave_n', 'set_default_fillvalue', 'set_sphere_radius',
-                'setfileoption', 'sfvp2uvf', 'sfvp2uvg', 'shaec', 'shagc',
-                'shgetnp', 'shgetp', 'shgrid', 'shorttobyte', 'shorttochar',
-                'shorttocharacter', 'show_ascii', 'shsec', 'shsetp', 'shsgc',
-                'shsgc_R42', 'sigma2hybrid', 'simpeq', 'simpne', 'sin',
-                'sindex_yrmo', 'sinh', 'sizeof', 'sleep', 'smth9', 'snindex_yrmo',
-                'solve_linsys', 'span_color_indexes', 'span_color_rgba',
-                'sparse_matrix_mult', 'spcorr', 'spcorr_n', 'specx_anal',
-                'specxy_anal', 'spei', 'sprintf', 'sprinti', 'sqrt', 'sqsort',
-                'srand', 'stat2', 'stat4', 'stat_medrng', 'stat_trim',
-                'status_exit', 'stdatmus_p2tdz', 'stdatmus_z2tdp', 'stddev',
-                'str_capital', 'str_concat', 'str_fields_count', 'str_get_cols',
-                'str_get_dq', 'str_get_field', 'str_get_nl', 'str_get_sq',
-                'str_get_tab', 'str_index_of_substr', 'str_insert', 'str_is_blank',
-                'str_join', 'str_left_strip', 'str_lower', 'str_match',
-                'str_match_ic', 'str_match_ic_regex', 'str_match_ind',
-                'str_match_ind_ic', 'str_match_ind_ic_regex', 'str_match_ind_regex',
-                'str_match_regex', 'str_right_strip', 'str_split',
-                'str_split_by_length', 'str_split_csv', 'str_squeeze', 'str_strip',
-                'str_sub_str', 'str_switch', 'str_upper', 'stringtochar',
-                'stringtocharacter', 'stringtodouble', 'stringtofloat',
-                'stringtoint', 'stringtointeger', 'stringtolong', 'stringtoshort',
-                'strlen', 'student_t', 'sum', 'svd_lapack', 'svdcov', 'svdcov_sv',
-                'svdstd', 'svdstd_sv', 'system', 'systemfunc', 'tan', 'tanh',
-                'taper', 'taper_n', 'tdclrs', 'tdctri', 'tdcudp', 'tdcurv',
-                'tddtri', 'tdez2d', 'tdez3d', 'tdgetp', 'tdgrds', 'tdgrid',
-                'tdgtrs', 'tdinit', 'tditri', 'tdlbla', 'tdlblp', 'tdlbls',
-                'tdline', 'tdlndp', 'tdlnpa', 'tdlpdp', 'tdmtri', 'tdotri',
-                'tdpara', 'tdplch', 'tdprpa', 'tdprpi', 'tdprpt', 'tdsetp',
-                'tdsort', 'tdstri', 'tdstrs', 'tdttri', 'thornthwaite', 'tobyte',
-                'tochar', 'todouble', 'tofloat', 'toint', 'toint64', 'tointeger',
-                'tolong', 'toshort', 'tosigned', 'tostring', 'tostring_with_format',
-                'totype', 'toubyte', 'touint', 'touint64', 'toulong', 'tounsigned',
-                'toushort', 'trend_manken', 'tri_trunc', 'triple2grid',
-                'triple2grid2d', 'trop_wmo', 'ttest', 'typeof', 'undef',
-                'unique_string', 'update', 'ushorttoint', 'ut_calendar',
-                'ut_inv_calendar', 'utm2latlon', 'uv2dv_cfd', 'uv2dvf', 'uv2dvg',
-                'uv2sfvpf', 'uv2sfvpg', 'uv2vr_cfd', 'uv2vrdvf', 'uv2vrdvg',
-                'uv2vrf', 'uv2vrg', 'v5d_close', 'v5d_create', 'v5d_setLowLev',
-                'v5d_setUnits', 'v5d_write', 'v5d_write_var', 'variance', 'vhaec',
-                'vhagc', 'vhsec', 'vhsgc', 'vibeta', 'vinth2p', 'vinth2p_ecmwf',
-                'vinth2p_ecmwf_nodes', 'vinth2p_nodes', 'vintp2p_ecmwf', 'vr2uvf',
-                'vr2uvg', 'vrdv2uvf', 'vrdv2uvg', 'wavelet', 'wavelet_default',
-                'weibull', 'wgt_area_smooth', 'wgt_areaave', 'wgt_areaave2',
-                'wgt_arearmse', 'wgt_arearmse2', 'wgt_areasum2', 'wgt_runave',
-                'wgt_runave_n', 'wgt_vert_avg_beta', 'wgt_volave', 'wgt_volave_ccm',
-                'wgt_volrmse', 'wgt_volrmse_ccm', 'where', 'wk_smooth121', 'wmbarb',
-                'wmbarbmap', 'wmdrft', 'wmgetp', 'wmlabs', 'wmsetp', 'wmstnm',
-                'wmvect', 'wmvectmap', 'wmvlbl', 'wrf_avo', 'wrf_cape_2d',
-                'wrf_cape_3d', 'wrf_dbz', 'wrf_eth', 'wrf_helicity', 'wrf_ij_to_ll',
-                'wrf_interp_1d', 'wrf_interp_2d_xy', 'wrf_interp_3d_z',
-                'wrf_latlon_to_ij', 'wrf_ll_to_ij', 'wrf_omega', 'wrf_pvo',
-                'wrf_rh', 'wrf_slp', 'wrf_smooth_2d', 'wrf_td', 'wrf_tk',
-                'wrf_updraft_helicity', 'wrf_uvmet', 'wrf_virtual_temp',
-                'wrf_wetbulb', 'wrf_wps_close_int', 'wrf_wps_open_int',
-                'wrf_wps_rddata_int', 'wrf_wps_rdhead_int', 'wrf_wps_read_int',
-                'wrf_wps_write_int', 'write_matrix', 'write_table', 'yiqrgb',
-                'z2geouv', 'zonal_mpsi', 'addfiles_GetVar', 'advect_variable',
-                'area_conserve_remap_Wrap', 'area_hi2lores_Wrap',
-                'array_append_record', 'assignFillValue', 'byte2flt',
-                'byte2flt_hdf', 'calcDayAnomTLL', 'calcMonAnomLLLT',
-                'calcMonAnomLLT', 'calcMonAnomTLL', 'calcMonAnomTLLL',
-                'calculate_monthly_values', 'cd_convert', 'changeCase',
-                'changeCaseChar', 'clmDayTLL', 'clmDayTLLL', 'clmMon2clmDay',
-                'clmMonLLLT', 'clmMonLLT', 'clmMonTLL', 'clmMonTLLL', 'closest_val',
-                'copy_VarAtts', 'copy_VarCoords', 'copy_VarCoords_1',
-                'copy_VarCoords_2', 'copy_VarMeta', 'copyatt', 'crossp3',
-                'cshstringtolist', 'cssgrid_Wrap', 'dble2flt', 'decimalPlaces',
-                'delete_VarAtts', 'dim_avg_n_Wrap', 'dim_avg_wgt_n_Wrap',
-                'dim_avg_wgt_Wrap', 'dim_avg_Wrap', 'dim_cumsum_n_Wrap',
-                'dim_cumsum_Wrap', 'dim_max_n_Wrap', 'dim_min_n_Wrap',
-                'dim_rmsd_n_Wrap', 'dim_rmsd_Wrap', 'dim_rmvmean_n_Wrap',
-                'dim_rmvmean_Wrap', 'dim_rmvmed_n_Wrap', 'dim_rmvmed_Wrap',
-                'dim_standardize_n_Wrap', 'dim_standardize_Wrap',
-                'dim_stddev_n_Wrap', 'dim_stddev_Wrap', 'dim_sum_n_Wrap',
-                'dim_sum_wgt_n_Wrap', 'dim_sum_wgt_Wrap', 'dim_sum_Wrap',
-                'dim_variance_n_Wrap', 'dim_variance_Wrap', 'dpres_plevel_Wrap',
-                'dtrend_leftdim', 'dv2uvF_Wrap', 'dv2uvG_Wrap', 'eof_north',
-                'eofcor_Wrap', 'eofcov_Wrap', 'eofunc_north', 'eofunc_ts_Wrap',
-                'eofunc_varimax_reorder', 'eofunc_varimax_Wrap', 'eofunc_Wrap',
-                'epsZero', 'f2fosh_Wrap', 'f2foshv_Wrap', 'f2fsh_Wrap',
-                'f2fshv_Wrap', 'f2gsh_Wrap', 'f2gshv_Wrap', 'fbindirSwap',
-                'fbinseqSwap1', 'fbinseqSwap2', 'flt2dble', 'flt2string',
-                'fo2fsh_Wrap', 'fo2fshv_Wrap', 'g2fsh_Wrap', 'g2fshv_Wrap',
-                'g2gsh_Wrap', 'g2gshv_Wrap', 'generate_resample_indices',
-                'generate_sample_indices', 'generate_unique_indices',
-                'genNormalDist', 'get1Dindex', 'get1Dindex_Collapse',
-                'get1Dindex_Exclude', 'get_file_suffix', 'GetFillColor',
-                'GetFillColorIndex', 'getFillValue', 'getind_latlon2d',
-                'getVarDimNames', 'getVarFillValue', 'grib_stime2itime',
-                'hyi2hyo_Wrap', 'ilapsF_Wrap', 'ilapsG_Wrap', 'ind_nearest_coord',
-                'indStrSubset', 'int2dble', 'int2flt', 'int2p_n_Wrap', 'int2p_Wrap',
-                'isMonotonic', 'isStrSubset', 'latGau', 'latGauWgt', 'latGlobeF',
-                'latGlobeFo', 'latRegWgt', 'linint1_n_Wrap', 'linint1_Wrap',
-                'linint2_points_Wrap', 'linint2_Wrap', 'local_max_1d',
-                'local_min_1d', 'lonFlip', 'lonGlobeF', 'lonGlobeFo', 'lonPivot',
-                'merge_levels_sfc', 'mod', 'month_to_annual',
-                'month_to_annual_weighted', 'month_to_season', 'month_to_season12',
-                'month_to_seasonN', 'monthly_total_to_daily_mean', 'nameDim',
-                'natgrid_Wrap', 'NewCosWeight', 'niceLatLon2D', 'NormCosWgtGlobe',
-                'numAsciiCol', 'numAsciiRow', 'numeric2int',
-                'obj_anal_ic_deprecated', 'obj_anal_ic_Wrap', 'omega_ccm_driver',
-                'omega_to_w', 'oneDtostring', 'pack_values', 'pattern_cor', 'pdfx',
-                'pdfxy', 'pdfxy_conform', 'pot_temp', 'pot_vort_hybrid',
-                'pot_vort_isobaric', 'pres2hybrid_Wrap', 'print_clock',
-                'printMinMax', 'quadroots', 'rcm2points_Wrap', 'rcm2rgrid_Wrap',
-                'readAsciiHead', 'readAsciiTable', 'reg_multlin_stats',
-                'region_ind', 'regline_stats', 'relhum_ttd', 'replaceSingleChar',
-                'RGBtoCmap', 'rgrid2rcm_Wrap', 'rho_mwjf', 'rm_single_dims',
-                'rmAnnCycle1D', 'rmInsufData', 'rmMonAnnCycLLLT', 'rmMonAnnCycLLT',
-                'rmMonAnnCycTLL', 'runave_n_Wrap', 'runave_Wrap', 'short2flt',
-                'short2flt_hdf', 'shsgc_R42_Wrap', 'sign_f90', 'sign_matlab',
-                'smth9_Wrap', 'smthClmDayTLL', 'smthClmDayTLLL', 'SqrtCosWeight',
-                'stat_dispersion', 'static_stability', 'stdMonLLLT', 'stdMonLLT',
-                'stdMonTLL', 'stdMonTLLL', 'symMinMaxPlt', 'table_attach_columns',
-                'table_attach_rows', 'time_to_newtime', 'transpose',
-                'triple2grid_Wrap', 'ut_convert', 'uv2dvF_Wrap', 'uv2dvG_Wrap',
-                'uv2vrF_Wrap', 'uv2vrG_Wrap', 'vr2uvF_Wrap', 'vr2uvG_Wrap',
-                'w_to_omega', 'wallClockElapseTime', 'wave_number_spc',
-                'wgt_areaave_Wrap', 'wgt_runave_leftdim', 'wgt_runave_n_Wrap',
-                'wgt_runave_Wrap', 'wgt_vertical_n', 'wind_component',
-                'wind_direction', 'yyyyddd_to_yyyymmdd', 'yyyymm_time',
-                'yyyymm_to_yyyyfrac', 'yyyymmdd_time', 'yyyymmdd_to_yyyyddd',
-                'yyyymmdd_to_yyyyfrac', 'yyyymmddhh_time', 'yyyymmddhh_to_yyyyfrac',
-                'zonal_mpsi_Wrap', 'zonalAve', 'calendar_decode2', 'cd_string',
-                'kf_filter', 'run_cor', 'time_axis_labels', 'ut_string',
-                'wrf_contour', 'wrf_map', 'wrf_map_overlay', 'wrf_map_overlays',
-                'wrf_map_resources', 'wrf_map_zoom', 'wrf_overlay', 'wrf_overlays',
-                'wrf_user_getvar', 'wrf_user_ij_to_ll', 'wrf_user_intrp2d',
-                'wrf_user_intrp3d', 'wrf_user_latlon_to_ij', 'wrf_user_list_times',
-                'wrf_user_ll_to_ij', 'wrf_user_unstagger', 'wrf_user_vert_interp',
-                'wrf_vector', 'gsn_add_annotation', 'gsn_add_polygon',
-                'gsn_add_polyline', 'gsn_add_polymarker',
-                'gsn_add_shapefile_polygons', 'gsn_add_shapefile_polylines',
-                'gsn_add_shapefile_polymarkers', 'gsn_add_text', 'gsn_attach_plots',
-                'gsn_blank_plot', 'gsn_contour', 'gsn_contour_map',
-                'gsn_contour_shade', 'gsn_coordinates', 'gsn_create_labelbar',
-                'gsn_create_legend', 'gsn_create_text',
-                'gsn_csm_attach_zonal_means', 'gsn_csm_blank_plot',
-                'gsn_csm_contour', 'gsn_csm_contour_map', 'gsn_csm_contour_map_ce',
-                'gsn_csm_contour_map_overlay', 'gsn_csm_contour_map_polar',
-                'gsn_csm_hov', 'gsn_csm_lat_time', 'gsn_csm_map', 'gsn_csm_map_ce',
-                'gsn_csm_map_polar', 'gsn_csm_pres_hgt',
-                'gsn_csm_pres_hgt_streamline', 'gsn_csm_pres_hgt_vector',
-                'gsn_csm_streamline', 'gsn_csm_streamline_contour_map',
-                'gsn_csm_streamline_contour_map_ce',
-                'gsn_csm_streamline_contour_map_polar', 'gsn_csm_streamline_map',
-                'gsn_csm_streamline_map_ce', 'gsn_csm_streamline_map_polar',
-                'gsn_csm_streamline_scalar', 'gsn_csm_streamline_scalar_map',
-                'gsn_csm_streamline_scalar_map_ce',
-                'gsn_csm_streamline_scalar_map_polar', 'gsn_csm_time_lat',
-                'gsn_csm_vector', 'gsn_csm_vector_map', 'gsn_csm_vector_map_ce',
-                'gsn_csm_vector_map_polar', 'gsn_csm_vector_scalar',
-                'gsn_csm_vector_scalar_map', 'gsn_csm_vector_scalar_map_ce',
-                'gsn_csm_vector_scalar_map_polar', 'gsn_csm_x2y', 'gsn_csm_x2y2',
-                'gsn_csm_xy', 'gsn_csm_xy2', 'gsn_csm_xy3', 'gsn_csm_y',
-                'gsn_define_colormap', 'gsn_draw_colormap', 'gsn_draw_named_colors',
-                'gsn_histogram', 'gsn_labelbar_ndc', 'gsn_legend_ndc', 'gsn_map',
-                'gsn_merge_colormaps', 'gsn_open_wks', 'gsn_panel', 'gsn_polygon',
-                'gsn_polygon_ndc', 'gsn_polyline', 'gsn_polyline_ndc',
-                'gsn_polymarker', 'gsn_polymarker_ndc', 'gsn_retrieve_colormap',
-                'gsn_reverse_colormap', 'gsn_streamline', 'gsn_streamline_map',
-                'gsn_streamline_scalar', 'gsn_streamline_scalar_map', 'gsn_table',
-                'gsn_text', 'gsn_text_ndc', 'gsn_vector', 'gsn_vector_map',
-                'gsn_vector_scalar', 'gsn_vector_scalar_map', 'gsn_xy', 'gsn_y',
-                'hsv2rgb', 'maximize_output', 'namedcolor2rgb', 'namedcolor2rgba',
-                'reset_device_coordinates', 'span_named_colors'), prefix=r'\b'),
-             Name.Builtin),
-
+            (
+                words(
+                    (
+                        "abs",
+                        "acos",
+                        "addfile",
+                        "addfiles",
+                        "all",
+                        "angmom_atm",
+                        "any",
+                        "area_conserve_remap",
+                        "area_hi2lores",
+                        "area_poly_sphere",
+                        "asciiread",
+                        "asciiwrite",
+                        "asin",
+                        "atan",
+                        "atan2",
+                        "attsetvalues",
+                        "avg",
+                        "betainc",
+                        "bin_avg",
+                        "bin_sum",
+                        "bw_bandpass_filter",
+                        "cancor",
+                        "cbinread",
+                        "cbinwrite",
+                        "cd_calendar",
+                        "cd_inv_calendar",
+                        "cdfbin_p",
+                        "cdfbin_pr",
+                        "cdfbin_s",
+                        "cdfbin_xn",
+                        "cdfchi_p",
+                        "cdfchi_x",
+                        "cdfgam_p",
+                        "cdfgam_x",
+                        "cdfnor_p",
+                        "cdfnor_x",
+                        "cdft_p",
+                        "cdft_t",
+                        "ceil",
+                        "center_finite_diff",
+                        "center_finite_diff_n",
+                        "cfftb",
+                        "cfftf",
+                        "cfftf_frq_reorder",
+                        "charactertodouble",
+                        "charactertofloat",
+                        "charactertointeger",
+                        "charactertolong",
+                        "charactertoshort",
+                        "charactertostring",
+                        "chartodouble",
+                        "chartofloat",
+                        "chartoint",
+                        "chartointeger",
+                        "chartolong",
+                        "chartoshort",
+                        "chartostring",
+                        "chiinv",
+                        "clear",
+                        "color_index_to_rgba",
+                        "conform",
+                        "conform_dims",
+                        "cos",
+                        "cosh",
+                        "count_unique_values",
+                        "covcorm",
+                        "covcorm_xy",
+                        "craybinnumrec",
+                        "craybinrecread",
+                        "create_graphic",
+                        "csa1",
+                        "csa1d",
+                        "csa1s",
+                        "csa1x",
+                        "csa1xd",
+                        "csa1xs",
+                        "csa2",
+                        "csa2d",
+                        "csa2l",
+                        "csa2ld",
+                        "csa2ls",
+                        "csa2lx",
+                        "csa2lxd",
+                        "csa2lxs",
+                        "csa2s",
+                        "csa2x",
+                        "csa2xd",
+                        "csa2xs",
+                        "csa3",
+                        "csa3d",
+                        "csa3l",
+                        "csa3ld",
+                        "csa3ls",
+                        "csa3lx",
+                        "csa3lxd",
+                        "csa3lxs",
+                        "csa3s",
+                        "csa3x",
+                        "csa3xd",
+                        "csa3xs",
+                        "csc2s",
+                        "csgetp",
+                        "css2c",
+                        "cssetp",
+                        "cssgrid",
+                        "csstri",
+                        "csvoro",
+                        "cumsum",
+                        "cz2ccm",
+                        "datatondc",
+                        "day_of_week",
+                        "day_of_year",
+                        "days_in_month",
+                        "default_fillvalue",
+                        "delete",
+                        "depth_to_pres",
+                        "destroy",
+                        "determinant",
+                        "dewtemp_trh",
+                        "dgeevx_lapack",
+                        "dim_acumrun_n",
+                        "dim_avg",
+                        "dim_avg_n",
+                        "dim_avg_wgt",
+                        "dim_avg_wgt_n",
+                        "dim_cumsum",
+                        "dim_cumsum_n",
+                        "dim_gamfit_n",
+                        "dim_gbits",
+                        "dim_max",
+                        "dim_max_n",
+                        "dim_median",
+                        "dim_median_n",
+                        "dim_min",
+                        "dim_min_n",
+                        "dim_num",
+                        "dim_num_n",
+                        "dim_numrun_n",
+                        "dim_pqsort",
+                        "dim_pqsort_n",
+                        "dim_product",
+                        "dim_product_n",
+                        "dim_rmsd",
+                        "dim_rmsd_n",
+                        "dim_rmvmean",
+                        "dim_rmvmean_n",
+                        "dim_rmvmed",
+                        "dim_rmvmed_n",
+                        "dim_spi_n",
+                        "dim_standardize",
+                        "dim_standardize_n",
+                        "dim_stat4",
+                        "dim_stat4_n",
+                        "dim_stddev",
+                        "dim_stddev_n",
+                        "dim_sum",
+                        "dim_sum_n",
+                        "dim_sum_wgt",
+                        "dim_sum_wgt_n",
+                        "dim_variance",
+                        "dim_variance_n",
+                        "dimsizes",
+                        "doubletobyte",
+                        "doubletochar",
+                        "doubletocharacter",
+                        "doubletofloat",
+                        "doubletoint",
+                        "doubletointeger",
+                        "doubletolong",
+                        "doubletoshort",
+                        "dpres_hybrid_ccm",
+                        "dpres_plevel",
+                        "draw",
+                        "draw_color_palette",
+                        "dsgetp",
+                        "dsgrid2",
+                        "dsgrid2d",
+                        "dsgrid2s",
+                        "dsgrid3",
+                        "dsgrid3d",
+                        "dsgrid3s",
+                        "dspnt2",
+                        "dspnt2d",
+                        "dspnt2s",
+                        "dspnt3",
+                        "dspnt3d",
+                        "dspnt3s",
+                        "dssetp",
+                        "dtrend",
+                        "dtrend_msg",
+                        "dtrend_msg_n",
+                        "dtrend_n",
+                        "dtrend_quadratic",
+                        "dtrend_quadratic_msg_n",
+                        "dv2uvf",
+                        "dv2uvg",
+                        "dz_height",
+                        "echo_off",
+                        "echo_on",
+                        "eof2data",
+                        "eof_varimax",
+                        "eofcor",
+                        "eofcor_pcmsg",
+                        "eofcor_ts",
+                        "eofcov",
+                        "eofcov_pcmsg",
+                        "eofcov_ts",
+                        "eofunc",
+                        "eofunc_ts",
+                        "eofunc_varimax",
+                        "equiv_sample_size",
+                        "erf",
+                        "erfc",
+                        "esacr",
+                        "esacv",
+                        "esccr",
+                        "esccv",
+                        "escorc",
+                        "escorc_n",
+                        "escovc",
+                        "exit",
+                        "exp",
+                        "exp_tapersh",
+                        "exp_tapersh_wgts",
+                        "exp_tapershC",
+                        "ezfftb",
+                        "ezfftb_n",
+                        "ezfftf",
+                        "ezfftf_n",
+                        "f2fosh",
+                        "f2foshv",
+                        "f2fsh",
+                        "f2fshv",
+                        "f2gsh",
+                        "f2gshv",
+                        "fabs",
+                        "fbindirread",
+                        "fbindirwrite",
+                        "fbinnumrec",
+                        "fbinread",
+                        "fbinrecread",
+                        "fbinrecwrite",
+                        "fbinwrite",
+                        "fft2db",
+                        "fft2df",
+                        "fftshift",
+                        "fileattdef",
+                        "filechunkdimdef",
+                        "filedimdef",
+                        "fileexists",
+                        "filegrpdef",
+                        "filevarattdef",
+                        "filevarchunkdef",
+                        "filevarcompressleveldef",
+                        "filevardef",
+                        "filevardimsizes",
+                        "filwgts_lancos",
+                        "filwgts_lanczos",
+                        "filwgts_normal",
+                        "floattobyte",
+                        "floattochar",
+                        "floattocharacter",
+                        "floattoint",
+                        "floattointeger",
+                        "floattolong",
+                        "floattoshort",
+                        "floor",
+                        "fluxEddy",
+                        "fo2fsh",
+                        "fo2fshv",
+                        "fourier_info",
+                        "frame",
+                        "fspan",
+                        "ftcurv",
+                        "ftcurvd",
+                        "ftcurvi",
+                        "ftcurvp",
+                        "ftcurvpi",
+                        "ftcurvps",
+                        "ftcurvs",
+                        "ftest",
+                        "ftgetp",
+                        "ftkurv",
+                        "ftkurvd",
+                        "ftkurvp",
+                        "ftkurvpd",
+                        "ftsetp",
+                        "ftsurf",
+                        "g2fsh",
+                        "g2fshv",
+                        "g2gsh",
+                        "g2gshv",
+                        "gamma",
+                        "gammainc",
+                        "gaus",
+                        "gaus_lobat",
+                        "gaus_lobat_wgt",
+                        "gc_aangle",
+                        "gc_clkwise",
+                        "gc_dangle",
+                        "gc_inout",
+                        "gc_latlon",
+                        "gc_onarc",
+                        "gc_pnt2gc",
+                        "gc_qarea",
+                        "gc_tarea",
+                        "generate_2d_array",
+                        "get_color_index",
+                        "get_color_rgba",
+                        "get_cpu_time",
+                        "get_isolines",
+                        "get_ncl_version",
+                        "get_script_name",
+                        "get_script_prefix_name",
+                        "get_sphere_radius",
+                        "get_unique_values",
+                        "getbitsone",
+                        "getenv",
+                        "getfiledimsizes",
+                        "getfilegrpnames",
+                        "getfilepath",
+                        "getfilevaratts",
+                        "getfilevarchunkdimsizes",
+                        "getfilevardims",
+                        "getfilevardimsizes",
+                        "getfilevarnames",
+                        "getfilevartypes",
+                        "getvaratts",
+                        "getvardims",
+                        "gradsf",
+                        "gradsg",
+                        "greg2jul",
+                        "grid2triple",
+                        "hlsrgb",
+                        "hsvrgb",
+                        "hydro",
+                        "hyi2hyo",
+                        "idsfft",
+                        "igradsf",
+                        "igradsg",
+                        "ilapsf",
+                        "ilapsg",
+                        "ilapvf",
+                        "ilapvg",
+                        "ind",
+                        "ind_resolve",
+                        "int2p",
+                        "int2p_n",
+                        "integertobyte",
+                        "integertochar",
+                        "integertocharacter",
+                        "integertoshort",
+                        "inttobyte",
+                        "inttochar",
+                        "inttoshort",
+                        "inverse_matrix",
+                        "isatt",
+                        "isbigendian",
+                        "isbyte",
+                        "ischar",
+                        "iscoord",
+                        "isdefined",
+                        "isdim",
+                        "isdimnamed",
+                        "isdouble",
+                        "isenumeric",
+                        "isfile",
+                        "isfilepresent",
+                        "isfilevar",
+                        "isfilevaratt",
+                        "isfilevarcoord",
+                        "isfilevardim",
+                        "isfloat",
+                        "isfunc",
+                        "isgraphic",
+                        "isint",
+                        "isint64",
+                        "isinteger",
+                        "isleapyear",
+                        "islogical",
+                        "islong",
+                        "ismissing",
+                        "isnan_ieee",
+                        "isnumeric",
+                        "ispan",
+                        "isproc",
+                        "isshort",
+                        "issnumeric",
+                        "isstring",
+                        "isubyte",
+                        "isuint",
+                        "isuint64",
+                        "isulong",
+                        "isunlimited",
+                        "isunsigned",
+                        "isushort",
+                        "isvar",
+                        "jul2greg",
+                        "kmeans_as136",
+                        "kolsm2_n",
+                        "kron_product",
+                        "lapsf",
+                        "lapsg",
+                        "lapvf",
+                        "lapvg",
+                        "latlon2utm",
+                        "lclvl",
+                        "lderuvf",
+                        "lderuvg",
+                        "linint1",
+                        "linint1_n",
+                        "linint2",
+                        "linint2_points",
+                        "linmsg",
+                        "linmsg_n",
+                        "linrood_latwgt",
+                        "linrood_wgt",
+                        "list_files",
+                        "list_filevars",
+                        "list_hlus",
+                        "list_procfuncs",
+                        "list_vars",
+                        "ListAppend",
+                        "ListCount",
+                        "ListGetType",
+                        "ListIndex",
+                        "ListIndexFromName",
+                        "ListPop",
+                        "ListPush",
+                        "ListSetType",
+                        "loadscript",
+                        "local_max",
+                        "local_min",
+                        "log",
+                        "log10",
+                        "longtobyte",
+                        "longtochar",
+                        "longtocharacter",
+                        "longtoint",
+                        "longtointeger",
+                        "longtoshort",
+                        "lspoly",
+                        "lspoly_n",
+                        "mask",
+                        "max",
+                        "maxind",
+                        "min",
+                        "minind",
+                        "mixed_layer_depth",
+                        "mixhum_ptd",
+                        "mixhum_ptrh",
+                        "mjo_cross_coh2pha",
+                        "mjo_cross_segment",
+                        "moc_globe_atl",
+                        "monthday",
+                        "natgrid",
+                        "natgridd",
+                        "natgrids",
+                        "ncargpath",
+                        "ncargversion",
+                        "ndctodata",
+                        "ndtooned",
+                        "new",
+                        "NewList",
+                        "ngezlogo",
+                        "nggcog",
+                        "nggetp",
+                        "nglogo",
+                        "ngsetp",
+                        "NhlAddAnnotation",
+                        "NhlAddData",
+                        "NhlAddOverlay",
+                        "NhlAddPrimitive",
+                        "NhlAppGetDefaultParentId",
+                        "NhlChangeWorkstation",
+                        "NhlClassName",
+                        "NhlClearWorkstation",
+                        "NhlDataPolygon",
+                        "NhlDataPolyline",
+                        "NhlDataPolymarker",
+                        "NhlDataToNDC",
+                        "NhlDestroy",
+                        "NhlDraw",
+                        "NhlFrame",
+                        "NhlFreeColor",
+                        "NhlGetBB",
+                        "NhlGetClassResources",
+                        "NhlGetErrorObjectId",
+                        "NhlGetNamedColorIndex",
+                        "NhlGetParentId",
+                        "NhlGetParentWorkstation",
+                        "NhlGetWorkspaceObjectId",
+                        "NhlIsAllocatedColor",
+                        "NhlIsApp",
+                        "NhlIsDataComm",
+                        "NhlIsDataItem",
+                        "NhlIsDataSpec",
+                        "NhlIsTransform",
+                        "NhlIsView",
+                        "NhlIsWorkstation",
+                        "NhlName",
+                        "NhlNDCPolygon",
+                        "NhlNDCPolyline",
+                        "NhlNDCPolymarker",
+                        "NhlNDCToData",
+                        "NhlNewColor",
+                        "NhlNewDashPattern",
+                        "NhlNewMarker",
+                        "NhlPalGetDefined",
+                        "NhlRemoveAnnotation",
+                        "NhlRemoveData",
+                        "NhlRemoveOverlay",
+                        "NhlRemovePrimitive",
+                        "NhlSetColor",
+                        "NhlSetDashPattern",
+                        "NhlSetMarker",
+                        "NhlUpdateData",
+                        "NhlUpdateWorkstation",
+                        "nice_mnmxintvl",
+                        "nngetaspectd",
+                        "nngetaspects",
+                        "nngetp",
+                        "nngetsloped",
+                        "nngetslopes",
+                        "nngetwts",
+                        "nngetwtsd",
+                        "nnpnt",
+                        "nnpntd",
+                        "nnpntend",
+                        "nnpntendd",
+                        "nnpntinit",
+                        "nnpntinitd",
+                        "nnpntinits",
+                        "nnpnts",
+                        "nnsetp",
+                        "num",
+                        "obj_anal_ic",
+                        "omega_ccm",
+                        "onedtond",
+                        "overlay",
+                        "paleo_outline",
+                        "pdfxy_bin",
+                        "poisson_grid_fill",
+                        "pop_remap",
+                        "potmp_insitu_ocn",
+                        "prcwater_dp",
+                        "pres2hybrid",
+                        "pres_hybrid_ccm",
+                        "pres_sigma",
+                        "print",
+                        "print_table",
+                        "printFileVarSummary",
+                        "printVarSummary",
+                        "product",
+                        "pslec",
+                        "pslhor",
+                        "pslhyp",
+                        "qsort",
+                        "rand",
+                        "random_chi",
+                        "random_gamma",
+                        "random_normal",
+                        "random_setallseed",
+                        "random_uniform",
+                        "rcm2points",
+                        "rcm2rgrid",
+                        "rdsstoi",
+                        "read_colormap_file",
+                        "reg_multlin",
+                        "regcoef",
+                        "regCoef_n",
+                        "regline",
+                        "relhum",
+                        "replace_ieeenan",
+                        "reshape",
+                        "reshape_ind",
+                        "rgba_to_color_index",
+                        "rgbhls",
+                        "rgbhsv",
+                        "rgbyiq",
+                        "rgrid2rcm",
+                        "rhomb_trunc",
+                        "rip_cape_2d",
+                        "rip_cape_3d",
+                        "round",
+                        "rtest",
+                        "runave",
+                        "runave_n",
+                        "set_default_fillvalue",
+                        "set_sphere_radius",
+                        "setfileoption",
+                        "sfvp2uvf",
+                        "sfvp2uvg",
+                        "shaec",
+                        "shagc",
+                        "shgetnp",
+                        "shgetp",
+                        "shgrid",
+                        "shorttobyte",
+                        "shorttochar",
+                        "shorttocharacter",
+                        "show_ascii",
+                        "shsec",
+                        "shsetp",
+                        "shsgc",
+                        "shsgc_R42",
+                        "sigma2hybrid",
+                        "simpeq",
+                        "simpne",
+                        "sin",
+                        "sindex_yrmo",
+                        "sinh",
+                        "sizeof",
+                        "sleep",
+                        "smth9",
+                        "snindex_yrmo",
+                        "solve_linsys",
+                        "span_color_indexes",
+                        "span_color_rgba",
+                        "sparse_matrix_mult",
+                        "spcorr",
+                        "spcorr_n",
+                        "specx_anal",
+                        "specxy_anal",
+                        "spei",
+                        "sprintf",
+                        "sprinti",
+                        "sqrt",
+                        "sqsort",
+                        "srand",
+                        "stat2",
+                        "stat4",
+                        "stat_medrng",
+                        "stat_trim",
+                        "status_exit",
+                        "stdatmus_p2tdz",
+                        "stdatmus_z2tdp",
+                        "stddev",
+                        "str_capital",
+                        "str_concat",
+                        "str_fields_count",
+                        "str_get_cols",
+                        "str_get_dq",
+                        "str_get_field",
+                        "str_get_nl",
+                        "str_get_sq",
+                        "str_get_tab",
+                        "str_index_of_substr",
+                        "str_insert",
+                        "str_is_blank",
+                        "str_join",
+                        "str_left_strip",
+                        "str_lower",
+                        "str_match",
+                        "str_match_ic",
+                        "str_match_ic_regex",
+                        "str_match_ind",
+                        "str_match_ind_ic",
+                        "str_match_ind_ic_regex",
+                        "str_match_ind_regex",
+                        "str_match_regex",
+                        "str_right_strip",
+                        "str_split",
+                        "str_split_by_length",
+                        "str_split_csv",
+                        "str_squeeze",
+                        "str_strip",
+                        "str_sub_str",
+                        "str_switch",
+                        "str_upper",
+                        "stringtochar",
+                        "stringtocharacter",
+                        "stringtodouble",
+                        "stringtofloat",
+                        "stringtoint",
+                        "stringtointeger",
+                        "stringtolong",
+                        "stringtoshort",
+                        "strlen",
+                        "student_t",
+                        "sum",
+                        "svd_lapack",
+                        "svdcov",
+                        "svdcov_sv",
+                        "svdstd",
+                        "svdstd_sv",
+                        "system",
+                        "systemfunc",
+                        "tan",
+                        "tanh",
+                        "taper",
+                        "taper_n",
+                        "tdclrs",
+                        "tdctri",
+                        "tdcudp",
+                        "tdcurv",
+                        "tddtri",
+                        "tdez2d",
+                        "tdez3d",
+                        "tdgetp",
+                        "tdgrds",
+                        "tdgrid",
+                        "tdgtrs",
+                        "tdinit",
+                        "tditri",
+                        "tdlbla",
+                        "tdlblp",
+                        "tdlbls",
+                        "tdline",
+                        "tdlndp",
+                        "tdlnpa",
+                        "tdlpdp",
+                        "tdmtri",
+                        "tdotri",
+                        "tdpara",
+                        "tdplch",
+                        "tdprpa",
+                        "tdprpi",
+                        "tdprpt",
+                        "tdsetp",
+                        "tdsort",
+                        "tdstri",
+                        "tdstrs",
+                        "tdttri",
+                        "thornthwaite",
+                        "tobyte",
+                        "tochar",
+                        "todouble",
+                        "tofloat",
+                        "toint",
+                        "toint64",
+                        "tointeger",
+                        "tolong",
+                        "toshort",
+                        "tosigned",
+                        "tostring",
+                        "tostring_with_format",
+                        "totype",
+                        "toubyte",
+                        "touint",
+                        "touint64",
+                        "toulong",
+                        "tounsigned",
+                        "toushort",
+                        "trend_manken",
+                        "tri_trunc",
+                        "triple2grid",
+                        "triple2grid2d",
+                        "trop_wmo",
+                        "ttest",
+                        "typeof",
+                        "undef",
+                        "unique_string",
+                        "update",
+                        "ushorttoint",
+                        "ut_calendar",
+                        "ut_inv_calendar",
+                        "utm2latlon",
+                        "uv2dv_cfd",
+                        "uv2dvf",
+                        "uv2dvg",
+                        "uv2sfvpf",
+                        "uv2sfvpg",
+                        "uv2vr_cfd",
+                        "uv2vrdvf",
+                        "uv2vrdvg",
+                        "uv2vrf",
+                        "uv2vrg",
+                        "v5d_close",
+                        "v5d_create",
+                        "v5d_setLowLev",
+                        "v5d_setUnits",
+                        "v5d_write",
+                        "v5d_write_var",
+                        "variance",
+                        "vhaec",
+                        "vhagc",
+                        "vhsec",
+                        "vhsgc",
+                        "vibeta",
+                        "vinth2p",
+                        "vinth2p_ecmwf",
+                        "vinth2p_ecmwf_nodes",
+                        "vinth2p_nodes",
+                        "vintp2p_ecmwf",
+                        "vr2uvf",
+                        "vr2uvg",
+                        "vrdv2uvf",
+                        "vrdv2uvg",
+                        "wavelet",
+                        "wavelet_default",
+                        "weibull",
+                        "wgt_area_smooth",
+                        "wgt_areaave",
+                        "wgt_areaave2",
+                        "wgt_arearmse",
+                        "wgt_arearmse2",
+                        "wgt_areasum2",
+                        "wgt_runave",
+                        "wgt_runave_n",
+                        "wgt_vert_avg_beta",
+                        "wgt_volave",
+                        "wgt_volave_ccm",
+                        "wgt_volrmse",
+                        "wgt_volrmse_ccm",
+                        "where",
+                        "wk_smooth121",
+                        "wmbarb",
+                        "wmbarbmap",
+                        "wmdrft",
+                        "wmgetp",
+                        "wmlabs",
+                        "wmsetp",
+                        "wmstnm",
+                        "wmvect",
+                        "wmvectmap",
+                        "wmvlbl",
+                        "wrf_avo",
+                        "wrf_cape_2d",
+                        "wrf_cape_3d",
+                        "wrf_dbz",
+                        "wrf_eth",
+                        "wrf_helicity",
+                        "wrf_ij_to_ll",
+                        "wrf_interp_1d",
+                        "wrf_interp_2d_xy",
+                        "wrf_interp_3d_z",
+                        "wrf_latlon_to_ij",
+                        "wrf_ll_to_ij",
+                        "wrf_omega",
+                        "wrf_pvo",
+                        "wrf_rh",
+                        "wrf_slp",
+                        "wrf_smooth_2d",
+                        "wrf_td",
+                        "wrf_tk",
+                        "wrf_updraft_helicity",
+                        "wrf_uvmet",
+                        "wrf_virtual_temp",
+                        "wrf_wetbulb",
+                        "wrf_wps_close_int",
+                        "wrf_wps_open_int",
+                        "wrf_wps_rddata_int",
+                        "wrf_wps_rdhead_int",
+                        "wrf_wps_read_int",
+                        "wrf_wps_write_int",
+                        "write_matrix",
+                        "write_table",
+                        "yiqrgb",
+                        "z2geouv",
+                        "zonal_mpsi",
+                        "addfiles_GetVar",
+                        "advect_variable",
+                        "area_conserve_remap_Wrap",
+                        "area_hi2lores_Wrap",
+                        "array_append_record",
+                        "assignFillValue",
+                        "byte2flt",
+                        "byte2flt_hdf",
+                        "calcDayAnomTLL",
+                        "calcMonAnomLLLT",
+                        "calcMonAnomLLT",
+                        "calcMonAnomTLL",
+                        "calcMonAnomTLLL",
+                        "calculate_monthly_values",
+                        "cd_convert",
+                        "changeCase",
+                        "changeCaseChar",
+                        "clmDayTLL",
+                        "clmDayTLLL",
+                        "clmMon2clmDay",
+                        "clmMonLLLT",
+                        "clmMonLLT",
+                        "clmMonTLL",
+                        "clmMonTLLL",
+                        "closest_val",
+                        "copy_VarAtts",
+                        "copy_VarCoords",
+                        "copy_VarCoords_1",
+                        "copy_VarCoords_2",
+                        "copy_VarMeta",
+                        "copyatt",
+                        "crossp3",
+                        "cshstringtolist",
+                        "cssgrid_Wrap",
+                        "dble2flt",
+                        "decimalPlaces",
+                        "delete_VarAtts",
+                        "dim_avg_n_Wrap",
+                        "dim_avg_wgt_n_Wrap",
+                        "dim_avg_wgt_Wrap",
+                        "dim_avg_Wrap",
+                        "dim_cumsum_n_Wrap",
+                        "dim_cumsum_Wrap",
+                        "dim_max_n_Wrap",
+                        "dim_min_n_Wrap",
+                        "dim_rmsd_n_Wrap",
+                        "dim_rmsd_Wrap",
+                        "dim_rmvmean_n_Wrap",
+                        "dim_rmvmean_Wrap",
+                        "dim_rmvmed_n_Wrap",
+                        "dim_rmvmed_Wrap",
+                        "dim_standardize_n_Wrap",
+                        "dim_standardize_Wrap",
+                        "dim_stddev_n_Wrap",
+                        "dim_stddev_Wrap",
+                        "dim_sum_n_Wrap",
+                        "dim_sum_wgt_n_Wrap",
+                        "dim_sum_wgt_Wrap",
+                        "dim_sum_Wrap",
+                        "dim_variance_n_Wrap",
+                        "dim_variance_Wrap",
+                        "dpres_plevel_Wrap",
+                        "dtrend_leftdim",
+                        "dv2uvF_Wrap",
+                        "dv2uvG_Wrap",
+                        "eof_north",
+                        "eofcor_Wrap",
+                        "eofcov_Wrap",
+                        "eofunc_north",
+                        "eofunc_ts_Wrap",
+                        "eofunc_varimax_reorder",
+                        "eofunc_varimax_Wrap",
+                        "eofunc_Wrap",
+                        "epsZero",
+                        "f2fosh_Wrap",
+                        "f2foshv_Wrap",
+                        "f2fsh_Wrap",
+                        "f2fshv_Wrap",
+                        "f2gsh_Wrap",
+                        "f2gshv_Wrap",
+                        "fbindirSwap",
+                        "fbinseqSwap1",
+                        "fbinseqSwap2",
+                        "flt2dble",
+                        "flt2string",
+                        "fo2fsh_Wrap",
+                        "fo2fshv_Wrap",
+                        "g2fsh_Wrap",
+                        "g2fshv_Wrap",
+                        "g2gsh_Wrap",
+                        "g2gshv_Wrap",
+                        "generate_resample_indices",
+                        "generate_sample_indices",
+                        "generate_unique_indices",
+                        "genNormalDist",
+                        "get1Dindex",
+                        "get1Dindex_Collapse",
+                        "get1Dindex_Exclude",
+                        "get_file_suffix",
+                        "GetFillColor",
+                        "GetFillColorIndex",
+                        "getFillValue",
+                        "getind_latlon2d",
+                        "getVarDimNames",
+                        "getVarFillValue",
+                        "grib_stime2itime",
+                        "hyi2hyo_Wrap",
+                        "ilapsF_Wrap",
+                        "ilapsG_Wrap",
+                        "ind_nearest_coord",
+                        "indStrSubset",
+                        "int2dble",
+                        "int2flt",
+                        "int2p_n_Wrap",
+                        "int2p_Wrap",
+                        "isMonotonic",
+                        "isStrSubset",
+                        "latGau",
+                        "latGauWgt",
+                        "latGlobeF",
+                        "latGlobeFo",
+                        "latRegWgt",
+                        "linint1_n_Wrap",
+                        "linint1_Wrap",
+                        "linint2_points_Wrap",
+                        "linint2_Wrap",
+                        "local_max_1d",
+                        "local_min_1d",
+                        "lonFlip",
+                        "lonGlobeF",
+                        "lonGlobeFo",
+                        "lonPivot",
+                        "merge_levels_sfc",
+                        "mod",
+                        "month_to_annual",
+                        "month_to_annual_weighted",
+                        "month_to_season",
+                        "month_to_season12",
+                        "month_to_seasonN",
+                        "monthly_total_to_daily_mean",
+                        "nameDim",
+                        "natgrid_Wrap",
+                        "NewCosWeight",
+                        "niceLatLon2D",
+                        "NormCosWgtGlobe",
+                        "numAsciiCol",
+                        "numAsciiRow",
+                        "numeric2int",
+                        "obj_anal_ic_deprecated",
+                        "obj_anal_ic_Wrap",
+                        "omega_ccm_driver",
+                        "omega_to_w",
+                        "oneDtostring",
+                        "pack_values",
+                        "pattern_cor",
+                        "pdfx",
+                        "pdfxy",
+                        "pdfxy_conform",
+                        "pot_temp",
+                        "pot_vort_hybrid",
+                        "pot_vort_isobaric",
+                        "pres2hybrid_Wrap",
+                        "print_clock",
+                        "printMinMax",
+                        "quadroots",
+                        "rcm2points_Wrap",
+                        "rcm2rgrid_Wrap",
+                        "readAsciiHead",
+                        "readAsciiTable",
+                        "reg_multlin_stats",
+                        "region_ind",
+                        "regline_stats",
+                        "relhum_ttd",
+                        "replaceSingleChar",
+                        "RGBtoCmap",
+                        "rgrid2rcm_Wrap",
+                        "rho_mwjf",
+                        "rm_single_dims",
+                        "rmAnnCycle1D",
+                        "rmInsufData",
+                        "rmMonAnnCycLLLT",
+                        "rmMonAnnCycLLT",
+                        "rmMonAnnCycTLL",
+                        "runave_n_Wrap",
+                        "runave_Wrap",
+                        "short2flt",
+                        "short2flt_hdf",
+                        "shsgc_R42_Wrap",
+                        "sign_f90",
+                        "sign_matlab",
+                        "smth9_Wrap",
+                        "smthClmDayTLL",
+                        "smthClmDayTLLL",
+                        "SqrtCosWeight",
+                        "stat_dispersion",
+                        "static_stability",
+                        "stdMonLLLT",
+                        "stdMonLLT",
+                        "stdMonTLL",
+                        "stdMonTLLL",
+                        "symMinMaxPlt",
+                        "table_attach_columns",
+                        "table_attach_rows",
+                        "time_to_newtime",
+                        "transpose",
+                        "triple2grid_Wrap",
+                        "ut_convert",
+                        "uv2dvF_Wrap",
+                        "uv2dvG_Wrap",
+                        "uv2vrF_Wrap",
+                        "uv2vrG_Wrap",
+                        "vr2uvF_Wrap",
+                        "vr2uvG_Wrap",
+                        "w_to_omega",
+                        "wallClockElapseTime",
+                        "wave_number_spc",
+                        "wgt_areaave_Wrap",
+                        "wgt_runave_leftdim",
+                        "wgt_runave_n_Wrap",
+                        "wgt_runave_Wrap",
+                        "wgt_vertical_n",
+                        "wind_component",
+                        "wind_direction",
+                        "yyyyddd_to_yyyymmdd",
+                        "yyyymm_time",
+                        "yyyymm_to_yyyyfrac",
+                        "yyyymmdd_time",
+                        "yyyymmdd_to_yyyyddd",
+                        "yyyymmdd_to_yyyyfrac",
+                        "yyyymmddhh_time",
+                        "yyyymmddhh_to_yyyyfrac",
+                        "zonal_mpsi_Wrap",
+                        "zonalAve",
+                        "calendar_decode2",
+                        "cd_string",
+                        "kf_filter",
+                        "run_cor",
+                        "time_axis_labels",
+                        "ut_string",
+                        "wrf_contour",
+                        "wrf_map",
+                        "wrf_map_overlay",
+                        "wrf_map_overlays",
+                        "wrf_map_resources",
+                        "wrf_map_zoom",
+                        "wrf_overlay",
+                        "wrf_overlays",
+                        "wrf_user_getvar",
+                        "wrf_user_ij_to_ll",
+                        "wrf_user_intrp2d",
+                        "wrf_user_intrp3d",
+                        "wrf_user_latlon_to_ij",
+                        "wrf_user_list_times",
+                        "wrf_user_ll_to_ij",
+                        "wrf_user_unstagger",
+                        "wrf_user_vert_interp",
+                        "wrf_vector",
+                        "gsn_add_annotation",
+                        "gsn_add_polygon",
+                        "gsn_add_polyline",
+                        "gsn_add_polymarker",
+                        "gsn_add_shapefile_polygons",
+                        "gsn_add_shapefile_polylines",
+                        "gsn_add_shapefile_polymarkers",
+                        "gsn_add_text",
+                        "gsn_attach_plots",
+                        "gsn_blank_plot",
+                        "gsn_contour",
+                        "gsn_contour_map",
+                        "gsn_contour_shade",
+                        "gsn_coordinates",
+                        "gsn_create_labelbar",
+                        "gsn_create_legend",
+                        "gsn_create_text",
+                        "gsn_csm_attach_zonal_means",
+                        "gsn_csm_blank_plot",
+                        "gsn_csm_contour",
+                        "gsn_csm_contour_map",
+                        "gsn_csm_contour_map_ce",
+                        "gsn_csm_contour_map_overlay",
+                        "gsn_csm_contour_map_polar",
+                        "gsn_csm_hov",
+                        "gsn_csm_lat_time",
+                        "gsn_csm_map",
+                        "gsn_csm_map_ce",
+                        "gsn_csm_map_polar",
+                        "gsn_csm_pres_hgt",
+                        "gsn_csm_pres_hgt_streamline",
+                        "gsn_csm_pres_hgt_vector",
+                        "gsn_csm_streamline",
+                        "gsn_csm_streamline_contour_map",
+                        "gsn_csm_streamline_contour_map_ce",
+                        "gsn_csm_streamline_contour_map_polar",
+                        "gsn_csm_streamline_map",
+                        "gsn_csm_streamline_map_ce",
+                        "gsn_csm_streamline_map_polar",
+                        "gsn_csm_streamline_scalar",
+                        "gsn_csm_streamline_scalar_map",
+                        "gsn_csm_streamline_scalar_map_ce",
+                        "gsn_csm_streamline_scalar_map_polar",
+                        "gsn_csm_time_lat",
+                        "gsn_csm_vector",
+                        "gsn_csm_vector_map",
+                        "gsn_csm_vector_map_ce",
+                        "gsn_csm_vector_map_polar",
+                        "gsn_csm_vector_scalar",
+                        "gsn_csm_vector_scalar_map",
+                        "gsn_csm_vector_scalar_map_ce",
+                        "gsn_csm_vector_scalar_map_polar",
+                        "gsn_csm_x2y",
+                        "gsn_csm_x2y2",
+                        "gsn_csm_xy",
+                        "gsn_csm_xy2",
+                        "gsn_csm_xy3",
+                        "gsn_csm_y",
+                        "gsn_define_colormap",
+                        "gsn_draw_colormap",
+                        "gsn_draw_named_colors",
+                        "gsn_histogram",
+                        "gsn_labelbar_ndc",
+                        "gsn_legend_ndc",
+                        "gsn_map",
+                        "gsn_merge_colormaps",
+                        "gsn_open_wks",
+                        "gsn_panel",
+                        "gsn_polygon",
+                        "gsn_polygon_ndc",
+                        "gsn_polyline",
+                        "gsn_polyline_ndc",
+                        "gsn_polymarker",
+                        "gsn_polymarker_ndc",
+                        "gsn_retrieve_colormap",
+                        "gsn_reverse_colormap",
+                        "gsn_streamline",
+                        "gsn_streamline_map",
+                        "gsn_streamline_scalar",
+                        "gsn_streamline_scalar_map",
+                        "gsn_table",
+                        "gsn_text",
+                        "gsn_text_ndc",
+                        "gsn_vector",
+                        "gsn_vector_map",
+                        "gsn_vector_scalar",
+                        "gsn_vector_scalar_map",
+                        "gsn_xy",
+                        "gsn_y",
+                        "hsv2rgb",
+                        "maximize_output",
+                        "namedcolor2rgb",
+                        "namedcolor2rgba",
+                        "reset_device_coordinates",
+                        "span_named_colors",
+                    ),
+                    prefix=r"\b",
+                ),
+                Name.Builtin,
+            ),
             # Resources
-            (words((
-                'amDataXF', 'amDataYF', 'amJust', 'amOn', 'amOrthogonalPosF',
-                'amParallelPosF', 'amResizeNotify', 'amSide', 'amTrackData',
-                'amViewId', 'amZone', 'appDefaultParent', 'appFileSuffix',
-                'appResources', 'appSysDir', 'appUsrDir', 'caCopyArrays',
-                'caXArray', 'caXCast', 'caXMaxV', 'caXMinV', 'caXMissingV',
-                'caYArray', 'caYCast', 'caYMaxV', 'caYMinV', 'caYMissingV',
-                'cnCellFillEdgeColor', 'cnCellFillMissingValEdgeColor',
-                'cnConpackParams', 'cnConstFEnableFill', 'cnConstFLabelAngleF',
-                'cnConstFLabelBackgroundColor', 'cnConstFLabelConstantSpacingF',
-                'cnConstFLabelFont', 'cnConstFLabelFontAspectF',
-                'cnConstFLabelFontColor', 'cnConstFLabelFontHeightF',
-                'cnConstFLabelFontQuality', 'cnConstFLabelFontThicknessF',
-                'cnConstFLabelFormat', 'cnConstFLabelFuncCode', 'cnConstFLabelJust',
-                'cnConstFLabelOn', 'cnConstFLabelOrthogonalPosF',
-                'cnConstFLabelParallelPosF', 'cnConstFLabelPerimColor',
-                'cnConstFLabelPerimOn', 'cnConstFLabelPerimSpaceF',
-                'cnConstFLabelPerimThicknessF', 'cnConstFLabelSide',
-                'cnConstFLabelString', 'cnConstFLabelTextDirection',
-                'cnConstFLabelZone', 'cnConstFUseInfoLabelRes',
-                'cnExplicitLabelBarLabelsOn', 'cnExplicitLegendLabelsOn',
-                'cnExplicitLineLabelsOn', 'cnFillBackgroundColor', 'cnFillColor',
-                'cnFillColors', 'cnFillDotSizeF', 'cnFillDrawOrder', 'cnFillMode',
-                'cnFillOn', 'cnFillOpacityF', 'cnFillPalette', 'cnFillPattern',
-                'cnFillPatterns', 'cnFillScaleF', 'cnFillScales', 'cnFixFillBleed',
-                'cnGridBoundFillColor', 'cnGridBoundFillPattern',
-                'cnGridBoundFillScaleF', 'cnGridBoundPerimColor',
-                'cnGridBoundPerimDashPattern', 'cnGridBoundPerimOn',
-                'cnGridBoundPerimThicknessF', 'cnHighLabelAngleF',
-                'cnHighLabelBackgroundColor', 'cnHighLabelConstantSpacingF',
-                'cnHighLabelCount', 'cnHighLabelFont', 'cnHighLabelFontAspectF',
-                'cnHighLabelFontColor', 'cnHighLabelFontHeightF',
-                'cnHighLabelFontQuality', 'cnHighLabelFontThicknessF',
-                'cnHighLabelFormat', 'cnHighLabelFuncCode', 'cnHighLabelPerimColor',
-                'cnHighLabelPerimOn', 'cnHighLabelPerimSpaceF',
-                'cnHighLabelPerimThicknessF', 'cnHighLabelString', 'cnHighLabelsOn',
-                'cnHighLowLabelOverlapMode', 'cnHighUseLineLabelRes',
-                'cnInfoLabelAngleF', 'cnInfoLabelBackgroundColor',
-                'cnInfoLabelConstantSpacingF', 'cnInfoLabelFont',
-                'cnInfoLabelFontAspectF', 'cnInfoLabelFontColor',
-                'cnInfoLabelFontHeightF', 'cnInfoLabelFontQuality',
-                'cnInfoLabelFontThicknessF', 'cnInfoLabelFormat',
-                'cnInfoLabelFuncCode', 'cnInfoLabelJust', 'cnInfoLabelOn',
-                'cnInfoLabelOrthogonalPosF', 'cnInfoLabelParallelPosF',
-                'cnInfoLabelPerimColor', 'cnInfoLabelPerimOn',
-                'cnInfoLabelPerimSpaceF', 'cnInfoLabelPerimThicknessF',
-                'cnInfoLabelSide', 'cnInfoLabelString', 'cnInfoLabelTextDirection',
-                'cnInfoLabelZone', 'cnLabelBarEndLabelsOn', 'cnLabelBarEndStyle',
-                'cnLabelDrawOrder', 'cnLabelMasking', 'cnLabelScaleFactorF',
-                'cnLabelScaleValueF', 'cnLabelScalingMode', 'cnLegendLevelFlags',
-                'cnLevelCount', 'cnLevelFlag', 'cnLevelFlags', 'cnLevelSelectionMode',
-                'cnLevelSpacingF', 'cnLevels', 'cnLineColor', 'cnLineColors',
-                'cnLineDashPattern', 'cnLineDashPatterns', 'cnLineDashSegLenF',
-                'cnLineDrawOrder', 'cnLineLabelAngleF', 'cnLineLabelBackgroundColor',
-                'cnLineLabelConstantSpacingF', 'cnLineLabelCount',
-                'cnLineLabelDensityF', 'cnLineLabelFont', 'cnLineLabelFontAspectF',
-                'cnLineLabelFontColor', 'cnLineLabelFontColors',
-                'cnLineLabelFontHeightF', 'cnLineLabelFontQuality',
-                'cnLineLabelFontThicknessF', 'cnLineLabelFormat',
-                'cnLineLabelFuncCode', 'cnLineLabelInterval', 'cnLineLabelPerimColor',
-                'cnLineLabelPerimOn', 'cnLineLabelPerimSpaceF',
-                'cnLineLabelPerimThicknessF', 'cnLineLabelPlacementMode',
-                'cnLineLabelStrings', 'cnLineLabelsOn', 'cnLinePalette',
-                'cnLineThicknessF', 'cnLineThicknesses', 'cnLinesOn',
-                'cnLowLabelAngleF', 'cnLowLabelBackgroundColor',
-                'cnLowLabelConstantSpacingF', 'cnLowLabelCount', 'cnLowLabelFont',
-                'cnLowLabelFontAspectF', 'cnLowLabelFontColor',
-                'cnLowLabelFontHeightF', 'cnLowLabelFontQuality',
-                'cnLowLabelFontThicknessF', 'cnLowLabelFormat', 'cnLowLabelFuncCode',
-                'cnLowLabelPerimColor', 'cnLowLabelPerimOn', 'cnLowLabelPerimSpaceF',
-                'cnLowLabelPerimThicknessF', 'cnLowLabelString', 'cnLowLabelsOn',
-                'cnLowUseHighLabelRes', 'cnMaxDataValueFormat', 'cnMaxLevelCount',
-                'cnMaxLevelValF', 'cnMaxPointDistanceF', 'cnMinLevelValF',
-                'cnMissingValFillColor', 'cnMissingValFillPattern',
-                'cnMissingValFillScaleF', 'cnMissingValPerimColor',
-                'cnMissingValPerimDashPattern', 'cnMissingValPerimGridBoundOn',
-                'cnMissingValPerimOn', 'cnMissingValPerimThicknessF',
-                'cnMonoFillColor', 'cnMonoFillPattern', 'cnMonoFillScale',
-                'cnMonoLevelFlag', 'cnMonoLineColor', 'cnMonoLineDashPattern',
-                'cnMonoLineLabelFontColor', 'cnMonoLineThickness', 'cnNoDataLabelOn',
-                'cnNoDataLabelString', 'cnOutOfRangeFillColor',
-                'cnOutOfRangeFillPattern', 'cnOutOfRangeFillScaleF',
-                'cnOutOfRangePerimColor', 'cnOutOfRangePerimDashPattern',
-                'cnOutOfRangePerimOn', 'cnOutOfRangePerimThicknessF',
-                'cnRasterCellSizeF', 'cnRasterMinCellSizeF', 'cnRasterModeOn',
-                'cnRasterSampleFactorF', 'cnRasterSmoothingOn', 'cnScalarFieldData',
-                'cnSmoothingDistanceF', 'cnSmoothingOn', 'cnSmoothingTensionF',
-                'cnSpanFillPalette', 'cnSpanLinePalette', 'ctCopyTables',
-                'ctXElementSize', 'ctXMaxV', 'ctXMinV', 'ctXMissingV', 'ctXTable',
-                'ctXTableLengths', 'ctXTableType', 'ctYElementSize', 'ctYMaxV',
-                'ctYMinV', 'ctYMissingV', 'ctYTable', 'ctYTableLengths',
-                'ctYTableType', 'dcDelayCompute', 'errBuffer',
-                'errFileName', 'errFilePtr', 'errLevel', 'errPrint', 'errUnitNumber',
-                'gsClipOn', 'gsColors', 'gsEdgeColor', 'gsEdgeDashPattern',
-                'gsEdgeDashSegLenF', 'gsEdgeThicknessF', 'gsEdgesOn',
-                'gsFillBackgroundColor', 'gsFillColor', 'gsFillDotSizeF',
-                'gsFillIndex', 'gsFillLineThicknessF', 'gsFillOpacityF',
-                'gsFillScaleF', 'gsFont', 'gsFontAspectF', 'gsFontColor',
-                'gsFontHeightF', 'gsFontOpacityF', 'gsFontQuality',
-                'gsFontThicknessF', 'gsLineColor', 'gsLineDashPattern',
-                'gsLineDashSegLenF', 'gsLineLabelConstantSpacingF', 'gsLineLabelFont',
-                'gsLineLabelFontAspectF', 'gsLineLabelFontColor',
-                'gsLineLabelFontHeightF', 'gsLineLabelFontQuality',
-                'gsLineLabelFontThicknessF', 'gsLineLabelFuncCode',
-                'gsLineLabelString', 'gsLineOpacityF', 'gsLineThicknessF',
-                'gsMarkerColor', 'gsMarkerIndex', 'gsMarkerOpacityF', 'gsMarkerSizeF',
-                'gsMarkerThicknessF', 'gsSegments', 'gsTextAngleF',
-                'gsTextConstantSpacingF', 'gsTextDirection', 'gsTextFuncCode',
-                'gsTextJustification', 'gsnAboveYRefLineBarColors',
-                'gsnAboveYRefLineBarFillScales', 'gsnAboveYRefLineBarPatterns',
-                'gsnAboveYRefLineColor', 'gsnAddCyclic', 'gsnAttachBorderOn',
-                'gsnAttachPlotsXAxis', 'gsnBelowYRefLineBarColors',
-                'gsnBelowYRefLineBarFillScales', 'gsnBelowYRefLineBarPatterns',
-                'gsnBelowYRefLineColor', 'gsnBoxMargin', 'gsnCenterString',
-                'gsnCenterStringFontColor', 'gsnCenterStringFontHeightF',
-                'gsnCenterStringFuncCode', 'gsnCenterStringOrthogonalPosF',
-                'gsnCenterStringParallelPosF', 'gsnContourLineThicknessesScale',
-                'gsnContourNegLineDashPattern', 'gsnContourPosLineDashPattern',
-                'gsnContourZeroLineThicknessF', 'gsnDebugWriteFileName', 'gsnDraw',
-                'gsnFrame', 'gsnHistogramBarWidthPercent', 'gsnHistogramBinIntervals',
-                'gsnHistogramBinMissing', 'gsnHistogramBinWidth',
-                'gsnHistogramClassIntervals', 'gsnHistogramCompare',
-                'gsnHistogramComputePercentages',
-                'gsnHistogramComputePercentagesNoMissing',
-                'gsnHistogramDiscreteBinValues', 'gsnHistogramDiscreteClassValues',
-                'gsnHistogramHorizontal', 'gsnHistogramMinMaxBinsOn',
-                'gsnHistogramNumberOfBins', 'gsnHistogramPercentSign',
-                'gsnHistogramSelectNiceIntervals', 'gsnLeftString',
-                'gsnLeftStringFontColor', 'gsnLeftStringFontHeightF',
-                'gsnLeftStringFuncCode', 'gsnLeftStringOrthogonalPosF',
-                'gsnLeftStringParallelPosF', 'gsnMajorLatSpacing',
-                'gsnMajorLonSpacing', 'gsnMaskLambertConformal',
-                'gsnMaskLambertConformalOutlineOn', 'gsnMaximize',
-                'gsnMinorLatSpacing', 'gsnMinorLonSpacing', 'gsnPanelBottom',
-                'gsnPanelCenter', 'gsnPanelDebug', 'gsnPanelFigureStrings',
-                'gsnPanelFigureStringsBackgroundFillColor',
-                'gsnPanelFigureStringsFontHeightF', 'gsnPanelFigureStringsJust',
-                'gsnPanelFigureStringsPerimOn', 'gsnPanelLabelBar', 'gsnPanelLeft',
-                'gsnPanelMainFont', 'gsnPanelMainFontColor',
-                'gsnPanelMainFontHeightF', 'gsnPanelMainString', 'gsnPanelRight',
-                'gsnPanelRowSpec', 'gsnPanelScalePlotIndex', 'gsnPanelTop',
-                'gsnPanelXF', 'gsnPanelXWhiteSpacePercent', 'gsnPanelYF',
-                'gsnPanelYWhiteSpacePercent', 'gsnPaperHeight', 'gsnPaperMargin',
-                'gsnPaperOrientation', 'gsnPaperWidth', 'gsnPolar',
-                'gsnPolarLabelDistance', 'gsnPolarLabelFont',
-                'gsnPolarLabelFontHeightF', 'gsnPolarLabelSpacing', 'gsnPolarTime',
-                'gsnPolarUT', 'gsnRightString', 'gsnRightStringFontColor',
-                'gsnRightStringFontHeightF', 'gsnRightStringFuncCode',
-                'gsnRightStringOrthogonalPosF', 'gsnRightStringParallelPosF',
-                'gsnScalarContour', 'gsnScale', 'gsnShape', 'gsnSpreadColorEnd',
-                'gsnSpreadColorStart', 'gsnSpreadColors', 'gsnStringFont',
-                'gsnStringFontColor', 'gsnStringFontHeightF', 'gsnStringFuncCode',
-                'gsnTickMarksOn', 'gsnXAxisIrregular2Linear', 'gsnXAxisIrregular2Log',
-                'gsnXRefLine', 'gsnXRefLineColor', 'gsnXRefLineDashPattern',
-                'gsnXRefLineThicknessF', 'gsnXYAboveFillColors', 'gsnXYBarChart',
-                'gsnXYBarChartBarWidth', 'gsnXYBarChartColors',
-                'gsnXYBarChartColors2', 'gsnXYBarChartFillDotSizeF',
-                'gsnXYBarChartFillLineThicknessF', 'gsnXYBarChartFillOpacityF',
-                'gsnXYBarChartFillScaleF', 'gsnXYBarChartOutlineOnly',
-                'gsnXYBarChartOutlineThicknessF', 'gsnXYBarChartPatterns',
-                'gsnXYBarChartPatterns2', 'gsnXYBelowFillColors', 'gsnXYFillColors',
-                'gsnXYFillOpacities', 'gsnXYLeftFillColors', 'gsnXYRightFillColors',
-                'gsnYAxisIrregular2Linear', 'gsnYAxisIrregular2Log', 'gsnYRefLine',
-                'gsnYRefLineColor', 'gsnYRefLineColors', 'gsnYRefLineDashPattern',
-                'gsnYRefLineDashPatterns', 'gsnYRefLineThicknessF',
-                'gsnYRefLineThicknesses', 'gsnZonalMean', 'gsnZonalMeanXMaxF',
-                'gsnZonalMeanXMinF', 'gsnZonalMeanYRefLine', 'lbAutoManage',
-                'lbBottomMarginF', 'lbBoxCount', 'lbBoxEndCapStyle', 'lbBoxFractions',
-                'lbBoxLineColor', 'lbBoxLineDashPattern', 'lbBoxLineDashSegLenF',
-                'lbBoxLineThicknessF', 'lbBoxLinesOn', 'lbBoxMajorExtentF',
-                'lbBoxMinorExtentF', 'lbBoxSeparatorLinesOn', 'lbBoxSizing',
-                'lbFillBackground', 'lbFillColor', 'lbFillColors', 'lbFillDotSizeF',
-                'lbFillLineThicknessF', 'lbFillPattern', 'lbFillPatterns',
-                'lbFillScaleF', 'lbFillScales', 'lbJustification', 'lbLabelAlignment',
-                'lbLabelAngleF', 'lbLabelAutoStride', 'lbLabelBarOn',
-                'lbLabelConstantSpacingF', 'lbLabelDirection', 'lbLabelFont',
-                'lbLabelFontAspectF', 'lbLabelFontColor', 'lbLabelFontHeightF',
-                'lbLabelFontQuality', 'lbLabelFontThicknessF', 'lbLabelFuncCode',
-                'lbLabelJust', 'lbLabelOffsetF', 'lbLabelPosition', 'lbLabelStride',
-                'lbLabelStrings', 'lbLabelsOn', 'lbLeftMarginF', 'lbMaxLabelLenF',
-                'lbMinLabelSpacingF', 'lbMonoFillColor', 'lbMonoFillPattern',
-                'lbMonoFillScale', 'lbOrientation', 'lbPerimColor',
-                'lbPerimDashPattern', 'lbPerimDashSegLenF', 'lbPerimFill',
-                'lbPerimFillColor', 'lbPerimOn', 'lbPerimThicknessF',
-                'lbRasterFillOn', 'lbRightMarginF', 'lbTitleAngleF',
-                'lbTitleConstantSpacingF', 'lbTitleDirection', 'lbTitleExtentF',
-                'lbTitleFont', 'lbTitleFontAspectF', 'lbTitleFontColor',
-                'lbTitleFontHeightF', 'lbTitleFontQuality', 'lbTitleFontThicknessF',
-                'lbTitleFuncCode', 'lbTitleJust', 'lbTitleOffsetF', 'lbTitleOn',
-                'lbTitlePosition', 'lbTitleString', 'lbTopMarginF', 'lgAutoManage',
-                'lgBottomMarginF', 'lgBoxBackground', 'lgBoxLineColor',
-                'lgBoxLineDashPattern', 'lgBoxLineDashSegLenF', 'lgBoxLineThicknessF',
-                'lgBoxLinesOn', 'lgBoxMajorExtentF', 'lgBoxMinorExtentF',
-                'lgDashIndex', 'lgDashIndexes', 'lgItemCount', 'lgItemOrder',
-                'lgItemPlacement', 'lgItemPositions', 'lgItemType', 'lgItemTypes',
-                'lgJustification', 'lgLabelAlignment', 'lgLabelAngleF',
-                'lgLabelAutoStride', 'lgLabelConstantSpacingF', 'lgLabelDirection',
-                'lgLabelFont', 'lgLabelFontAspectF', 'lgLabelFontColor',
-                'lgLabelFontHeightF', 'lgLabelFontQuality', 'lgLabelFontThicknessF',
-                'lgLabelFuncCode', 'lgLabelJust', 'lgLabelOffsetF', 'lgLabelPosition',
-                'lgLabelStride', 'lgLabelStrings', 'lgLabelsOn', 'lgLeftMarginF',
-                'lgLegendOn', 'lgLineColor', 'lgLineColors', 'lgLineDashSegLenF',
-                'lgLineDashSegLens', 'lgLineLabelConstantSpacingF', 'lgLineLabelFont',
-                'lgLineLabelFontAspectF', 'lgLineLabelFontColor',
-                'lgLineLabelFontColors', 'lgLineLabelFontHeightF',
-                'lgLineLabelFontHeights', 'lgLineLabelFontQuality',
-                'lgLineLabelFontThicknessF', 'lgLineLabelFuncCode',
-                'lgLineLabelStrings', 'lgLineLabelsOn', 'lgLineThicknessF',
-                'lgLineThicknesses', 'lgMarkerColor', 'lgMarkerColors',
-                'lgMarkerIndex', 'lgMarkerIndexes', 'lgMarkerSizeF', 'lgMarkerSizes',
-                'lgMarkerThicknessF', 'lgMarkerThicknesses', 'lgMonoDashIndex',
-                'lgMonoItemType', 'lgMonoLineColor', 'lgMonoLineDashSegLen',
-                'lgMonoLineLabelFontColor', 'lgMonoLineLabelFontHeight',
-                'lgMonoLineThickness', 'lgMonoMarkerColor', 'lgMonoMarkerIndex',
-                'lgMonoMarkerSize', 'lgMonoMarkerThickness', 'lgOrientation',
-                'lgPerimColor', 'lgPerimDashPattern', 'lgPerimDashSegLenF',
-                'lgPerimFill', 'lgPerimFillColor', 'lgPerimOn', 'lgPerimThicknessF',
-                'lgRightMarginF', 'lgTitleAngleF', 'lgTitleConstantSpacingF',
-                'lgTitleDirection', 'lgTitleExtentF', 'lgTitleFont',
-                'lgTitleFontAspectF', 'lgTitleFontColor', 'lgTitleFontHeightF',
-                'lgTitleFontQuality', 'lgTitleFontThicknessF', 'lgTitleFuncCode',
-                'lgTitleJust', 'lgTitleOffsetF', 'lgTitleOn', 'lgTitlePosition',
-                'lgTitleString', 'lgTopMarginF', 'mpAreaGroupCount',
-                'mpAreaMaskingOn', 'mpAreaNames', 'mpAreaTypes', 'mpBottomAngleF',
-                'mpBottomMapPosF', 'mpBottomNDCF', 'mpBottomNPCF',
-                'mpBottomPointLatF', 'mpBottomPointLonF', 'mpBottomWindowF',
-                'mpCenterLatF', 'mpCenterLonF', 'mpCenterRotF', 'mpCountyLineColor',
-                'mpCountyLineDashPattern', 'mpCountyLineDashSegLenF',
-                'mpCountyLineThicknessF', 'mpDataBaseVersion', 'mpDataResolution',
-                'mpDataSetName', 'mpDefaultFillColor', 'mpDefaultFillPattern',
-                'mpDefaultFillScaleF', 'mpDynamicAreaGroups', 'mpEllipticalBoundary',
-                'mpFillAreaSpecifiers', 'mpFillBoundarySets', 'mpFillColor',
-                'mpFillColors', 'mpFillColors-default', 'mpFillDotSizeF',
-                'mpFillDrawOrder', 'mpFillOn', 'mpFillPatternBackground',
-                'mpFillPattern', 'mpFillPatterns', 'mpFillPatterns-default',
-                'mpFillScaleF', 'mpFillScales', 'mpFillScales-default',
-                'mpFixedAreaGroups', 'mpGeophysicalLineColor',
-                'mpGeophysicalLineDashPattern', 'mpGeophysicalLineDashSegLenF',
-                'mpGeophysicalLineThicknessF', 'mpGreatCircleLinesOn',
-                'mpGridAndLimbDrawOrder', 'mpGridAndLimbOn', 'mpGridLatSpacingF',
-                'mpGridLineColor', 'mpGridLineDashPattern', 'mpGridLineDashSegLenF',
-                'mpGridLineThicknessF', 'mpGridLonSpacingF', 'mpGridMaskMode',
-                'mpGridMaxLatF', 'mpGridPolarLonSpacingF', 'mpGridSpacingF',
-                'mpInlandWaterFillColor', 'mpInlandWaterFillPattern',
-                'mpInlandWaterFillScaleF', 'mpLabelDrawOrder', 'mpLabelFontColor',
-                'mpLabelFontHeightF', 'mpLabelsOn', 'mpLambertMeridianF',
-                'mpLambertParallel1F', 'mpLambertParallel2F', 'mpLandFillColor',
-                'mpLandFillPattern', 'mpLandFillScaleF', 'mpLeftAngleF',
-                'mpLeftCornerLatF', 'mpLeftCornerLonF', 'mpLeftMapPosF',
-                'mpLeftNDCF', 'mpLeftNPCF', 'mpLeftPointLatF',
-                'mpLeftPointLonF', 'mpLeftWindowF', 'mpLimbLineColor',
-                'mpLimbLineDashPattern', 'mpLimbLineDashSegLenF',
-                'mpLimbLineThicknessF', 'mpLimitMode', 'mpMaskAreaSpecifiers',
-                'mpMaskOutlineSpecifiers', 'mpMaxLatF', 'mpMaxLonF',
-                'mpMinLatF', 'mpMinLonF', 'mpMonoFillColor', 'mpMonoFillPattern',
-                'mpMonoFillScale', 'mpNationalLineColor', 'mpNationalLineDashPattern',
-                'mpNationalLineThicknessF', 'mpOceanFillColor', 'mpOceanFillPattern',
-                'mpOceanFillScaleF', 'mpOutlineBoundarySets', 'mpOutlineDrawOrder',
-                'mpOutlineMaskingOn', 'mpOutlineOn', 'mpOutlineSpecifiers',
-                'mpPerimDrawOrder', 'mpPerimLineColor', 'mpPerimLineDashPattern',
-                'mpPerimLineDashSegLenF', 'mpPerimLineThicknessF', 'mpPerimOn',
-                'mpPolyMode', 'mpProjection', 'mpProvincialLineColor',
-                'mpProvincialLineDashPattern', 'mpProvincialLineDashSegLenF',
-                'mpProvincialLineThicknessF', 'mpRelativeCenterLat',
-                'mpRelativeCenterLon', 'mpRightAngleF', 'mpRightCornerLatF',
-                'mpRightCornerLonF', 'mpRightMapPosF', 'mpRightNDCF',
-                'mpRightNPCF', 'mpRightPointLatF', 'mpRightPointLonF',
-                'mpRightWindowF', 'mpSatelliteAngle1F', 'mpSatelliteAngle2F',
-                'mpSatelliteDistF', 'mpShapeMode', 'mpSpecifiedFillColors',
-                'mpSpecifiedFillDirectIndexing', 'mpSpecifiedFillPatterns',
-                'mpSpecifiedFillPriority', 'mpSpecifiedFillScales',
-                'mpTopAngleF', 'mpTopMapPosF', 'mpTopNDCF', 'mpTopNPCF',
-                'mpTopPointLatF', 'mpTopPointLonF', 'mpTopWindowF',
-                'mpUSStateLineColor', 'mpUSStateLineDashPattern',
-                'mpUSStateLineDashSegLenF', 'mpUSStateLineThicknessF',
-                'pmAnnoManagers', 'pmAnnoViews', 'pmLabelBarDisplayMode',
-                'pmLabelBarHeightF', 'pmLabelBarKeepAspect', 'pmLabelBarOrthogonalPosF',
-                'pmLabelBarParallelPosF', 'pmLabelBarSide', 'pmLabelBarWidthF',
-                'pmLabelBarZone', 'pmLegendDisplayMode', 'pmLegendHeightF',
-                'pmLegendKeepAspect', 'pmLegendOrthogonalPosF',
-                'pmLegendParallelPosF', 'pmLegendSide', 'pmLegendWidthF',
-                'pmLegendZone', 'pmOverlaySequenceIds', 'pmTickMarkDisplayMode',
-                'pmTickMarkZone', 'pmTitleDisplayMode', 'pmTitleZone',
-                'prGraphicStyle', 'prPolyType', 'prXArray', 'prYArray',
-                'sfCopyData', 'sfDataArray', 'sfDataMaxV', 'sfDataMinV',
-                'sfElementNodes', 'sfExchangeDimensions', 'sfFirstNodeIndex',
-                'sfMissingValueV', 'sfXArray', 'sfXCActualEndF', 'sfXCActualStartF',
-                'sfXCEndIndex', 'sfXCEndSubsetV', 'sfXCEndV', 'sfXCStartIndex',
-                'sfXCStartSubsetV', 'sfXCStartV', 'sfXCStride', 'sfXCellBounds',
-                'sfYArray', 'sfYCActualEndF', 'sfYCActualStartF', 'sfYCEndIndex',
-                'sfYCEndSubsetV', 'sfYCEndV', 'sfYCStartIndex', 'sfYCStartSubsetV',
-                'sfYCStartV', 'sfYCStride', 'sfYCellBounds', 'stArrowLengthF',
-                'stArrowStride', 'stCrossoverCheckCount',
-                'stExplicitLabelBarLabelsOn', 'stLabelBarEndLabelsOn',
-                'stLabelFormat', 'stLengthCheckCount', 'stLevelColors',
-                'stLevelCount', 'stLevelPalette', 'stLevelSelectionMode',
-                'stLevelSpacingF', 'stLevels', 'stLineColor', 'stLineOpacityF',
-                'stLineStartStride', 'stLineThicknessF', 'stMapDirection',
-                'stMaxLevelCount', 'stMaxLevelValF', 'stMinArrowSpacingF',
-                'stMinDistanceF', 'stMinLevelValF', 'stMinLineSpacingF',
-                'stMinStepFactorF', 'stMonoLineColor', 'stNoDataLabelOn',
-                'stNoDataLabelString', 'stScalarFieldData', 'stScalarMissingValColor',
-                'stSpanLevelPalette', 'stStepSizeF', 'stStreamlineDrawOrder',
-                'stUseScalarArray', 'stVectorFieldData', 'stZeroFLabelAngleF',
-                'stZeroFLabelBackgroundColor', 'stZeroFLabelConstantSpacingF',
-                'stZeroFLabelFont', 'stZeroFLabelFontAspectF',
-                'stZeroFLabelFontColor', 'stZeroFLabelFontHeightF',
-                'stZeroFLabelFontQuality', 'stZeroFLabelFontThicknessF',
-                'stZeroFLabelFuncCode', 'stZeroFLabelJust', 'stZeroFLabelOn',
-                'stZeroFLabelOrthogonalPosF', 'stZeroFLabelParallelPosF',
-                'stZeroFLabelPerimColor', 'stZeroFLabelPerimOn',
-                'stZeroFLabelPerimSpaceF', 'stZeroFLabelPerimThicknessF',
-                'stZeroFLabelSide', 'stZeroFLabelString', 'stZeroFLabelTextDirection',
-                'stZeroFLabelZone', 'tfDoNDCOverlay', 'tfPlotManagerOn',
-                'tfPolyDrawList', 'tfPolyDrawOrder', 'tiDeltaF', 'tiMainAngleF',
-                'tiMainConstantSpacingF', 'tiMainDirection', 'tiMainFont',
-                'tiMainFontAspectF', 'tiMainFontColor', 'tiMainFontHeightF',
-                'tiMainFontQuality', 'tiMainFontThicknessF', 'tiMainFuncCode',
-                'tiMainJust', 'tiMainOffsetXF', 'tiMainOffsetYF', 'tiMainOn',
-                'tiMainPosition', 'tiMainSide', 'tiMainString', 'tiUseMainAttributes',
-                'tiXAxisAngleF', 'tiXAxisConstantSpacingF', 'tiXAxisDirection',
-                'tiXAxisFont', 'tiXAxisFontAspectF', 'tiXAxisFontColor',
-                'tiXAxisFontHeightF', 'tiXAxisFontQuality', 'tiXAxisFontThicknessF',
-                'tiXAxisFuncCode', 'tiXAxisJust', 'tiXAxisOffsetXF',
-                'tiXAxisOffsetYF', 'tiXAxisOn', 'tiXAxisPosition', 'tiXAxisSide',
-                'tiXAxisString', 'tiYAxisAngleF', 'tiYAxisConstantSpacingF',
-                'tiYAxisDirection', 'tiYAxisFont', 'tiYAxisFontAspectF',
-                'tiYAxisFontColor', 'tiYAxisFontHeightF', 'tiYAxisFontQuality',
-                'tiYAxisFontThicknessF', 'tiYAxisFuncCode', 'tiYAxisJust',
-                'tiYAxisOffsetXF', 'tiYAxisOffsetYF', 'tiYAxisOn', 'tiYAxisPosition',
-                'tiYAxisSide', 'tiYAxisString', 'tmBorderLineColor',
-                'tmBorderThicknessF', 'tmEqualizeXYSizes', 'tmLabelAutoStride',
-                'tmSciNoteCutoff', 'tmXBAutoPrecision', 'tmXBBorderOn',
-                'tmXBDataLeftF', 'tmXBDataRightF', 'tmXBFormat', 'tmXBIrrTensionF',
-                'tmXBIrregularPoints', 'tmXBLabelAngleF', 'tmXBLabelConstantSpacingF',
-                'tmXBLabelDeltaF', 'tmXBLabelDirection', 'tmXBLabelFont',
-                'tmXBLabelFontAspectF', 'tmXBLabelFontColor', 'tmXBLabelFontHeightF',
-                'tmXBLabelFontQuality', 'tmXBLabelFontThicknessF',
-                'tmXBLabelFuncCode', 'tmXBLabelJust', 'tmXBLabelStride', 'tmXBLabels',
-                'tmXBLabelsOn', 'tmXBMajorLengthF', 'tmXBMajorLineColor',
-                'tmXBMajorOutwardLengthF', 'tmXBMajorThicknessF', 'tmXBMaxLabelLenF',
-                'tmXBMaxTicks', 'tmXBMinLabelSpacingF', 'tmXBMinorLengthF',
-                'tmXBMinorLineColor', 'tmXBMinorOn', 'tmXBMinorOutwardLengthF',
-                'tmXBMinorPerMajor', 'tmXBMinorThicknessF', 'tmXBMinorValues',
-                'tmXBMode', 'tmXBOn', 'tmXBPrecision', 'tmXBStyle', 'tmXBTickEndF',
-                'tmXBTickSpacingF', 'tmXBTickStartF', 'tmXBValues', 'tmXMajorGrid',
-                'tmXMajorGridLineColor', 'tmXMajorGridLineDashPattern',
-                'tmXMajorGridThicknessF', 'tmXMinorGrid', 'tmXMinorGridLineColor',
-                'tmXMinorGridLineDashPattern', 'tmXMinorGridThicknessF',
-                'tmXTAutoPrecision', 'tmXTBorderOn', 'tmXTDataLeftF',
-                'tmXTDataRightF', 'tmXTFormat', 'tmXTIrrTensionF',
-                'tmXTIrregularPoints', 'tmXTLabelAngleF', 'tmXTLabelConstantSpacingF',
-                'tmXTLabelDeltaF', 'tmXTLabelDirection', 'tmXTLabelFont',
-                'tmXTLabelFontAspectF', 'tmXTLabelFontColor', 'tmXTLabelFontHeightF',
-                'tmXTLabelFontQuality', 'tmXTLabelFontThicknessF',
-                'tmXTLabelFuncCode', 'tmXTLabelJust', 'tmXTLabelStride', 'tmXTLabels',
-                'tmXTLabelsOn', 'tmXTMajorLengthF', 'tmXTMajorLineColor',
-                'tmXTMajorOutwardLengthF', 'tmXTMajorThicknessF', 'tmXTMaxLabelLenF',
-                'tmXTMaxTicks', 'tmXTMinLabelSpacingF', 'tmXTMinorLengthF',
-                'tmXTMinorLineColor', 'tmXTMinorOn', 'tmXTMinorOutwardLengthF',
-                'tmXTMinorPerMajor', 'tmXTMinorThicknessF', 'tmXTMinorValues',
-                'tmXTMode', 'tmXTOn', 'tmXTPrecision', 'tmXTStyle', 'tmXTTickEndF',
-                'tmXTTickSpacingF', 'tmXTTickStartF', 'tmXTValues', 'tmXUseBottom',
-                'tmYLAutoPrecision', 'tmYLBorderOn', 'tmYLDataBottomF',
-                'tmYLDataTopF', 'tmYLFormat', 'tmYLIrrTensionF',
-                'tmYLIrregularPoints', 'tmYLLabelAngleF', 'tmYLLabelConstantSpacingF',
-                'tmYLLabelDeltaF', 'tmYLLabelDirection', 'tmYLLabelFont',
-                'tmYLLabelFontAspectF', 'tmYLLabelFontColor', 'tmYLLabelFontHeightF',
-                'tmYLLabelFontQuality', 'tmYLLabelFontThicknessF',
-                'tmYLLabelFuncCode', 'tmYLLabelJust', 'tmYLLabelStride', 'tmYLLabels',
-                'tmYLLabelsOn', 'tmYLMajorLengthF', 'tmYLMajorLineColor',
-                'tmYLMajorOutwardLengthF', 'tmYLMajorThicknessF', 'tmYLMaxLabelLenF',
-                'tmYLMaxTicks', 'tmYLMinLabelSpacingF', 'tmYLMinorLengthF',
-                'tmYLMinorLineColor', 'tmYLMinorOn', 'tmYLMinorOutwardLengthF',
-                'tmYLMinorPerMajor', 'tmYLMinorThicknessF', 'tmYLMinorValues',
-                'tmYLMode', 'tmYLOn', 'tmYLPrecision', 'tmYLStyle', 'tmYLTickEndF',
-                'tmYLTickSpacingF', 'tmYLTickStartF', 'tmYLValues', 'tmYMajorGrid',
-                'tmYMajorGridLineColor', 'tmYMajorGridLineDashPattern',
-                'tmYMajorGridThicknessF', 'tmYMinorGrid', 'tmYMinorGridLineColor',
-                'tmYMinorGridLineDashPattern', 'tmYMinorGridThicknessF',
-                'tmYRAutoPrecision', 'tmYRBorderOn', 'tmYRDataBottomF',
-                'tmYRDataTopF', 'tmYRFormat', 'tmYRIrrTensionF',
-                'tmYRIrregularPoints', 'tmYRLabelAngleF', 'tmYRLabelConstantSpacingF',
-                'tmYRLabelDeltaF', 'tmYRLabelDirection', 'tmYRLabelFont',
-                'tmYRLabelFontAspectF', 'tmYRLabelFontColor', 'tmYRLabelFontHeightF',
-                'tmYRLabelFontQuality', 'tmYRLabelFontThicknessF',
-                'tmYRLabelFuncCode', 'tmYRLabelJust', 'tmYRLabelStride', 'tmYRLabels',
-                'tmYRLabelsOn', 'tmYRMajorLengthF', 'tmYRMajorLineColor',
-                'tmYRMajorOutwardLengthF', 'tmYRMajorThicknessF', 'tmYRMaxLabelLenF',
-                'tmYRMaxTicks', 'tmYRMinLabelSpacingF', 'tmYRMinorLengthF',
-                'tmYRMinorLineColor', 'tmYRMinorOn', 'tmYRMinorOutwardLengthF',
-                'tmYRMinorPerMajor', 'tmYRMinorThicknessF', 'tmYRMinorValues',
-                'tmYRMode', 'tmYROn', 'tmYRPrecision', 'tmYRStyle', 'tmYRTickEndF',
-                'tmYRTickSpacingF', 'tmYRTickStartF', 'tmYRValues', 'tmYUseLeft',
-                'trGridType', 'trLineInterpolationOn',
-                'trXAxisType', 'trXCoordPoints', 'trXInterPoints', 'trXLog',
-                'trXMaxF', 'trXMinF', 'trXReverse', 'trXSamples', 'trXTensionF',
-                'trYAxisType', 'trYCoordPoints', 'trYInterPoints', 'trYLog',
-                'trYMaxF', 'trYMinF', 'trYReverse', 'trYSamples', 'trYTensionF',
-                'txAngleF', 'txBackgroundFillColor', 'txConstantSpacingF', 'txDirection',
-                'txFont', 'HLU-Fonts', 'txFontAspectF', 'txFontColor',
-                'txFontHeightF', 'txFontOpacityF', 'txFontQuality',
-                'txFontThicknessF', 'txFuncCode', 'txJust', 'txPerimColor',
-                'txPerimDashLengthF', 'txPerimDashPattern', 'txPerimOn',
-                'txPerimSpaceF', 'txPerimThicknessF', 'txPosXF', 'txPosYF',
-                'txString', 'vcExplicitLabelBarLabelsOn', 'vcFillArrowEdgeColor',
-                'vcFillArrowEdgeThicknessF', 'vcFillArrowFillColor',
-                'vcFillArrowHeadInteriorXF', 'vcFillArrowHeadMinFracXF',
-                'vcFillArrowHeadMinFracYF', 'vcFillArrowHeadXF', 'vcFillArrowHeadYF',
-                'vcFillArrowMinFracWidthF', 'vcFillArrowWidthF', 'vcFillArrowsOn',
-                'vcFillOverEdge', 'vcGlyphOpacityF', 'vcGlyphStyle',
-                'vcLabelBarEndLabelsOn', 'vcLabelFontColor', 'vcLabelFontHeightF',
-                'vcLabelsOn', 'vcLabelsUseVectorColor', 'vcLevelColors',
-                'vcLevelCount', 'vcLevelPalette', 'vcLevelSelectionMode',
-                'vcLevelSpacingF', 'vcLevels', 'vcLineArrowColor',
-                'vcLineArrowHeadMaxSizeF', 'vcLineArrowHeadMinSizeF',
-                'vcLineArrowThicknessF', 'vcMagnitudeFormat',
-                'vcMagnitudeScaleFactorF', 'vcMagnitudeScaleValueF',
-                'vcMagnitudeScalingMode', 'vcMapDirection', 'vcMaxLevelCount',
-                'vcMaxLevelValF', 'vcMaxMagnitudeF', 'vcMinAnnoAngleF',
-                'vcMinAnnoArrowAngleF', 'vcMinAnnoArrowEdgeColor',
-                'vcMinAnnoArrowFillColor', 'vcMinAnnoArrowLineColor',
-                'vcMinAnnoArrowMinOffsetF', 'vcMinAnnoArrowSpaceF',
-                'vcMinAnnoArrowUseVecColor', 'vcMinAnnoBackgroundColor',
-                'vcMinAnnoConstantSpacingF', 'vcMinAnnoExplicitMagnitudeF',
-                'vcMinAnnoFont', 'vcMinAnnoFontAspectF', 'vcMinAnnoFontColor',
-                'vcMinAnnoFontHeightF', 'vcMinAnnoFontQuality',
-                'vcMinAnnoFontThicknessF', 'vcMinAnnoFuncCode', 'vcMinAnnoJust',
-                'vcMinAnnoOn', 'vcMinAnnoOrientation', 'vcMinAnnoOrthogonalPosF',
-                'vcMinAnnoParallelPosF', 'vcMinAnnoPerimColor', 'vcMinAnnoPerimOn',
-                'vcMinAnnoPerimSpaceF', 'vcMinAnnoPerimThicknessF', 'vcMinAnnoSide',
-                'vcMinAnnoString1', 'vcMinAnnoString1On', 'vcMinAnnoString2',
-                'vcMinAnnoString2On', 'vcMinAnnoTextDirection', 'vcMinAnnoZone',
-                'vcMinDistanceF', 'vcMinFracLengthF', 'vcMinLevelValF',
-                'vcMinMagnitudeF', 'vcMonoFillArrowEdgeColor',
-                'vcMonoFillArrowFillColor', 'vcMonoLineArrowColor',
-                'vcMonoWindBarbColor', 'vcNoDataLabelOn', 'vcNoDataLabelString',
-                'vcPositionMode', 'vcRefAnnoAngleF', 'vcRefAnnoArrowAngleF',
-                'vcRefAnnoArrowEdgeColor', 'vcRefAnnoArrowFillColor',
-                'vcRefAnnoArrowLineColor', 'vcRefAnnoArrowMinOffsetF',
-                'vcRefAnnoArrowSpaceF', 'vcRefAnnoArrowUseVecColor',
-                'vcRefAnnoBackgroundColor', 'vcRefAnnoConstantSpacingF',
-                'vcRefAnnoExplicitMagnitudeF', 'vcRefAnnoFont',
-                'vcRefAnnoFontAspectF', 'vcRefAnnoFontColor', 'vcRefAnnoFontHeightF',
-                'vcRefAnnoFontQuality', 'vcRefAnnoFontThicknessF',
-                'vcRefAnnoFuncCode', 'vcRefAnnoJust', 'vcRefAnnoOn',
-                'vcRefAnnoOrientation', 'vcRefAnnoOrthogonalPosF',
-                'vcRefAnnoParallelPosF', 'vcRefAnnoPerimColor', 'vcRefAnnoPerimOn',
-                'vcRefAnnoPerimSpaceF', 'vcRefAnnoPerimThicknessF', 'vcRefAnnoSide',
-                'vcRefAnnoString1', 'vcRefAnnoString1On', 'vcRefAnnoString2',
-                'vcRefAnnoString2On', 'vcRefAnnoTextDirection', 'vcRefAnnoZone',
-                'vcRefLengthF', 'vcRefMagnitudeF', 'vcScalarFieldData',
-                'vcScalarMissingValColor', 'vcScalarValueFormat',
-                'vcScalarValueScaleFactorF', 'vcScalarValueScaleValueF',
-                'vcScalarValueScalingMode', 'vcSpanLevelPalette', 'vcUseRefAnnoRes',
-                'vcUseScalarArray', 'vcVectorDrawOrder', 'vcVectorFieldData',
-                'vcWindBarbCalmCircleSizeF', 'vcWindBarbColor',
-                'vcWindBarbLineThicknessF', 'vcWindBarbScaleFactorF',
-                'vcWindBarbTickAngleF', 'vcWindBarbTickLengthF',
-                'vcWindBarbTickSpacingF', 'vcZeroFLabelAngleF',
-                'vcZeroFLabelBackgroundColor', 'vcZeroFLabelConstantSpacingF',
-                'vcZeroFLabelFont', 'vcZeroFLabelFontAspectF',
-                'vcZeroFLabelFontColor', 'vcZeroFLabelFontHeightF',
-                'vcZeroFLabelFontQuality', 'vcZeroFLabelFontThicknessF',
-                'vcZeroFLabelFuncCode', 'vcZeroFLabelJust', 'vcZeroFLabelOn',
-                'vcZeroFLabelOrthogonalPosF', 'vcZeroFLabelParallelPosF',
-                'vcZeroFLabelPerimColor', 'vcZeroFLabelPerimOn',
-                'vcZeroFLabelPerimSpaceF', 'vcZeroFLabelPerimThicknessF',
-                'vcZeroFLabelSide', 'vcZeroFLabelString', 'vcZeroFLabelTextDirection',
-                'vcZeroFLabelZone', 'vfCopyData', 'vfDataArray',
-                'vfExchangeDimensions', 'vfExchangeUVData', 'vfMagMaxV', 'vfMagMinV',
-                'vfMissingUValueV', 'vfMissingVValueV', 'vfPolarData',
-                'vfSingleMissingValue', 'vfUDataArray', 'vfUMaxV', 'vfUMinV',
-                'vfVDataArray', 'vfVMaxV', 'vfVMinV', 'vfXArray', 'vfXCActualEndF',
-                'vfXCActualStartF', 'vfXCEndIndex', 'vfXCEndSubsetV', 'vfXCEndV',
-                'vfXCStartIndex', 'vfXCStartSubsetV', 'vfXCStartV', 'vfXCStride',
-                'vfYArray', 'vfYCActualEndF', 'vfYCActualStartF', 'vfYCEndIndex',
-                'vfYCEndSubsetV', 'vfYCEndV', 'vfYCStartIndex', 'vfYCStartSubsetV',
-                'vfYCStartV', 'vfYCStride', 'vpAnnoManagerId', 'vpClipOn',
-                'vpHeightF', 'vpKeepAspect', 'vpOn', 'vpUseSegments', 'vpWidthF',
-                'vpXF', 'vpYF', 'wkAntiAlias', 'wkBackgroundColor', 'wkBackgroundOpacityF',
-                'wkColorMapLen', 'wkColorMap', 'wkColorModel', 'wkDashTableLength',
-                'wkDefGraphicStyleId', 'wkDeviceLowerX', 'wkDeviceLowerY',
-                'wkDeviceUpperX', 'wkDeviceUpperY', 'wkFileName', 'wkFillTableLength',
-                'wkForegroundColor', 'wkFormat', 'wkFullBackground', 'wkGksWorkId',
-                'wkHeight', 'wkMarkerTableLength', 'wkMetaName', 'wkOrientation',
-                'wkPDFFileName', 'wkPDFFormat', 'wkPDFResolution', 'wkPSFileName',
-                'wkPSFormat', 'wkPSResolution', 'wkPaperHeightF', 'wkPaperSize',
-                'wkPaperWidthF', 'wkPause', 'wkTopLevelViews', 'wkViews',
-                'wkVisualType', 'wkWidth', 'wkWindowId', 'wkXColorMode', 'wsCurrentSize',
-                'wsMaximumSize', 'wsThresholdSize', 'xyComputeXMax',
-                'xyComputeXMin', 'xyComputeYMax', 'xyComputeYMin', 'xyCoordData',
-                'xyCoordDataSpec', 'xyCurveDrawOrder', 'xyDashPattern',
-                'xyDashPatterns', 'xyExplicitLabels', 'xyExplicitLegendLabels',
-                'xyLabelMode', 'xyLineColor', 'xyLineColors', 'xyLineDashSegLenF',
-                'xyLineLabelConstantSpacingF', 'xyLineLabelFont',
-                'xyLineLabelFontAspectF', 'xyLineLabelFontColor',
-                'xyLineLabelFontColors', 'xyLineLabelFontHeightF',
-                'xyLineLabelFontQuality', 'xyLineLabelFontThicknessF',
-                'xyLineLabelFuncCode', 'xyLineThicknessF', 'xyLineThicknesses',
-                'xyMarkLineMode', 'xyMarkLineModes', 'xyMarker', 'xyMarkerColor',
-                'xyMarkerColors', 'xyMarkerSizeF', 'xyMarkerSizes',
-                'xyMarkerThicknessF', 'xyMarkerThicknesses', 'xyMarkers',
-                'xyMonoDashPattern', 'xyMonoLineColor', 'xyMonoLineLabelFontColor',
-                'xyMonoLineThickness', 'xyMonoMarkLineMode', 'xyMonoMarker',
-                'xyMonoMarkerColor', 'xyMonoMarkerSize', 'xyMonoMarkerThickness',
-                'xyXIrrTensionF', 'xyXIrregularPoints', 'xyXStyle', 'xyYIrrTensionF',
-                'xyYIrregularPoints', 'xyYStyle'), prefix=r'\b'),
-             Name.Builtin),
-
+            (
+                words(
+                    (
+                        "amDataXF",
+                        "amDataYF",
+                        "amJust",
+                        "amOn",
+                        "amOrthogonalPosF",
+                        "amParallelPosF",
+                        "amResizeNotify",
+                        "amSide",
+                        "amTrackData",
+                        "amViewId",
+                        "amZone",
+                        "appDefaultParent",
+                        "appFileSuffix",
+                        "appResources",
+                        "appSysDir",
+                        "appUsrDir",
+                        "caCopyArrays",
+                        "caXArray",
+                        "caXCast",
+                        "caXMaxV",
+                        "caXMinV",
+                        "caXMissingV",
+                        "caYArray",
+                        "caYCast",
+                        "caYMaxV",
+                        "caYMinV",
+                        "caYMissingV",
+                        "cnCellFillEdgeColor",
+                        "cnCellFillMissingValEdgeColor",
+                        "cnConpackParams",
+                        "cnConstFEnableFill",
+                        "cnConstFLabelAngleF",
+                        "cnConstFLabelBackgroundColor",
+                        "cnConstFLabelConstantSpacingF",
+                        "cnConstFLabelFont",
+                        "cnConstFLabelFontAspectF",
+                        "cnConstFLabelFontColor",
+                        "cnConstFLabelFontHeightF",
+                        "cnConstFLabelFontQuality",
+                        "cnConstFLabelFontThicknessF",
+                        "cnConstFLabelFormat",
+                        "cnConstFLabelFuncCode",
+                        "cnConstFLabelJust",
+                        "cnConstFLabelOn",
+                        "cnConstFLabelOrthogonalPosF",
+                        "cnConstFLabelParallelPosF",
+                        "cnConstFLabelPerimColor",
+                        "cnConstFLabelPerimOn",
+                        "cnConstFLabelPerimSpaceF",
+                        "cnConstFLabelPerimThicknessF",
+                        "cnConstFLabelSide",
+                        "cnConstFLabelString",
+                        "cnConstFLabelTextDirection",
+                        "cnConstFLabelZone",
+                        "cnConstFUseInfoLabelRes",
+                        "cnExplicitLabelBarLabelsOn",
+                        "cnExplicitLegendLabelsOn",
+                        "cnExplicitLineLabelsOn",
+                        "cnFillBackgroundColor",
+                        "cnFillColor",
+                        "cnFillColors",
+                        "cnFillDotSizeF",
+                        "cnFillDrawOrder",
+                        "cnFillMode",
+                        "cnFillOn",
+                        "cnFillOpacityF",
+                        "cnFillPalette",
+                        "cnFillPattern",
+                        "cnFillPatterns",
+                        "cnFillScaleF",
+                        "cnFillScales",
+                        "cnFixFillBleed",
+                        "cnGridBoundFillColor",
+                        "cnGridBoundFillPattern",
+                        "cnGridBoundFillScaleF",
+                        "cnGridBoundPerimColor",
+                        "cnGridBoundPerimDashPattern",
+                        "cnGridBoundPerimOn",
+                        "cnGridBoundPerimThicknessF",
+                        "cnHighLabelAngleF",
+                        "cnHighLabelBackgroundColor",
+                        "cnHighLabelConstantSpacingF",
+                        "cnHighLabelCount",
+                        "cnHighLabelFont",
+                        "cnHighLabelFontAspectF",
+                        "cnHighLabelFontColor",
+                        "cnHighLabelFontHeightF",
+                        "cnHighLabelFontQuality",
+                        "cnHighLabelFontThicknessF",
+                        "cnHighLabelFormat",
+                        "cnHighLabelFuncCode",
+                        "cnHighLabelPerimColor",
+                        "cnHighLabelPerimOn",
+                        "cnHighLabelPerimSpaceF",
+                        "cnHighLabelPerimThicknessF",
+                        "cnHighLabelString",
+                        "cnHighLabelsOn",
+                        "cnHighLowLabelOverlapMode",
+                        "cnHighUseLineLabelRes",
+                        "cnInfoLabelAngleF",
+                        "cnInfoLabelBackgroundColor",
+                        "cnInfoLabelConstantSpacingF",
+                        "cnInfoLabelFont",
+                        "cnInfoLabelFontAspectF",
+                        "cnInfoLabelFontColor",
+                        "cnInfoLabelFontHeightF",
+                        "cnInfoLabelFontQuality",
+                        "cnInfoLabelFontThicknessF",
+                        "cnInfoLabelFormat",
+                        "cnInfoLabelFuncCode",
+                        "cnInfoLabelJust",
+                        "cnInfoLabelOn",
+                        "cnInfoLabelOrthogonalPosF",
+                        "cnInfoLabelParallelPosF",
+                        "cnInfoLabelPerimColor",
+                        "cnInfoLabelPerimOn",
+                        "cnInfoLabelPerimSpaceF",
+                        "cnInfoLabelPerimThicknessF",
+                        "cnInfoLabelSide",
+                        "cnInfoLabelString",
+                        "cnInfoLabelTextDirection",
+                        "cnInfoLabelZone",
+                        "cnLabelBarEndLabelsOn",
+                        "cnLabelBarEndStyle",
+                        "cnLabelDrawOrder",
+                        "cnLabelMasking",
+                        "cnLabelScaleFactorF",
+                        "cnLabelScaleValueF",
+                        "cnLabelScalingMode",
+                        "cnLegendLevelFlags",
+                        "cnLevelCount",
+                        "cnLevelFlag",
+                        "cnLevelFlags",
+                        "cnLevelSelectionMode",
+                        "cnLevelSpacingF",
+                        "cnLevels",
+                        "cnLineColor",
+                        "cnLineColors",
+                        "cnLineDashPattern",
+                        "cnLineDashPatterns",
+                        "cnLineDashSegLenF",
+                        "cnLineDrawOrder",
+                        "cnLineLabelAngleF",
+                        "cnLineLabelBackgroundColor",
+                        "cnLineLabelConstantSpacingF",
+                        "cnLineLabelCount",
+                        "cnLineLabelDensityF",
+                        "cnLineLabelFont",
+                        "cnLineLabelFontAspectF",
+                        "cnLineLabelFontColor",
+                        "cnLineLabelFontColors",
+                        "cnLineLabelFontHeightF",
+                        "cnLineLabelFontQuality",
+                        "cnLineLabelFontThicknessF",
+                        "cnLineLabelFormat",
+                        "cnLineLabelFuncCode",
+                        "cnLineLabelInterval",
+                        "cnLineLabelPerimColor",
+                        "cnLineLabelPerimOn",
+                        "cnLineLabelPerimSpaceF",
+                        "cnLineLabelPerimThicknessF",
+                        "cnLineLabelPlacementMode",
+                        "cnLineLabelStrings",
+                        "cnLineLabelsOn",
+                        "cnLinePalette",
+                        "cnLineThicknessF",
+                        "cnLineThicknesses",
+                        "cnLinesOn",
+                        "cnLowLabelAngleF",
+                        "cnLowLabelBackgroundColor",
+                        "cnLowLabelConstantSpacingF",
+                        "cnLowLabelCount",
+                        "cnLowLabelFont",
+                        "cnLowLabelFontAspectF",
+                        "cnLowLabelFontColor",
+                        "cnLowLabelFontHeightF",
+                        "cnLowLabelFontQuality",
+                        "cnLowLabelFontThicknessF",
+                        "cnLowLabelFormat",
+                        "cnLowLabelFuncCode",
+                        "cnLowLabelPerimColor",
+                        "cnLowLabelPerimOn",
+                        "cnLowLabelPerimSpaceF",
+                        "cnLowLabelPerimThicknessF",
+                        "cnLowLabelString",
+                        "cnLowLabelsOn",
+                        "cnLowUseHighLabelRes",
+                        "cnMaxDataValueFormat",
+                        "cnMaxLevelCount",
+                        "cnMaxLevelValF",
+                        "cnMaxPointDistanceF",
+                        "cnMinLevelValF",
+                        "cnMissingValFillColor",
+                        "cnMissingValFillPattern",
+                        "cnMissingValFillScaleF",
+                        "cnMissingValPerimColor",
+                        "cnMissingValPerimDashPattern",
+                        "cnMissingValPerimGridBoundOn",
+                        "cnMissingValPerimOn",
+                        "cnMissingValPerimThicknessF",
+                        "cnMonoFillColor",
+                        "cnMonoFillPattern",
+                        "cnMonoFillScale",
+                        "cnMonoLevelFlag",
+                        "cnMonoLineColor",
+                        "cnMonoLineDashPattern",
+                        "cnMonoLineLabelFontColor",
+                        "cnMonoLineThickness",
+                        "cnNoDataLabelOn",
+                        "cnNoDataLabelString",
+                        "cnOutOfRangeFillColor",
+                        "cnOutOfRangeFillPattern",
+                        "cnOutOfRangeFillScaleF",
+                        "cnOutOfRangePerimColor",
+                        "cnOutOfRangePerimDashPattern",
+                        "cnOutOfRangePerimOn",
+                        "cnOutOfRangePerimThicknessF",
+                        "cnRasterCellSizeF",
+                        "cnRasterMinCellSizeF",
+                        "cnRasterModeOn",
+                        "cnRasterSampleFactorF",
+                        "cnRasterSmoothingOn",
+                        "cnScalarFieldData",
+                        "cnSmoothingDistanceF",
+                        "cnSmoothingOn",
+                        "cnSmoothingTensionF",
+                        "cnSpanFillPalette",
+                        "cnSpanLinePalette",
+                        "ctCopyTables",
+                        "ctXElementSize",
+                        "ctXMaxV",
+                        "ctXMinV",
+                        "ctXMissingV",
+                        "ctXTable",
+                        "ctXTableLengths",
+                        "ctXTableType",
+                        "ctYElementSize",
+                        "ctYMaxV",
+                        "ctYMinV",
+                        "ctYMissingV",
+                        "ctYTable",
+                        "ctYTableLengths",
+                        "ctYTableType",
+                        "dcDelayCompute",
+                        "errBuffer",
+                        "errFileName",
+                        "errFilePtr",
+                        "errLevel",
+                        "errPrint",
+                        "errUnitNumber",
+                        "gsClipOn",
+                        "gsColors",
+                        "gsEdgeColor",
+                        "gsEdgeDashPattern",
+                        "gsEdgeDashSegLenF",
+                        "gsEdgeThicknessF",
+                        "gsEdgesOn",
+                        "gsFillBackgroundColor",
+                        "gsFillColor",
+                        "gsFillDotSizeF",
+                        "gsFillIndex",
+                        "gsFillLineThicknessF",
+                        "gsFillOpacityF",
+                        "gsFillScaleF",
+                        "gsFont",
+                        "gsFontAspectF",
+                        "gsFontColor",
+                        "gsFontHeightF",
+                        "gsFontOpacityF",
+                        "gsFontQuality",
+                        "gsFontThicknessF",
+                        "gsLineColor",
+                        "gsLineDashPattern",
+                        "gsLineDashSegLenF",
+                        "gsLineLabelConstantSpacingF",
+                        "gsLineLabelFont",
+                        "gsLineLabelFontAspectF",
+                        "gsLineLabelFontColor",
+                        "gsLineLabelFontHeightF",
+                        "gsLineLabelFontQuality",
+                        "gsLineLabelFontThicknessF",
+                        "gsLineLabelFuncCode",
+                        "gsLineLabelString",
+                        "gsLineOpacityF",
+                        "gsLineThicknessF",
+                        "gsMarkerColor",
+                        "gsMarkerIndex",
+                        "gsMarkerOpacityF",
+                        "gsMarkerSizeF",
+                        "gsMarkerThicknessF",
+                        "gsSegments",
+                        "gsTextAngleF",
+                        "gsTextConstantSpacingF",
+                        "gsTextDirection",
+                        "gsTextFuncCode",
+                        "gsTextJustification",
+                        "gsnAboveYRefLineBarColors",
+                        "gsnAboveYRefLineBarFillScales",
+                        "gsnAboveYRefLineBarPatterns",
+                        "gsnAboveYRefLineColor",
+                        "gsnAddCyclic",
+                        "gsnAttachBorderOn",
+                        "gsnAttachPlotsXAxis",
+                        "gsnBelowYRefLineBarColors",
+                        "gsnBelowYRefLineBarFillScales",
+                        "gsnBelowYRefLineBarPatterns",
+                        "gsnBelowYRefLineColor",
+                        "gsnBoxMargin",
+                        "gsnCenterString",
+                        "gsnCenterStringFontColor",
+                        "gsnCenterStringFontHeightF",
+                        "gsnCenterStringFuncCode",
+                        "gsnCenterStringOrthogonalPosF",
+                        "gsnCenterStringParallelPosF",
+                        "gsnContourLineThicknessesScale",
+                        "gsnContourNegLineDashPattern",
+                        "gsnContourPosLineDashPattern",
+                        "gsnContourZeroLineThicknessF",
+                        "gsnDebugWriteFileName",
+                        "gsnDraw",
+                        "gsnFrame",
+                        "gsnHistogramBarWidthPercent",
+                        "gsnHistogramBinIntervals",
+                        "gsnHistogramBinMissing",
+                        "gsnHistogramBinWidth",
+                        "gsnHistogramClassIntervals",
+                        "gsnHistogramCompare",
+                        "gsnHistogramComputePercentages",
+                        "gsnHistogramComputePercentagesNoMissing",
+                        "gsnHistogramDiscreteBinValues",
+                        "gsnHistogramDiscreteClassValues",
+                        "gsnHistogramHorizontal",
+                        "gsnHistogramMinMaxBinsOn",
+                        "gsnHistogramNumberOfBins",
+                        "gsnHistogramPercentSign",
+                        "gsnHistogramSelectNiceIntervals",
+                        "gsnLeftString",
+                        "gsnLeftStringFontColor",
+                        "gsnLeftStringFontHeightF",
+                        "gsnLeftStringFuncCode",
+                        "gsnLeftStringOrthogonalPosF",
+                        "gsnLeftStringParallelPosF",
+                        "gsnMajorLatSpacing",
+                        "gsnMajorLonSpacing",
+                        "gsnMaskLambertConformal",
+                        "gsnMaskLambertConformalOutlineOn",
+                        "gsnMaximize",
+                        "gsnMinorLatSpacing",
+                        "gsnMinorLonSpacing",
+                        "gsnPanelBottom",
+                        "gsnPanelCenter",
+                        "gsnPanelDebug",
+                        "gsnPanelFigureStrings",
+                        "gsnPanelFigureStringsBackgroundFillColor",
+                        "gsnPanelFigureStringsFontHeightF",
+                        "gsnPanelFigureStringsJust",
+                        "gsnPanelFigureStringsPerimOn",
+                        "gsnPanelLabelBar",
+                        "gsnPanelLeft",
+                        "gsnPanelMainFont",
+                        "gsnPanelMainFontColor",
+                        "gsnPanelMainFontHeightF",
+                        "gsnPanelMainString",
+                        "gsnPanelRight",
+                        "gsnPanelRowSpec",
+                        "gsnPanelScalePlotIndex",
+                        "gsnPanelTop",
+                        "gsnPanelXF",
+                        "gsnPanelXWhiteSpacePercent",
+                        "gsnPanelYF",
+                        "gsnPanelYWhiteSpacePercent",
+                        "gsnPaperHeight",
+                        "gsnPaperMargin",
+                        "gsnPaperOrientation",
+                        "gsnPaperWidth",
+                        "gsnPolar",
+                        "gsnPolarLabelDistance",
+                        "gsnPolarLabelFont",
+                        "gsnPolarLabelFontHeightF",
+                        "gsnPolarLabelSpacing",
+                        "gsnPolarTime",
+                        "gsnPolarUT",
+                        "gsnRightString",
+                        "gsnRightStringFontColor",
+                        "gsnRightStringFontHeightF",
+                        "gsnRightStringFuncCode",
+                        "gsnRightStringOrthogonalPosF",
+                        "gsnRightStringParallelPosF",
+                        "gsnScalarContour",
+                        "gsnScale",
+                        "gsnShape",
+                        "gsnSpreadColorEnd",
+                        "gsnSpreadColorStart",
+                        "gsnSpreadColors",
+                        "gsnStringFont",
+                        "gsnStringFontColor",
+                        "gsnStringFontHeightF",
+                        "gsnStringFuncCode",
+                        "gsnTickMarksOn",
+                        "gsnXAxisIrregular2Linear",
+                        "gsnXAxisIrregular2Log",
+                        "gsnXRefLine",
+                        "gsnXRefLineColor",
+                        "gsnXRefLineDashPattern",
+                        "gsnXRefLineThicknessF",
+                        "gsnXYAboveFillColors",
+                        "gsnXYBarChart",
+                        "gsnXYBarChartBarWidth",
+                        "gsnXYBarChartColors",
+                        "gsnXYBarChartColors2",
+                        "gsnXYBarChartFillDotSizeF",
+                        "gsnXYBarChartFillLineThicknessF",
+                        "gsnXYBarChartFillOpacityF",
+                        "gsnXYBarChartFillScaleF",
+                        "gsnXYBarChartOutlineOnly",
+                        "gsnXYBarChartOutlineThicknessF",
+                        "gsnXYBarChartPatterns",
+                        "gsnXYBarChartPatterns2",
+                        "gsnXYBelowFillColors",
+                        "gsnXYFillColors",
+                        "gsnXYFillOpacities",
+                        "gsnXYLeftFillColors",
+                        "gsnXYRightFillColors",
+                        "gsnYAxisIrregular2Linear",
+                        "gsnYAxisIrregular2Log",
+                        "gsnYRefLine",
+                        "gsnYRefLineColor",
+                        "gsnYRefLineColors",
+                        "gsnYRefLineDashPattern",
+                        "gsnYRefLineDashPatterns",
+                        "gsnYRefLineThicknessF",
+                        "gsnYRefLineThicknesses",
+                        "gsnZonalMean",
+                        "gsnZonalMeanXMaxF",
+                        "gsnZonalMeanXMinF",
+                        "gsnZonalMeanYRefLine",
+                        "lbAutoManage",
+                        "lbBottomMarginF",
+                        "lbBoxCount",
+                        "lbBoxEndCapStyle",
+                        "lbBoxFractions",
+                        "lbBoxLineColor",
+                        "lbBoxLineDashPattern",
+                        "lbBoxLineDashSegLenF",
+                        "lbBoxLineThicknessF",
+                        "lbBoxLinesOn",
+                        "lbBoxMajorExtentF",
+                        "lbBoxMinorExtentF",
+                        "lbBoxSeparatorLinesOn",
+                        "lbBoxSizing",
+                        "lbFillBackground",
+                        "lbFillColor",
+                        "lbFillColors",
+                        "lbFillDotSizeF",
+                        "lbFillLineThicknessF",
+                        "lbFillPattern",
+                        "lbFillPatterns",
+                        "lbFillScaleF",
+                        "lbFillScales",
+                        "lbJustification",
+                        "lbLabelAlignment",
+                        "lbLabelAngleF",
+                        "lbLabelAutoStride",
+                        "lbLabelBarOn",
+                        "lbLabelConstantSpacingF",
+                        "lbLabelDirection",
+                        "lbLabelFont",
+                        "lbLabelFontAspectF",
+                        "lbLabelFontColor",
+                        "lbLabelFontHeightF",
+                        "lbLabelFontQuality",
+                        "lbLabelFontThicknessF",
+                        "lbLabelFuncCode",
+                        "lbLabelJust",
+                        "lbLabelOffsetF",
+                        "lbLabelPosition",
+                        "lbLabelStride",
+                        "lbLabelStrings",
+                        "lbLabelsOn",
+                        "lbLeftMarginF",
+                        "lbMaxLabelLenF",
+                        "lbMinLabelSpacingF",
+                        "lbMonoFillColor",
+                        "lbMonoFillPattern",
+                        "lbMonoFillScale",
+                        "lbOrientation",
+                        "lbPerimColor",
+                        "lbPerimDashPattern",
+                        "lbPerimDashSegLenF",
+                        "lbPerimFill",
+                        "lbPerimFillColor",
+                        "lbPerimOn",
+                        "lbPerimThicknessF",
+                        "lbRasterFillOn",
+                        "lbRightMarginF",
+                        "lbTitleAngleF",
+                        "lbTitleConstantSpacingF",
+                        "lbTitleDirection",
+                        "lbTitleExtentF",
+                        "lbTitleFont",
+                        "lbTitleFontAspectF",
+                        "lbTitleFontColor",
+                        "lbTitleFontHeightF",
+                        "lbTitleFontQuality",
+                        "lbTitleFontThicknessF",
+                        "lbTitleFuncCode",
+                        "lbTitleJust",
+                        "lbTitleOffsetF",
+                        "lbTitleOn",
+                        "lbTitlePosition",
+                        "lbTitleString",
+                        "lbTopMarginF",
+                        "lgAutoManage",
+                        "lgBottomMarginF",
+                        "lgBoxBackground",
+                        "lgBoxLineColor",
+                        "lgBoxLineDashPattern",
+                        "lgBoxLineDashSegLenF",
+                        "lgBoxLineThicknessF",
+                        "lgBoxLinesOn",
+                        "lgBoxMajorExtentF",
+                        "lgBoxMinorExtentF",
+                        "lgDashIndex",
+                        "lgDashIndexes",
+                        "lgItemCount",
+                        "lgItemOrder",
+                        "lgItemPlacement",
+                        "lgItemPositions",
+                        "lgItemType",
+                        "lgItemTypes",
+                        "lgJustification",
+                        "lgLabelAlignment",
+                        "lgLabelAngleF",
+                        "lgLabelAutoStride",
+                        "lgLabelConstantSpacingF",
+                        "lgLabelDirection",
+                        "lgLabelFont",
+                        "lgLabelFontAspectF",
+                        "lgLabelFontColor",
+                        "lgLabelFontHeightF",
+                        "lgLabelFontQuality",
+                        "lgLabelFontThicknessF",
+                        "lgLabelFuncCode",
+                        "lgLabelJust",
+                        "lgLabelOffsetF",
+                        "lgLabelPosition",
+                        "lgLabelStride",
+                        "lgLabelStrings",
+                        "lgLabelsOn",
+                        "lgLeftMarginF",
+                        "lgLegendOn",
+                        "lgLineColor",
+                        "lgLineColors",
+                        "lgLineDashSegLenF",
+                        "lgLineDashSegLens",
+                        "lgLineLabelConstantSpacingF",
+                        "lgLineLabelFont",
+                        "lgLineLabelFontAspectF",
+                        "lgLineLabelFontColor",
+                        "lgLineLabelFontColors",
+                        "lgLineLabelFontHeightF",
+                        "lgLineLabelFontHeights",
+                        "lgLineLabelFontQuality",
+                        "lgLineLabelFontThicknessF",
+                        "lgLineLabelFuncCode",
+                        "lgLineLabelStrings",
+                        "lgLineLabelsOn",
+                        "lgLineThicknessF",
+                        "lgLineThicknesses",
+                        "lgMarkerColor",
+                        "lgMarkerColors",
+                        "lgMarkerIndex",
+                        "lgMarkerIndexes",
+                        "lgMarkerSizeF",
+                        "lgMarkerSizes",
+                        "lgMarkerThicknessF",
+                        "lgMarkerThicknesses",
+                        "lgMonoDashIndex",
+                        "lgMonoItemType",
+                        "lgMonoLineColor",
+                        "lgMonoLineDashSegLen",
+                        "lgMonoLineLabelFontColor",
+                        "lgMonoLineLabelFontHeight",
+                        "lgMonoLineThickness",
+                        "lgMonoMarkerColor",
+                        "lgMonoMarkerIndex",
+                        "lgMonoMarkerSize",
+                        "lgMonoMarkerThickness",
+                        "lgOrientation",
+                        "lgPerimColor",
+                        "lgPerimDashPattern",
+                        "lgPerimDashSegLenF",
+                        "lgPerimFill",
+                        "lgPerimFillColor",
+                        "lgPerimOn",
+                        "lgPerimThicknessF",
+                        "lgRightMarginF",
+                        "lgTitleAngleF",
+                        "lgTitleConstantSpacingF",
+                        "lgTitleDirection",
+                        "lgTitleExtentF",
+                        "lgTitleFont",
+                        "lgTitleFontAspectF",
+                        "lgTitleFontColor",
+                        "lgTitleFontHeightF",
+                        "lgTitleFontQuality",
+                        "lgTitleFontThicknessF",
+                        "lgTitleFuncCode",
+                        "lgTitleJust",
+                        "lgTitleOffsetF",
+                        "lgTitleOn",
+                        "lgTitlePosition",
+                        "lgTitleString",
+                        "lgTopMarginF",
+                        "mpAreaGroupCount",
+                        "mpAreaMaskingOn",
+                        "mpAreaNames",
+                        "mpAreaTypes",
+                        "mpBottomAngleF",
+                        "mpBottomMapPosF",
+                        "mpBottomNDCF",
+                        "mpBottomNPCF",
+                        "mpBottomPointLatF",
+                        "mpBottomPointLonF",
+                        "mpBottomWindowF",
+                        "mpCenterLatF",
+                        "mpCenterLonF",
+                        "mpCenterRotF",
+                        "mpCountyLineColor",
+                        "mpCountyLineDashPattern",
+                        "mpCountyLineDashSegLenF",
+                        "mpCountyLineThicknessF",
+                        "mpDataBaseVersion",
+                        "mpDataResolution",
+                        "mpDataSetName",
+                        "mpDefaultFillColor",
+                        "mpDefaultFillPattern",
+                        "mpDefaultFillScaleF",
+                        "mpDynamicAreaGroups",
+                        "mpEllipticalBoundary",
+                        "mpFillAreaSpecifiers",
+                        "mpFillBoundarySets",
+                        "mpFillColor",
+                        "mpFillColors",
+                        "mpFillColors-default",
+                        "mpFillDotSizeF",
+                        "mpFillDrawOrder",
+                        "mpFillOn",
+                        "mpFillPatternBackground",
+                        "mpFillPattern",
+                        "mpFillPatterns",
+                        "mpFillPatterns-default",
+                        "mpFillScaleF",
+                        "mpFillScales",
+                        "mpFillScales-default",
+                        "mpFixedAreaGroups",
+                        "mpGeophysicalLineColor",
+                        "mpGeophysicalLineDashPattern",
+                        "mpGeophysicalLineDashSegLenF",
+                        "mpGeophysicalLineThicknessF",
+                        "mpGreatCircleLinesOn",
+                        "mpGridAndLimbDrawOrder",
+                        "mpGridAndLimbOn",
+                        "mpGridLatSpacingF",
+                        "mpGridLineColor",
+                        "mpGridLineDashPattern",
+                        "mpGridLineDashSegLenF",
+                        "mpGridLineThicknessF",
+                        "mpGridLonSpacingF",
+                        "mpGridMaskMode",
+                        "mpGridMaxLatF",
+                        "mpGridPolarLonSpacingF",
+                        "mpGridSpacingF",
+                        "mpInlandWaterFillColor",
+                        "mpInlandWaterFillPattern",
+                        "mpInlandWaterFillScaleF",
+                        "mpLabelDrawOrder",
+                        "mpLabelFontColor",
+                        "mpLabelFontHeightF",
+                        "mpLabelsOn",
+                        "mpLambertMeridianF",
+                        "mpLambertParallel1F",
+                        "mpLambertParallel2F",
+                        "mpLandFillColor",
+                        "mpLandFillPattern",
+                        "mpLandFillScaleF",
+                        "mpLeftAngleF",
+                        "mpLeftCornerLatF",
+                        "mpLeftCornerLonF",
+                        "mpLeftMapPosF",
+                        "mpLeftNDCF",
+                        "mpLeftNPCF",
+                        "mpLeftPointLatF",
+                        "mpLeftPointLonF",
+                        "mpLeftWindowF",
+                        "mpLimbLineColor",
+                        "mpLimbLineDashPattern",
+                        "mpLimbLineDashSegLenF",
+                        "mpLimbLineThicknessF",
+                        "mpLimitMode",
+                        "mpMaskAreaSpecifiers",
+                        "mpMaskOutlineSpecifiers",
+                        "mpMaxLatF",
+                        "mpMaxLonF",
+                        "mpMinLatF",
+                        "mpMinLonF",
+                        "mpMonoFillColor",
+                        "mpMonoFillPattern",
+                        "mpMonoFillScale",
+                        "mpNationalLineColor",
+                        "mpNationalLineDashPattern",
+                        "mpNationalLineThicknessF",
+                        "mpOceanFillColor",
+                        "mpOceanFillPattern",
+                        "mpOceanFillScaleF",
+                        "mpOutlineBoundarySets",
+                        "mpOutlineDrawOrder",
+                        "mpOutlineMaskingOn",
+                        "mpOutlineOn",
+                        "mpOutlineSpecifiers",
+                        "mpPerimDrawOrder",
+                        "mpPerimLineColor",
+                        "mpPerimLineDashPattern",
+                        "mpPerimLineDashSegLenF",
+                        "mpPerimLineThicknessF",
+                        "mpPerimOn",
+                        "mpPolyMode",
+                        "mpProjection",
+                        "mpProvincialLineColor",
+                        "mpProvincialLineDashPattern",
+                        "mpProvincialLineDashSegLenF",
+                        "mpProvincialLineThicknessF",
+                        "mpRelativeCenterLat",
+                        "mpRelativeCenterLon",
+                        "mpRightAngleF",
+                        "mpRightCornerLatF",
+                        "mpRightCornerLonF",
+                        "mpRightMapPosF",
+                        "mpRightNDCF",
+                        "mpRightNPCF",
+                        "mpRightPointLatF",
+                        "mpRightPointLonF",
+                        "mpRightWindowF",
+                        "mpSatelliteAngle1F",
+                        "mpSatelliteAngle2F",
+                        "mpSatelliteDistF",
+                        "mpShapeMode",
+                        "mpSpecifiedFillColors",
+                        "mpSpecifiedFillDirectIndexing",
+                        "mpSpecifiedFillPatterns",
+                        "mpSpecifiedFillPriority",
+                        "mpSpecifiedFillScales",
+                        "mpTopAngleF",
+                        "mpTopMapPosF",
+                        "mpTopNDCF",
+                        "mpTopNPCF",
+                        "mpTopPointLatF",
+                        "mpTopPointLonF",
+                        "mpTopWindowF",
+                        "mpUSStateLineColor",
+                        "mpUSStateLineDashPattern",
+                        "mpUSStateLineDashSegLenF",
+                        "mpUSStateLineThicknessF",
+                        "pmAnnoManagers",
+                        "pmAnnoViews",
+                        "pmLabelBarDisplayMode",
+                        "pmLabelBarHeightF",
+                        "pmLabelBarKeepAspect",
+                        "pmLabelBarOrthogonalPosF",
+                        "pmLabelBarParallelPosF",
+                        "pmLabelBarSide",
+                        "pmLabelBarWidthF",
+                        "pmLabelBarZone",
+                        "pmLegendDisplayMode",
+                        "pmLegendHeightF",
+                        "pmLegendKeepAspect",
+                        "pmLegendOrthogonalPosF",
+                        "pmLegendParallelPosF",
+                        "pmLegendSide",
+                        "pmLegendWidthF",
+                        "pmLegendZone",
+                        "pmOverlaySequenceIds",
+                        "pmTickMarkDisplayMode",
+                        "pmTickMarkZone",
+                        "pmTitleDisplayMode",
+                        "pmTitleZone",
+                        "prGraphicStyle",
+                        "prPolyType",
+                        "prXArray",
+                        "prYArray",
+                        "sfCopyData",
+                        "sfDataArray",
+                        "sfDataMaxV",
+                        "sfDataMinV",
+                        "sfElementNodes",
+                        "sfExchangeDimensions",
+                        "sfFirstNodeIndex",
+                        "sfMissingValueV",
+                        "sfXArray",
+                        "sfXCActualEndF",
+                        "sfXCActualStartF",
+                        "sfXCEndIndex",
+                        "sfXCEndSubsetV",
+                        "sfXCEndV",
+                        "sfXCStartIndex",
+                        "sfXCStartSubsetV",
+                        "sfXCStartV",
+                        "sfXCStride",
+                        "sfXCellBounds",
+                        "sfYArray",
+                        "sfYCActualEndF",
+                        "sfYCActualStartF",
+                        "sfYCEndIndex",
+                        "sfYCEndSubsetV",
+                        "sfYCEndV",
+                        "sfYCStartIndex",
+                        "sfYCStartSubsetV",
+                        "sfYCStartV",
+                        "sfYCStride",
+                        "sfYCellBounds",
+                        "stArrowLengthF",
+                        "stArrowStride",
+                        "stCrossoverCheckCount",
+                        "stExplicitLabelBarLabelsOn",
+                        "stLabelBarEndLabelsOn",
+                        "stLabelFormat",
+                        "stLengthCheckCount",
+                        "stLevelColors",
+                        "stLevelCount",
+                        "stLevelPalette",
+                        "stLevelSelectionMode",
+                        "stLevelSpacingF",
+                        "stLevels",
+                        "stLineColor",
+                        "stLineOpacityF",
+                        "stLineStartStride",
+                        "stLineThicknessF",
+                        "stMapDirection",
+                        "stMaxLevelCount",
+                        "stMaxLevelValF",
+                        "stMinArrowSpacingF",
+                        "stMinDistanceF",
+                        "stMinLevelValF",
+                        "stMinLineSpacingF",
+                        "stMinStepFactorF",
+                        "stMonoLineColor",
+                        "stNoDataLabelOn",
+                        "stNoDataLabelString",
+                        "stScalarFieldData",
+                        "stScalarMissingValColor",
+                        "stSpanLevelPalette",
+                        "stStepSizeF",
+                        "stStreamlineDrawOrder",
+                        "stUseScalarArray",
+                        "stVectorFieldData",
+                        "stZeroFLabelAngleF",
+                        "stZeroFLabelBackgroundColor",
+                        "stZeroFLabelConstantSpacingF",
+                        "stZeroFLabelFont",
+                        "stZeroFLabelFontAspectF",
+                        "stZeroFLabelFontColor",
+                        "stZeroFLabelFontHeightF",
+                        "stZeroFLabelFontQuality",
+                        "stZeroFLabelFontThicknessF",
+                        "stZeroFLabelFuncCode",
+                        "stZeroFLabelJust",
+                        "stZeroFLabelOn",
+                        "stZeroFLabelOrthogonalPosF",
+                        "stZeroFLabelParallelPosF",
+                        "stZeroFLabelPerimColor",
+                        "stZeroFLabelPerimOn",
+                        "stZeroFLabelPerimSpaceF",
+                        "stZeroFLabelPerimThicknessF",
+                        "stZeroFLabelSide",
+                        "stZeroFLabelString",
+                        "stZeroFLabelTextDirection",
+                        "stZeroFLabelZone",
+                        "tfDoNDCOverlay",
+                        "tfPlotManagerOn",
+                        "tfPolyDrawList",
+                        "tfPolyDrawOrder",
+                        "tiDeltaF",
+                        "tiMainAngleF",
+                        "tiMainConstantSpacingF",
+                        "tiMainDirection",
+                        "tiMainFont",
+                        "tiMainFontAspectF",
+                        "tiMainFontColor",
+                        "tiMainFontHeightF",
+                        "tiMainFontQuality",
+                        "tiMainFontThicknessF",
+                        "tiMainFuncCode",
+                        "tiMainJust",
+                        "tiMainOffsetXF",
+                        "tiMainOffsetYF",
+                        "tiMainOn",
+                        "tiMainPosition",
+                        "tiMainSide",
+                        "tiMainString",
+                        "tiUseMainAttributes",
+                        "tiXAxisAngleF",
+                        "tiXAxisConstantSpacingF",
+                        "tiXAxisDirection",
+                        "tiXAxisFont",
+                        "tiXAxisFontAspectF",
+                        "tiXAxisFontColor",
+                        "tiXAxisFontHeightF",
+                        "tiXAxisFontQuality",
+                        "tiXAxisFontThicknessF",
+                        "tiXAxisFuncCode",
+                        "tiXAxisJust",
+                        "tiXAxisOffsetXF",
+                        "tiXAxisOffsetYF",
+                        "tiXAxisOn",
+                        "tiXAxisPosition",
+                        "tiXAxisSide",
+                        "tiXAxisString",
+                        "tiYAxisAngleF",
+                        "tiYAxisConstantSpacingF",
+                        "tiYAxisDirection",
+                        "tiYAxisFont",
+                        "tiYAxisFontAspectF",
+                        "tiYAxisFontColor",
+                        "tiYAxisFontHeightF",
+                        "tiYAxisFontQuality",
+                        "tiYAxisFontThicknessF",
+                        "tiYAxisFuncCode",
+                        "tiYAxisJust",
+                        "tiYAxisOffsetXF",
+                        "tiYAxisOffsetYF",
+                        "tiYAxisOn",
+                        "tiYAxisPosition",
+                        "tiYAxisSide",
+                        "tiYAxisString",
+                        "tmBorderLineColor",
+                        "tmBorderThicknessF",
+                        "tmEqualizeXYSizes",
+                        "tmLabelAutoStride",
+                        "tmSciNoteCutoff",
+                        "tmXBAutoPrecision",
+                        "tmXBBorderOn",
+                        "tmXBDataLeftF",
+                        "tmXBDataRightF",
+                        "tmXBFormat",
+                        "tmXBIrrTensionF",
+                        "tmXBIrregularPoints",
+                        "tmXBLabelAngleF",
+                        "tmXBLabelConstantSpacingF",
+                        "tmXBLabelDeltaF",
+                        "tmXBLabelDirection",
+                        "tmXBLabelFont",
+                        "tmXBLabelFontAspectF",
+                        "tmXBLabelFontColor",
+                        "tmXBLabelFontHeightF",
+                        "tmXBLabelFontQuality",
+                        "tmXBLabelFontThicknessF",
+                        "tmXBLabelFuncCode",
+                        "tmXBLabelJust",
+                        "tmXBLabelStride",
+                        "tmXBLabels",
+                        "tmXBLabelsOn",
+                        "tmXBMajorLengthF",
+                        "tmXBMajorLineColor",
+                        "tmXBMajorOutwardLengthF",
+                        "tmXBMajorThicknessF",
+                        "tmXBMaxLabelLenF",
+                        "tmXBMaxTicks",
+                        "tmXBMinLabelSpacingF",
+                        "tmXBMinorLengthF",
+                        "tmXBMinorLineColor",
+                        "tmXBMinorOn",
+                        "tmXBMinorOutwardLengthF",
+                        "tmXBMinorPerMajor",
+                        "tmXBMinorThicknessF",
+                        "tmXBMinorValues",
+                        "tmXBMode",
+                        "tmXBOn",
+                        "tmXBPrecision",
+                        "tmXBStyle",
+                        "tmXBTickEndF",
+                        "tmXBTickSpacingF",
+                        "tmXBTickStartF",
+                        "tmXBValues",
+                        "tmXMajorGrid",
+                        "tmXMajorGridLineColor",
+                        "tmXMajorGridLineDashPattern",
+                        "tmXMajorGridThicknessF",
+                        "tmXMinorGrid",
+                        "tmXMinorGridLineColor",
+                        "tmXMinorGridLineDashPattern",
+                        "tmXMinorGridThicknessF",
+                        "tmXTAutoPrecision",
+                        "tmXTBorderOn",
+                        "tmXTDataLeftF",
+                        "tmXTDataRightF",
+                        "tmXTFormat",
+                        "tmXTIrrTensionF",
+                        "tmXTIrregularPoints",
+                        "tmXTLabelAngleF",
+                        "tmXTLabelConstantSpacingF",
+                        "tmXTLabelDeltaF",
+                        "tmXTLabelDirection",
+                        "tmXTLabelFont",
+                        "tmXTLabelFontAspectF",
+                        "tmXTLabelFontColor",
+                        "tmXTLabelFontHeightF",
+                        "tmXTLabelFontQuality",
+                        "tmXTLabelFontThicknessF",
+                        "tmXTLabelFuncCode",
+                        "tmXTLabelJust",
+                        "tmXTLabelStride",
+                        "tmXTLabels",
+                        "tmXTLabelsOn",
+                        "tmXTMajorLengthF",
+                        "tmXTMajorLineColor",
+                        "tmXTMajorOutwardLengthF",
+                        "tmXTMajorThicknessF",
+                        "tmXTMaxLabelLenF",
+                        "tmXTMaxTicks",
+                        "tmXTMinLabelSpacingF",
+                        "tmXTMinorLengthF",
+                        "tmXTMinorLineColor",
+                        "tmXTMinorOn",
+                        "tmXTMinorOutwardLengthF",
+                        "tmXTMinorPerMajor",
+                        "tmXTMinorThicknessF",
+                        "tmXTMinorValues",
+                        "tmXTMode",
+                        "tmXTOn",
+                        "tmXTPrecision",
+                        "tmXTStyle",
+                        "tmXTTickEndF",
+                        "tmXTTickSpacingF",
+                        "tmXTTickStartF",
+                        "tmXTValues",
+                        "tmXUseBottom",
+                        "tmYLAutoPrecision",
+                        "tmYLBorderOn",
+                        "tmYLDataBottomF",
+                        "tmYLDataTopF",
+                        "tmYLFormat",
+                        "tmYLIrrTensionF",
+                        "tmYLIrregularPoints",
+                        "tmYLLabelAngleF",
+                        "tmYLLabelConstantSpacingF",
+                        "tmYLLabelDeltaF",
+                        "tmYLLabelDirection",
+                        "tmYLLabelFont",
+                        "tmYLLabelFontAspectF",
+                        "tmYLLabelFontColor",
+                        "tmYLLabelFontHeightF",
+                        "tmYLLabelFontQuality",
+                        "tmYLLabelFontThicknessF",
+                        "tmYLLabelFuncCode",
+                        "tmYLLabelJust",
+                        "tmYLLabelStride",
+                        "tmYLLabels",
+                        "tmYLLabelsOn",
+                        "tmYLMajorLengthF",
+                        "tmYLMajorLineColor",
+                        "tmYLMajorOutwardLengthF",
+                        "tmYLMajorThicknessF",
+                        "tmYLMaxLabelLenF",
+                        "tmYLMaxTicks",
+                        "tmYLMinLabelSpacingF",
+                        "tmYLMinorLengthF",
+                        "tmYLMinorLineColor",
+                        "tmYLMinorOn",
+                        "tmYLMinorOutwardLengthF",
+                        "tmYLMinorPerMajor",
+                        "tmYLMinorThicknessF",
+                        "tmYLMinorValues",
+                        "tmYLMode",
+                        "tmYLOn",
+                        "tmYLPrecision",
+                        "tmYLStyle",
+                        "tmYLTickEndF",
+                        "tmYLTickSpacingF",
+                        "tmYLTickStartF",
+                        "tmYLValues",
+                        "tmYMajorGrid",
+                        "tmYMajorGridLineColor",
+                        "tmYMajorGridLineDashPattern",
+                        "tmYMajorGridThicknessF",
+                        "tmYMinorGrid",
+                        "tmYMinorGridLineColor",
+                        "tmYMinorGridLineDashPattern",
+                        "tmYMinorGridThicknessF",
+                        "tmYRAutoPrecision",
+                        "tmYRBorderOn",
+                        "tmYRDataBottomF",
+                        "tmYRDataTopF",
+                        "tmYRFormat",
+                        "tmYRIrrTensionF",
+                        "tmYRIrregularPoints",
+                        "tmYRLabelAngleF",
+                        "tmYRLabelConstantSpacingF",
+                        "tmYRLabelDeltaF",
+                        "tmYRLabelDirection",
+                        "tmYRLabelFont",
+                        "tmYRLabelFontAspectF",
+                        "tmYRLabelFontColor",
+                        "tmYRLabelFontHeightF",
+                        "tmYRLabelFontQuality",
+                        "tmYRLabelFontThicknessF",
+                        "tmYRLabelFuncCode",
+                        "tmYRLabelJust",
+                        "tmYRLabelStride",
+                        "tmYRLabels",
+                        "tmYRLabelsOn",
+                        "tmYRMajorLengthF",
+                        "tmYRMajorLineColor",
+                        "tmYRMajorOutwardLengthF",
+                        "tmYRMajorThicknessF",
+                        "tmYRMaxLabelLenF",
+                        "tmYRMaxTicks",
+                        "tmYRMinLabelSpacingF",
+                        "tmYRMinorLengthF",
+                        "tmYRMinorLineColor",
+                        "tmYRMinorOn",
+                        "tmYRMinorOutwardLengthF",
+                        "tmYRMinorPerMajor",
+                        "tmYRMinorThicknessF",
+                        "tmYRMinorValues",
+                        "tmYRMode",
+                        "tmYROn",
+                        "tmYRPrecision",
+                        "tmYRStyle",
+                        "tmYRTickEndF",
+                        "tmYRTickSpacingF",
+                        "tmYRTickStartF",
+                        "tmYRValues",
+                        "tmYUseLeft",
+                        "trGridType",
+                        "trLineInterpolationOn",
+                        "trXAxisType",
+                        "trXCoordPoints",
+                        "trXInterPoints",
+                        "trXLog",
+                        "trXMaxF",
+                        "trXMinF",
+                        "trXReverse",
+                        "trXSamples",
+                        "trXTensionF",
+                        "trYAxisType",
+                        "trYCoordPoints",
+                        "trYInterPoints",
+                        "trYLog",
+                        "trYMaxF",
+                        "trYMinF",
+                        "trYReverse",
+                        "trYSamples",
+                        "trYTensionF",
+                        "txAngleF",
+                        "txBackgroundFillColor",
+                        "txConstantSpacingF",
+                        "txDirection",
+                        "txFont",
+                        "HLU-Fonts",
+                        "txFontAspectF",
+                        "txFontColor",
+                        "txFontHeightF",
+                        "txFontOpacityF",
+                        "txFontQuality",
+                        "txFontThicknessF",
+                        "txFuncCode",
+                        "txJust",
+                        "txPerimColor",
+                        "txPerimDashLengthF",
+                        "txPerimDashPattern",
+                        "txPerimOn",
+                        "txPerimSpaceF",
+                        "txPerimThicknessF",
+                        "txPosXF",
+                        "txPosYF",
+                        "txString",
+                        "vcExplicitLabelBarLabelsOn",
+                        "vcFillArrowEdgeColor",
+                        "vcFillArrowEdgeThicknessF",
+                        "vcFillArrowFillColor",
+                        "vcFillArrowHeadInteriorXF",
+                        "vcFillArrowHeadMinFracXF",
+                        "vcFillArrowHeadMinFracYF",
+                        "vcFillArrowHeadXF",
+                        "vcFillArrowHeadYF",
+                        "vcFillArrowMinFracWidthF",
+                        "vcFillArrowWidthF",
+                        "vcFillArrowsOn",
+                        "vcFillOverEdge",
+                        "vcGlyphOpacityF",
+                        "vcGlyphStyle",
+                        "vcLabelBarEndLabelsOn",
+                        "vcLabelFontColor",
+                        "vcLabelFontHeightF",
+                        "vcLabelsOn",
+                        "vcLabelsUseVectorColor",
+                        "vcLevelColors",
+                        "vcLevelCount",
+                        "vcLevelPalette",
+                        "vcLevelSelectionMode",
+                        "vcLevelSpacingF",
+                        "vcLevels",
+                        "vcLineArrowColor",
+                        "vcLineArrowHeadMaxSizeF",
+                        "vcLineArrowHeadMinSizeF",
+                        "vcLineArrowThicknessF",
+                        "vcMagnitudeFormat",
+                        "vcMagnitudeScaleFactorF",
+                        "vcMagnitudeScaleValueF",
+                        "vcMagnitudeScalingMode",
+                        "vcMapDirection",
+                        "vcMaxLevelCount",
+                        "vcMaxLevelValF",
+                        "vcMaxMagnitudeF",
+                        "vcMinAnnoAngleF",
+                        "vcMinAnnoArrowAngleF",
+                        "vcMinAnnoArrowEdgeColor",
+                        "vcMinAnnoArrowFillColor",
+                        "vcMinAnnoArrowLineColor",
+                        "vcMinAnnoArrowMinOffsetF",
+                        "vcMinAnnoArrowSpaceF",
+                        "vcMinAnnoArrowUseVecColor",
+                        "vcMinAnnoBackgroundColor",
+                        "vcMinAnnoConstantSpacingF",
+                        "vcMinAnnoExplicitMagnitudeF",
+                        "vcMinAnnoFont",
+                        "vcMinAnnoFontAspectF",
+                        "vcMinAnnoFontColor",
+                        "vcMinAnnoFontHeightF",
+                        "vcMinAnnoFontQuality",
+                        "vcMinAnnoFontThicknessF",
+                        "vcMinAnnoFuncCode",
+                        "vcMinAnnoJust",
+                        "vcMinAnnoOn",
+                        "vcMinAnnoOrientation",
+                        "vcMinAnnoOrthogonalPosF",
+                        "vcMinAnnoParallelPosF",
+                        "vcMinAnnoPerimColor",
+                        "vcMinAnnoPerimOn",
+                        "vcMinAnnoPerimSpaceF",
+                        "vcMinAnnoPerimThicknessF",
+                        "vcMinAnnoSide",
+                        "vcMinAnnoString1",
+                        "vcMinAnnoString1On",
+                        "vcMinAnnoString2",
+                        "vcMinAnnoString2On",
+                        "vcMinAnnoTextDirection",
+                        "vcMinAnnoZone",
+                        "vcMinDistanceF",
+                        "vcMinFracLengthF",
+                        "vcMinLevelValF",
+                        "vcMinMagnitudeF",
+                        "vcMonoFillArrowEdgeColor",
+                        "vcMonoFillArrowFillColor",
+                        "vcMonoLineArrowColor",
+                        "vcMonoWindBarbColor",
+                        "vcNoDataLabelOn",
+                        "vcNoDataLabelString",
+                        "vcPositionMode",
+                        "vcRefAnnoAngleF",
+                        "vcRefAnnoArrowAngleF",
+                        "vcRefAnnoArrowEdgeColor",
+                        "vcRefAnnoArrowFillColor",
+                        "vcRefAnnoArrowLineColor",
+                        "vcRefAnnoArrowMinOffsetF",
+                        "vcRefAnnoArrowSpaceF",
+                        "vcRefAnnoArrowUseVecColor",
+                        "vcRefAnnoBackgroundColor",
+                        "vcRefAnnoConstantSpacingF",
+                        "vcRefAnnoExplicitMagnitudeF",
+                        "vcRefAnnoFont",
+                        "vcRefAnnoFontAspectF",
+                        "vcRefAnnoFontColor",
+                        "vcRefAnnoFontHeightF",
+                        "vcRefAnnoFontQuality",
+                        "vcRefAnnoFontThicknessF",
+                        "vcRefAnnoFuncCode",
+                        "vcRefAnnoJust",
+                        "vcRefAnnoOn",
+                        "vcRefAnnoOrientation",
+                        "vcRefAnnoOrthogonalPosF",
+                        "vcRefAnnoParallelPosF",
+                        "vcRefAnnoPerimColor",
+                        "vcRefAnnoPerimOn",
+                        "vcRefAnnoPerimSpaceF",
+                        "vcRefAnnoPerimThicknessF",
+                        "vcRefAnnoSide",
+                        "vcRefAnnoString1",
+                        "vcRefAnnoString1On",
+                        "vcRefAnnoString2",
+                        "vcRefAnnoString2On",
+                        "vcRefAnnoTextDirection",
+                        "vcRefAnnoZone",
+                        "vcRefLengthF",
+                        "vcRefMagnitudeF",
+                        "vcScalarFieldData",
+                        "vcScalarMissingValColor",
+                        "vcScalarValueFormat",
+                        "vcScalarValueScaleFactorF",
+                        "vcScalarValueScaleValueF",
+                        "vcScalarValueScalingMode",
+                        "vcSpanLevelPalette",
+                        "vcUseRefAnnoRes",
+                        "vcUseScalarArray",
+                        "vcVectorDrawOrder",
+                        "vcVectorFieldData",
+                        "vcWindBarbCalmCircleSizeF",
+                        "vcWindBarbColor",
+                        "vcWindBarbLineThicknessF",
+                        "vcWindBarbScaleFactorF",
+                        "vcWindBarbTickAngleF",
+                        "vcWindBarbTickLengthF",
+                        "vcWindBarbTickSpacingF",
+                        "vcZeroFLabelAngleF",
+                        "vcZeroFLabelBackgroundColor",
+                        "vcZeroFLabelConstantSpacingF",
+                        "vcZeroFLabelFont",
+                        "vcZeroFLabelFontAspectF",
+                        "vcZeroFLabelFontColor",
+                        "vcZeroFLabelFontHeightF",
+                        "vcZeroFLabelFontQuality",
+                        "vcZeroFLabelFontThicknessF",
+                        "vcZeroFLabelFuncCode",
+                        "vcZeroFLabelJust",
+                        "vcZeroFLabelOn",
+                        "vcZeroFLabelOrthogonalPosF",
+                        "vcZeroFLabelParallelPosF",
+                        "vcZeroFLabelPerimColor",
+                        "vcZeroFLabelPerimOn",
+                        "vcZeroFLabelPerimSpaceF",
+                        "vcZeroFLabelPerimThicknessF",
+                        "vcZeroFLabelSide",
+                        "vcZeroFLabelString",
+                        "vcZeroFLabelTextDirection",
+                        "vcZeroFLabelZone",
+                        "vfCopyData",
+                        "vfDataArray",
+                        "vfExchangeDimensions",
+                        "vfExchangeUVData",
+                        "vfMagMaxV",
+                        "vfMagMinV",
+                        "vfMissingUValueV",
+                        "vfMissingVValueV",
+                        "vfPolarData",
+                        "vfSingleMissingValue",
+                        "vfUDataArray",
+                        "vfUMaxV",
+                        "vfUMinV",
+                        "vfVDataArray",
+                        "vfVMaxV",
+                        "vfVMinV",
+                        "vfXArray",
+                        "vfXCActualEndF",
+                        "vfXCActualStartF",
+                        "vfXCEndIndex",
+                        "vfXCEndSubsetV",
+                        "vfXCEndV",
+                        "vfXCStartIndex",
+                        "vfXCStartSubsetV",
+                        "vfXCStartV",
+                        "vfXCStride",
+                        "vfYArray",
+                        "vfYCActualEndF",
+                        "vfYCActualStartF",
+                        "vfYCEndIndex",
+                        "vfYCEndSubsetV",
+                        "vfYCEndV",
+                        "vfYCStartIndex",
+                        "vfYCStartSubsetV",
+                        "vfYCStartV",
+                        "vfYCStride",
+                        "vpAnnoManagerId",
+                        "vpClipOn",
+                        "vpHeightF",
+                        "vpKeepAspect",
+                        "vpOn",
+                        "vpUseSegments",
+                        "vpWidthF",
+                        "vpXF",
+                        "vpYF",
+                        "wkAntiAlias",
+                        "wkBackgroundColor",
+                        "wkBackgroundOpacityF",
+                        "wkColorMapLen",
+                        "wkColorMap",
+                        "wkColorModel",
+                        "wkDashTableLength",
+                        "wkDefGraphicStyleId",
+                        "wkDeviceLowerX",
+                        "wkDeviceLowerY",
+                        "wkDeviceUpperX",
+                        "wkDeviceUpperY",
+                        "wkFileName",
+                        "wkFillTableLength",
+                        "wkForegroundColor",
+                        "wkFormat",
+                        "wkFullBackground",
+                        "wkGksWorkId",
+                        "wkHeight",
+                        "wkMarkerTableLength",
+                        "wkMetaName",
+                        "wkOrientation",
+                        "wkPDFFileName",
+                        "wkPDFFormat",
+                        "wkPDFResolution",
+                        "wkPSFileName",
+                        "wkPSFormat",
+                        "wkPSResolution",
+                        "wkPaperHeightF",
+                        "wkPaperSize",
+                        "wkPaperWidthF",
+                        "wkPause",
+                        "wkTopLevelViews",
+                        "wkViews",
+                        "wkVisualType",
+                        "wkWidth",
+                        "wkWindowId",
+                        "wkXColorMode",
+                        "wsCurrentSize",
+                        "wsMaximumSize",
+                        "wsThresholdSize",
+                        "xyComputeXMax",
+                        "xyComputeXMin",
+                        "xyComputeYMax",
+                        "xyComputeYMin",
+                        "xyCoordData",
+                        "xyCoordDataSpec",
+                        "xyCurveDrawOrder",
+                        "xyDashPattern",
+                        "xyDashPatterns",
+                        "xyExplicitLabels",
+                        "xyExplicitLegendLabels",
+                        "xyLabelMode",
+                        "xyLineColor",
+                        "xyLineColors",
+                        "xyLineDashSegLenF",
+                        "xyLineLabelConstantSpacingF",
+                        "xyLineLabelFont",
+                        "xyLineLabelFontAspectF",
+                        "xyLineLabelFontColor",
+                        "xyLineLabelFontColors",
+                        "xyLineLabelFontHeightF",
+                        "xyLineLabelFontQuality",
+                        "xyLineLabelFontThicknessF",
+                        "xyLineLabelFuncCode",
+                        "xyLineThicknessF",
+                        "xyLineThicknesses",
+                        "xyMarkLineMode",
+                        "xyMarkLineModes",
+                        "xyMarker",
+                        "xyMarkerColor",
+                        "xyMarkerColors",
+                        "xyMarkerSizeF",
+                        "xyMarkerSizes",
+                        "xyMarkerThicknessF",
+                        "xyMarkerThicknesses",
+                        "xyMarkers",
+                        "xyMonoDashPattern",
+                        "xyMonoLineColor",
+                        "xyMonoLineLabelFontColor",
+                        "xyMonoLineThickness",
+                        "xyMonoMarkLineMode",
+                        "xyMonoMarker",
+                        "xyMonoMarkerColor",
+                        "xyMonoMarkerSize",
+                        "xyMonoMarkerThickness",
+                        "xyXIrrTensionF",
+                        "xyXIrregularPoints",
+                        "xyXStyle",
+                        "xyYIrrTensionF",
+                        "xyYIrregularPoints",
+                        "xyYStyle",
+                    ),
+                    prefix=r"\b",
+                ),
+                Name.Builtin,
+            ),
             # Booleans
-            (r'\.(True|False)\.', Name.Builtin),
+            (r"\.(True|False)\.", Name.Builtin),
             # Comparing Operators
-            (r'\.(eq|ne|lt|le|gt|ge|not|and|or|xor)\.', Operator.Word),
+            (r"\.(eq|ne|lt|le|gt|ge|not|and|or|xor)\.", Operator.Word),
         ],
-
-        'strings': [
+        "strings": [
             (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
         ],
-
-        'nums': [
-            (r'\d+(?![.e])(_[a-z]\w+)?', Number.Integer),
-            (r'[+-]?\d*\.\d+(e[-+]?\d+)?(_[a-z]\w+)?', Number.Float),
-            (r'[+-]?\d+\.\d*(e[-+]?\d+)?(_[a-z]\w+)?', Number.Float),
+        "nums": [
+            (r"\d+(?![.e])(_[a-z]\w+)?", Number.Integer),
+            (r"[+-]?\d*\.\d+(e[-+]?\d+)?(_[a-z]\w+)?", Number.Float),
+            (r"[+-]?\d+\.\d*(e[-+]?\d+)?(_[a-z]\w+)?", Number.Float),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nimrod.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nimrod.py
index 365a8dc..c9b79bb 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nimrod.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nimrod.py
@@ -1,20 +1,29 @@
 """
-    pygments.lexers.nimrod
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.nimrod
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the Nim language (formerly known as Nimrod).
+Lexer for the Nim language (formerly known as Nimrod).
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, default, bygroups
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Error
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Error,
+)
 
-__all__ = ['NimrodLexer']
+__all__ = ["NimrodLexer"]
 
 
 class NimrodLexer(RegexLexer):
@@ -22,12 +31,12 @@ class NimrodLexer(RegexLexer):
     For Nim source code.
     """
 
-    name = 'Nimrod'
-    url = 'http://nim-lang.org/'
-    aliases = ['nimrod', 'nim']
-    filenames = ['*.nim', '*.nimrod']
-    mimetypes = ['text/x-nim']
-    version_added = '1.5'
+    name = "Nimrod"
+    url = "http://nim-lang.org/"
+    aliases = ["nimrod", "nim"]
+    filenames = ["*.nim", "*.nimrod"]
+    mimetypes = ["text/x-nim"]
+    version_added = "1.5"
 
     flags = re.MULTILINE | re.IGNORECASE
 
@@ -38,162 +47,229 @@ class NimrodLexer(RegexLexer):
             for ch in word:
                 new.append(ch)
                 new.append("_?")
-            newWords.append(''.join(new))
+            newWords.append("".join(new))
             new = []
         return "|".join(newWords)
 
     keywords = [
-        'addr', 'and', 'as', 'asm', 'bind', 'block', 'break', 'case',
-        'cast', 'concept', 'const', 'continue', 'converter', 'defer', 'discard',
-        'distinct', 'div', 'do', 'elif', 'else', 'end', 'enum', 'except',
-        'export', 'finally', 'for', 'if', 'in', 'yield', 'interface',
-        'is', 'isnot', 'iterator', 'let', 'mixin', 'mod',
-        'not', 'notin', 'object', 'of', 'or', 'out', 'ptr', 'raise',
-        'ref', 'return', 'shl', 'shr', 'static', 'try',
-        'tuple', 'type', 'using', 'when', 'while', 'xor'
+        "addr",
+        "and",
+        "as",
+        "asm",
+        "bind",
+        "block",
+        "break",
+        "case",
+        "cast",
+        "concept",
+        "const",
+        "continue",
+        "converter",
+        "defer",
+        "discard",
+        "distinct",
+        "div",
+        "do",
+        "elif",
+        "else",
+        "end",
+        "enum",
+        "except",
+        "export",
+        "finally",
+        "for",
+        "if",
+        "in",
+        "yield",
+        "interface",
+        "is",
+        "isnot",
+        "iterator",
+        "let",
+        "mixin",
+        "mod",
+        "not",
+        "notin",
+        "object",
+        "of",
+        "or",
+        "out",
+        "ptr",
+        "raise",
+        "ref",
+        "return",
+        "shl",
+        "shr",
+        "static",
+        "try",
+        "tuple",
+        "type",
+        "using",
+        "when",
+        "while",
+        "xor",
     ]
 
-    keywordsPseudo = [
-        'nil', 'true', 'false'
-    ]
+    keywordsPseudo = ["nil", "true", "false"]
 
     opWords = [
-        'and', 'or', 'not', 'xor', 'shl', 'shr', 'div', 'mod', 'in',
-        'notin', 'is', 'isnot'
+        "and",
+        "or",
+        "not",
+        "xor",
+        "shl",
+        "shr",
+        "div",
+        "mod",
+        "in",
+        "notin",
+        "is",
+        "isnot",
     ]
 
     types = [
-        'int', 'int8', 'int16', 'int32', 'int64', 'float', 'float32', 'float64',
-        'bool', 'char', 'range', 'array', 'seq', 'set', 'string'
+        "int",
+        "int8",
+        "int16",
+        "int32",
+        "int64",
+        "float",
+        "float32",
+        "float64",
+        "bool",
+        "char",
+        "range",
+        "array",
+        "seq",
+        "set",
+        "string",
     ]
 
     tokens = {
-        'root': [
+        "root": [
             # Comments
-            (r'##\[', String.Doc, 'doccomment'),
-            (r'##.*$', String.Doc),
-            (r'#\[', Comment.Multiline, 'comment'),
-            (r'#.*$', Comment),
-
+            (r"##\[", String.Doc, "doccomment"),
+            (r"##.*$", String.Doc),
+            (r"#\[", Comment.Multiline, "comment"),
+            (r"#.*$", Comment),
             # Pragmas
-            (r'\{\.', String.Other, 'pragma'),
-
+            (r"\{\.", String.Other, "pragma"),
             # Operators
-            (r'[*=><+\-/@$~&%!?|\\\[\]]', Operator),
-            (r'\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;',
-             Punctuation),
-
+            (r"[*=><+\-/@$~&%!?|\\\[\]]", Operator),
+            (
+                r"\.\.|\.|,|\[\.|\.\]|\{\.|\.\}|\(\.|\.\)|\{|\}|\(|\)|:|\^|`|;",
+                Punctuation,
+            ),
             # Case statement branch
-            (r'(\n\s*)(of)(\s)', bygroups(Text.Whitespace, Keyword,
-                                          Text.Whitespace), 'casebranch'),
-
+            (
+                r"(\n\s*)(of)(\s)",
+                bygroups(Text.Whitespace, Keyword, Text.Whitespace),
+                "casebranch",
+            ),
             # Strings
-            (r'(?:[\w]+)"', String, 'rdqs'),
-            (r'"""', String.Double, 'tdqs'),
-            ('"', String, 'dqs'),
-
+            (r'(?:[\w]+)"', String, "rdqs"),
+            (r'"""', String.Double, "tdqs"),
+            ('"', String, "dqs"),
             # Char
-            ("'", String.Char, 'chars'),
-
+            ("'", String.Char, "chars"),
             # Keywords
-            (rf'({underscorize(opWords)})\b', Operator.Word),
-            (r'(proc|func|method|macro|template)(\s)(?![(\[\]])',
-             bygroups(Keyword, Text.Whitespace), 'funcname'),
-            (rf'({underscorize(keywords)})\b', Keyword),
-            (r'({})\b'.format(underscorize(['from', 'import', 'include', 'export'])),
-             Keyword.Namespace),
-            (r'(v_?a_?r)\b', Keyword.Declaration),
-            (rf'({underscorize(types)})\b', Name.Builtin),
-            (rf'({underscorize(keywordsPseudo)})\b', Keyword.Pseudo),
-
+            (rf"({underscorize(opWords)})\b", Operator.Word),
+            (
+                r"(proc|func|method|macro|template)(\s)(?![(\[\]])",
+                bygroups(Keyword, Text.Whitespace),
+                "funcname",
+            ),
+            (rf"({underscorize(keywords)})\b", Keyword),
+            (
+                r"({})\b".format(underscorize(["from", "import", "include", "export"])),
+                Keyword.Namespace,
+            ),
+            (r"(v_?a_?r)\b", Keyword.Declaration),
+            (rf"({underscorize(types)})\b", Name.Builtin),
+            (rf"({underscorize(keywordsPseudo)})\b", Keyword.Pseudo),
             # Identifiers
-            (r'\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*', Name),
-
+            (r"\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*", Name),
             # Numbers
-            (r'[0-9][0-9_]*(?=([e.]|\'f(32|64)))',
-             Number.Float, ('float-suffix', 'float-number')),
-            (r'0x[a-f0-9][a-f0-9_]*', Number.Hex, 'int-suffix'),
-            (r'0b[01][01_]*', Number.Bin, 'int-suffix'),
-            (r'0o[0-7][0-7_]*', Number.Oct, 'int-suffix'),
-            (r'[0-9][0-9_]*', Number.Integer, 'int-suffix'),
-
+            (
+                r"[0-9][0-9_]*(?=([e.]|\'f(32|64)))",
+                Number.Float,
+                ("float-suffix", "float-number"),
+            ),
+            (r"0x[a-f0-9][a-f0-9_]*", Number.Hex, "int-suffix"),
+            (r"0b[01][01_]*", Number.Bin, "int-suffix"),
+            (r"0o[0-7][0-7_]*", Number.Oct, "int-suffix"),
+            (r"[0-9][0-9_]*", Number.Integer, "int-suffix"),
             # Whitespace
-            (r'\s+', Text.Whitespace),
-            (r'.+$', Error),
+            (r"\s+", Text.Whitespace),
+            (r".+$", Error),
         ],
-        'chars': [
+        "chars": [
             (r'\\([\\abcefnrtvl"\']|x[a-f0-9]{2}|[0-9]{1,3})', String.Escape),
-            (r"'", String.Char, '#pop'),
-            (r".", String.Char)
+            (r"'", String.Char, "#pop"),
+            (r".", String.Char),
         ],
-        'strings': [
-            (r'(?|>=|>>|>|<=|<<|<|\+|-|=|/|\*|%|\+=|-=|!|@', Operator),
-            (r'\(|\)|\[|\]|,|\.\.\.|\.\.|\.|::|:', Punctuation),
-            (r'`\{[^`]*`\}', Text),  # Extern blocks won't be Lexed by Nit
-            (r'[\r\n\t ]+', Text),
+            (r"(\'[^\'\\]\')|(\'\\.\')", String.Char),
+            (r"[0-9]+", Number.Integer),
+            (r"[0-9]*.[0-9]+", Number.Float),
+            (r"0(x|X)[0-9A-Fa-f]+", Number.Hex),
+            (r"[a-z]\w*", Name),
+            (r"_\w+", Name.Variable.Instance),
+            (r"==|!=|<==>|>=|>>|>|<=|<<|<|\+|-|=|/|\*|%|\+=|-=|!|@", Operator),
+            (r"\(|\)|\[|\]|,|\.\.\.|\.\.|\.|::|:", Punctuation),
+            (r"`\{[^`]*`\}", Text),  # Extern blocks won't be Lexed by Nit
+            (r"[\r\n\t ]+", Text),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nix.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nix.py
index 3fa88c6..85ab46e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nix.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/nix.py
@@ -1,20 +1,29 @@
 """
-    pygments.lexers.nix
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.nix
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the NixOS Nix language.
+Lexers for the NixOS Nix language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Literal
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Literal,
+)
 
-__all__ = ['NixLexer']
+__all__ = ["NixLexer"]
 
 
 class NixLexer(RegexLexer):
@@ -22,123 +31,155 @@ class NixLexer(RegexLexer):
     For the Nix language.
     """
 
-    name = 'Nix'
-    url = 'http://nixos.org/nix/'
-    aliases = ['nixos', 'nix']
-    filenames = ['*.nix']
-    mimetypes = ['text/x-nix']
-    version_added = '2.0'
+    name = "Nix"
+    url = "http://nixos.org/nix/"
+    aliases = ["nixos", "nix"]
+    filenames = ["*.nix"]
+    mimetypes = ["text/x-nix"]
+    version_added = "2.0"
 
-    keywords = ['rec', 'with', 'let', 'in', 'inherit', 'assert', 'if',
-                'else', 'then', '...']
-    builtins = ['import', 'abort', 'baseNameOf', 'dirOf', 'isNull', 'builtins',
-                'map', 'removeAttrs', 'throw', 'toString', 'derivation']
-    operators = ['++', '+', '?', '.', '!', '//', '==', '/',
-                 '!=', '&&', '||', '->', '=', '<', '>', '*', '-']
+    keywords = [
+        "rec",
+        "with",
+        "let",
+        "in",
+        "inherit",
+        "assert",
+        "if",
+        "else",
+        "then",
+        "...",
+    ]
+    builtins = [
+        "import",
+        "abort",
+        "baseNameOf",
+        "dirOf",
+        "isNull",
+        "builtins",
+        "map",
+        "removeAttrs",
+        "throw",
+        "toString",
+        "derivation",
+    ]
+    operators = [
+        "++",
+        "+",
+        "?",
+        ".",
+        "!",
+        "//",
+        "==",
+        "/",
+        "!=",
+        "&&",
+        "||",
+        "->",
+        "=",
+        "<",
+        ">",
+        "*",
+        "-",
+    ]
 
     punctuations = ["(", ")", "[", "]", ";", "{", "}", ":", ",", "@"]
 
     tokens = {
-        'root': [
+        "root": [
             # comments starting with #
-            (r'#.*$', Comment.Single),
-
+            (r"#.*$", Comment.Single),
             # multiline comments
-            (r'/\*', Comment.Multiline, 'comment'),
-
+            (r"/\*", Comment.Multiline, "comment"),
             # whitespace
-            (r'\s+', Text),
-
+            (r"\s+", Text),
             # keywords
-            ('({})'.format('|'.join(re.escape(entry) + '\\b' for entry in keywords)), Keyword),
-
+            (
+                "({})".format("|".join(re.escape(entry) + "\\b" for entry in keywords)),
+                Keyword,
+            ),
             # highlight the builtins
-            ('({})'.format('|'.join(re.escape(entry) + '\\b' for entry in builtins)),
-             Name.Builtin),
-
-            (r'\b(true|false|null)\b', Name.Constant),
-
+            (
+                "({})".format("|".join(re.escape(entry) + "\\b" for entry in builtins)),
+                Name.Builtin,
+            ),
+            (r"\b(true|false|null)\b", Name.Constant),
             # floats
-            (r'-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?', Number.Float),
-
+            (r"-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?", Number.Float),
             # integers
-            (r'-?[0-9]+', Number.Integer),
-
+            (r"-?[0-9]+", Number.Integer),
             # paths
-            (r'[\w.+-]*(\/[\w.+-]+)+', Literal),
-            (r'~(\/[\w.+-]+)+', Literal),
-            (r'\<[\w.+-]+(\/[\w.+-]+)*\>', Literal),
-
+            (r"[\w.+-]*(\/[\w.+-]+)+", Literal),
+            (r"~(\/[\w.+-]+)+", Literal),
+            (r"\<[\w.+-]+(\/[\w.+-]+)*\>", Literal),
             # operators
-            ('({})'.format('|'.join(re.escape(entry) for entry in operators)),
-             Operator),
-
+            (
+                "({})".format("|".join(re.escape(entry) for entry in operators)),
+                Operator,
+            ),
             # word operators
-            (r'\b(or|and)\b', Operator.Word),
-
-            (r'\{', Punctuation, 'block'),
-
+            (r"\b(or|and)\b", Operator.Word),
+            (r"\{", Punctuation, "block"),
             # punctuations
-            ('({})'.format('|'.join(re.escape(entry) for entry in punctuations)), Punctuation),
-
+            (
+                "({})".format("|".join(re.escape(entry) for entry in punctuations)),
+                Punctuation,
+            ),
             # strings
-            (r'"', String.Double, 'doublequote'),
-            (r"''", String.Multiline, 'multiline'),
-
+            (r'"', String.Double, "doublequote"),
+            (r"''", String.Multiline, "multiline"),
             # urls
-            (r'[a-zA-Z][a-zA-Z0-9\+\-\.]*\:[\w%/?:@&=+$,\\.!~*\'-]+', Literal),
-
+            (r"[a-zA-Z][a-zA-Z0-9\+\-\.]*\:[\w%/?:@&=+$,\\.!~*\'-]+", Literal),
             # names of variables
-            (r'[\w-]+(?=\s*=)', String.Symbol),
-            (r'[a-zA-Z_][\w\'-]*', Text),
-
-            (r"\$\{", String.Interpol, 'antiquote'),
+            (r"[\w-]+(?=\s*=)", String.Symbol),
+            (r"[a-zA-Z_][\w\'-]*", Text),
+            (r"\$\{", String.Interpol, "antiquote"),
         ],
-        'comment': [
-            (r'[^/*]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]', Comment.Multiline),
+        "comment": [
+            (r"[^/*]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
         ],
-        'multiline': [
+        "multiline": [
             (r"''(\$|'|\\n|\\r|\\t|\\)", String.Escape),
-            (r"''", String.Multiline, '#pop'),
-            (r'\$\{', String.Interpol, 'antiquote'),
+            (r"''", String.Multiline, "#pop"),
+            (r"\$\{", String.Interpol, "antiquote"),
             (r"[^'\$]+", String.Multiline),
             (r"\$[^\{']", String.Multiline),
             (r"'[^']", String.Multiline),
             (r"\$(?=')", String.Multiline),
         ],
-        'doublequote': [
+        "doublequote": [
             (r'\\(\\|"|\$|n)', String.Escape),
-            (r'"', String.Double, '#pop'),
-            (r'\$\{', String.Interpol, 'antiquote'),
+            (r'"', String.Double, "#pop"),
+            (r"\$\{", String.Interpol, "antiquote"),
             (r'[^"\\\$]+', String.Double),
             (r'\$[^\{"]', String.Double),
             (r'\$(?=")', String.Double),
-            (r'\\', String.Double),
+            (r"\\", String.Double),
         ],
-        'antiquote': [
-            (r"\}", String.Interpol, '#pop'),
+        "antiquote": [
+            (r"\}", String.Interpol, "#pop"),
             # TODO: we should probably escape also here ''${ \${
-            (r"\$\{", String.Interpol, '#push'),
-            include('root'),
+            (r"\$\{", String.Interpol, "#push"),
+            include("root"),
         ],
-        'block': [
-            (r"\}", Punctuation, '#pop'),
-            include('root'),
+        "block": [
+            (r"\}", Punctuation, "#pop"),
+            include("root"),
         ],
     }
 
     def analyse_text(text):
         rv = 0.0
         # TODO: let/in
-        if re.search(r'import.+?<[^>]+>', text):
+        if re.search(r"import.+?<[^>]+>", text):
             rv += 0.4
-        if re.search(r'mkDerivation\s+(\(|\{|rec)', text):
+        if re.search(r"mkDerivation\s+(\(|\{|rec)", text):
             rv += 0.4
-        if re.search(r'=\s+mkIf\s+', text):
+        if re.search(r"=\s+mkIf\s+", text):
             rv += 0.4
-        if re.search(r'\{[a-zA-Z,\s]+\}:', text):
+        if re.search(r"\{[a-zA-Z,\s]+\}:", text):
             rv += 0.1
         return rv
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/numbair.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/numbair.py
index 435863e..101a558 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/numbair.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/numbair.py
@@ -1,63 +1,72 @@
 """
-    pygments.lexers.numbair
-    ~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.numbair
+~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for other Numba Intermediate Representation.
+Lexer for other Numba Intermediate Representation.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, bygroups, words
-from pygments.token import Whitespace, Name, String,  Punctuation, Keyword, \
-    Operator, Number
+from pygments.token import (
+    Whitespace,
+    Name,
+    String,
+    Punctuation,
+    Keyword,
+    Operator,
+    Number,
+)
 
 __all__ = ["NumbaIRLexer"]
 
+
 class NumbaIRLexer(RegexLexer):
     """
     Lexer for Numba IR
     """
-    name = 'Numba_IR'
-    url = "https://numba.readthedocs.io/en/stable/developer/architecture.html#stage-2-generate-the-numba-ir"
-    aliases = ['numba_ir', 'numbair']
-    filenames = ['*.numba_ir']
-    mimetypes = ['text/x-numba_ir', 'text/x-numbair']
-    version_added = '2.19'
 
-    identifier = r'\$[a-zA-Z0-9._]+'
-    fun_or_var = r'([a-zA-Z_]+[a-zA-Z0-9]*)'
+    name = "Numba_IR"
+    url = "https://numba.readthedocs.io/en/stable/developer/architecture.html#stage-2-generate-the-numba-ir"
+    aliases = ["numba_ir", "numbair"]
+    filenames = ["*.numba_ir"]
+    mimetypes = ["text/x-numba_ir", "text/x-numbair"]
+    version_added = "2.19"
+
+    identifier = r"\$[a-zA-Z0-9._]+"
+    fun_or_var = r"([a-zA-Z_]+[a-zA-Z0-9]*)"
 
     tokens = {
-        'root' : [
-            (r'(label)(\ [0-9]+)(:)$',
-                bygroups(Keyword, Name.Label, Punctuation)),
-
-            (r'=', Operator),
-            include('whitespace'),
-            include('keyword'),
-
+        "root": [
+            (r"(label)(\ [0-9]+)(:)$", bygroups(Keyword, Name.Label, Punctuation)),
+            (r"=", Operator),
+            include("whitespace"),
+            include("keyword"),
             (identifier, Name.Variable),
-            (fun_or_var + r'(\()',
-                bygroups(Name.Function, Punctuation)),
-            (fun_or_var + r'(\=)',
-                bygroups(Name.Attribute, Punctuation)),
+            (fun_or_var + r"(\()", bygroups(Name.Function, Punctuation)),
+            (fun_or_var + r"(\=)", bygroups(Name.Attribute, Punctuation)),
             (fun_or_var, Name.Constant),
-            (r'[0-9]+', Number),
-
+            (r"[0-9]+", Number),
             # 
-            (r'<[^>\n]*>', String),
-
-            (r'[=<>{}\[\]()*.,!\':]|x\b', Punctuation)
+            (r"<[^>\n]*>", String),
+            (r"[=<>{}\[\]()*.,!\':]|x\b", Punctuation),
         ],
-
-        'keyword':[
-            (words((
-                'del', 'jump', 'call', 'branch',
-            ), suffix=' '), Keyword),
+        "keyword": [
+            (
+                words(
+                    (
+                        "del",
+                        "jump",
+                        "call",
+                        "branch",
+                    ),
+                    suffix=" ",
+                ),
+                Keyword,
+            ),
         ],
-
-        'whitespace': [
-            (r'(\n|\s)+', Whitespace),
+        "whitespace": [
+            (r"(\n|\s)+", Whitespace),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/oberon.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/oberon.py
index 61f3c2d..badaf97 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/oberon.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/oberon.py
@@ -1,106 +1,191 @@
 """
-    pygments.lexers.oberon
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.oberon
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Oberon family languages.
+Lexers for Oberon family languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['ComponentPascalLexer']
+__all__ = ["ComponentPascalLexer"]
 
 
 class ComponentPascalLexer(RegexLexer):
     """
     For Component Pascal source code.
     """
-    name = 'Component Pascal'
-    aliases = ['componentpascal', 'cp']
-    filenames = ['*.cp', '*.cps']
-    mimetypes = ['text/x-component-pascal']
-    url = 'https://blackboxframework.org'
-    version_added = '2.1'
+
+    name = "Component Pascal"
+    aliases = ["componentpascal", "cp"]
+    filenames = ["*.cp", "*.cps"]
+    mimetypes = ["text/x-component-pascal"]
+    url = "https://blackboxframework.org"
+    version_added = "2.1"
 
     flags = re.MULTILINE | re.DOTALL
 
     tokens = {
-        'root': [
-            include('whitespace'),
-            include('comments'),
-            include('punctuation'),
-            include('numliterals'),
-            include('strings'),
-            include('operators'),
-            include('builtins'),
-            include('identifiers'),
+        "root": [
+            include("whitespace"),
+            include("comments"),
+            include("punctuation"),
+            include("numliterals"),
+            include("strings"),
+            include("operators"),
+            include("builtins"),
+            include("identifiers"),
         ],
-        'whitespace': [
-            (r'\n+', Text),  # blank lines
-            (r'\s+', Text),  # whitespace
+        "whitespace": [
+            (r"\n+", Text),  # blank lines
+            (r"\s+", Text),  # whitespace
         ],
-        'comments': [
-            (r'\(\*([^$].*?)\*\)', Comment.Multiline),
+        "comments": [
+            (r"\(\*([^$].*?)\*\)", Comment.Multiline),
             # TODO: nested comments (* (* ... *) ... (* ... *) *) not supported!
         ],
-        'punctuation': [
-            (r'[()\[\]{},.:;|]', Punctuation),
+        "punctuation": [
+            (r"[()\[\]{},.:;|]", Punctuation),
         ],
-        'numliterals': [
-            (r'[0-9A-F]+X\b', Number.Hex),                 # char code
-            (r'[0-9A-F]+[HL]\b', Number.Hex),              # hexadecimal number
-            (r'[0-9]+\.[0-9]+E[+-][0-9]+', Number.Float),  # real number
-            (r'[0-9]+\.[0-9]+', Number.Float),             # real number
-            (r'[0-9]+', Number.Integer),                   # decimal whole number
+        "numliterals": [
+            (r"[0-9A-F]+X\b", Number.Hex),  # char code
+            (r"[0-9A-F]+[HL]\b", Number.Hex),  # hexadecimal number
+            (r"[0-9]+\.[0-9]+E[+-][0-9]+", Number.Float),  # real number
+            (r"[0-9]+\.[0-9]+", Number.Float),  # real number
+            (r"[0-9]+", Number.Integer),  # decimal whole number
         ],
-        'strings': [
+        "strings": [
             (r"'[^\n']*'", String),  # single quoted string
             (r'"[^\n"]*"', String),  # double quoted string
         ],
-        'operators': [
+        "operators": [
             # Arithmetic Operators
-            (r'[+-]', Operator),
-            (r'[*/]', Operator),
+            (r"[+-]", Operator),
+            (r"[*/]", Operator),
             # Relational Operators
-            (r'[=#<>]', Operator),
+            (r"[=#<>]", Operator),
             # Dereferencing Operator
-            (r'\^', Operator),
+            (r"\^", Operator),
             # Logical AND Operator
-            (r'&', Operator),
+            (r"&", Operator),
             # Logical NOT Operator
-            (r'~', Operator),
+            (r"~", Operator),
             # Assignment Symbol
-            (r':=', Operator),
+            (r":=", Operator),
             # Range Constructor
-            (r'\.\.', Operator),
-            (r'\$', Operator),
+            (r"\.\.", Operator),
+            (r"\$", Operator),
         ],
-        'identifiers': [
-            (r'([a-zA-Z_$][\w$]*)', Name),
+        "identifiers": [
+            (r"([a-zA-Z_$][\w$]*)", Name),
+        ],
+        "builtins": [
+            (
+                words(
+                    (
+                        "ANYPTR",
+                        "ANYREC",
+                        "BOOLEAN",
+                        "BYTE",
+                        "CHAR",
+                        "INTEGER",
+                        "LONGINT",
+                        "REAL",
+                        "SET",
+                        "SHORTCHAR",
+                        "SHORTINT",
+                        "SHORTREAL",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Type,
+            ),
+            (
+                words(
+                    (
+                        "ABS",
+                        "ABSTRACT",
+                        "ARRAY",
+                        "ASH",
+                        "ASSERT",
+                        "BEGIN",
+                        "BITS",
+                        "BY",
+                        "CAP",
+                        "CASE",
+                        "CHR",
+                        "CLOSE",
+                        "CONST",
+                        "DEC",
+                        "DIV",
+                        "DO",
+                        "ELSE",
+                        "ELSIF",
+                        "EMPTY",
+                        "END",
+                        "ENTIER",
+                        "EXCL",
+                        "EXIT",
+                        "EXTENSIBLE",
+                        "FOR",
+                        "HALT",
+                        "IF",
+                        "IMPORT",
+                        "IN",
+                        "INC",
+                        "INCL",
+                        "IS",
+                        "LEN",
+                        "LIMITED",
+                        "LONG",
+                        "LOOP",
+                        "MAX",
+                        "MIN",
+                        "MOD",
+                        "MODULE",
+                        "NEW",
+                        "ODD",
+                        "OF",
+                        "OR",
+                        "ORD",
+                        "OUT",
+                        "POINTER",
+                        "PROCEDURE",
+                        "RECORD",
+                        "REPEAT",
+                        "RETURN",
+                        "SHORT",
+                        "SHORTCHAR",
+                        "SHORTINT",
+                        "SIZE",
+                        "THEN",
+                        "TYPE",
+                        "TO",
+                        "UNTIL",
+                        "VAR",
+                        "WHILE",
+                        "WITH",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+            ),
+            (r"(TRUE|FALSE|NIL|INF)\b", Keyword.Constant),
         ],
-        'builtins': [
-            (words((
-                'ANYPTR', 'ANYREC', 'BOOLEAN', 'BYTE', 'CHAR', 'INTEGER', 'LONGINT',
-                'REAL', 'SET', 'SHORTCHAR', 'SHORTINT', 'SHORTREAL'
-                ), suffix=r'\b'), Keyword.Type),
-            (words((
-                'ABS', 'ABSTRACT', 'ARRAY', 'ASH', 'ASSERT', 'BEGIN', 'BITS', 'BY',
-                'CAP', 'CASE', 'CHR', 'CLOSE', 'CONST', 'DEC', 'DIV', 'DO', 'ELSE',
-                'ELSIF', 'EMPTY', 'END', 'ENTIER', 'EXCL', 'EXIT', 'EXTENSIBLE', 'FOR',
-                'HALT', 'IF', 'IMPORT', 'IN', 'INC', 'INCL', 'IS', 'LEN', 'LIMITED',
-                'LONG', 'LOOP', 'MAX', 'MIN', 'MOD', 'MODULE', 'NEW', 'ODD', 'OF',
-                'OR', 'ORD', 'OUT', 'POINTER', 'PROCEDURE', 'RECORD', 'REPEAT', 'RETURN',
-                'SHORT', 'SHORTCHAR', 'SHORTINT', 'SIZE', 'THEN', 'TYPE', 'TO', 'UNTIL',
-                'VAR', 'WHILE', 'WITH'
-                ), suffix=r'\b'), Keyword.Reserved),
-            (r'(TRUE|FALSE|NIL|INF)\b', Keyword.Constant),
-        ]
     }
 
     def analyse_text(text):
@@ -108,13 +193,13 @@ class ComponentPascalLexer(RegexLexer):
         a few common Pascal keywords here. Those are unfortunately quite
         common across various business languages as well."""
         result = 0
-        if 'BEGIN' in text:
+        if "BEGIN" in text:
             result += 0.01
-        if 'END' in text:
+        if "END" in text:
             result += 0.01
-        if 'PROCEDURE' in text:
+        if "PROCEDURE" in text:
             result += 0.01
-        if 'END' in text:
+        if "END" in text:
             result += 0.01
 
         return result
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/objective.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/objective.py
index 899c2c4..db9faad 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/objective.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/objective.py
@@ -1,23 +1,41 @@
 """
-    pygments.lexers.objective
-    ~~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.objective
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Objective-C family languages.
+Lexers for Objective-C family languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import RegexLexer, include, bygroups, using, this, words, \
-    inherit, default
-from pygments.token import Text, Keyword, Name, String, Operator, \
-    Number, Punctuation, Literal, Comment, Whitespace
+from pygments.lexer import (
+    RegexLexer,
+    include,
+    bygroups,
+    using,
+    this,
+    words,
+    inherit,
+    default,
+)
+from pygments.token import (
+    Text,
+    Keyword,
+    Name,
+    String,
+    Operator,
+    Number,
+    Punctuation,
+    Literal,
+    Comment,
+    Whitespace,
+)
 
 from pygments.lexers.c_cpp import CLexer, CppLexer
 
-__all__ = ['ObjectiveCLexer', 'ObjectiveCppLexer', 'LogosLexer', 'SwiftLexer']
+__all__ = ["ObjectiveCLexer", "ObjectiveCppLexer", "LogosLexer", "SwiftLexer"]
 
 
 def objective(baselexer):
@@ -31,13 +49,13 @@ def objective(baselexer):
     # JavaDoc/Doxygen keywords that only apply to Objective-C, mind.
     #
     # The upshot of this is that we CANNOT match @class or @interface
-    _oc_keywords = re.compile(r'@(?:end|implementation|protocol)')
+    _oc_keywords = re.compile(r"@(?:end|implementation|protocol)")
 
     # Matches [ ? identifier  ( identifier ? ] |  identifier? : )
     # (note the identifier is *optional* when there is a ':'!)
-    _oc_message = re.compile(r'\[\s*[a-zA-Z_]\w*\s+'
-                             r'(?:[a-zA-Z_]\w*\s*\]|'
-                             r'(?:[a-zA-Z_]\w*)?:)')
+    _oc_message = re.compile(
+        r"\[\s*[a-zA-Z_]\w*\s+" r"(?:[a-zA-Z_]\w*\s*\]|" r"(?:[a-zA-Z_]\w*)?:)"
+    )
 
     class GeneratedObjectiveCVariant(baselexer):
         """
@@ -45,122 +63,200 @@ def objective(baselexer):
         """
 
         tokens = {
-            'statements': [
-                (r'@"', String, 'string'),
-                (r'@(YES|NO)', Number),
+            "statements": [
+                (r'@"', String, "string"),
+                (r"@(YES|NO)", Number),
                 (r"@'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
-                (r'@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
-                (r'@(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
-                (r'@0x[0-9a-fA-F]+[Ll]?', Number.Hex),
-                (r'@0[0-7]+[Ll]?', Number.Oct),
-                (r'@\d+[Ll]?', Number.Integer),
-                (r'@\(', Literal, 'literal_number'),
-                (r'@\[', Literal, 'literal_array'),
-                (r'@\{', Literal, 'literal_dictionary'),
-                (words((
-                    '@selector', '@private', '@protected', '@public', '@encode',
-                    '@synchronized', '@try', '@throw', '@catch', '@finally',
-                    '@end', '@property', '@synthesize', '__bridge', '__bridge_transfer',
-                    '__autoreleasing', '__block', '__weak', '__strong', 'weak', 'strong',
-                    'copy', 'retain', 'assign', 'unsafe_unretained', 'atomic', 'nonatomic',
-                    'readonly', 'readwrite', 'setter', 'getter', 'typeof', 'in',
-                    'out', 'inout', 'release', 'class', '@dynamic', '@optional',
-                    '@required', '@autoreleasepool', '@import'), suffix=r'\b'),
-                 Keyword),
-                (words(('id', 'instancetype', 'Class', 'IMP', 'SEL', 'BOOL',
-                        'IBOutlet', 'IBAction', 'unichar'), suffix=r'\b'),
-                 Keyword.Type),
-                (r'@(true|false|YES|NO)\n', Name.Builtin),
-                (r'(YES|NO|nil|self|super)\b', Name.Builtin),
+                (r"@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?", Number.Float),
+                (r"@(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float),
+                (r"@0x[0-9a-fA-F]+[Ll]?", Number.Hex),
+                (r"@0[0-7]+[Ll]?", Number.Oct),
+                (r"@\d+[Ll]?", Number.Integer),
+                (r"@\(", Literal, "literal_number"),
+                (r"@\[", Literal, "literal_array"),
+                (r"@\{", Literal, "literal_dictionary"),
+                (
+                    words(
+                        (
+                            "@selector",
+                            "@private",
+                            "@protected",
+                            "@public",
+                            "@encode",
+                            "@synchronized",
+                            "@try",
+                            "@throw",
+                            "@catch",
+                            "@finally",
+                            "@end",
+                            "@property",
+                            "@synthesize",
+                            "__bridge",
+                            "__bridge_transfer",
+                            "__autoreleasing",
+                            "__block",
+                            "__weak",
+                            "__strong",
+                            "weak",
+                            "strong",
+                            "copy",
+                            "retain",
+                            "assign",
+                            "unsafe_unretained",
+                            "atomic",
+                            "nonatomic",
+                            "readonly",
+                            "readwrite",
+                            "setter",
+                            "getter",
+                            "typeof",
+                            "in",
+                            "out",
+                            "inout",
+                            "release",
+                            "class",
+                            "@dynamic",
+                            "@optional",
+                            "@required",
+                            "@autoreleasepool",
+                            "@import",
+                        ),
+                        suffix=r"\b",
+                    ),
+                    Keyword,
+                ),
+                (
+                    words(
+                        (
+                            "id",
+                            "instancetype",
+                            "Class",
+                            "IMP",
+                            "SEL",
+                            "BOOL",
+                            "IBOutlet",
+                            "IBAction",
+                            "unichar",
+                        ),
+                        suffix=r"\b",
+                    ),
+                    Keyword.Type,
+                ),
+                (r"@(true|false|YES|NO)\n", Name.Builtin),
+                (r"(YES|NO|nil|self|super)\b", Name.Builtin),
                 # Carbon types
-                (r'(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\b', Keyword.Type),
+                (r"(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\b", Keyword.Type),
                 # Carbon built-ins
-                (r'(TRUE|FALSE)\b', Name.Builtin),
-                (r'(@interface|@implementation)(\s+)', bygroups(Keyword, Text),
-                 ('#pop', 'oc_classname')),
-                (r'(@class|@protocol)(\s+)', bygroups(Keyword, Text),
-                 ('#pop', 'oc_forward_classname')),
+                (r"(TRUE|FALSE)\b", Name.Builtin),
+                (
+                    r"(@interface|@implementation)(\s+)",
+                    bygroups(Keyword, Text),
+                    ("#pop", "oc_classname"),
+                ),
+                (
+                    r"(@class|@protocol)(\s+)",
+                    bygroups(Keyword, Text),
+                    ("#pop", "oc_forward_classname"),
+                ),
                 # @ can also prefix other expressions like @{...} or @(...)
-                (r'@', Punctuation),
+                (r"@", Punctuation),
                 inherit,
             ],
-            'oc_classname': [
+            "oc_classname": [
                 # interface definition that inherits
-                (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)',
-                 bygroups(Name.Class, Text, Name.Class, Text, Punctuation),
-                 ('#pop', 'oc_ivars')),
-                (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?',
-                 bygroups(Name.Class, Text, Name.Class), '#pop'),
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)",
+                    bygroups(Name.Class, Text, Name.Class, Text, Punctuation),
+                    ("#pop", "oc_ivars"),
+                ),
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?",
+                    bygroups(Name.Class, Text, Name.Class),
+                    "#pop",
+                ),
                 # interface definition for a category
-                (r'([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)',
-                 bygroups(Name.Class, Text, Name.Label, Text, Punctuation),
-                 ('#pop', 'oc_ivars')),
-                (r'([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))',
-                 bygroups(Name.Class, Text, Name.Label), '#pop'),
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)",
+                    bygroups(Name.Class, Text, Name.Label, Text, Punctuation),
+                    ("#pop", "oc_ivars"),
+                ),
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))",
+                    bygroups(Name.Class, Text, Name.Label),
+                    "#pop",
+                ),
                 # simple interface / implementation
-                (r'([a-zA-Z$_][\w$]*)(\s*)(\{)',
-                 bygroups(Name.Class, Text, Punctuation), ('#pop', 'oc_ivars')),
-                (r'([a-zA-Z$_][\w$]*)', Name.Class, '#pop')
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*)(\{)",
+                    bygroups(Name.Class, Text, Punctuation),
+                    ("#pop", "oc_ivars"),
+                ),
+                (r"([a-zA-Z$_][\w$]*)", Name.Class, "#pop"),
             ],
-            'oc_forward_classname': [
-                (r'([a-zA-Z$_][\w$]*)(\s*,\s*)',
-                 bygroups(Name.Class, Text), 'oc_forward_classname'),
-                (r'([a-zA-Z$_][\w$]*)(\s*;?)',
-                 bygroups(Name.Class, Text), '#pop')
+            "oc_forward_classname": [
+                (
+                    r"([a-zA-Z$_][\w$]*)(\s*,\s*)",
+                    bygroups(Name.Class, Text),
+                    "oc_forward_classname",
+                ),
+                (r"([a-zA-Z$_][\w$]*)(\s*;?)", bygroups(Name.Class, Text), "#pop"),
             ],
-            'oc_ivars': [
-                include('whitespace'),
-                include('statements'),
-                (';', Punctuation),
-                (r'\{', Punctuation, '#push'),
-                (r'\}', Punctuation, '#pop'),
+            "oc_ivars": [
+                include("whitespace"),
+                include("statements"),
+                (";", Punctuation),
+                (r"\{", Punctuation, "#push"),
+                (r"\}", Punctuation, "#pop"),
             ],
-            'root': [
+            "root": [
                 # methods
-                (r'^([-+])(\s*)'                         # method marker
-                 r'(\(.*?\))?(\s*)'                      # return type
-                 r'([a-zA-Z$_][\w$]*:?)',        # begin of method name
-                 bygroups(Punctuation, Text, using(this),
-                          Text, Name.Function),
-                 'method'),
+                (
+                    r"^([-+])(\s*)"  # method marker
+                    r"(\(.*?\))?(\s*)"  # return type
+                    r"([a-zA-Z$_][\w$]*:?)",  # begin of method name
+                    bygroups(Punctuation, Text, using(this), Text, Name.Function),
+                    "method",
+                ),
                 inherit,
             ],
-            'method': [
-                include('whitespace'),
+            "method": [
+                include("whitespace"),
                 # TODO unsure if ellipses are allowed elsewhere, see
                 # discussion in Issue 789
-                (r',', Punctuation),
-                (r'\.\.\.', Punctuation),
-                (r'(\(.*?\))(\s*)([a-zA-Z$_][\w$]*)',
-                 bygroups(using(this), Text, Name.Variable)),
-                (r'[a-zA-Z$_][\w$]*:', Name.Function),
-                (';', Punctuation, '#pop'),
-                (r'\{', Punctuation, 'function'),
-                default('#pop'),
+                (r",", Punctuation),
+                (r"\.\.\.", Punctuation),
+                (
+                    r"(\(.*?\))(\s*)([a-zA-Z$_][\w$]*)",
+                    bygroups(using(this), Text, Name.Variable),
+                ),
+                (r"[a-zA-Z$_][\w$]*:", Name.Function),
+                (";", Punctuation, "#pop"),
+                (r"\{", Punctuation, "function"),
+                default("#pop"),
             ],
-            'literal_number': [
-                (r'\(', Punctuation, 'literal_number_inner'),
-                (r'\)', Literal, '#pop'),
-                include('statement'),
+            "literal_number": [
+                (r"\(", Punctuation, "literal_number_inner"),
+                (r"\)", Literal, "#pop"),
+                include("statement"),
             ],
-            'literal_number_inner': [
-                (r'\(', Punctuation, '#push'),
-                (r'\)', Punctuation, '#pop'),
-                include('statement'),
+            "literal_number_inner": [
+                (r"\(", Punctuation, "#push"),
+                (r"\)", Punctuation, "#pop"),
+                include("statement"),
             ],
-            'literal_array': [
-                (r'\[', Punctuation, 'literal_array_inner'),
-                (r'\]', Literal, '#pop'),
-                include('statement'),
+            "literal_array": [
+                (r"\[", Punctuation, "literal_array_inner"),
+                (r"\]", Literal, "#pop"),
+                include("statement"),
             ],
-            'literal_array_inner': [
-                (r'\[', Punctuation, '#push'),
-                (r'\]', Punctuation, '#pop'),
-                include('statement'),
+            "literal_array_inner": [
+                (r"\[", Punctuation, "#push"),
+                (r"\]", Punctuation, "#pop"),
+                include("statement"),
             ],
-            'literal_dictionary': [
-                (r'\}', Literal, '#pop'),
-                include('statement'),
+            "literal_dictionary": [
+                (r"\}", Literal, "#pop"),
+                include("statement"),
             ],
         }
 
@@ -169,21 +265,28 @@ def objective(baselexer):
                 return 1.0
             elif '@"' in text:  # strings
                 return 0.8
-            elif re.search('@[0-9]+', text):
+            elif re.search("@[0-9]+", text):
                 return 0.7
             elif _oc_message.search(text):
                 return 0.8
             return 0
 
-        def get_tokens_unprocessed(self, text, stack=('root',)):
-            from pygments.lexers._cocoa_builtins import COCOA_INTERFACES, \
-                COCOA_PROTOCOLS, COCOA_PRIMITIVES
+        def get_tokens_unprocessed(self, text, stack=("root",)):
+            from pygments.lexers._cocoa_builtins import (
+                COCOA_INTERFACES,
+                COCOA_PROTOCOLS,
+                COCOA_PRIMITIVES,
+            )
 
-            for index, token, value in \
-                    baselexer.get_tokens_unprocessed(self, text, stack):
+            for index, token, value in baselexer.get_tokens_unprocessed(
+                self, text, stack
+            ):
                 if token is Name or token is Name.Class:
-                    if value in COCOA_INTERFACES or value in COCOA_PROTOCOLS \
-                       or value in COCOA_PRIMITIVES:
+                    if (
+                        value in COCOA_INTERFACES
+                        or value in COCOA_PROTOCOLS
+                        or value in COCOA_PRIMITIVES
+                    ):
                         token = Name.Builtin.Pseudo
 
                 yield index, token, value
@@ -196,13 +299,13 @@ class ObjectiveCLexer(objective(CLexer)):
     For Objective-C source code with preprocessor directives.
     """
 
-    name = 'Objective-C'
-    url = 'https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html'
-    aliases = ['objective-c', 'objectivec', 'obj-c', 'objc']
-    filenames = ['*.m', '*.h']
-    mimetypes = ['text/x-objective-c']
-    version_added = ''
-    priority = 0.05    # Lower than C
+    name = "Objective-C"
+    url = "https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html"
+    aliases = ["objective-c", "objectivec", "obj-c", "objc"]
+    filenames = ["*.m", "*.h"]
+    mimetypes = ["text/x-objective-c"]
+    version_added = ""
+    priority = 0.05  # Lower than C
 
 
 class ObjectiveCppLexer(objective(CppLexer)):
@@ -210,12 +313,12 @@ class ObjectiveCppLexer(objective(CppLexer)):
     For Objective-C++ source code with preprocessor directives.
     """
 
-    name = 'Objective-C++'
-    aliases = ['objective-c++', 'objectivec++', 'obj-c++', 'objc++']
-    filenames = ['*.mm', '*.hh']
-    mimetypes = ['text/x-objective-c++']
-    version_added = ''
-    priority = 0.05    # Lower than C++
+    name = "Objective-C++"
+    aliases = ["objective-c++", "objectivec++", "obj-c++", "objc++"]
+    filenames = ["*.mm", "*.hh"]
+    mimetypes = ["text/x-objective-c++"]
+    version_added = ""
+    priority = 0.05  # Lower than C++
 
 
 class LogosLexer(ObjectiveCppLexer):
@@ -223,57 +326,69 @@ class LogosLexer(ObjectiveCppLexer):
     For Logos + Objective-C source code with preprocessor directives.
     """
 
-    name = 'Logos'
-    aliases = ['logos']
-    filenames = ['*.x', '*.xi', '*.xm', '*.xmi']
-    mimetypes = ['text/x-logos']
-    version_added = '1.6'
+    name = "Logos"
+    aliases = ["logos"]
+    filenames = ["*.x", "*.xi", "*.xm", "*.xmi"]
+    mimetypes = ["text/x-logos"]
+    version_added = "1.6"
     priority = 0.25
 
     tokens = {
-        'statements': [
-            (r'(%orig|%log)\b', Keyword),
-            (r'(%c)\b(\()(\s*)([a-zA-Z$_][\w$]*)(\s*)(\))',
-             bygroups(Keyword, Punctuation, Text, Name.Class, Text, Punctuation)),
-            (r'(%init)\b(\()',
-             bygroups(Keyword, Punctuation), 'logos_init_directive'),
-            (r'(%init)(?=\s*;)', bygroups(Keyword)),
-            (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)',
-             bygroups(Keyword, Text, Name.Class), '#pop'),
-            (r'(%subclass)(\s+)', bygroups(Keyword, Text),
-             ('#pop', 'logos_classname')),
+        "statements": [
+            (r"(%orig|%log)\b", Keyword),
+            (
+                r"(%c)\b(\()(\s*)([a-zA-Z$_][\w$]*)(\s*)(\))",
+                bygroups(Keyword, Punctuation, Text, Name.Class, Text, Punctuation),
+            ),
+            (r"(%init)\b(\()", bygroups(Keyword, Punctuation), "logos_init_directive"),
+            (r"(%init)(?=\s*;)", bygroups(Keyword)),
+            (
+                r"(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)",
+                bygroups(Keyword, Text, Name.Class),
+                "#pop",
+            ),
+            (r"(%subclass)(\s+)", bygroups(Keyword, Text), ("#pop", "logos_classname")),
             inherit,
         ],
-        'logos_init_directive': [
-            (r'\s+', Text),
-            (',', Punctuation, ('logos_init_directive', '#pop')),
-            (r'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)',
-             bygroups(Name.Class, Text, Punctuation, Text, Text)),
-            (r'([a-zA-Z$_][\w$]*)', Name.Class),
-            (r'\)', Punctuation, '#pop'),
+        "logos_init_directive": [
+            (r"\s+", Text),
+            (",", Punctuation, ("logos_init_directive", "#pop")),
+            (
+                r"([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)",
+                bygroups(Name.Class, Text, Punctuation, Text, Text),
+            ),
+            (r"([a-zA-Z$_][\w$]*)", Name.Class),
+            (r"\)", Punctuation, "#pop"),
         ],
-        'logos_classname': [
-            (r'([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?',
-             bygroups(Name.Class, Text, Name.Class), '#pop'),
-            (r'([a-zA-Z$_][\w$]*)', Name.Class, '#pop')
+        "logos_classname": [
+            (
+                r"([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?",
+                bygroups(Name.Class, Text, Name.Class),
+                "#pop",
+            ),
+            (r"([a-zA-Z$_][\w$]*)", Name.Class, "#pop"),
         ],
-        'root': [
-            (r'(%subclass)(\s+)', bygroups(Keyword, Text),
-             'logos_classname'),
-            (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)',
-             bygroups(Keyword, Text, Name.Class)),
-            (r'(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)',
-             bygroups(Keyword, Text, Name.Variable, Text, String, Text)),
-            (r'(%ctor)(\s*)(\{)', bygroups(Keyword, Text, Punctuation),
-             'function'),
-            (r'(%new)(\s*)(\()(.*?)(\))',
-             bygroups(Keyword, Text, Keyword, String, Keyword)),
-            (r'(\s*)(%end)(\s*)', bygroups(Text, Keyword, Text)),
+        "root": [
+            (r"(%subclass)(\s+)", bygroups(Keyword, Text), "logos_classname"),
+            (
+                r"(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)",
+                bygroups(Keyword, Text, Name.Class),
+            ),
+            (
+                r"(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)",
+                bygroups(Keyword, Text, Name.Variable, Text, String, Text),
+            ),
+            (r"(%ctor)(\s*)(\{)", bygroups(Keyword, Text, Punctuation), "function"),
+            (
+                r"(%new)(\s*)(\()(.*?)(\))",
+                bygroups(Keyword, Text, Keyword, String, Keyword),
+            ),
+            (r"(\s*)(%end)(\s*)", bygroups(Text, Keyword, Text)),
             inherit,
         ],
     }
 
-    _logos_keywords = re.compile(r'%(?:hook|ctor|init|c\()')
+    _logos_keywords = re.compile(r"%(?:hook|ctor|init|c\()")
 
     def analyse_text(text):
         if LogosLexer._logos_keywords.search(text):
@@ -285,229 +400,542 @@ class SwiftLexer(RegexLexer):
     """
     For Swift source.
     """
-    name = 'Swift'
-    url = 'https://www.swift.org/'
-    filenames = ['*.swift']
-    aliases = ['swift']
-    mimetypes = ['text/x-swift']
-    version_added = '2.0'
+
+    name = "Swift"
+    url = "https://www.swift.org/"
+    filenames = ["*.swift"]
+    aliases = ["swift"]
+    mimetypes = ["text/x-swift"]
+    version_added = "2.0"
 
     tokens = {
-        'root': [
+        "root": [
             # Whitespace and Comments
-            (r'\n', Text),
-            (r'\s+', Whitespace),
-            (r'//', Comment.Single, 'comment-single'),
-            (r'/\*', Comment.Multiline, 'comment-multi'),
-            (r'#(if|elseif|else|endif|available)\b', Comment.Preproc, 'preproc'),
-
+            (r"\n", Text),
+            (r"\s+", Whitespace),
+            (r"//", Comment.Single, "comment-single"),
+            (r"/\*", Comment.Multiline, "comment-multi"),
+            (r"#(if|elseif|else|endif|available)\b", Comment.Preproc, "preproc"),
             # Keywords
-            include('keywords'),
-
+            include("keywords"),
             # Global Types
-            (words((
-                'Array', 'AutoreleasingUnsafeMutablePointer', 'BidirectionalReverseView',
-                'Bit', 'Bool', 'CFunctionPointer', 'COpaquePointer', 'CVaListPointer',
-                'Character', 'ClosedInterval', 'CollectionOfOne', 'ContiguousArray',
-                'Dictionary', 'DictionaryGenerator', 'DictionaryIndex', 'Double',
-                'EmptyCollection', 'EmptyGenerator', 'EnumerateGenerator',
-                'EnumerateSequence', 'FilterCollectionView',
-                'FilterCollectionViewIndex', 'FilterGenerator', 'FilterSequenceView',
-                'Float', 'Float80', 'FloatingPointClassification', 'GeneratorOf',
-                'GeneratorOfOne', 'GeneratorSequence', 'HalfOpenInterval', 'HeapBuffer',
-                'HeapBufferStorage', 'ImplicitlyUnwrappedOptional', 'IndexingGenerator',
-                'Int', 'Int16', 'Int32', 'Int64', 'Int8', 'LazyBidirectionalCollection',
-                'LazyForwardCollection', 'LazyRandomAccessCollection',
-                'LazySequence', 'MapCollectionView', 'MapSequenceGenerator',
-                'MapSequenceView', 'MirrorDisposition', 'ObjectIdentifier', 'OnHeap',
-                'Optional', 'PermutationGenerator', 'QuickLookObject',
-                'RandomAccessReverseView', 'Range', 'RangeGenerator', 'RawByte', 'Repeat',
-                'ReverseBidirectionalIndex', 'ReverseRandomAccessIndex', 'SequenceOf',
-                'SinkOf', 'Slice', 'StaticString', 'StrideThrough', 'StrideThroughGenerator',
-                'StrideTo', 'StrideToGenerator', 'String', 'UInt', 'UInt16', 'UInt32',
-                'UInt64', 'UInt8', 'UTF16', 'UTF32', 'UTF8', 'UnicodeDecodingResult',
-                'UnicodeScalar', 'Unmanaged', 'UnsafeBufferPointer',
-                'UnsafeBufferPointerGenerator', 'UnsafeMutableBufferPointer',
-                'UnsafeMutablePointer', 'UnsafePointer', 'Zip2', 'ZipGenerator2',
-                # Protocols
-                'AbsoluteValuable', 'AnyObject', 'ArrayLiteralConvertible',
-                'BidirectionalIndexType', 'BitwiseOperationsType',
-                'BooleanLiteralConvertible', 'BooleanType', 'CVarArgType',
-                'CollectionType', 'Comparable', 'DebugPrintable',
-                'DictionaryLiteralConvertible', 'Equatable',
-                'ExtendedGraphemeClusterLiteralConvertible',
-                'ExtensibleCollectionType', 'FloatLiteralConvertible',
-                'FloatingPointType', 'ForwardIndexType', 'GeneratorType', 'Hashable',
-                'IntegerArithmeticType', 'IntegerLiteralConvertible', 'IntegerType',
-                'IntervalType', 'MirrorType', 'MutableCollectionType', 'MutableSliceable',
-                'NilLiteralConvertible', 'OutputStreamType', 'Printable',
-                'RandomAccessIndexType', 'RangeReplaceableCollectionType',
-                'RawOptionSetType', 'RawRepresentable', 'Reflectable', 'SequenceType',
-                'SignedIntegerType', 'SignedNumberType', 'SinkType', 'Sliceable',
-                'Streamable', 'Strideable', 'StringInterpolationConvertible',
-                'StringLiteralConvertible', 'UnicodeCodecType',
-                'UnicodeScalarLiteralConvertible', 'UnsignedIntegerType',
-                '_ArrayBufferType', '_BidirectionalIndexType', '_CocoaStringType',
-                '_CollectionType', '_Comparable', '_ExtensibleCollectionType',
-                '_ForwardIndexType', '_Incrementable', '_IntegerArithmeticType',
-                '_IntegerType', '_ObjectiveCBridgeable', '_RandomAccessIndexType',
-                '_RawOptionSetType', '_SequenceType', '_Sequence_Type',
-                '_SignedIntegerType', '_SignedNumberType', '_Sliceable', '_Strideable',
-                '_SwiftNSArrayRequiredOverridesType', '_SwiftNSArrayType',
-                '_SwiftNSCopyingType', '_SwiftNSDictionaryRequiredOverridesType',
-                '_SwiftNSDictionaryType', '_SwiftNSEnumeratorType',
-                '_SwiftNSFastEnumerationType', '_SwiftNSStringRequiredOverridesType',
-                '_SwiftNSStringType', '_UnsignedIntegerType',
-                # Variables
-                'C_ARGC', 'C_ARGV', 'Process',
-                # Typealiases
-                'Any', 'AnyClass', 'BooleanLiteralType', 'CBool', 'CChar', 'CChar16',
-                'CChar32', 'CDouble', 'CFloat', 'CInt', 'CLong', 'CLongLong', 'CShort',
-                'CSignedChar', 'CUnsignedInt', 'CUnsignedLong', 'CUnsignedShort',
-                'CWideChar', 'ExtendedGraphemeClusterType', 'Float32', 'Float64',
-                'FloatLiteralType', 'IntMax', 'IntegerLiteralType', 'StringLiteralType',
-                'UIntMax', 'UWord', 'UnicodeScalarType', 'Void', 'Word',
-                # Foundation/Cocoa
-                'NSErrorPointer', 'NSObjectProtocol', 'Selector'), suffix=r'\b'),
-             Name.Builtin),
+            (
+                words(
+                    (
+                        "Array",
+                        "AutoreleasingUnsafeMutablePointer",
+                        "BidirectionalReverseView",
+                        "Bit",
+                        "Bool",
+                        "CFunctionPointer",
+                        "COpaquePointer",
+                        "CVaListPointer",
+                        "Character",
+                        "ClosedInterval",
+                        "CollectionOfOne",
+                        "ContiguousArray",
+                        "Dictionary",
+                        "DictionaryGenerator",
+                        "DictionaryIndex",
+                        "Double",
+                        "EmptyCollection",
+                        "EmptyGenerator",
+                        "EnumerateGenerator",
+                        "EnumerateSequence",
+                        "FilterCollectionView",
+                        "FilterCollectionViewIndex",
+                        "FilterGenerator",
+                        "FilterSequenceView",
+                        "Float",
+                        "Float80",
+                        "FloatingPointClassification",
+                        "GeneratorOf",
+                        "GeneratorOfOne",
+                        "GeneratorSequence",
+                        "HalfOpenInterval",
+                        "HeapBuffer",
+                        "HeapBufferStorage",
+                        "ImplicitlyUnwrappedOptional",
+                        "IndexingGenerator",
+                        "Int",
+                        "Int16",
+                        "Int32",
+                        "Int64",
+                        "Int8",
+                        "LazyBidirectionalCollection",
+                        "LazyForwardCollection",
+                        "LazyRandomAccessCollection",
+                        "LazySequence",
+                        "MapCollectionView",
+                        "MapSequenceGenerator",
+                        "MapSequenceView",
+                        "MirrorDisposition",
+                        "ObjectIdentifier",
+                        "OnHeap",
+                        "Optional",
+                        "PermutationGenerator",
+                        "QuickLookObject",
+                        "RandomAccessReverseView",
+                        "Range",
+                        "RangeGenerator",
+                        "RawByte",
+                        "Repeat",
+                        "ReverseBidirectionalIndex",
+                        "ReverseRandomAccessIndex",
+                        "SequenceOf",
+                        "SinkOf",
+                        "Slice",
+                        "StaticString",
+                        "StrideThrough",
+                        "StrideThroughGenerator",
+                        "StrideTo",
+                        "StrideToGenerator",
+                        "String",
+                        "UInt",
+                        "UInt16",
+                        "UInt32",
+                        "UInt64",
+                        "UInt8",
+                        "UTF16",
+                        "UTF32",
+                        "UTF8",
+                        "UnicodeDecodingResult",
+                        "UnicodeScalar",
+                        "Unmanaged",
+                        "UnsafeBufferPointer",
+                        "UnsafeBufferPointerGenerator",
+                        "UnsafeMutableBufferPointer",
+                        "UnsafeMutablePointer",
+                        "UnsafePointer",
+                        "Zip2",
+                        "ZipGenerator2",
+                        # Protocols
+                        "AbsoluteValuable",
+                        "AnyObject",
+                        "ArrayLiteralConvertible",
+                        "BidirectionalIndexType",
+                        "BitwiseOperationsType",
+                        "BooleanLiteralConvertible",
+                        "BooleanType",
+                        "CVarArgType",
+                        "CollectionType",
+                        "Comparable",
+                        "DebugPrintable",
+                        "DictionaryLiteralConvertible",
+                        "Equatable",
+                        "ExtendedGraphemeClusterLiteralConvertible",
+                        "ExtensibleCollectionType",
+                        "FloatLiteralConvertible",
+                        "FloatingPointType",
+                        "ForwardIndexType",
+                        "GeneratorType",
+                        "Hashable",
+                        "IntegerArithmeticType",
+                        "IntegerLiteralConvertible",
+                        "IntegerType",
+                        "IntervalType",
+                        "MirrorType",
+                        "MutableCollectionType",
+                        "MutableSliceable",
+                        "NilLiteralConvertible",
+                        "OutputStreamType",
+                        "Printable",
+                        "RandomAccessIndexType",
+                        "RangeReplaceableCollectionType",
+                        "RawOptionSetType",
+                        "RawRepresentable",
+                        "Reflectable",
+                        "SequenceType",
+                        "SignedIntegerType",
+                        "SignedNumberType",
+                        "SinkType",
+                        "Sliceable",
+                        "Streamable",
+                        "Strideable",
+                        "StringInterpolationConvertible",
+                        "StringLiteralConvertible",
+                        "UnicodeCodecType",
+                        "UnicodeScalarLiteralConvertible",
+                        "UnsignedIntegerType",
+                        "_ArrayBufferType",
+                        "_BidirectionalIndexType",
+                        "_CocoaStringType",
+                        "_CollectionType",
+                        "_Comparable",
+                        "_ExtensibleCollectionType",
+                        "_ForwardIndexType",
+                        "_Incrementable",
+                        "_IntegerArithmeticType",
+                        "_IntegerType",
+                        "_ObjectiveCBridgeable",
+                        "_RandomAccessIndexType",
+                        "_RawOptionSetType",
+                        "_SequenceType",
+                        "_Sequence_Type",
+                        "_SignedIntegerType",
+                        "_SignedNumberType",
+                        "_Sliceable",
+                        "_Strideable",
+                        "_SwiftNSArrayRequiredOverridesType",
+                        "_SwiftNSArrayType",
+                        "_SwiftNSCopyingType",
+                        "_SwiftNSDictionaryRequiredOverridesType",
+                        "_SwiftNSDictionaryType",
+                        "_SwiftNSEnumeratorType",
+                        "_SwiftNSFastEnumerationType",
+                        "_SwiftNSStringRequiredOverridesType",
+                        "_SwiftNSStringType",
+                        "_UnsignedIntegerType",
+                        # Variables
+                        "C_ARGC",
+                        "C_ARGV",
+                        "Process",
+                        # Typealiases
+                        "Any",
+                        "AnyClass",
+                        "BooleanLiteralType",
+                        "CBool",
+                        "CChar",
+                        "CChar16",
+                        "CChar32",
+                        "CDouble",
+                        "CFloat",
+                        "CInt",
+                        "CLong",
+                        "CLongLong",
+                        "CShort",
+                        "CSignedChar",
+                        "CUnsignedInt",
+                        "CUnsignedLong",
+                        "CUnsignedShort",
+                        "CWideChar",
+                        "ExtendedGraphemeClusterType",
+                        "Float32",
+                        "Float64",
+                        "FloatLiteralType",
+                        "IntMax",
+                        "IntegerLiteralType",
+                        "StringLiteralType",
+                        "UIntMax",
+                        "UWord",
+                        "UnicodeScalarType",
+                        "Void",
+                        "Word",
+                        # Foundation/Cocoa
+                        "NSErrorPointer",
+                        "NSObjectProtocol",
+                        "Selector",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
             # Functions
-            (words((
-                'abs', 'advance', 'alignof', 'alignofValue', 'assert', 'assertionFailure',
-                'contains', 'count', 'countElements', 'debugPrint', 'debugPrintln',
-                'distance', 'dropFirst', 'dropLast', 'dump', 'enumerate', 'equal',
-                'extend', 'fatalError', 'filter', 'find', 'first', 'getVaList', 'indices',
-                'insert', 'isEmpty', 'join', 'last', 'lazy', 'lexicographicalCompare',
-                'map', 'max', 'maxElement', 'min', 'minElement', 'numericCast', 'overlaps',
-                'partition', 'precondition', 'preconditionFailure', 'prefix', 'print',
-                'println', 'reduce', 'reflect', 'removeAll', 'removeAtIndex', 'removeLast',
-                'removeRange', 'reverse', 'sizeof', 'sizeofValue', 'sort', 'sorted',
-                'splice', 'split', 'startsWith', 'stride', 'strideof', 'strideofValue',
-                'suffix', 'swap', 'toDebugString', 'toString', 'transcode',
-                'underestimateCount', 'unsafeAddressOf', 'unsafeBitCast', 'unsafeDowncast',
-                'withExtendedLifetime', 'withUnsafeMutablePointer',
-                'withUnsafeMutablePointers', 'withUnsafePointer', 'withUnsafePointers',
-                'withVaList'), suffix=r'\b'),
-             Name.Builtin.Pseudo),
-
+            (
+                words(
+                    (
+                        "abs",
+                        "advance",
+                        "alignof",
+                        "alignofValue",
+                        "assert",
+                        "assertionFailure",
+                        "contains",
+                        "count",
+                        "countElements",
+                        "debugPrint",
+                        "debugPrintln",
+                        "distance",
+                        "dropFirst",
+                        "dropLast",
+                        "dump",
+                        "enumerate",
+                        "equal",
+                        "extend",
+                        "fatalError",
+                        "filter",
+                        "find",
+                        "first",
+                        "getVaList",
+                        "indices",
+                        "insert",
+                        "isEmpty",
+                        "join",
+                        "last",
+                        "lazy",
+                        "lexicographicalCompare",
+                        "map",
+                        "max",
+                        "maxElement",
+                        "min",
+                        "minElement",
+                        "numericCast",
+                        "overlaps",
+                        "partition",
+                        "precondition",
+                        "preconditionFailure",
+                        "prefix",
+                        "print",
+                        "println",
+                        "reduce",
+                        "reflect",
+                        "removeAll",
+                        "removeAtIndex",
+                        "removeLast",
+                        "removeRange",
+                        "reverse",
+                        "sizeof",
+                        "sizeofValue",
+                        "sort",
+                        "sorted",
+                        "splice",
+                        "split",
+                        "startsWith",
+                        "stride",
+                        "strideof",
+                        "strideofValue",
+                        "suffix",
+                        "swap",
+                        "toDebugString",
+                        "toString",
+                        "transcode",
+                        "underestimateCount",
+                        "unsafeAddressOf",
+                        "unsafeBitCast",
+                        "unsafeDowncast",
+                        "withExtendedLifetime",
+                        "withUnsafeMutablePointer",
+                        "withUnsafeMutablePointers",
+                        "withUnsafePointer",
+                        "withUnsafePointers",
+                        "withVaList",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin.Pseudo,
+            ),
             # Implicit Block Variables
-            (r'\$\d+', Name.Variable),
-
+            (r"\$\d+", Name.Variable),
             # Binary Literal
-            (r'0b[01_]+', Number.Bin),
+            (r"0b[01_]+", Number.Bin),
             # Octal Literal
-            (r'0o[0-7_]+', Number.Oct),
+            (r"0o[0-7_]+", Number.Oct),
             # Hexadecimal Literal
-            (r'0x[0-9a-fA-F_]+', Number.Hex),
+            (r"0x[0-9a-fA-F_]+", Number.Hex),
             # Decimal Literal
-            (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|'
-             r'\.[0-9_]*|[eE][+\-]?[0-9_]+)', Number.Float),
-            (r'[0-9][0-9_]*', Number.Integer),
+            (
+                r"[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|"
+                r"\.[0-9_]*|[eE][+\-]?[0-9_]+)",
+                Number.Float,
+            ),
+            (r"[0-9][0-9_]*", Number.Integer),
             # String Literal
-            (r'"""', String, 'string-multi'),
-            (r'"', String, 'string'),
-
+            (r'"""', String, "string-multi"),
+            (r'"', String, "string"),
             # Operators and Punctuation
-            (r'[(){}\[\].,:;=@#`?]|->|[<&?](?=\w)|(?<=\w)[>!?]', Punctuation),
-            (r'[/=\-+!*%<>&|^?~]+', Operator),
-
+            (r"[(){}\[\].,:;=@#`?]|->|[<&?](?=\w)|(?<=\w)[>!?]", Punctuation),
+            (r"[/=\-+!*%<>&|^?~]+", Operator),
             # Identifier
-            (r'[a-zA-Z_]\w*', Name)
+            (r"[a-zA-Z_]\w*", Name),
         ],
-        'keywords': [
-            (words((
-                'as', 'async', 'await', 'break', 'case', 'catch', 'continue', 'default', 'defer',
-                'do', 'else', 'fallthrough', 'for', 'guard', 'if', 'in', 'is',
-                'repeat', 'return', '#selector', 'switch', 'throw', 'try',
-                'where', 'while'), suffix=r'\b'),
-             Keyword),
-            (r'@availability\([^)]+\)', Keyword.Reserved),
-            (words((
-                'associativity', 'convenience', 'dynamic', 'didSet', 'final',
-                'get', 'indirect', 'infix', 'inout', 'lazy', 'left', 'mutating',
-                'none', 'nonmutating', 'optional', 'override', 'postfix',
-                'precedence', 'prefix', 'Protocol', 'required', 'rethrows',
-                'right', 'set', 'throws', 'Type', 'unowned', 'weak', 'willSet',
-                '@availability', '@autoclosure', '@noreturn',
-                '@NSApplicationMain', '@NSCopying', '@NSManaged', '@objc',
-                '@UIApplicationMain', '@IBAction', '@IBDesignable',
-                '@IBInspectable', '@IBOutlet'), suffix=r'\b'),
-             Keyword.Reserved),
-            (r'(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__'
-             r'|__FILE__|__FUNCTION__|__LINE__|_'
-             r'|#(?:file|line|column|function))\b', Keyword.Constant),
-            (r'import\b', Keyword.Declaration, 'module'),
-            (r'(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)',
-             bygroups(Keyword.Declaration, Whitespace, Name.Class)),
-            (r'(func)(\s+)([a-zA-Z_]\w*)',
-             bygroups(Keyword.Declaration, Whitespace, Name.Function)),
-            (r'(var|let)(\s+)([a-zA-Z_]\w*)', bygroups(Keyword.Declaration,
-             Whitespace, Name.Variable)),
-            (words((
-                'actor', 'associatedtype', 'class', 'deinit', 'enum', 'extension', 'func', 'import',
-                'init', 'internal', 'let', 'operator', 'private', 'protocol', 'public',
-                'static', 'struct', 'subscript', 'typealias', 'var'), suffix=r'\b'),
-             Keyword.Declaration)
+        "keywords": [
+            (
+                words(
+                    (
+                        "as",
+                        "async",
+                        "await",
+                        "break",
+                        "case",
+                        "catch",
+                        "continue",
+                        "default",
+                        "defer",
+                        "do",
+                        "else",
+                        "fallthrough",
+                        "for",
+                        "guard",
+                        "if",
+                        "in",
+                        "is",
+                        "repeat",
+                        "return",
+                        "#selector",
+                        "switch",
+                        "throw",
+                        "try",
+                        "where",
+                        "while",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (r"@availability\([^)]+\)", Keyword.Reserved),
+            (
+                words(
+                    (
+                        "associativity",
+                        "convenience",
+                        "dynamic",
+                        "didSet",
+                        "final",
+                        "get",
+                        "indirect",
+                        "infix",
+                        "inout",
+                        "lazy",
+                        "left",
+                        "mutating",
+                        "none",
+                        "nonmutating",
+                        "optional",
+                        "override",
+                        "postfix",
+                        "precedence",
+                        "prefix",
+                        "Protocol",
+                        "required",
+                        "rethrows",
+                        "right",
+                        "set",
+                        "throws",
+                        "Type",
+                        "unowned",
+                        "weak",
+                        "willSet",
+                        "@availability",
+                        "@autoclosure",
+                        "@noreturn",
+                        "@NSApplicationMain",
+                        "@NSCopying",
+                        "@NSManaged",
+                        "@objc",
+                        "@UIApplicationMain",
+                        "@IBAction",
+                        "@IBDesignable",
+                        "@IBInspectable",
+                        "@IBOutlet",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+            ),
+            (
+                r"(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__"
+                r"|__FILE__|__FUNCTION__|__LINE__|_"
+                r"|#(?:file|line|column|function))\b",
+                Keyword.Constant,
+            ),
+            (r"import\b", Keyword.Declaration, "module"),
+            (
+                r"(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)",
+                bygroups(Keyword.Declaration, Whitespace, Name.Class),
+            ),
+            (
+                r"(func)(\s+)([a-zA-Z_]\w*)",
+                bygroups(Keyword.Declaration, Whitespace, Name.Function),
+            ),
+            (
+                r"(var|let)(\s+)([a-zA-Z_]\w*)",
+                bygroups(Keyword.Declaration, Whitespace, Name.Variable),
+            ),
+            (
+                words(
+                    (
+                        "actor",
+                        "associatedtype",
+                        "class",
+                        "deinit",
+                        "enum",
+                        "extension",
+                        "func",
+                        "import",
+                        "init",
+                        "internal",
+                        "let",
+                        "operator",
+                        "private",
+                        "protocol",
+                        "public",
+                        "static",
+                        "struct",
+                        "subscript",
+                        "typealias",
+                        "var",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Declaration,
+            ),
         ],
-        'comment': [
-            (r':param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):',
-             Comment.Special)
+        "comment": [
+            (r":param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):", Comment.Special)
         ],
-
         # Nested
-        'comment-single': [
-            (r'\n', Whitespace, '#pop'),
-            include('comment'),
-            (r'[^\n]+', Comment.Single)
+        "comment-single": [
+            (r"\n", Whitespace, "#pop"),
+            include("comment"),
+            (r"[^\n]+", Comment.Single),
         ],
-        'comment-multi': [
-            include('comment'),
-            (r'[^*/]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]+', Comment.Multiline)
+        "comment-multi": [
+            include("comment"),
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]+", Comment.Multiline),
         ],
-        'module': [
-            (r'\n', Whitespace, '#pop'),
-            (r'[a-zA-Z_]\w*', Name.Class),
-            include('root')
+        "module": [
+            (r"\n", Whitespace, "#pop"),
+            (r"[a-zA-Z_]\w*", Name.Class),
+            include("root"),
         ],
-        'preproc': [
-            (r'\n', Whitespace, '#pop'),
-            include('keywords'),
-            (r'[A-Za-z]\w*', Comment.Preproc),
-            include('root')
+        "preproc": [
+            (r"\n", Whitespace, "#pop"),
+            include("keywords"),
+            (r"[A-Za-z]\w*", Comment.Preproc),
+            include("root"),
         ],
-        'string': [
-            (r'"', String, '#pop'),
+        "string": [
+            (r'"', String, "#pop"),
             include("string-common"),
         ],
-        'string-multi': [
-            (r'"""', String, '#pop'),
+        "string-multi": [
+            (r'"""', String, "#pop"),
             include("string-common"),
         ],
-        'string-common': [
-            (r'\\\(', String.Interpol, 'string-intp'),
-            (r"""\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}"""
-             r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}""", String.Escape),
+        "string-common": [
+            (r"\\\(", String.Interpol, "string-intp"),
+            (
+                r"""\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}"""
+                r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}""",
+                String.Escape,
+            ),
             (r'[^\\"]+', String),
-            (r'\\', String)
+            (r"\\", String),
+        ],
+        "string-intp": [
+            (r"\(", String.Interpol, "#push"),
+            (r"\)", String.Interpol, "#pop"),
+            include("root"),
         ],
-        'string-intp': [
-            (r'\(', String.Interpol, '#push'),
-            (r'\)', String.Interpol, '#pop'),
-            include('root')
-        ]
     }
 
     def get_tokens_unprocessed(self, text):
-        from pygments.lexers._cocoa_builtins import COCOA_INTERFACES, \
-            COCOA_PROTOCOLS, COCOA_PRIMITIVES
+        from pygments.lexers._cocoa_builtins import (
+            COCOA_INTERFACES,
+            COCOA_PROTOCOLS,
+            COCOA_PRIMITIVES,
+        )
 
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text):
+        for index, token, value in RegexLexer.get_tokens_unprocessed(self, text):
             if token is Name or token is Name.Class:
-                if value in COCOA_INTERFACES or value in COCOA_PROTOCOLS \
-                   or value in COCOA_PRIMITIVES:
+                if (
+                    value in COCOA_INTERFACES
+                    or value in COCOA_PROTOCOLS
+                    or value in COCOA_PRIMITIVES
+                ):
                     token = Name.Builtin.Pseudo
 
             yield index, token, value
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ooc.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ooc.py
index 8a99080..346fa96 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ooc.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ooc.py
@@ -1,84 +1,130 @@
 """
-    pygments.lexers.ooc
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.ooc
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Ooc language.
+Lexers for the Ooc language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['OocLexer']
+__all__ = ["OocLexer"]
 
 
 class OocLexer(RegexLexer):
     """
     For Ooc source code
     """
-    name = 'Ooc'
-    url = 'https://ooc-lang.github.io/'
-    aliases = ['ooc']
-    filenames = ['*.ooc']
-    mimetypes = ['text/x-ooc']
-    version_added = '1.2'
+
+    name = "Ooc"
+    url = "https://ooc-lang.github.io/"
+    aliases = ["ooc"]
+    filenames = ["*.ooc"]
+    mimetypes = ["text/x-ooc"]
+    version_added = "1.2"
 
     tokens = {
-        'root': [
-            (words((
-                'class', 'interface', 'implement', 'abstract', 'extends', 'from',
-                'this', 'super', 'new', 'const', 'final', 'static', 'import',
-                'use', 'extern', 'inline', 'proto', 'break', 'continue',
-                'fallthrough', 'operator', 'if', 'else', 'for', 'while', 'do',
-                'switch', 'case', 'as', 'in', 'version', 'return', 'true',
-                'false', 'null'), prefix=r'\b', suffix=r'\b'),
-             Keyword),
-            (r'include\b', Keyword, 'include'),
-            (r'(cover)([ \t]+)(from)([ \t]+)(\w+[*@]?)',
-             bygroups(Keyword, Text, Keyword, Text, Name.Class)),
-            (r'(func)((?:[ \t]|\\\n)+)(~[a-z_]\w*)',
-             bygroups(Keyword, Text, Name.Function)),
-            (r'\bfunc\b', Keyword),
+        "root": [
+            (
+                words(
+                    (
+                        "class",
+                        "interface",
+                        "implement",
+                        "abstract",
+                        "extends",
+                        "from",
+                        "this",
+                        "super",
+                        "new",
+                        "const",
+                        "final",
+                        "static",
+                        "import",
+                        "use",
+                        "extern",
+                        "inline",
+                        "proto",
+                        "break",
+                        "continue",
+                        "fallthrough",
+                        "operator",
+                        "if",
+                        "else",
+                        "for",
+                        "while",
+                        "do",
+                        "switch",
+                        "case",
+                        "as",
+                        "in",
+                        "version",
+                        "return",
+                        "true",
+                        "false",
+                        "null",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (r"include\b", Keyword, "include"),
+            (
+                r"(cover)([ \t]+)(from)([ \t]+)(\w+[*@]?)",
+                bygroups(Keyword, Text, Keyword, Text, Name.Class),
+            ),
+            (
+                r"(func)((?:[ \t]|\\\n)+)(~[a-z_]\w*)",
+                bygroups(Keyword, Text, Name.Function),
+            ),
+            (r"\bfunc\b", Keyword),
             # Note: %= not listed on https://ooc-lang.github.io/docs/lang/operators/
-            (r'//.*', Comment),
-            (r'(?s)/\*.*?\*/', Comment.Multiline),
-            (r'(==?|\+=?|-[=>]?|\*=?|/=?|:=|!=?|%=?|\?|>{1,3}=?|<{1,3}=?|\.\.|'
-             r'&&?|\|\|?|\^=?)', Operator),
-            (r'(\.)([ \t]*)([a-z]\w*)', bygroups(Operator, Text,
-                                                 Name.Function)),
-            (r'[A-Z][A-Z0-9_]+', Name.Constant),
-            (r'[A-Z]\w*([@*]|\[[ \t]*\])?', Name.Class),
-
-            (r'([a-z]\w*(?:~[a-z]\w*)?)((?:[ \t]|\\\n)*)(?=\()',
-             bygroups(Name.Function, Text)),
-            (r'[a-z]\w*', Name.Variable),
-
+            (r"//.*", Comment),
+            (r"(?s)/\*.*?\*/", Comment.Multiline),
+            (
+                r"(==?|\+=?|-[=>]?|\*=?|/=?|:=|!=?|%=?|\?|>{1,3}=?|<{1,3}=?|\.\.|"
+                r"&&?|\|\|?|\^=?)",
+                Operator,
+            ),
+            (r"(\.)([ \t]*)([a-z]\w*)", bygroups(Operator, Text, Name.Function)),
+            (r"[A-Z][A-Z0-9_]+", Name.Constant),
+            (r"[A-Z]\w*([@*]|\[[ \t]*\])?", Name.Class),
+            (
+                r"([a-z]\w*(?:~[a-z]\w*)?)((?:[ \t]|\\\n)*)(?=\()",
+                bygroups(Name.Function, Text),
+            ),
+            (r"[a-z]\w*", Name.Variable),
             # : introduces types
-            (r'[:(){}\[\];,]', Punctuation),
-
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'0c[0-9]+', Number.Oct),
-            (r'0b[01]+', Number.Bin),
-            (r'[0-9_]\.[0-9_]*(?!\.)', Number.Float),
-            (r'[0-9_]+', Number.Decimal),
-
-            (r'"(?:\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\"])*"',
-             String.Double),
-            (r"'(?:\\.|\\[0-9]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'",
-             String.Char),
-            (r'@', Punctuation),  # pointer dereference
-            (r'\.', Punctuation),  # imports or chain operator
-
-            (r'\\[ \t\n]', Text),
-            (r'[ \t]+', Text),
+            (r"[:(){}\[\];,]", Punctuation),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"0c[0-9]+", Number.Oct),
+            (r"0b[01]+", Number.Bin),
+            (r"[0-9_]\.[0-9_]*(?!\.)", Number.Float),
+            (r"[0-9_]+", Number.Decimal),
+            (r'"(?:\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\"])*"', String.Double),
+            (r"'(?:\\.|\\[0-9]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
+            (r"@", Punctuation),  # pointer dereference
+            (r"\.", Punctuation),  # imports or chain operator
+            (r"\\[ \t\n]", Text),
+            (r"[ \t]+", Text),
         ],
-        'include': [
-            (r'[\w/]+', Name),
-            (r',', Punctuation),
-            (r'[ \t]', Text),
-            (r'[;\n]', Text, '#pop'),
+        "include": [
+            (r"[\w/]+", Name),
+            (r",", Punctuation),
+            (r"[ \t]", Text),
+            (r"[;\n]", Text, "#pop"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/openscad.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/openscad.py
index b06de22..b6d1b2b 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/openscad.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/openscad.py
@@ -1,34 +1,45 @@
 """
-    pygments.lexers.openscad
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.openscad
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the OpenSCAD languages.
+Lexers for the OpenSCAD languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, words, include
-from pygments.token import Text, Comment, Punctuation, Operator, Keyword, Name, Number, Whitespace, Literal, String
+from pygments.token import (
+    Text,
+    Comment,
+    Punctuation,
+    Operator,
+    Keyword,
+    Name,
+    Number,
+    Whitespace,
+    Literal,
+    String,
+)
 
-__all__ = ['OpenScadLexer']
+__all__ = ["OpenScadLexer"]
 
 
 class OpenScadLexer(RegexLexer):
-    """For openSCAD code.
-    """
+    """For openSCAD code."""
+
     name = "OpenSCAD"
     url = "https://openscad.org/"
     aliases = ["openscad"]
     filenames = ["*.scad"]
     mimetypes = ["application/x-openscad"]
-    version_added = '2.16'
+    version_added = "2.16"
 
     tokens = {
         "root": [
             (r"[^\S\n]+", Whitespace),
-            (r'//', Comment.Single, 'comment-single'),
-            (r'/\*', Comment.Multiline, 'comment-multi'),
+            (r"//", Comment.Single, "comment-single"),
+            (r"/\*", Comment.Multiline, "comment-multi"),
             (r"[{}\[\]\(\),;:]", Punctuation),
             (r"[*!#%\-+=?/]", Operator),
             (r"<=|<|==|!=|>=|>|&&|\|\|", Operator),
@@ -39,31 +50,106 @@ class OpenScadLexer(RegexLexer):
                 bygroups(Keyword.Namespace, Text),
                 "includes",
             ),
-            (r"(module)(\s*)([^\s\(]+)",
-             bygroups(Keyword.Namespace, Whitespace, Name.Namespace)),
-            (r"(function)(\s*)([^\s\(]+)",
-             bygroups(Keyword.Declaration, Whitespace, Name.Function)),
-            (words(("true", "false"), prefix=r"\b", suffix=r"\b"), Literal),
-            (words((
-                "function", "module", "include", "use", "for",
-                "intersection_for", "if", "else", "return"
-                ), prefix=r"\b", suffix=r"\b"), Keyword
+            (
+                r"(module)(\s*)([^\s\(]+)",
+                bygroups(Keyword.Namespace, Whitespace, Name.Namespace),
             ),
-            (words((
-                "circle", "square", "polygon", "text", "sphere", "cube",
-                "cylinder", "polyhedron", "translate", "rotate", "scale",
-                "resize", "mirror", "multmatrix", "color", "offset", "hull",
-                "minkowski", "union", "difference", "intersection", "abs",
-                "sign", "sin", "cos", "tan", "acos", "asin", "atan", "atan2",
-                "floor", "round", "ceil", "ln", "log", "pow", "sqrt", "exp",
-                "rands", "min", "max", "concat", "lookup", "str", "chr",
-                "search", "version", "version_num", "norm", "cross",
-                "parent_module", "echo", "import", "import_dxf",
-                "dxf_linear_extrude", "linear_extrude", "rotate_extrude",
-                "surface", "projection", "render", "dxf_cross",
-                "dxf_dim", "let", "assign", "len"
-                ), prefix=r"\b", suffix=r"\b"),
-                Name.Builtin
+            (
+                r"(function)(\s*)([^\s\(]+)",
+                bygroups(Keyword.Declaration, Whitespace, Name.Function),
+            ),
+            (words(("true", "false"), prefix=r"\b", suffix=r"\b"), Literal),
+            (
+                words(
+                    (
+                        "function",
+                        "module",
+                        "include",
+                        "use",
+                        "for",
+                        "intersection_for",
+                        "if",
+                        "else",
+                        "return",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                words(
+                    (
+                        "circle",
+                        "square",
+                        "polygon",
+                        "text",
+                        "sphere",
+                        "cube",
+                        "cylinder",
+                        "polyhedron",
+                        "translate",
+                        "rotate",
+                        "scale",
+                        "resize",
+                        "mirror",
+                        "multmatrix",
+                        "color",
+                        "offset",
+                        "hull",
+                        "minkowski",
+                        "union",
+                        "difference",
+                        "intersection",
+                        "abs",
+                        "sign",
+                        "sin",
+                        "cos",
+                        "tan",
+                        "acos",
+                        "asin",
+                        "atan",
+                        "atan2",
+                        "floor",
+                        "round",
+                        "ceil",
+                        "ln",
+                        "log",
+                        "pow",
+                        "sqrt",
+                        "exp",
+                        "rands",
+                        "min",
+                        "max",
+                        "concat",
+                        "lookup",
+                        "str",
+                        "chr",
+                        "search",
+                        "version",
+                        "version_num",
+                        "norm",
+                        "cross",
+                        "parent_module",
+                        "echo",
+                        "import",
+                        "import_dxf",
+                        "dxf_linear_extrude",
+                        "linear_extrude",
+                        "rotate_extrude",
+                        "surface",
+                        "projection",
+                        "render",
+                        "dxf_cross",
+                        "dxf_dim",
+                        "let",
+                        "assign",
+                        "len",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
             ),
             (r"\bchildren\b", Name.Builtin.Pseudo),
             (r'""".*?"""', String.Double),
@@ -77,20 +163,19 @@ class OpenScadLexer(RegexLexer):
                 bygroups(Punctuation, Comment.PreprocFile, Punctuation),
             ),
         ],
-        'comment': [
-            (r':param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):',
-             Comment.Special)
+        "comment": [
+            (r":param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):", Comment.Special)
         ],
-        'comment-single': [
-            (r'\n', Text, '#pop'),
-            include('comment'),
-            (r'[^\n]+', Comment.Single)
+        "comment-single": [
+            (r"\n", Text, "#pop"),
+            include("comment"),
+            (r"[^\n]+", Comment.Single),
         ],
-        'comment-multi': [
-            include('comment'),
-            (r'[^*/]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]', Comment.Multiline)
+        "comment-multi": [
+            include("comment"),
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/other.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/other.py
index 2b7dfb4..c10894f 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/other.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/other.py
@@ -1,17 +1,16 @@
 """
-    pygments.lexers.other
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.other
+~~~~~~~~~~~~~~~~~~~~~
 
-    Just export lexer classes previously contained in this module.
+Just export lexer classes previously contained in this module.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 # ruff: noqa: F401
 from pygments.lexers.sql import SqlLexer, MySqlLexer, SqliteConsoleLexer
-from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, \
-    TcshLexer
+from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, TcshLexer
 from pygments.lexers.robotframework import RobotFrameworkLexer
 from pygments.lexers.testing import GherkinLexer
 from pygments.lexers.esoteric import BrainfuckLexer, BefungeLexer, RedcodeLexer
@@ -20,15 +19,27 @@ from pygments.lexers.snobol import SnobolLexer
 from pygments.lexers.rebol import RebolLexer
 from pygments.lexers.configs import KconfigLexer, Cfengine3Lexer
 from pygments.lexers.modeling import ModelicaLexer
-from pygments.lexers.scripting import AppleScriptLexer, MOOCodeLexer, \
-    HybrisLexer
-from pygments.lexers.graphics import PostScriptLexer, GnuplotLexer, \
-    AsymptoteLexer, PovrayLexer
-from pygments.lexers.business import ABAPLexer, OpenEdgeLexer, \
-    GoodDataCLLexer, MaqlLexer
+from pygments.lexers.scripting import AppleScriptLexer, MOOCodeLexer, HybrisLexer
+from pygments.lexers.graphics import (
+    PostScriptLexer,
+    GnuplotLexer,
+    AsymptoteLexer,
+    PovrayLexer,
+)
+from pygments.lexers.business import (
+    ABAPLexer,
+    OpenEdgeLexer,
+    GoodDataCLLexer,
+    MaqlLexer,
+)
 from pygments.lexers.automation import AutoItLexer, AutohotkeyLexer
-from pygments.lexers.dsls import ProtoBufLexer, BroLexer, PuppetLexer, \
-    MscgenLexer, VGLLexer
+from pygments.lexers.dsls import (
+    ProtoBufLexer,
+    BroLexer,
+    PuppetLexer,
+    MscgenLexer,
+    VGLLexer,
+)
 from pygments.lexers.basic import CbmBasicV2Lexer
 from pygments.lexers.pawn import SourcePawnLexer, PawnLexer
 from pygments.lexers.ecl import ECLLexer
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parasail.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parasail.py
index 150d6a9..bda690d 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parasail.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parasail.py
@@ -1,20 +1,29 @@
 """
-    pygments.lexers.parasail
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.parasail
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for ParaSail.
+Lexer for ParaSail.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Literal
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Literal,
+)
 
-__all__ = ['ParaSailLexer']
+__all__ = ["ParaSailLexer"]
 
 
 class ParaSailLexer(RegexLexer):
@@ -22,57 +31,59 @@ class ParaSailLexer(RegexLexer):
     For ParaSail source code.
     """
 
-    name = 'ParaSail'
-    url = 'http://www.parasail-lang.org'
-    aliases = ['parasail']
-    filenames = ['*.psi', '*.psl']
-    mimetypes = ['text/x-parasail']
-    version_added = '2.1'
+    name = "ParaSail"
+    url = "http://www.parasail-lang.org"
+    aliases = ["parasail"]
+    filenames = ["*.psi", "*.psl"]
+    mimetypes = ["text/x-parasail"]
+    version_added = "2.1"
 
     flags = re.MULTILINE
 
     tokens = {
-        'root': [
-            (r'[^\S\n]+', Text),
-            (r'//.*?\n', Comment.Single),
-            (r'\b(and|or|xor)=', Operator.Word),
-            (r'\b(and(\s+then)?|or(\s+else)?|xor|rem|mod|'
-             r'(is|not)\s+null)\b',
-             Operator.Word),
+        "root": [
+            (r"[^\S\n]+", Text),
+            (r"//.*?\n", Comment.Single),
+            (r"\b(and|or|xor)=", Operator.Word),
+            (
+                r"\b(and(\s+then)?|or(\s+else)?|xor|rem|mod|" r"(is|not)\s+null)\b",
+                Operator.Word,
+            ),
             # Keywords
-            (r'\b(abs|abstract|all|block|class|concurrent|const|continue|'
-             r'each|end|exit|extends|exports|forward|func|global|implements|'
-             r'import|in|interface|is|lambda|locked|new|not|null|of|op|'
-             r'optional|private|queued|ref|return|reverse|separate|some|'
-             r'type|until|var|with|'
-             # Control flow
-             r'if|then|else|elsif|case|for|while|loop)\b',
-             Keyword.Reserved),
-            (r'(abstract\s+)?(interface|class|op|func|type)',
-             Keyword.Declaration),
+            (
+                r"\b(abs|abstract|all|block|class|concurrent|const|continue|"
+                r"each|end|exit|extends|exports|forward|func|global|implements|"
+                r"import|in|interface|is|lambda|locked|new|not|null|of|op|"
+                r"optional|private|queued|ref|return|reverse|separate|some|"
+                r"type|until|var|with|"
+                # Control flow
+                r"if|then|else|elsif|case|for|while|loop)\b",
+                Keyword.Reserved,
+            ),
+            (r"(abstract\s+)?(interface|class|op|func|type)", Keyword.Declaration),
             # Literals
             (r'"[^"]*"', String),
             (r'\\[\'ntrf"0]', String.Escape),
-            (r'#[a-zA-Z]\w*', Literal),       # Enumeration
-            include('numbers'),
+            (r"#[a-zA-Z]\w*", Literal),  # Enumeration
+            include("numbers"),
             (r"'[^']'", String.Char),
-            (r'[a-zA-Z]\w*', Name),
+            (r"[a-zA-Z]\w*", Name),
             # Operators and Punctuation
-            (r'(<==|==>|<=>|\*\*=|<\|=|<<=|>>=|==|!=|=\?|<=|>=|'
-             r'\*\*|<<|>>|=>|:=|\+=|-=|\*=|\|=|\||/=|\+|-|\*|/|'
-             r'\.\.|<\.\.|\.\.<|<\.\.<)',
-             Operator),
-            (r'(<|>|\[|\]|\(|\)|\||:|;|,|.|\{|\}|->)',
-             Punctuation),
-            (r'\n+', Text),
+            (
+                r"(<==|==>|<=>|\*\*=|<\|=|<<=|>>=|==|!=|=\?|<=|>=|"
+                r"\*\*|<<|>>|=>|:=|\+=|-=|\*=|\|=|\||/=|\+|-|\*|/|"
+                r"\.\.|<\.\.|\.\.<|<\.\.<)",
+                Operator,
+            ),
+            (r"(<|>|\[|\]|\(|\)|\||:|;|,|.|\{|\}|->)", Punctuation),
+            (r"\n+", Text),
         ],
-        'numbers': [
-            (r'\d[0-9_]*#[0-9a-fA-F][0-9a-fA-F_]*#', Number.Hex),  # any base
-            (r'0[xX][0-9a-fA-F][0-9a-fA-F_]*', Number.Hex),        # C-like hex
-            (r'0[bB][01][01_]*', Number.Bin),                      # C-like bin
-            (r'\d[0-9_]*\.\d[0-9_]*[eE][+-]\d[0-9_]*',             # float exp
-             Number.Float),
-            (r'\d[0-9_]*\.\d[0-9_]*', Number.Float),               # float
-            (r'\d[0-9_]*', Number.Integer),                        # integer
+        "numbers": [
+            (r"\d[0-9_]*#[0-9a-fA-F][0-9a-fA-F_]*#", Number.Hex),  # any base
+            (r"0[xX][0-9a-fA-F][0-9a-fA-F_]*", Number.Hex),  # C-like hex
+            (r"0[bB][01][01_]*", Number.Bin),  # C-like bin
+            (r"\d[0-9_]*\.\d[0-9_]*[eE][+-]\d[0-9_]*", Number.Float),  # float exp
+            (r"\d[0-9_]*\.\d[0-9_]*", Number.Float),  # float
+            (r"\d[0-9_]*", Number.Integer),  # integer
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parsers.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parsers.py
index 7a4ed9d..01efaeb 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parsers.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/parsers.py
@@ -1,19 +1,28 @@
 """
-    pygments.lexers.parsers
-    ~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.parsers
+~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for parser generators.
+Lexers for parser generators.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import RegexLexer, DelegatingLexer, \
-    include, bygroups, using
-from pygments.token import Punctuation, Other, Text, Comment, Operator, \
-    Keyword, Name, String, Number, Whitespace
+from pygments.lexer import RegexLexer, DelegatingLexer, include, bygroups, using
+from pygments.token import (
+    Punctuation,
+    Other,
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Whitespace,
+)
 from pygments.lexers.jvm import JavaLexer
 from pygments.lexers.c_cpp import CLexer, CppLexer
 from pygments.lexers.objective import ObjectiveCLexer
@@ -23,13 +32,27 @@ from pygments.lexers.ruby import RubyLexer
 from pygments.lexers.python import PythonLexer
 from pygments.lexers.perl import PerlLexer
 
-__all__ = ['RagelLexer', 'RagelEmbeddedLexer', 'RagelCLexer', 'RagelDLexer',
-           'RagelCppLexer', 'RagelObjectiveCLexer', 'RagelRubyLexer',
-           'RagelJavaLexer', 'AntlrLexer', 'AntlrPythonLexer',
-           'AntlrPerlLexer', 'AntlrRubyLexer', 'AntlrCppLexer',
-           'AntlrCSharpLexer', 'AntlrObjectiveCLexer',
-           'AntlrJavaLexer', 'AntlrActionScriptLexer',
-           'TreetopLexer', 'EbnfLexer']
+__all__ = [
+    "RagelLexer",
+    "RagelEmbeddedLexer",
+    "RagelCLexer",
+    "RagelDLexer",
+    "RagelCppLexer",
+    "RagelObjectiveCLexer",
+    "RagelRubyLexer",
+    "RagelJavaLexer",
+    "AntlrLexer",
+    "AntlrPythonLexer",
+    "AntlrPerlLexer",
+    "AntlrRubyLexer",
+    "AntlrCppLexer",
+    "AntlrCSharpLexer",
+    "AntlrObjectiveCLexer",
+    "AntlrJavaLexer",
+    "AntlrActionScriptLexer",
+    "TreetopLexer",
+    "EbnfLexer",
+]
 
 
 class RagelLexer(RegexLexer):
@@ -40,88 +63,89 @@ class RagelLexer(RegexLexer):
 
     """
 
-    name = 'Ragel'
-    url = 'http://www.colm.net/open-source/ragel/'
-    aliases = ['ragel']
+    name = "Ragel"
+    url = "http://www.colm.net/open-source/ragel/"
+    aliases = ["ragel"]
     filenames = []
-    version_added = '1.1'
+    version_added = "1.1"
 
     tokens = {
-        'whitespace': [
-            (r'\s+', Whitespace)
+        "whitespace": [(r"\s+", Whitespace)],
+        "comments": [
+            (r"\#.*$", Comment),
         ],
-        'comments': [
-            (r'\#.*$', Comment),
+        "keywords": [
+            (r"(access|action|alphtype)\b", Keyword),
+            (r"(getkey|write|machine|include)\b", Keyword),
+            (r"(any|ascii|extend|alpha|digit|alnum|lower|upper)\b", Keyword),
+            (r"(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b", Keyword),
         ],
-        'keywords': [
-            (r'(access|action|alphtype)\b', Keyword),
-            (r'(getkey|write|machine|include)\b', Keyword),
-            (r'(any|ascii|extend|alpha|digit|alnum|lower|upper)\b', Keyword),
-            (r'(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b', Keyword)
+        "numbers": [
+            (r"0x[0-9A-Fa-f]+", Number.Hex),
+            (r"[+-]?[0-9]+", Number.Integer),
         ],
-        'numbers': [
-            (r'0x[0-9A-Fa-f]+', Number.Hex),
-            (r'[+-]?[0-9]+', Number.Integer),
-        ],
-        'literals': [
+        "literals": [
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
-            (r'\[(\\\\|\\[^\\]|[^\\\]])*\]', String),          # square bracket literals
-            (r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/', String.Regex),  # regular expressions
+            (r"\[(\\\\|\\[^\\]|[^\\\]])*\]", String),  # square bracket literals
+            (r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/", String.Regex),  # regular expressions
         ],
-        'identifiers': [
-            (r'[a-zA-Z_]\w*', Name.Variable),
+        "identifiers": [
+            (r"[a-zA-Z_]\w*", Name.Variable),
         ],
-        'operators': [
-            (r',', Operator),                           # Join
-            (r'\||&|--?', Operator),                    # Union, Intersection and Subtraction
-            (r'\.|<:|:>>?', Operator),                  # Concatention
-            (r':', Operator),                           # Label
-            (r'->', Operator),                          # Epsilon Transition
-            (r'(>|\$|%|<|@|<>)(/|eof\b)', Operator),    # EOF Actions
-            (r'(>|\$|%|<|@|<>)(!|err\b)', Operator),    # Global Error Actions
-            (r'(>|\$|%|<|@|<>)(\^|lerr\b)', Operator),  # Local Error Actions
-            (r'(>|\$|%|<|@|<>)(~|to\b)', Operator),     # To-State Actions
-            (r'(>|\$|%|<|@|<>)(\*|from\b)', Operator),  # From-State Actions
-            (r'>|@|\$|%', Operator),                    # Transition Actions and Priorities
-            (r'\*|\?|\+|\{[0-9]*,[0-9]*\}', Operator),  # Repetition
-            (r'!|\^', Operator),                        # Negation
-            (r'\(|\)', Operator),                       # Grouping
+        "operators": [
+            (r",", Operator),  # Join
+            (r"\||&|--?", Operator),  # Union, Intersection and Subtraction
+            (r"\.|<:|:>>?", Operator),  # Concatention
+            (r":", Operator),  # Label
+            (r"->", Operator),  # Epsilon Transition
+            (r"(>|\$|%|<|@|<>)(/|eof\b)", Operator),  # EOF Actions
+            (r"(>|\$|%|<|@|<>)(!|err\b)", Operator),  # Global Error Actions
+            (r"(>|\$|%|<|@|<>)(\^|lerr\b)", Operator),  # Local Error Actions
+            (r"(>|\$|%|<|@|<>)(~|to\b)", Operator),  # To-State Actions
+            (r"(>|\$|%|<|@|<>)(\*|from\b)", Operator),  # From-State Actions
+            (r">|@|\$|%", Operator),  # Transition Actions and Priorities
+            (r"\*|\?|\+|\{[0-9]*,[0-9]*\}", Operator),  # Repetition
+            (r"!|\^", Operator),  # Negation
+            (r"\(|\)", Operator),  # Grouping
         ],
-        'root': [
-            include('literals'),
-            include('whitespace'),
-            include('comments'),
-            include('keywords'),
-            include('numbers'),
-            include('identifiers'),
-            include('operators'),
-            (r'\{', Punctuation, 'host'),
-            (r'=', Operator),
-            (r';', Punctuation),
+        "root": [
+            include("literals"),
+            include("whitespace"),
+            include("comments"),
+            include("keywords"),
+            include("numbers"),
+            include("identifiers"),
+            include("operators"),
+            (r"\{", Punctuation, "host"),
+            (r"=", Operator),
+            (r";", Punctuation),
         ],
-        'host': [
-            (r'(' + r'|'.join((  # keep host code in largest possible chunks
-                r'[^{}\'"/#]+',  # exclude unsafe characters
-                r'[^\\]\\[{}]',  # allow escaped { or }
-
-                # strings and comments may safely contain unsafe characters
-                r'"(\\\\|\\[^\\]|[^"\\])*"',
-                r"'(\\\\|\\[^\\]|[^'\\])*'",
-                r'//.*$\n?',            # single line comment
-                r'/\*(.|\n)*?\*/',      # multi-line javadoc-style comment
-                r'\#.*$\n?',            # ruby comment
-
-                # regular expression: There's no reason for it to start
-                # with a * and this stops confusion with comments.
-                r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
-
-                # / is safe now that we've handled regex and javadoc comments
-                r'/',
-            )) + r')+', Other),
-
-            (r'\{', Punctuation, '#push'),
-            (r'\}', Punctuation, '#pop'),
+        "host": [
+            (
+                r"("
+                + r"|".join(
+                    (  # keep host code in largest possible chunks
+                        r'[^{}\'"/#]+',  # exclude unsafe characters
+                        r"[^\\]\\[{}]",  # allow escaped { or }
+                        # strings and comments may safely contain unsafe characters
+                        r'"(\\\\|\\[^\\]|[^"\\])*"',
+                        r"'(\\\\|\\[^\\]|[^'\\])*'",
+                        r"//.*$\n?",  # single line comment
+                        r"/\*(.|\n)*?\*/",  # multi-line javadoc-style comment
+                        r"\#.*$\n?",  # ruby comment
+                        # regular expression: There's no reason for it to start
+                        # with a * and this stops confusion with comments.
+                        r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/",
+                        # / is safe now that we've handled regex and javadoc comments
+                        r"/",
+                    )
+                )
+                + r")+",
+                Other,
+            ),
+            (r"\{", Punctuation, "#push"),
+            (r"\}", Punctuation, "#pop"),
         ],
     }
 
@@ -134,79 +158,88 @@ class RagelEmbeddedLexer(RegexLexer):
     highlighting then call the language-specific Ragel lexer.
     """
 
-    name = 'Embedded Ragel'
-    aliases = ['ragel-em']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Embedded Ragel"
+    aliases = ["ragel-em"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     tokens = {
-        'root': [
-            (r'(' + r'|'.join((   # keep host code in largest possible chunks
-                r'[^%\'"/#]+',    # exclude unsafe characters
-                r'%(?=[^%]|$)',   # a single % sign is okay, just not 2 of them
-
-                # strings and comments may safely contain unsafe characters
-                r'"(\\\\|\\[^\\]|[^"\\])*"',
-                r"'(\\\\|\\[^\\]|[^'\\])*'",
-                r'/\*(.|\n)*?\*/',      # multi-line javadoc-style comment
-                r'//.*$\n?',  # single line comment
-                r'\#.*$\n?',  # ruby/ragel comment
-                r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',  # regular expression
-
-                # / is safe now that we've handled regex and javadoc comments
-                r'/',
-            )) + r')+', Other),
-
+        "root": [
+            (
+                r"("
+                + r"|".join(
+                    (  # keep host code in largest possible chunks
+                        r'[^%\'"/#]+',  # exclude unsafe characters
+                        r"%(?=[^%]|$)",  # a single % sign is okay, just not 2 of them
+                        # strings and comments may safely contain unsafe characters
+                        r'"(\\\\|\\[^\\]|[^"\\])*"',
+                        r"'(\\\\|\\[^\\]|[^'\\])*'",
+                        r"/\*(.|\n)*?\*/",  # multi-line javadoc-style comment
+                        r"//.*$\n?",  # single line comment
+                        r"\#.*$\n?",  # ruby/ragel comment
+                        r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/",  # regular expression
+                        # / is safe now that we've handled regex and javadoc comments
+                        r"/",
+                    )
+                )
+                + r")+",
+                Other,
+            ),
             # Single Line FSM.
             # Please don't put a quoted newline in a single line FSM.
             # That's just mean. It will break this.
-            (r'(%%)(?![{%])(.*)($|;)(\n?)', bygroups(Punctuation,
-                                                     using(RagelLexer),
-                                                     Punctuation, Text)),
-
+            (
+                r"(%%)(?![{%])(.*)($|;)(\n?)",
+                bygroups(Punctuation, using(RagelLexer), Punctuation, Text),
+            ),
             # Multi Line FSM.
-            (r'(%%%%|%%)\{', Punctuation, 'multi-line-fsm'),
+            (r"(%%%%|%%)\{", Punctuation, "multi-line-fsm"),
+        ],
+        "multi-line-fsm": [
+            (
+                r"("
+                + r"|".join(
+                    (  # keep ragel code in largest possible chunks.
+                        r"("
+                        + r"|".join(
+                            (
+                                r'[^}\'"\[/#]',  # exclude unsafe characters
+                                r"\}(?=[^%]|$)",  # } is okay as long as it's not followed by %
+                                r"\}%(?=[^%]|$)",  # ...well, one %'s okay, just not two...
+                                r"[^\\]\\[{}]",  # ...and } is okay if it's escaped
+                                # allow / if it's preceded with one of these symbols
+                                # (ragel EOF actions)
+                                r"(>|\$|%|<|@|<>)/",
+                                # specifically allow regex followed immediately by *
+                                # so it doesn't get mistaken for a comment
+                                r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*",
+                                # allow / as long as it's not followed by another / or by a *
+                                r"/(?=[^/*]|$)",
+                                # We want to match as many of these as we can in one block.
+                                # Not sure if we need the + sign here,
+                                # does it help performance?
+                            )
+                        )
+                        + r")+",
+                        # strings and comments may safely contain unsafe characters
+                        r'"(\\\\|\\[^\\]|[^"\\])*"',
+                        r"'(\\\\|\\[^\\]|[^'\\])*'",
+                        r"\[(\\\\|\\[^\\]|[^\]\\])*\]",  # square bracket literal
+                        r"/\*(.|\n)*?\*/",  # multi-line javadoc-style comment
+                        r"//.*$\n?",  # single line comment
+                        r"\#.*$\n?",  # ruby/ragel comment
+                    )
+                )
+                + r")+",
+                using(RagelLexer),
+            ),
+            (r"\}%%", Punctuation, "#pop"),
         ],
-        'multi-line-fsm': [
-            (r'(' + r'|'.join((  # keep ragel code in largest possible chunks.
-                r'(' + r'|'.join((
-                    r'[^}\'"\[/#]',   # exclude unsafe characters
-                    r'\}(?=[^%]|$)',   # } is okay as long as it's not followed by %
-                    r'\}%(?=[^%]|$)',  # ...well, one %'s okay, just not two...
-                    r'[^\\]\\[{}]',   # ...and } is okay if it's escaped
-
-                    # allow / if it's preceded with one of these symbols
-                    # (ragel EOF actions)
-                    r'(>|\$|%|<|@|<>)/',
-
-                    # specifically allow regex followed immediately by *
-                    # so it doesn't get mistaken for a comment
-                    r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*',
-
-                    # allow / as long as it's not followed by another / or by a *
-                    r'/(?=[^/*]|$)',
-
-                    # We want to match as many of these as we can in one block.
-                    # Not sure if we need the + sign here,
-                    # does it help performance?
-                )) + r')+',
-
-                # strings and comments may safely contain unsafe characters
-                r'"(\\\\|\\[^\\]|[^"\\])*"',
-                r"'(\\\\|\\[^\\]|[^'\\])*'",
-                r"\[(\\\\|\\[^\\]|[^\]\\])*\]",  # square bracket literal
-                r'/\*(.|\n)*?\*/',          # multi-line javadoc-style comment
-                r'//.*$\n?',                # single line comment
-                r'\#.*$\n?',                # ruby/ragel comment
-            )) + r')+', using(RagelLexer)),
-
-            (r'\}%%', Punctuation, '#pop'),
-        ]
     }
 
     def analyse_text(text):
-        return '@LANG: indep' in text
+        return "@LANG: indep" in text
 
 
 class RagelRubyLexer(DelegatingLexer):
@@ -214,17 +247,17 @@ class RagelRubyLexer(DelegatingLexer):
     A lexer for Ragel in a Ruby host file.
     """
 
-    name = 'Ragel in Ruby Host'
-    aliases = ['ragel-ruby', 'ragel-rb']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in Ruby Host"
+    aliases = ["ragel-ruby", "ragel-rb"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(RubyLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: ruby' in text
+        return "@LANG: ruby" in text
 
 
 class RagelCLexer(DelegatingLexer):
@@ -232,17 +265,17 @@ class RagelCLexer(DelegatingLexer):
     A lexer for Ragel in a C host file.
     """
 
-    name = 'Ragel in C Host'
-    aliases = ['ragel-c']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in C Host"
+    aliases = ["ragel-c"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(CLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: c' in text
+        return "@LANG: c" in text
 
 
 class RagelDLexer(DelegatingLexer):
@@ -250,17 +283,17 @@ class RagelDLexer(DelegatingLexer):
     A lexer for Ragel in a D host file.
     """
 
-    name = 'Ragel in D Host'
-    aliases = ['ragel-d']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in D Host"
+    aliases = ["ragel-d"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(DLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: d' in text
+        return "@LANG: d" in text
 
 
 class RagelCppLexer(DelegatingLexer):
@@ -268,17 +301,17 @@ class RagelCppLexer(DelegatingLexer):
     A lexer for Ragel in a C++ host file.
     """
 
-    name = 'Ragel in CPP Host'
-    aliases = ['ragel-cpp']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in CPP Host"
+    aliases = ["ragel-cpp"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(CppLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: c++' in text
+        return "@LANG: c++" in text
 
 
 class RagelObjectiveCLexer(DelegatingLexer):
@@ -286,17 +319,17 @@ class RagelObjectiveCLexer(DelegatingLexer):
     A lexer for Ragel in an Objective C host file.
     """
 
-    name = 'Ragel in Objective C Host'
-    aliases = ['ragel-objc']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in Objective C Host"
+    aliases = ["ragel-objc"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(ObjectiveCLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: objc' in text
+        return "@LANG: objc" in text
 
 
 class RagelJavaLexer(DelegatingLexer):
@@ -304,17 +337,17 @@ class RagelJavaLexer(DelegatingLexer):
     A lexer for Ragel in a Java host file.
     """
 
-    name = 'Ragel in Java Host'
-    aliases = ['ragel-java']
-    filenames = ['*.rl']
-    url = 'http://www.colm.net/open-source/ragel/'
-    version_added = '1.1'
+    name = "Ragel in Java Host"
+    aliases = ["ragel-java"]
+    filenames = ["*.rl"]
+    url = "http://www.colm.net/open-source/ragel/"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(JavaLexer, RagelEmbeddedLexer, **options)
 
     def analyse_text(text):
-        return '@LANG: java' in text
+        return "@LANG: java" in text
 
 
 class AntlrLexer(RegexLexer):
@@ -324,209 +357,261 @@ class AntlrLexer(RegexLexer):
     use DelegatingLexer for your target language.
     """
 
-    name = 'ANTLR'
-    aliases = ['antlr']
+    name = "ANTLR"
+    aliases = ["antlr"]
     filenames = []
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
-    _id = r'[A-Za-z]\w*'
-    _TOKEN_REF = r'[A-Z]\w*'
-    _RULE_REF = r'[a-z]\w*'
-    _STRING_LITERAL = r'\'(?:\\\\|\\\'|[^\']*)\''
-    _INT = r'[0-9]+'
+    _id = r"[A-Za-z]\w*"
+    _TOKEN_REF = r"[A-Z]\w*"
+    _RULE_REF = r"[a-z]\w*"
+    _STRING_LITERAL = r"\'(?:\\\\|\\\'|[^\']*)\'"
+    _INT = r"[0-9]+"
 
     tokens = {
-        'whitespace': [
-            (r'\s+', Whitespace),
+        "whitespace": [
+            (r"\s+", Whitespace),
         ],
-        'comments': [
-            (r'//.*$', Comment),
-            (r'/\*(.|\n)*?\*/', Comment),
+        "comments": [
+            (r"//.*$", Comment),
+            (r"/\*(.|\n)*?\*/", Comment),
         ],
-        'root': [
-            include('whitespace'),
-            include('comments'),
-
-            (r'(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(' + _id + ')(;)',
-             bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Class,
-                      Punctuation)),
+        "root": [
+            include("whitespace"),
+            include("comments"),
+            (
+                r"(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(" + _id + ")(;)",
+                bygroups(
+                    Keyword, Whitespace, Keyword, Whitespace, Name.Class, Punctuation
+                ),
+            ),
             # optionsSpec
-            (r'options\b', Keyword, 'options'),
+            (r"options\b", Keyword, "options"),
             # tokensSpec
-            (r'tokens\b', Keyword, 'tokens'),
+            (r"tokens\b", Keyword, "tokens"),
             # attrScope
-            (r'(scope)(\s*)(' + _id + r')(\s*)(\{)',
-             bygroups(Keyword, Whitespace, Name.Variable, Whitespace,
-                      Punctuation), 'action'),
+            (
+                r"(scope)(\s*)(" + _id + r")(\s*)(\{)",
+                bygroups(Keyword, Whitespace, Name.Variable, Whitespace, Punctuation),
+                "action",
+            ),
             # exception
-            (r'(catch|finally)\b', Keyword, 'exception'),
+            (r"(catch|finally)\b", Keyword, "exception"),
             # action
-            (r'(@' + _id + r')(\s*)(::)?(\s*)(' + _id + r')(\s*)(\{)',
-             bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
-                      Name.Label, Whitespace, Punctuation), 'action'),
+            (
+                r"(@" + _id + r")(\s*)(::)?(\s*)(" + _id + r")(\s*)(\{)",
+                bygroups(
+                    Name.Label,
+                    Whitespace,
+                    Punctuation,
+                    Whitespace,
+                    Name.Label,
+                    Whitespace,
+                    Punctuation,
+                ),
+                "action",
+            ),
             # rule
-            (r'((?:protected|private|public|fragment)\b)?(\s*)(' + _id + ')(!)?',
-             bygroups(Keyword, Whitespace, Name.Label, Punctuation),
-             ('rule-alts', 'rule-prelims')),
+            (
+                r"((?:protected|private|public|fragment)\b)?(\s*)(" + _id + ")(!)?",
+                bygroups(Keyword, Whitespace, Name.Label, Punctuation),
+                ("rule-alts", "rule-prelims"),
+            ),
         ],
-        'exception': [
-            (r'\n', Whitespace, '#pop'),
-            (r'\s', Whitespace),
-            include('comments'),
-
-            (r'\[', Punctuation, 'nested-arg-action'),
-            (r'\{', Punctuation, 'action'),
+        "exception": [
+            (r"\n", Whitespace, "#pop"),
+            (r"\s", Whitespace),
+            include("comments"),
+            (r"\[", Punctuation, "nested-arg-action"),
+            (r"\{", Punctuation, "action"),
         ],
-        'rule-prelims': [
-            include('whitespace'),
-            include('comments'),
-
-            (r'returns\b', Keyword),
-            (r'\[', Punctuation, 'nested-arg-action'),
-            (r'\{', Punctuation, 'action'),
+        "rule-prelims": [
+            include("whitespace"),
+            include("comments"),
+            (r"returns\b", Keyword),
+            (r"\[", Punctuation, "nested-arg-action"),
+            (r"\{", Punctuation, "action"),
             # throwsSpec
-            (r'(throws)(\s+)(' + _id + ')',
-             bygroups(Keyword, Whitespace, Name.Label)),
-            (r'(,)(\s*)(' + _id + ')',
-             bygroups(Punctuation, Whitespace, Name.Label)),  # Additional throws
+            (r"(throws)(\s+)(" + _id + ")", bygroups(Keyword, Whitespace, Name.Label)),
+            (
+                r"(,)(\s*)(" + _id + ")",
+                bygroups(Punctuation, Whitespace, Name.Label),
+            ),  # Additional throws
             # optionsSpec
-            (r'options\b', Keyword, 'options'),
+            (r"options\b", Keyword, "options"),
             # ruleScopeSpec - scope followed by target language code or name of action
             # TODO finish implementing other possibilities for scope
             # L173 ANTLRv3.g from ANTLR book
-            (r'(scope)(\s+)(\{)', bygroups(Keyword, Whitespace, Punctuation),
-             'action'),
-            (r'(scope)(\s+)(' + _id + r')(\s*)(;)',
-             bygroups(Keyword, Whitespace, Name.Label, Whitespace, Punctuation)),
+            (r"(scope)(\s+)(\{)", bygroups(Keyword, Whitespace, Punctuation), "action"),
+            (
+                r"(scope)(\s+)(" + _id + r")(\s*)(;)",
+                bygroups(Keyword, Whitespace, Name.Label, Whitespace, Punctuation),
+            ),
             # ruleAction
-            (r'(@' + _id + r')(\s*)(\{)',
-             bygroups(Name.Label, Whitespace, Punctuation), 'action'),
+            (
+                r"(@" + _id + r")(\s*)(\{)",
+                bygroups(Name.Label, Whitespace, Punctuation),
+                "action",
+            ),
             # finished prelims, go to rule alts!
-            (r':', Punctuation, '#pop')
+            (r":", Punctuation, "#pop"),
         ],
-        'rule-alts': [
-            include('whitespace'),
-            include('comments'),
-
+        "rule-alts": [
+            include("whitespace"),
+            include("comments"),
             # These might need to go in a separate 'block' state triggered by (
-            (r'options\b', Keyword, 'options'),
-            (r':', Punctuation),
-
+            (r"options\b", Keyword, "options"),
+            (r":", Punctuation),
             # literals
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
-            (r'<<([^>]|>[^>])>>', String),
+            (r"<<([^>]|>[^>])>>", String),
             # identifiers
             # Tokens start with capital letter.
-            (r'\$?[A-Z_]\w*', Name.Constant),
+            (r"\$?[A-Z_]\w*", Name.Constant),
             # Rules start with small letter.
-            (r'\$?[a-z_]\w*', Name.Variable),
+            (r"\$?[a-z_]\w*", Name.Variable),
             # operators
-            (r'(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)', Operator),
-            (r',', Punctuation),
-            (r'\[', Punctuation, 'nested-arg-action'),
-            (r'\{', Punctuation, 'action'),
-            (r';', Punctuation, '#pop')
+            (r"(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)", Operator),
+            (r",", Punctuation),
+            (r"\[", Punctuation, "nested-arg-action"),
+            (r"\{", Punctuation, "action"),
+            (r";", Punctuation, "#pop"),
         ],
-        'tokens': [
-            include('whitespace'),
-            include('comments'),
-            (r'\{', Punctuation),
-            (r'(' + _TOKEN_REF + r')(\s*)(=)?(\s*)(' + _STRING_LITERAL
-             + r')?(\s*)(;)',
-             bygroups(Name.Label, Whitespace, Punctuation, Whitespace,
-                      String, Whitespace, Punctuation)),
-            (r'\}', Punctuation, '#pop'),
+        "tokens": [
+            include("whitespace"),
+            include("comments"),
+            (r"\{", Punctuation),
+            (
+                r"("
+                + _TOKEN_REF
+                + r")(\s*)(=)?(\s*)("
+                + _STRING_LITERAL
+                + r")?(\s*)(;)",
+                bygroups(
+                    Name.Label,
+                    Whitespace,
+                    Punctuation,
+                    Whitespace,
+                    String,
+                    Whitespace,
+                    Punctuation,
+                ),
+            ),
+            (r"\}", Punctuation, "#pop"),
         ],
-        'options': [
-            include('whitespace'),
-            include('comments'),
-            (r'\{', Punctuation),
-            (r'(' + _id + r')(\s*)(=)(\s*)(' +
-             '|'.join((_id, _STRING_LITERAL, _INT, r'\*')) + r')(\s*)(;)',
-             bygroups(Name.Variable, Whitespace, Punctuation, Whitespace,
-                      Text, Whitespace, Punctuation)),
-            (r'\}', Punctuation, '#pop'),
+        "options": [
+            include("whitespace"),
+            include("comments"),
+            (r"\{", Punctuation),
+            (
+                r"("
+                + _id
+                + r")(\s*)(=)(\s*)("
+                + "|".join((_id, _STRING_LITERAL, _INT, r"\*"))
+                + r")(\s*)(;)",
+                bygroups(
+                    Name.Variable,
+                    Whitespace,
+                    Punctuation,
+                    Whitespace,
+                    Text,
+                    Whitespace,
+                    Punctuation,
+                ),
+            ),
+            (r"\}", Punctuation, "#pop"),
         ],
-        'action': [
-            (r'(' + r'|'.join((    # keep host code in largest possible chunks
-                r'[^${}\'"/\\]+',  # exclude unsafe characters
-
-                # strings and comments may safely contain unsafe characters
-                r'"(\\\\|\\[^\\]|[^"\\])*"',
-                r"'(\\\\|\\[^\\]|[^'\\])*'",
-                r'//.*$\n?',            # single line comment
-                r'/\*(.|\n)*?\*/',      # multi-line javadoc-style comment
-
-                # regular expression: There's no reason for it to start
-                # with a * and this stops confusion with comments.
-                r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
-
-                # backslashes are okay, as long as we are not backslashing a %
-                r'\\(?!%)',
-
-                # Now that we've handled regex and javadoc comments
-                # it's safe to let / through.
-                r'/',
-            )) + r')+', Other),
-            (r'(\\)(%)', bygroups(Punctuation, Other)),
-            (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
-             bygroups(Name.Variable, Punctuation, Name.Property)),
-            (r'\{', Punctuation, '#push'),
-            (r'\}', Punctuation, '#pop'),
+        "action": [
+            (
+                r"("
+                + r"|".join(
+                    (  # keep host code in largest possible chunks
+                        r'[^${}\'"/\\]+',  # exclude unsafe characters
+                        # strings and comments may safely contain unsafe characters
+                        r'"(\\\\|\\[^\\]|[^"\\])*"',
+                        r"'(\\\\|\\[^\\]|[^'\\])*'",
+                        r"//.*$\n?",  # single line comment
+                        r"/\*(.|\n)*?\*/",  # multi-line javadoc-style comment
+                        # regular expression: There's no reason for it to start
+                        # with a * and this stops confusion with comments.
+                        r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/",
+                        # backslashes are okay, as long as we are not backslashing a %
+                        r"\\(?!%)",
+                        # Now that we've handled regex and javadoc comments
+                        # it's safe to let / through.
+                        r"/",
+                    )
+                )
+                + r")+",
+                Other,
+            ),
+            (r"(\\)(%)", bygroups(Punctuation, Other)),
+            (
+                r"(\$[a-zA-Z]+)(\.?)(text|value)?",
+                bygroups(Name.Variable, Punctuation, Name.Property),
+            ),
+            (r"\{", Punctuation, "#push"),
+            (r"\}", Punctuation, "#pop"),
+        ],
+        "nested-arg-action": [
+            (
+                r"("
+                + r"|".join(
+                    (  # keep host code in largest possible chunks.
+                        r'[^$\[\]\'"/]+',  # exclude unsafe characters
+                        # strings and comments may safely contain unsafe characters
+                        r'"(\\\\|\\[^\\]|[^"\\])*"',
+                        r"'(\\\\|\\[^\\]|[^'\\])*'",
+                        r"//.*$\n?",  # single line comment
+                        r"/\*(.|\n)*?\*/",  # multi-line javadoc-style comment
+                        # regular expression: There's no reason for it to start
+                        # with a * and this stops confusion with comments.
+                        r"/(?!\*)(\\\\|\\[^\\]|[^/\\])*/",
+                        # Now that we've handled regex and javadoc comments
+                        # it's safe to let / through.
+                        r"/",
+                    )
+                )
+                + r")+",
+                Other,
+            ),
+            (r"\[", Punctuation, "#push"),
+            (r"\]", Punctuation, "#pop"),
+            (
+                r"(\$[a-zA-Z]+)(\.?)(text|value)?",
+                bygroups(Name.Variable, Punctuation, Name.Property),
+            ),
+            (r"(\\\\|\\\]|\\\[|[^\[\]])+", Other),
         ],
-        'nested-arg-action': [
-            (r'(' + r'|'.join((    # keep host code in largest possible chunks.
-                r'[^$\[\]\'"/]+',  # exclude unsafe characters
-
-                # strings and comments may safely contain unsafe characters
-                r'"(\\\\|\\[^\\]|[^"\\])*"',
-                r"'(\\\\|\\[^\\]|[^'\\])*'",
-                r'//.*$\n?',            # single line comment
-                r'/\*(.|\n)*?\*/',      # multi-line javadoc-style comment
-
-                # regular expression: There's no reason for it to start
-                # with a * and this stops confusion with comments.
-                r'/(?!\*)(\\\\|\\[^\\]|[^/\\])*/',
-
-                # Now that we've handled regex and javadoc comments
-                # it's safe to let / through.
-                r'/',
-            )) + r')+', Other),
-
-
-            (r'\[', Punctuation, '#push'),
-            (r'\]', Punctuation, '#pop'),
-            (r'(\$[a-zA-Z]+)(\.?)(text|value)?',
-             bygroups(Name.Variable, Punctuation, Name.Property)),
-            (r'(\\\\|\\\]|\\\[|[^\[\]])+', Other),
-        ]
     }
 
     def analyse_text(text):
-        return re.search(r'^\s*grammar\s+[a-zA-Z0-9]+\s*;', text, re.M)
+        return re.search(r"^\s*grammar\s+[a-zA-Z0-9]+\s*;", text, re.M)
 
 
 # http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets
 
+
 class AntlrCppLexer(DelegatingLexer):
     """
     ANTLR with C++ Target
     """
 
-    name = 'ANTLR With CPP Target'
-    aliases = ['antlr-cpp']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With CPP Target"
+    aliases = ["antlr-cpp"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(CppLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*C\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*C\s*;", text, re.M
+        )
 
 
 class AntlrObjectiveCLexer(DelegatingLexer):
@@ -534,18 +619,19 @@ class AntlrObjectiveCLexer(DelegatingLexer):
     ANTLR with Objective-C Target
     """
 
-    name = 'ANTLR With ObjectiveC Target'
-    aliases = ['antlr-objc']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With ObjectiveC Target"
+    aliases = ["antlr-objc"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(ObjectiveCLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*ObjC\s*;', text)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*ObjC\s*;", text
+        )
 
 
 class AntlrCSharpLexer(DelegatingLexer):
@@ -553,18 +639,19 @@ class AntlrCSharpLexer(DelegatingLexer):
     ANTLR with C# Target
     """
 
-    name = 'ANTLR With C# Target'
-    aliases = ['antlr-csharp', 'antlr-c#']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With C# Target"
+    aliases = ["antlr-csharp", "antlr-c#"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(CSharpLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*CSharp2\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*CSharp2\s*;", text, re.M
+        )
 
 
 class AntlrPythonLexer(DelegatingLexer):
@@ -572,18 +659,19 @@ class AntlrPythonLexer(DelegatingLexer):
     ANTLR with Python Target
     """
 
-    name = 'ANTLR With Python Target'
-    aliases = ['antlr-python']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With Python Target"
+    aliases = ["antlr-python"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(PythonLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*Python\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*Python\s*;", text, re.M
+        )
 
 
 class AntlrJavaLexer(DelegatingLexer):
@@ -591,11 +679,11 @@ class AntlrJavaLexer(DelegatingLexer):
     ANTLR with Java Target
     """
 
-    name = 'ANTLR With Java Target'
-    aliases = ['antlr-java']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With Java Target"
+    aliases = ["antlr-java"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(JavaLexer, AntlrLexer, **options)
@@ -610,18 +698,19 @@ class AntlrRubyLexer(DelegatingLexer):
     ANTLR with Ruby Target
     """
 
-    name = 'ANTLR With Ruby Target'
-    aliases = ['antlr-ruby', 'antlr-rb']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With Ruby Target"
+    aliases = ["antlr-ruby", "antlr-rb"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(RubyLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*Ruby\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*Ruby\s*;", text, re.M
+        )
 
 
 class AntlrPerlLexer(DelegatingLexer):
@@ -629,18 +718,19 @@ class AntlrPerlLexer(DelegatingLexer):
     ANTLR with Perl Target
     """
 
-    name = 'ANTLR With Perl Target'
-    aliases = ['antlr-perl']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With Perl Target"
+    aliases = ["antlr-perl"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         super().__init__(PerlLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*Perl5\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*Perl5\s*;", text, re.M
+        )
 
 
 class AntlrActionScriptLexer(DelegatingLexer):
@@ -648,19 +738,21 @@ class AntlrActionScriptLexer(DelegatingLexer):
     ANTLR with ActionScript Target
     """
 
-    name = 'ANTLR With ActionScript Target'
-    aliases = ['antlr-actionscript', 'antlr-as']
-    filenames = ['*.G', '*.g']
-    url = 'https://www.antlr.org'
-    version_added = '1.1'
+    name = "ANTLR With ActionScript Target"
+    aliases = ["antlr-actionscript", "antlr-as"]
+    filenames = ["*.G", "*.g"]
+    url = "https://www.antlr.org"
+    version_added = "1.1"
 
     def __init__(self, **options):
         from pygments.lexers.actionscript import ActionScriptLexer
+
         super().__init__(ActionScriptLexer, AntlrLexer, **options)
 
     def analyse_text(text):
-        return AntlrLexer.analyse_text(text) and \
-            re.search(r'^\s*language\s*=\s*ActionScript\s*;', text, re.M)
+        return AntlrLexer.analyse_text(text) and re.search(
+            r"^\s*language\s*=\s*ActionScript\s*;", text, re.M
+        )
 
 
 class TreetopBaseLexer(RegexLexer):
@@ -672,62 +764,64 @@ class TreetopBaseLexer(RegexLexer):
     """
 
     tokens = {
-        'root': [
-            include('space'),
-            (r'require[ \t]+[^\n\r]+[\n\r]', Other),
-            (r'module\b', Keyword.Namespace, 'module'),
-            (r'grammar\b', Keyword, 'grammar'),
+        "root": [
+            include("space"),
+            (r"require[ \t]+[^\n\r]+[\n\r]", Other),
+            (r"module\b", Keyword.Namespace, "module"),
+            (r"grammar\b", Keyword, "grammar"),
         ],
-        'module': [
-            include('space'),
-            include('end'),
-            (r'module\b', Keyword, '#push'),
-            (r'grammar\b', Keyword, 'grammar'),
-            (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Namespace),
+        "module": [
+            include("space"),
+            include("end"),
+            (r"module\b", Keyword, "#push"),
+            (r"grammar\b", Keyword, "grammar"),
+            (r"[A-Z]\w*(?:::[A-Z]\w*)*", Name.Namespace),
         ],
-        'grammar': [
-            include('space'),
-            include('end'),
-            (r'rule\b', Keyword, 'rule'),
-            (r'include\b', Keyword, 'include'),
-            (r'[A-Z]\w*', Name),
+        "grammar": [
+            include("space"),
+            include("end"),
+            (r"rule\b", Keyword, "rule"),
+            (r"include\b", Keyword, "include"),
+            (r"[A-Z]\w*", Name),
         ],
-        'include': [
-            include('space'),
-            (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Class, '#pop'),
+        "include": [
+            include("space"),
+            (r"[A-Z]\w*(?:::[A-Z]\w*)*", Name.Class, "#pop"),
         ],
-        'rule': [
-            include('space'),
-            include('end'),
+        "rule": [
+            include("space"),
+            include("end"),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
-            (r'([A-Za-z_]\w*)(:)', bygroups(Name.Label, Punctuation)),
-            (r'[A-Za-z_]\w*', Name),
-            (r'[()]', Punctuation),
-            (r'[?+*/&!~]', Operator),
-            (r'\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]', String.Regex),
-            (r'([0-9]*)(\.\.)([0-9]*)',
-             bygroups(Number.Integer, Operator, Number.Integer)),
-            (r'(<)([^>]+)(>)', bygroups(Punctuation, Name.Class, Punctuation)),
-            (r'\{', Punctuation, 'inline_module'),
-            (r'\.', String.Regex),
+            (r"([A-Za-z_]\w*)(:)", bygroups(Name.Label, Punctuation)),
+            (r"[A-Za-z_]\w*", Name),
+            (r"[()]", Punctuation),
+            (r"[?+*/&!~]", Operator),
+            (r"\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]", String.Regex),
+            (
+                r"([0-9]*)(\.\.)([0-9]*)",
+                bygroups(Number.Integer, Operator, Number.Integer),
+            ),
+            (r"(<)([^>]+)(>)", bygroups(Punctuation, Name.Class, Punctuation)),
+            (r"\{", Punctuation, "inline_module"),
+            (r"\.", String.Regex),
         ],
-        'inline_module': [
-            (r'\{', Other, 'ruby'),
-            (r'\}', Punctuation, '#pop'),
-            (r'[^{}]+', Other),
+        "inline_module": [
+            (r"\{", Other, "ruby"),
+            (r"\}", Punctuation, "#pop"),
+            (r"[^{}]+", Other),
         ],
-        'ruby': [
-            (r'\{', Other, '#push'),
-            (r'\}', Other, '#pop'),
-            (r'[^{}]+', Other),
+        "ruby": [
+            (r"\{", Other, "#push"),
+            (r"\}", Other, "#pop"),
+            (r"[^{}]+", Other),
         ],
-        'space': [
-            (r'[ \t\n\r]+', Whitespace),
-            (r'#[^\n]*', Comment.Single),
+        "space": [
+            (r"[ \t\n\r]+", Whitespace),
+            (r"#[^\n]*", Comment.Single),
         ],
-        'end': [
-            (r'end\b', Keyword, '#pop'),
+        "end": [
+            (r"end\b", Keyword, "#pop"),
         ],
     }
 
@@ -737,11 +831,11 @@ class TreetopLexer(DelegatingLexer):
     A lexer for Treetop grammars.
     """
 
-    name = 'Treetop'
-    aliases = ['treetop']
-    filenames = ['*.treetop', '*.tt']
-    url = 'https://cjheath.github.io/treetop'
-    version_added = '1.6'
+    name = "Treetop"
+    aliases = ["treetop"]
+    filenames = ["*.treetop", "*.tt"]
+    url = "https://cjheath.github.io/treetop"
+    version_added = "1.6"
 
     def __init__(self, **options):
         super().__init__(RubyLexer, TreetopBaseLexer, **options)
@@ -754,45 +848,45 @@ class EbnfLexer(RegexLexer):
     grammars.
     """
 
-    name = 'EBNF'
-    aliases = ['ebnf']
-    filenames = ['*.ebnf']
-    mimetypes = ['text/x-ebnf']
-    url = 'https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form'
-    version_added = '2.0'
+    name = "EBNF"
+    aliases = ["ebnf"]
+    filenames = ["*.ebnf"]
+    mimetypes = ["text/x-ebnf"]
+    url = "https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form"
+    version_added = "2.0"
 
     tokens = {
-        'root': [
-            include('whitespace'),
-            include('comment_start'),
-            include('identifier'),
-            (r'=', Operator, 'production'),
+        "root": [
+            include("whitespace"),
+            include("comment_start"),
+            include("identifier"),
+            (r"=", Operator, "production"),
         ],
-        'production': [
-            include('whitespace'),
-            include('comment_start'),
-            include('identifier'),
+        "production": [
+            include("whitespace"),
+            include("comment_start"),
+            include("identifier"),
             (r'"[^"]*"', String.Double),
             (r"'[^']*'", String.Single),
-            (r'(\?[^?]*\?)', Name.Entity),
-            (r'[\[\]{}(),|]', Punctuation),
-            (r'-', Operator),
-            (r';', Punctuation, '#pop'),
-            (r'\.', Punctuation, '#pop'),
+            (r"(\?[^?]*\?)", Name.Entity),
+            (r"[\[\]{}(),|]", Punctuation),
+            (r"-", Operator),
+            (r";", Punctuation, "#pop"),
+            (r"\.", Punctuation, "#pop"),
         ],
-        'whitespace': [
-            (r'\s+', Text),
+        "whitespace": [
+            (r"\s+", Text),
         ],
-        'comment_start': [
-            (r'\(\*', Comment.Multiline, 'comment'),
+        "comment_start": [
+            (r"\(\*", Comment.Multiline, "comment"),
         ],
-        'comment': [
-            (r'[^*)]', Comment.Multiline),
-            include('comment_start'),
-            (r'\*\)', Comment.Multiline, '#pop'),
-            (r'[*)]', Comment.Multiline),
+        "comment": [
+            (r"[^*)]", Comment.Multiline),
+            include("comment_start"),
+            (r"\*\)", Comment.Multiline, "#pop"),
+            (r"[*)]", Comment.Multiline),
         ],
-        'identifier': [
-            (r'([a-zA-Z][\w \-]*)', Keyword),
+        "identifier": [
+            (r"([a-zA-Z][\w \-]*)", Keyword),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pascal.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pascal.py
index 5f40dcc..c88b96e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pascal.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pascal.py
@@ -1,35 +1,45 @@
 """
-    pygments.lexers.pascal
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.pascal
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Pascal family languages.
+Lexers for Pascal family languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import Lexer
 from pygments.util import get_bool_opt, get_list_opt
-from pygments.token import Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Error, Whitespace
+from pygments.token import (
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Error,
+    Whitespace,
+)
 from pygments.scanner import Scanner
 
 # compatibility import
-from pygments.lexers.modula2 import Modula2Lexer # noqa: F401
+from pygments.lexers.modula2 import Modula2Lexer  # noqa: F401
 
-__all__ = ['DelphiLexer', 'PortugolLexer']
+__all__ = ["DelphiLexer", "PortugolLexer"]
 
 
 class PortugolLexer(Lexer):
     """For Portugol, a Pascal dialect with keywords in Portuguese."""
-    name = 'Portugol'
-    aliases = ['portugol']
-    filenames = ['*.alg', '*.portugol']
+
+    name = "Portugol"
+    aliases = ["portugol"]
+    filenames = ["*.alg", "*.portugol"]
     mimetypes = []
     url = "https://www.apoioinformatica.inf.br/produtos/visualg/linguagem"
-    version_added = ''
+    version_added = ""
 
     def __init__(self, **options):
         Lexer.__init__(self, **options)
@@ -57,371 +67,1237 @@ class DelphiLexer(Lexer):
         ``System``, ``SysUtils``, ``Classes`` and ``Math``.
         Default is to consider all of them builtin.
     """
-    name = 'Delphi'
-    aliases = ['delphi', 'pas', 'pascal', 'objectpascal']
-    filenames = ['*.pas', '*.dpr']
-    mimetypes = ['text/x-pascal']
-    url = 'https://www.embarcadero.com/products/delphi'
-    version_added = ''
+
+    name = "Delphi"
+    aliases = ["delphi", "pas", "pascal", "objectpascal"]
+    filenames = ["*.pas", "*.dpr"]
+    mimetypes = ["text/x-pascal"]
+    url = "https://www.embarcadero.com/products/delphi"
+    version_added = ""
 
     TURBO_PASCAL_KEYWORDS = (
-        'absolute', 'and', 'array', 'asm', 'begin', 'break', 'case',
-        'const', 'constructor', 'continue', 'destructor', 'div', 'do',
-        'downto', 'else', 'end', 'file', 'for', 'function', 'goto',
-        'if', 'implementation', 'in', 'inherited', 'inline', 'interface',
-        'label', 'mod', 'nil', 'not', 'object', 'of', 'on', 'operator',
-        'or', 'packed', 'procedure', 'program', 'record', 'reintroduce',
-        'repeat', 'self', 'set', 'shl', 'shr', 'string', 'then', 'to',
-        'type', 'unit', 'until', 'uses', 'var', 'while', 'with', 'xor'
+        "absolute",
+        "and",
+        "array",
+        "asm",
+        "begin",
+        "break",
+        "case",
+        "const",
+        "constructor",
+        "continue",
+        "destructor",
+        "div",
+        "do",
+        "downto",
+        "else",
+        "end",
+        "file",
+        "for",
+        "function",
+        "goto",
+        "if",
+        "implementation",
+        "in",
+        "inherited",
+        "inline",
+        "interface",
+        "label",
+        "mod",
+        "nil",
+        "not",
+        "object",
+        "of",
+        "on",
+        "operator",
+        "or",
+        "packed",
+        "procedure",
+        "program",
+        "record",
+        "reintroduce",
+        "repeat",
+        "self",
+        "set",
+        "shl",
+        "shr",
+        "string",
+        "then",
+        "to",
+        "type",
+        "unit",
+        "until",
+        "uses",
+        "var",
+        "while",
+        "with",
+        "xor",
     )
 
     DELPHI_KEYWORDS = (
-        'as', 'class', 'except', 'exports', 'finalization', 'finally',
-        'initialization', 'is', 'library', 'on', 'property', 'raise',
-        'threadvar', 'try'
+        "as",
+        "class",
+        "except",
+        "exports",
+        "finalization",
+        "finally",
+        "initialization",
+        "is",
+        "library",
+        "on",
+        "property",
+        "raise",
+        "threadvar",
+        "try",
     )
 
-    FREE_PASCAL_KEYWORDS = (
-        'dispose', 'exit', 'false', 'new', 'true'
-    )
+    FREE_PASCAL_KEYWORDS = ("dispose", "exit", "false", "new", "true")
 
     BLOCK_KEYWORDS = {
-        'begin', 'class', 'const', 'constructor', 'destructor', 'end',
-        'finalization', 'function', 'implementation', 'initialization',
-        'label', 'library', 'operator', 'procedure', 'program', 'property',
-        'record', 'threadvar', 'type', 'unit', 'uses', 'var'
+        "begin",
+        "class",
+        "const",
+        "constructor",
+        "destructor",
+        "end",
+        "finalization",
+        "function",
+        "implementation",
+        "initialization",
+        "label",
+        "library",
+        "operator",
+        "procedure",
+        "program",
+        "property",
+        "record",
+        "threadvar",
+        "type",
+        "unit",
+        "uses",
+        "var",
     }
 
     FUNCTION_MODIFIERS = {
-        'alias', 'cdecl', 'export', 'inline', 'interrupt', 'nostackframe',
-        'pascal', 'register', 'safecall', 'softfloat', 'stdcall',
-        'varargs', 'name', 'dynamic', 'near', 'virtual', 'external',
-        'override', 'assembler'
+        "alias",
+        "cdecl",
+        "export",
+        "inline",
+        "interrupt",
+        "nostackframe",
+        "pascal",
+        "register",
+        "safecall",
+        "softfloat",
+        "stdcall",
+        "varargs",
+        "name",
+        "dynamic",
+        "near",
+        "virtual",
+        "external",
+        "override",
+        "assembler",
     }
 
     # XXX: those aren't global. but currently we know no way for defining
     #      them just for the type context.
     DIRECTIVES = {
-        'absolute', 'abstract', 'assembler', 'cppdecl', 'default', 'far',
-        'far16', 'forward', 'index', 'oldfpccall', 'private', 'protected',
-        'published', 'public'
+        "absolute",
+        "abstract",
+        "assembler",
+        "cppdecl",
+        "default",
+        "far",
+        "far16",
+        "forward",
+        "index",
+        "oldfpccall",
+        "private",
+        "protected",
+        "published",
+        "public",
     }
 
     BUILTIN_TYPES = {
-        'ansichar', 'ansistring', 'bool', 'boolean', 'byte', 'bytebool',
-        'cardinal', 'char', 'comp', 'currency', 'double', 'dword',
-        'extended', 'int64', 'integer', 'iunknown', 'longbool', 'longint',
-        'longword', 'pansichar', 'pansistring', 'pbool', 'pboolean',
-        'pbyte', 'pbytearray', 'pcardinal', 'pchar', 'pcomp', 'pcurrency',
-        'pdate', 'pdatetime', 'pdouble', 'pdword', 'pextended', 'phandle',
-        'pint64', 'pinteger', 'plongint', 'plongword', 'pointer',
-        'ppointer', 'pshortint', 'pshortstring', 'psingle', 'psmallint',
-        'pstring', 'pvariant', 'pwidechar', 'pwidestring', 'pword',
-        'pwordarray', 'pwordbool', 'real', 'real48', 'shortint',
-        'shortstring', 'single', 'smallint', 'string', 'tclass', 'tdate',
-        'tdatetime', 'textfile', 'thandle', 'tobject', 'ttime', 'variant',
-        'widechar', 'widestring', 'word', 'wordbool'
+        "ansichar",
+        "ansistring",
+        "bool",
+        "boolean",
+        "byte",
+        "bytebool",
+        "cardinal",
+        "char",
+        "comp",
+        "currency",
+        "double",
+        "dword",
+        "extended",
+        "int64",
+        "integer",
+        "iunknown",
+        "longbool",
+        "longint",
+        "longword",
+        "pansichar",
+        "pansistring",
+        "pbool",
+        "pboolean",
+        "pbyte",
+        "pbytearray",
+        "pcardinal",
+        "pchar",
+        "pcomp",
+        "pcurrency",
+        "pdate",
+        "pdatetime",
+        "pdouble",
+        "pdword",
+        "pextended",
+        "phandle",
+        "pint64",
+        "pinteger",
+        "plongint",
+        "plongword",
+        "pointer",
+        "ppointer",
+        "pshortint",
+        "pshortstring",
+        "psingle",
+        "psmallint",
+        "pstring",
+        "pvariant",
+        "pwidechar",
+        "pwidestring",
+        "pword",
+        "pwordarray",
+        "pwordbool",
+        "real",
+        "real48",
+        "shortint",
+        "shortstring",
+        "single",
+        "smallint",
+        "string",
+        "tclass",
+        "tdate",
+        "tdatetime",
+        "textfile",
+        "thandle",
+        "tobject",
+        "ttime",
+        "variant",
+        "widechar",
+        "widestring",
+        "word",
+        "wordbool",
     }
 
     BUILTIN_UNITS = {
-        'System': (
-            'abs', 'acquireexceptionobject', 'addr', 'ansitoutf8',
-            'append', 'arctan', 'assert', 'assigned', 'assignfile',
-            'beginthread', 'blockread', 'blockwrite', 'break', 'chdir',
-            'chr', 'close', 'closefile', 'comptocurrency', 'comptodouble',
-            'concat', 'continue', 'copy', 'cos', 'dec', 'delete',
-            'dispose', 'doubletocomp', 'endthread', 'enummodules',
-            'enumresourcemodules', 'eof', 'eoln', 'erase', 'exceptaddr',
-            'exceptobject', 'exclude', 'exit', 'exp', 'filepos', 'filesize',
-            'fillchar', 'finalize', 'findclasshinstance', 'findhinstance',
-            'findresourcehinstance', 'flush', 'frac', 'freemem',
-            'get8087cw', 'getdir', 'getlasterror', 'getmem',
-            'getmemorymanager', 'getmodulefilename', 'getvariantmanager',
-            'halt', 'hi', 'high', 'inc', 'include', 'initialize', 'insert',
-            'int', 'ioresult', 'ismemorymanagerset', 'isvariantmanagerset',
-            'length', 'ln', 'lo', 'low', 'mkdir', 'move', 'new', 'odd',
-            'olestrtostring', 'olestrtostrvar', 'ord', 'paramcount',
-            'paramstr', 'pi', 'pos', 'pred', 'ptr', 'pucs4chars', 'random',
-            'randomize', 'read', 'readln', 'reallocmem',
-            'releaseexceptionobject', 'rename', 'reset', 'rewrite', 'rmdir',
-            'round', 'runerror', 'seek', 'seekeof', 'seekeoln',
-            'set8087cw', 'setlength', 'setlinebreakstyle',
-            'setmemorymanager', 'setstring', 'settextbuf',
-            'setvariantmanager', 'sin', 'sizeof', 'slice', 'sqr', 'sqrt',
-            'str', 'stringofchar', 'stringtoolestr', 'stringtowidechar',
-            'succ', 'swap', 'trunc', 'truncate', 'typeinfo',
-            'ucs4stringtowidestring', 'unicodetoutf8', 'uniquestring',
-            'upcase', 'utf8decode', 'utf8encode', 'utf8toansi',
-            'utf8tounicode', 'val', 'vararrayredim', 'varclear',
-            'widecharlentostring', 'widecharlentostrvar',
-            'widechartostring', 'widechartostrvar',
-            'widestringtoucs4string', 'write', 'writeln'
+        "System": (
+            "abs",
+            "acquireexceptionobject",
+            "addr",
+            "ansitoutf8",
+            "append",
+            "arctan",
+            "assert",
+            "assigned",
+            "assignfile",
+            "beginthread",
+            "blockread",
+            "blockwrite",
+            "break",
+            "chdir",
+            "chr",
+            "close",
+            "closefile",
+            "comptocurrency",
+            "comptodouble",
+            "concat",
+            "continue",
+            "copy",
+            "cos",
+            "dec",
+            "delete",
+            "dispose",
+            "doubletocomp",
+            "endthread",
+            "enummodules",
+            "enumresourcemodules",
+            "eof",
+            "eoln",
+            "erase",
+            "exceptaddr",
+            "exceptobject",
+            "exclude",
+            "exit",
+            "exp",
+            "filepos",
+            "filesize",
+            "fillchar",
+            "finalize",
+            "findclasshinstance",
+            "findhinstance",
+            "findresourcehinstance",
+            "flush",
+            "frac",
+            "freemem",
+            "get8087cw",
+            "getdir",
+            "getlasterror",
+            "getmem",
+            "getmemorymanager",
+            "getmodulefilename",
+            "getvariantmanager",
+            "halt",
+            "hi",
+            "high",
+            "inc",
+            "include",
+            "initialize",
+            "insert",
+            "int",
+            "ioresult",
+            "ismemorymanagerset",
+            "isvariantmanagerset",
+            "length",
+            "ln",
+            "lo",
+            "low",
+            "mkdir",
+            "move",
+            "new",
+            "odd",
+            "olestrtostring",
+            "olestrtostrvar",
+            "ord",
+            "paramcount",
+            "paramstr",
+            "pi",
+            "pos",
+            "pred",
+            "ptr",
+            "pucs4chars",
+            "random",
+            "randomize",
+            "read",
+            "readln",
+            "reallocmem",
+            "releaseexceptionobject",
+            "rename",
+            "reset",
+            "rewrite",
+            "rmdir",
+            "round",
+            "runerror",
+            "seek",
+            "seekeof",
+            "seekeoln",
+            "set8087cw",
+            "setlength",
+            "setlinebreakstyle",
+            "setmemorymanager",
+            "setstring",
+            "settextbuf",
+            "setvariantmanager",
+            "sin",
+            "sizeof",
+            "slice",
+            "sqr",
+            "sqrt",
+            "str",
+            "stringofchar",
+            "stringtoolestr",
+            "stringtowidechar",
+            "succ",
+            "swap",
+            "trunc",
+            "truncate",
+            "typeinfo",
+            "ucs4stringtowidestring",
+            "unicodetoutf8",
+            "uniquestring",
+            "upcase",
+            "utf8decode",
+            "utf8encode",
+            "utf8toansi",
+            "utf8tounicode",
+            "val",
+            "vararrayredim",
+            "varclear",
+            "widecharlentostring",
+            "widecharlentostrvar",
+            "widechartostring",
+            "widechartostrvar",
+            "widestringtoucs4string",
+            "write",
+            "writeln",
         ),
-        'SysUtils': (
-            'abort', 'addexitproc', 'addterminateproc', 'adjustlinebreaks',
-            'allocmem', 'ansicomparefilename', 'ansicomparestr',
-            'ansicomparetext', 'ansidequotedstr', 'ansiextractquotedstr',
-            'ansilastchar', 'ansilowercase', 'ansilowercasefilename',
-            'ansipos', 'ansiquotedstr', 'ansisamestr', 'ansisametext',
-            'ansistrcomp', 'ansistricomp', 'ansistrlastchar', 'ansistrlcomp',
-            'ansistrlicomp', 'ansistrlower', 'ansistrpos', 'ansistrrscan',
-            'ansistrscan', 'ansistrupper', 'ansiuppercase',
-            'ansiuppercasefilename', 'appendstr', 'assignstr', 'beep',
-            'booltostr', 'bytetocharindex', 'bytetocharlen', 'bytetype',
-            'callterminateprocs', 'changefileext', 'charlength',
-            'chartobyteindex', 'chartobytelen', 'comparemem', 'comparestr',
-            'comparetext', 'createdir', 'createguid', 'currentyear',
-            'currtostr', 'currtostrf', 'date', 'datetimetofiledate',
-            'datetimetostr', 'datetimetostring', 'datetimetosystemtime',
-            'datetimetotimestamp', 'datetostr', 'dayofweek', 'decodedate',
-            'decodedatefully', 'decodetime', 'deletefile', 'directoryexists',
-            'diskfree', 'disksize', 'disposestr', 'encodedate', 'encodetime',
-            'exceptionerrormessage', 'excludetrailingbackslash',
-            'excludetrailingpathdelimiter', 'expandfilename',
-            'expandfilenamecase', 'expanduncfilename', 'extractfiledir',
-            'extractfiledrive', 'extractfileext', 'extractfilename',
-            'extractfilepath', 'extractrelativepath', 'extractshortpathname',
-            'fileage', 'fileclose', 'filecreate', 'filedatetodatetime',
-            'fileexists', 'filegetattr', 'filegetdate', 'fileisreadonly',
-            'fileopen', 'fileread', 'filesearch', 'fileseek', 'filesetattr',
-            'filesetdate', 'filesetreadonly', 'filewrite', 'finalizepackage',
-            'findclose', 'findcmdlineswitch', 'findfirst', 'findnext',
-            'floattocurr', 'floattodatetime', 'floattodecimal', 'floattostr',
-            'floattostrf', 'floattotext', 'floattotextfmt', 'fmtloadstr',
-            'fmtstr', 'forcedirectories', 'format', 'formatbuf', 'formatcurr',
-            'formatdatetime', 'formatfloat', 'freeandnil', 'getcurrentdir',
-            'getenvironmentvariable', 'getfileversion', 'getformatsettings',
-            'getlocaleformatsettings', 'getmodulename', 'getpackagedescription',
-            'getpackageinfo', 'gettime', 'guidtostring', 'incamonth',
-            'includetrailingbackslash', 'includetrailingpathdelimiter',
-            'incmonth', 'initializepackage', 'interlockeddecrement',
-            'interlockedexchange', 'interlockedexchangeadd',
-            'interlockedincrement', 'inttohex', 'inttostr', 'isdelimiter',
-            'isequalguid', 'isleapyear', 'ispathdelimiter', 'isvalidident',
-            'languages', 'lastdelimiter', 'loadpackage', 'loadstr',
-            'lowercase', 'msecstotimestamp', 'newstr', 'nextcharindex', 'now',
-            'outofmemoryerror', 'quotedstr', 'raiselastoserror',
-            'raiselastwin32error', 'removedir', 'renamefile', 'replacedate',
-            'replacetime', 'safeloadlibrary', 'samefilename', 'sametext',
-            'setcurrentdir', 'showexception', 'sleep', 'stralloc', 'strbufsize',
-            'strbytetype', 'strcat', 'strcharlength', 'strcomp', 'strcopy',
-            'strdispose', 'strecopy', 'strend', 'strfmt', 'stricomp',
-            'stringreplace', 'stringtoguid', 'strlcat', 'strlcomp', 'strlcopy',
-            'strlen', 'strlfmt', 'strlicomp', 'strlower', 'strmove', 'strnew',
-            'strnextchar', 'strpas', 'strpcopy', 'strplcopy', 'strpos',
-            'strrscan', 'strscan', 'strtobool', 'strtobooldef', 'strtocurr',
-            'strtocurrdef', 'strtodate', 'strtodatedef', 'strtodatetime',
-            'strtodatetimedef', 'strtofloat', 'strtofloatdef', 'strtoint',
-            'strtoint64', 'strtoint64def', 'strtointdef', 'strtotime',
-            'strtotimedef', 'strupper', 'supports', 'syserrormessage',
-            'systemtimetodatetime', 'texttofloat', 'time', 'timestamptodatetime',
-            'timestamptomsecs', 'timetostr', 'trim', 'trimleft', 'trimright',
-            'tryencodedate', 'tryencodetime', 'tryfloattocurr', 'tryfloattodatetime',
-            'trystrtobool', 'trystrtocurr', 'trystrtodate', 'trystrtodatetime',
-            'trystrtofloat', 'trystrtoint', 'trystrtoint64', 'trystrtotime',
-            'unloadpackage', 'uppercase', 'widecomparestr', 'widecomparetext',
-            'widefmtstr', 'wideformat', 'wideformatbuf', 'widelowercase',
-            'widesamestr', 'widesametext', 'wideuppercase', 'win32check',
-            'wraptext'
+        "SysUtils": (
+            "abort",
+            "addexitproc",
+            "addterminateproc",
+            "adjustlinebreaks",
+            "allocmem",
+            "ansicomparefilename",
+            "ansicomparestr",
+            "ansicomparetext",
+            "ansidequotedstr",
+            "ansiextractquotedstr",
+            "ansilastchar",
+            "ansilowercase",
+            "ansilowercasefilename",
+            "ansipos",
+            "ansiquotedstr",
+            "ansisamestr",
+            "ansisametext",
+            "ansistrcomp",
+            "ansistricomp",
+            "ansistrlastchar",
+            "ansistrlcomp",
+            "ansistrlicomp",
+            "ansistrlower",
+            "ansistrpos",
+            "ansistrrscan",
+            "ansistrscan",
+            "ansistrupper",
+            "ansiuppercase",
+            "ansiuppercasefilename",
+            "appendstr",
+            "assignstr",
+            "beep",
+            "booltostr",
+            "bytetocharindex",
+            "bytetocharlen",
+            "bytetype",
+            "callterminateprocs",
+            "changefileext",
+            "charlength",
+            "chartobyteindex",
+            "chartobytelen",
+            "comparemem",
+            "comparestr",
+            "comparetext",
+            "createdir",
+            "createguid",
+            "currentyear",
+            "currtostr",
+            "currtostrf",
+            "date",
+            "datetimetofiledate",
+            "datetimetostr",
+            "datetimetostring",
+            "datetimetosystemtime",
+            "datetimetotimestamp",
+            "datetostr",
+            "dayofweek",
+            "decodedate",
+            "decodedatefully",
+            "decodetime",
+            "deletefile",
+            "directoryexists",
+            "diskfree",
+            "disksize",
+            "disposestr",
+            "encodedate",
+            "encodetime",
+            "exceptionerrormessage",
+            "excludetrailingbackslash",
+            "excludetrailingpathdelimiter",
+            "expandfilename",
+            "expandfilenamecase",
+            "expanduncfilename",
+            "extractfiledir",
+            "extractfiledrive",
+            "extractfileext",
+            "extractfilename",
+            "extractfilepath",
+            "extractrelativepath",
+            "extractshortpathname",
+            "fileage",
+            "fileclose",
+            "filecreate",
+            "filedatetodatetime",
+            "fileexists",
+            "filegetattr",
+            "filegetdate",
+            "fileisreadonly",
+            "fileopen",
+            "fileread",
+            "filesearch",
+            "fileseek",
+            "filesetattr",
+            "filesetdate",
+            "filesetreadonly",
+            "filewrite",
+            "finalizepackage",
+            "findclose",
+            "findcmdlineswitch",
+            "findfirst",
+            "findnext",
+            "floattocurr",
+            "floattodatetime",
+            "floattodecimal",
+            "floattostr",
+            "floattostrf",
+            "floattotext",
+            "floattotextfmt",
+            "fmtloadstr",
+            "fmtstr",
+            "forcedirectories",
+            "format",
+            "formatbuf",
+            "formatcurr",
+            "formatdatetime",
+            "formatfloat",
+            "freeandnil",
+            "getcurrentdir",
+            "getenvironmentvariable",
+            "getfileversion",
+            "getformatsettings",
+            "getlocaleformatsettings",
+            "getmodulename",
+            "getpackagedescription",
+            "getpackageinfo",
+            "gettime",
+            "guidtostring",
+            "incamonth",
+            "includetrailingbackslash",
+            "includetrailingpathdelimiter",
+            "incmonth",
+            "initializepackage",
+            "interlockeddecrement",
+            "interlockedexchange",
+            "interlockedexchangeadd",
+            "interlockedincrement",
+            "inttohex",
+            "inttostr",
+            "isdelimiter",
+            "isequalguid",
+            "isleapyear",
+            "ispathdelimiter",
+            "isvalidident",
+            "languages",
+            "lastdelimiter",
+            "loadpackage",
+            "loadstr",
+            "lowercase",
+            "msecstotimestamp",
+            "newstr",
+            "nextcharindex",
+            "now",
+            "outofmemoryerror",
+            "quotedstr",
+            "raiselastoserror",
+            "raiselastwin32error",
+            "removedir",
+            "renamefile",
+            "replacedate",
+            "replacetime",
+            "safeloadlibrary",
+            "samefilename",
+            "sametext",
+            "setcurrentdir",
+            "showexception",
+            "sleep",
+            "stralloc",
+            "strbufsize",
+            "strbytetype",
+            "strcat",
+            "strcharlength",
+            "strcomp",
+            "strcopy",
+            "strdispose",
+            "strecopy",
+            "strend",
+            "strfmt",
+            "stricomp",
+            "stringreplace",
+            "stringtoguid",
+            "strlcat",
+            "strlcomp",
+            "strlcopy",
+            "strlen",
+            "strlfmt",
+            "strlicomp",
+            "strlower",
+            "strmove",
+            "strnew",
+            "strnextchar",
+            "strpas",
+            "strpcopy",
+            "strplcopy",
+            "strpos",
+            "strrscan",
+            "strscan",
+            "strtobool",
+            "strtobooldef",
+            "strtocurr",
+            "strtocurrdef",
+            "strtodate",
+            "strtodatedef",
+            "strtodatetime",
+            "strtodatetimedef",
+            "strtofloat",
+            "strtofloatdef",
+            "strtoint",
+            "strtoint64",
+            "strtoint64def",
+            "strtointdef",
+            "strtotime",
+            "strtotimedef",
+            "strupper",
+            "supports",
+            "syserrormessage",
+            "systemtimetodatetime",
+            "texttofloat",
+            "time",
+            "timestamptodatetime",
+            "timestamptomsecs",
+            "timetostr",
+            "trim",
+            "trimleft",
+            "trimright",
+            "tryencodedate",
+            "tryencodetime",
+            "tryfloattocurr",
+            "tryfloattodatetime",
+            "trystrtobool",
+            "trystrtocurr",
+            "trystrtodate",
+            "trystrtodatetime",
+            "trystrtofloat",
+            "trystrtoint",
+            "trystrtoint64",
+            "trystrtotime",
+            "unloadpackage",
+            "uppercase",
+            "widecomparestr",
+            "widecomparetext",
+            "widefmtstr",
+            "wideformat",
+            "wideformatbuf",
+            "widelowercase",
+            "widesamestr",
+            "widesametext",
+            "wideuppercase",
+            "win32check",
+            "wraptext",
         ),
-        'Classes': (
-            'activateclassgroup', 'allocatehwnd', 'bintohex', 'checksynchronize',
-            'collectionsequal', 'countgenerations', 'deallocatehwnd', 'equalrect',
-            'extractstrings', 'findclass', 'findglobalcomponent', 'getclass',
-            'groupdescendantswith', 'hextobin', 'identtoint',
-            'initinheritedcomponent', 'inttoident', 'invalidpoint',
-            'isuniqueglobalcomponentname', 'linestart', 'objectbinarytotext',
-            'objectresourcetotext', 'objecttexttobinary', 'objecttexttoresource',
-            'pointsequal', 'readcomponentres', 'readcomponentresex',
-            'readcomponentresfile', 'rect', 'registerclass', 'registerclassalias',
-            'registerclasses', 'registercomponents', 'registerintegerconsts',
-            'registernoicon', 'registernonactivex', 'smallpoint', 'startclassgroup',
-            'teststreamformat', 'unregisterclass', 'unregisterclasses',
-            'unregisterintegerconsts', 'unregistermoduleclasses',
-            'writecomponentresfile'
+        "Classes": (
+            "activateclassgroup",
+            "allocatehwnd",
+            "bintohex",
+            "checksynchronize",
+            "collectionsequal",
+            "countgenerations",
+            "deallocatehwnd",
+            "equalrect",
+            "extractstrings",
+            "findclass",
+            "findglobalcomponent",
+            "getclass",
+            "groupdescendantswith",
+            "hextobin",
+            "identtoint",
+            "initinheritedcomponent",
+            "inttoident",
+            "invalidpoint",
+            "isuniqueglobalcomponentname",
+            "linestart",
+            "objectbinarytotext",
+            "objectresourcetotext",
+            "objecttexttobinary",
+            "objecttexttoresource",
+            "pointsequal",
+            "readcomponentres",
+            "readcomponentresex",
+            "readcomponentresfile",
+            "rect",
+            "registerclass",
+            "registerclassalias",
+            "registerclasses",
+            "registercomponents",
+            "registerintegerconsts",
+            "registernoicon",
+            "registernonactivex",
+            "smallpoint",
+            "startclassgroup",
+            "teststreamformat",
+            "unregisterclass",
+            "unregisterclasses",
+            "unregisterintegerconsts",
+            "unregistermoduleclasses",
+            "writecomponentresfile",
+        ),
+        "Math": (
+            "arccos",
+            "arccosh",
+            "arccot",
+            "arccoth",
+            "arccsc",
+            "arccsch",
+            "arcsec",
+            "arcsech",
+            "arcsin",
+            "arcsinh",
+            "arctan2",
+            "arctanh",
+            "ceil",
+            "comparevalue",
+            "cosecant",
+            "cosh",
+            "cot",
+            "cotan",
+            "coth",
+            "csc",
+            "csch",
+            "cycletodeg",
+            "cycletograd",
+            "cycletorad",
+            "degtocycle",
+            "degtograd",
+            "degtorad",
+            "divmod",
+            "doubledecliningbalance",
+            "ensurerange",
+            "floor",
+            "frexp",
+            "futurevalue",
+            "getexceptionmask",
+            "getprecisionmode",
+            "getroundmode",
+            "gradtocycle",
+            "gradtodeg",
+            "gradtorad",
+            "hypot",
+            "inrange",
+            "interestpayment",
+            "interestrate",
+            "internalrateofreturn",
+            "intpower",
+            "isinfinite",
+            "isnan",
+            "iszero",
+            "ldexp",
+            "lnxp1",
+            "log10",
+            "log2",
+            "logn",
+            "max",
+            "maxintvalue",
+            "maxvalue",
+            "mean",
+            "meanandstddev",
+            "min",
+            "minintvalue",
+            "minvalue",
+            "momentskewkurtosis",
+            "netpresentvalue",
+            "norm",
+            "numberofperiods",
+            "payment",
+            "periodpayment",
+            "poly",
+            "popnstddev",
+            "popnvariance",
+            "power",
+            "presentvalue",
+            "radtocycle",
+            "radtodeg",
+            "radtograd",
+            "randg",
+            "randomrange",
+            "roundto",
+            "samevalue",
+            "sec",
+            "secant",
+            "sech",
+            "setexceptionmask",
+            "setprecisionmode",
+            "setroundmode",
+            "sign",
+            "simpleroundto",
+            "sincos",
+            "sinh",
+            "slndepreciation",
+            "stddev",
+            "sum",
+            "sumint",
+            "sumofsquares",
+            "sumsandsquares",
+            "syddepreciation",
+            "tan",
+            "tanh",
+            "totalvariance",
+            "variance",
         ),
-        'Math': (
-            'arccos', 'arccosh', 'arccot', 'arccoth', 'arccsc', 'arccsch', 'arcsec',
-            'arcsech', 'arcsin', 'arcsinh', 'arctan2', 'arctanh', 'ceil',
-            'comparevalue', 'cosecant', 'cosh', 'cot', 'cotan', 'coth', 'csc',
-            'csch', 'cycletodeg', 'cycletograd', 'cycletorad', 'degtocycle',
-            'degtograd', 'degtorad', 'divmod', 'doubledecliningbalance',
-            'ensurerange', 'floor', 'frexp', 'futurevalue', 'getexceptionmask',
-            'getprecisionmode', 'getroundmode', 'gradtocycle', 'gradtodeg',
-            'gradtorad', 'hypot', 'inrange', 'interestpayment', 'interestrate',
-            'internalrateofreturn', 'intpower', 'isinfinite', 'isnan', 'iszero',
-            'ldexp', 'lnxp1', 'log10', 'log2', 'logn', 'max', 'maxintvalue',
-            'maxvalue', 'mean', 'meanandstddev', 'min', 'minintvalue', 'minvalue',
-            'momentskewkurtosis', 'netpresentvalue', 'norm', 'numberofperiods',
-            'payment', 'periodpayment', 'poly', 'popnstddev', 'popnvariance',
-            'power', 'presentvalue', 'radtocycle', 'radtodeg', 'radtograd',
-            'randg', 'randomrange', 'roundto', 'samevalue', 'sec', 'secant',
-            'sech', 'setexceptionmask', 'setprecisionmode', 'setroundmode',
-            'sign', 'simpleroundto', 'sincos', 'sinh', 'slndepreciation', 'stddev',
-            'sum', 'sumint', 'sumofsquares', 'sumsandsquares', 'syddepreciation',
-            'tan', 'tanh', 'totalvariance', 'variance'
-        )
     }
 
     ASM_REGISTERS = {
-        'ah', 'al', 'ax', 'bh', 'bl', 'bp', 'bx', 'ch', 'cl', 'cr0',
-        'cr1', 'cr2', 'cr3', 'cr4', 'cs', 'cx', 'dh', 'di', 'dl', 'dr0',
-        'dr1', 'dr2', 'dr3', 'dr4', 'dr5', 'dr6', 'dr7', 'ds', 'dx',
-        'eax', 'ebp', 'ebx', 'ecx', 'edi', 'edx', 'es', 'esi', 'esp',
-        'fs', 'gs', 'mm0', 'mm1', 'mm2', 'mm3', 'mm4', 'mm5', 'mm6',
-        'mm7', 'si', 'sp', 'ss', 'st0', 'st1', 'st2', 'st3', 'st4', 'st5',
-        'st6', 'st7', 'xmm0', 'xmm1', 'xmm2', 'xmm3', 'xmm4', 'xmm5',
-        'xmm6', 'xmm7'
+        "ah",
+        "al",
+        "ax",
+        "bh",
+        "bl",
+        "bp",
+        "bx",
+        "ch",
+        "cl",
+        "cr0",
+        "cr1",
+        "cr2",
+        "cr3",
+        "cr4",
+        "cs",
+        "cx",
+        "dh",
+        "di",
+        "dl",
+        "dr0",
+        "dr1",
+        "dr2",
+        "dr3",
+        "dr4",
+        "dr5",
+        "dr6",
+        "dr7",
+        "ds",
+        "dx",
+        "eax",
+        "ebp",
+        "ebx",
+        "ecx",
+        "edi",
+        "edx",
+        "es",
+        "esi",
+        "esp",
+        "fs",
+        "gs",
+        "mm0",
+        "mm1",
+        "mm2",
+        "mm3",
+        "mm4",
+        "mm5",
+        "mm6",
+        "mm7",
+        "si",
+        "sp",
+        "ss",
+        "st0",
+        "st1",
+        "st2",
+        "st3",
+        "st4",
+        "st5",
+        "st6",
+        "st7",
+        "xmm0",
+        "xmm1",
+        "xmm2",
+        "xmm3",
+        "xmm4",
+        "xmm5",
+        "xmm6",
+        "xmm7",
     }
 
     ASM_INSTRUCTIONS = {
-        'aaa', 'aad', 'aam', 'aas', 'adc', 'add', 'and', 'arpl', 'bound',
-        'bsf', 'bsr', 'bswap', 'bt', 'btc', 'btr', 'bts', 'call', 'cbw',
-        'cdq', 'clc', 'cld', 'cli', 'clts', 'cmc', 'cmova', 'cmovae',
-        'cmovb', 'cmovbe', 'cmovc', 'cmovcxz', 'cmove', 'cmovg',
-        'cmovge', 'cmovl', 'cmovle', 'cmovna', 'cmovnae', 'cmovnb',
-        'cmovnbe', 'cmovnc', 'cmovne', 'cmovng', 'cmovnge', 'cmovnl',
-        'cmovnle', 'cmovno', 'cmovnp', 'cmovns', 'cmovnz', 'cmovo',
-        'cmovp', 'cmovpe', 'cmovpo', 'cmovs', 'cmovz', 'cmp', 'cmpsb',
-        'cmpsd', 'cmpsw', 'cmpxchg', 'cmpxchg486', 'cmpxchg8b', 'cpuid',
-        'cwd', 'cwde', 'daa', 'das', 'dec', 'div', 'emms', 'enter', 'hlt',
-        'ibts', 'icebp', 'idiv', 'imul', 'in', 'inc', 'insb', 'insd',
-        'insw', 'int', 'int01', 'int03', 'int1', 'int3', 'into', 'invd',
-        'invlpg', 'iret', 'iretd', 'iretw', 'ja', 'jae', 'jb', 'jbe',
-        'jc', 'jcxz', 'jcxz', 'je', 'jecxz', 'jg', 'jge', 'jl', 'jle',
-        'jmp', 'jna', 'jnae', 'jnb', 'jnbe', 'jnc', 'jne', 'jng', 'jnge',
-        'jnl', 'jnle', 'jno', 'jnp', 'jns', 'jnz', 'jo', 'jp', 'jpe',
-        'jpo', 'js', 'jz', 'lahf', 'lar', 'lcall', 'lds', 'lea', 'leave',
-        'les', 'lfs', 'lgdt', 'lgs', 'lidt', 'ljmp', 'lldt', 'lmsw',
-        'loadall', 'loadall286', 'lock', 'lodsb', 'lodsd', 'lodsw',
-        'loop', 'loope', 'loopne', 'loopnz', 'loopz', 'lsl', 'lss', 'ltr',
-        'mov', 'movd', 'movq', 'movsb', 'movsd', 'movsw', 'movsx',
-        'movzx', 'mul', 'neg', 'nop', 'not', 'or', 'out', 'outsb', 'outsd',
-        'outsw', 'pop', 'popa', 'popad', 'popaw', 'popf', 'popfd', 'popfw',
-        'push', 'pusha', 'pushad', 'pushaw', 'pushf', 'pushfd', 'pushfw',
-        'rcl', 'rcr', 'rdmsr', 'rdpmc', 'rdshr', 'rdtsc', 'rep', 'repe',
-        'repne', 'repnz', 'repz', 'ret', 'retf', 'retn', 'rol', 'ror',
-        'rsdc', 'rsldt', 'rsm', 'sahf', 'sal', 'salc', 'sar', 'sbb',
-        'scasb', 'scasd', 'scasw', 'seta', 'setae', 'setb', 'setbe',
-        'setc', 'setcxz', 'sete', 'setg', 'setge', 'setl', 'setle',
-        'setna', 'setnae', 'setnb', 'setnbe', 'setnc', 'setne', 'setng',
-        'setnge', 'setnl', 'setnle', 'setno', 'setnp', 'setns', 'setnz',
-        'seto', 'setp', 'setpe', 'setpo', 'sets', 'setz', 'sgdt', 'shl',
-        'shld', 'shr', 'shrd', 'sidt', 'sldt', 'smi', 'smint', 'smintold',
-        'smsw', 'stc', 'std', 'sti', 'stosb', 'stosd', 'stosw', 'str',
-        'sub', 'svdc', 'svldt', 'svts', 'syscall', 'sysenter', 'sysexit',
-        'sysret', 'test', 'ud1', 'ud2', 'umov', 'verr', 'verw', 'wait',
-        'wbinvd', 'wrmsr', 'wrshr', 'xadd', 'xbts', 'xchg', 'xlat',
-        'xlatb', 'xor'
+        "aaa",
+        "aad",
+        "aam",
+        "aas",
+        "adc",
+        "add",
+        "and",
+        "arpl",
+        "bound",
+        "bsf",
+        "bsr",
+        "bswap",
+        "bt",
+        "btc",
+        "btr",
+        "bts",
+        "call",
+        "cbw",
+        "cdq",
+        "clc",
+        "cld",
+        "cli",
+        "clts",
+        "cmc",
+        "cmova",
+        "cmovae",
+        "cmovb",
+        "cmovbe",
+        "cmovc",
+        "cmovcxz",
+        "cmove",
+        "cmovg",
+        "cmovge",
+        "cmovl",
+        "cmovle",
+        "cmovna",
+        "cmovnae",
+        "cmovnb",
+        "cmovnbe",
+        "cmovnc",
+        "cmovne",
+        "cmovng",
+        "cmovnge",
+        "cmovnl",
+        "cmovnle",
+        "cmovno",
+        "cmovnp",
+        "cmovns",
+        "cmovnz",
+        "cmovo",
+        "cmovp",
+        "cmovpe",
+        "cmovpo",
+        "cmovs",
+        "cmovz",
+        "cmp",
+        "cmpsb",
+        "cmpsd",
+        "cmpsw",
+        "cmpxchg",
+        "cmpxchg486",
+        "cmpxchg8b",
+        "cpuid",
+        "cwd",
+        "cwde",
+        "daa",
+        "das",
+        "dec",
+        "div",
+        "emms",
+        "enter",
+        "hlt",
+        "ibts",
+        "icebp",
+        "idiv",
+        "imul",
+        "in",
+        "inc",
+        "insb",
+        "insd",
+        "insw",
+        "int",
+        "int01",
+        "int03",
+        "int1",
+        "int3",
+        "into",
+        "invd",
+        "invlpg",
+        "iret",
+        "iretd",
+        "iretw",
+        "ja",
+        "jae",
+        "jb",
+        "jbe",
+        "jc",
+        "jcxz",
+        "jcxz",
+        "je",
+        "jecxz",
+        "jg",
+        "jge",
+        "jl",
+        "jle",
+        "jmp",
+        "jna",
+        "jnae",
+        "jnb",
+        "jnbe",
+        "jnc",
+        "jne",
+        "jng",
+        "jnge",
+        "jnl",
+        "jnle",
+        "jno",
+        "jnp",
+        "jns",
+        "jnz",
+        "jo",
+        "jp",
+        "jpe",
+        "jpo",
+        "js",
+        "jz",
+        "lahf",
+        "lar",
+        "lcall",
+        "lds",
+        "lea",
+        "leave",
+        "les",
+        "lfs",
+        "lgdt",
+        "lgs",
+        "lidt",
+        "ljmp",
+        "lldt",
+        "lmsw",
+        "loadall",
+        "loadall286",
+        "lock",
+        "lodsb",
+        "lodsd",
+        "lodsw",
+        "loop",
+        "loope",
+        "loopne",
+        "loopnz",
+        "loopz",
+        "lsl",
+        "lss",
+        "ltr",
+        "mov",
+        "movd",
+        "movq",
+        "movsb",
+        "movsd",
+        "movsw",
+        "movsx",
+        "movzx",
+        "mul",
+        "neg",
+        "nop",
+        "not",
+        "or",
+        "out",
+        "outsb",
+        "outsd",
+        "outsw",
+        "pop",
+        "popa",
+        "popad",
+        "popaw",
+        "popf",
+        "popfd",
+        "popfw",
+        "push",
+        "pusha",
+        "pushad",
+        "pushaw",
+        "pushf",
+        "pushfd",
+        "pushfw",
+        "rcl",
+        "rcr",
+        "rdmsr",
+        "rdpmc",
+        "rdshr",
+        "rdtsc",
+        "rep",
+        "repe",
+        "repne",
+        "repnz",
+        "repz",
+        "ret",
+        "retf",
+        "retn",
+        "rol",
+        "ror",
+        "rsdc",
+        "rsldt",
+        "rsm",
+        "sahf",
+        "sal",
+        "salc",
+        "sar",
+        "sbb",
+        "scasb",
+        "scasd",
+        "scasw",
+        "seta",
+        "setae",
+        "setb",
+        "setbe",
+        "setc",
+        "setcxz",
+        "sete",
+        "setg",
+        "setge",
+        "setl",
+        "setle",
+        "setna",
+        "setnae",
+        "setnb",
+        "setnbe",
+        "setnc",
+        "setne",
+        "setng",
+        "setnge",
+        "setnl",
+        "setnle",
+        "setno",
+        "setnp",
+        "setns",
+        "setnz",
+        "seto",
+        "setp",
+        "setpe",
+        "setpo",
+        "sets",
+        "setz",
+        "sgdt",
+        "shl",
+        "shld",
+        "shr",
+        "shrd",
+        "sidt",
+        "sldt",
+        "smi",
+        "smint",
+        "smintold",
+        "smsw",
+        "stc",
+        "std",
+        "sti",
+        "stosb",
+        "stosd",
+        "stosw",
+        "str",
+        "sub",
+        "svdc",
+        "svldt",
+        "svts",
+        "syscall",
+        "sysenter",
+        "sysexit",
+        "sysret",
+        "test",
+        "ud1",
+        "ud2",
+        "umov",
+        "verr",
+        "verw",
+        "wait",
+        "wbinvd",
+        "wrmsr",
+        "wrshr",
+        "xadd",
+        "xbts",
+        "xchg",
+        "xlat",
+        "xlatb",
+        "xor",
     }
 
     PORTUGOL_KEYWORDS = (
-        'aleatorio',
-        'algoritmo',
-        'arquivo',
-        'ate',
-        'caso',
-        'cronometro',
-        'debug',
-        'e',
-        'eco',
-        'enquanto',
-        'entao',
-        'escolha',
-        'escreva',
-        'escreval',
-        'faca',
-        'falso',
-        'fimalgoritmo',
-        'fimenquanto',
-        'fimescolha',
-        'fimfuncao',
-        'fimpara',
-        'fimprocedimento',
-        'fimrepita',
-        'fimse',
-        'funcao',
-        'inicio',
-        'int',
-        'interrompa',
-        'leia',
-        'limpatela',
-        'mod',
-        'nao',
-        'ou',
-        'outrocaso',
-        'para',
-        'passo',
-        'pausa',
-        'procedimento',
-        'repita',
-        'retorne',
-        'se',
-        'senao',
-        'timer',
-        'var',
-        'vetor',
-        'verdadeiro',
-        'xou',
-        'div',
-        'mod',
-        'abs',
-        'arccos',
-        'arcsen',
-        'arctan',
-        'cos',
-        'cotan',
-        'Exp',
-        'grauprad',
-        'int',
-        'log',
-        'logn',
-        'pi',
-        'quad',
-        'radpgrau',
-        'raizq',
-        'rand',
-        'randi',
-        'sen',
-        'Tan',
-        'asc',
-        'carac',
-        'caracpnum',
-        'compr',
-        'copia',
-        'maiusc',
-        'minusc',
-        'numpcarac',
-        'pos',
+        "aleatorio",
+        "algoritmo",
+        "arquivo",
+        "ate",
+        "caso",
+        "cronometro",
+        "debug",
+        "e",
+        "eco",
+        "enquanto",
+        "entao",
+        "escolha",
+        "escreva",
+        "escreval",
+        "faca",
+        "falso",
+        "fimalgoritmo",
+        "fimenquanto",
+        "fimescolha",
+        "fimfuncao",
+        "fimpara",
+        "fimprocedimento",
+        "fimrepita",
+        "fimse",
+        "funcao",
+        "inicio",
+        "int",
+        "interrompa",
+        "leia",
+        "limpatela",
+        "mod",
+        "nao",
+        "ou",
+        "outrocaso",
+        "para",
+        "passo",
+        "pausa",
+        "procedimento",
+        "repita",
+        "retorne",
+        "se",
+        "senao",
+        "timer",
+        "var",
+        "vetor",
+        "verdadeiro",
+        "xou",
+        "div",
+        "mod",
+        "abs",
+        "arccos",
+        "arcsen",
+        "arctan",
+        "cos",
+        "cotan",
+        "Exp",
+        "grauprad",
+        "int",
+        "log",
+        "logn",
+        "pi",
+        "quad",
+        "radpgrau",
+        "raizq",
+        "rand",
+        "randi",
+        "sen",
+        "Tan",
+        "asc",
+        "carac",
+        "caracpnum",
+        "compr",
+        "copia",
+        "maiusc",
+        "minusc",
+        "numpcarac",
+        "pos",
     )
 
-    PORTUGOL_BUILTIN_TYPES = {
-        'inteiro', 'real', 'caractere', 'logico'
-    }
+    PORTUGOL_BUILTIN_TYPES = {"inteiro", "real", "caractere", "logico"}
 
     def __init__(self, **options):
         Lexer.__init__(self, **options)
         self.keywords = set()
         self.builtins = set()
-        if get_bool_opt(options, 'portugol', False):
+        if get_bool_opt(options, "portugol", False):
             self.keywords.update(self.PORTUGOL_KEYWORDS)
             self.builtins.update(self.PORTUGOL_BUILTIN_TYPES)
             self.is_portugol = True
         else:
             self.is_portugol = False
 
-            if get_bool_opt(options, 'turbopascal', True):
+            if get_bool_opt(options, "turbopascal", True):
                 self.keywords.update(self.TURBO_PASCAL_KEYWORDS)
-            if get_bool_opt(options, 'delphi', True):
+            if get_bool_opt(options, "delphi", True):
                 self.keywords.update(self.DELPHI_KEYWORDS)
-            if get_bool_opt(options, 'freepascal', True):
+            if get_bool_opt(options, "freepascal", True):
                 self.keywords.update(self.FREE_PASCAL_KEYWORDS)
-            for unit in get_list_opt(options, 'units', list(self.BUILTIN_UNITS)):
+            for unit in get_list_opt(options, "units", list(self.BUILTIN_UNITS)):
                 self.builtins.update(self.BUILTIN_UNITS[unit])
 
     def get_tokens_unprocessed(self, text):
         scanner = Scanner(text, re.DOTALL | re.MULTILINE | re.IGNORECASE)
-        stack = ['initial']
+        stack = ["initial"]
         in_function_block = False
         in_property_block = False
         was_dot = False
@@ -434,24 +1310,26 @@ class DelphiLexer(Lexer):
         while not scanner.eos:
             token = Error
 
-            if stack[-1] == 'initial':
-                if scanner.scan(r'\s+'):
+            if stack[-1] == "initial":
+                if scanner.scan(r"\s+"):
                     token = Whitespace
-                elif not self.is_portugol and scanner.scan(r'\{.*?\}|\(\*.*?\*\)'):
-                    if scanner.match.startswith('$'):
+                elif not self.is_portugol and scanner.scan(r"\{.*?\}|\(\*.*?\*\)"):
+                    if scanner.match.startswith("$"):
                         token = Comment.Preproc
                     else:
                         token = Comment.Multiline
-                elif scanner.scan(r'//.*?$'):
+                elif scanner.scan(r"//.*?$"):
                     token = Comment.Single
-                elif self.is_portugol and scanner.scan(r'(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,'):
+                elif self.is_portugol and scanner.scan(
+                    r"(<\-)|(>=)|(<=)|%|<|>|-|\+|\*|\=|(<>)|\/|\.|:|,"
+                ):
                     token = Operator
-                elif not self.is_portugol and scanner.scan(r'[-+*\/=<>:;,.@\^]'):
+                elif not self.is_portugol and scanner.scan(r"[-+*\/=<>:;,.@\^]"):
                     token = Operator
                     # stop label highlighting on next ";"
-                    if collect_labels and scanner.match == ';':
+                    if collect_labels and scanner.match == ";":
                         collect_labels = False
-                elif scanner.scan(r'[\(\)\[\]]+'):
+                elif scanner.scan(r"[\(\)\[\]]+"):
                     token = Punctuation
                     # abort function naming ``foo = Function(...)``
                     next_token_is_function = False
@@ -459,17 +1337,17 @@ class DelphiLexer(Lexer):
                     # braces because ootherwise it's impossible to
                     # determine the end of the modifier context
                     if in_function_block or in_property_block:
-                        if scanner.match == '(':
+                        if scanner.match == "(":
                             brace_balance[0] += 1
-                        elif scanner.match == ')':
+                        elif scanner.match == ")":
                             brace_balance[0] -= 1
-                        elif scanner.match == '[':
+                        elif scanner.match == "[":
                             brace_balance[1] += 1
-                        elif scanner.match == ']':
+                        elif scanner.match == "]":
                             brace_balance[1] -= 1
-                elif scanner.scan(r'[A-Za-z_][A-Za-z_0-9]*'):
+                elif scanner.scan(r"[A-Za-z_][A-Za-z_0-9]*"):
                     lowercase_name = scanner.match.lower()
-                    if lowercase_name == 'result':
+                    if lowercase_name == "result":
                         token = Name.Builtin.Pseudo
                     elif lowercase_name in self.keywords:
                         token = Keyword
@@ -477,40 +1355,52 @@ class DelphiLexer(Lexer):
                         # block ending keyword occurs (and the parenthesis
                         # is balanced) we end the current block context
                         if self.is_portugol:
-                            if lowercase_name in ('funcao', 'procedimento'):
+                            if lowercase_name in ("funcao", "procedimento"):
                                 in_function_block = True
                                 next_token_is_function = True
                         else:
-                            if (in_function_block or in_property_block) and \
-                                    lowercase_name in self.BLOCK_KEYWORDS and \
-                                    brace_balance[0] <= 0 and \
-                                    brace_balance[1] <= 0:
+                            if (
+                                (in_function_block or in_property_block)
+                                and lowercase_name in self.BLOCK_KEYWORDS
+                                and brace_balance[0] <= 0
+                                and brace_balance[1] <= 0
+                            ):
                                 in_function_block = False
                                 in_property_block = False
                                 brace_balance = [0, 0]
                                 block_labels = set()
-                            if lowercase_name in ('label', 'goto'):
+                            if lowercase_name in ("label", "goto"):
                                 collect_labels = True
-                            elif lowercase_name == 'asm':
-                                stack.append('asm')
-                            elif lowercase_name == 'property':
+                            elif lowercase_name == "asm":
+                                stack.append("asm")
+                            elif lowercase_name == "property":
                                 in_property_block = True
                                 next_token_is_property = True
-                            elif lowercase_name in ('procedure', 'operator',
-                                                    'function', 'constructor',
-                                                    'destructor'):
+                            elif lowercase_name in (
+                                "procedure",
+                                "operator",
+                                "function",
+                                "constructor",
+                                "destructor",
+                            ):
                                 in_function_block = True
                                 next_token_is_function = True
                     # we are in a function block and the current name
                     # is in the set of registered modifiers. highlight
                     # it as pseudo keyword
-                    elif not self.is_portugol and in_function_block and \
-                            lowercase_name in self.FUNCTION_MODIFIERS:
+                    elif (
+                        not self.is_portugol
+                        and in_function_block
+                        and lowercase_name in self.FUNCTION_MODIFIERS
+                    ):
                         token = Keyword.Pseudo
                     # if we are in a property highlight some more
                     # modifiers
-                    elif not self.is_portugol and in_property_block and \
-                            lowercase_name in ('read', 'write'):
+                    elif (
+                        not self.is_portugol
+                        and in_property_block
+                        and lowercase_name in ("read", "write")
+                    ):
                         token = Keyword.Pseudo
                         next_token_is_function = True
                     # if the last iteration set next_token_is_function
@@ -520,7 +1410,7 @@ class DelphiLexer(Lexer):
                         # Look if the next token is a dot. If yes it's
                         # not a function, but a class name and the
                         # part after the dot a function name
-                        if not self.is_portugol and scanner.test(r'\s*\.\s*'):
+                        if not self.is_portugol and scanner.test(r"\s*\.\s*"):
                             token = Name.Class
                         # it's not a dot, our job is done
                         else:
@@ -542,7 +1432,10 @@ class DelphiLexer(Lexer):
                     # name is in list of known labels
                     elif lowercase_name in block_labels:
                         token = Name.Label
-                    elif self.is_portugol and lowercase_name in self.PORTUGOL_BUILTIN_TYPES:
+                    elif (
+                        self.is_portugol
+                        and lowercase_name in self.PORTUGOL_BUILTIN_TYPES
+                    ):
                         token = Keyword.Type
                     elif not self.is_portugol and lowercase_name in self.BUILTIN_TYPES:
                         token = Keyword.Type
@@ -550,23 +1443,27 @@ class DelphiLexer(Lexer):
                         token = Keyword.Pseudo
                     # builtins are just builtins if the token
                     # before isn't a dot
-                    elif not self.is_portugol and not was_dot and lowercase_name in self.builtins:
+                    elif (
+                        not self.is_portugol
+                        and not was_dot
+                        and lowercase_name in self.builtins
+                    ):
                         token = Name.Builtin
                     else:
                         token = Name
                 elif self.is_portugol and scanner.scan(r"\""):
                     token = String
-                    stack.append('string')
+                    stack.append("string")
                 elif not self.is_portugol and scanner.scan(r"'"):
                     token = String
-                    stack.append('string')
-                elif not self.is_portugol and scanner.scan(r'\#(\d+|\$[0-9A-Fa-f]+)'):
+                    stack.append("string")
+                elif not self.is_portugol and scanner.scan(r"\#(\d+|\$[0-9A-Fa-f]+)"):
                     token = String.Char
-                elif not self.is_portugol and scanner.scan(r'\$[0-9A-Fa-f]+'):
+                elif not self.is_portugol and scanner.scan(r"\$[0-9A-Fa-f]+"):
                     token = Number.Hex
-                elif scanner.scan(r'\d+(?![eE]|\.[^.])'):
+                elif scanner.scan(r"\d+(?![eE]|\.[^.])"):
                     token = Number.Integer
-                elif scanner.scan(r'\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)'):
+                elif scanner.scan(r"\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)"):
                     token = Number.Float
                 else:
                     # if the stack depth is deeper than once, pop
@@ -574,7 +1471,7 @@ class DelphiLexer(Lexer):
                         stack.pop()
                     scanner.get_char()
 
-            elif stack[-1] == 'string':
+            elif stack[-1] == "string":
                 if self.is_portugol:
                     if scanner.scan(r"''"):
                         token = String.Escape
@@ -597,25 +1494,25 @@ class DelphiLexer(Lexer):
                     else:
                         scanner.get_char()
                         stack.pop()
-            elif not self.is_portugol and stack[-1] == 'asm':
-                if scanner.scan(r'\s+'):
+            elif not self.is_portugol and stack[-1] == "asm":
+                if scanner.scan(r"\s+"):
                     token = Whitespace
-                elif scanner.scan(r'end'):
+                elif scanner.scan(r"end"):
                     token = Keyword
                     stack.pop()
-                elif scanner.scan(r'\{.*?\}|\(\*.*?\*\)'):
-                    if scanner.match.startswith('$'):
+                elif scanner.scan(r"\{.*?\}|\(\*.*?\*\)"):
+                    if scanner.match.startswith("$"):
                         token = Comment.Preproc
                     else:
                         token = Comment.Multiline
-                elif scanner.scan(r'//.*?$'):
+                elif scanner.scan(r"//.*?$"):
                     token = Comment.Single
                 elif scanner.scan(r"'"):
                     token = String
-                    stack.append('string')
-                elif scanner.scan(r'@@[A-Za-z_][A-Za-z_0-9]*'):
+                    stack.append("string")
+                elif scanner.scan(r"@@[A-Za-z_][A-Za-z_0-9]*"):
                     token = Name.Label
-                elif scanner.scan(r'[A-Za-z_][A-Za-z_0-9]*'):
+                elif scanner.scan(r"[A-Za-z_][A-Za-z_0-9]*"):
                     lowercase_name = scanner.match.lower()
                     if lowercase_name in self.ASM_INSTRUCTIONS:
                         token = Keyword
@@ -623,15 +1520,15 @@ class DelphiLexer(Lexer):
                         token = Name.Builtin
                     else:
                         token = Name
-                elif scanner.scan(r'[-+*\/=<>:;,.@\^]+'):
+                elif scanner.scan(r"[-+*\/=<>:;,.@\^]+"):
                     token = Operator
-                elif scanner.scan(r'[\(\)\[\]]+'):
+                elif scanner.scan(r"[\(\)\[\]]+"):
                     token = Punctuation
-                elif scanner.scan(r'\$[0-9A-Fa-f]+'):
+                elif scanner.scan(r"\$[0-9A-Fa-f]+"):
                     token = Number.Hex
-                elif scanner.scan(r'\d+(?![eE]|\.[^.])'):
+                elif scanner.scan(r"\d+(?![eE]|\.[^.])"):
                     token = Number.Integer
-                elif scanner.scan(r'\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)'):
+                elif scanner.scan(r"\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)"):
                     token = Number.Float
                 else:
                     scanner.get_char()
@@ -639,6 +1536,6 @@ class DelphiLexer(Lexer):
 
             # save the dot!!!11
             if not self.is_portugol and scanner.match.strip():
-                was_dot = scanner.match == '.'
+                was_dot = scanner.match == "."
 
-            yield scanner.start_pos, token, scanner.match or ''
+            yield scanner.start_pos, token, scanner.match or ""
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pawn.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pawn.py
index 99d9c96..6a7e0e3 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pawn.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pawn.py
@@ -1,122 +1,194 @@
 """
-    pygments.lexers.pawn
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.pawn
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Pawn languages.
+Lexers for the Pawn languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 from pygments.util import get_bool_opt
 
-__all__ = ['SourcePawnLexer', 'PawnLexer']
+__all__ = ["SourcePawnLexer", "PawnLexer"]
 
 
 class SourcePawnLexer(RegexLexer):
     """
     For SourcePawn source code with preprocessor directives.
     """
-    name = 'SourcePawn'
-    aliases = ['sp']
-    filenames = ['*.sp']
-    mimetypes = ['text/x-sourcepawn']
-    url = 'https://github.com/alliedmodders/sourcepawn'
-    version_added = '1.6'
+
+    name = "SourcePawn"
+    aliases = ["sp"]
+    filenames = ["*.sp"]
+    mimetypes = ["text/x-sourcepawn"]
+    url = "https://github.com/alliedmodders/sourcepawn"
+    version_added = "1.6"
 
     #: optional Comment or Whitespace
-    _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'
+    _ws = r"(?:\s|//.*?\n|/\*.*?\*/)+"
     #: only one /* */ style comment
-    _ws1 = r'\s*(?:/[*].*?[*]/\s*)*'
+    _ws1 = r"\s*(?:/[*].*?[*]/\s*)*"
 
     tokens = {
-        'root': [
+        "root": [
             # preprocessor directives: without whitespace
-            (r'^#if\s+0', Comment.Preproc, 'if0'),
-            ('^#', Comment.Preproc, 'macro'),
+            (r"^#if\s+0", Comment.Preproc, "if0"),
+            ("^#", Comment.Preproc, "macro"),
             # or with whitespace
-            ('^' + _ws1 + r'#if\s+0', Comment.Preproc, 'if0'),
-            ('^' + _ws1 + '#', Comment.Preproc, 'macro'),
-            (r'\n', Text),
-            (r'\s+', Text),
-            (r'\\\n', Text),  # line continuation
-            (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
-            (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
-            (r'[{}]', Punctuation),
-            (r'L?"', String, 'string'),
+            ("^" + _ws1 + r"#if\s+0", Comment.Preproc, "if0"),
+            ("^" + _ws1 + "#", Comment.Preproc, "macro"),
+            (r"\n", Text),
+            (r"\s+", Text),
+            (r"\\\n", Text),  # line continuation
+            (r"/(\\\n)?/(\n|(.|\n)*?[^\\]\n)", Comment.Single),
+            (r"/(\\\n)?\*(.|\n)*?\*(\\\n)?/", Comment.Multiline),
+            (r"[{}]", Punctuation),
+            (r'L?"', String, "string"),
             (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
-            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
-            (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
-            (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
-            (r'0[0-7]+[LlUu]*', Number.Oct),
-            (r'\d+[LlUu]*', Number.Integer),
-            (r'[~!%^&*+=|?:<>/-]', Operator),
-            (r'[()\[\],.;]', Punctuation),
-            (r'(case|const|continue|native|'
-             r'default|else|enum|for|if|new|operator|'
-             r'public|return|sizeof|static|decl|struct|switch)\b', Keyword),
-            (r'(bool|Float)\b', Keyword.Type),
-            (r'(true|false)\b', Keyword.Constant),
-            (r'[a-zA-Z_]\w*', Name),
+            (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*", Number.Float),
+            (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float),
+            (r"0x[0-9a-fA-F]+[LlUu]*", Number.Hex),
+            (r"0[0-7]+[LlUu]*", Number.Oct),
+            (r"\d+[LlUu]*", Number.Integer),
+            (r"[~!%^&*+=|?:<>/-]", Operator),
+            (r"[()\[\],.;]", Punctuation),
+            (
+                r"(case|const|continue|native|"
+                r"default|else|enum|for|if|new|operator|"
+                r"public|return|sizeof|static|decl|struct|switch)\b",
+                Keyword,
+            ),
+            (r"(bool|Float)\b", Keyword.Type),
+            (r"(true|false)\b", Keyword.Constant),
+            (r"[a-zA-Z_]\w*", Name),
         ],
-        'string': [
-            (r'"', String, '#pop'),
+        "string": [
+            (r'"', String, "#pop"),
             (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
             (r'[^\\"\n]+', String),  # all other characters
-            (r'\\\n', String),       # line continuation
-            (r'\\', String),         # stray backslash
+            (r"\\\n", String),  # line continuation
+            (r"\\", String),  # stray backslash
         ],
-        'macro': [
-            (r'[^/\n]+', Comment.Preproc),
-            (r'/\*(.|\n)*?\*/', Comment.Multiline),
-            (r'//.*?\n', Comment.Single, '#pop'),
-            (r'/', Comment.Preproc),
-            (r'(?<=\\)\n', Comment.Preproc),
-            (r'\n', Comment.Preproc, '#pop'),
+        "macro": [
+            (r"[^/\n]+", Comment.Preproc),
+            (r"/\*(.|\n)*?\*/", Comment.Multiline),
+            (r"//.*?\n", Comment.Single, "#pop"),
+            (r"/", Comment.Preproc),
+            (r"(?<=\\)\n", Comment.Preproc),
+            (r"\n", Comment.Preproc, "#pop"),
+        ],
+        "if0": [
+            (r"^\s*#if.*?(?/-]', Operator),
-            (r'[()\[\],.;]', Punctuation),
-            (r'(switch|case|default|const|new|static|char|continue|break|'
-             r'if|else|for|while|do|operator|enum|'
-             r'public|return|sizeof|tagof|state|goto)\b', Keyword),
-            (r'(bool|Float)\b', Keyword.Type),
-            (r'(true|false)\b', Keyword.Constant),
-            (r'[a-zA-Z_]\w*', Name),
+            (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*", Number.Float),
+            (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float),
+            (r"0x[0-9a-fA-F]+[LlUu]*", Number.Hex),
+            (r"0[0-7]+[LlUu]*", Number.Oct),
+            (r"\d+[LlUu]*", Number.Integer),
+            (r"[~!%^&*+=|?:<>/-]", Operator),
+            (r"[()\[\],.;]", Punctuation),
+            (
+                r"(switch|case|default|const|new|static|char|continue|break|"
+                r"if|else|for|while|do|operator|enum|"
+                r"public|return|sizeof|tagof|state|goto)\b",
+                Keyword,
+            ),
+            (r"(bool|Float)\b", Keyword.Type),
+            (r"(true|false)\b", Keyword.Constant),
+            (r"[a-zA-Z_]\w*", Name),
         ],
-        'string': [
-            (r'"', String, '#pop'),
+        "string": [
+            (r'"', String, "#pop"),
             (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
             (r'[^\\"\n]+', String),  # all other characters
-            (r'\\\n', String),       # line continuation
-            (r'\\', String),         # stray backslash
+            (r"\\\n", String),  # line continuation
+            (r"\\", String),  # stray backslash
         ],
-        'macro': [
-            (r'[^/\n]+', Comment.Preproc),
-            (r'/\*(.|\n)*?\*/', Comment.Multiline),
-            (r'//.*?\n', Comment.Single, '#pop'),
-            (r'/', Comment.Preproc),
-            (r'(?<=\\)\n', Comment.Preproc),
-            (r'\n', Comment.Preproc, '#pop'),
+        "macro": [
+            (r"[^/\n]+", Comment.Preproc),
+            (r"/\*(.|\n)*?\*/", Comment.Multiline),
+            (r"//.*?\n", Comment.Single, "#pop"),
+            (r"/", Comment.Preproc),
+            (r"(?<=\\)\n", Comment.Preproc),
+            (r"\n", Comment.Preproc, "#pop"),
+        ],
+        "if0": [
+            (r"^\s*#if.*?(?<-]', Operator),
-            (r'[a-zA-Z][a-zA-Z0-9_-]*', Name),
-            (r'\?[a-zA-Z][a-zA-Z0-9_-]*', Name.Variable),
-            (r'[0-9]+\.[0-9]+', Number.Float),
-            (r'[0-9]+', Number.Integer),
+        "root": [
+            (r"\s+", Whitespace),
+            (r";.*$", Comment.Singleline),
+            include("keywords"),
+            include("builtins"),
+            (r"[()]", Punctuation),
+            (r"[=/*+><-]", Operator),
+            (r"[a-zA-Z][a-zA-Z0-9_-]*", Name),
+            (r"\?[a-zA-Z][a-zA-Z0-9_-]*", Name.Variable),
+            (r"[0-9]+\.[0-9]+", Number.Float),
+            (r"[0-9]+", Number.Integer),
         ],
-        'keywords': [
-            (words((
-                ':requirements', ':types', ':constants',
-                ':predicates', ':functions', ':action', ':agent',
-                ':parameters', ':precondition', ':effect',
-                ':durative-action', ':duration', ':condition',
-                ':derived', ':domain', ':objects', ':init',
-                ':goal', ':metric', ':length', ':serial', ':parallel',
-                # the following are requirements
-                ':strips', ':typing', ':negative-preconditions',
-                ':disjunctive-preconditions', ':equality',
-                ':existential-preconditions', ':universal-preconditions',
-                ':conditional-effects', ':fluents', ':numeric-fluents',
-                ':object-fluents', ':adl', ':durative-actions',
-                ':continuous-effects', ':derived-predicates',
-                ':time-intial-literals', ':preferences',
-                ':constraints', ':action-costs', ':multi-agent',
-                ':unfactored-privacy', ':factored-privacy',
-                ':non-deterministic'
-                ), suffix=r'\b'), Keyword)
+        "keywords": [
+            (
+                words(
+                    (
+                        ":requirements",
+                        ":types",
+                        ":constants",
+                        ":predicates",
+                        ":functions",
+                        ":action",
+                        ":agent",
+                        ":parameters",
+                        ":precondition",
+                        ":effect",
+                        ":durative-action",
+                        ":duration",
+                        ":condition",
+                        ":derived",
+                        ":domain",
+                        ":objects",
+                        ":init",
+                        ":goal",
+                        ":metric",
+                        ":length",
+                        ":serial",
+                        ":parallel",
+                        # the following are requirements
+                        ":strips",
+                        ":typing",
+                        ":negative-preconditions",
+                        ":disjunctive-preconditions",
+                        ":equality",
+                        ":existential-preconditions",
+                        ":universal-preconditions",
+                        ":conditional-effects",
+                        ":fluents",
+                        ":numeric-fluents",
+                        ":object-fluents",
+                        ":adl",
+                        ":durative-actions",
+                        ":continuous-effects",
+                        ":derived-predicates",
+                        ":time-intial-literals",
+                        ":preferences",
+                        ":constraints",
+                        ":action-costs",
+                        ":multi-agent",
+                        ":unfactored-privacy",
+                        ":factored-privacy",
+                        ":non-deterministic",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            )
+        ],
+        "builtins": [
+            (
+                words(
+                    (
+                        "define",
+                        "domain",
+                        "object",
+                        "either",
+                        "and",
+                        "forall",
+                        "preference",
+                        "imply",
+                        "or",
+                        "exists",
+                        "not",
+                        "when",
+                        "assign",
+                        "scale-up",
+                        "scale-down",
+                        "increase",
+                        "decrease",
+                        "at",
+                        "over",
+                        "start",
+                        "end",
+                        "all",
+                        "problem",
+                        "always",
+                        "sometime",
+                        "within",
+                        "at-most-once",
+                        "sometime-after",
+                        "sometime-before",
+                        "always-within",
+                        "hold-during",
+                        "hold-after",
+                        "minimize",
+                        "maximize",
+                        "total-time",
+                        "is-violated",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            )
         ],
-        'builtins': [
-            (words((
-                'define', 'domain', 'object', 'either', 'and',
-                'forall', 'preference', 'imply', 'or', 'exists',
-                'not', 'when', 'assign', 'scale-up', 'scale-down',
-                'increase', 'decrease', 'at', 'over', 'start',
-                'end', 'all', 'problem', 'always', 'sometime',
-                'within', 'at-most-once', 'sometime-after',
-                'sometime-before', 'always-within', 'hold-during',
-                'hold-after', 'minimize', 'maximize',
-                'total-time', 'is-violated'), suffix=r'\b'),
-                Name.Builtin)
-        ]
     }
-
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/perl.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/perl.py
index 33f91f5..84cdd05 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/perl.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/perl.py
@@ -1,22 +1,39 @@
 """
-    pygments.lexers.perl
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.perl
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Perl, Raku and related languages.
+Lexers for Perl, Raku and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import RegexLexer, ExtendedRegexLexer, include, bygroups, \
-    using, this, default, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Whitespace
+from pygments.lexer import (
+    RegexLexer,
+    ExtendedRegexLexer,
+    include,
+    bygroups,
+    using,
+    this,
+    default,
+    words,
+)
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
 from pygments.util import shebang_matches
 
-__all__ = ['PerlLexer', 'Perl6Lexer']
+__all__ = ["PerlLexer", "Perl6Lexer"]
 
 
 class PerlLexer(RegexLexer):
@@ -24,198 +41,421 @@ class PerlLexer(RegexLexer):
     For Perl source code.
     """
 
-    name = 'Perl'
-    url = 'https://www.perl.org'
-    aliases = ['perl', 'pl']
-    filenames = ['*.pl', '*.pm', '*.t', '*.perl']
-    mimetypes = ['text/x-perl', 'application/x-perl']
-    version_added = ''
+    name = "Perl"
+    url = "https://www.perl.org"
+    aliases = ["perl", "pl"]
+    filenames = ["*.pl", "*.pm", "*.t", "*.perl"]
+    mimetypes = ["text/x-perl", "application/x-perl"]
+    version_added = ""
 
     flags = re.DOTALL | re.MULTILINE
     # TODO: give this to a perl guy who knows how to parse perl...
     tokens = {
-        'balanced-regex': [
-            (r'/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*', String.Regex, '#pop'),
-            (r'!(\\\\|\\[^\\]|[^\\!])*![egimosx]*', String.Regex, '#pop'),
-            (r'\\(\\\\|[^\\])*\\[egimosx]*', String.Regex, '#pop'),
-            (r'\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*', String.Regex, '#pop'),
-            (r'<(\\\\|\\[^\\]|[^\\>])*>[egimosx]*', String.Regex, '#pop'),
-            (r'\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*', String.Regex, '#pop'),
-            (r'\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*', String.Regex, '#pop'),
-            (r'@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*', String.Regex, '#pop'),
-            (r'%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*', String.Regex, '#pop'),
-            (r'\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*', String.Regex, '#pop'),
+        "balanced-regex": [
+            (r"/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*", String.Regex, "#pop"),
+            (r"!(\\\\|\\[^\\]|[^\\!])*![egimosx]*", String.Regex, "#pop"),
+            (r"\\(\\\\|[^\\])*\\[egimosx]*", String.Regex, "#pop"),
+            (r"\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*", String.Regex, "#pop"),
+            (r"<(\\\\|\\[^\\]|[^\\>])*>[egimosx]*", String.Regex, "#pop"),
+            (r"\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*", String.Regex, "#pop"),
+            (r"\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*", String.Regex, "#pop"),
+            (r"@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*", String.Regex, "#pop"),
+            (r"%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*", String.Regex, "#pop"),
+            (r"\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*", String.Regex, "#pop"),
         ],
-        'root': [
-            (r'\A\#!.+?$', Comment.Hashbang),
-            (r'\#.*?$', Comment.Single),
-            (r'^=[a-zA-Z0-9]+\s+.*?\n=cut', Comment.Multiline),
-            (words((
-                'case', 'continue', 'do', 'else', 'elsif', 'for', 'foreach',
-                'if', 'last', 'my', 'next', 'our', 'redo', 'reset', 'then',
-                'unless', 'until', 'while', 'print', 'new', 'BEGIN',
-                'CHECK', 'INIT', 'END', 'return'), suffix=r'\b'),
-             Keyword),
-            (r'(format)(\s+)(\w+)(\s*)(=)(\s*\n)',
-             bygroups(Keyword, Whitespace, Name, Whitespace, Punctuation, Whitespace), 'format'),
-            (r'(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b', Operator.Word),
+        "root": [
+            (r"\A\#!.+?$", Comment.Hashbang),
+            (r"\#.*?$", Comment.Single),
+            (r"^=[a-zA-Z0-9]+\s+.*?\n=cut", Comment.Multiline),
+            (
+                words(
+                    (
+                        "case",
+                        "continue",
+                        "do",
+                        "else",
+                        "elsif",
+                        "for",
+                        "foreach",
+                        "if",
+                        "last",
+                        "my",
+                        "next",
+                        "our",
+                        "redo",
+                        "reset",
+                        "then",
+                        "unless",
+                        "until",
+                        "while",
+                        "print",
+                        "new",
+                        "BEGIN",
+                        "CHECK",
+                        "INIT",
+                        "END",
+                        "return",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                r"(format)(\s+)(\w+)(\s*)(=)(\s*\n)",
+                bygroups(
+                    Keyword, Whitespace, Name, Whitespace, Punctuation, Whitespace
+                ),
+                "format",
+            ),
+            (r"(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b", Operator.Word),
             # common delimiters
-            (r's/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*',
-                String.Regex),
-            (r's!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*', String.Regex),
-            (r's\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*', String.Regex),
-            (r's@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*',
-                String.Regex),
-            (r's%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*',
-                String.Regex),
+            (
+                r"s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*",
+                String.Regex,
+            ),
+            (r"s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*", String.Regex),
+            (r"s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*", String.Regex),
+            (
+                r"s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*",
+                String.Regex,
+            ),
+            (
+                r"s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*",
+                String.Regex,
+            ),
             # balanced delimiters
-            (r's\{(\\\\|\\[^\\]|[^\\}])*\}\s*', String.Regex, 'balanced-regex'),
-            (r's<(\\\\|\\[^\\]|[^\\>])*>\s*', String.Regex, 'balanced-regex'),
-            (r's\[(\\\\|\\[^\\]|[^\\\]])*\]\s*', String.Regex,
-                'balanced-regex'),
-            (r's\((\\\\|\\[^\\]|[^\\)])*\)\s*', String.Regex,
-                'balanced-regex'),
-
-            (r'm?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*', String.Regex),
-            (r'm(?=[/!\\{<\[(@%$])', String.Regex, 'balanced-regex'),
-            (r'((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*',
-                String.Regex),
-            (r'\s+', Whitespace),
-            (words((
-                'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless', 'caller', 'chdir',
-                'chmod', 'chomp', 'chop', 'chown', 'chr', 'chroot', 'close', 'closedir', 'connect',
-                'continue', 'cos', 'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die',
-                'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent',
-                'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit', 'exp', 'fcntl',
-                'fileno', 'flock', 'fork', 'format', 'formline', 'getc', 'getgrent', 'getgrgid',
-                'getgrnam', 'gethostbyaddr', 'gethostbyname', 'gethostent', 'getlogin',
-                'getnetbyaddr', 'getnetbyname', 'getnetent', 'getpeername', 'getpgrp',
-                'getppid', 'getpriority', 'getprotobyname', 'getprotobynumber',
-                'getprotoent', 'getpwent', 'getpwnam', 'getpwuid', 'getservbyname',
-                'getservbyport', 'getservent', 'getsockname', 'getsockopt', 'glob', 'gmtime',
-                'goto', 'grep', 'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill', 'last',
-                'lc', 'lcfirst', 'length', 'link', 'listen', 'local', 'localtime', 'log', 'lstat',
-                'map', 'mkdir', 'msgctl', 'msgget', 'msgrcv', 'msgsnd', 'my', 'next', 'oct', 'open',
-                'opendir', 'ord', 'our', 'pack', 'pipe', 'pop', 'pos', 'printf',
-                'prototype', 'push', 'quotemeta', 'rand', 'read', 'readdir',
-                'readline', 'readlink', 'readpipe', 'recv', 'redo', 'ref', 'rename',
-                'reverse', 'rewinddir', 'rindex', 'rmdir', 'scalar', 'seek', 'seekdir',
-                'select', 'semctl', 'semget', 'semop', 'send', 'setgrent', 'sethostent', 'setnetent',
-                'setpgrp', 'setpriority', 'setprotoent', 'setpwent', 'setservent',
-                'setsockopt', 'shift', 'shmctl', 'shmget', 'shmread', 'shmwrite', 'shutdown',
-                'sin', 'sleep', 'socket', 'socketpair', 'sort', 'splice', 'split', 'sprintf', 'sqrt',
-                'srand', 'stat', 'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread',
-                'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied', 'time', 'times', 'tr',
-                'truncate', 'uc', 'ucfirst', 'umask', 'undef', 'unlink', 'unpack', 'unshift', 'untie',
-                'utime', 'values', 'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write'), suffix=r'\b'),
-             Name.Builtin),
-            (r'((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b', Name.Builtin.Pseudo),
-            (r'(<<)([\'"]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)',
-             bygroups(String, String, String.Delimiter, String, String.Delimiter, Whitespace)),
-            (r'__END__', Comment.Preproc, 'end-part'),
-            (r'\$\^[ADEFHILMOPSTWX]', Name.Variable.Global),
+            (r"s\{(\\\\|\\[^\\]|[^\\}])*\}\s*", String.Regex, "balanced-regex"),
+            (r"s<(\\\\|\\[^\\]|[^\\>])*>\s*", String.Regex, "balanced-regex"),
+            (r"s\[(\\\\|\\[^\\]|[^\\\]])*\]\s*", String.Regex, "balanced-regex"),
+            (r"s\((\\\\|\\[^\\]|[^\\)])*\)\s*", String.Regex, "balanced-regex"),
+            (r"m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*", String.Regex),
+            (r"m(?=[/!\\{<\[(@%$])", String.Regex, "balanced-regex"),
+            (r"((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*", String.Regex),
+            (r"\s+", Whitespace),
+            (
+                words(
+                    (
+                        "abs",
+                        "accept",
+                        "alarm",
+                        "atan2",
+                        "bind",
+                        "binmode",
+                        "bless",
+                        "caller",
+                        "chdir",
+                        "chmod",
+                        "chomp",
+                        "chop",
+                        "chown",
+                        "chr",
+                        "chroot",
+                        "close",
+                        "closedir",
+                        "connect",
+                        "continue",
+                        "cos",
+                        "crypt",
+                        "dbmclose",
+                        "dbmopen",
+                        "defined",
+                        "delete",
+                        "die",
+                        "dump",
+                        "each",
+                        "endgrent",
+                        "endhostent",
+                        "endnetent",
+                        "endprotoent",
+                        "endpwent",
+                        "endservent",
+                        "eof",
+                        "eval",
+                        "exec",
+                        "exists",
+                        "exit",
+                        "exp",
+                        "fcntl",
+                        "fileno",
+                        "flock",
+                        "fork",
+                        "format",
+                        "formline",
+                        "getc",
+                        "getgrent",
+                        "getgrgid",
+                        "getgrnam",
+                        "gethostbyaddr",
+                        "gethostbyname",
+                        "gethostent",
+                        "getlogin",
+                        "getnetbyaddr",
+                        "getnetbyname",
+                        "getnetent",
+                        "getpeername",
+                        "getpgrp",
+                        "getppid",
+                        "getpriority",
+                        "getprotobyname",
+                        "getprotobynumber",
+                        "getprotoent",
+                        "getpwent",
+                        "getpwnam",
+                        "getpwuid",
+                        "getservbyname",
+                        "getservbyport",
+                        "getservent",
+                        "getsockname",
+                        "getsockopt",
+                        "glob",
+                        "gmtime",
+                        "goto",
+                        "grep",
+                        "hex",
+                        "import",
+                        "index",
+                        "int",
+                        "ioctl",
+                        "join",
+                        "keys",
+                        "kill",
+                        "last",
+                        "lc",
+                        "lcfirst",
+                        "length",
+                        "link",
+                        "listen",
+                        "local",
+                        "localtime",
+                        "log",
+                        "lstat",
+                        "map",
+                        "mkdir",
+                        "msgctl",
+                        "msgget",
+                        "msgrcv",
+                        "msgsnd",
+                        "my",
+                        "next",
+                        "oct",
+                        "open",
+                        "opendir",
+                        "ord",
+                        "our",
+                        "pack",
+                        "pipe",
+                        "pop",
+                        "pos",
+                        "printf",
+                        "prototype",
+                        "push",
+                        "quotemeta",
+                        "rand",
+                        "read",
+                        "readdir",
+                        "readline",
+                        "readlink",
+                        "readpipe",
+                        "recv",
+                        "redo",
+                        "ref",
+                        "rename",
+                        "reverse",
+                        "rewinddir",
+                        "rindex",
+                        "rmdir",
+                        "scalar",
+                        "seek",
+                        "seekdir",
+                        "select",
+                        "semctl",
+                        "semget",
+                        "semop",
+                        "send",
+                        "setgrent",
+                        "sethostent",
+                        "setnetent",
+                        "setpgrp",
+                        "setpriority",
+                        "setprotoent",
+                        "setpwent",
+                        "setservent",
+                        "setsockopt",
+                        "shift",
+                        "shmctl",
+                        "shmget",
+                        "shmread",
+                        "shmwrite",
+                        "shutdown",
+                        "sin",
+                        "sleep",
+                        "socket",
+                        "socketpair",
+                        "sort",
+                        "splice",
+                        "split",
+                        "sprintf",
+                        "sqrt",
+                        "srand",
+                        "stat",
+                        "study",
+                        "substr",
+                        "symlink",
+                        "syscall",
+                        "sysopen",
+                        "sysread",
+                        "sysseek",
+                        "system",
+                        "syswrite",
+                        "tell",
+                        "telldir",
+                        "tie",
+                        "tied",
+                        "time",
+                        "times",
+                        "tr",
+                        "truncate",
+                        "uc",
+                        "ucfirst",
+                        "umask",
+                        "undef",
+                        "unlink",
+                        "unpack",
+                        "unshift",
+                        "untie",
+                        "utime",
+                        "values",
+                        "vec",
+                        "wait",
+                        "waitpid",
+                        "wantarray",
+                        "warn",
+                        "write",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
+            (r"((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b", Name.Builtin.Pseudo),
+            (
+                r'(<<)([\'"]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)',
+                bygroups(
+                    String,
+                    String,
+                    String.Delimiter,
+                    String,
+                    String.Delimiter,
+                    Whitespace,
+                ),
+            ),
+            (r"__END__", Comment.Preproc, "end-part"),
+            (r"\$\^[ADEFHILMOPSTWX]", Name.Variable.Global),
             (r"\$[\\\"\[\]'&`+*.,;=%~?@$!<>(^|/-](?!\w)", Name.Variable.Global),
-            (r'[$@%#]+', Name.Variable, 'varname'),
-            (r'0_?[0-7]+(_[0-7]+)*', Number.Oct),
-            (r'0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*', Number.Hex),
-            (r'0b[01]+(_[01]+)*', Number.Bin),
-            (r'(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?',
-             Number.Float),
-            (r'(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*', Number.Float),
-            (r'\d+(_\d+)*', Number.Integer),
+            (r"[$@%#]+", Name.Variable, "varname"),
+            (r"0_?[0-7]+(_[0-7]+)*", Number.Oct),
+            (r"0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*", Number.Hex),
+            (r"0b[01]+(_[01]+)*", Number.Bin),
+            (
+                r"(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?",
+                Number.Float,
+            ),
+            (r"(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*", Number.Float),
+            (r"\d+(_\d+)*", Number.Integer),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
-            (r'`(\\\\|\\[^\\]|[^`\\])*`', String.Backtick),
-            (r'<([^\s>]+)>', String.Regex),
-            (r'(q|qq|qw|qr|qx)\{', String.Other, 'cb-string'),
-            (r'(q|qq|qw|qr|qx)\(', String.Other, 'rb-string'),
-            (r'(q|qq|qw|qr|qx)\[', String.Other, 'sb-string'),
-            (r'(q|qq|qw|qr|qx)\<', String.Other, 'lt-string'),
-            (r'(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2', String.Other),
-            (r'(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)',
-             bygroups(Keyword, Whitespace, Name.Namespace)),
-            (r'(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)',
-             bygroups(Keyword, Whitespace, Name.Namespace)),
-            (r'(sub)(\s+)', bygroups(Keyword, Whitespace), 'funcname'),
-            (words((
-                'no', 'package', 'require', 'use'), suffix=r'\b'),
-             Keyword),
-            (r'(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|'
-             r'!~|&&?|\|\||\.{1,3})', Operator),
-            (r'[-+/*%=<>&^|!\\~]=?', Operator),
-            (r'[()\[\]:;,<>/?{}]', Punctuation),  # yes, there's no shortage
-                                                  # of punctuation in Perl!
-            (r'(?=\w)', Name, 'name'),
+            (r"`(\\\\|\\[^\\]|[^`\\])*`", String.Backtick),
+            (r"<([^\s>]+)>", String.Regex),
+            (r"(q|qq|qw|qr|qx)\{", String.Other, "cb-string"),
+            (r"(q|qq|qw|qr|qx)\(", String.Other, "rb-string"),
+            (r"(q|qq|qw|qr|qx)\[", String.Other, "sb-string"),
+            (r"(q|qq|qw|qr|qx)\<", String.Other, "lt-string"),
+            (r"(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2", String.Other),
+            (
+                r"(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)",
+                bygroups(Keyword, Whitespace, Name.Namespace),
+            ),
+            (
+                r"(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)",
+                bygroups(Keyword, Whitespace, Name.Namespace),
+            ),
+            (r"(sub)(\s+)", bygroups(Keyword, Whitespace), "funcname"),
+            (words(("no", "package", "require", "use"), suffix=r"\b"), Keyword),
+            (
+                r"(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|" r"!~|&&?|\|\||\.{1,3})",
+                Operator,
+            ),
+            (r"[-+/*%=<>&^|!\\~]=?", Operator),
+            (r"[()\[\]:;,<>/?{}]", Punctuation),  # yes, there's no shortage
+            # of punctuation in Perl!
+            (r"(?=\w)", Name, "name"),
         ],
-        'format': [
-            (r'\.\n', String.Interpol, '#pop'),
-            (r'[^\n]*\n', String.Interpol),
+        "format": [
+            (r"\.\n", String.Interpol, "#pop"),
+            (r"[^\n]*\n", String.Interpol),
         ],
-        'varname': [
-            (r'\s+', Whitespace),
-            (r'\{', Punctuation, '#pop'),    # hash syntax?
-            (r'\)|,', Punctuation, '#pop'),  # argument specifier
-            (r'\w+::', Name.Namespace),
-            (r'[\w:]+', Name.Variable, '#pop'),
+        "varname": [
+            (r"\s+", Whitespace),
+            (r"\{", Punctuation, "#pop"),  # hash syntax?
+            (r"\)|,", Punctuation, "#pop"),  # argument specifier
+            (r"\w+::", Name.Namespace),
+            (r"[\w:]+", Name.Variable, "#pop"),
         ],
-        'name': [
-            (r'[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*->)', Name.Namespace, '#pop'),
-            (r'[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::', Name.Namespace, '#pop'),
-            (r'[\w:]+', Name, '#pop'),
-            (r'[A-Z_]+(?=\W)', Name.Constant, '#pop'),
-            (r'(?=\W)', Text, '#pop'),
+        "name": [
+            (r"[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*->)", Name.Namespace, "#pop"),
+            (r"[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::", Name.Namespace, "#pop"),
+            (r"[\w:]+", Name, "#pop"),
+            (r"[A-Z_]+(?=\W)", Name.Constant, "#pop"),
+            (r"(?=\W)", Text, "#pop"),
         ],
-        'funcname': [
-            (r'[a-zA-Z_]\w*[!?]?', Name.Function),
-            (r'\s+', Whitespace),
+        "funcname": [
+            (r"[a-zA-Z_]\w*[!?]?", Name.Function),
+            (r"\s+", Whitespace),
             # argument declaration
-            (r'(\([$@%]*\))(\s*)', bygroups(Punctuation, Whitespace)),
-            (r';', Punctuation, '#pop'),
-            (r'.*?\{', Punctuation, '#pop'),
+            (r"(\([$@%]*\))(\s*)", bygroups(Punctuation, Whitespace)),
+            (r";", Punctuation, "#pop"),
+            (r".*?\{", Punctuation, "#pop"),
         ],
-        'cb-string': [
-            (r'\\[{}\\]', String.Other),
-            (r'\\', String.Other),
-            (r'\{', String.Other, 'cb-string'),
-            (r'\}', String.Other, '#pop'),
-            (r'[^{}\\]+', String.Other)
+        "cb-string": [
+            (r"\\[{}\\]", String.Other),
+            (r"\\", String.Other),
+            (r"\{", String.Other, "cb-string"),
+            (r"\}", String.Other, "#pop"),
+            (r"[^{}\\]+", String.Other),
         ],
-        'rb-string': [
-            (r'\\[()\\]', String.Other),
-            (r'\\', String.Other),
-            (r'\(', String.Other, 'rb-string'),
-            (r'\)', String.Other, '#pop'),
-            (r'[^()]+', String.Other)
+        "rb-string": [
+            (r"\\[()\\]", String.Other),
+            (r"\\", String.Other),
+            (r"\(", String.Other, "rb-string"),
+            (r"\)", String.Other, "#pop"),
+            (r"[^()]+", String.Other),
         ],
-        'sb-string': [
-            (r'\\[\[\]\\]', String.Other),
-            (r'\\', String.Other),
-            (r'\[', String.Other, 'sb-string'),
-            (r'\]', String.Other, '#pop'),
-            (r'[^\[\]]+', String.Other)
+        "sb-string": [
+            (r"\\[\[\]\\]", String.Other),
+            (r"\\", String.Other),
+            (r"\[", String.Other, "sb-string"),
+            (r"\]", String.Other, "#pop"),
+            (r"[^\[\]]+", String.Other),
         ],
-        'lt-string': [
-            (r'\\[<>\\]', String.Other),
-            (r'\\', String.Other),
-            (r'\<', String.Other, 'lt-string'),
-            (r'\>', String.Other, '#pop'),
-            (r'[^<>]+', String.Other)
+        "lt-string": [
+            (r"\\[<>\\]", String.Other),
+            (r"\\", String.Other),
+            (r"\<", String.Other, "lt-string"),
+            (r"\>", String.Other, "#pop"),
+            (r"[^<>]+", String.Other),
         ],
-        'end-part': [
-            (r'.+', Comment.Preproc, '#pop')
-        ]
+        "end-part": [(r".+", Comment.Preproc, "#pop")],
     }
 
     def analyse_text(text):
-        if shebang_matches(text, r'perl'):
+        if shebang_matches(text, r"perl"):
             return True
 
         result = 0
 
-        if re.search(r'(?:my|our)\s+[$@%(]', text):
+        if re.search(r"(?:my|our)\s+[$@%(]", text):
             result += 0.9
 
-        if ':=' in text:
+        if ":=" in text:
             # := is not valid Perl, but it appears in unicon, so we should
             # become less confident if we think we found Perl with :=
             result /= 2
@@ -228,299 +468,1427 @@ class Perl6Lexer(ExtendedRegexLexer):
     For Raku (a.k.a. Perl 6) source code.
     """
 
-    name = 'Perl6'
-    url = 'https://www.raku.org'
-    aliases = ['perl6', 'pl6', 'raku']
-    filenames = ['*.pl', '*.pm', '*.nqp', '*.p6', '*.6pl', '*.p6l', '*.pl6',
-                 '*.6pm', '*.p6m', '*.pm6', '*.t', '*.raku', '*.rakumod',
-                 '*.rakutest', '*.rakudoc']
-    mimetypes = ['text/x-perl6', 'application/x-perl6']
-    version_added = '2.0'
+    name = "Perl6"
+    url = "https://www.raku.org"
+    aliases = ["perl6", "pl6", "raku"]
+    filenames = [
+        "*.pl",
+        "*.pm",
+        "*.nqp",
+        "*.p6",
+        "*.6pl",
+        "*.p6l",
+        "*.pl6",
+        "*.6pm",
+        "*.p6m",
+        "*.pm6",
+        "*.t",
+        "*.raku",
+        "*.rakumod",
+        "*.rakutest",
+        "*.rakudoc",
+    ]
+    mimetypes = ["text/x-perl6", "application/x-perl6"]
+    version_added = "2.0"
     flags = re.MULTILINE | re.DOTALL
 
     PERL6_IDENTIFIER_RANGE = r"['\w:-]"
 
     PERL6_KEYWORDS = (
-        #Phasers
-        'BEGIN','CATCH','CHECK','CLOSE','CONTROL','DOC','END','ENTER','FIRST',
-        'INIT','KEEP','LAST','LEAVE','NEXT','POST','PRE','QUIT','UNDO',
-        #Keywords
-        'anon','augment','but','class','constant','default','does','else',
-        'elsif','enum','for','gather','given','grammar','has','if','import',
-        'is','let','loop','made','make','method','module','multi','my','need',
-        'orwith','our','proceed','proto','repeat','require','return',
-        'return-rw','returns','role','rule','state','sub','submethod','subset',
-        'succeed','supersede','token','try','unit','unless','until','use',
-        'when','while','with','without',
-        #Traits
-        'export','native','repr','required','rw','symbol',
+        # Phasers
+        "BEGIN",
+        "CATCH",
+        "CHECK",
+        "CLOSE",
+        "CONTROL",
+        "DOC",
+        "END",
+        "ENTER",
+        "FIRST",
+        "INIT",
+        "KEEP",
+        "LAST",
+        "LEAVE",
+        "NEXT",
+        "POST",
+        "PRE",
+        "QUIT",
+        "UNDO",
+        # Keywords
+        "anon",
+        "augment",
+        "but",
+        "class",
+        "constant",
+        "default",
+        "does",
+        "else",
+        "elsif",
+        "enum",
+        "for",
+        "gather",
+        "given",
+        "grammar",
+        "has",
+        "if",
+        "import",
+        "is",
+        "let",
+        "loop",
+        "made",
+        "make",
+        "method",
+        "module",
+        "multi",
+        "my",
+        "need",
+        "orwith",
+        "our",
+        "proceed",
+        "proto",
+        "repeat",
+        "require",
+        "return",
+        "return-rw",
+        "returns",
+        "role",
+        "rule",
+        "state",
+        "sub",
+        "submethod",
+        "subset",
+        "succeed",
+        "supersede",
+        "token",
+        "try",
+        "unit",
+        "unless",
+        "until",
+        "use",
+        "when",
+        "while",
+        "with",
+        "without",
+        # Traits
+        "export",
+        "native",
+        "repr",
+        "required",
+        "rw",
+        "symbol",
     )
 
     PERL6_BUILTINS = (
-        'ACCEPTS','abs','abs2rel','absolute','accept','accessed','acos',
-        'acosec','acosech','acosh','acotan','acotanh','acquire','act','action',
-        'actions','add','add_attribute','add_enum_value','add_fallback',
-        'add_method','add_parent','add_private_method','add_role','add_trustee',
-        'adverb','after','all','allocate','allof','allowed','alternative-names',
-        'annotations','antipair','antipairs','any','anyof','app_lifetime',
-        'append','arch','archname','args','arity','Array','asec','asech','asin',
-        'asinh','ASSIGN-KEY','ASSIGN-POS','assuming','ast','at','atan','atan2',
-        'atanh','AT-KEY','atomic-assign','atomic-dec-fetch','atomic-fetch',
-        'atomic-fetch-add','atomic-fetch-dec','atomic-fetch-inc',
-        'atomic-fetch-sub','atomic-inc-fetch','AT-POS','attributes','auth',
-        'await','backtrace','Bag','BagHash','bail-out','base','basename',
-        'base-repeating','batch','BIND-KEY','BIND-POS','bind-stderr',
-        'bind-stdin','bind-stdout','bind-udp','bits','bless','block','Bool',
-        'bool-only','bounds','break','Bridge','broken','BUILD','build-date',
-        'bytes','cache','callframe','calling-package','CALL-ME','callsame',
-        'callwith','can','cancel','candidates','cando','can-ok','canonpath',
-        'caps','caption','Capture','cas','catdir','categorize','categorize-list',
-        'catfile','catpath','cause','ceiling','cglobal','changed','Channel',
-        'chars','chdir','child','child-name','child-typename','chmod','chomp',
-        'chop','chr','chrs','chunks','cis','classify','classify-list','cleanup',
-        'clone','close','closed','close-stdin','cmp-ok','code','codes','collate',
-        'column','comb','combinations','command','comment','compiler','Complex',
-        'compose','compose_type','composer','condition','config',
-        'configure_destroy','configure_type_checking','conj','connect',
-        'constraints','construct','contains','contents','copy','cos','cosec',
-        'cosech','cosh','cotan','cotanh','count','count-only','cpu-cores',
-        'cpu-usage','CREATE','create_type','cross','cue','curdir','curupdir','d',
-        'Date','DateTime','day','daycount','day-of-month','day-of-week',
-        'day-of-year','days-in-month','declaration','decode','decoder','deepmap',
-        'default','defined','DEFINITE','delayed','DELETE-KEY','DELETE-POS',
-        'denominator','desc','DESTROY','destroyers','devnull','diag',
-        'did-you-mean','die','dies-ok','dir','dirname','dir-sep','DISTROnames',
-        'do','does','does-ok','done','done-testing','duckmap','dynamic','e',
-        'eager','earlier','elems','emit','enclosing','encode','encoder',
-        'encoding','end','ends-with','enum_from_value','enum_value_list',
-        'enum_values','enums','eof','EVAL','eval-dies-ok','EVALFILE',
-        'eval-lives-ok','exception','excludes-max','excludes-min','EXISTS-KEY',
-        'EXISTS-POS','exit','exitcode','exp','expected','explicitly-manage',
-        'expmod','extension','f','fail','fails-like','fc','feature','file',
-        'filename','find_method','find_method_qualified','finish','first','flat',
-        'flatmap','flip','floor','flunk','flush','fmt','format','formatter',
-        'freeze','from','from-list','from-loop','from-posix','full',
-        'full-barrier','get','get_value','getc','gist','got','grab','grabpairs',
-        'grep','handle','handled','handles','hardware','has_accessor','Hash',
-        'head','headers','hh-mm-ss','hidden','hides','hour','how','hyper','id',
-        'illegal','im','in','indent','index','indices','indir','infinite',
-        'infix','infix:<+>','infix:<->','install_method_cache','Instant',
-        'instead','Int','int-bounds','interval','in-timezone','invalid-str',
-        'invert','invocant','IO','IO::Notification.watch-path','is_trusted',
-        'is_type','isa','is-absolute','isa-ok','is-approx','is-deeply',
-        'is-hidden','is-initial-thread','is-int','is-lazy','is-leap-year',
-        'isNaN','isnt','is-prime','is-relative','is-routine','is-setting',
-        'is-win','item','iterator','join','keep','kept','KERNELnames','key',
-        'keyof','keys','kill','kv','kxxv','l','lang','last','lastcall','later',
-        'lazy','lc','leading','level','like','line','lines','link','List',
-        'listen','live','lives-ok','local','lock','log','log10','lookup','lsb',
-        'made','MAIN','make','Map','match','max','maxpairs','merge','message',
-        'method','method_table','methods','migrate','min','minmax','minpairs',
-        'minute','misplaced','Mix','MixHash','mkdir','mode','modified','month',
-        'move','mro','msb','multi','multiness','my','name','named','named_names',
-        'narrow','nativecast','native-descriptor','nativesizeof','new','new_type',
-        'new-from-daycount','new-from-pairs','next','nextcallee','next-handle',
-        'nextsame','nextwith','NFC','NFD','NFKC','NFKD','nl-in','nl-out',
-        'nodemap','nok','none','norm','not','note','now','nude','Num',
-        'numerator','Numeric','of','offset','offset-in-hours','offset-in-minutes',
-        'ok','old','on-close','one','on-switch','open','opened','operation',
-        'optional','ord','ords','orig','os-error','osname','out-buffer','pack',
-        'package','package-kind','package-name','packages','pair','pairs',
-        'pairup','parameter','params','parent','parent-name','parents','parse',
-        'parse-base','parsefile','parse-names','parts','pass','path','path-sep',
-        'payload','peer-host','peer-port','periods','perl','permutations','phaser',
-        'pick','pickpairs','pid','placeholder','plan','plus','polar','poll',
-        'polymod','pop','pos','positional','posix','postfix','postmatch',
-        'precomp-ext','precomp-target','pred','prefix','prematch','prepend',
-        'print','printf','print-nl','print-to','private','private_method_table',
-        'proc','produce','Promise','prompt','protect','pull-one','push',
-        'push-all','push-at-least','push-exactly','push-until-lazy','put',
-        'qualifier-type','quit','r','race','radix','rand','range','Rat','raw',
-        're','read','readchars','readonly','ready','Real','reallocate','reals',
-        'reason','rebless','receive','recv','redispatcher','redo','reduce',
-        'rel2abs','relative','release','rename','repeated','replacement',
-        'report','reserved','resolve','restore','result','resume','rethrow',
-        'reverse','right','rindex','rmdir','role','roles_to_compose','rolish',
-        'roll','rootdir','roots','rotate','rotor','round','roundrobin',
-        'routine-type','run','rwx','s','samecase','samemark','samewith','say',
-        'schedule-on','scheduler','scope','sec','sech','second','seek','self',
-        'send','Set','set_hidden','set_name','set_package','set_rw','set_value',
-        'SetHash','set-instruments','setup_finalization','shape','share','shell',
-        'shift','sibling','sigil','sign','signal','signals','signature','sin',
-        'sinh','sink','sink-all','skip','skip-at-least','skip-at-least-pull-one',
-        'skip-one','skip-rest','sleep','sleep-timer','sleep-until','Slip','slurp',
-        'slurp-rest','slurpy','snap','snapper','so','socket-host','socket-port',
-        'sort','source','source-package','spawn','SPEC','splice','split',
-        'splitdir','splitpath','sprintf','spurt','sqrt','squish','srand','stable',
-        'start','started','starts-with','status','stderr','stdout','Str',
-        'sub_signature','subbuf','subbuf-rw','subname','subparse','subst',
-        'subst-mutate','substr','substr-eq','substr-rw','subtest','succ','sum',
-        'Supply','symlink','t','tail','take','take-rw','tan','tanh','tap',
-        'target','target-name','tc','tclc','tell','then','throttle','throw',
-        'throws-like','timezone','tmpdir','to','today','todo','toggle','to-posix',
-        'total','trailing','trans','tree','trim','trim-leading','trim-trailing',
-        'truncate','truncated-to','trusts','try_acquire','trying','twigil','type',
-        'type_captures','typename','uc','udp','uncaught_handler','unimatch',
-        'uniname','uninames','uniparse','uniprop','uniprops','unique','unival',
-        'univals','unlike','unlink','unlock','unpack','unpolar','unshift',
-        'unwrap','updir','USAGE','use-ok','utc','val','value','values','VAR',
-        'variable','verbose-config','version','VMnames','volume','vow','w','wait',
-        'warn','watch','watch-path','week','weekday-of-month','week-number',
-        'week-year','WHAT','when','WHERE','WHEREFORE','WHICH','WHO',
-        'whole-second','WHY','wordcase','words','workaround','wrap','write',
-        'write-to','x','yada','year','yield','yyyy-mm-dd','z','zip','zip-latest',
-
+        "ACCEPTS",
+        "abs",
+        "abs2rel",
+        "absolute",
+        "accept",
+        "accessed",
+        "acos",
+        "acosec",
+        "acosech",
+        "acosh",
+        "acotan",
+        "acotanh",
+        "acquire",
+        "act",
+        "action",
+        "actions",
+        "add",
+        "add_attribute",
+        "add_enum_value",
+        "add_fallback",
+        "add_method",
+        "add_parent",
+        "add_private_method",
+        "add_role",
+        "add_trustee",
+        "adverb",
+        "after",
+        "all",
+        "allocate",
+        "allof",
+        "allowed",
+        "alternative-names",
+        "annotations",
+        "antipair",
+        "antipairs",
+        "any",
+        "anyof",
+        "app_lifetime",
+        "append",
+        "arch",
+        "archname",
+        "args",
+        "arity",
+        "Array",
+        "asec",
+        "asech",
+        "asin",
+        "asinh",
+        "ASSIGN-KEY",
+        "ASSIGN-POS",
+        "assuming",
+        "ast",
+        "at",
+        "atan",
+        "atan2",
+        "atanh",
+        "AT-KEY",
+        "atomic-assign",
+        "atomic-dec-fetch",
+        "atomic-fetch",
+        "atomic-fetch-add",
+        "atomic-fetch-dec",
+        "atomic-fetch-inc",
+        "atomic-fetch-sub",
+        "atomic-inc-fetch",
+        "AT-POS",
+        "attributes",
+        "auth",
+        "await",
+        "backtrace",
+        "Bag",
+        "BagHash",
+        "bail-out",
+        "base",
+        "basename",
+        "base-repeating",
+        "batch",
+        "BIND-KEY",
+        "BIND-POS",
+        "bind-stderr",
+        "bind-stdin",
+        "bind-stdout",
+        "bind-udp",
+        "bits",
+        "bless",
+        "block",
+        "Bool",
+        "bool-only",
+        "bounds",
+        "break",
+        "Bridge",
+        "broken",
+        "BUILD",
+        "build-date",
+        "bytes",
+        "cache",
+        "callframe",
+        "calling-package",
+        "CALL-ME",
+        "callsame",
+        "callwith",
+        "can",
+        "cancel",
+        "candidates",
+        "cando",
+        "can-ok",
+        "canonpath",
+        "caps",
+        "caption",
+        "Capture",
+        "cas",
+        "catdir",
+        "categorize",
+        "categorize-list",
+        "catfile",
+        "catpath",
+        "cause",
+        "ceiling",
+        "cglobal",
+        "changed",
+        "Channel",
+        "chars",
+        "chdir",
+        "child",
+        "child-name",
+        "child-typename",
+        "chmod",
+        "chomp",
+        "chop",
+        "chr",
+        "chrs",
+        "chunks",
+        "cis",
+        "classify",
+        "classify-list",
+        "cleanup",
+        "clone",
+        "close",
+        "closed",
+        "close-stdin",
+        "cmp-ok",
+        "code",
+        "codes",
+        "collate",
+        "column",
+        "comb",
+        "combinations",
+        "command",
+        "comment",
+        "compiler",
+        "Complex",
+        "compose",
+        "compose_type",
+        "composer",
+        "condition",
+        "config",
+        "configure_destroy",
+        "configure_type_checking",
+        "conj",
+        "connect",
+        "constraints",
+        "construct",
+        "contains",
+        "contents",
+        "copy",
+        "cos",
+        "cosec",
+        "cosech",
+        "cosh",
+        "cotan",
+        "cotanh",
+        "count",
+        "count-only",
+        "cpu-cores",
+        "cpu-usage",
+        "CREATE",
+        "create_type",
+        "cross",
+        "cue",
+        "curdir",
+        "curupdir",
+        "d",
+        "Date",
+        "DateTime",
+        "day",
+        "daycount",
+        "day-of-month",
+        "day-of-week",
+        "day-of-year",
+        "days-in-month",
+        "declaration",
+        "decode",
+        "decoder",
+        "deepmap",
+        "default",
+        "defined",
+        "DEFINITE",
+        "delayed",
+        "DELETE-KEY",
+        "DELETE-POS",
+        "denominator",
+        "desc",
+        "DESTROY",
+        "destroyers",
+        "devnull",
+        "diag",
+        "did-you-mean",
+        "die",
+        "dies-ok",
+        "dir",
+        "dirname",
+        "dir-sep",
+        "DISTROnames",
+        "do",
+        "does",
+        "does-ok",
+        "done",
+        "done-testing",
+        "duckmap",
+        "dynamic",
+        "e",
+        "eager",
+        "earlier",
+        "elems",
+        "emit",
+        "enclosing",
+        "encode",
+        "encoder",
+        "encoding",
+        "end",
+        "ends-with",
+        "enum_from_value",
+        "enum_value_list",
+        "enum_values",
+        "enums",
+        "eof",
+        "EVAL",
+        "eval-dies-ok",
+        "EVALFILE",
+        "eval-lives-ok",
+        "exception",
+        "excludes-max",
+        "excludes-min",
+        "EXISTS-KEY",
+        "EXISTS-POS",
+        "exit",
+        "exitcode",
+        "exp",
+        "expected",
+        "explicitly-manage",
+        "expmod",
+        "extension",
+        "f",
+        "fail",
+        "fails-like",
+        "fc",
+        "feature",
+        "file",
+        "filename",
+        "find_method",
+        "find_method_qualified",
+        "finish",
+        "first",
+        "flat",
+        "flatmap",
+        "flip",
+        "floor",
+        "flunk",
+        "flush",
+        "fmt",
+        "format",
+        "formatter",
+        "freeze",
+        "from",
+        "from-list",
+        "from-loop",
+        "from-posix",
+        "full",
+        "full-barrier",
+        "get",
+        "get_value",
+        "getc",
+        "gist",
+        "got",
+        "grab",
+        "grabpairs",
+        "grep",
+        "handle",
+        "handled",
+        "handles",
+        "hardware",
+        "has_accessor",
+        "Hash",
+        "head",
+        "headers",
+        "hh-mm-ss",
+        "hidden",
+        "hides",
+        "hour",
+        "how",
+        "hyper",
+        "id",
+        "illegal",
+        "im",
+        "in",
+        "indent",
+        "index",
+        "indices",
+        "indir",
+        "infinite",
+        "infix",
+        "infix:<+>",
+        "infix:<->",
+        "install_method_cache",
+        "Instant",
+        "instead",
+        "Int",
+        "int-bounds",
+        "interval",
+        "in-timezone",
+        "invalid-str",
+        "invert",
+        "invocant",
+        "IO",
+        "IO::Notification.watch-path",
+        "is_trusted",
+        "is_type",
+        "isa",
+        "is-absolute",
+        "isa-ok",
+        "is-approx",
+        "is-deeply",
+        "is-hidden",
+        "is-initial-thread",
+        "is-int",
+        "is-lazy",
+        "is-leap-year",
+        "isNaN",
+        "isnt",
+        "is-prime",
+        "is-relative",
+        "is-routine",
+        "is-setting",
+        "is-win",
+        "item",
+        "iterator",
+        "join",
+        "keep",
+        "kept",
+        "KERNELnames",
+        "key",
+        "keyof",
+        "keys",
+        "kill",
+        "kv",
+        "kxxv",
+        "l",
+        "lang",
+        "last",
+        "lastcall",
+        "later",
+        "lazy",
+        "lc",
+        "leading",
+        "level",
+        "like",
+        "line",
+        "lines",
+        "link",
+        "List",
+        "listen",
+        "live",
+        "lives-ok",
+        "local",
+        "lock",
+        "log",
+        "log10",
+        "lookup",
+        "lsb",
+        "made",
+        "MAIN",
+        "make",
+        "Map",
+        "match",
+        "max",
+        "maxpairs",
+        "merge",
+        "message",
+        "method",
+        "method_table",
+        "methods",
+        "migrate",
+        "min",
+        "minmax",
+        "minpairs",
+        "minute",
+        "misplaced",
+        "Mix",
+        "MixHash",
+        "mkdir",
+        "mode",
+        "modified",
+        "month",
+        "move",
+        "mro",
+        "msb",
+        "multi",
+        "multiness",
+        "my",
+        "name",
+        "named",
+        "named_names",
+        "narrow",
+        "nativecast",
+        "native-descriptor",
+        "nativesizeof",
+        "new",
+        "new_type",
+        "new-from-daycount",
+        "new-from-pairs",
+        "next",
+        "nextcallee",
+        "next-handle",
+        "nextsame",
+        "nextwith",
+        "NFC",
+        "NFD",
+        "NFKC",
+        "NFKD",
+        "nl-in",
+        "nl-out",
+        "nodemap",
+        "nok",
+        "none",
+        "norm",
+        "not",
+        "note",
+        "now",
+        "nude",
+        "Num",
+        "numerator",
+        "Numeric",
+        "of",
+        "offset",
+        "offset-in-hours",
+        "offset-in-minutes",
+        "ok",
+        "old",
+        "on-close",
+        "one",
+        "on-switch",
+        "open",
+        "opened",
+        "operation",
+        "optional",
+        "ord",
+        "ords",
+        "orig",
+        "os-error",
+        "osname",
+        "out-buffer",
+        "pack",
+        "package",
+        "package-kind",
+        "package-name",
+        "packages",
+        "pair",
+        "pairs",
+        "pairup",
+        "parameter",
+        "params",
+        "parent",
+        "parent-name",
+        "parents",
+        "parse",
+        "parse-base",
+        "parsefile",
+        "parse-names",
+        "parts",
+        "pass",
+        "path",
+        "path-sep",
+        "payload",
+        "peer-host",
+        "peer-port",
+        "periods",
+        "perl",
+        "permutations",
+        "phaser",
+        "pick",
+        "pickpairs",
+        "pid",
+        "placeholder",
+        "plan",
+        "plus",
+        "polar",
+        "poll",
+        "polymod",
+        "pop",
+        "pos",
+        "positional",
+        "posix",
+        "postfix",
+        "postmatch",
+        "precomp-ext",
+        "precomp-target",
+        "pred",
+        "prefix",
+        "prematch",
+        "prepend",
+        "print",
+        "printf",
+        "print-nl",
+        "print-to",
+        "private",
+        "private_method_table",
+        "proc",
+        "produce",
+        "Promise",
+        "prompt",
+        "protect",
+        "pull-one",
+        "push",
+        "push-all",
+        "push-at-least",
+        "push-exactly",
+        "push-until-lazy",
+        "put",
+        "qualifier-type",
+        "quit",
+        "r",
+        "race",
+        "radix",
+        "rand",
+        "range",
+        "Rat",
+        "raw",
+        "re",
+        "read",
+        "readchars",
+        "readonly",
+        "ready",
+        "Real",
+        "reallocate",
+        "reals",
+        "reason",
+        "rebless",
+        "receive",
+        "recv",
+        "redispatcher",
+        "redo",
+        "reduce",
+        "rel2abs",
+        "relative",
+        "release",
+        "rename",
+        "repeated",
+        "replacement",
+        "report",
+        "reserved",
+        "resolve",
+        "restore",
+        "result",
+        "resume",
+        "rethrow",
+        "reverse",
+        "right",
+        "rindex",
+        "rmdir",
+        "role",
+        "roles_to_compose",
+        "rolish",
+        "roll",
+        "rootdir",
+        "roots",
+        "rotate",
+        "rotor",
+        "round",
+        "roundrobin",
+        "routine-type",
+        "run",
+        "rwx",
+        "s",
+        "samecase",
+        "samemark",
+        "samewith",
+        "say",
+        "schedule-on",
+        "scheduler",
+        "scope",
+        "sec",
+        "sech",
+        "second",
+        "seek",
+        "self",
+        "send",
+        "Set",
+        "set_hidden",
+        "set_name",
+        "set_package",
+        "set_rw",
+        "set_value",
+        "SetHash",
+        "set-instruments",
+        "setup_finalization",
+        "shape",
+        "share",
+        "shell",
+        "shift",
+        "sibling",
+        "sigil",
+        "sign",
+        "signal",
+        "signals",
+        "signature",
+        "sin",
+        "sinh",
+        "sink",
+        "sink-all",
+        "skip",
+        "skip-at-least",
+        "skip-at-least-pull-one",
+        "skip-one",
+        "skip-rest",
+        "sleep",
+        "sleep-timer",
+        "sleep-until",
+        "Slip",
+        "slurp",
+        "slurp-rest",
+        "slurpy",
+        "snap",
+        "snapper",
+        "so",
+        "socket-host",
+        "socket-port",
+        "sort",
+        "source",
+        "source-package",
+        "spawn",
+        "SPEC",
+        "splice",
+        "split",
+        "splitdir",
+        "splitpath",
+        "sprintf",
+        "spurt",
+        "sqrt",
+        "squish",
+        "srand",
+        "stable",
+        "start",
+        "started",
+        "starts-with",
+        "status",
+        "stderr",
+        "stdout",
+        "Str",
+        "sub_signature",
+        "subbuf",
+        "subbuf-rw",
+        "subname",
+        "subparse",
+        "subst",
+        "subst-mutate",
+        "substr",
+        "substr-eq",
+        "substr-rw",
+        "subtest",
+        "succ",
+        "sum",
+        "Supply",
+        "symlink",
+        "t",
+        "tail",
+        "take",
+        "take-rw",
+        "tan",
+        "tanh",
+        "tap",
+        "target",
+        "target-name",
+        "tc",
+        "tclc",
+        "tell",
+        "then",
+        "throttle",
+        "throw",
+        "throws-like",
+        "timezone",
+        "tmpdir",
+        "to",
+        "today",
+        "todo",
+        "toggle",
+        "to-posix",
+        "total",
+        "trailing",
+        "trans",
+        "tree",
+        "trim",
+        "trim-leading",
+        "trim-trailing",
+        "truncate",
+        "truncated-to",
+        "trusts",
+        "try_acquire",
+        "trying",
+        "twigil",
+        "type",
+        "type_captures",
+        "typename",
+        "uc",
+        "udp",
+        "uncaught_handler",
+        "unimatch",
+        "uniname",
+        "uninames",
+        "uniparse",
+        "uniprop",
+        "uniprops",
+        "unique",
+        "unival",
+        "univals",
+        "unlike",
+        "unlink",
+        "unlock",
+        "unpack",
+        "unpolar",
+        "unshift",
+        "unwrap",
+        "updir",
+        "USAGE",
+        "use-ok",
+        "utc",
+        "val",
+        "value",
+        "values",
+        "VAR",
+        "variable",
+        "verbose-config",
+        "version",
+        "VMnames",
+        "volume",
+        "vow",
+        "w",
+        "wait",
+        "warn",
+        "watch",
+        "watch-path",
+        "week",
+        "weekday-of-month",
+        "week-number",
+        "week-year",
+        "WHAT",
+        "when",
+        "WHERE",
+        "WHEREFORE",
+        "WHICH",
+        "WHO",
+        "whole-second",
+        "WHY",
+        "wordcase",
+        "words",
+        "workaround",
+        "wrap",
+        "write",
+        "write-to",
+        "x",
+        "yada",
+        "year",
+        "yield",
+        "yyyy-mm-dd",
+        "z",
+        "zip",
+        "zip-latest",
     )
 
     PERL6_BUILTIN_CLASSES = (
-        #Booleans
-        'False','True',
-        #Classes
-        'Any','Array','Associative','AST','atomicint','Attribute','Backtrace',
-        'Backtrace::Frame','Bag','Baggy','BagHash','Blob','Block','Bool','Buf',
-        'Callable','CallFrame','Cancellation','Capture','CArray','Channel','Code',
-        'compiler','Complex','ComplexStr','Cool','CurrentThreadScheduler',
-        'Cursor','Date','Dateish','DateTime','Distro','Duration','Encoding',
-        'Exception','Failure','FatRat','Grammar','Hash','HyperWhatever','Instant',
-        'Int','int16','int32','int64','int8','IntStr','IO','IO::ArgFiles',
-        'IO::CatHandle','IO::Handle','IO::Notification','IO::Path',
-        'IO::Path::Cygwin','IO::Path::QNX','IO::Path::Unix','IO::Path::Win32',
-        'IO::Pipe','IO::Socket','IO::Socket::Async','IO::Socket::INET','IO::Spec',
-        'IO::Spec::Cygwin','IO::Spec::QNX','IO::Spec::Unix','IO::Spec::Win32',
-        'IO::Special','Iterable','Iterator','Junction','Kernel','Label','List',
-        'Lock','Lock::Async','long','longlong','Macro','Map','Match',
-        'Metamodel::AttributeContainer','Metamodel::C3MRO','Metamodel::ClassHOW',
-        'Metamodel::EnumHOW','Metamodel::Finalization','Metamodel::MethodContainer',
-        'Metamodel::MROBasedMethodDispatch','Metamodel::MultipleInheritance',
-        'Metamodel::Naming','Metamodel::Primitives','Metamodel::PrivateMethodContainer',
-        'Metamodel::RoleContainer','Metamodel::Trusting','Method','Mix','MixHash',
-        'Mixy','Mu','NFC','NFD','NFKC','NFKD','Nil','Num','num32','num64',
-        'Numeric','NumStr','ObjAt','Order','Pair','Parameter','Perl','Pod::Block',
-        'Pod::Block::Code','Pod::Block::Comment','Pod::Block::Declarator',
-        'Pod::Block::Named','Pod::Block::Para','Pod::Block::Table','Pod::Heading',
-        'Pod::Item','Pointer','Positional','PositionalBindFailover','Proc',
-        'Proc::Async','Promise','Proxy','PseudoStash','QuantHash','Range','Rat',
-        'Rational','RatStr','Real','Regex','Routine','Scalar','Scheduler',
-        'Semaphore','Seq','Set','SetHash','Setty','Signature','size_t','Slip',
-        'Stash','Str','StrDistance','Stringy','Sub','Submethod','Supplier',
-        'Supplier::Preserving','Supply','Systemic','Tap','Telemetry',
-        'Telemetry::Instrument::Thread','Telemetry::Instrument::Usage',
-        'Telemetry::Period','Telemetry::Sampler','Thread','ThreadPoolScheduler',
-        'UInt','uint16','uint32','uint64','uint8','Uni','utf8','Variable',
-        'Version','VM','Whatever','WhateverCode','WrapHandle'
+        # Booleans
+        "False",
+        "True",
+        # Classes
+        "Any",
+        "Array",
+        "Associative",
+        "AST",
+        "atomicint",
+        "Attribute",
+        "Backtrace",
+        "Backtrace::Frame",
+        "Bag",
+        "Baggy",
+        "BagHash",
+        "Blob",
+        "Block",
+        "Bool",
+        "Buf",
+        "Callable",
+        "CallFrame",
+        "Cancellation",
+        "Capture",
+        "CArray",
+        "Channel",
+        "Code",
+        "compiler",
+        "Complex",
+        "ComplexStr",
+        "Cool",
+        "CurrentThreadScheduler",
+        "Cursor",
+        "Date",
+        "Dateish",
+        "DateTime",
+        "Distro",
+        "Duration",
+        "Encoding",
+        "Exception",
+        "Failure",
+        "FatRat",
+        "Grammar",
+        "Hash",
+        "HyperWhatever",
+        "Instant",
+        "Int",
+        "int16",
+        "int32",
+        "int64",
+        "int8",
+        "IntStr",
+        "IO",
+        "IO::ArgFiles",
+        "IO::CatHandle",
+        "IO::Handle",
+        "IO::Notification",
+        "IO::Path",
+        "IO::Path::Cygwin",
+        "IO::Path::QNX",
+        "IO::Path::Unix",
+        "IO::Path::Win32",
+        "IO::Pipe",
+        "IO::Socket",
+        "IO::Socket::Async",
+        "IO::Socket::INET",
+        "IO::Spec",
+        "IO::Spec::Cygwin",
+        "IO::Spec::QNX",
+        "IO::Spec::Unix",
+        "IO::Spec::Win32",
+        "IO::Special",
+        "Iterable",
+        "Iterator",
+        "Junction",
+        "Kernel",
+        "Label",
+        "List",
+        "Lock",
+        "Lock::Async",
+        "long",
+        "longlong",
+        "Macro",
+        "Map",
+        "Match",
+        "Metamodel::AttributeContainer",
+        "Metamodel::C3MRO",
+        "Metamodel::ClassHOW",
+        "Metamodel::EnumHOW",
+        "Metamodel::Finalization",
+        "Metamodel::MethodContainer",
+        "Metamodel::MROBasedMethodDispatch",
+        "Metamodel::MultipleInheritance",
+        "Metamodel::Naming",
+        "Metamodel::Primitives",
+        "Metamodel::PrivateMethodContainer",
+        "Metamodel::RoleContainer",
+        "Metamodel::Trusting",
+        "Method",
+        "Mix",
+        "MixHash",
+        "Mixy",
+        "Mu",
+        "NFC",
+        "NFD",
+        "NFKC",
+        "NFKD",
+        "Nil",
+        "Num",
+        "num32",
+        "num64",
+        "Numeric",
+        "NumStr",
+        "ObjAt",
+        "Order",
+        "Pair",
+        "Parameter",
+        "Perl",
+        "Pod::Block",
+        "Pod::Block::Code",
+        "Pod::Block::Comment",
+        "Pod::Block::Declarator",
+        "Pod::Block::Named",
+        "Pod::Block::Para",
+        "Pod::Block::Table",
+        "Pod::Heading",
+        "Pod::Item",
+        "Pointer",
+        "Positional",
+        "PositionalBindFailover",
+        "Proc",
+        "Proc::Async",
+        "Promise",
+        "Proxy",
+        "PseudoStash",
+        "QuantHash",
+        "Range",
+        "Rat",
+        "Rational",
+        "RatStr",
+        "Real",
+        "Regex",
+        "Routine",
+        "Scalar",
+        "Scheduler",
+        "Semaphore",
+        "Seq",
+        "Set",
+        "SetHash",
+        "Setty",
+        "Signature",
+        "size_t",
+        "Slip",
+        "Stash",
+        "Str",
+        "StrDistance",
+        "Stringy",
+        "Sub",
+        "Submethod",
+        "Supplier",
+        "Supplier::Preserving",
+        "Supply",
+        "Systemic",
+        "Tap",
+        "Telemetry",
+        "Telemetry::Instrument::Thread",
+        "Telemetry::Instrument::Usage",
+        "Telemetry::Period",
+        "Telemetry::Sampler",
+        "Thread",
+        "ThreadPoolScheduler",
+        "UInt",
+        "uint16",
+        "uint32",
+        "uint64",
+        "uint8",
+        "Uni",
+        "utf8",
+        "Variable",
+        "Version",
+        "VM",
+        "Whatever",
+        "WhateverCode",
+        "WrapHandle",
     )
 
     PERL6_OPERATORS = (
-        'X', 'Z', 'after', 'also', 'and', 'andthen', 'before', 'cmp', 'div',
-        'eq', 'eqv', 'extra', 'ff', 'fff', 'ge', 'gt', 'le', 'leg', 'lt', 'm',
-        'mm', 'mod', 'ne', 'or', 'orelse', 'rx', 's', 'tr', 'x', 'xor', 'xx',
-        '++', '--', '**', '!', '+', '-', '~', '?', '|', '||', '+^', '~^', '?^',
-        '^', '*', '/', '%', '%%', '+&', '+<', '+>', '~&', '~<', '~>', '?&',
-        'gcd', 'lcm', '+', '-', '+|', '+^', '~|', '~^', '?|', '?^',
-        '~', '&', '^', 'but', 'does', '<=>', '..', '..^', '^..', '^..^',
-        '!=', '==', '<', '<=', '>', '>=', '~~', '===', '!eqv',
-        '&&', '||', '^^', '//', 'min', 'max', '??', '!!', 'ff', 'fff', 'so',
-        'not', '<==', '==>', '<<==', '==>>','unicmp',
+        "X",
+        "Z",
+        "after",
+        "also",
+        "and",
+        "andthen",
+        "before",
+        "cmp",
+        "div",
+        "eq",
+        "eqv",
+        "extra",
+        "ff",
+        "fff",
+        "ge",
+        "gt",
+        "le",
+        "leg",
+        "lt",
+        "m",
+        "mm",
+        "mod",
+        "ne",
+        "or",
+        "orelse",
+        "rx",
+        "s",
+        "tr",
+        "x",
+        "xor",
+        "xx",
+        "++",
+        "--",
+        "**",
+        "!",
+        "+",
+        "-",
+        "~",
+        "?",
+        "|",
+        "||",
+        "+^",
+        "~^",
+        "?^",
+        "^",
+        "*",
+        "/",
+        "%",
+        "%%",
+        "+&",
+        "+<",
+        "+>",
+        "~&",
+        "~<",
+        "~>",
+        "?&",
+        "gcd",
+        "lcm",
+        "+",
+        "-",
+        "+|",
+        "+^",
+        "~|",
+        "~^",
+        "?|",
+        "?^",
+        "~",
+        "&",
+        "^",
+        "but",
+        "does",
+        "<=>",
+        "..",
+        "..^",
+        "^..",
+        "^..^",
+        "!=",
+        "==",
+        "<",
+        "<=",
+        ">",
+        ">=",
+        "~~",
+        "===",
+        "!eqv",
+        "&&",
+        "||",
+        "^^",
+        "//",
+        "min",
+        "max",
+        "??",
+        "!!",
+        "ff",
+        "fff",
+        "so",
+        "not",
+        "<==",
+        "==>",
+        "<<==",
+        "==>>",
+        "unicmp",
     )
 
     # Perl 6 has a *lot* of possible bracketing characters
     # this list was lifted from STD.pm6 (https://github.com/perl6/std)
     PERL6_BRACKETS = {
-        '\u0028': '\u0029', '\u003c': '\u003e', '\u005b': '\u005d',
-        '\u007b': '\u007d', '\u00ab': '\u00bb', '\u0f3a': '\u0f3b',
-        '\u0f3c': '\u0f3d', '\u169b': '\u169c', '\u2018': '\u2019',
-        '\u201a': '\u2019', '\u201b': '\u2019', '\u201c': '\u201d',
-        '\u201e': '\u201d', '\u201f': '\u201d', '\u2039': '\u203a',
-        '\u2045': '\u2046', '\u207d': '\u207e', '\u208d': '\u208e',
-        '\u2208': '\u220b', '\u2209': '\u220c', '\u220a': '\u220d',
-        '\u2215': '\u29f5', '\u223c': '\u223d', '\u2243': '\u22cd',
-        '\u2252': '\u2253', '\u2254': '\u2255', '\u2264': '\u2265',
-        '\u2266': '\u2267', '\u2268': '\u2269', '\u226a': '\u226b',
-        '\u226e': '\u226f', '\u2270': '\u2271', '\u2272': '\u2273',
-        '\u2274': '\u2275', '\u2276': '\u2277', '\u2278': '\u2279',
-        '\u227a': '\u227b', '\u227c': '\u227d', '\u227e': '\u227f',
-        '\u2280': '\u2281', '\u2282': '\u2283', '\u2284': '\u2285',
-        '\u2286': '\u2287', '\u2288': '\u2289', '\u228a': '\u228b',
-        '\u228f': '\u2290', '\u2291': '\u2292', '\u2298': '\u29b8',
-        '\u22a2': '\u22a3', '\u22a6': '\u2ade', '\u22a8': '\u2ae4',
-        '\u22a9': '\u2ae3', '\u22ab': '\u2ae5', '\u22b0': '\u22b1',
-        '\u22b2': '\u22b3', '\u22b4': '\u22b5', '\u22b6': '\u22b7',
-        '\u22c9': '\u22ca', '\u22cb': '\u22cc', '\u22d0': '\u22d1',
-        '\u22d6': '\u22d7', '\u22d8': '\u22d9', '\u22da': '\u22db',
-        '\u22dc': '\u22dd', '\u22de': '\u22df', '\u22e0': '\u22e1',
-        '\u22e2': '\u22e3', '\u22e4': '\u22e5', '\u22e6': '\u22e7',
-        '\u22e8': '\u22e9', '\u22ea': '\u22eb', '\u22ec': '\u22ed',
-        '\u22f0': '\u22f1', '\u22f2': '\u22fa', '\u22f3': '\u22fb',
-        '\u22f4': '\u22fc', '\u22f6': '\u22fd', '\u22f7': '\u22fe',
-        '\u2308': '\u2309', '\u230a': '\u230b', '\u2329': '\u232a',
-        '\u23b4': '\u23b5', '\u2768': '\u2769', '\u276a': '\u276b',
-        '\u276c': '\u276d', '\u276e': '\u276f', '\u2770': '\u2771',
-        '\u2772': '\u2773', '\u2774': '\u2775', '\u27c3': '\u27c4',
-        '\u27c5': '\u27c6', '\u27d5': '\u27d6', '\u27dd': '\u27de',
-        '\u27e2': '\u27e3', '\u27e4': '\u27e5', '\u27e6': '\u27e7',
-        '\u27e8': '\u27e9', '\u27ea': '\u27eb', '\u2983': '\u2984',
-        '\u2985': '\u2986', '\u2987': '\u2988', '\u2989': '\u298a',
-        '\u298b': '\u298c', '\u298d': '\u298e', '\u298f': '\u2990',
-        '\u2991': '\u2992', '\u2993': '\u2994', '\u2995': '\u2996',
-        '\u2997': '\u2998', '\u29c0': '\u29c1', '\u29c4': '\u29c5',
-        '\u29cf': '\u29d0', '\u29d1': '\u29d2', '\u29d4': '\u29d5',
-        '\u29d8': '\u29d9', '\u29da': '\u29db', '\u29f8': '\u29f9',
-        '\u29fc': '\u29fd', '\u2a2b': '\u2a2c', '\u2a2d': '\u2a2e',
-        '\u2a34': '\u2a35', '\u2a3c': '\u2a3d', '\u2a64': '\u2a65',
-        '\u2a79': '\u2a7a', '\u2a7d': '\u2a7e', '\u2a7f': '\u2a80',
-        '\u2a81': '\u2a82', '\u2a83': '\u2a84', '\u2a8b': '\u2a8c',
-        '\u2a91': '\u2a92', '\u2a93': '\u2a94', '\u2a95': '\u2a96',
-        '\u2a97': '\u2a98', '\u2a99': '\u2a9a', '\u2a9b': '\u2a9c',
-        '\u2aa1': '\u2aa2', '\u2aa6': '\u2aa7', '\u2aa8': '\u2aa9',
-        '\u2aaa': '\u2aab', '\u2aac': '\u2aad', '\u2aaf': '\u2ab0',
-        '\u2ab3': '\u2ab4', '\u2abb': '\u2abc', '\u2abd': '\u2abe',
-        '\u2abf': '\u2ac0', '\u2ac1': '\u2ac2', '\u2ac3': '\u2ac4',
-        '\u2ac5': '\u2ac6', '\u2acd': '\u2ace', '\u2acf': '\u2ad0',
-        '\u2ad1': '\u2ad2', '\u2ad3': '\u2ad4', '\u2ad5': '\u2ad6',
-        '\u2aec': '\u2aed', '\u2af7': '\u2af8', '\u2af9': '\u2afa',
-        '\u2e02': '\u2e03', '\u2e04': '\u2e05', '\u2e09': '\u2e0a',
-        '\u2e0c': '\u2e0d', '\u2e1c': '\u2e1d', '\u2e20': '\u2e21',
-        '\u3008': '\u3009', '\u300a': '\u300b', '\u300c': '\u300d',
-        '\u300e': '\u300f', '\u3010': '\u3011', '\u3014': '\u3015',
-        '\u3016': '\u3017', '\u3018': '\u3019', '\u301a': '\u301b',
-        '\u301d': '\u301e', '\ufd3e': '\ufd3f', '\ufe17': '\ufe18',
-        '\ufe35': '\ufe36', '\ufe37': '\ufe38', '\ufe39': '\ufe3a',
-        '\ufe3b': '\ufe3c', '\ufe3d': '\ufe3e', '\ufe3f': '\ufe40',
-        '\ufe41': '\ufe42', '\ufe43': '\ufe44', '\ufe47': '\ufe48',
-        '\ufe59': '\ufe5a', '\ufe5b': '\ufe5c', '\ufe5d': '\ufe5e',
-        '\uff08': '\uff09', '\uff1c': '\uff1e', '\uff3b': '\uff3d',
-        '\uff5b': '\uff5d', '\uff5f': '\uff60', '\uff62': '\uff63',
+        "\u0028": "\u0029",
+        "\u003c": "\u003e",
+        "\u005b": "\u005d",
+        "\u007b": "\u007d",
+        "\u00ab": "\u00bb",
+        "\u0f3a": "\u0f3b",
+        "\u0f3c": "\u0f3d",
+        "\u169b": "\u169c",
+        "\u2018": "\u2019",
+        "\u201a": "\u2019",
+        "\u201b": "\u2019",
+        "\u201c": "\u201d",
+        "\u201e": "\u201d",
+        "\u201f": "\u201d",
+        "\u2039": "\u203a",
+        "\u2045": "\u2046",
+        "\u207d": "\u207e",
+        "\u208d": "\u208e",
+        "\u2208": "\u220b",
+        "\u2209": "\u220c",
+        "\u220a": "\u220d",
+        "\u2215": "\u29f5",
+        "\u223c": "\u223d",
+        "\u2243": "\u22cd",
+        "\u2252": "\u2253",
+        "\u2254": "\u2255",
+        "\u2264": "\u2265",
+        "\u2266": "\u2267",
+        "\u2268": "\u2269",
+        "\u226a": "\u226b",
+        "\u226e": "\u226f",
+        "\u2270": "\u2271",
+        "\u2272": "\u2273",
+        "\u2274": "\u2275",
+        "\u2276": "\u2277",
+        "\u2278": "\u2279",
+        "\u227a": "\u227b",
+        "\u227c": "\u227d",
+        "\u227e": "\u227f",
+        "\u2280": "\u2281",
+        "\u2282": "\u2283",
+        "\u2284": "\u2285",
+        "\u2286": "\u2287",
+        "\u2288": "\u2289",
+        "\u228a": "\u228b",
+        "\u228f": "\u2290",
+        "\u2291": "\u2292",
+        "\u2298": "\u29b8",
+        "\u22a2": "\u22a3",
+        "\u22a6": "\u2ade",
+        "\u22a8": "\u2ae4",
+        "\u22a9": "\u2ae3",
+        "\u22ab": "\u2ae5",
+        "\u22b0": "\u22b1",
+        "\u22b2": "\u22b3",
+        "\u22b4": "\u22b5",
+        "\u22b6": "\u22b7",
+        "\u22c9": "\u22ca",
+        "\u22cb": "\u22cc",
+        "\u22d0": "\u22d1",
+        "\u22d6": "\u22d7",
+        "\u22d8": "\u22d9",
+        "\u22da": "\u22db",
+        "\u22dc": "\u22dd",
+        "\u22de": "\u22df",
+        "\u22e0": "\u22e1",
+        "\u22e2": "\u22e3",
+        "\u22e4": "\u22e5",
+        "\u22e6": "\u22e7",
+        "\u22e8": "\u22e9",
+        "\u22ea": "\u22eb",
+        "\u22ec": "\u22ed",
+        "\u22f0": "\u22f1",
+        "\u22f2": "\u22fa",
+        "\u22f3": "\u22fb",
+        "\u22f4": "\u22fc",
+        "\u22f6": "\u22fd",
+        "\u22f7": "\u22fe",
+        "\u2308": "\u2309",
+        "\u230a": "\u230b",
+        "\u2329": "\u232a",
+        "\u23b4": "\u23b5",
+        "\u2768": "\u2769",
+        "\u276a": "\u276b",
+        "\u276c": "\u276d",
+        "\u276e": "\u276f",
+        "\u2770": "\u2771",
+        "\u2772": "\u2773",
+        "\u2774": "\u2775",
+        "\u27c3": "\u27c4",
+        "\u27c5": "\u27c6",
+        "\u27d5": "\u27d6",
+        "\u27dd": "\u27de",
+        "\u27e2": "\u27e3",
+        "\u27e4": "\u27e5",
+        "\u27e6": "\u27e7",
+        "\u27e8": "\u27e9",
+        "\u27ea": "\u27eb",
+        "\u2983": "\u2984",
+        "\u2985": "\u2986",
+        "\u2987": "\u2988",
+        "\u2989": "\u298a",
+        "\u298b": "\u298c",
+        "\u298d": "\u298e",
+        "\u298f": "\u2990",
+        "\u2991": "\u2992",
+        "\u2993": "\u2994",
+        "\u2995": "\u2996",
+        "\u2997": "\u2998",
+        "\u29c0": "\u29c1",
+        "\u29c4": "\u29c5",
+        "\u29cf": "\u29d0",
+        "\u29d1": "\u29d2",
+        "\u29d4": "\u29d5",
+        "\u29d8": "\u29d9",
+        "\u29da": "\u29db",
+        "\u29f8": "\u29f9",
+        "\u29fc": "\u29fd",
+        "\u2a2b": "\u2a2c",
+        "\u2a2d": "\u2a2e",
+        "\u2a34": "\u2a35",
+        "\u2a3c": "\u2a3d",
+        "\u2a64": "\u2a65",
+        "\u2a79": "\u2a7a",
+        "\u2a7d": "\u2a7e",
+        "\u2a7f": "\u2a80",
+        "\u2a81": "\u2a82",
+        "\u2a83": "\u2a84",
+        "\u2a8b": "\u2a8c",
+        "\u2a91": "\u2a92",
+        "\u2a93": "\u2a94",
+        "\u2a95": "\u2a96",
+        "\u2a97": "\u2a98",
+        "\u2a99": "\u2a9a",
+        "\u2a9b": "\u2a9c",
+        "\u2aa1": "\u2aa2",
+        "\u2aa6": "\u2aa7",
+        "\u2aa8": "\u2aa9",
+        "\u2aaa": "\u2aab",
+        "\u2aac": "\u2aad",
+        "\u2aaf": "\u2ab0",
+        "\u2ab3": "\u2ab4",
+        "\u2abb": "\u2abc",
+        "\u2abd": "\u2abe",
+        "\u2abf": "\u2ac0",
+        "\u2ac1": "\u2ac2",
+        "\u2ac3": "\u2ac4",
+        "\u2ac5": "\u2ac6",
+        "\u2acd": "\u2ace",
+        "\u2acf": "\u2ad0",
+        "\u2ad1": "\u2ad2",
+        "\u2ad3": "\u2ad4",
+        "\u2ad5": "\u2ad6",
+        "\u2aec": "\u2aed",
+        "\u2af7": "\u2af8",
+        "\u2af9": "\u2afa",
+        "\u2e02": "\u2e03",
+        "\u2e04": "\u2e05",
+        "\u2e09": "\u2e0a",
+        "\u2e0c": "\u2e0d",
+        "\u2e1c": "\u2e1d",
+        "\u2e20": "\u2e21",
+        "\u3008": "\u3009",
+        "\u300a": "\u300b",
+        "\u300c": "\u300d",
+        "\u300e": "\u300f",
+        "\u3010": "\u3011",
+        "\u3014": "\u3015",
+        "\u3016": "\u3017",
+        "\u3018": "\u3019",
+        "\u301a": "\u301b",
+        "\u301d": "\u301e",
+        "\ufd3e": "\ufd3f",
+        "\ufe17": "\ufe18",
+        "\ufe35": "\ufe36",
+        "\ufe37": "\ufe38",
+        "\ufe39": "\ufe3a",
+        "\ufe3b": "\ufe3c",
+        "\ufe3d": "\ufe3e",
+        "\ufe3f": "\ufe40",
+        "\ufe41": "\ufe42",
+        "\ufe43": "\ufe44",
+        "\ufe47": "\ufe48",
+        "\ufe59": "\ufe5a",
+        "\ufe5b": "\ufe5c",
+        "\ufe5d": "\ufe5e",
+        "\uff08": "\uff09",
+        "\uff1c": "\uff1e",
+        "\uff3b": "\uff3d",
+        "\uff5b": "\uff5d",
+        "\uff5f": "\uff60",
+        "\uff62": "\uff63",
     }
 
-    def _build_word_match(words, boundary_regex_fragment=None, prefix='', suffix=''):
+    def _build_word_match(words, boundary_regex_fragment=None, prefix="", suffix=""):
         if boundary_regex_fragment is None:
-            return r'\b(' + prefix + r'|'.join(re.escape(x) for x in words) + \
-                suffix + r')\b'
+            return (
+                r"\b("
+                + prefix
+                + r"|".join(re.escape(x) for x in words)
+                + suffix
+                + r")\b"
+            )
         else:
-            return r'(? 0:
                     next_open_pos = text.find(opening_chars, search_pos + n_chars)
@@ -538,21 +1906,24 @@ class Perl6Lexer(ExtendedRegexLexer):
 
                 end_pos = next_close_pos
 
-            if end_pos < 0:     # if we didn't find a closer, just highlight the
-                                # rest of the text in this class
+            if end_pos < 0:  # if we didn't find a closer, just highlight the
+                # rest of the text in this class
                 end_pos = len(text)
 
-            if adverbs is not None and re.search(r':to\b', adverbs):
-                heredoc_terminator = text[match.start('delimiter') + n_chars:end_pos]
-                end_heredoc = re.search(r'^\s*' + re.escape(heredoc_terminator) +
-                                        r'\s*$', text[end_pos:], re.MULTILINE)
+            if adverbs is not None and re.search(r":to\b", adverbs):
+                heredoc_terminator = text[match.start("delimiter") + n_chars : end_pos]
+                end_heredoc = re.search(
+                    r"^\s*" + re.escape(heredoc_terminator) + r"\s*$",
+                    text[end_pos:],
+                    re.MULTILINE,
+                )
 
                 if end_heredoc:
                     end_pos += end_heredoc.end()
                 else:
                     end_pos = len(text)
 
-            yield match.start(), token_class, text[match.start():end_pos + n_chars]
+            yield match.start(), token_class, text[match.start() : end_pos + n_chars]
             context.pos = end_pos + n_chars
 
         return callback
@@ -560,116 +1931,155 @@ class Perl6Lexer(ExtendedRegexLexer):
     def opening_brace_callback(lexer, match, context):
         stack = context.stack
 
-        yield match.start(), Text, context.text[match.start():match.end()]
+        yield match.start(), Text, context.text[match.start() : match.end()]
         context.pos = match.end()
 
         # if we encounter an opening brace and we're one level
         # below a token state, it means we need to increment
         # the nesting level for braces so we know later when
         # we should return to the token rules.
-        if len(stack) > 2 and stack[-2] == 'token':
+        if len(stack) > 2 and stack[-2] == "token":
             context.perl6_token_nesting_level += 1
 
     def closing_brace_callback(lexer, match, context):
         stack = context.stack
 
-        yield match.start(), Text, context.text[match.start():match.end()]
+        yield match.start(), Text, context.text[match.start() : match.end()]
         context.pos = match.end()
 
         # if we encounter a free closing brace and we're one level
         # below a token state, it means we need to check the nesting
         # level to see if we need to return to the token state.
-        if len(stack) > 2 and stack[-2] == 'token':
+        if len(stack) > 2 and stack[-2] == "token":
             context.perl6_token_nesting_level -= 1
             if context.perl6_token_nesting_level == 0:
                 stack.pop()
 
     def embedded_perl6_callback(lexer, match, context):
         context.perl6_token_nesting_level = 1
-        yield match.start(), Text, context.text[match.start():match.end()]
+        yield match.start(), Text, context.text[match.start() : match.end()]
         context.pos = match.end()
-        context.stack.append('root')
+        context.stack.append("root")
 
     # If you're modifying these rules, be careful if you need to process '{' or '}'
     # characters. We have special logic for processing these characters (due to the fact
     # that you can nest Perl 6 code in regex blocks), so if you need to process one of
     # them, make sure you also process the corresponding one!
     tokens = {
-        'common': [
-            (r'#[`|=](?P(?P[' + ''.join(PERL6_BRACKETS) + r'])(?P=first_char)*)',
-             brackets_callback(Comment.Multiline)),
-            (r'#[^\n]*$', Comment.Single),
-            (r'^(\s*)=begin\s+(\w+)\b.*?^\1=end\s+\2', Comment.Multiline),
-            (r'^(\s*)=for.*?\n\s*?\n', Comment.Multiline),
-            (r'^=.*?\n\s*?\n', Comment.Multiline),
-            (r'(regex|token|rule)(\s*' + PERL6_IDENTIFIER_RANGE + '+:sym)',
-             bygroups(Keyword, Name), 'token-sym-brackets'),
-            (r'(regex|token|rule)(?!' + PERL6_IDENTIFIER_RANGE + r')(\s*' + PERL6_IDENTIFIER_RANGE + '+)?',
-             bygroups(Keyword, Name), 'pre-token'),
+        "common": [
+            (
+                r"#[`|=](?P(?P["
+                + "".join(PERL6_BRACKETS)
+                + r"])(?P=first_char)*)",
+                brackets_callback(Comment.Multiline),
+            ),
+            (r"#[^\n]*$", Comment.Single),
+            (r"^(\s*)=begin\s+(\w+)\b.*?^\1=end\s+\2", Comment.Multiline),
+            (r"^(\s*)=for.*?\n\s*?\n", Comment.Multiline),
+            (r"^=.*?\n\s*?\n", Comment.Multiline),
+            (
+                r"(regex|token|rule)(\s*" + PERL6_IDENTIFIER_RANGE + "+:sym)",
+                bygroups(Keyword, Name),
+                "token-sym-brackets",
+            ),
+            (
+                r"(regex|token|rule)(?!"
+                + PERL6_IDENTIFIER_RANGE
+                + r")(\s*"
+                + PERL6_IDENTIFIER_RANGE
+                + "+)?",
+                bygroups(Keyword, Name),
+                "pre-token",
+            ),
             # deal with a special case in the Perl 6 grammar (role q { ... })
-            (r'(role)(\s+)(q)(\s*)', bygroups(Keyword, Whitespace, Name, Whitespace)),
+            (r"(role)(\s+)(q)(\s*)", bygroups(Keyword, Whitespace, Name, Whitespace)),
             (_build_word_match(PERL6_KEYWORDS, PERL6_IDENTIFIER_RANGE), Keyword),
-            (_build_word_match(PERL6_BUILTIN_CLASSES, PERL6_IDENTIFIER_RANGE, suffix='(?::[UD])?'),
-             Name.Builtin),
+            (
+                _build_word_match(
+                    PERL6_BUILTIN_CLASSES, PERL6_IDENTIFIER_RANGE, suffix="(?::[UD])?"
+                ),
+                Name.Builtin,
+            ),
             (_build_word_match(PERL6_BUILTINS, PERL6_IDENTIFIER_RANGE), Name.Builtin),
             # copied from PerlLexer
-            (r'[$@%&][.^:?=!~]?' + PERL6_IDENTIFIER_RANGE + '+(?:<<.*?>>|<.*?>|«.*?»)*',
-             Name.Variable),
-            (r'\$[!/](?:<<.*?>>|<.*?>|«.*?»)*', Name.Variable.Global),
-            (r'::\?\w+', Name.Variable.Global),
-            (r'[$@%&]\*' + PERL6_IDENTIFIER_RANGE + '+(?:<<.*?>>|<.*?>|«.*?»)*',
-             Name.Variable.Global),
-            (r'\$(?:<.*?>)+', Name.Variable),
-            (r'(?:q|qq|Q)[a-zA-Z]?\s*(?P:[\w\s:]+)?\s*(?P(?P[^0-9a-zA-Z:\s])'
-             r'(?P=first_char)*)', brackets_callback(String)),
+            (
+                r"[$@%&][.^:?=!~]?"
+                + PERL6_IDENTIFIER_RANGE
+                + "+(?:<<.*?>>|<.*?>|«.*?»)*",
+                Name.Variable,
+            ),
+            (r"\$[!/](?:<<.*?>>|<.*?>|«.*?»)*", Name.Variable.Global),
+            (r"::\?\w+", Name.Variable.Global),
+            (
+                r"[$@%&]\*" + PERL6_IDENTIFIER_RANGE + "+(?:<<.*?>>|<.*?>|«.*?»)*",
+                Name.Variable.Global,
+            ),
+            (r"\$(?:<.*?>)+", Name.Variable),
+            (
+                r"(?:q|qq|Q)[a-zA-Z]?\s*(?P:[\w\s:]+)?\s*(?P(?P[^0-9a-zA-Z:\s])"
+                r"(?P=first_char)*)",
+                brackets_callback(String),
+            ),
             # copied from PerlLexer
-            (r'0_?[0-7]+(_[0-7]+)*', Number.Oct),
-            (r'0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*', Number.Hex),
-            (r'0b[01]+(_[01]+)*', Number.Bin),
-            (r'(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?',
-             Number.Float),
-            (r'(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*', Number.Float),
-            (r'\d+(_\d+)*', Number.Integer),
-            (r'(?<=~~)\s*/(?:\\\\|\\/|.)*?/', String.Regex),
-            (r'(?<=[=(,])\s*/(?:\\\\|\\/|.)*?/', String.Regex),
-            (r'm\w+(?=\()', Name),
-            (r'(?:m|ms|rx)\s*(?P:[\w\s:]+)?\s*(?P(?P[^\w:\s])'
-             r'(?P=first_char)*)', brackets_callback(String.Regex)),
-            (r'(?:s|ss|tr)\s*(?::[\w\s:]+)?\s*/(?:\\\\|\\/|.)*?/(?:\\\\|\\/|.)*?/',
-             String.Regex),
-            (r'<[^\s=].*?\S>', String),
+            (r"0_?[0-7]+(_[0-7]+)*", Number.Oct),
+            (r"0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*", Number.Hex),
+            (r"0b[01]+(_[01]+)*", Number.Bin),
+            (
+                r"(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?",
+                Number.Float,
+            ),
+            (r"(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*", Number.Float),
+            (r"\d+(_\d+)*", Number.Integer),
+            (r"(?<=~~)\s*/(?:\\\\|\\/|.)*?/", String.Regex),
+            (r"(?<=[=(,])\s*/(?:\\\\|\\/|.)*?/", String.Regex),
+            (r"m\w+(?=\()", Name),
+            (
+                r"(?:m|ms|rx)\s*(?P:[\w\s:]+)?\s*(?P(?P[^\w:\s])"
+                r"(?P=first_char)*)",
+                brackets_callback(String.Regex),
+            ),
+            (
+                r"(?:s|ss|tr)\s*(?::[\w\s:]+)?\s*/(?:\\\\|\\/|.)*?/(?:\\\\|\\/|.)*?/",
+                String.Regex,
+            ),
+            (r"<[^\s=].*?\S>", String),
             (_build_word_match(PERL6_OPERATORS), Operator),
-            (r'\w' + PERL6_IDENTIFIER_RANGE + '*', Name),
+            (r"\w" + PERL6_IDENTIFIER_RANGE + "*", Name),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
         ],
-        'root': [
-            include('common'),
-            (r'\{', opening_brace_callback),
-            (r'\}', closing_brace_callback),
-            (r'.+?', Text),
+        "root": [
+            include("common"),
+            (r"\{", opening_brace_callback),
+            (r"\}", closing_brace_callback),
+            (r".+?", Text),
         ],
-        'pre-token': [
-            include('common'),
-            (r'\{', Text, ('#pop', 'token')),
-            (r'.+?', Text),
+        "pre-token": [
+            include("common"),
+            (r"\{", Text, ("#pop", "token")),
+            (r".+?", Text),
         ],
-        'token-sym-brackets': [
-            (r'(?P(?P[' + ''.join(PERL6_BRACKETS) + '])(?P=first_char)*)',
-             brackets_callback(Name), ('#pop', 'pre-token')),
-            default(('#pop', 'pre-token')),
+        "token-sym-brackets": [
+            (
+                r"(?P(?P["
+                + "".join(PERL6_BRACKETS)
+                + "])(?P=first_char)*)",
+                brackets_callback(Name),
+                ("#pop", "pre-token"),
+            ),
+            default(("#pop", "pre-token")),
         ],
-        'token': [
-            (r'\}', Text, '#pop'),
-            (r'(?<=:)(?:my|our|state|constant|temp|let).*?;', using(this)),
+        "token": [
+            (r"\}", Text, "#pop"),
+            (r"(?<=:)(?:my|our|state|constant|temp|let).*?;", using(this)),
             # make sure that quotes in character classes aren't treated as strings
-            (r'<(?:[-!?+.]\s*)?\[.*?\]>', String.Regex),
+            (r"<(?:[-!?+.]\s*)?\[.*?\]>", String.Regex),
             # make sure that '#' characters in quotes aren't treated as comments
             (r"(?my|our)\s+)?(?:module|class|role|enum|grammar)', line)
+            class_decl = re.match(
+                r"^\s*(?:(?Pmy|our)\s+)?(?:module|class|role|enum|grammar)", line
+            )
             if class_decl:
-                if saw_perl_decl or class_decl.group('scope') is not None:
+                if saw_perl_decl or class_decl.group("scope") is not None:
                     return True
                 rating = 0.05
                 continue
             break
 
-        if ':=' in text:
+        if ":=" in text:
             # Same logic as above for PerlLexer
             rating /= 2
 
@@ -730,4 +2146,4 @@ class Perl6Lexer(ExtendedRegexLexer):
 
     def __init__(self, **options):
         super().__init__(**options)
-        self.encoding = options.get('encoding', 'utf-8')
+        self.encoding = options.get("encoding", "utf-8")
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/phix.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/phix.py
index f0b0377..964aaf8 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/phix.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/phix.py
@@ -1,20 +1,19 @@
 """
-    pygments.lexers.phix
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.phix
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Phix.
+Lexers for Phix.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Whitespace
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, Whitespace
 
-__all__ = ['PhixLexer']
+__all__ = ["PhixLexer"]
 
 
 class PhixLexer(RegexLexer):
@@ -23,341 +22,1399 @@ class PhixLexer(RegexLexer):
     See http://phix.x10.mx
     """
 
-    name = 'Phix'
-    url = 'http://phix.x10.mx'
-    aliases = ['phix']
-    filenames = ['*.exw']
-    mimetypes = ['text/x-phix']
-    version_added = '2.14'
+    name = "Phix"
+    url = "http://phix.x10.mx"
+    aliases = ["phix"]
+    filenames = ["*.exw"]
+    mimetypes = ["text/x-phix"]
+    version_added = "2.14"
 
-    flags = re.MULTILINE    # nb: **NOT** re.DOTALL! (totally spanners comment handling)
+    flags = re.MULTILINE  # nb: **NOT** re.DOTALL! (totally spanners comment handling)
 
-    preproc = (
-        'ifdef', 'elsifdef', 'elsedef'
-    )
+    preproc = ("ifdef", "elsifdef", "elsedef")
     # Note these lists are auto-generated by pwa/p2js.exw, when pwa\src\p2js_keywords.e (etc)
     #     change, though of course subsequent copy/commit/pull requests are all manual steps.
     types = (
-        'string', 'nullable_string', 'atom_string', 'atom', 'bool', 'boolean',
-        'cdCanvan', 'cdCanvas', 'complex', 'CURLcode', 'dictionary', 'int',
-        'integer', 'Ihandle', 'Ihandles', 'Ihandln', 'mpfr', 'mpq', 'mpz',
-        'mpz_or_string', 'number', 'rid_string', 'seq', 'sequence', 'timedate',
-        'object'
+        "string",
+        "nullable_string",
+        "atom_string",
+        "atom",
+        "bool",
+        "boolean",
+        "cdCanvan",
+        "cdCanvas",
+        "complex",
+        "CURLcode",
+        "dictionary",
+        "int",
+        "integer",
+        "Ihandle",
+        "Ihandles",
+        "Ihandln",
+        "mpfr",
+        "mpq",
+        "mpz",
+        "mpz_or_string",
+        "number",
+        "rid_string",
+        "seq",
+        "sequence",
+        "timedate",
+        "object",
     )
     keywords = (
-        'abstract', 'class', 'continue', 'export', 'extends', 'nullable',
-        'private', 'public', 'static', 'struct', 'trace',
-        'and', 'break', 'by', 'case', 'catch', 'const', 'constant', 'debug',
-        'default', 'do', 'else', 'elsif', 'end', 'enum', 'exit', 'fallthru',
-        'fallthrough', 'for', 'forward', 'function', 'global', 'if', 'in',
-        'include', 'js', 'javascript', 'javascript_semantics', 'let', 'not',
-        'or', 'procedure', 'profile', 'profile_time', 'return', 'safe_mode',
-        'switch', 'then', 'to', 'try', 'type', 'type_check', 'until', 'warning',
-        'while', 'with', 'without', 'xor'
+        "abstract",
+        "class",
+        "continue",
+        "export",
+        "extends",
+        "nullable",
+        "private",
+        "public",
+        "static",
+        "struct",
+        "trace",
+        "and",
+        "break",
+        "by",
+        "case",
+        "catch",
+        "const",
+        "constant",
+        "debug",
+        "default",
+        "do",
+        "else",
+        "elsif",
+        "end",
+        "enum",
+        "exit",
+        "fallthru",
+        "fallthrough",
+        "for",
+        "forward",
+        "function",
+        "global",
+        "if",
+        "in",
+        "include",
+        "js",
+        "javascript",
+        "javascript_semantics",
+        "let",
+        "not",
+        "or",
+        "procedure",
+        "profile",
+        "profile_time",
+        "return",
+        "safe_mode",
+        "switch",
+        "then",
+        "to",
+        "try",
+        "type",
+        "type_check",
+        "until",
+        "warning",
+        "while",
+        "with",
+        "without",
+        "xor",
     )
     routines = (
-        'abort', 'abs', 'adjust_timedate', 'and_bits', 'and_bitsu', 'apply',
-        'append', 'arccos', 'arcsin', 'arctan', 'assert', 'atan2',
-        'atom_to_float32', 'atom_to_float64', 'bankers_rounding', 'beep',
-        'begins', 'binary_search', 'bits_to_int', 'bk_color', 'bytes_to_int',
-        'call_func', 'call_proc', 'cdCanvasActivate', 'cdCanvasArc',
-        'cdCanvasBegin', 'cdCanvasBox', 'cdCanvasChord', 'cdCanvasCircle',
-        'cdCanvasClear', 'cdCanvasEnd', 'cdCanvasFlush', 'cdCanvasFont',
-        'cdCanvasGetImageRGB', 'cdCanvasGetSize', 'cdCanvasGetTextAlignment',
-        'cdCanvasGetTextSize', 'cdCanvasLine', 'cdCanvasMark',
-        'cdCanvasMarkSize', 'cdCanvasMultiLineVectorText', 'cdCanvasPixel',
-        'cdCanvasRect', 'cdCanvasRoundedBox', 'cdCanvasRoundedRect',
-        'cdCanvasSector', 'cdCanvasSetAttribute', 'cdCanvasSetBackground',
-        'cdCanvasSetFillMode', 'cdCanvasSetForeground',
-        'cdCanvasSetInteriorStyle', 'cdCanvasSetLineStyle',
-        'cdCanvasSetLineWidth', 'cdCanvasSetTextAlignment', 'cdCanvasText',
-        'cdCanvasSetTextOrientation', 'cdCanvasGetTextOrientation',
-        'cdCanvasVectorText', 'cdCanvasVectorTextDirection',
-        'cdCanvasVectorTextSize', 'cdCanvasVertex', 'cdCreateCanvas',
-        'cdDecodeAlpha', 'cdDecodeColor', 'cdDecodeColorAlpha', 'cdEncodeAlpha',
-        'cdEncodeColor', 'cdEncodeColorAlpha', 'cdKillCanvas', 'cdVersion',
-        'cdVersionDate', 'ceil', 'change_timezone', 'choose', 'clear_screen',
-        'columnize', 'command_line', 'compare', 'complex_abs', 'complex_add',
-        'complex_arg', 'complex_conjugate', 'complex_cos', 'complex_cosh',
-        'complex_div', 'complex_exp', 'complex_imag', 'complex_inv',
-        'complex_log', 'complex_mul', 'complex_neg', 'complex_new',
-        'complex_norm', 'complex_power', 'complex_rho', 'complex_real',
-        'complex_round', 'complex_sin', 'complex_sinh', 'complex_sprint',
-        'complex_sqrt', 'complex_sub', 'complex_theta', 'concat', 'cos',
-        'crash', 'custom_sort', 'date', 'day_of_week', 'day_of_year',
-        'days_in_month', 'decode_base64', 'decode_flags', 'deep_copy', 'deld',
-        'deserialize', 'destroy_dict', 'destroy_queue', 'destroy_stack',
-        'dict_name', 'dict_size', 'elapsed', 'elapsed_short', 'encode_base64',
-        'equal', 'even', 'exp', 'extract', 'factorial', 'factors',
-        'file_size_k', 'find', 'find_all', 'find_any', 'find_replace', 'filter',
-        'flatten', 'float32_to_atom', 'float64_to_atom', 'floor',
-        'format_timedate', 'free_console', 'from_polar', 'gcd', 'get_file_base',
-        'get_file_extension', 'get_file_name', 'get_file_name_and_path',
-        'get_file_path', 'get_file_path_and_name', 'get_maxprime', 'get_prime',
-        'get_primes', 'get_primes_le', 'get_proper_dir', 'get_proper_path',
-        'get_rand', 'get_routine_info', 'get_test_abort', 'get_test_logfile',
-        'get_test_pause', 'get_test_verbosity', 'get_tzid', 'getd', 'getdd',
-        'getd_all_keys', 'getd_by_index', 'getd_index', 'getd_partial_key',
-        'glAttachShader', 'glBindBuffer', 'glBindTexture', 'glBufferData',
-        'glCanvasSpecialText', 'glClear', 'glClearColor', 'glColor',
-        'glCompileShader', 'glCreateBuffer', 'glCreateProgram',
-        'glCreateShader', 'glCreateTexture', 'glDeleteProgram',
-        'glDeleteShader', 'glDrawArrays', 'glEnable',
-        'glEnableVertexAttribArray', 'glFloat32Array', 'glInt32Array',
-        'glFlush', 'glGetAttribLocation', 'glGetError', 'glGetProgramInfoLog',
-        'glGetProgramParameter', 'glGetShaderInfoLog', 'glGetShaderParameter',
-        'glGetUniformLocation', 'glLinkProgram', 'glLoadIdentity',
-        'glMatrixMode', 'glOrtho', 'glRotatef', 'glShadeModel',
-        'glShaderSource', 'glSimpleA7texcoords', 'glTexImage2Dc',
-        'glTexParameteri', 'glTranslate', 'glUniform1f', 'glUniform1i',
-        'glUniformMatrix4fv', 'glUseProgram', 'glVertex',
-        'glVertexAttribPointer', 'glViewport', 'head', 'hsv_to_rgb', 'iff',
-        'iif', 'include_file', 'incl0de_file', 'insert', 'instance',
-        'int_to_bits', 'int_to_bytes', 'is_dict', 'is_integer', 's_leap_year',
-        'is_prime', 'is_prime2', 'islower', 'isupper', 'Icallback',
-        'iup_isdouble', 'iup_isprint', 'iup_XkeyBase', 'IupAppend', 'IupAlarm',
-        'IupBackgroundBox', 'IupButton', 'IupCalendar', 'IupCanvas',
-        'IupClipboard', 'IupClose', 'IupCloseOnEscape', 'IupControlsOpen',
-        'IupDatePick', 'IupDestroy', 'IupDialog', 'IupDrawArc', 'IupDrawBegin',
-        'IupDrawEnd', 'IupDrawGetSize', 'IupDrawGetTextSize', 'IupDrawLine',
-        'IupDrawRectangle', 'IupDrawText', 'IupExpander', 'IupFill',
-        'IupFlatLabel', 'IupFlatList', 'IupFlatTree', 'IupFlush', 'IupFrame',
-        'IupGetAttribute', 'IupGetAttributeId', 'IupGetAttributePtr',
-        'IupGetBrother', 'IupGetChild', 'IupGetChildCount', 'IupGetClassName',
-        'IupGetDialog', 'IupGetDialogChild', 'IupGetDouble', 'IupGetFocus',
-        'IupGetGlobal', 'IupGetGlobalInt', 'IupGetGlobalIntInt', 'IupGetInt',
-        'IupGetInt2', 'IupGetIntId', 'IupGetIntInt', 'IupGetParent',
-        'IupGLCanvas', 'IupGLCanvasOpen', 'IupGLMakeCurrent', 'IupGraph',
-        'IupHbox', 'IupHide', 'IupImage', 'IupImageRGBA', 'IupItem',
-        'iupKeyCodeToName', 'IupLabel', 'IupLink', 'IupList', 'IupMap',
-        'IupMenu', 'IupMenuItem', 'IupMessage', 'IupMessageDlg', 'IupMultiBox',
-        'IupMultiLine', 'IupNextField', 'IupNormaliser', 'IupOpen',
-        'IupPlayInput', 'IupPopup', 'IupPreviousField', 'IupProgressBar',
-        'IupRadio', 'IupRecordInput', 'IupRedraw', 'IupRefresh',
-        'IupRefreshChildren', 'IupSeparator', 'IupSetAttribute',
-        'IupSetAttributes', 'IupSetAttributeHandle', 'IupSetAttributeId',
-        'IupSetAttributePtr', 'IupSetCallback', 'IupSetCallbacks',
-        'IupSetDouble', 'IupSetFocus', 'IupSetGlobal', 'IupSetGlobalInt',
-        'IupSetGlobalFunction', 'IupSetHandle', 'IupSetInt',
-        'IupSetStrAttribute', 'IupSetStrGlobal', 'IupShow', 'IupShowXY',
-        'IupSplit', 'IupStoreAttribute', 'IupSubmenu', 'IupTable',
-        'IupTableClearSelected', 'IupTableClick_cb', 'IupTableGetSelected',
-        'IupTableResize_cb', 'IupTableSetData', 'IupTabs', 'IupText',
-        'IupTimer', 'IupToggle', 'IupTreeAddNodes', 'IupTreeView', 'IupUpdate',
-        'IupValuator', 'IupVbox', 'join', 'join_by', 'join_path', 'k_perm',
-        'largest', 'lcm', 'length', 'log', 'log10', 'log2', 'lower',
-        'm4_crossProduct', 'm4_inverse', 'm4_lookAt', 'm4_multiply',
-        'm4_normalize', 'm4_perspective', 'm4_subtractVectors', 'm4_xRotate',
-        'm4_yRotate', 'machine_bits', 'machine_word', 'match', 'match_all',
-        'match_replace', 'max', 'maxsq', 'min', 'minsq', 'mod', 'mpfr_add',
-        'mpfr_ceil', 'mpfr_cmp', 'mpfr_cmp_si', 'mpfr_const_pi', 'mpfr_div',
-        'mpfr_div_si', 'mpfr_div_z', 'mpfr_floor', 'mpfr_free', 'mpfr_get_d',
-        'mpfr_get_default_precision', 'mpfr_get_default_rounding_mode',
-        'mpfr_get_fixed', 'mpfr_get_precision', 'mpfr_get_si', 'mpfr_init',
-        'mpfr_inits', 'mpfr_init_set', 'mpfr_init_set_q', 'mpfr_init_set_z',
-        'mpfr_mul', 'mpfr_mul_si', 'mpfr_pow_si', 'mpfr_set', 'mpfr_set_d',
-        'mpfr_set_default_precision', 'mpfr_set_default_rounding_mode',
-        'mpfr_set_precision', 'mpfr_set_q', 'mpfr_set_si', 'mpfr_set_str',
-        'mpfr_set_z', 'mpfr_si_div', 'mpfr_si_sub', 'mpfr_sqrt', 'mpfr_sub',
-        'mpfr_sub_si', 'mpq_abs', 'mpq_add', 'mpq_add_si', 'mpq_canonicalize',
-        'mpq_cmp', 'mpq_cmp_si', 'mpq_div', 'mpq_div_2exp', 'mpq_free',
-        'mpq_get_den', 'mpq_get_num', 'mpq_get_str', 'mpq_init', 'mpq_init_set',
-        'mpq_init_set_si', 'mpq_init_set_str', 'mpq_init_set_z', 'mpq_inits',
-        'mpq_inv', 'mpq_mul', 'mpq_neg', 'mpq_set', 'mpq_set_si', 'mpq_set_str',
-        'mpq_set_z', 'mpq_sub', 'mpz_abs', 'mpz_add', 'mpz_addmul',
-        'mpz_addmul_ui', 'mpz_addmul_si', 'mpz_add_si', 'mpz_add_ui', 'mpz_and',
-        'mpz_bin_uiui', 'mpz_cdiv_q', 'mpz_cmp', 'mpz_cmp_si', 'mpz_divexact',
-        'mpz_divexact_ui', 'mpz_divisible_p', 'mpz_divisible_ui_p', 'mpz_even',
-        'mpz_fac_ui', 'mpz_factorstring', 'mpz_fdiv_q', 'mpz_fdiv_q_2exp',
-        'mpz_fdiv_q_ui', 'mpz_fdiv_qr', 'mpz_fdiv_r', 'mpz_fdiv_ui',
-        'mpz_fib_ui', 'mpz_fib2_ui', 'mpz_fits_atom', 'mpz_fits_integer',
-        'mpz_free', 'mpz_gcd', 'mpz_gcd_ui', 'mpz_get_atom', 'mpz_get_integer',
-        'mpz_get_short_str', 'mpz_get_str', 'mpz_init', 'mpz_init_set',
-        'mpz_inits', 'mpz_invert', 'mpz_lcm', 'mpz_lcm_ui', 'mpz_max',
-        'mpz_min', 'mpz_mod', 'mpz_mod_ui', 'mpz_mul', 'mpz_mul_2exp',
-        'mpz_mul_d', 'mpz_mul_si', 'mpz_neg', 'mpz_nthroot', 'mpz_odd',
-        'mpz_pollard_rho', 'mpz_pow_ui', 'mpz_powm', 'mpz_powm_ui', 'mpz_prime',
-        'mpz_prime_factors', 'mpz_prime_mr', 'mpz_rand', 'mpz_rand_ui',
-        'mpz_re_compose', 'mpz_remove', 'mpz_scan0', 'mpz_scan1', 'mpz_set',
-        'mpz_set_d', 'mpz_set_si', 'mpz_set_str', 'mpz_set_v', 'mpz_sign',
-        'mpz_sizeinbase', 'mpz_sqrt', 'mpz_sub', 'mpz_sub_si', 'mpz_sub_ui',
-        'mpz_si_sub', 'mpz_tdiv_q_2exp', 'mpz_tdiv_r_2exp', 'mpz_tstbit',
-        'mpz_ui_pow_ui', 'mpz_xor', 'named_dict', 'new_dict', 'new_queue',
-        'new_stack', 'not_bits', 'not_bitsu', 'odd', 'or_all', 'or_allu',
-        'or_bits', 'or_bitsu', 'ord', 'ordinal', 'ordinant',
-        'override_timezone', 'pad', 'pad_head', 'pad_tail', 'parse_date_string',
-        'papply', 'peep', 'peepn', 'peep_dict', 'permute', 'permutes',
-        'platform', 'pop', 'popn', 'pop_dict', 'power', 'pp', 'ppEx', 'ppExf',
-        'ppf', 'ppOpt', 'pq_add', 'pq_destroy', 'pq_empty', 'pq_new', 'pq_peek',
-        'pq_pop', 'pq_pop_data', 'pq_size', 'prepend', 'prime_factors',
-        'printf', 'product', 'proper', 'push', 'pushn', 'putd', 'puts',
-        'queue_empty', 'queue_size', 'rand', 'rand_range', 'reinstate',
-        'remainder', 'remove', 'remove_all', 'repeat', 'repeatch', 'replace',
-        'requires', 'reverse', 'rfind', 'rgb', 'rmatch', 'rmdr', 'rnd', 'round',
-        'routine_id', 'scanf', 'serialize', 'series', 'set_rand',
-        'set_test_abort', 'set_test_logfile', 'set_test_module',
-        'set_test_pause', 'set_test_verbosity', 'set_timedate_formats',
-        'set_timezone', 'setd', 'setd_default', 'shorten', 'sha256',
-        'shift_bits', 'shuffle', 'sign', 'sin', 'smallest', 'sort',
-        'sort_columns', 'speak', 'splice', 'split', 'split_any', 'split_by',
-        'sprint', 'sprintf', 'sq_abs', 'sq_add', 'sq_and', 'sq_and_bits',
-        'sq_arccos', 'sq_arcsin', 'sq_arctan', 'sq_atom', 'sq_ceil', 'sq_cmp',
-        'sq_cos', 'sq_div', 'sq_even', 'sq_eq', 'sq_floor', 'sq_floor_div',
-        'sq_ge', 'sq_gt', 'sq_int', 'sq_le', 'sq_log', 'sq_log10', 'sq_log2',
-        'sq_lt', 'sq_max', 'sq_min', 'sq_mod', 'sq_mul', 'sq_ne', 'sq_not',
-        'sq_not_bits', 'sq_odd', 'sq_or', 'sq_or_bits', 'sq_power', 'sq_rand',
-        'sq_remainder', 'sq_rmdr', 'sq_rnd', 'sq_round', 'sq_seq', 'sq_sign',
-        'sq_sin', 'sq_sqrt', 'sq_str', 'sq_sub', 'sq_tan', 'sq_trunc',
-        'sq_uminus', 'sq_xor', 'sq_xor_bits', 'sqrt', 'square_free',
-        'stack_empty', 'stack_size', 'substitute', 'substitute_all', 'sum',
-        'tail', 'tan', 'test_equal', 'test_fail', 'test_false',
-        'test_not_equal', 'test_pass', 'test_summary', 'test_true',
-        'text_color', 'throw', 'time', 'timedate_diff', 'timedelta',
-        'to_integer', 'to_number', 'to_rgb', 'to_string', 'traverse_dict',
-        'traverse_dict_partial_key', 'trim', 'trim_head', 'trim_tail', 'trunc',
-        'tagset', 'tagstart', 'typeof', 'unique', 'unix_dict', 'upper',
-        'utf8_to_utf32', 'utf32_to_utf8', 'version', 'vlookup', 'vslice',
-        'wglGetProcAddress', 'wildcard_file', 'wildcard_match', 'with_rho',
-        'with_theta', 'xml_new_doc', 'xml_new_element', 'xml_set_attribute',
-        'xml_sprint', 'xor_bits', 'xor_bitsu',
-        'accept', 'allocate', 'allocate_string', 'allow_break', 'ARM',
-        'atom_to_float80', 'c_func', 'c_proc', 'call_back', 'chdir',
-        'check_break', 'clearDib', 'close', 'closesocket', 'console',
-        'copy_file', 'create', 'create_directory', 'create_thread',
-        'curl_easy_cleanup', 'curl_easy_get_file', 'curl_easy_init',
-        'curl_easy_perform', 'curl_easy_perform_ex', 'curl_easy_setopt',
-        'curl_easy_strerror', 'curl_global_cleanup', 'curl_global_init',
-        'curl_slist_append', 'curl_slist_free_all', 'current_dir', 'cursor',
-        'define_c_func', 'define_c_proc', 'delete', 'delete_cs', 'delete_file',
-        'dir', 'DLL', 'drawDib', 'drawShadedPolygonToDib', 'ELF32', 'ELF64',
-        'enter_cs', 'eval', 'exit_thread', 'free', 'file_exists', 'final',
-        'float80_to_atom', 'format', 'get_bytes', 'get_file_date',
-        'get_file_size', 'get_file_type', 'get_interpreter', 'get_key',
-        'get_socket_error', 'get_text', 'get_thread_exitcode', 'get_thread_id',
-        'getc', 'getenv', 'gets', 'getsockaddr', 'glBegin', 'glCallList',
-        'glFrustum', 'glGenLists', 'glGetString', 'glLight', 'glMaterial',
-        'glNewList', 'glNormal', 'glPopMatrix', 'glPushMatrix', 'glRotate',
-        'glEnd', 'glEndList', 'glTexImage2D', 'goto', 'GUI', 'icons', 'ilASM',
-        'include_files', 'include_paths', 'init_cs', 'ip_to_string',
-        'IupConfig', 'IupConfigDialogClosed', 'IupConfigDialogShow',
-        'IupConfigGetVariableInt', 'IupConfigLoad', 'IupConfigSave',
-        'IupConfigSetVariableInt', 'IupExitLoop', 'IupFileDlg', 'IupFileList',
-        'IupGLSwapBuffers', 'IupHelp', 'IupLoopStep', 'IupMainLoop',
-        'IupNormalizer', 'IupPlot', 'IupPlotAdd', 'IupPlotBegin', 'IupPlotEnd',
-        'IupPlotInsert', 'IupSaveImage', 'IupTreeGetUserId', 'IupUser',
-        'IupVersion', 'IupVersionDate', 'IupVersionNumber', 'IupVersionShow',
-        'killDib', 'leave_cs', 'listen', 'manifest', 'mem_copy', 'mem_set',
-        'mpfr_gamma', 'mpfr_printf', 'mpfr_sprintf', 'mpz_export', 'mpz_import',
-        'namespace', 'new', 'newDib', 'open', 'open_dll', 'PE32', 'PE64',
-        'peek', 'peek_string', 'peek1s', 'peek1u', 'peek2s', 'peek2u', 'peek4s',
-        'peek4u', 'peek8s', 'peek8u', 'peekNS', 'peekns', 'peeknu', 'poke',
-        'poke2', 'poke4', 'poke8', 'pokeN', 'poke_string', 'poke_wstring',
-        'position', 'progress', 'prompt_number', 'prompt_string', 'read_file',
-        'read_lines', 'recv', 'resume_thread', 'seek', 'select', 'send',
-        'setHandler', 'shutdown', 'sleep', 'SO', 'sockaddr_in', 'socket',
-        'split_path', 'suspend_thread', 'system', 'system_exec', 'system_open',
-        'system_wait', 'task_clock_start', 'task_clock_stop', 'task_create',
-        'task_delay', 'task_list', 'task_schedule', 'task_self', 'task_status',
-        'task_suspend', 'task_yield', 'thread_safe_string', 'try_cs',
-        'utf8_to_utf16', 'utf16_to_utf8', 'utf16_to_utf32', 'utf32_to_utf16',
-        'video_config', 'WSACleanup', 'wait_thread', 'walk_dir', 'where',
-        'write_lines', 'wait_key'
+        "abort",
+        "abs",
+        "adjust_timedate",
+        "and_bits",
+        "and_bitsu",
+        "apply",
+        "append",
+        "arccos",
+        "arcsin",
+        "arctan",
+        "assert",
+        "atan2",
+        "atom_to_float32",
+        "atom_to_float64",
+        "bankers_rounding",
+        "beep",
+        "begins",
+        "binary_search",
+        "bits_to_int",
+        "bk_color",
+        "bytes_to_int",
+        "call_func",
+        "call_proc",
+        "cdCanvasActivate",
+        "cdCanvasArc",
+        "cdCanvasBegin",
+        "cdCanvasBox",
+        "cdCanvasChord",
+        "cdCanvasCircle",
+        "cdCanvasClear",
+        "cdCanvasEnd",
+        "cdCanvasFlush",
+        "cdCanvasFont",
+        "cdCanvasGetImageRGB",
+        "cdCanvasGetSize",
+        "cdCanvasGetTextAlignment",
+        "cdCanvasGetTextSize",
+        "cdCanvasLine",
+        "cdCanvasMark",
+        "cdCanvasMarkSize",
+        "cdCanvasMultiLineVectorText",
+        "cdCanvasPixel",
+        "cdCanvasRect",
+        "cdCanvasRoundedBox",
+        "cdCanvasRoundedRect",
+        "cdCanvasSector",
+        "cdCanvasSetAttribute",
+        "cdCanvasSetBackground",
+        "cdCanvasSetFillMode",
+        "cdCanvasSetForeground",
+        "cdCanvasSetInteriorStyle",
+        "cdCanvasSetLineStyle",
+        "cdCanvasSetLineWidth",
+        "cdCanvasSetTextAlignment",
+        "cdCanvasText",
+        "cdCanvasSetTextOrientation",
+        "cdCanvasGetTextOrientation",
+        "cdCanvasVectorText",
+        "cdCanvasVectorTextDirection",
+        "cdCanvasVectorTextSize",
+        "cdCanvasVertex",
+        "cdCreateCanvas",
+        "cdDecodeAlpha",
+        "cdDecodeColor",
+        "cdDecodeColorAlpha",
+        "cdEncodeAlpha",
+        "cdEncodeColor",
+        "cdEncodeColorAlpha",
+        "cdKillCanvas",
+        "cdVersion",
+        "cdVersionDate",
+        "ceil",
+        "change_timezone",
+        "choose",
+        "clear_screen",
+        "columnize",
+        "command_line",
+        "compare",
+        "complex_abs",
+        "complex_add",
+        "complex_arg",
+        "complex_conjugate",
+        "complex_cos",
+        "complex_cosh",
+        "complex_div",
+        "complex_exp",
+        "complex_imag",
+        "complex_inv",
+        "complex_log",
+        "complex_mul",
+        "complex_neg",
+        "complex_new",
+        "complex_norm",
+        "complex_power",
+        "complex_rho",
+        "complex_real",
+        "complex_round",
+        "complex_sin",
+        "complex_sinh",
+        "complex_sprint",
+        "complex_sqrt",
+        "complex_sub",
+        "complex_theta",
+        "concat",
+        "cos",
+        "crash",
+        "custom_sort",
+        "date",
+        "day_of_week",
+        "day_of_year",
+        "days_in_month",
+        "decode_base64",
+        "decode_flags",
+        "deep_copy",
+        "deld",
+        "deserialize",
+        "destroy_dict",
+        "destroy_queue",
+        "destroy_stack",
+        "dict_name",
+        "dict_size",
+        "elapsed",
+        "elapsed_short",
+        "encode_base64",
+        "equal",
+        "even",
+        "exp",
+        "extract",
+        "factorial",
+        "factors",
+        "file_size_k",
+        "find",
+        "find_all",
+        "find_any",
+        "find_replace",
+        "filter",
+        "flatten",
+        "float32_to_atom",
+        "float64_to_atom",
+        "floor",
+        "format_timedate",
+        "free_console",
+        "from_polar",
+        "gcd",
+        "get_file_base",
+        "get_file_extension",
+        "get_file_name",
+        "get_file_name_and_path",
+        "get_file_path",
+        "get_file_path_and_name",
+        "get_maxprime",
+        "get_prime",
+        "get_primes",
+        "get_primes_le",
+        "get_proper_dir",
+        "get_proper_path",
+        "get_rand",
+        "get_routine_info",
+        "get_test_abort",
+        "get_test_logfile",
+        "get_test_pause",
+        "get_test_verbosity",
+        "get_tzid",
+        "getd",
+        "getdd",
+        "getd_all_keys",
+        "getd_by_index",
+        "getd_index",
+        "getd_partial_key",
+        "glAttachShader",
+        "glBindBuffer",
+        "glBindTexture",
+        "glBufferData",
+        "glCanvasSpecialText",
+        "glClear",
+        "glClearColor",
+        "glColor",
+        "glCompileShader",
+        "glCreateBuffer",
+        "glCreateProgram",
+        "glCreateShader",
+        "glCreateTexture",
+        "glDeleteProgram",
+        "glDeleteShader",
+        "glDrawArrays",
+        "glEnable",
+        "glEnableVertexAttribArray",
+        "glFloat32Array",
+        "glInt32Array",
+        "glFlush",
+        "glGetAttribLocation",
+        "glGetError",
+        "glGetProgramInfoLog",
+        "glGetProgramParameter",
+        "glGetShaderInfoLog",
+        "glGetShaderParameter",
+        "glGetUniformLocation",
+        "glLinkProgram",
+        "glLoadIdentity",
+        "glMatrixMode",
+        "glOrtho",
+        "glRotatef",
+        "glShadeModel",
+        "glShaderSource",
+        "glSimpleA7texcoords",
+        "glTexImage2Dc",
+        "glTexParameteri",
+        "glTranslate",
+        "glUniform1f",
+        "glUniform1i",
+        "glUniformMatrix4fv",
+        "glUseProgram",
+        "glVertex",
+        "glVertexAttribPointer",
+        "glViewport",
+        "head",
+        "hsv_to_rgb",
+        "iff",
+        "iif",
+        "include_file",
+        "incl0de_file",
+        "insert",
+        "instance",
+        "int_to_bits",
+        "int_to_bytes",
+        "is_dict",
+        "is_integer",
+        "s_leap_year",
+        "is_prime",
+        "is_prime2",
+        "islower",
+        "isupper",
+        "Icallback",
+        "iup_isdouble",
+        "iup_isprint",
+        "iup_XkeyBase",
+        "IupAppend",
+        "IupAlarm",
+        "IupBackgroundBox",
+        "IupButton",
+        "IupCalendar",
+        "IupCanvas",
+        "IupClipboard",
+        "IupClose",
+        "IupCloseOnEscape",
+        "IupControlsOpen",
+        "IupDatePick",
+        "IupDestroy",
+        "IupDialog",
+        "IupDrawArc",
+        "IupDrawBegin",
+        "IupDrawEnd",
+        "IupDrawGetSize",
+        "IupDrawGetTextSize",
+        "IupDrawLine",
+        "IupDrawRectangle",
+        "IupDrawText",
+        "IupExpander",
+        "IupFill",
+        "IupFlatLabel",
+        "IupFlatList",
+        "IupFlatTree",
+        "IupFlush",
+        "IupFrame",
+        "IupGetAttribute",
+        "IupGetAttributeId",
+        "IupGetAttributePtr",
+        "IupGetBrother",
+        "IupGetChild",
+        "IupGetChildCount",
+        "IupGetClassName",
+        "IupGetDialog",
+        "IupGetDialogChild",
+        "IupGetDouble",
+        "IupGetFocus",
+        "IupGetGlobal",
+        "IupGetGlobalInt",
+        "IupGetGlobalIntInt",
+        "IupGetInt",
+        "IupGetInt2",
+        "IupGetIntId",
+        "IupGetIntInt",
+        "IupGetParent",
+        "IupGLCanvas",
+        "IupGLCanvasOpen",
+        "IupGLMakeCurrent",
+        "IupGraph",
+        "IupHbox",
+        "IupHide",
+        "IupImage",
+        "IupImageRGBA",
+        "IupItem",
+        "iupKeyCodeToName",
+        "IupLabel",
+        "IupLink",
+        "IupList",
+        "IupMap",
+        "IupMenu",
+        "IupMenuItem",
+        "IupMessage",
+        "IupMessageDlg",
+        "IupMultiBox",
+        "IupMultiLine",
+        "IupNextField",
+        "IupNormaliser",
+        "IupOpen",
+        "IupPlayInput",
+        "IupPopup",
+        "IupPreviousField",
+        "IupProgressBar",
+        "IupRadio",
+        "IupRecordInput",
+        "IupRedraw",
+        "IupRefresh",
+        "IupRefreshChildren",
+        "IupSeparator",
+        "IupSetAttribute",
+        "IupSetAttributes",
+        "IupSetAttributeHandle",
+        "IupSetAttributeId",
+        "IupSetAttributePtr",
+        "IupSetCallback",
+        "IupSetCallbacks",
+        "IupSetDouble",
+        "IupSetFocus",
+        "IupSetGlobal",
+        "IupSetGlobalInt",
+        "IupSetGlobalFunction",
+        "IupSetHandle",
+        "IupSetInt",
+        "IupSetStrAttribute",
+        "IupSetStrGlobal",
+        "IupShow",
+        "IupShowXY",
+        "IupSplit",
+        "IupStoreAttribute",
+        "IupSubmenu",
+        "IupTable",
+        "IupTableClearSelected",
+        "IupTableClick_cb",
+        "IupTableGetSelected",
+        "IupTableResize_cb",
+        "IupTableSetData",
+        "IupTabs",
+        "IupText",
+        "IupTimer",
+        "IupToggle",
+        "IupTreeAddNodes",
+        "IupTreeView",
+        "IupUpdate",
+        "IupValuator",
+        "IupVbox",
+        "join",
+        "join_by",
+        "join_path",
+        "k_perm",
+        "largest",
+        "lcm",
+        "length",
+        "log",
+        "log10",
+        "log2",
+        "lower",
+        "m4_crossProduct",
+        "m4_inverse",
+        "m4_lookAt",
+        "m4_multiply",
+        "m4_normalize",
+        "m4_perspective",
+        "m4_subtractVectors",
+        "m4_xRotate",
+        "m4_yRotate",
+        "machine_bits",
+        "machine_word",
+        "match",
+        "match_all",
+        "match_replace",
+        "max",
+        "maxsq",
+        "min",
+        "minsq",
+        "mod",
+        "mpfr_add",
+        "mpfr_ceil",
+        "mpfr_cmp",
+        "mpfr_cmp_si",
+        "mpfr_const_pi",
+        "mpfr_div",
+        "mpfr_div_si",
+        "mpfr_div_z",
+        "mpfr_floor",
+        "mpfr_free",
+        "mpfr_get_d",
+        "mpfr_get_default_precision",
+        "mpfr_get_default_rounding_mode",
+        "mpfr_get_fixed",
+        "mpfr_get_precision",
+        "mpfr_get_si",
+        "mpfr_init",
+        "mpfr_inits",
+        "mpfr_init_set",
+        "mpfr_init_set_q",
+        "mpfr_init_set_z",
+        "mpfr_mul",
+        "mpfr_mul_si",
+        "mpfr_pow_si",
+        "mpfr_set",
+        "mpfr_set_d",
+        "mpfr_set_default_precision",
+        "mpfr_set_default_rounding_mode",
+        "mpfr_set_precision",
+        "mpfr_set_q",
+        "mpfr_set_si",
+        "mpfr_set_str",
+        "mpfr_set_z",
+        "mpfr_si_div",
+        "mpfr_si_sub",
+        "mpfr_sqrt",
+        "mpfr_sub",
+        "mpfr_sub_si",
+        "mpq_abs",
+        "mpq_add",
+        "mpq_add_si",
+        "mpq_canonicalize",
+        "mpq_cmp",
+        "mpq_cmp_si",
+        "mpq_div",
+        "mpq_div_2exp",
+        "mpq_free",
+        "mpq_get_den",
+        "mpq_get_num",
+        "mpq_get_str",
+        "mpq_init",
+        "mpq_init_set",
+        "mpq_init_set_si",
+        "mpq_init_set_str",
+        "mpq_init_set_z",
+        "mpq_inits",
+        "mpq_inv",
+        "mpq_mul",
+        "mpq_neg",
+        "mpq_set",
+        "mpq_set_si",
+        "mpq_set_str",
+        "mpq_set_z",
+        "mpq_sub",
+        "mpz_abs",
+        "mpz_add",
+        "mpz_addmul",
+        "mpz_addmul_ui",
+        "mpz_addmul_si",
+        "mpz_add_si",
+        "mpz_add_ui",
+        "mpz_and",
+        "mpz_bin_uiui",
+        "mpz_cdiv_q",
+        "mpz_cmp",
+        "mpz_cmp_si",
+        "mpz_divexact",
+        "mpz_divexact_ui",
+        "mpz_divisible_p",
+        "mpz_divisible_ui_p",
+        "mpz_even",
+        "mpz_fac_ui",
+        "mpz_factorstring",
+        "mpz_fdiv_q",
+        "mpz_fdiv_q_2exp",
+        "mpz_fdiv_q_ui",
+        "mpz_fdiv_qr",
+        "mpz_fdiv_r",
+        "mpz_fdiv_ui",
+        "mpz_fib_ui",
+        "mpz_fib2_ui",
+        "mpz_fits_atom",
+        "mpz_fits_integer",
+        "mpz_free",
+        "mpz_gcd",
+        "mpz_gcd_ui",
+        "mpz_get_atom",
+        "mpz_get_integer",
+        "mpz_get_short_str",
+        "mpz_get_str",
+        "mpz_init",
+        "mpz_init_set",
+        "mpz_inits",
+        "mpz_invert",
+        "mpz_lcm",
+        "mpz_lcm_ui",
+        "mpz_max",
+        "mpz_min",
+        "mpz_mod",
+        "mpz_mod_ui",
+        "mpz_mul",
+        "mpz_mul_2exp",
+        "mpz_mul_d",
+        "mpz_mul_si",
+        "mpz_neg",
+        "mpz_nthroot",
+        "mpz_odd",
+        "mpz_pollard_rho",
+        "mpz_pow_ui",
+        "mpz_powm",
+        "mpz_powm_ui",
+        "mpz_prime",
+        "mpz_prime_factors",
+        "mpz_prime_mr",
+        "mpz_rand",
+        "mpz_rand_ui",
+        "mpz_re_compose",
+        "mpz_remove",
+        "mpz_scan0",
+        "mpz_scan1",
+        "mpz_set",
+        "mpz_set_d",
+        "mpz_set_si",
+        "mpz_set_str",
+        "mpz_set_v",
+        "mpz_sign",
+        "mpz_sizeinbase",
+        "mpz_sqrt",
+        "mpz_sub",
+        "mpz_sub_si",
+        "mpz_sub_ui",
+        "mpz_si_sub",
+        "mpz_tdiv_q_2exp",
+        "mpz_tdiv_r_2exp",
+        "mpz_tstbit",
+        "mpz_ui_pow_ui",
+        "mpz_xor",
+        "named_dict",
+        "new_dict",
+        "new_queue",
+        "new_stack",
+        "not_bits",
+        "not_bitsu",
+        "odd",
+        "or_all",
+        "or_allu",
+        "or_bits",
+        "or_bitsu",
+        "ord",
+        "ordinal",
+        "ordinant",
+        "override_timezone",
+        "pad",
+        "pad_head",
+        "pad_tail",
+        "parse_date_string",
+        "papply",
+        "peep",
+        "peepn",
+        "peep_dict",
+        "permute",
+        "permutes",
+        "platform",
+        "pop",
+        "popn",
+        "pop_dict",
+        "power",
+        "pp",
+        "ppEx",
+        "ppExf",
+        "ppf",
+        "ppOpt",
+        "pq_add",
+        "pq_destroy",
+        "pq_empty",
+        "pq_new",
+        "pq_peek",
+        "pq_pop",
+        "pq_pop_data",
+        "pq_size",
+        "prepend",
+        "prime_factors",
+        "printf",
+        "product",
+        "proper",
+        "push",
+        "pushn",
+        "putd",
+        "puts",
+        "queue_empty",
+        "queue_size",
+        "rand",
+        "rand_range",
+        "reinstate",
+        "remainder",
+        "remove",
+        "remove_all",
+        "repeat",
+        "repeatch",
+        "replace",
+        "requires",
+        "reverse",
+        "rfind",
+        "rgb",
+        "rmatch",
+        "rmdr",
+        "rnd",
+        "round",
+        "routine_id",
+        "scanf",
+        "serialize",
+        "series",
+        "set_rand",
+        "set_test_abort",
+        "set_test_logfile",
+        "set_test_module",
+        "set_test_pause",
+        "set_test_verbosity",
+        "set_timedate_formats",
+        "set_timezone",
+        "setd",
+        "setd_default",
+        "shorten",
+        "sha256",
+        "shift_bits",
+        "shuffle",
+        "sign",
+        "sin",
+        "smallest",
+        "sort",
+        "sort_columns",
+        "speak",
+        "splice",
+        "split",
+        "split_any",
+        "split_by",
+        "sprint",
+        "sprintf",
+        "sq_abs",
+        "sq_add",
+        "sq_and",
+        "sq_and_bits",
+        "sq_arccos",
+        "sq_arcsin",
+        "sq_arctan",
+        "sq_atom",
+        "sq_ceil",
+        "sq_cmp",
+        "sq_cos",
+        "sq_div",
+        "sq_even",
+        "sq_eq",
+        "sq_floor",
+        "sq_floor_div",
+        "sq_ge",
+        "sq_gt",
+        "sq_int",
+        "sq_le",
+        "sq_log",
+        "sq_log10",
+        "sq_log2",
+        "sq_lt",
+        "sq_max",
+        "sq_min",
+        "sq_mod",
+        "sq_mul",
+        "sq_ne",
+        "sq_not",
+        "sq_not_bits",
+        "sq_odd",
+        "sq_or",
+        "sq_or_bits",
+        "sq_power",
+        "sq_rand",
+        "sq_remainder",
+        "sq_rmdr",
+        "sq_rnd",
+        "sq_round",
+        "sq_seq",
+        "sq_sign",
+        "sq_sin",
+        "sq_sqrt",
+        "sq_str",
+        "sq_sub",
+        "sq_tan",
+        "sq_trunc",
+        "sq_uminus",
+        "sq_xor",
+        "sq_xor_bits",
+        "sqrt",
+        "square_free",
+        "stack_empty",
+        "stack_size",
+        "substitute",
+        "substitute_all",
+        "sum",
+        "tail",
+        "tan",
+        "test_equal",
+        "test_fail",
+        "test_false",
+        "test_not_equal",
+        "test_pass",
+        "test_summary",
+        "test_true",
+        "text_color",
+        "throw",
+        "time",
+        "timedate_diff",
+        "timedelta",
+        "to_integer",
+        "to_number",
+        "to_rgb",
+        "to_string",
+        "traverse_dict",
+        "traverse_dict_partial_key",
+        "trim",
+        "trim_head",
+        "trim_tail",
+        "trunc",
+        "tagset",
+        "tagstart",
+        "typeof",
+        "unique",
+        "unix_dict",
+        "upper",
+        "utf8_to_utf32",
+        "utf32_to_utf8",
+        "version",
+        "vlookup",
+        "vslice",
+        "wglGetProcAddress",
+        "wildcard_file",
+        "wildcard_match",
+        "with_rho",
+        "with_theta",
+        "xml_new_doc",
+        "xml_new_element",
+        "xml_set_attribute",
+        "xml_sprint",
+        "xor_bits",
+        "xor_bitsu",
+        "accept",
+        "allocate",
+        "allocate_string",
+        "allow_break",
+        "ARM",
+        "atom_to_float80",
+        "c_func",
+        "c_proc",
+        "call_back",
+        "chdir",
+        "check_break",
+        "clearDib",
+        "close",
+        "closesocket",
+        "console",
+        "copy_file",
+        "create",
+        "create_directory",
+        "create_thread",
+        "curl_easy_cleanup",
+        "curl_easy_get_file",
+        "curl_easy_init",
+        "curl_easy_perform",
+        "curl_easy_perform_ex",
+        "curl_easy_setopt",
+        "curl_easy_strerror",
+        "curl_global_cleanup",
+        "curl_global_init",
+        "curl_slist_append",
+        "curl_slist_free_all",
+        "current_dir",
+        "cursor",
+        "define_c_func",
+        "define_c_proc",
+        "delete",
+        "delete_cs",
+        "delete_file",
+        "dir",
+        "DLL",
+        "drawDib",
+        "drawShadedPolygonToDib",
+        "ELF32",
+        "ELF64",
+        "enter_cs",
+        "eval",
+        "exit_thread",
+        "free",
+        "file_exists",
+        "final",
+        "float80_to_atom",
+        "format",
+        "get_bytes",
+        "get_file_date",
+        "get_file_size",
+        "get_file_type",
+        "get_interpreter",
+        "get_key",
+        "get_socket_error",
+        "get_text",
+        "get_thread_exitcode",
+        "get_thread_id",
+        "getc",
+        "getenv",
+        "gets",
+        "getsockaddr",
+        "glBegin",
+        "glCallList",
+        "glFrustum",
+        "glGenLists",
+        "glGetString",
+        "glLight",
+        "glMaterial",
+        "glNewList",
+        "glNormal",
+        "glPopMatrix",
+        "glPushMatrix",
+        "glRotate",
+        "glEnd",
+        "glEndList",
+        "glTexImage2D",
+        "goto",
+        "GUI",
+        "icons",
+        "ilASM",
+        "include_files",
+        "include_paths",
+        "init_cs",
+        "ip_to_string",
+        "IupConfig",
+        "IupConfigDialogClosed",
+        "IupConfigDialogShow",
+        "IupConfigGetVariableInt",
+        "IupConfigLoad",
+        "IupConfigSave",
+        "IupConfigSetVariableInt",
+        "IupExitLoop",
+        "IupFileDlg",
+        "IupFileList",
+        "IupGLSwapBuffers",
+        "IupHelp",
+        "IupLoopStep",
+        "IupMainLoop",
+        "IupNormalizer",
+        "IupPlot",
+        "IupPlotAdd",
+        "IupPlotBegin",
+        "IupPlotEnd",
+        "IupPlotInsert",
+        "IupSaveImage",
+        "IupTreeGetUserId",
+        "IupUser",
+        "IupVersion",
+        "IupVersionDate",
+        "IupVersionNumber",
+        "IupVersionShow",
+        "killDib",
+        "leave_cs",
+        "listen",
+        "manifest",
+        "mem_copy",
+        "mem_set",
+        "mpfr_gamma",
+        "mpfr_printf",
+        "mpfr_sprintf",
+        "mpz_export",
+        "mpz_import",
+        "namespace",
+        "new",
+        "newDib",
+        "open",
+        "open_dll",
+        "PE32",
+        "PE64",
+        "peek",
+        "peek_string",
+        "peek1s",
+        "peek1u",
+        "peek2s",
+        "peek2u",
+        "peek4s",
+        "peek4u",
+        "peek8s",
+        "peek8u",
+        "peekNS",
+        "peekns",
+        "peeknu",
+        "poke",
+        "poke2",
+        "poke4",
+        "poke8",
+        "pokeN",
+        "poke_string",
+        "poke_wstring",
+        "position",
+        "progress",
+        "prompt_number",
+        "prompt_string",
+        "read_file",
+        "read_lines",
+        "recv",
+        "resume_thread",
+        "seek",
+        "select",
+        "send",
+        "setHandler",
+        "shutdown",
+        "sleep",
+        "SO",
+        "sockaddr_in",
+        "socket",
+        "split_path",
+        "suspend_thread",
+        "system",
+        "system_exec",
+        "system_open",
+        "system_wait",
+        "task_clock_start",
+        "task_clock_stop",
+        "task_create",
+        "task_delay",
+        "task_list",
+        "task_schedule",
+        "task_self",
+        "task_status",
+        "task_suspend",
+        "task_yield",
+        "thread_safe_string",
+        "try_cs",
+        "utf8_to_utf16",
+        "utf16_to_utf8",
+        "utf16_to_utf32",
+        "utf32_to_utf16",
+        "video_config",
+        "WSACleanup",
+        "wait_thread",
+        "walk_dir",
+        "where",
+        "write_lines",
+        "wait_key",
     )
     constants = (
-        'ANY_QUEUE', 'ASCENDING', 'BLACK', 'BLOCK_CURSOR', 'BLUE',
-        'BRIGHT_CYAN', 'BRIGHT_BLUE', 'BRIGHT_GREEN', 'BRIGHT_MAGENTA',
-        'BRIGHT_RED', 'BRIGHT_WHITE', 'BROWN', 'C_DWORD', 'C_INT', 'C_POINTER',
-        'C_USHORT', 'C_WORD', 'CD_AMBER', 'CD_BLACK', 'CD_BLUE', 'CD_BOLD',
-        'CD_BOLD_ITALIC', 'CD_BOX', 'CD_CENTER', 'CD_CIRCLE', 'CD_CLOSED_LINES',
-        'CD_CONTINUOUS', 'CD_CUSTOM', 'CD_CYAN', 'CD_DARK_BLUE', 'CD_DARK_CYAN',
-        'CD_DARK_GRAY', 'CD_DARK_GREY', 'CD_DARK_GREEN', 'CD_DARK_MAGENTA',
-        'CD_DARK_RED', 'CD_DARK_YELLOW', 'CD_DASH_DOT', 'CD_DASH_DOT_DOT',
-        'CD_DASHED', 'CD_DBUFFER', 'CD_DEG2RAD', 'CD_DIAMOND', 'CD_DOTTED',
-        'CD_EAST', 'CD_EVENODD', 'CD_FILL', 'CD_GL', 'CD_GRAY', 'CD_GREY',
-        'CD_GREEN', 'CD_HATCH', 'CD_HOLLOW', 'CD_HOLLOW_BOX',
-        'CD_HOLLOW_CIRCLE', 'CD_HOLLOW_DIAMOND', 'CD_INDIGO', 'CD_ITALIC',
-        'CD_IUP', 'CD_IUPDBUFFER', 'CD_LIGHT_BLUE', 'CD_LIGHT_GRAY',
-        'CD_LIGHT_GREY', 'CD_LIGHT_GREEN', 'CD_LIGHT_PARCHMENT', 'CD_MAGENTA',
-        'CD_NAVY', 'CD_NORTH', 'CD_NORTH_EAST', 'CD_NORTH_WEST', 'CD_OLIVE',
-        'CD_OPEN_LINES', 'CD_ORANGE', 'CD_PARCHMENT', 'CD_PATTERN',
-        'CD_PRINTER', 'CD_PURPLE', 'CD_PLAIN', 'CD_PLUS', 'CD_QUERY',
-        'CD_RAD2DEG', 'CD_RED', 'CD_SILVER', 'CD_SOLID', 'CD_SOUTH_EAST',
-        'CD_SOUTH_WEST', 'CD_STAR', 'CD_STIPPLE', 'CD_STRIKEOUT',
-        'CD_UNDERLINE', 'CD_WEST', 'CD_WHITE', 'CD_WINDING', 'CD_VIOLET',
-        'CD_X', 'CD_YELLOW', 'CURLE_OK', 'CURLOPT_MAIL_FROM',
-        'CURLOPT_MAIL_RCPT', 'CURLOPT_PASSWORD', 'CURLOPT_READDATA',
-        'CURLOPT_READFUNCTION', 'CURLOPT_SSL_VERIFYPEER',
-        'CURLOPT_SSL_VERIFYHOST', 'CURLOPT_UPLOAD', 'CURLOPT_URL',
-        'CURLOPT_USE_SSL', 'CURLOPT_USERNAME', 'CURLOPT_VERBOSE',
-        'CURLOPT_WRITEFUNCTION', 'CURLUSESSL_ALL', 'CYAN', 'D_NAME',
-        'D_ATTRIBUTES', 'D_SIZE', 'D_YEAR', 'D_MONTH', 'D_DAY', 'D_HOUR',
-        'D_MINUTE', 'D_SECOND', 'D_CREATION', 'D_LASTACCESS', 'D_MODIFICATION',
-        'DT_YEAR', 'DT_MONTH', 'DT_DAY', 'DT_HOUR', 'DT_MINUTE', 'DT_SECOND',
-        'DT_DOW', 'DT_MSEC', 'DT_DOY', 'DT_GMT', 'EULER', 'E_CODE', 'E_ADDR',
-        'E_LINE', 'E_RTN', 'E_NAME', 'E_FILE', 'E_PATH', 'E_USER', 'false',
-        'False', 'FALSE', 'FIFO_QUEUE', 'FILETYPE_DIRECTORY', 'FILETYPE_FILE',
-        'GET_EOF', 'GET_FAIL', 'GET_IGNORE', 'GET_SUCCESS',
-        'GL_AMBIENT_AND_DIFFUSE', 'GL_ARRAY_BUFFER', 'GL_CLAMP',
-        'GL_CLAMP_TO_BORDER', 'GL_CLAMP_TO_EDGE', 'GL_COLOR_BUFFER_BIT',
-        'GL_COMPILE', 'GL_COMPILE_STATUS', 'GL_CULL_FACE',
-        'GL_DEPTH_BUFFER_BIT', 'GL_DEPTH_TEST', 'GL_EXTENSIONS', 'GL_FLAT',
-        'GL_FLOAT', 'GL_FRAGMENT_SHADER', 'GL_FRONT', 'GL_LIGHT0',
-        'GL_LIGHTING', 'GL_LINEAR', 'GL_LINK_STATUS', 'GL_MODELVIEW',
-        'GL_NEAREST', 'GL_NO_ERROR', 'GL_NORMALIZE', 'GL_POSITION',
-        'GL_PROJECTION', 'GL_QUAD_STRIP', 'GL_QUADS', 'GL_RENDERER',
-        'GL_REPEAT', 'GL_RGB', 'GL_RGBA', 'GL_SMOOTH', 'GL_STATIC_DRAW',
-        'GL_TEXTURE_2D', 'GL_TEXTURE_MAG_FILTER', 'GL_TEXTURE_MIN_FILTER',
-        'GL_TEXTURE_WRAP_S', 'GL_TEXTURE_WRAP_T', 'GL_TRIANGLES',
-        'GL_UNSIGNED_BYTE', 'GL_VENDOR', 'GL_VERSION', 'GL_VERTEX_SHADER',
-        'GRAY', 'GREEN', 'GT_LF_STRIPPED', 'GT_WHOLE_FILE', 'INVLN10',
-        'IUP_CLOSE', 'IUP_CONTINUE', 'IUP_DEFAULT', 'IUP_BLACK', 'IUP_BLUE',
-        'IUP_BUTTON1', 'IUP_BUTTON3', 'IUP_CENTER', 'IUP_CYAN', 'IUP_DARK_BLUE',
-        'IUP_DARK_CYAN', 'IUP_DARK_GRAY', 'IUP_DARK_GREY', 'IUP_DARK_GREEN',
-        'IUP_DARK_MAGENTA', 'IUP_DARK_RED', 'IUP_GRAY', 'IUP_GREY', 'IUP_GREEN',
-        'IUP_IGNORE', 'IUP_INDIGO', 'IUP_MAGENTA', 'IUP_MASK_INT',
-        'IUP_MASK_UINT', 'IUP_MOUSEPOS', 'IUP_NAVY', 'IUP_OLIVE', 'IUP_RECTEXT',
-        'IUP_RED', 'IUP_LIGHT_BLUE', 'IUP_LIGHT_GRAY', 'IUP_LIGHT_GREY',
-        'IUP_LIGHT_GREEN', 'IUP_ORANGE', 'IUP_PARCHMENT', 'IUP_PURPLE',
-        'IUP_SILVER', 'IUP_TEAL', 'IUP_VIOLET', 'IUP_WHITE', 'IUP_YELLOW',
-        'K_BS', 'K_cA', 'K_cC', 'K_cD', 'K_cF5', 'K_cK', 'K_cM', 'K_cN', 'K_cO',
-        'K_cP', 'K_cR', 'K_cS', 'K_cT', 'K_cW', 'K_CR', 'K_DEL', 'K_DOWN',
-        'K_END', 'K_ESC', 'K_F1', 'K_F2', 'K_F3', 'K_F4', 'K_F5', 'K_F6',
-        'K_F7', 'K_F8', 'K_F9', 'K_F10', 'K_F11', 'K_F12', 'K_HOME', 'K_INS',
-        'K_LEFT', 'K_MIDDLE', 'K_PGDN', 'K_PGUP', 'K_RIGHT', 'K_SP', 'K_TAB',
-        'K_UP', 'K_h', 'K_i', 'K_j', 'K_p', 'K_r', 'K_s', 'JS', 'LIFO_QUEUE',
-        'LINUX', 'MAX_HEAP', 'MAGENTA', 'MIN_HEAP', 'Nan', 'NO_CURSOR', 'null',
-        'NULL', 'PI', 'pp_Ascii', 'pp_Brkt', 'pp_Date', 'pp_File', 'pp_FltFmt',
-        'pp_Indent', 'pp_IntCh', 'pp_IntFmt', 'pp_Maxlen', 'pp_Nest',
-        'pp_Pause', 'pp_Q22', 'pp_StrFmt', 'RED', 'SEEK_OK', 'SLASH',
-        'TEST_ABORT', 'TEST_CRASH', 'TEST_PAUSE', 'TEST_PAUSE_FAIL',
-        'TEST_QUIET', 'TEST_SHOW_ALL', 'TEST_SHOW_FAILED', 'TEST_SUMMARY',
-        'true', 'True', 'TRUE', 'VC_SCRNLINES', 'WHITE', 'WINDOWS', 'YELLOW'
+        "ANY_QUEUE",
+        "ASCENDING",
+        "BLACK",
+        "BLOCK_CURSOR",
+        "BLUE",
+        "BRIGHT_CYAN",
+        "BRIGHT_BLUE",
+        "BRIGHT_GREEN",
+        "BRIGHT_MAGENTA",
+        "BRIGHT_RED",
+        "BRIGHT_WHITE",
+        "BROWN",
+        "C_DWORD",
+        "C_INT",
+        "C_POINTER",
+        "C_USHORT",
+        "C_WORD",
+        "CD_AMBER",
+        "CD_BLACK",
+        "CD_BLUE",
+        "CD_BOLD",
+        "CD_BOLD_ITALIC",
+        "CD_BOX",
+        "CD_CENTER",
+        "CD_CIRCLE",
+        "CD_CLOSED_LINES",
+        "CD_CONTINUOUS",
+        "CD_CUSTOM",
+        "CD_CYAN",
+        "CD_DARK_BLUE",
+        "CD_DARK_CYAN",
+        "CD_DARK_GRAY",
+        "CD_DARK_GREY",
+        "CD_DARK_GREEN",
+        "CD_DARK_MAGENTA",
+        "CD_DARK_RED",
+        "CD_DARK_YELLOW",
+        "CD_DASH_DOT",
+        "CD_DASH_DOT_DOT",
+        "CD_DASHED",
+        "CD_DBUFFER",
+        "CD_DEG2RAD",
+        "CD_DIAMOND",
+        "CD_DOTTED",
+        "CD_EAST",
+        "CD_EVENODD",
+        "CD_FILL",
+        "CD_GL",
+        "CD_GRAY",
+        "CD_GREY",
+        "CD_GREEN",
+        "CD_HATCH",
+        "CD_HOLLOW",
+        "CD_HOLLOW_BOX",
+        "CD_HOLLOW_CIRCLE",
+        "CD_HOLLOW_DIAMOND",
+        "CD_INDIGO",
+        "CD_ITALIC",
+        "CD_IUP",
+        "CD_IUPDBUFFER",
+        "CD_LIGHT_BLUE",
+        "CD_LIGHT_GRAY",
+        "CD_LIGHT_GREY",
+        "CD_LIGHT_GREEN",
+        "CD_LIGHT_PARCHMENT",
+        "CD_MAGENTA",
+        "CD_NAVY",
+        "CD_NORTH",
+        "CD_NORTH_EAST",
+        "CD_NORTH_WEST",
+        "CD_OLIVE",
+        "CD_OPEN_LINES",
+        "CD_ORANGE",
+        "CD_PARCHMENT",
+        "CD_PATTERN",
+        "CD_PRINTER",
+        "CD_PURPLE",
+        "CD_PLAIN",
+        "CD_PLUS",
+        "CD_QUERY",
+        "CD_RAD2DEG",
+        "CD_RED",
+        "CD_SILVER",
+        "CD_SOLID",
+        "CD_SOUTH_EAST",
+        "CD_SOUTH_WEST",
+        "CD_STAR",
+        "CD_STIPPLE",
+        "CD_STRIKEOUT",
+        "CD_UNDERLINE",
+        "CD_WEST",
+        "CD_WHITE",
+        "CD_WINDING",
+        "CD_VIOLET",
+        "CD_X",
+        "CD_YELLOW",
+        "CURLE_OK",
+        "CURLOPT_MAIL_FROM",
+        "CURLOPT_MAIL_RCPT",
+        "CURLOPT_PASSWORD",
+        "CURLOPT_READDATA",
+        "CURLOPT_READFUNCTION",
+        "CURLOPT_SSL_VERIFYPEER",
+        "CURLOPT_SSL_VERIFYHOST",
+        "CURLOPT_UPLOAD",
+        "CURLOPT_URL",
+        "CURLOPT_USE_SSL",
+        "CURLOPT_USERNAME",
+        "CURLOPT_VERBOSE",
+        "CURLOPT_WRITEFUNCTION",
+        "CURLUSESSL_ALL",
+        "CYAN",
+        "D_NAME",
+        "D_ATTRIBUTES",
+        "D_SIZE",
+        "D_YEAR",
+        "D_MONTH",
+        "D_DAY",
+        "D_HOUR",
+        "D_MINUTE",
+        "D_SECOND",
+        "D_CREATION",
+        "D_LASTACCESS",
+        "D_MODIFICATION",
+        "DT_YEAR",
+        "DT_MONTH",
+        "DT_DAY",
+        "DT_HOUR",
+        "DT_MINUTE",
+        "DT_SECOND",
+        "DT_DOW",
+        "DT_MSEC",
+        "DT_DOY",
+        "DT_GMT",
+        "EULER",
+        "E_CODE",
+        "E_ADDR",
+        "E_LINE",
+        "E_RTN",
+        "E_NAME",
+        "E_FILE",
+        "E_PATH",
+        "E_USER",
+        "false",
+        "False",
+        "FALSE",
+        "FIFO_QUEUE",
+        "FILETYPE_DIRECTORY",
+        "FILETYPE_FILE",
+        "GET_EOF",
+        "GET_FAIL",
+        "GET_IGNORE",
+        "GET_SUCCESS",
+        "GL_AMBIENT_AND_DIFFUSE",
+        "GL_ARRAY_BUFFER",
+        "GL_CLAMP",
+        "GL_CLAMP_TO_BORDER",
+        "GL_CLAMP_TO_EDGE",
+        "GL_COLOR_BUFFER_BIT",
+        "GL_COMPILE",
+        "GL_COMPILE_STATUS",
+        "GL_CULL_FACE",
+        "GL_DEPTH_BUFFER_BIT",
+        "GL_DEPTH_TEST",
+        "GL_EXTENSIONS",
+        "GL_FLAT",
+        "GL_FLOAT",
+        "GL_FRAGMENT_SHADER",
+        "GL_FRONT",
+        "GL_LIGHT0",
+        "GL_LIGHTING",
+        "GL_LINEAR",
+        "GL_LINK_STATUS",
+        "GL_MODELVIEW",
+        "GL_NEAREST",
+        "GL_NO_ERROR",
+        "GL_NORMALIZE",
+        "GL_POSITION",
+        "GL_PROJECTION",
+        "GL_QUAD_STRIP",
+        "GL_QUADS",
+        "GL_RENDERER",
+        "GL_REPEAT",
+        "GL_RGB",
+        "GL_RGBA",
+        "GL_SMOOTH",
+        "GL_STATIC_DRAW",
+        "GL_TEXTURE_2D",
+        "GL_TEXTURE_MAG_FILTER",
+        "GL_TEXTURE_MIN_FILTER",
+        "GL_TEXTURE_WRAP_S",
+        "GL_TEXTURE_WRAP_T",
+        "GL_TRIANGLES",
+        "GL_UNSIGNED_BYTE",
+        "GL_VENDOR",
+        "GL_VERSION",
+        "GL_VERTEX_SHADER",
+        "GRAY",
+        "GREEN",
+        "GT_LF_STRIPPED",
+        "GT_WHOLE_FILE",
+        "INVLN10",
+        "IUP_CLOSE",
+        "IUP_CONTINUE",
+        "IUP_DEFAULT",
+        "IUP_BLACK",
+        "IUP_BLUE",
+        "IUP_BUTTON1",
+        "IUP_BUTTON3",
+        "IUP_CENTER",
+        "IUP_CYAN",
+        "IUP_DARK_BLUE",
+        "IUP_DARK_CYAN",
+        "IUP_DARK_GRAY",
+        "IUP_DARK_GREY",
+        "IUP_DARK_GREEN",
+        "IUP_DARK_MAGENTA",
+        "IUP_DARK_RED",
+        "IUP_GRAY",
+        "IUP_GREY",
+        "IUP_GREEN",
+        "IUP_IGNORE",
+        "IUP_INDIGO",
+        "IUP_MAGENTA",
+        "IUP_MASK_INT",
+        "IUP_MASK_UINT",
+        "IUP_MOUSEPOS",
+        "IUP_NAVY",
+        "IUP_OLIVE",
+        "IUP_RECTEXT",
+        "IUP_RED",
+        "IUP_LIGHT_BLUE",
+        "IUP_LIGHT_GRAY",
+        "IUP_LIGHT_GREY",
+        "IUP_LIGHT_GREEN",
+        "IUP_ORANGE",
+        "IUP_PARCHMENT",
+        "IUP_PURPLE",
+        "IUP_SILVER",
+        "IUP_TEAL",
+        "IUP_VIOLET",
+        "IUP_WHITE",
+        "IUP_YELLOW",
+        "K_BS",
+        "K_cA",
+        "K_cC",
+        "K_cD",
+        "K_cF5",
+        "K_cK",
+        "K_cM",
+        "K_cN",
+        "K_cO",
+        "K_cP",
+        "K_cR",
+        "K_cS",
+        "K_cT",
+        "K_cW",
+        "K_CR",
+        "K_DEL",
+        "K_DOWN",
+        "K_END",
+        "K_ESC",
+        "K_F1",
+        "K_F2",
+        "K_F3",
+        "K_F4",
+        "K_F5",
+        "K_F6",
+        "K_F7",
+        "K_F8",
+        "K_F9",
+        "K_F10",
+        "K_F11",
+        "K_F12",
+        "K_HOME",
+        "K_INS",
+        "K_LEFT",
+        "K_MIDDLE",
+        "K_PGDN",
+        "K_PGUP",
+        "K_RIGHT",
+        "K_SP",
+        "K_TAB",
+        "K_UP",
+        "K_h",
+        "K_i",
+        "K_j",
+        "K_p",
+        "K_r",
+        "K_s",
+        "JS",
+        "LIFO_QUEUE",
+        "LINUX",
+        "MAX_HEAP",
+        "MAGENTA",
+        "MIN_HEAP",
+        "Nan",
+        "NO_CURSOR",
+        "null",
+        "NULL",
+        "PI",
+        "pp_Ascii",
+        "pp_Brkt",
+        "pp_Date",
+        "pp_File",
+        "pp_FltFmt",
+        "pp_Indent",
+        "pp_IntCh",
+        "pp_IntFmt",
+        "pp_Maxlen",
+        "pp_Nest",
+        "pp_Pause",
+        "pp_Q22",
+        "pp_StrFmt",
+        "RED",
+        "SEEK_OK",
+        "SLASH",
+        "TEST_ABORT",
+        "TEST_CRASH",
+        "TEST_PAUSE",
+        "TEST_PAUSE_FAIL",
+        "TEST_QUIET",
+        "TEST_SHOW_ALL",
+        "TEST_SHOW_FAILED",
+        "TEST_SUMMARY",
+        "true",
+        "True",
+        "TRUE",
+        "VC_SCRNLINES",
+        "WHITE",
+        "WINDOWS",
+        "YELLOW",
     )
 
     tokens = {
-        'root': [
+        "root": [
             (r"\s+", Whitespace),
-            (r'/\*|--/\*|#\[', Comment.Multiline, 'comment'),
-            (r'(?://|--|#!).*$', Comment.Single),
-#Alt:
-#           (r'//.*$|--.*$|#!.*$', Comment.Single),
+            (r"/\*|--/\*|#\[", Comment.Multiline, "comment"),
+            (r"(?://|--|#!).*$", Comment.Single),
+            # Alt:
+            #           (r'//.*$|--.*$|#!.*$', Comment.Single),
             (r'"([^"\\]|\\.)*"', String.Other),
-            (r'\'[^\']*\'', String.Other),
-            (r'`[^`]*`', String.Other),
-
-            (words(types, prefix=r'\b', suffix=r'\b'), Name.Function),
-            (words(routines, prefix=r'\b', suffix=r'\b'), Name.Function),
-            (words(preproc, prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
-            (words(keywords, prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
-            (words(constants, prefix=r'\b', suffix=r'\b'), Name.Constant),
+            (r"\'[^\']*\'", String.Other),
+            (r"`[^`]*`", String.Other),
+            (words(types, prefix=r"\b", suffix=r"\b"), Name.Function),
+            (words(routines, prefix=r"\b", suffix=r"\b"), Name.Function),
+            (words(preproc, prefix=r"\b", suffix=r"\b"), Keyword.Declaration),
+            (words(keywords, prefix=r"\b", suffix=r"\b"), Keyword.Declaration),
+            (words(constants, prefix=r"\b", suffix=r"\b"), Name.Constant),
             # Aside: Phix only supports/uses the ascii/non-unicode tilde
-            (r'!=|==|<<|>>|:=|[-~+/*%=<>&^|\.(){},?:\[\]$\\;#]', Operator),
-            (r'[\w-]+', Text)
+            (r"!=|==|<<|>>|:=|[-~+/*%=<>&^|\.(){},?:\[\]$\\;#]", Operator),
+            (r"[\w-]+", Text),
+        ],
+        "comment": [
+            (r"[^*/#]+", Comment.Multiline),
+            (r"/\*|#\[", Comment.Multiline, "#push"),
+            (r"\*/|#\]", Comment.Multiline, "#pop"),
+            (r"[*/#]", Comment.Multiline),
         ],
-        'comment': [
-            (r'[^*/#]+', Comment.Multiline),
-            (r'/\*|#\[', Comment.Multiline, '#push'),
-            (r'\*/|#\]', Comment.Multiline, '#pop'),
-            (r'[*/#]', Comment.Multiline)
-        ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/php.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/php.py
index 82d4aeb..cf42102 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/php.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/php.py
@@ -1,22 +1,42 @@
 """
-    pygments.lexers.php
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.php
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for PHP and related languages.
+Lexers for PHP and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import Lexer, RegexLexer, include, bygroups, default, \
-    using, this, words, do_insertions, line_re
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Other, Generic
+from pygments.lexer import (
+    Lexer,
+    RegexLexer,
+    include,
+    bygroups,
+    default,
+    using,
+    this,
+    words,
+    do_insertions,
+    line_re,
+)
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Other,
+    Generic,
+)
 from pygments.util import get_bool_opt, get_list_opt, shebang_matches
 
-__all__ = ['ZephirLexer', 'PsyshConsoleLexer', 'PhpLexer']
+__all__ = ["ZephirLexer", "PsyshConsoleLexer", "PhpLexer"]
 
 
 class ZephirLexer(RegexLexer):
@@ -27,60 +47,75 @@ class ZephirLexer(RegexLexer):
     to the creation of C-extensions for PHP.
     """
 
-    name = 'Zephir'
-    url = 'http://zephir-lang.com/'
-    aliases = ['zephir']
-    filenames = ['*.zep']
-    version_added = '2.0'
+    name = "Zephir"
+    url = "http://zephir-lang.com/"
+    aliases = ["zephir"]
+    filenames = ["*.zep"]
+    version_added = "2.0"
 
-    zephir_keywords = ['fetch', 'echo', 'isset', 'empty']
-    zephir_type = ['bit', 'bits', 'string']
+    zephir_keywords = ["fetch", "echo", "isset", "empty"]
+    zephir_type = ["bit", "bits", "string"]
 
     flags = re.DOTALL | re.MULTILINE
 
     tokens = {
-        'commentsandwhitespace': [
-            (r'\s+', Text),
-            (r'//.*?\n', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline)
+        "commentsandwhitespace": [
+            (r"\s+", Text),
+            (r"//.*?\n", Comment.Single),
+            (r"/\*.*?\*/", Comment.Multiline),
         ],
-        'slashstartsregex': [
-            include('commentsandwhitespace'),
-            (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
-             r'([gim]+\b|\B)', String.Regex, '#pop'),
-            (r'/', Operator, '#pop'),
-            default('#pop')
+        "slashstartsregex": [
+            include("commentsandwhitespace"),
+            (
+                r"/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/" r"([gim]+\b|\B)",
+                String.Regex,
+                "#pop",
+            ),
+            (r"/", Operator, "#pop"),
+            default("#pop"),
         ],
-        'badregex': [
-            (r'\n', Text, '#pop')
-        ],
-        'root': [
-            (r'^(?=\s|/)', Text, 'slashstartsregex'),
-            include('commentsandwhitespace'),
-            (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
-             r'(<<|>>>?|==?|!=?|->|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
-            (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
-            (r'[})\].]', Punctuation),
-            (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|loop|'
-             r'require|inline|throw|try|catch|finally|new|delete|typeof|instanceof|void|'
-             r'namespace|use|extends|this|fetch|isset|unset|echo|fetch|likely|unlikely|'
-             r'empty)\b', Keyword, 'slashstartsregex'),
-            (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
-            (r'(abstract|boolean|bool|char|class|const|double|enum|export|extends|final|'
-             r'native|goto|implements|import|int|string|interface|long|ulong|char|uchar|'
-             r'float|unsigned|private|protected|public|short|static|self|throws|reverse|'
-             r'transient|volatile|readonly)\b', Keyword.Reserved),
-            (r'(true|false|null|undefined)\b', Keyword.Constant),
-            (r'(Array|Boolean|Date|_REQUEST|_COOKIE|_SESSION|'
-             r'_GET|_POST|_SERVER|this|stdClass|range|count|iterator|'
-             r'window)\b', Name.Builtin),
-            (r'[$a-zA-Z_][\w\\]*', Name.Other),
-            (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'[0-9]+', Number.Integer),
+        "badregex": [(r"\n", Text, "#pop")],
+        "root": [
+            (r"^(?=\s|/)", Text, "slashstartsregex"),
+            include("commentsandwhitespace"),
+            (
+                r"\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|"
+                r"(<<|>>>?|==?|!=?|->|[-<>+*%&|^/])=?",
+                Operator,
+                "slashstartsregex",
+            ),
+            (r"[{(\[;,]", Punctuation, "slashstartsregex"),
+            (r"[})\].]", Punctuation),
+            (
+                r"(for|in|while|do|break|return|continue|switch|case|default|if|else|loop|"
+                r"require|inline|throw|try|catch|finally|new|delete|typeof|instanceof|void|"
+                r"namespace|use|extends|this|fetch|isset|unset|echo|fetch|likely|unlikely|"
+                r"empty)\b",
+                Keyword,
+                "slashstartsregex",
+            ),
+            (r"(var|let|with|function)\b", Keyword.Declaration, "slashstartsregex"),
+            (
+                r"(abstract|boolean|bool|char|class|const|double|enum|export|extends|final|"
+                r"native|goto|implements|import|int|string|interface|long|ulong|char|uchar|"
+                r"float|unsigned|private|protected|public|short|static|self|throws|reverse|"
+                r"transient|volatile|readonly)\b",
+                Keyword.Reserved,
+            ),
+            (r"(true|false|null|undefined)\b", Keyword.Constant),
+            (
+                r"(Array|Boolean|Date|_REQUEST|_COOKIE|_SESSION|"
+                r"_GET|_POST|_SERVER|this|stdClass|range|count|iterator|"
+                r"window)\b",
+                Name.Builtin,
+            ),
+            (r"[$a-zA-Z_][\w\\]*", Name.Other),
+            (r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"[0-9]+", Number.Integer),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
-        ]
+        ],
     }
 
 
@@ -97,39 +132,40 @@ class PsyshConsoleLexer(Lexer):
         >>> $greeting('World')
         => "Hello, World"
     """
-    name = 'PsySH console session for PHP'
-    url = 'https://psysh.org/'
-    aliases = ['psysh']
-    version_added = '2.7'
+
+    name = "PsySH console session for PHP"
+    url = "https://psysh.org/"
+    aliases = ["psysh"]
+    version_added = "2.7"
 
     def __init__(self, **options):
-        options['startinline'] = True
+        options["startinline"] = True
         Lexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
         phplexer = PhpLexer(**self.options)
-        curcode = ''
+        curcode = ""
         insertions = []
         for match in line_re.finditer(text):
             line = match.group()
-            if line.startswith('>>> ') or line.startswith('... '):
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, line[:4])]))
+            if line.startswith(">>> ") or line.startswith("... "):
+                insertions.append((len(curcode), [(0, Generic.Prompt, line[:4])]))
                 curcode += line[4:]
-            elif line.rstrip() == '...':
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, '...')]))
+            elif line.rstrip() == "...":
+                insertions.append((len(curcode), [(0, Generic.Prompt, "...")]))
                 curcode += line[3:]
             else:
                 if curcode:
                     yield from do_insertions(
-                        insertions, phplexer.get_tokens_unprocessed(curcode))
-                    curcode = ''
+                        insertions, phplexer.get_tokens_unprocessed(curcode)
+                    )
+                    curcode = ""
                     insertions = []
                 yield match.start(), Generic.Output, line
         if curcode:
-            yield from do_insertions(insertions,
-                                     phplexer.get_tokens_unprocessed(curcode))
+            yield from do_insertions(
+                insertions, phplexer.get_tokens_unprocessed(curcode)
+            )
 
 
 class PhpLexer(RegexLexer):
@@ -165,160 +201,208 @@ class PhpLexer(RegexLexer):
         the php documentation.
     """
 
-    name = 'PHP'
-    url = 'https://www.php.net/'
-    aliases = ['php', 'php3', 'php4', 'php5']
-    filenames = ['*.php', '*.php[345]', '*.inc']
-    mimetypes = ['text/x-php']
-    version_added = ''
+    name = "PHP"
+    url = "https://www.php.net/"
+    aliases = ["php", "php3", "php4", "php5"]
+    filenames = ["*.php", "*.php[345]", "*.inc"]
+    mimetypes = ["text/x-php"]
+    version_added = ""
 
     # Note that a backslash is included, PHP uses a backslash as a namespace
     # separator.
-    _ident_inner = r'(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*'
+    _ident_inner = r"(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*"
     # But not inside strings.
-    _ident_nons = r'(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*'
+    _ident_nons = r"(?:[_a-z]|[^\x00-\x7f])(?:\w|[^\x00-\x7f])*"
 
     flags = re.IGNORECASE | re.DOTALL | re.MULTILINE
     tokens = {
-        'root': [
-            (r'<\?(php)?', Comment.Preproc, 'php'),
-            (r'[^<]+', Other),
-            (r'<', Other)
+        "root": [
+            (r"<\?(php)?", Comment.Preproc, "php"),
+            (r"[^<]+", Other),
+            (r"<", Other),
         ],
-        'php': [
-            (r'\?>', Comment.Preproc, '#pop'),
-            (r'(<<<)([\'"]?)(' + _ident_nons + r')(\2\n.*?\n\s*)(\3)(;?)(\n)',
-             bygroups(String, String, String.Delimiter, String, String.Delimiter,
-                      Punctuation, Text)),
-            (r'\s+', Text),
-            (r'#\[', Punctuation, 'attribute'),
-            (r'#.*?\n', Comment.Single),
-            (r'//.*?\n', Comment.Single),
+        "php": [
+            (r"\?>", Comment.Preproc, "#pop"),
+            (
+                r'(<<<)([\'"]?)(' + _ident_nons + r")(\2\n.*?\n\s*)(\3)(;?)(\n)",
+                bygroups(
+                    String,
+                    String,
+                    String.Delimiter,
+                    String,
+                    String.Delimiter,
+                    Punctuation,
+                    Text,
+                ),
+            ),
+            (r"\s+", Text),
+            (r"#\[", Punctuation, "attribute"),
+            (r"#.*?\n", Comment.Single),
+            (r"//.*?\n", Comment.Single),
             # put the empty comment here, it is otherwise seen as
             # the start of a docstring
-            (r'/\*\*/', Comment.Multiline),
-            (r'/\*\*.*?\*/', String.Doc),
-            (r'/\*.*?\*/', Comment.Multiline),
-            (r'(->|::)(\s*)(' + _ident_nons + ')',
-             bygroups(Operator, Text, Name.Attribute)),
-            (r'[~!%^&*+=|:.<>/@-]+', Operator),
-            (r'\?', Operator),  # don't add to the charclass above!
-            (r'[\[\]{}();,]+', Punctuation),
-            (r'(new)(\s+)(class)\b', bygroups(Keyword, Text, Keyword)),
-            (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
-            (r'(function)(\s*)(?=\()', bygroups(Keyword, Text)),
-            (r'(function)(\s+)(&?)(\s*)',
-             bygroups(Keyword, Text, Operator, Text), 'functionname'),
-            (r'(const)(\s+)(' + _ident_inner + ')',
-             bygroups(Keyword, Text, Name.Constant)),
-            (r'(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|'
-             r'eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|'
-             r'FALSE|print|for|require|continue|foreach|require_once|'
-             r'declare|return|default|static|do|switch|die|stdClass|'
-             r'echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|'
-             r'virtual|endfor|include_once|while|endforeach|global|'
-             r'endif|list|endswitch|new|endwhile|not|'
-             r'array|E_ALL|NULL|final|php_user_filter|interface|'
-             r'implements|public|private|protected|abstract|clone|try|'
-             r'catch|throw|this|use|namespace|trait|yield|'
-             r'finally|match)\b', Keyword),
-            (r'(true|false|null)\b', Keyword.Constant),
-            include('magicconstants'),
-            (r'\$\{', Name.Variable, 'variablevariable'),
-            (r'\$+' + _ident_inner, Name.Variable),
+            (r"/\*\*/", Comment.Multiline),
+            (r"/\*\*.*?\*/", String.Doc),
+            (r"/\*.*?\*/", Comment.Multiline),
+            (
+                r"(->|::)(\s*)(" + _ident_nons + ")",
+                bygroups(Operator, Text, Name.Attribute),
+            ),
+            (r"[~!%^&*+=|:.<>/@-]+", Operator),
+            (r"\?", Operator),  # don't add to the charclass above!
+            (r"[\[\]{}();,]+", Punctuation),
+            (r"(new)(\s+)(class)\b", bygroups(Keyword, Text, Keyword)),
+            (r"(class)(\s+)", bygroups(Keyword, Text), "classname"),
+            (r"(function)(\s*)(?=\()", bygroups(Keyword, Text)),
+            (
+                r"(function)(\s+)(&?)(\s*)",
+                bygroups(Keyword, Text, Operator, Text),
+                "functionname",
+            ),
+            (
+                r"(const)(\s+)(" + _ident_inner + ")",
+                bygroups(Keyword, Text, Name.Constant),
+            ),
+            (
+                r"(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|"
+                r"eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|"
+                r"FALSE|print|for|require|continue|foreach|require_once|"
+                r"declare|return|default|static|do|switch|die|stdClass|"
+                r"echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|"
+                r"virtual|endfor|include_once|while|endforeach|global|"
+                r"endif|list|endswitch|new|endwhile|not|"
+                r"array|E_ALL|NULL|final|php_user_filter|interface|"
+                r"implements|public|private|protected|abstract|clone|try|"
+                r"catch|throw|this|use|namespace|trait|yield|"
+                r"finally|match)\b",
+                Keyword,
+            ),
+            (r"(true|false|null)\b", Keyword.Constant),
+            include("magicconstants"),
+            (r"\$\{", Name.Variable, "variablevariable"),
+            (r"\$+" + _ident_inner, Name.Variable),
             (_ident_inner, Name.Other),
-            (r'(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?', Number.Float),
-            (r'\d+e[+-]?[0-9]+', Number.Float),
-            (r'0[0-7]+', Number.Oct),
-            (r'0x[a-f0-9]+', Number.Hex),
-            (r'\d+', Number.Integer),
-            (r'0b[01]+', Number.Bin),
+            (r"(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?", Number.Float),
+            (r"\d+e[+-]?[0-9]+", Number.Float),
+            (r"0[0-7]+", Number.Oct),
+            (r"0x[a-f0-9]+", Number.Hex),
+            (r"\d+", Number.Integer),
+            (r"0b[01]+", Number.Bin),
             (r"'([^'\\]*(?:\\.[^'\\]*)*)'", String.Single),
-            (r'`([^`\\]*(?:\\.[^`\\]*)*)`', String.Backtick),
-            (r'"', String.Double, 'string'),
+            (r"`([^`\\]*(?:\\.[^`\\]*)*)`", String.Backtick),
+            (r'"', String.Double, "string"),
         ],
-        'variablevariable': [
-            (r'\}', Name.Variable, '#pop'),
-            include('php')
-        ],
-        'magicfuncs': [
+        "variablevariable": [(r"\}", Name.Variable, "#pop"), include("php")],
+        "magicfuncs": [
             # source: http://php.net/manual/en/language.oop5.magic.php
-            (words((
-                '__construct', '__destruct', '__call', '__callStatic', '__get', '__set',
-                '__isset', '__unset', '__sleep', '__wakeup', '__toString', '__invoke',
-                '__set_state', '__clone', '__debugInfo',), suffix=r'\b'),
-             Name.Function.Magic),
+            (
+                words(
+                    (
+                        "__construct",
+                        "__destruct",
+                        "__call",
+                        "__callStatic",
+                        "__get",
+                        "__set",
+                        "__isset",
+                        "__unset",
+                        "__sleep",
+                        "__wakeup",
+                        "__toString",
+                        "__invoke",
+                        "__set_state",
+                        "__clone",
+                        "__debugInfo",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Function.Magic,
+            ),
         ],
-        'magicconstants': [
+        "magicconstants": [
             # source: http://php.net/manual/en/language.constants.predefined.php
-            (words((
-                '__LINE__', '__FILE__', '__DIR__', '__FUNCTION__', '__CLASS__',
-                '__TRAIT__', '__METHOD__', '__NAMESPACE__',),
-                suffix=r'\b'),
-             Name.Constant),
+            (
+                words(
+                    (
+                        "__LINE__",
+                        "__FILE__",
+                        "__DIR__",
+                        "__FUNCTION__",
+                        "__CLASS__",
+                        "__TRAIT__",
+                        "__METHOD__",
+                        "__NAMESPACE__",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Constant,
+            ),
         ],
-        'classname': [
-            (_ident_inner, Name.Class, '#pop')
+        "classname": [(_ident_inner, Name.Class, "#pop")],
+        "functionname": [
+            include("magicfuncs"),
+            (_ident_inner, Name.Function, "#pop"),
+            default("#pop"),
         ],
-        'functionname': [
-            include('magicfuncs'),
-            (_ident_inner, Name.Function, '#pop'),
-            default('#pop')
-        ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (r'[^{$"\\]+', String.Double),
             (r'\\([nrt"$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})', String.Escape),
-            (r'\$' + _ident_nons + r'(\[\S+?\]|->' + _ident_nons + ')?',
-             String.Interpol),
-            (r'(\{\$\{)(.*?)(\}\})',
-             bygroups(String.Interpol, using(this, _startinline=True),
-                      String.Interpol)),
-            (r'(\{)(\$.*?)(\})',
-             bygroups(String.Interpol, using(this, _startinline=True),
-                      String.Interpol)),
-            (r'(\$\{)(\S+)(\})',
-             bygroups(String.Interpol, Name.Variable, String.Interpol)),
-            (r'[${\\]', String.Double)
+            (
+                r"\$" + _ident_nons + r"(\[\S+?\]|->" + _ident_nons + ")?",
+                String.Interpol,
+            ),
+            (
+                r"(\{\$\{)(.*?)(\}\})",
+                bygroups(
+                    String.Interpol, using(this, _startinline=True), String.Interpol
+                ),
+            ),
+            (
+                r"(\{)(\$.*?)(\})",
+                bygroups(
+                    String.Interpol, using(this, _startinline=True), String.Interpol
+                ),
+            ),
+            (
+                r"(\$\{)(\S+)(\})",
+                bygroups(String.Interpol, Name.Variable, String.Interpol),
+            ),
+            (r"[${\\]", String.Double),
         ],
-        'attribute': [
-            (r'\]', Punctuation, '#pop'),
-            (r'\(', Punctuation, 'attributeparams'),
+        "attribute": [
+            (r"\]", Punctuation, "#pop"),
+            (r"\(", Punctuation, "attributeparams"),
             (_ident_inner, Name.Decorator),
-            include('php')
-        ],
-        'attributeparams': [
-            (r'\)', Punctuation, '#pop'),
-            include('php')
+            include("php"),
         ],
+        "attributeparams": [(r"\)", Punctuation, "#pop"), include("php")],
     }
 
     def __init__(self, **options):
-        self.funcnamehighlighting = get_bool_opt(
-            options, 'funcnamehighlighting', True)
-        self.disabledmodules = get_list_opt(
-            options, 'disabledmodules', ['unknown'])
-        self.startinline = get_bool_opt(options, 'startinline', False)
+        self.funcnamehighlighting = get_bool_opt(options, "funcnamehighlighting", True)
+        self.disabledmodules = get_list_opt(options, "disabledmodules", ["unknown"])
+        self.startinline = get_bool_opt(options, "startinline", False)
 
         # private option argument for the lexer itself
-        if '_startinline' in options:
-            self.startinline = options.pop('_startinline')
+        if "_startinline" in options:
+            self.startinline = options.pop("_startinline")
 
         # collect activated functions in a set
         self._functions = set()
         if self.funcnamehighlighting:
             from pygments.lexers._php_builtins import MODULES
+
             for key, value in MODULES.items():
                 if key not in self.disabledmodules:
                     self._functions.update(value)
         RegexLexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
-        stack = ['root']
+        stack = ["root"]
         if self.startinline:
-            stack.append('php')
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text, stack):
+            stack.append("php")
+        for index, token, value in RegexLexer.get_tokens_unprocessed(self, text, stack):
             if token is Name.Other:
                 if value in self._functions:
                     yield index, Name.Builtin, value
@@ -326,9 +410,9 @@ class PhpLexer(RegexLexer):
             yield index, token, value
 
     def analyse_text(text):
-        if shebang_matches(text, r'php'):
+        if shebang_matches(text, r"php"):
             return True
         rv = 0.0
-        if re.search(r'<\?(?!xml)', text):
+        if re.search(r"<\?(?!xml)", text):
             rv += 0.3
         return rv
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pointless.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pointless.py
index adedb75..a635c88 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pointless.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pointless.py
@@ -1,18 +1,27 @@
 """
-    pygments.lexers.pointless
-    ~~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.pointless
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Pointless.
+Lexers for Pointless.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Comment, Error, Keyword, Name, Number, Operator, \
-    Punctuation, String, Text
+from pygments.token import (
+    Comment,
+    Error,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Text,
+)
 
-__all__ = ['PointlessLexer']
+__all__ = ["PointlessLexer"]
 
 
 class PointlessLexer(RegexLexer):
@@ -20,51 +29,92 @@ class PointlessLexer(RegexLexer):
     For Pointless source code.
     """
 
-    name = 'Pointless'
-    url = 'https://ptls.dev'
-    aliases = ['pointless']
-    filenames = ['*.ptls']
-    version_added = '2.7'
+    name = "Pointless"
+    url = "https://ptls.dev"
+    aliases = ["pointless"]
+    filenames = ["*.ptls"]
+    version_added = "2.7"
 
-    ops = words([
-        "+", "-", "*", "/", "**", "%", "+=", "-=", "*=",
-        "/=", "**=", "%=", "|>", "=", "==", "!=", "<", ">",
-        "<=", ">=", "=>", "$", "++",
-    ])
+    ops = words(
+        [
+            "+",
+            "-",
+            "*",
+            "/",
+            "**",
+            "%",
+            "+=",
+            "-=",
+            "*=",
+            "/=",
+            "**=",
+            "%=",
+            "|>",
+            "=",
+            "==",
+            "!=",
+            "<",
+            ">",
+            "<=",
+            ">=",
+            "=>",
+            "$",
+            "++",
+        ]
+    )
 
-    keywords = words([
-        "if", "then", "else", "where", "with", "cond",
-        "case", "and", "or", "not", "in", "as", "for",
-        "requires", "throw", "try", "catch", "when",
-        "yield", "upval",
-    ], suffix=r'\b')
+    keywords = words(
+        [
+            "if",
+            "then",
+            "else",
+            "where",
+            "with",
+            "cond",
+            "case",
+            "and",
+            "or",
+            "not",
+            "in",
+            "as",
+            "for",
+            "requires",
+            "throw",
+            "try",
+            "catch",
+            "when",
+            "yield",
+            "upval",
+        ],
+        suffix=r"\b",
+    )
 
     tokens = {
-        'root': [
-            (r'[ \n\r]+', Text),
-            (r'--.*$', Comment.Single),
-            (r'"""', String, 'multiString'),
-            (r'"', String, 'string'),
-            (r'[\[\](){}:;,.]', Punctuation),
+        "root": [
+            (r"[ \n\r]+", Text),
+            (r"--.*$", Comment.Single),
+            (r'"""', String, "multiString"),
+            (r'"', String, "string"),
+            (r"[\[\](){}:;,.]", Punctuation),
             (ops, Operator),
             (keywords, Keyword),
-            (r'\d+|\d*\.\d+', Number),
-            (r'(true|false)\b', Name.Builtin),
-            (r'[A-Z][a-zA-Z0-9]*\b', String.Symbol),
-            (r'output\b', Name.Variable.Magic),
-            (r'(export|import)\b', Keyword.Namespace),
-            (r'[a-z][a-zA-Z0-9]*\b', Name.Variable)
+            (r"\d+|\d*\.\d+", Number),
+            (r"(true|false)\b", Name.Builtin),
+            (r"[A-Z][a-zA-Z0-9]*\b", String.Symbol),
+            (r"output\b", Name.Variable.Magic),
+            (r"(export|import)\b", Keyword.Namespace),
+            (r"[a-z][a-zA-Z0-9]*\b", Name.Variable),
         ],
-        'multiString': [
-            (r'\\.', String.Escape),
-            (r'"""', String, '#pop'),
+        "multiString": [
+            (r"\\.", String.Escape),
+            (r'"""', String, "#pop"),
             (r'"', String),
             (r'[^\\"]+', String),
         ],
-        'string': [
-            (r'\\.', String.Escape),
-            (r'"', String, '#pop'),
-            (r'\n', Error),
+        "string": [
+            (r"\\.", String.Escape),
+            (r'"', String, "#pop"),
+            (r"\n", Error),
             (r'[^\\"]+', String),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pony.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pony.py
index 055423a..c700d90 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pony.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/pony.py
@@ -1,18 +1,26 @@
 """
-    pygments.lexers.pony
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.pony
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Pony and related languages.
+Lexers for Pony and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['PonyLexer']
+__all__ = ["PonyLexer"]
 
 
 class PonyLexer(RegexLexer):
@@ -20,74 +28,154 @@ class PonyLexer(RegexLexer):
     For Pony source code.
     """
 
-    name = 'Pony'
-    aliases = ['pony']
-    filenames = ['*.pony']
-    url = 'https://www.ponylang.io'
-    version_added = '2.4'
+    name = "Pony"
+    aliases = ["pony"]
+    filenames = ["*.pony"]
+    url = "https://www.ponylang.io"
+    version_added = "2.4"
 
-    _caps = r'(iso|trn|ref|val|box|tag)'
+    _caps = r"(iso|trn|ref|val|box|tag)"
 
     tokens = {
-        'root': [
-            (r'\n', Text),
-            (r'[^\S\n]+', Text),
-            (r'//.*\n', Comment.Single),
-            (r'/\*', Comment.Multiline, 'nested_comment'),
+        "root": [
+            (r"\n", Text),
+            (r"[^\S\n]+", Text),
+            (r"//.*\n", Comment.Single),
+            (r"/\*", Comment.Multiline, "nested_comment"),
             (r'"""(?:.|\n)*?"""', String.Doc),
-            (r'"', String, 'string'),
-            (r'\'.*\'', String.Char),
-            (r'=>|[]{}:().~;,|&!^?[]', Punctuation),
-            (words((
-                'addressof', 'and', 'as', 'consume', 'digestof', 'is', 'isnt',
-                'not', 'or'),
-                suffix=r'\b'),
-             Operator.Word),
-            (r'!=|==|<<|>>|[-+/*%=<>]', Operator),
-            (words((
-                'box', 'break', 'compile_error', 'compile_intrinsic',
-                'continue', 'do', 'else', 'elseif', 'embed', 'end', 'error',
-                'for', 'if', 'ifdef', 'in', 'iso', 'lambda', 'let', 'match',
-                'object', 'recover', 'ref', 'repeat', 'return', 'tag', 'then',
-                'this', 'trn', 'try', 'until', 'use', 'var', 'val', 'where',
-                'while', 'with', '#any', '#read', '#send', '#share'),
-                suffix=r'\b'),
-             Keyword),
-            (r'(actor|class|struct|primitive|interface|trait|type)((?:\s)+)',
-             bygroups(Keyword, Text), 'typename'),
-            (r'(new|fun|be)((?:\s)+)', bygroups(Keyword, Text), 'methodname'),
-            (words((
-                'I8', 'U8', 'I16', 'U16', 'I32', 'U32', 'I64', 'U64', 'I128',
-                'U128', 'ILong', 'ULong', 'ISize', 'USize', 'F32', 'F64',
-                'Bool', 'Pointer', 'None', 'Any', 'Array', 'String',
-                'Iterator'),
-                suffix=r'\b'),
-             Name.Builtin.Type),
-            (r'_?[A-Z]\w*', Name.Type),
-            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'\d+', Number.Integer),
-            (r'(true|false)\b', Name.Builtin),
-            (r'_\d*', Name),
-            (r'_?[a-z][\w\']*', Name)
+            (r'"', String, "string"),
+            (r"\'.*\'", String.Char),
+            (r"=>|[]{}:().~;,|&!^?[]", Punctuation),
+            (
+                words(
+                    (
+                        "addressof",
+                        "and",
+                        "as",
+                        "consume",
+                        "digestof",
+                        "is",
+                        "isnt",
+                        "not",
+                        "or",
+                    ),
+                    suffix=r"\b",
+                ),
+                Operator.Word,
+            ),
+            (r"!=|==|<<|>>|[-+/*%=<>]", Operator),
+            (
+                words(
+                    (
+                        "box",
+                        "break",
+                        "compile_error",
+                        "compile_intrinsic",
+                        "continue",
+                        "do",
+                        "else",
+                        "elseif",
+                        "embed",
+                        "end",
+                        "error",
+                        "for",
+                        "if",
+                        "ifdef",
+                        "in",
+                        "iso",
+                        "lambda",
+                        "let",
+                        "match",
+                        "object",
+                        "recover",
+                        "ref",
+                        "repeat",
+                        "return",
+                        "tag",
+                        "then",
+                        "this",
+                        "trn",
+                        "try",
+                        "until",
+                        "use",
+                        "var",
+                        "val",
+                        "where",
+                        "while",
+                        "with",
+                        "#any",
+                        "#read",
+                        "#send",
+                        "#share",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                r"(actor|class|struct|primitive|interface|trait|type)((?:\s)+)",
+                bygroups(Keyword, Text),
+                "typename",
+            ),
+            (r"(new|fun|be)((?:\s)+)", bygroups(Keyword, Text), "methodname"),
+            (
+                words(
+                    (
+                        "I8",
+                        "U8",
+                        "I16",
+                        "U16",
+                        "I32",
+                        "U32",
+                        "I64",
+                        "U64",
+                        "I128",
+                        "U128",
+                        "ILong",
+                        "ULong",
+                        "ISize",
+                        "USize",
+                        "F32",
+                        "F64",
+                        "Bool",
+                        "Pointer",
+                        "None",
+                        "Any",
+                        "Array",
+                        "String",
+                        "Iterator",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin.Type,
+            ),
+            (r"_?[A-Z]\w*", Name.Type),
+            (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+", Number.Float),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"\d+", Number.Integer),
+            (r"(true|false)\b", Name.Builtin),
+            (r"_\d*", Name),
+            (r"_?[a-z][\w\']*", Name),
         ],
-        'typename': [
-            (_caps + r'?((?:\s)*)(_?[A-Z]\w*)',
-             bygroups(Keyword, Text, Name.Class), '#pop')
+        "typename": [
+            (
+                _caps + r"?((?:\s)*)(_?[A-Z]\w*)",
+                bygroups(Keyword, Text, Name.Class),
+                "#pop",
+            )
         ],
-        'methodname': [
-            (_caps + r'?((?:\s)*)(_?[a-z]\w*)',
-             bygroups(Keyword, Text, Name.Function), '#pop')
+        "methodname": [
+            (
+                _caps + r"?((?:\s)*)(_?[a-z]\w*)",
+                bygroups(Keyword, Text, Name.Function),
+                "#pop",
+            )
         ],
-        'nested_comment': [
-            (r'[^*/]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]', Comment.Multiline)
+        "nested_comment": [
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
         ],
-        'string': [
-            (r'"', String, '#pop'),
-            (r'\\"', String),
-            (r'[^\\"]+', String)
-        ]
+        "string": [(r'"', String, "#pop"), (r'\\"', String), (r'[^\\"]+', String)],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/praat.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/praat.py
index 054f5b6..6954b82 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/praat.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/praat.py
@@ -1,18 +1,27 @@
 """
-    pygments.lexers.praat
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.praat
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Praat
+Lexer for Praat
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words, bygroups, include
-from pygments.token import Name, Text, Comment, Keyword, String, Punctuation, \
-    Number, Operator, Whitespace
+from pygments.token import (
+    Name,
+    Text,
+    Comment,
+    Keyword,
+    String,
+    Punctuation,
+    Number,
+    Operator,
+    Whitespace,
+)
 
-__all__ = ['PraatLexer']
+__all__ = ["PraatLexer"]
 
 
 class PraatLexer(RegexLexer):
@@ -20,284 +29,576 @@ class PraatLexer(RegexLexer):
     For Praat scripts.
     """
 
-    name = 'Praat'
-    url = 'http://www.praat.org'
-    aliases = ['praat']
-    filenames = ['*.praat', '*.proc', '*.psc']
-    version_added = '2.1'
+    name = "Praat"
+    url = "http://www.praat.org"
+    aliases = ["praat"]
+    filenames = ["*.praat", "*.proc", "*.psc"]
+    version_added = "2.1"
 
     keywords = (
-        'if', 'then', 'else', 'elsif', 'elif', 'endif', 'fi', 'for', 'from', 'to',
-        'endfor', 'endproc', 'while', 'endwhile', 'repeat', 'until', 'select', 'plus',
-        'minus', 'demo', 'assert', 'stopwatch', 'nocheck', 'nowarn', 'noprogress',
-        'editor', 'endeditor', 'clearinfo',
+        "if",
+        "then",
+        "else",
+        "elsif",
+        "elif",
+        "endif",
+        "fi",
+        "for",
+        "from",
+        "to",
+        "endfor",
+        "endproc",
+        "while",
+        "endwhile",
+        "repeat",
+        "until",
+        "select",
+        "plus",
+        "minus",
+        "demo",
+        "assert",
+        "stopwatch",
+        "nocheck",
+        "nowarn",
+        "noprogress",
+        "editor",
+        "endeditor",
+        "clearinfo",
     )
 
     functions_string = (
-        'backslashTrigraphsToUnicode', 'chooseDirectory', 'chooseReadFile',
-        'chooseWriteFile', 'date', 'demoKey', 'do', 'environment', 'extractLine',
-        'extractWord', 'fixed', 'info', 'left', 'mid', 'percent', 'readFile', 'replace',
-        'replace_regex', 'right', 'selected', 'string', 'unicodeToBackslashTrigraphs',
+        "backslashTrigraphsToUnicode",
+        "chooseDirectory",
+        "chooseReadFile",
+        "chooseWriteFile",
+        "date",
+        "demoKey",
+        "do",
+        "environment",
+        "extractLine",
+        "extractWord",
+        "fixed",
+        "info",
+        "left",
+        "mid",
+        "percent",
+        "readFile",
+        "replace",
+        "replace_regex",
+        "right",
+        "selected",
+        "string",
+        "unicodeToBackslashTrigraphs",
     )
 
     functions_numeric = (
-        'abs', 'appendFile', 'appendFileLine', 'appendInfo', 'appendInfoLine', 'arccos',
-        'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctan2', 'arctanh', 'barkToHertz',
-        'beginPause', 'beginSendPraat', 'besselI', 'besselK', 'beta', 'beta2',
-        'binomialP', 'binomialQ', 'boolean', 'ceiling', 'chiSquareP', 'chiSquareQ',
-        'choice', 'comment', 'cos', 'cosh', 'createDirectory', 'deleteFile',
-        'demoClicked', 'demoClickedIn', 'demoCommandKeyPressed',
-        'demoExtraControlKeyPressed', 'demoInput', 'demoKeyPressed',
-        'demoOptionKeyPressed', 'demoShiftKeyPressed', 'demoShow', 'demoWaitForInput',
-        'demoWindowTitle', 'demoX', 'demoY', 'differenceLimensToPhon', 'do', 'editor',
-        'endPause', 'endSendPraat', 'endsWith', 'erb', 'erbToHertz', 'erf', 'erfc',
-        'exitScript', 'exp', 'extractNumber', 'fileReadable', 'fisherP', 'fisherQ',
-        'floor', 'gaussP', 'gaussQ', 'hertzToBark', 'hertzToErb', 'hertzToMel',
-        'hertzToSemitones', 'imax', 'imin', 'incompleteBeta', 'incompleteGammaP', 'index',
-        'index_regex', 'integer', 'invBinomialP', 'invBinomialQ', 'invChiSquareQ', 'invFisherQ',
-        'invGaussQ', 'invSigmoid', 'invStudentQ', 'length', 'ln', 'lnBeta', 'lnGamma',
-        'log10', 'log2', 'max', 'melToHertz', 'min', 'minusObject', 'natural', 'number',
-        'numberOfColumns', 'numberOfRows', 'numberOfSelected', 'objectsAreIdentical',
-        'option', 'optionMenu', 'pauseScript', 'phonToDifferenceLimens', 'plusObject',
-        'positive', 'randomBinomial', 'randomGauss', 'randomInteger', 'randomPoisson',
-        'randomUniform', 'real', 'readFile', 'removeObject', 'rindex', 'rindex_regex',
-        'round', 'runScript', 'runSystem', 'runSystem_nocheck', 'selectObject',
-        'selected', 'semitonesToHertz', 'sentence', 'sentencetext', 'sigmoid', 'sin', 'sinc',
-        'sincpi', 'sinh', 'soundPressureToPhon', 'sqrt', 'startsWith', 'studentP',
-        'studentQ', 'tan', 'tanh', 'text', 'variableExists', 'word', 'writeFile', 'writeFileLine',
-        'writeInfo', 'writeInfoLine',
+        "abs",
+        "appendFile",
+        "appendFileLine",
+        "appendInfo",
+        "appendInfoLine",
+        "arccos",
+        "arccosh",
+        "arcsin",
+        "arcsinh",
+        "arctan",
+        "arctan2",
+        "arctanh",
+        "barkToHertz",
+        "beginPause",
+        "beginSendPraat",
+        "besselI",
+        "besselK",
+        "beta",
+        "beta2",
+        "binomialP",
+        "binomialQ",
+        "boolean",
+        "ceiling",
+        "chiSquareP",
+        "chiSquareQ",
+        "choice",
+        "comment",
+        "cos",
+        "cosh",
+        "createDirectory",
+        "deleteFile",
+        "demoClicked",
+        "demoClickedIn",
+        "demoCommandKeyPressed",
+        "demoExtraControlKeyPressed",
+        "demoInput",
+        "demoKeyPressed",
+        "demoOptionKeyPressed",
+        "demoShiftKeyPressed",
+        "demoShow",
+        "demoWaitForInput",
+        "demoWindowTitle",
+        "demoX",
+        "demoY",
+        "differenceLimensToPhon",
+        "do",
+        "editor",
+        "endPause",
+        "endSendPraat",
+        "endsWith",
+        "erb",
+        "erbToHertz",
+        "erf",
+        "erfc",
+        "exitScript",
+        "exp",
+        "extractNumber",
+        "fileReadable",
+        "fisherP",
+        "fisherQ",
+        "floor",
+        "gaussP",
+        "gaussQ",
+        "hertzToBark",
+        "hertzToErb",
+        "hertzToMel",
+        "hertzToSemitones",
+        "imax",
+        "imin",
+        "incompleteBeta",
+        "incompleteGammaP",
+        "index",
+        "index_regex",
+        "integer",
+        "invBinomialP",
+        "invBinomialQ",
+        "invChiSquareQ",
+        "invFisherQ",
+        "invGaussQ",
+        "invSigmoid",
+        "invStudentQ",
+        "length",
+        "ln",
+        "lnBeta",
+        "lnGamma",
+        "log10",
+        "log2",
+        "max",
+        "melToHertz",
+        "min",
+        "minusObject",
+        "natural",
+        "number",
+        "numberOfColumns",
+        "numberOfRows",
+        "numberOfSelected",
+        "objectsAreIdentical",
+        "option",
+        "optionMenu",
+        "pauseScript",
+        "phonToDifferenceLimens",
+        "plusObject",
+        "positive",
+        "randomBinomial",
+        "randomGauss",
+        "randomInteger",
+        "randomPoisson",
+        "randomUniform",
+        "real",
+        "readFile",
+        "removeObject",
+        "rindex",
+        "rindex_regex",
+        "round",
+        "runScript",
+        "runSystem",
+        "runSystem_nocheck",
+        "selectObject",
+        "selected",
+        "semitonesToHertz",
+        "sentence",
+        "sentencetext",
+        "sigmoid",
+        "sin",
+        "sinc",
+        "sincpi",
+        "sinh",
+        "soundPressureToPhon",
+        "sqrt",
+        "startsWith",
+        "studentP",
+        "studentQ",
+        "tan",
+        "tanh",
+        "text",
+        "variableExists",
+        "word",
+        "writeFile",
+        "writeFileLine",
+        "writeInfo",
+        "writeInfoLine",
     )
 
     functions_array = (
-        'linear', 'randomGauss', 'randomInteger', 'randomUniform', 'zero',
+        "linear",
+        "randomGauss",
+        "randomInteger",
+        "randomUniform",
+        "zero",
     )
 
     objects = (
-        'Activation', 'AffineTransform', 'AmplitudeTier', 'Art', 'Artword',
-        'Autosegment', 'BarkFilter', 'BarkSpectrogram', 'CCA', 'Categories',
-        'Cepstrogram', 'Cepstrum', 'Cepstrumc', 'ChebyshevSeries', 'ClassificationTable',
-        'Cochleagram', 'Collection', 'ComplexSpectrogram', 'Configuration', 'Confusion',
-        'ContingencyTable', 'Corpus', 'Correlation', 'Covariance',
-        'CrossCorrelationTable', 'CrossCorrelationTables', 'DTW', 'DataModeler',
-        'Diagonalizer', 'Discriminant', 'Dissimilarity', 'Distance', 'Distributions',
-        'DurationTier', 'EEG', 'ERP', 'ERPTier', 'EditCostsTable', 'EditDistanceTable',
-        'Eigen', 'Excitation', 'Excitations', 'ExperimentMFC', 'FFNet', 'FeatureWeights',
-        'FileInMemory', 'FilesInMemory', 'Formant', 'FormantFilter', 'FormantGrid',
-        'FormantModeler', 'FormantPoint', 'FormantTier', 'GaussianMixture', 'HMM',
-        'HMM_Observation', 'HMM_ObservationSequence', 'HMM_State', 'HMM_StateSequence',
-        'Harmonicity', 'ISpline', 'Index', 'Intensity', 'IntensityTier', 'IntervalTier',
-        'KNN', 'KlattGrid', 'KlattTable', 'LFCC', 'LPC', 'Label', 'LegendreSeries',
-        'LinearRegression', 'LogisticRegression', 'LongSound', 'Ltas', 'MFCC', 'MSpline',
-        'ManPages', 'Manipulation', 'Matrix', 'MelFilter', 'MelSpectrogram',
-        'MixingMatrix', 'Movie', 'Network', 'Object', 'OTGrammar', 'OTHistory', 'OTMulti',
-        'PCA', 'PairDistribution', 'ParamCurve', 'Pattern', 'Permutation', 'Photo',
-        'Pitch', 'PitchModeler', 'PitchTier', 'PointProcess', 'Polygon', 'Polynomial',
-        'PowerCepstrogram', 'PowerCepstrum', 'Procrustes', 'RealPoint', 'RealTier',
-        'ResultsMFC', 'Roots', 'SPINET', 'SSCP', 'SVD', 'Salience', 'ScalarProduct',
-        'Similarity', 'SimpleString', 'SortedSetOfString', 'Sound', 'Speaker',
-        'Spectrogram', 'Spectrum', 'SpectrumTier', 'SpeechSynthesizer', 'SpellingChecker',
-        'Strings', 'StringsIndex', 'Table', 'TableOfReal', 'TextGrid', 'TextInterval',
-        'TextPoint', 'TextTier', 'Tier', 'Transition', 'VocalTract', 'VocalTractTier',
-        'Weight', 'WordList',
+        "Activation",
+        "AffineTransform",
+        "AmplitudeTier",
+        "Art",
+        "Artword",
+        "Autosegment",
+        "BarkFilter",
+        "BarkSpectrogram",
+        "CCA",
+        "Categories",
+        "Cepstrogram",
+        "Cepstrum",
+        "Cepstrumc",
+        "ChebyshevSeries",
+        "ClassificationTable",
+        "Cochleagram",
+        "Collection",
+        "ComplexSpectrogram",
+        "Configuration",
+        "Confusion",
+        "ContingencyTable",
+        "Corpus",
+        "Correlation",
+        "Covariance",
+        "CrossCorrelationTable",
+        "CrossCorrelationTables",
+        "DTW",
+        "DataModeler",
+        "Diagonalizer",
+        "Discriminant",
+        "Dissimilarity",
+        "Distance",
+        "Distributions",
+        "DurationTier",
+        "EEG",
+        "ERP",
+        "ERPTier",
+        "EditCostsTable",
+        "EditDistanceTable",
+        "Eigen",
+        "Excitation",
+        "Excitations",
+        "ExperimentMFC",
+        "FFNet",
+        "FeatureWeights",
+        "FileInMemory",
+        "FilesInMemory",
+        "Formant",
+        "FormantFilter",
+        "FormantGrid",
+        "FormantModeler",
+        "FormantPoint",
+        "FormantTier",
+        "GaussianMixture",
+        "HMM",
+        "HMM_Observation",
+        "HMM_ObservationSequence",
+        "HMM_State",
+        "HMM_StateSequence",
+        "Harmonicity",
+        "ISpline",
+        "Index",
+        "Intensity",
+        "IntensityTier",
+        "IntervalTier",
+        "KNN",
+        "KlattGrid",
+        "KlattTable",
+        "LFCC",
+        "LPC",
+        "Label",
+        "LegendreSeries",
+        "LinearRegression",
+        "LogisticRegression",
+        "LongSound",
+        "Ltas",
+        "MFCC",
+        "MSpline",
+        "ManPages",
+        "Manipulation",
+        "Matrix",
+        "MelFilter",
+        "MelSpectrogram",
+        "MixingMatrix",
+        "Movie",
+        "Network",
+        "Object",
+        "OTGrammar",
+        "OTHistory",
+        "OTMulti",
+        "PCA",
+        "PairDistribution",
+        "ParamCurve",
+        "Pattern",
+        "Permutation",
+        "Photo",
+        "Pitch",
+        "PitchModeler",
+        "PitchTier",
+        "PointProcess",
+        "Polygon",
+        "Polynomial",
+        "PowerCepstrogram",
+        "PowerCepstrum",
+        "Procrustes",
+        "RealPoint",
+        "RealTier",
+        "ResultsMFC",
+        "Roots",
+        "SPINET",
+        "SSCP",
+        "SVD",
+        "Salience",
+        "ScalarProduct",
+        "Similarity",
+        "SimpleString",
+        "SortedSetOfString",
+        "Sound",
+        "Speaker",
+        "Spectrogram",
+        "Spectrum",
+        "SpectrumTier",
+        "SpeechSynthesizer",
+        "SpellingChecker",
+        "Strings",
+        "StringsIndex",
+        "Table",
+        "TableOfReal",
+        "TextGrid",
+        "TextInterval",
+        "TextPoint",
+        "TextTier",
+        "Tier",
+        "Transition",
+        "VocalTract",
+        "VocalTractTier",
+        "Weight",
+        "WordList",
     )
 
     variables_numeric = (
-        'macintosh', 'windows', 'unix', 'praatVersion', 'pi', 'e', 'undefined',
+        "macintosh",
+        "windows",
+        "unix",
+        "praatVersion",
+        "pi",
+        "e",
+        "undefined",
     )
 
     variables_string = (
-        'praatVersion', 'tab', 'shellDirectory', 'homeDirectory',
-        'preferencesDirectory', 'newline', 'temporaryDirectory',
-        'defaultDirectory',
+        "praatVersion",
+        "tab",
+        "shellDirectory",
+        "homeDirectory",
+        "preferencesDirectory",
+        "newline",
+        "temporaryDirectory",
+        "defaultDirectory",
     )
 
     object_attributes = (
-        'ncol', 'nrow', 'xmin', 'ymin', 'xmax', 'ymax', 'nx', 'ny', 'dx', 'dy',
+        "ncol",
+        "nrow",
+        "xmin",
+        "ymin",
+        "xmax",
+        "ymax",
+        "nx",
+        "ny",
+        "dx",
+        "dy",
     )
 
     tokens = {
-        'root': [
-            (r'(\s+)(#.*?$)',  bygroups(Whitespace, Comment.Single)),
-            (r'^#.*?$',        Comment.Single),
-            (r';[^\n]*',       Comment.Single),
-            (r'\s+',           Whitespace),
-
-            (r'\bprocedure\b', Keyword,       'procedure_definition'),
-            (r'\bcall\b',      Keyword,       'procedure_call'),
-            (r'@',             Name.Function, 'procedure_call'),
-
-            include('function_call'),
-
-            (words(keywords, suffix=r'\b'), Keyword),
-
-            (r'(\bform\b)(\s+)([^\n]+)',
-             bygroups(Keyword, Whitespace, String), 'old_form'),
-
-            (r'(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|'
-             r'include|execute|system(?:_nocheck)?)(\s+)',
-             bygroups(Keyword, Whitespace), 'string_unquoted'),
-
-            (r'(goto|label)(\s+)(\w+)', bygroups(Keyword, Whitespace, Name.Label)),
-
-            include('variable_name'),
-            include('number'),
-
-            (r'"', String, 'string'),
-
-            (words((objects), suffix=r'(?=\s+\S+\n)'), Name.Class, 'string_unquoted'),
-
-            (r'\b[A-Z]', Keyword, 'command'),
-            (r'(\.{3}|[)(,])', Punctuation),
+        "root": [
+            (r"(\s+)(#.*?$)", bygroups(Whitespace, Comment.Single)),
+            (r"^#.*?$", Comment.Single),
+            (r";[^\n]*", Comment.Single),
+            (r"\s+", Whitespace),
+            (r"\bprocedure\b", Keyword, "procedure_definition"),
+            (r"\bcall\b", Keyword, "procedure_call"),
+            (r"@", Name.Function, "procedure_call"),
+            include("function_call"),
+            (words(keywords, suffix=r"\b"), Keyword),
+            (
+                r"(\bform\b)(\s+)([^\n]+)",
+                bygroups(Keyword, Whitespace, String),
+                "old_form",
+            ),
+            (
+                r"(print(?:line|tab)?|echo|exit|asserterror|pause|send(?:praat|socket)|"
+                r"include|execute|system(?:_nocheck)?)(\s+)",
+                bygroups(Keyword, Whitespace),
+                "string_unquoted",
+            ),
+            (r"(goto|label)(\s+)(\w+)", bygroups(Keyword, Whitespace, Name.Label)),
+            include("variable_name"),
+            include("number"),
+            (r'"', String, "string"),
+            (words((objects), suffix=r"(?=\s+\S+\n)"), Name.Class, "string_unquoted"),
+            (r"\b[A-Z]", Keyword, "command"),
+            (r"(\.{3}|[)(,])", Punctuation),
         ],
-        'command': [
-            (r'( ?[\w()-]+ ?)', Keyword),
-
-            include('string_interpolated'),
-
-            (r'\.{3}', Keyword, ('#pop', 'old_arguments')),
-            (r':', Keyword, ('#pop', 'comma_list')),
-            (r'\s', Whitespace, '#pop'),
+        "command": [
+            (r"( ?[\w()-]+ ?)", Keyword),
+            include("string_interpolated"),
+            (r"\.{3}", Keyword, ("#pop", "old_arguments")),
+            (r":", Keyword, ("#pop", "comma_list")),
+            (r"\s", Whitespace, "#pop"),
         ],
-        'procedure_call': [
-            (r'\s+', Whitespace),
-            (r'([\w.]+)(?:(:)|(?:(\s*)(\()))',
-             bygroups(Name.Function, Punctuation,
-                      Text.Whitespace, Punctuation), '#pop'),
-            (r'([\w.]+)', Name.Function, ('#pop', 'old_arguments')),
+        "procedure_call": [
+            (r"\s+", Whitespace),
+            (
+                r"([\w.]+)(?:(:)|(?:(\s*)(\()))",
+                bygroups(Name.Function, Punctuation, Text.Whitespace, Punctuation),
+                "#pop",
+            ),
+            (r"([\w.]+)", Name.Function, ("#pop", "old_arguments")),
         ],
-        'procedure_definition': [
-            (r'\s', Whitespace),
-            (r'([\w.]+)(\s*?[(:])',
-             bygroups(Name.Function, Whitespace), '#pop'),
-            (r'([\w.]+)([^\n]*)',
-             bygroups(Name.Function, Text), '#pop'),
+        "procedure_definition": [
+            (r"\s", Whitespace),
+            (r"([\w.]+)(\s*?[(:])", bygroups(Name.Function, Whitespace), "#pop"),
+            (r"([\w.]+)([^\n]*)", bygroups(Name.Function, Text), "#pop"),
         ],
-        'function_call': [
-            (words(functions_string, suffix=r'\$(?=\s*[:(])'), Name.Function, 'function'),
-            (words(functions_array, suffix=r'#(?=\s*[:(])'),   Name.Function, 'function'),
-            (words(functions_numeric, suffix=r'(?=\s*[:(])'),  Name.Function, 'function'),
+        "function_call": [
+            (
+                words(functions_string, suffix=r"\$(?=\s*[:(])"),
+                Name.Function,
+                "function",
+            ),
+            (words(functions_array, suffix=r"#(?=\s*[:(])"), Name.Function, "function"),
+            (
+                words(functions_numeric, suffix=r"(?=\s*[:(])"),
+                Name.Function,
+                "function",
+            ),
         ],
-        'function': [
-            (r'\s+',   Whitespace),
-            (r':',     Punctuation, ('#pop', 'comma_list')),
-            (r'\s*\(', Punctuation, ('#pop', 'comma_list')),
+        "function": [
+            (r"\s+", Whitespace),
+            (r":", Punctuation, ("#pop", "comma_list")),
+            (r"\s*\(", Punctuation, ("#pop", "comma_list")),
         ],
-        'comma_list': [
-            (r'(\s*\n\s*)(\.{3})', bygroups(Whitespace, Punctuation)),
-
-            (r'(\s*)(?:([)\]])|(\n))', bygroups(
-                Whitespace, Punctuation, Whitespace), '#pop'),
-
-            (r'\s+', Whitespace),
-            (r'"',   String, 'string'),
-            (r'\b(if|then|else|fi|endif)\b', Keyword),
-
-            include('function_call'),
-            include('variable_name'),
-            include('operator'),
-            include('number'),
-
-            (r'[()]', Text),
-            (r',', Punctuation),
+        "comma_list": [
+            (r"(\s*\n\s*)(\.{3})", bygroups(Whitespace, Punctuation)),
+            (
+                r"(\s*)(?:([)\]])|(\n))",
+                bygroups(Whitespace, Punctuation, Whitespace),
+                "#pop",
+            ),
+            (r"\s+", Whitespace),
+            (r'"', String, "string"),
+            (r"\b(if|then|else|fi|endif)\b", Keyword),
+            include("function_call"),
+            include("variable_name"),
+            include("operator"),
+            include("number"),
+            (r"[()]", Text),
+            (r",", Punctuation),
         ],
-        'old_arguments': [
-            (r'\n', Whitespace, '#pop'),
-
-            include('variable_name'),
-            include('operator'),
-            include('number'),
-
-            (r'"', String, 'string'),
-            (r'[^\n]', Text),
+        "old_arguments": [
+            (r"\n", Whitespace, "#pop"),
+            include("variable_name"),
+            include("operator"),
+            include("number"),
+            (r'"', String, "string"),
+            (r"[^\n]", Text),
         ],
-        'number': [
-            (r'\n', Whitespace, '#pop'),
-            (r'\b\d+(\.\d*)?([eE][-+]?\d+)?%?', Number),
+        "number": [
+            (r"\n", Whitespace, "#pop"),
+            (r"\b\d+(\.\d*)?([eE][-+]?\d+)?%?", Number),
         ],
-        'object_reference': [
-            include('string_interpolated'),
-            (r'([a-z][a-zA-Z0-9_]*|\d+)', Name.Builtin),
-
-            (words(object_attributes, prefix=r'\.'), Name.Builtin, '#pop'),
-
-            (r'\$', Name.Builtin),
-            (r'\[', Text, '#pop'),
+        "object_reference": [
+            include("string_interpolated"),
+            (r"([a-z][a-zA-Z0-9_]*|\d+)", Name.Builtin),
+            (words(object_attributes, prefix=r"\."), Name.Builtin, "#pop"),
+            (r"\$", Name.Builtin),
+            (r"\[", Text, "#pop"),
         ],
-        'variable_name': [
-            include('operator'),
-            include('number'),
-
-            (words(variables_string,  suffix=r'\$'), Name.Variable.Global),
-            (words(variables_numeric,
-             suffix=r'(?=[^a-zA-Z0-9_."\'$#\[:(]|\s|^|$)'),
-             Name.Variable.Global),
-
-            (words(objects, prefix=r'\b', suffix=r"(_)"),
-             bygroups(Name.Builtin, Name.Builtin),
-             'object_reference'),
-
-            (r'\.?_?[a-z][\w.]*(\$|#)?', Text),
-            (r'[\[\]]', Punctuation, 'comma_list'),
-
-            include('string_interpolated'),
+        "variable_name": [
+            include("operator"),
+            include("number"),
+            (words(variables_string, suffix=r"\$"), Name.Variable.Global),
+            (
+                words(variables_numeric, suffix=r'(?=[^a-zA-Z0-9_."\'$#\[:(]|\s|^|$)'),
+                Name.Variable.Global,
+            ),
+            (
+                words(objects, prefix=r"\b", suffix=r"(_)"),
+                bygroups(Name.Builtin, Name.Builtin),
+                "object_reference",
+            ),
+            (r"\.?_?[a-z][\w.]*(\$|#)?", Text),
+            (r"[\[\]]", Punctuation, "comma_list"),
+            include("string_interpolated"),
         ],
-        'operator': [
-            (r'([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)',       Operator),
-            (r'(?=!-]=?|[&*|][&*|]?|\^|<>)", Operator),
+            (r"(?', Punctuation),
-            (r'"(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|'
-             r'\\[0-7]+\\|\\["\\abcefnrstv]|[^\\"])*"', String.Double),
+            (r"\d\d?\'[a-zA-Z0-9]+", Number.Integer),
+            (r"(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?", Number.Float),
+            (r"\d+", Number.Integer),
+            (r"[\[\](){}|.,;!]", Punctuation),
+            (r":-|-->", Punctuation),
+            (
+                r'"(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|'
+                r'\\[0-7]+\\|\\["\\abcefnrstv]|[^\\"])*"',
+                String.Double,
+            ),
             (r"'(?:''|[^'])*'", String.Atom),  # quoted atom
             # Needs to not be followed by an atom.
             # (r'=(?=\s|[a-zA-Z\[])', Operator),
-            (r'is\b', Operator),
-            (r'(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])',
-             Operator),
-            (r'(mod|div|not)\b', Operator),
-            (r'_', Keyword),  # The don't-care variable
-            (r'([a-z]+)(:)', bygroups(Name.Namespace, Punctuation)),
-            (r'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
-             r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
-             r'(\s*)(:-|-->)',
-             bygroups(Name.Function, Text, Operator)),  # function defn
-            (r'([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
-             r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)'
-             r'(\s*)(\()',
-             bygroups(Name.Function, Text, Punctuation)),
-            (r'[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]'
-             r'[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*',
-             String.Atom),  # atom, characters
+            (r"is\b", Operator),
+            (r"(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])", Operator),
+            (r"(mod|div|not)\b", Operator),
+            (r"_", Keyword),  # The don't-care variable
+            (r"([a-z]+)(:)", bygroups(Name.Namespace, Punctuation)),
+            (
+                r"([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]"
+                r"[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)"
+                r"(\s*)(:-|-->)",
+                bygroups(Name.Function, Text, Operator),
+            ),  # function defn
+            (
+                r"([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]"
+                r"[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)"
+                r"(\s*)(\()",
+                bygroups(Name.Function, Text, Punctuation),
+            ),
+            (
+                r"[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]"
+                r"[\w$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*",
+                String.Atom,
+            ),  # atom, characters
             # This one includes !
-            (r'[#&*+\-./:<=>?@\\^~\u00a1-\u00bf\u2010-\u303f]+',
-             String.Atom),  # atom, graphics
-            (r'[A-Z_]\w*', Name.Variable),
-            (r'\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]', Text),
+            (
+                r"[#&*+\-./:<=>?@\\^~\u00a1-\u00bf\u2010-\u303f]+",
+                String.Atom,
+            ),  # atom, graphics
+            (r"[A-Z_]\w*", Name.Variable),
+            (r"\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]", Text),
         ],
-        'nested-comment': [
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'[^*/]+', Comment.Multiline),
-            (r'[*/]', Comment.Multiline),
+        "nested-comment": [
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"[^*/]+", Comment.Multiline),
+            (r"[*/]", Comment.Multiline),
         ],
     }
 
     def analyse_text(text):
         """Competes with IDL and Visual Prolog on *.pro"""
-        if ':-' in text:
+        if ":-" in text:
             # Visual Prolog also uses :-
             return 0.5
         else:
@@ -93,226 +112,248 @@ class LogtalkLexer(RegexLexer):
     For Logtalk source code.
     """
 
-    name = 'Logtalk'
-    url = 'http://logtalk.org/'
-    aliases = ['logtalk']
-    filenames = ['*.lgt', '*.logtalk']
-    mimetypes = ['text/x-logtalk']
-    version_added = '0.10'
+    name = "Logtalk"
+    url = "http://logtalk.org/"
+    aliases = ["logtalk"]
+    filenames = ["*.lgt", "*.logtalk"]
+    mimetypes = ["text/x-logtalk"]
+    version_added = "0.10"
 
     tokens = {
-        'root': [
+        "root": [
             # Directives
-            (r'^\s*:-\s', Punctuation, 'directive'),
+            (r"^\s*:-\s", Punctuation, "directive"),
             # Comments
-            (r'%.*?\n', Comment),
-            (r'/\*(.|\n)*?\*/', Comment),
+            (r"%.*?\n", Comment),
+            (r"/\*(.|\n)*?\*/", Comment),
             # Whitespace
-            (r'\n', Text),
-            (r'\s+', Text),
+            (r"\n", Text),
+            (r"\s+", Text),
             # Numbers
             (r"0'[\\]?.", Number),
-            (r'0b[01]+', Number.Bin),
-            (r'0o[0-7]+', Number.Oct),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
+            (r"0b[01]+", Number.Bin),
+            (r"0o[0-7]+", Number.Oct),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"\d+\.?\d*((e|E)(\+|-)?\d+)?", Number),
             # Variables
-            (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
+            (r"([A-Z_][a-zA-Z0-9_]*)", Name.Variable),
             # Event handlers
-            (r'(after|before)(?=[(])', Keyword),
+            (r"(after|before)(?=[(])", Keyword),
             # Message forwarding handler
-            (r'forward(?=[(])', Keyword),
+            (r"forward(?=[(])", Keyword),
             # Execution-context methods
-            (r'(context|parameter|this|se(lf|nder))(?=[(])', Keyword),
+            (r"(context|parameter|this|se(lf|nder))(?=[(])", Keyword),
             # Reflection
-            (r'(current_predicate|predicate_property)(?=[(])', Keyword),
+            (r"(current_predicate|predicate_property)(?=[(])", Keyword),
             # DCGs and term expansion
-            (r'(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])', Keyword),
+            (r"(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])", Keyword),
             # Entity
-            (r'(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])', Keyword),
-            (r'(object|protocol|category)_property(?=[(])', Keyword),
+            (r"(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])", Keyword),
+            (r"(object|protocol|category)_property(?=[(])", Keyword),
             # Entity relations
-            (r'co(mplements_object|nforms_to_protocol)(?=[(])', Keyword),
-            (r'extends_(object|protocol|category)(?=[(])', Keyword),
-            (r'imp(lements_protocol|orts_category)(?=[(])', Keyword),
-            (r'(instantiat|specializ)es_class(?=[(])', Keyword),
+            (r"co(mplements_object|nforms_to_protocol)(?=[(])", Keyword),
+            (r"extends_(object|protocol|category)(?=[(])", Keyword),
+            (r"imp(lements_protocol|orts_category)(?=[(])", Keyword),
+            (r"(instantiat|specializ)es_class(?=[(])", Keyword),
             # Events
-            (r'(current_event|(abolish|define)_events)(?=[(])', Keyword),
+            (r"(current_event|(abolish|define)_events)(?=[(])", Keyword),
             # Flags
-            (r'(create|current|set)_logtalk_flag(?=[(])', Keyword),
+            (r"(create|current|set)_logtalk_flag(?=[(])", Keyword),
             # Compiling, loading, and library paths
-            (r'logtalk_(compile|l(ibrary_path|oad|oad_context)|make(_target_action)?)(?=[(])', Keyword),
-            (r'\blogtalk_make\b', Keyword),
+            (
+                r"logtalk_(compile|l(ibrary_path|oad|oad_context)|make(_target_action)?)(?=[(])",
+                Keyword,
+            ),
+            (r"\blogtalk_make\b", Keyword),
             # Database
-            (r'(clause|retract(all)?)(?=[(])', Keyword),
-            (r'a(bolish|ssert(a|z))(?=[(])', Keyword),
+            (r"(clause|retract(all)?)(?=[(])", Keyword),
+            (r"a(bolish|ssert(a|z))(?=[(])", Keyword),
             # Control constructs
-            (r'(ca(ll|tch)|throw)(?=[(])', Keyword),
-            (r'(fa(il|lse)|true|(instantiation|system)_error)\b', Keyword),
-            (r'(uninstantiation|type|domain|existence|permission|representation|evaluation|resource|syntax)_error(?=[(])', Keyword),
+            (r"(ca(ll|tch)|throw)(?=[(])", Keyword),
+            (r"(fa(il|lse)|true|(instantiation|system)_error)\b", Keyword),
+            (
+                r"(uninstantiation|type|domain|existence|permission|representation|evaluation|resource|syntax)_error(?=[(])",
+                Keyword,
+            ),
             # All solutions
-            (r'((bag|set)of|f(ind|or)all)(?=[(])', Keyword),
+            (r"((bag|set)of|f(ind|or)all)(?=[(])", Keyword),
             # Multi-threading predicates
-            (r'threaded(_(ca(ll|ncel)|once|ignore|exit|peek|wait|notify))?(?=[(])', Keyword),
+            (
+                r"threaded(_(ca(ll|ncel)|once|ignore|exit|peek|wait|notify))?(?=[(])",
+                Keyword,
+            ),
             # Engine predicates
-            (r'threaded_engine(_(create|destroy|self|next|next_reified|yield|post|fetch))?(?=[(])', Keyword),
+            (
+                r"threaded_engine(_(create|destroy|self|next|next_reified|yield|post|fetch))?(?=[(])",
+                Keyword,
+            ),
             # Term unification
-            (r'(subsumes_term|unify_with_occurs_check)(?=[(])', Keyword),
+            (r"(subsumes_term|unify_with_occurs_check)(?=[(])", Keyword),
             # Term creation and decomposition
-            (r'(functor|arg|copy_term|numbervars|term_variables)(?=[(])', Keyword),
+            (r"(functor|arg|copy_term|numbervars|term_variables)(?=[(])", Keyword),
             # Evaluable functors
-            (r'(div|rem|m(ax|in|od)|abs|sign)(?=[(])', Keyword),
-            (r'float(_(integer|fractional)_part)?(?=[(])', Keyword),
-            (r'(floor|t(an|runcate)|round|ceiling)(?=[(])', Keyword),
+            (r"(div|rem|m(ax|in|od)|abs|sign)(?=[(])", Keyword),
+            (r"float(_(integer|fractional)_part)?(?=[(])", Keyword),
+            (r"(floor|t(an|runcate)|round|ceiling)(?=[(])", Keyword),
             # Other arithmetic functors
-            (r'(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])', Keyword),
+            (r"(cos|a(cos|sin|tan|tan2)|exp|log|s(in|qrt)|xor)(?=[(])", Keyword),
             # Term testing
-            (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|ground|acyclic_term)(?=[(])', Keyword),
+            (
+                r"(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|ground|acyclic_term)(?=[(])",
+                Keyword,
+            ),
             # Term comparison
-            (r'compare(?=[(])', Keyword),
+            (r"compare(?=[(])", Keyword),
             # Stream selection and control
-            (r'(curren|se)t_(in|out)put(?=[(])', Keyword),
-            (r'(open|close)(?=[(])', Keyword),
-            (r'flush_output(?=[(])', Keyword),
-            (r'(at_end_of_stream|flush_output)\b', Keyword),
-            (r'(stream_property|at_end_of_stream|set_stream_position)(?=[(])', Keyword),
+            (r"(curren|se)t_(in|out)put(?=[(])", Keyword),
+            (r"(open|close)(?=[(])", Keyword),
+            (r"flush_output(?=[(])", Keyword),
+            (r"(at_end_of_stream|flush_output)\b", Keyword),
+            (r"(stream_property|at_end_of_stream|set_stream_position)(?=[(])", Keyword),
             # Character and byte input/output
-            (r'(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])', Keyword),
-            (r'\bnl\b', Keyword),
+            (r"(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])", Keyword),
+            (r"\bnl\b", Keyword),
             # Term input/output
-            (r'read(_term)?(?=[(])', Keyword),
-            (r'write(q|_(canonical|term))?(?=[(])', Keyword),
-            (r'(current_)?op(?=[(])', Keyword),
-            (r'(current_)?char_conversion(?=[(])', Keyword),
+            (r"read(_term)?(?=[(])", Keyword),
+            (r"write(q|_(canonical|term))?(?=[(])", Keyword),
+            (r"(current_)?op(?=[(])", Keyword),
+            (r"(current_)?char_conversion(?=[(])", Keyword),
             # Atomic term processing
-            (r'atom_(length|c(hars|o(ncat|des)))(?=[(])', Keyword),
-            (r'(char_code|sub_atom)(?=[(])', Keyword),
-            (r'number_c(har|ode)s(?=[(])', Keyword),
+            (r"atom_(length|c(hars|o(ncat|des)))(?=[(])", Keyword),
+            (r"(char_code|sub_atom)(?=[(])", Keyword),
+            (r"number_c(har|ode)s(?=[(])", Keyword),
             # Implementation defined hooks functions
-            (r'(se|curren)t_prolog_flag(?=[(])', Keyword),
-            (r'\bhalt\b', Keyword),
-            (r'halt(?=[(])', Keyword),
+            (r"(se|curren)t_prolog_flag(?=[(])", Keyword),
+            (r"\bhalt\b", Keyword),
+            (r"halt(?=[(])", Keyword),
             # Message sending operators
-            (r'(::|:|\^\^)', Operator),
+            (r"(::|:|\^\^)", Operator),
             # External call
-            (r'[{}]', Keyword),
+            (r"[{}]", Keyword),
             # Logic and control
-            (r'(ignore|once)(?=[(])', Keyword),
-            (r'\brepeat\b', Keyword),
+            (r"(ignore|once)(?=[(])", Keyword),
+            (r"\brepeat\b", Keyword),
             # Sorting
-            (r'(key)?sort(?=[(])', Keyword),
+            (r"(key)?sort(?=[(])", Keyword),
             # Bitwise functors
-            (r'(>>|<<|/\\|\\\\|\\)', Operator),
+            (r"(>>|<<|/\\|\\\\|\\)", Operator),
             # Predicate aliases
-            (r'\bas\b', Operator),
+            (r"\bas\b", Operator),
             # Arithmetic evaluation
-            (r'\bis\b', Keyword),
+            (r"\bis\b", Keyword),
             # Arithmetic comparison
-            (r'(=:=|=\\=|<|=<|>=|>)', Operator),
+            (r"(=:=|=\\=|<|=<|>=|>)", Operator),
             # Term creation and decomposition
-            (r'=\.\.', Operator),
+            (r"=\.\.", Operator),
             # Term unification
-            (r'(=|\\=)', Operator),
+            (r"(=|\\=)", Operator),
             # Term comparison
-            (r'(==|\\==|@=<|@<|@>=|@>)', Operator),
+            (r"(==|\\==|@=<|@<|@>=|@>)", Operator),
             # Evaluable functors
-            (r'(//|[-+*/])', Operator),
-            (r'\b(e|pi|div|mod|rem)\b', Operator),
+            (r"(//|[-+*/])", Operator),
+            (r"\b(e|pi|div|mod|rem)\b", Operator),
             # Other arithmetic functors
-            (r'\b\*\*\b', Operator),
+            (r"\b\*\*\b", Operator),
             # DCG rules
-            (r'-->', Operator),
+            (r"-->", Operator),
             # Control constructs
-            (r'([!;]|->)', Operator),
+            (r"([!;]|->)", Operator),
             # Logic and control
-            (r'\\+', Operator),
+            (r"\\+", Operator),
             # Mode operators
-            (r'[?@]', Operator),
+            (r"[?@]", Operator),
             # Existential quantifier
-            (r'\^', Operator),
+            (r"\^", Operator),
             # Punctuation
-            (r'[()\[\],.|]', Text),
+            (r"[()\[\],.|]", Text),
             # Atoms
             (r"[a-z][a-zA-Z0-9_]*", Text),
-            (r"'", String, 'quoted_atom'),
+            (r"'", String, "quoted_atom"),
             # Double-quoted terms
-            (r'"', String, 'double_quoted_term'),
+            (r'"', String, "double_quoted_term"),
         ],
-
-        'quoted_atom': [
+        "quoted_atom": [
             (r"''", String),
-            (r"'", String, '#pop'),
+            (r"'", String, "#pop"),
             (r'\\([\\abfnrtv"\']|(x[a-fA-F0-9]+|[0-7]+)\\)', String.Escape),
             (r"[^\\'\n]+", String),
-            (r'\\', String),
+            (r"\\", String),
         ],
-
-        'double_quoted_term': [
+        "double_quoted_term": [
             (r'""', String),
-            (r'"', String, '#pop'),
+            (r'"', String, "#pop"),
             (r'\\([\\abfnrtv"\']|(x[a-fA-F0-9]+|[0-7]+)\\)', String.Escape),
             (r'[^\\"\n]+', String),
-            (r'\\', String),
+            (r"\\", String),
         ],
-
-        'directive': [
+        "directive": [
             # Conditional compilation directives
-            (r'(el)?if(?=[(])', Keyword, 'root'),
-            (r'(e(lse|ndif))(?=[.])', Keyword, 'root'),
+            (r"(el)?if(?=[(])", Keyword, "root"),
+            (r"(e(lse|ndif))(?=[.])", Keyword, "root"),
             # Entity directives
-            (r'(category|object|protocol)(?=[(])', Keyword, 'entityrelations'),
-            (r'(end_(category|object|protocol))(?=[.])', Keyword, 'root'),
+            (r"(category|object|protocol)(?=[(])", Keyword, "entityrelations"),
+            (r"(end_(category|object|protocol))(?=[.])", Keyword, "root"),
             # Predicate scope directives
-            (r'(public|protected|private)(?=[(])', Keyword, 'root'),
+            (r"(public|protected|private)(?=[(])", Keyword, "root"),
             # Other directives
-            (r'e(n(coding|sure_loaded)|xport)(?=[(])', Keyword, 'root'),
-            (r'in(clude|itialization|fo)(?=[(])', Keyword, 'root'),
-            (r'(built_in|dynamic|synchronized|threaded)(?=[.])', Keyword, 'root'),
-            (r'(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])', Keyword, 'root'),
-            (r'op(?=[(])', Keyword, 'root'),
-            (r'(c(alls|oinductive)|module|reexport|use(s|_module))(?=[(])', Keyword, 'root'),
-            (r'[a-z][a-zA-Z0-9_]*(?=[(])', Text, 'root'),
-            (r'[a-z][a-zA-Z0-9_]*(?=[.])', Text, 'root'),
+            (r"e(n(coding|sure_loaded)|xport)(?=[(])", Keyword, "root"),
+            (r"in(clude|itialization|fo)(?=[(])", Keyword, "root"),
+            (r"(built_in|dynamic|synchronized|threaded)(?=[.])", Keyword, "root"),
+            (
+                r"(alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])",
+                Keyword,
+                "root",
+            ),
+            (r"op(?=[(])", Keyword, "root"),
+            (
+                r"(c(alls|oinductive)|module|reexport|use(s|_module))(?=[(])",
+                Keyword,
+                "root",
+            ),
+            (r"[a-z][a-zA-Z0-9_]*(?=[(])", Text, "root"),
+            (r"[a-z][a-zA-Z0-9_]*(?=[.])", Text, "root"),
         ],
-
-        'entityrelations': [
-            (r'(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])', Keyword),
+        "entityrelations": [
+            (
+                r"(complements|extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])",
+                Keyword,
+            ),
             # Numbers
             (r"0'[\\]?.", Number),
-            (r'0b[01]+', Number.Bin),
-            (r'0o[0-7]+', Number.Oct),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
+            (r"0b[01]+", Number.Bin),
+            (r"0o[0-7]+", Number.Oct),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"\d+\.?\d*((e|E)(\+|-)?\d+)?", Number),
             # Variables
-            (r'([A-Z_][a-zA-Z0-9_]*)', Name.Variable),
+            (r"([A-Z_][a-zA-Z0-9_]*)", Name.Variable),
             # Atoms
             (r"[a-z][a-zA-Z0-9_]*", Text),
-            (r"'", String, 'quoted_atom'),
+            (r"'", String, "quoted_atom"),
             # Double-quoted terms
-            (r'"', String, 'double_quoted_term'),
+            (r'"', String, "double_quoted_term"),
             # End of entity-opening directive
-            (r'([)]\.)', Text, 'root'),
+            (r"([)]\.)", Text, "root"),
             # Scope operator
-            (r'(::)', Operator),
+            (r"(::)", Operator),
             # Punctuation
-            (r'[()\[\],.|]', Text),
+            (r"[()\[\],.|]", Text),
             # Comments
-            (r'%.*?\n', Comment),
-            (r'/\*(.|\n)*?\*/', Comment),
+            (r"%.*?\n", Comment),
+            (r"/\*(.|\n)*?\*/", Comment),
             # Whitespace
-            (r'\n', Text),
-            (r'\s+', Text),
-        ]
+            (r"\n", Text),
+            (r"\s+", Text),
+        ],
     }
 
     def analyse_text(text):
-        if ':- object(' in text:
+        if ":- object(" in text:
             return 1.0
-        elif ':- protocol(' in text:
+        elif ":- protocol(" in text:
             return 1.0
-        elif ':- category(' in text:
+        elif ":- category(" in text:
             return 1.0
-        elif re.search(r'^:-\s[a-z]', text, re.M):
+        elif re.search(r"^:-\s[a-z]", text, re.M):
             return 0.9
         else:
             return 0.0
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/promql.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/promql.py
index cad3c25..0aac9bd 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/promql.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/promql.py
@@ -1,16 +1,24 @@
 """
-    pygments.lexers.promql
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.promql
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Prometheus Query Language.
+Lexer for Prometheus Query Language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, default, words
-from pygments.token import Comment, Keyword, Name, Number, Operator, \
-    Punctuation, String, Whitespace
+from pygments.token import (
+    Comment,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Whitespace,
+)
 
 __all__ = ["PromQLLexer"]
 
@@ -26,10 +34,10 @@ class PromQLLexer(RegexLexer):
     """
 
     name = "PromQL"
-    url = 'https://prometheus.io/docs/prometheus/latest/querying/basics/'
+    url = "https://prometheus.io/docs/prometheus/latest/querying/basics/"
     aliases = ["promql"]
     filenames = ["*.promql"]
-    version_added = ''
+    version_added = ""
 
     base_keywords = (
         words(
@@ -160,9 +168,18 @@ class PromQLLexer(RegexLexer):
             (r"\n", Whitespace),
             (r"\s+", Whitespace),
             (r",", Punctuation),
-            (r'([_a-zA-Z][a-zA-Z0-9_]*?)(\s*?)(=~|!=|=|!~)(\s*?)("|\')(.*?)("|\')',
-             bygroups(Name.Label, Whitespace, Operator, Whitespace,
-                      Punctuation, String, Punctuation)),
+            (
+                r'([_a-zA-Z][a-zA-Z0-9_]*?)(\s*?)(=~|!=|=|!~)(\s*?)("|\')(.*?)("|\')',
+                bygroups(
+                    Name.Label,
+                    Whitespace,
+                    Operator,
+                    Whitespace,
+                    Punctuation,
+                    String,
+                    Punctuation,
+                ),
+            ),
         ],
         "range": [
             (r"\]", Punctuation, "#pop"),
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/prql.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/prql.py
index ee95d2d..1ffd3ed 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/prql.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/prql.py
@@ -1,18 +1,28 @@
 """
-    pygments.lexers.prql
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.prql
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the PRQL query language.
+Lexer for the PRQL query language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, combined, words, include, bygroups
-from pygments.token import Comment, Literal, Keyword, Name, Number, Operator, \
-    Punctuation, String, Text, Whitespace
+from pygments.token import (
+    Comment,
+    Literal,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Text,
+    Whitespace,
+)
 
-__all__ = ['PrqlLexer']
+__all__ = ["PrqlLexer"]
 
 
 class PrqlLexer(RegexLexer):
@@ -22,230 +32,300 @@ class PrqlLexer(RegexLexer):
     grammar: https://github.com/PRQL/prql/tree/main/grammars
     """
 
-    name = 'PRQL'
-    url = 'https://prql-lang.org/'
-    aliases = ['prql']
-    filenames = ['*.prql']
-    mimetypes = ['application/prql', 'application/x-prql']
-    version_added = '2.17'
+    name = "PRQL"
+    url = "https://prql-lang.org/"
+    aliases = ["prql"]
+    filenames = ["*.prql"]
+    mimetypes = ["application/prql", "application/x-prql"]
+    version_added = "2.17"
 
-    builtinTypes = words((
-        "bool",
-        "int",
-        "int8", "int16", "int32", "int64", "int128",
-        "float",
-        "text",
-        "set"), suffix=r'\b')
+    builtinTypes = words(
+        (
+            "bool",
+            "int",
+            "int8",
+            "int16",
+            "int32",
+            "int64",
+            "int128",
+            "float",
+            "text",
+            "set",
+        ),
+        suffix=r"\b",
+    )
 
     def innerstring_rules(ttype):
         return [
             # the new style '{}'.format(...) string formatting
-            (r'\{'
-             r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?'  # field name
-             r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?'
-             r'\}', String.Interpol),
-
+            (
+                r"\{"
+                r"((\w+)((\.\w+)|(\[[^\]]+\]))*)?"  # field name
+                r"(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?"
+                r"\}",
+                String.Interpol,
+            ),
             (r'[^\\\'"%{\n]+', ttype),
             (r'[\'"\\]', ttype),
-            (r'%|(\{{1,2})', ttype)
+            (r"%|(\{{1,2})", ttype),
         ]
 
     def fstring_rules(ttype):
         return [
-            (r'\}', String.Interpol),
-            (r'\{', String.Interpol, 'expr-inside-fstring'),
+            (r"\}", String.Interpol),
+            (r"\{", String.Interpol, "expr-inside-fstring"),
             (r'[^\\\'"{}\n]+', ttype),
             (r'[\'"\\]', ttype),
         ]
 
     tokens = {
-        'root': [
-
+        "root": [
             # Comments
-            (r'#!.*', String.Doc),
-            (r'#.*', Comment.Single),
-
+            (r"#!.*", String.Doc),
+            (r"#.*", Comment.Single),
             # Whitespace
-            (r'\s+', Whitespace),
-
+            (r"\s+", Whitespace),
             # Modules
-            (r'^(\s*)(module)(\s*)',
-             bygroups(Whitespace, Keyword.Namespace, Whitespace),
-             'imports'),
-
+            (
+                r"^(\s*)(module)(\s*)",
+                bygroups(Whitespace, Keyword.Namespace, Whitespace),
+                "imports",
+            ),
             (builtinTypes, Keyword.Type),
-
             # Main
-            (r'^prql ', Keyword.Reserved),
-
-            ('let', Keyword.Declaration),
-
-            include('keywords'),
-            include('expr'),
-
+            (r"^prql ", Keyword.Reserved),
+            ("let", Keyword.Declaration),
+            include("keywords"),
+            include("expr"),
             # Transforms
-            (r'^[A-Za-z_][a-zA-Z0-9_]*', Keyword),
+            (r"^[A-Za-z_][a-zA-Z0-9_]*", Keyword),
         ],
-        'expr': [
+        "expr": [
             # non-raw f-strings
-            ('(f)(""")', bygroups(String.Affix, String.Double),
-             combined('fstringescape', 'tdqf')),
-            ("(f)(''')", bygroups(String.Affix, String.Single),
-             combined('fstringescape', 'tsqf')),
-            ('(f)(")', bygroups(String.Affix, String.Double),
-             combined('fstringescape', 'dqf')),
-            ("(f)(')", bygroups(String.Affix, String.Single),
-             combined('fstringescape', 'sqf')),
-
+            (
+                '(f)(""")',
+                bygroups(String.Affix, String.Double),
+                combined("fstringescape", "tdqf"),
+            ),
+            (
+                "(f)(''')",
+                bygroups(String.Affix, String.Single),
+                combined("fstringescape", "tsqf"),
+            ),
+            (
+                '(f)(")',
+                bygroups(String.Affix, String.Double),
+                combined("fstringescape", "dqf"),
+            ),
+            (
+                "(f)(')",
+                bygroups(String.Affix, String.Single),
+                combined("fstringescape", "sqf"),
+            ),
             # non-raw s-strings
-            ('(s)(""")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'tdqf')),
-            ("(s)(''')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'tsqf')),
-            ('(s)(")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'dqf')),
-            ("(s)(')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'sqf')),
-
+            (
+                '(s)(""")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "tdqf"),
+            ),
+            (
+                "(s)(''')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "tsqf"),
+            ),
+            (
+                '(s)(")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "dqf"),
+            ),
+            (
+                "(s)(')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "sqf"),
+            ),
             # raw strings
-            ('(?i)(r)(""")',
-             bygroups(String.Affix, String.Double), 'tdqs'),
-            ("(?i)(r)(''')",
-             bygroups(String.Affix, String.Single), 'tsqs'),
-            ('(?i)(r)(")',
-             bygroups(String.Affix, String.Double), 'dqs'),
-            ("(?i)(r)(')",
-             bygroups(String.Affix, String.Single), 'sqs'),
-
+            ('(?i)(r)(""")', bygroups(String.Affix, String.Double), "tdqs"),
+            ("(?i)(r)(''')", bygroups(String.Affix, String.Single), "tsqs"),
+            ('(?i)(r)(")', bygroups(String.Affix, String.Double), "dqs"),
+            ("(?i)(r)(')", bygroups(String.Affix, String.Single), "sqs"),
             # non-raw strings
-            ('"""', String.Double, combined('stringescape', 'tdqs')),
-            ("'''", String.Single, combined('stringescape', 'tsqs')),
-            ('"', String.Double, combined('stringescape', 'dqs')),
-            ("'", String.Single, combined('stringescape', 'sqs')),
-
+            ('"""', String.Double, combined("stringescape", "tdqs")),
+            ("'''", String.Single, combined("stringescape", "tsqs")),
+            ('"', String.Double, combined("stringescape", "dqs")),
+            ("'", String.Single, combined("stringescape", "sqs")),
             # Time and dates
-            (r'@\d{4}-\d{2}-\d{2}T\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?', Literal.Date),
-            (r'@\d{4}-\d{2}-\d{2}', Literal.Date),
-            (r'@\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?', Literal.Date),
-
-            (r'[^\S\n]+', Text),
-            include('numbers'),
-            (r'->|=>|==|!=|>=|<=|~=|&&|\|\||\?\?|\/\/', Operator),
-            (r'[-~+/*%=<>&^|.@]', Operator),
-            (r'[]{}:(),;[]', Punctuation),
-            include('functions'),
-
+            (
+                r"@\d{4}-\d{2}-\d{2}T\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?",
+                Literal.Date,
+            ),
+            (r"@\d{4}-\d{2}-\d{2}", Literal.Date),
+            (
+                r"@\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?",
+                Literal.Date,
+            ),
+            (r"[^\S\n]+", Text),
+            include("numbers"),
+            (r"->|=>|==|!=|>=|<=|~=|&&|\|\||\?\?|\/\/", Operator),
+            (r"[-~+/*%=<>&^|.@]", Operator),
+            (r"[]{}:(),;[]", Punctuation),
+            include("functions"),
             # Variable Names
-            (r'[A-Za-z_][a-zA-Z0-9_]*', Name.Variable),
+            (r"[A-Za-z_][a-zA-Z0-9_]*", Name.Variable),
         ],
-        'numbers': [
-            (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)'
-             r'([eE][+-]?\d(?:_?\d)*)?', Number.Float),
-            (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float),
-            (r'0[oO](?:_?[0-7])+', Number.Oct),
-            (r'0[bB](?:_?[01])+', Number.Bin),
-            (r'0[xX](?:_?[a-fA-F0-9])+', Number.Hex),
-            (r'\d(?:_?\d)*', Number.Integer),
+        "numbers": [
+            (
+                r"(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)"
+                r"([eE][+-]?\d(?:_?\d)*)?",
+                Number.Float,
+            ),
+            (r"\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?", Number.Float),
+            (r"0[oO](?:_?[0-7])+", Number.Oct),
+            (r"0[bB](?:_?[01])+", Number.Bin),
+            (r"0[xX](?:_?[a-fA-F0-9])+", Number.Hex),
+            (r"\d(?:_?\d)*", Number.Integer),
         ],
-        'fstringescape': [
-            include('stringescape'),
+        "fstringescape": [
+            include("stringescape"),
         ],
-        'bytesescape': [
+        "bytesescape": [
             (r'\\([\\bfnrt"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape)
         ],
-        'stringescape': [
-            (r'\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})', String.Escape),
-            include('bytesescape')
+        "stringescape": [
+            (r"\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})", String.Escape),
+            include("bytesescape"),
         ],
-        'fstrings-single': fstring_rules(String.Single),
-        'fstrings-double': fstring_rules(String.Double),
-        'strings-single': innerstring_rules(String.Single),
-        'strings-double': innerstring_rules(String.Double),
-        'dqf': [
-            (r'"', String.Double, '#pop'),
+        "fstrings-single": fstring_rules(String.Single),
+        "fstrings-double": fstring_rules(String.Double),
+        "strings-single": innerstring_rules(String.Single),
+        "strings-double": innerstring_rules(String.Double),
+        "dqf": [
+            (r'"', String.Double, "#pop"),
             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
-            include('fstrings-double')
+            include("fstrings-double"),
         ],
-        'sqf': [
-            (r"'", String.Single, '#pop'),
+        "sqf": [
+            (r"'", String.Single, "#pop"),
             (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
-            include('fstrings-single')
+            include("fstrings-single"),
         ],
-        'dqs': [
-            (r'"', String.Double, '#pop'),
+        "dqs": [
+            (r'"', String.Double, "#pop"),
             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
-            include('strings-double')
+            include("strings-double"),
         ],
-        'sqs': [
-            (r"'", String.Single, '#pop'),
+        "sqs": [
+            (r"'", String.Single, "#pop"),
             (r"\\\\|\\'|\\\n", String.Escape),  # included here for raw strings
-            include('strings-single')
+            include("strings-single"),
         ],
-        'tdqf': [
-            (r'"""', String.Double, '#pop'),
-            include('fstrings-double'),
-            (r'\n', String.Double)
+        "tdqf": [
+            (r'"""', String.Double, "#pop"),
+            include("fstrings-double"),
+            (r"\n", String.Double),
         ],
-        'tsqf': [
-            (r"'''", String.Single, '#pop'),
-            include('fstrings-single'),
-            (r'\n', String.Single)
+        "tsqf": [
+            (r"'''", String.Single, "#pop"),
+            include("fstrings-single"),
+            (r"\n", String.Single),
         ],
-        'tdqs': [
-            (r'"""', String.Double, '#pop'),
-            include('strings-double'),
-            (r'\n', String.Double)
+        "tdqs": [
+            (r'"""', String.Double, "#pop"),
+            include("strings-double"),
+            (r"\n", String.Double),
         ],
-        'tsqs': [
-            (r"'''", String.Single, '#pop'),
-            include('strings-single'),
-            (r'\n', String.Single)
+        "tsqs": [
+            (r"'''", String.Single, "#pop"),
+            include("strings-single"),
+            (r"\n", String.Single),
         ],
-
-        'expr-inside-fstring': [
-            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
+        "expr-inside-fstring": [
+            (r"[{([]", Punctuation, "expr-inside-fstring-inner"),
             # without format specifier
-            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
-             r'\}', String.Interpol, '#pop'),
+            (
+                r"(=\s*)?"  # debug (https://bugs.python.org/issue36817)
+                r"\}",
+                String.Interpol,
+                "#pop",
+            ),
             # with format specifier
             # we'll catch the remaining '}' in the outer scope
-            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
-             r':', String.Interpol, '#pop'),
-            (r'\s+', Whitespace),  # allow new lines
-            include('expr'),
+            (
+                r"(=\s*)?"  # debug (https://bugs.python.org/issue36817)
+                r":",
+                String.Interpol,
+                "#pop",
+            ),
+            (r"\s+", Whitespace),  # allow new lines
+            include("expr"),
         ],
-        'expr-inside-fstring-inner': [
-            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
-            (r'[])}]', Punctuation, '#pop'),
-            (r'\s+', Whitespace),  # allow new lines
-            include('expr'),
+        "expr-inside-fstring-inner": [
+            (r"[{([]", Punctuation, "expr-inside-fstring-inner"),
+            (r"[])}]", Punctuation, "#pop"),
+            (r"\s+", Whitespace),  # allow new lines
+            include("expr"),
         ],
-        'keywords': [
-            (words((
-                'into', 'case', 'type', 'module', 'internal',
-            ), suffix=r'\b'),
-                Keyword),
-            (words(('true', 'false', 'null'), suffix=r'\b'), Keyword.Constant),
+        "keywords": [
+            (
+                words(
+                    (
+                        "into",
+                        "case",
+                        "type",
+                        "module",
+                        "internal",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (words(("true", "false", "null"), suffix=r"\b"), Keyword.Constant),
         ],
-        'functions': [
-            (words((
-                "min", "max", "sum", "average", "stddev", "every", "any",
-                "concat_array", "count", "lag", "lead", "first", "last",
-                "rank", "rank_dense", "row_number", "round", "as", "in",
-                "tuple_every", "tuple_map", "tuple_zip", "_eq", "_is_null",
-                "from_text", "lower", "upper", "read_parquet", "read_csv"),
-                suffix=r'\b'),
-             Name.Function),
+        "functions": [
+            (
+                words(
+                    (
+                        "min",
+                        "max",
+                        "sum",
+                        "average",
+                        "stddev",
+                        "every",
+                        "any",
+                        "concat_array",
+                        "count",
+                        "lag",
+                        "lead",
+                        "first",
+                        "last",
+                        "rank",
+                        "rank_dense",
+                        "row_number",
+                        "round",
+                        "as",
+                        "in",
+                        "tuple_every",
+                        "tuple_map",
+                        "tuple_zip",
+                        "_eq",
+                        "_is_null",
+                        "from_text",
+                        "lower",
+                        "upper",
+                        "read_parquet",
+                        "read_csv",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Function,
+            ),
         ],
-
-        'comment': [
-            (r'-(?!\})', Comment.Multiline),
-            (r'\{-', Comment.Multiline, 'comment'),
-            (r'[^-}]', Comment.Multiline),
-            (r'-\}', Comment.Multiline, '#pop'),
+        "comment": [
+            (r"-(?!\})", Comment.Multiline),
+            (r"\{-", Comment.Multiline, "comment"),
+            (r"[^-}]", Comment.Multiline),
+            (r"-\}", Comment.Multiline, "#pop"),
         ],
-
-        'imports': [
-            (r'\w+(\.\w+)*', Name.Class, '#pop'),
+        "imports": [
+            (r"\w+(\.\w+)*", Name.Class, "#pop"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ptx.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ptx.py
index 784ca13..62a8f4e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ptx.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ptx.py
@@ -1,16 +1,24 @@
 """
-    pygments.lexers.ptx
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.ptx
+~~~~~~~~~~~~~~~~~~~
 
-    Lexer for other PTX language.
+Lexer for other PTX language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, words
-from pygments.token import Comment, Keyword, Name, String, Number, \
-    Punctuation, Whitespace, Operator
+from pygments.token import (
+    Comment,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+    Operator,
+)
 
 __all__ = ["PtxLexer"]
 
@@ -20,100 +28,262 @@ class PtxLexer(RegexLexer):
     For NVIDIA `PTX `_
     source.
     """
-    name = 'PTX'
+
+    name = "PTX"
     url = "https://docs.nvidia.com/cuda/parallel-thread-execution/"
-    filenames = ['*.ptx']
-    aliases = ['ptx']
-    mimetypes = ['text/x-ptx']
-    version_added = '2.16'
+    filenames = ["*.ptx"]
+    aliases = ["ptx"]
+    mimetypes = ["text/x-ptx"]
+    version_added = "2.16"
 
     #: optional Comment or Whitespace
     string = r'"[^"]*?"'
-    followsym = r'[a-zA-Z0-9_$]'
-    identifier = r'([-a-zA-Z$._][\w\-$.]*|' + string + ')'
-    block_label = r'(' + identifier + r'|(\d+))'
+    followsym = r"[a-zA-Z0-9_$]"
+    identifier = r"([-a-zA-Z$._][\w\-$.]*|" + string + ")"
+    block_label = r"(" + identifier + r"|(\d+))"
 
     tokens = {
-        'root': [
-            include('whitespace'),
-
-            (block_label + r'\s*:', Name.Label),
-
-            include('keyword'),
-
-            (r'%' + identifier, Name.Variable),
-            (r'%\d+', Name.Variable.Anonymous),
-            (r'c?' + string, String),
+        "root": [
+            include("whitespace"),
+            (block_label + r"\s*:", Name.Label),
+            include("keyword"),
+            (r"%" + identifier, Name.Variable),
+            (r"%\d+", Name.Variable.Anonymous),
+            (r"c?" + string, String),
             (identifier, Name.Variable),
-            (r';', Punctuation),
-            (r'[*+-/]', Operator),
-
-            (r'0[xX][a-fA-F0-9]+', Number),
-            (r'-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?', Number),
-
-            (r'[=<>{}\[\]()*.,!]|x\b', Punctuation)
-
+            (r";", Punctuation),
+            (r"[*+-/]", Operator),
+            (r"0[xX][a-fA-F0-9]+", Number),
+            (r"-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?", Number),
+            (r"[=<>{}\[\]()*.,!]|x\b", Punctuation),
         ],
-        'whitespace': [
-            (r'(\n|\s+)+', Whitespace),
-            (r'//.*?\n', Comment)
-        ],
-
-        'keyword': [
+        "whitespace": [(r"(\n|\s+)+", Whitespace), (r"//.*?\n", Comment)],
+        "keyword": [
             # Instruction keywords
-            (words((
-                'abs', 'discard', 'min', 'shf', 'vadd',
-                'activemask', 'div', 'mma', 'shfl', 'vadd2',
-                'add', 'dp2a', 'mov', 'shl', 'vadd4',
-                'addc', 'dp4a', 'movmatrix', 'shr', 'vavrg2',
-                'alloca', 'elect', 'mul', 'sin', 'vavrg4',
-                'and', 'ex2', 'mul24', 'slct', 'vmad',
-                'applypriority', 'exit', 'multimem', 'sqrt', 'vmax',
-                'atom', 'fence', 'nanosleep', 'st', 'vmax2',
-                'bar', 'fma', 'neg', 'stackrestore', 'vmax4',
-                'barrier', 'fns', 'not', 'stacksave', 'vmin',
-                'bfe', 'getctarank', 'or', 'stmatrix', 'vmin2',
-                'bfi', 'griddepcontrol', 'pmevent', 'sub', 'vmin4',
-                'bfind', 'isspacep', 'popc', 'subc', 'vote',
-                'bmsk', 'istypep', 'prefetch', 'suld', 'vset',
-                'bra', 'ld', 'prefetchu', 'suq', 'vset2',
-                'brev', 'ldmatrix', 'prmt', 'sured', 'vset4',
-                'brkpt', 'ldu', 'rcp', 'sust', 'vshl',
-                'brx', 'lg2', 'red', 'szext', 'vshr',
-                'call', 'lop3', 'redux', 'tanh', 'vsub',
-                'clz', 'mad', 'rem', 'testp', 'vsub2',
-                'cnot', 'mad24', 'ret', 'tex', 'vsub4',
-                'copysign', 'madc', 'rsqrt', 'tld4', 'wgmma',
-                'cos', 'mapa', 'sad', 'trap', 'wmma',
-                'cp', 'match', 'selp', 'txq', 'xor',
-                'createpolicy', 'max', 'set', 'vabsdiff', 'cvt',
-                'mbarrier', 'setmaxnreg', 'vabsdiff2', 'cvta',
-                'membar', 'setp', 'vabsdiff4')), Keyword),
+            (
+                words(
+                    (
+                        "abs",
+                        "discard",
+                        "min",
+                        "shf",
+                        "vadd",
+                        "activemask",
+                        "div",
+                        "mma",
+                        "shfl",
+                        "vadd2",
+                        "add",
+                        "dp2a",
+                        "mov",
+                        "shl",
+                        "vadd4",
+                        "addc",
+                        "dp4a",
+                        "movmatrix",
+                        "shr",
+                        "vavrg2",
+                        "alloca",
+                        "elect",
+                        "mul",
+                        "sin",
+                        "vavrg4",
+                        "and",
+                        "ex2",
+                        "mul24",
+                        "slct",
+                        "vmad",
+                        "applypriority",
+                        "exit",
+                        "multimem",
+                        "sqrt",
+                        "vmax",
+                        "atom",
+                        "fence",
+                        "nanosleep",
+                        "st",
+                        "vmax2",
+                        "bar",
+                        "fma",
+                        "neg",
+                        "stackrestore",
+                        "vmax4",
+                        "barrier",
+                        "fns",
+                        "not",
+                        "stacksave",
+                        "vmin",
+                        "bfe",
+                        "getctarank",
+                        "or",
+                        "stmatrix",
+                        "vmin2",
+                        "bfi",
+                        "griddepcontrol",
+                        "pmevent",
+                        "sub",
+                        "vmin4",
+                        "bfind",
+                        "isspacep",
+                        "popc",
+                        "subc",
+                        "vote",
+                        "bmsk",
+                        "istypep",
+                        "prefetch",
+                        "suld",
+                        "vset",
+                        "bra",
+                        "ld",
+                        "prefetchu",
+                        "suq",
+                        "vset2",
+                        "brev",
+                        "ldmatrix",
+                        "prmt",
+                        "sured",
+                        "vset4",
+                        "brkpt",
+                        "ldu",
+                        "rcp",
+                        "sust",
+                        "vshl",
+                        "brx",
+                        "lg2",
+                        "red",
+                        "szext",
+                        "vshr",
+                        "call",
+                        "lop3",
+                        "redux",
+                        "tanh",
+                        "vsub",
+                        "clz",
+                        "mad",
+                        "rem",
+                        "testp",
+                        "vsub2",
+                        "cnot",
+                        "mad24",
+                        "ret",
+                        "tex",
+                        "vsub4",
+                        "copysign",
+                        "madc",
+                        "rsqrt",
+                        "tld4",
+                        "wgmma",
+                        "cos",
+                        "mapa",
+                        "sad",
+                        "trap",
+                        "wmma",
+                        "cp",
+                        "match",
+                        "selp",
+                        "txq",
+                        "xor",
+                        "createpolicy",
+                        "max",
+                        "set",
+                        "vabsdiff",
+                        "cvt",
+                        "mbarrier",
+                        "setmaxnreg",
+                        "vabsdiff2",
+                        "cvta",
+                        "membar",
+                        "setp",
+                        "vabsdiff4",
+                    )
+                ),
+                Keyword,
+            ),
             # State Spaces and Suffixes
-            (words((
-                'reg', '.sreg', '.const', '.global',
-                '.local', '.param', '.shared', '.tex',
-                '.wide', '.loc'
-            )), Keyword.Pseudo),
+            (
+                words(
+                    (
+                        "reg",
+                        ".sreg",
+                        ".const",
+                        ".global",
+                        ".local",
+                        ".param",
+                        ".shared",
+                        ".tex",
+                        ".wide",
+                        ".loc",
+                    )
+                ),
+                Keyword.Pseudo,
+            ),
             # PTX Directives
-            (words((
-                '.address_size', '.explicitcluster', '.maxnreg', '.section',
-                '.alias', '.extern', '.maxntid', '.shared',
-                '.align', '.file', '.minnctapersm', '.sreg',
-                '.branchtargets', '.func', '.noreturn', '.target',
-                '.callprototype', '.global', '.param', '.tex',
-                '.calltargets', '.loc', '.pragma', '.version',
-                '.common', '.local', '.reg', '.visible',
-                '.const', '.maxclusterrank', '.reqnctapercluster', '.weak',
-                '.entry', '.maxnctapersm', '.reqntid')), Keyword.Reserved),
+            (
+                words(
+                    (
+                        ".address_size",
+                        ".explicitcluster",
+                        ".maxnreg",
+                        ".section",
+                        ".alias",
+                        ".extern",
+                        ".maxntid",
+                        ".shared",
+                        ".align",
+                        ".file",
+                        ".minnctapersm",
+                        ".sreg",
+                        ".branchtargets",
+                        ".func",
+                        ".noreturn",
+                        ".target",
+                        ".callprototype",
+                        ".global",
+                        ".param",
+                        ".tex",
+                        ".calltargets",
+                        ".loc",
+                        ".pragma",
+                        ".version",
+                        ".common",
+                        ".local",
+                        ".reg",
+                        ".visible",
+                        ".const",
+                        ".maxclusterrank",
+                        ".reqnctapercluster",
+                        ".weak",
+                        ".entry",
+                        ".maxnctapersm",
+                        ".reqntid",
+                    )
+                ),
+                Keyword.Reserved,
+            ),
             # Fundamental Types
-            (words((
-                '.s8', '.s16', '.s32', '.s64',
-                '.u8', '.u16', '.u32', '.u64',
-                '.f16', '.f16x2', '.f32', '.f64',
-                '.b8', '.b16', '.b32', '.b64',
-                '.pred'
-            )), Keyword.Type)
+            (
+                words(
+                    (
+                        ".s8",
+                        ".s16",
+                        ".s32",
+                        ".s64",
+                        ".u8",
+                        ".u16",
+                        ".u32",
+                        ".u64",
+                        ".f16",
+                        ".f16x2",
+                        ".f32",
+                        ".f64",
+                        ".b8",
+                        ".b16",
+                        ".b32",
+                        ".b64",
+                        ".pred",
+                    )
+                ),
+                Keyword.Type,
+            ),
         ],
-
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/python.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/python.py
index 805f6ff..3615797 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/python.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/python.py
@@ -1,25 +1,53 @@
 """
-    pygments.lexers.python
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.python
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Python and related languages.
+Lexers for Python and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import keyword
 
-from pygments.lexer import DelegatingLexer, RegexLexer, include, \
-    bygroups, using, default, words, combined, this
+from pygments.lexer import (
+    DelegatingLexer,
+    RegexLexer,
+    include,
+    bygroups,
+    using,
+    default,
+    words,
+    combined,
+    this,
+)
 from pygments.util import get_bool_opt, shebang_matches
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Generic, Other, Error, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Generic,
+    Other,
+    Error,
+    Whitespace,
+)
 from pygments import unistring as uni
 
-__all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer',
-           'Python2Lexer', 'Python2TracebackLexer',
-           'CythonLexer', 'DgLexer', 'NumPyLexer']
+__all__ = [
+    "PythonLexer",
+    "PythonConsoleLexer",
+    "PythonTracebackLexer",
+    "Python2Lexer",
+    "Python2TracebackLexer",
+    "CythonLexer",
+    "DgLexer",
+    "NumPyLexer",
+]
 
 
 class PythonLexer(RegexLexer):
@@ -31,54 +59,63 @@ class PythonLexer(RegexLexer):
        alias ``Python3Lexer``.
     """
 
-    name = 'Python'
-    url = 'https://www.python.org'
-    aliases = ['python', 'py', 'sage', 'python3', 'py3', 'bazel', 'starlark', 'pyi']
+    name = "Python"
+    url = "https://www.python.org"
+    aliases = ["python", "py", "sage", "python3", "py3", "bazel", "starlark", "pyi"]
     filenames = [
-        '*.py',
-        '*.pyw',
+        "*.py",
+        "*.pyw",
         # Type stubs
-        '*.pyi',
+        "*.pyi",
         # Jython
-        '*.jy',
+        "*.jy",
         # Sage
-        '*.sage',
+        "*.sage",
         # SCons
-        '*.sc',
-        'SConstruct',
-        'SConscript',
+        "*.sc",
+        "SConstruct",
+        "SConscript",
         # Skylark/Starlark (used by Bazel, Buck, and Pants)
-        '*.bzl',
-        'BUCK',
-        'BUILD',
-        'BUILD.bazel',
-        'WORKSPACE',
+        "*.bzl",
+        "BUCK",
+        "BUILD",
+        "BUILD.bazel",
+        "WORKSPACE",
         # Twisted Application infrastructure
-        '*.tac',
+        "*.tac",
     ]
-    mimetypes = ['text/x-python', 'application/x-python',
-                 'text/x-python3', 'application/x-python3']
-    version_added = '0.10'
+    mimetypes = [
+        "text/x-python",
+        "application/x-python",
+        "text/x-python3",
+        "application/x-python3",
+    ]
+    version_added = "0.10"
 
     uni_name = f"[{uni.xid_start}][{uni.xid_continue}]*"
 
     def innerstring_rules(ttype):
         return [
             # the old style '%s' % (...) string formatting (still valid in Py3)
-            (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
-             '[hlL]?[E-GXc-giorsaux%]', String.Interpol),
+            (
+                r"%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?"
+                "[hlL]?[E-GXc-giorsaux%]",
+                String.Interpol,
+            ),
             # the new style '{}'.format(...) string formatting
-            (r'\{'
-             r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?'  # field name
-             r'(\![sra])?'                       # conversion
-             r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?'
-             r'\}', String.Interpol),
-
+            (
+                r"\{"
+                r"((\w+)((\.\w+)|(\[[^\]]+\]))*)?"  # field name
+                r"(\![sra])?"  # conversion
+                r"(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?"
+                r"\}",
+                String.Interpol,
+            ),
             # backslashes, quotes and formatting signs must be parsed one at a time
             (r'[^\\\'"%{\n]+', ttype),
             (r'[\'"\\]', ttype),
             # unhandled string formatting sign
-            (r'%|(\{{1,2})', ttype)
+            (r"%|(\{{1,2})", ttype),
             # newlines are an error (use "nl" state)
         ]
 
@@ -88,8 +125,8 @@ class PythonLexer(RegexLexer):
             # Sadly, this means that we won't detect syntax error. But it's
             # more important to parse correct syntax correctly, than to
             # highlight invalid syntax.
-            (r'\}', String.Interpol),
-            (r'\{', String.Interpol, 'expr-inside-fstring'),
+            (r"\}", String.Interpol),
+            (r"\{", String.Interpol, "expr-inside-fstring"),
             # backslashes, quotes and formatting signs must be parsed one at a time
             (r'[^\\\'"{}\n]+', ttype),
             (r'[\'"\\]', ttype),
@@ -97,317 +134,635 @@ class PythonLexer(RegexLexer):
         ]
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
-            (r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
-             bygroups(Whitespace, String.Affix, String.Doc)),
-            (r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
-             bygroups(Whitespace, String.Affix, String.Doc)),
-            (r'\A#!.+$', Comment.Hashbang),
-            (r'#.*$', Comment.Single),
-            (r'\\\n', Text),
-            (r'\\', Text),
-            include('keywords'),
-            include('soft-keywords'),
-            (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'funcname'),
-            (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'classname'),
-            (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace),
-             'fromimport'),
-            (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace),
-             'import'),
-            include('expr'),
+        "root": [
+            (r"\n", Whitespace),
+            (
+                r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
+                bygroups(Whitespace, String.Affix, String.Doc),
+            ),
+            (
+                r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
+                bygroups(Whitespace, String.Affix, String.Doc),
+            ),
+            (r"\A#!.+$", Comment.Hashbang),
+            (r"#.*$", Comment.Single),
+            (r"\\\n", Text),
+            (r"\\", Text),
+            include("keywords"),
+            include("soft-keywords"),
+            (r"(def)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "funcname"),
+            (r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "classname"),
+            (
+                r"(from)((?:\s|\\\s)+)",
+                bygroups(Keyword.Namespace, Whitespace),
+                "fromimport",
+            ),
+            (
+                r"(import)((?:\s|\\\s)+)",
+                bygroups(Keyword.Namespace, Whitespace),
+                "import",
+            ),
+            include("expr"),
         ],
-        'expr': [
+        "expr": [
             # raw f-strings
-            ('(?i)(rf|fr)(""")',
-             bygroups(String.Affix, String.Double),
-             combined('rfstringescape', 'tdqf')),
-            ("(?i)(rf|fr)(''')",
-             bygroups(String.Affix, String.Single),
-             combined('rfstringescape', 'tsqf')),
-            ('(?i)(rf|fr)(")',
-             bygroups(String.Affix, String.Double),
-             combined('rfstringescape', 'dqf')),
-            ("(?i)(rf|fr)(')",
-             bygroups(String.Affix, String.Single),
-             combined('rfstringescape', 'sqf')),
+            (
+                '(?i)(rf|fr)(""")',
+                bygroups(String.Affix, String.Double),
+                combined("rfstringescape", "tdqf"),
+            ),
+            (
+                "(?i)(rf|fr)(''')",
+                bygroups(String.Affix, String.Single),
+                combined("rfstringescape", "tsqf"),
+            ),
+            (
+                '(?i)(rf|fr)(")',
+                bygroups(String.Affix, String.Double),
+                combined("rfstringescape", "dqf"),
+            ),
+            (
+                "(?i)(rf|fr)(')",
+                bygroups(String.Affix, String.Single),
+                combined("rfstringescape", "sqf"),
+            ),
             # non-raw f-strings
-            ('([fF])(""")', bygroups(String.Affix, String.Double),
-             combined('fstringescape', 'tdqf')),
-            ("([fF])(''')", bygroups(String.Affix, String.Single),
-             combined('fstringescape', 'tsqf')),
-            ('([fF])(")', bygroups(String.Affix, String.Double),
-             combined('fstringescape', 'dqf')),
-            ("([fF])(')", bygroups(String.Affix, String.Single),
-             combined('fstringescape', 'sqf')),
+            (
+                '([fF])(""")',
+                bygroups(String.Affix, String.Double),
+                combined("fstringescape", "tdqf"),
+            ),
+            (
+                "([fF])(''')",
+                bygroups(String.Affix, String.Single),
+                combined("fstringescape", "tsqf"),
+            ),
+            (
+                '([fF])(")',
+                bygroups(String.Affix, String.Double),
+                combined("fstringescape", "dqf"),
+            ),
+            (
+                "([fF])(')",
+                bygroups(String.Affix, String.Single),
+                combined("fstringescape", "sqf"),
+            ),
             # raw bytes and strings
-            ('(?i)(rb|br|r)(""")',
-             bygroups(String.Affix, String.Double), 'tdqs'),
-            ("(?i)(rb|br|r)(''')",
-             bygroups(String.Affix, String.Single), 'tsqs'),
-            ('(?i)(rb|br|r)(")',
-             bygroups(String.Affix, String.Double), 'dqs'),
-            ("(?i)(rb|br|r)(')",
-             bygroups(String.Affix, String.Single), 'sqs'),
+            ('(?i)(rb|br|r)(""")', bygroups(String.Affix, String.Double), "tdqs"),
+            ("(?i)(rb|br|r)(''')", bygroups(String.Affix, String.Single), "tsqs"),
+            ('(?i)(rb|br|r)(")', bygroups(String.Affix, String.Double), "dqs"),
+            ("(?i)(rb|br|r)(')", bygroups(String.Affix, String.Single), "sqs"),
             # non-raw strings
-            ('([uU]?)(""")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'tdqs')),
-            ("([uU]?)(''')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'tsqs')),
-            ('([uU]?)(")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'dqs')),
-            ("([uU]?)(')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'sqs')),
+            (
+                '([uU]?)(""")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "tdqs"),
+            ),
+            (
+                "([uU]?)(''')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "tsqs"),
+            ),
+            (
+                '([uU]?)(")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "dqs"),
+            ),
+            (
+                "([uU]?)(')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "sqs"),
+            ),
             # non-raw bytes
-            ('([bB])(""")', bygroups(String.Affix, String.Double),
-             combined('bytesescape', 'tdqs')),
-            ("([bB])(''')", bygroups(String.Affix, String.Single),
-             combined('bytesescape', 'tsqs')),
-            ('([bB])(")', bygroups(String.Affix, String.Double),
-             combined('bytesescape', 'dqs')),
-            ("([bB])(')", bygroups(String.Affix, String.Single),
-             combined('bytesescape', 'sqs')),
-
-            (r'[^\S\n]+', Text),
-            include('numbers'),
-            (r'!=|==|<<|>>|:=|[-~+/*%=<>&^|.]', Operator),
-            (r'[]{}:(),;[]', Punctuation),
-            (r'(in|is|and|or|not)\b', Operator.Word),
-            include('expr-keywords'),
-            include('builtins'),
-            include('magicfuncs'),
-            include('magicvars'),
-            include('name'),
+            (
+                '([bB])(""")',
+                bygroups(String.Affix, String.Double),
+                combined("bytesescape", "tdqs"),
+            ),
+            (
+                "([bB])(''')",
+                bygroups(String.Affix, String.Single),
+                combined("bytesescape", "tsqs"),
+            ),
+            (
+                '([bB])(")',
+                bygroups(String.Affix, String.Double),
+                combined("bytesescape", "dqs"),
+            ),
+            (
+                "([bB])(')",
+                bygroups(String.Affix, String.Single),
+                combined("bytesescape", "sqs"),
+            ),
+            (r"[^\S\n]+", Text),
+            include("numbers"),
+            (r"!=|==|<<|>>|:=|[-~+/*%=<>&^|.]", Operator),
+            (r"[]{}:(),;[]", Punctuation),
+            (r"(in|is|and|or|not)\b", Operator.Word),
+            include("expr-keywords"),
+            include("builtins"),
+            include("magicfuncs"),
+            include("magicvars"),
+            include("name"),
         ],
-        'expr-inside-fstring': [
-            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
+        "expr-inside-fstring": [
+            (r"[{([]", Punctuation, "expr-inside-fstring-inner"),
             # without format specifier
-            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
-             r'(\![sraf])?'     # conversion
-             r'\}', String.Interpol, '#pop'),
+            (
+                r"(=\s*)?"  # debug (https://bugs.python.org/issue36817)
+                r"(\![sraf])?"  # conversion
+                r"\}",
+                String.Interpol,
+                "#pop",
+            ),
             # with format specifier
             # we'll catch the remaining '}' in the outer scope
-            (r'(=\s*)?'         # debug (https://bugs.python.org/issue36817)
-             r'(\![sraf])?'     # conversion
-             r':', String.Interpol, '#pop'),
-            (r'\s+', Whitespace),  # allow new lines
-            include('expr'),
+            (
+                r"(=\s*)?"  # debug (https://bugs.python.org/issue36817)
+                r"(\![sraf])?"  # conversion
+                r":",
+                String.Interpol,
+                "#pop",
+            ),
+            (r"\s+", Whitespace),  # allow new lines
+            include("expr"),
         ],
-        'expr-inside-fstring-inner': [
-            (r'[{([]', Punctuation, 'expr-inside-fstring-inner'),
-            (r'[])}]', Punctuation, '#pop'),
-            (r'\s+', Whitespace),  # allow new lines
-            include('expr'),
+        "expr-inside-fstring-inner": [
+            (r"[{([]", Punctuation, "expr-inside-fstring-inner"),
+            (r"[])}]", Punctuation, "#pop"),
+            (r"\s+", Whitespace),  # allow new lines
+            include("expr"),
         ],
-        'expr-keywords': [
+        "expr-keywords": [
             # Based on https://docs.python.org/3/reference/expressions.html
-            (words((
-                'async for', 'await', 'else', 'for', 'if', 'lambda',
-                'yield', 'yield from'), suffix=r'\b'),
-             Keyword),
-            (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
+            (
+                words(
+                    (
+                        "async for",
+                        "await",
+                        "else",
+                        "for",
+                        "if",
+                        "lambda",
+                        "yield",
+                        "yield from",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (words(("True", "False", "None"), suffix=r"\b"), Keyword.Constant),
         ],
-        'keywords': [
-            (words((
-                'assert', 'async', 'await', 'break', 'continue', 'del', 'elif',
-                'else', 'except', 'finally', 'for', 'global', 'if', 'lambda',
-                'pass', 'raise', 'nonlocal', 'return', 'try', 'while', 'yield',
-                'yield from', 'as', 'with'), suffix=r'\b'),
-             Keyword),
-            (words(('True', 'False', 'None'), suffix=r'\b'), Keyword.Constant),
+        "keywords": [
+            (
+                words(
+                    (
+                        "assert",
+                        "async",
+                        "await",
+                        "break",
+                        "continue",
+                        "del",
+                        "elif",
+                        "else",
+                        "except",
+                        "finally",
+                        "for",
+                        "global",
+                        "if",
+                        "lambda",
+                        "pass",
+                        "raise",
+                        "nonlocal",
+                        "return",
+                        "try",
+                        "while",
+                        "yield",
+                        "yield from",
+                        "as",
+                        "with",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (words(("True", "False", "None"), suffix=r"\b"), Keyword.Constant),
         ],
-        'soft-keywords': [
+        "soft-keywords": [
             # `match`, `case` and `_` soft keywords
-            (r'(^[ \t]*)'              # at beginning of line + possible indentation
-             r'(match|case)\b'         # a possible keyword
-             r'(?![ \t]*(?:'           # not followed by...
-             r'[:,;=^&|@~)\]}]|(?:' +  # characters and keywords that mean this isn't
-                                       # pattern matching (but None/True/False is ok)
-             r'|'.join(k for k in keyword.kwlist if k[0].islower()) + r')\b))',
-             bygroups(Text, Keyword), 'soft-keywords-inner'),
+            (
+                r"(^[ \t]*)"  # at beginning of line + possible indentation
+                r"(match|case)\b"  # a possible keyword
+                r"(?![ \t]*(?:"  # not followed by...
+                r"[:,;=^&|@~)\]}]|(?:" +  # characters and keywords that mean this isn't
+                # pattern matching (but None/True/False is ok)
+                r"|".join(k for k in keyword.kwlist if k[0].islower()) + r")\b))",
+                bygroups(Text, Keyword),
+                "soft-keywords-inner",
+            ),
         ],
-        'soft-keywords-inner': [
+        "soft-keywords-inner": [
             # optional `_` keyword
-            (r'(\s+)([^\n_]*)(_\b)', bygroups(Whitespace, using(this), Keyword)),
-            default('#pop')
+            (r"(\s+)([^\n_]*)(_\b)", bygroups(Whitespace, using(this), Keyword)),
+            default("#pop"),
         ],
-        'builtins': [
-            (words((
-                '__import__', 'abs', 'aiter', 'all', 'any', 'bin', 'bool', 'bytearray',
-                'breakpoint', 'bytes', 'callable', 'chr', 'classmethod', 'compile',
-                'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval',
-                'filter', 'float', 'format', 'frozenset', 'getattr', 'globals',
-                'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'isinstance',
-                'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max',
-                'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow',
-                'print', 'property', 'range', 'repr', 'reversed', 'round', 'set',
-                'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super',
-                'tuple', 'type', 'vars', 'zip'), prefix=r'(?>|[-~+/*%=<>&^|.]', Operator),
-            include('keywords'),
-            (r'(def)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'funcname'),
-            (r'(class)((?:\s|\\\s)+)', bygroups(Keyword, Whitespace), 'classname'),
-            (r'(from)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace),
-             'fromimport'),
-            (r'(import)((?:\s|\\\s)+)', bygroups(Keyword.Namespace, Whitespace),
-             'import'),
-            include('builtins'),
-            include('magicfuncs'),
-            include('magicvars'),
-            include('backtick'),
-            ('([rR]|[uUbB][rR]|[rR][uUbB])(""")',
-             bygroups(String.Affix, String.Double), 'tdqs'),
-            ("([rR]|[uUbB][rR]|[rR][uUbB])(''')",
-             bygroups(String.Affix, String.Single), 'tsqs'),
-            ('([rR]|[uUbB][rR]|[rR][uUbB])(")',
-             bygroups(String.Affix, String.Double), 'dqs'),
-            ("([rR]|[uUbB][rR]|[rR][uUbB])(')",
-             bygroups(String.Affix, String.Single), 'sqs'),
-            ('([uUbB]?)(""")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'tdqs')),
-            ("([uUbB]?)(''')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'tsqs')),
-            ('([uUbB]?)(")', bygroups(String.Affix, String.Double),
-             combined('stringescape', 'dqs')),
-            ("([uUbB]?)(')", bygroups(String.Affix, String.Single),
-             combined('stringescape', 'sqs')),
-            include('name'),
-            include('numbers'),
+        "root": [
+            (r"\n", Whitespace),
+            (
+                r'^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")',
+                bygroups(Whitespace, String.Affix, String.Doc),
+            ),
+            (
+                r"^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')",
+                bygroups(Whitespace, String.Affix, String.Doc),
+            ),
+            (r"[^\S\n]+", Text),
+            (r"\A#!.+$", Comment.Hashbang),
+            (r"#.*$", Comment.Single),
+            (r"[]{}:(),;[]", Punctuation),
+            (r"\\\n", Text),
+            (r"\\", Text),
+            (r"(in|is|and|or|not)\b", Operator.Word),
+            (r"!=|==|<<|>>|[-~+/*%=<>&^|.]", Operator),
+            include("keywords"),
+            (r"(def)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "funcname"),
+            (r"(class)((?:\s|\\\s)+)", bygroups(Keyword, Whitespace), "classname"),
+            (
+                r"(from)((?:\s|\\\s)+)",
+                bygroups(Keyword.Namespace, Whitespace),
+                "fromimport",
+            ),
+            (
+                r"(import)((?:\s|\\\s)+)",
+                bygroups(Keyword.Namespace, Whitespace),
+                "import",
+            ),
+            include("builtins"),
+            include("magicfuncs"),
+            include("magicvars"),
+            include("backtick"),
+            (
+                '([rR]|[uUbB][rR]|[rR][uUbB])(""")',
+                bygroups(String.Affix, String.Double),
+                "tdqs",
+            ),
+            (
+                "([rR]|[uUbB][rR]|[rR][uUbB])(''')",
+                bygroups(String.Affix, String.Single),
+                "tsqs",
+            ),
+            (
+                '([rR]|[uUbB][rR]|[rR][uUbB])(")',
+                bygroups(String.Affix, String.Double),
+                "dqs",
+            ),
+            (
+                "([rR]|[uUbB][rR]|[rR][uUbB])(')",
+                bygroups(String.Affix, String.Single),
+                "sqs",
+            ),
+            (
+                '([uUbB]?)(""")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "tdqs"),
+            ),
+            (
+                "([uUbB]?)(''')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "tsqs"),
+            ),
+            (
+                '([uUbB]?)(")',
+                bygroups(String.Affix, String.Double),
+                combined("stringescape", "dqs"),
+            ),
+            (
+                "([uUbB]?)(')",
+                bygroups(String.Affix, String.Single),
+                combined("stringescape", "sqs"),
+            ),
+            include("name"),
+            include("numbers"),
         ],
-        'keywords': [
-            (words((
-                'assert', 'break', 'continue', 'del', 'elif', 'else', 'except',
-                'exec', 'finally', 'for', 'global', 'if', 'lambda', 'pass',
-                'print', 'raise', 'return', 'try', 'while', 'yield',
-                'yield from', 'as', 'with'), suffix=r'\b'),
-             Keyword),
+        "keywords": [
+            (
+                words(
+                    (
+                        "assert",
+                        "break",
+                        "continue",
+                        "del",
+                        "elif",
+                        "else",
+                        "except",
+                        "exec",
+                        "finally",
+                        "for",
+                        "global",
+                        "if",
+                        "lambda",
+                        "pass",
+                        "print",
+                        "raise",
+                        "return",
+                        "try",
+                        "while",
+                        "yield",
+                        "yield from",
+                        "as",
+                        "with",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
         ],
-        'builtins': [
-            (words((
-                '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin',
-                'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod',
-                'cmp', 'coerce', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod',
-                'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float',
-                'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'hex', 'id',
-                'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len',
-                'list', 'locals', 'long', 'map', 'max', 'min', 'next', 'object',
-                'oct', 'open', 'ord', 'pow', 'property', 'range', 'raw_input', 'reduce',
-                'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
-                'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
-                'unichr', 'unicode', 'vars', 'xrange', 'zip'),
-                prefix=r'(?>> )(.*\n)', bygroups(Generic.Prompt, Other.Code), 'continuations'),
+        "root": [
+            (r"(>>> )(.*\n)", bygroups(Generic.Prompt, Other.Code), "continuations"),
             # This happens, e.g., when tracebacks are embedded in documentation;
             # trailing whitespaces are often stripped in such contexts.
-            (r'(>>>)(\n)', bygroups(Generic.Prompt, Whitespace)),
-            (r'(\^C)?Traceback \(most recent call last\):\n', Other.Traceback, 'traceback'),
+            (r"(>>>)(\n)", bygroups(Generic.Prompt, Whitespace)),
+            (
+                r"(\^C)?Traceback \(most recent call last\):\n",
+                Other.Traceback,
+                "traceback",
+            ),
             # SyntaxError starts with this
-            (r'  File "[^"]+", line \d+', Other.Traceback, 'traceback'),
-            (r'.*\n', Generic.Output),
+            (r'  File "[^"]+", line \d+', Other.Traceback, "traceback"),
+            (r".*\n", Generic.Output),
         ],
-        'continuations': [
-            (r'(\.\.\. )(.*\n)', bygroups(Generic.Prompt, Other.Code)),
+        "continuations": [
+            (r"(\.\.\. )(.*\n)", bygroups(Generic.Prompt, Other.Code)),
             # See above.
-            (r'(\.\.\.)(\n)', bygroups(Generic.Prompt, Whitespace)),
-            default('#pop'),
+            (r"(\.\.\.)(\n)", bygroups(Generic.Prompt, Whitespace)),
+            default("#pop"),
         ],
-        'traceback': [
+        "traceback": [
             # As soon as we see a traceback, consume everything until the next
             # >>> prompt.
-            (r'(?=>>>( |$))', Text, '#pop'),
-            (r'(KeyboardInterrupt)(\n)', bygroups(Name.Class, Whitespace)),
-            (r'.*\n', Other.Traceback),
+            (r"(?=>>>( |$))", Text, "#pop"),
+            (r"(KeyboardInterrupt)(\n)", bygroups(Name.Class, Whitespace)),
+            (r".*\n", Other.Traceback),
         ],
     }
 
@@ -697,20 +1337,21 @@ class PythonConsoleLexer(DelegatingLexer):
            Now defaults to ``True``.
     """
 
-    name = 'Python console session'
-    aliases = ['pycon', 'python-console']
-    mimetypes = ['text/x-python-doctest']
-    url = 'https://python.org'
-    version_added = ''
+    name = "Python console session"
+    aliases = ["pycon", "python-console"]
+    mimetypes = ["text/x-python-doctest"]
+    url = "https://python.org"
+    version_added = ""
 
     def __init__(self, **options):
-        python3 = get_bool_opt(options, 'python3', True)
+        python3 = get_bool_opt(options, "python3", True)
         if python3:
             pylexer = PythonLexer
             tblexer = PythonTracebackLexer
         else:
             pylexer = Python2Lexer
             tblexer = Python2TracebackLexer
+
         # We have two auxiliary lexers. Use DelegatingLexer twice with
         # different tokens.  TODO: DelegatingLexer should support this
         # directly, by accepting a tuplet of auxiliary lexers and a tuple of
@@ -718,7 +1359,10 @@ class PythonConsoleLexer(DelegatingLexer):
         # class.
         class _ReplaceInnerCode(DelegatingLexer):
             def __init__(self, **options):
-                super().__init__(pylexer, _PythonConsoleLexerBase, Other.Code, **options)
+                super().__init__(
+                    pylexer, _PythonConsoleLexerBase, Other.Code, **options
+                )
+
         super().__init__(tblexer, _ReplaceInnerCode, Other.Traceback, **options)
 
 
@@ -731,47 +1375,70 @@ class PythonTracebackLexer(RegexLexer):
        as the alias ``Python3TracebackLexer``.
     """
 
-    name = 'Python Traceback'
-    aliases = ['pytb', 'py3tb']
-    filenames = ['*.pytb', '*.py3tb']
-    mimetypes = ['text/x-python-traceback', 'text/x-python3-traceback']
-    url = 'https://python.org'
-    version_added = '1.0'
+    name = "Python Traceback"
+    aliases = ["pytb", "py3tb"]
+    filenames = ["*.pytb", "*.py3tb"]
+    mimetypes = ["text/x-python-traceback", "text/x-python3-traceback"]
+    url = "https://python.org"
+    version_added = "1.0"
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
-            (r'^(\^C)?Traceback \(most recent call last\):\n', Generic.Traceback, 'intb'),
-            (r'^During handling of the above exception, another '
-             r'exception occurred:\n\n', Generic.Traceback),
-            (r'^The above exception was the direct cause of the '
-             r'following exception:\n\n', Generic.Traceback),
-            (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
-            (r'^.*\n', Other),
+        "root": [
+            (r"\n", Whitespace),
+            (
+                r"^(\^C)?Traceback \(most recent call last\):\n",
+                Generic.Traceback,
+                "intb",
+            ),
+            (
+                r"^During handling of the above exception, another "
+                r"exception occurred:\n\n",
+                Generic.Traceback,
+            ),
+            (
+                r"^The above exception was the direct cause of the "
+                r"following exception:\n\n",
+                Generic.Traceback,
+            ),
+            (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, "intb"),
+            (r"^.*\n", Other),
         ],
-        'intb': [
-            (r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
-             bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)),
-            (r'^(  File )("[^"]+")(, line )(\d+)(\n)',
-             bygroups(Text, Name.Builtin, Text, Number, Whitespace)),
-            (r'^(    )(.+)(\n)',
-             bygroups(Whitespace, using(PythonLexer), Whitespace), 'markers'),
-            (r'^([ \t]*)(\.\.\.)(\n)',
-             bygroups(Whitespace, Comment, Whitespace)),  # for doctests...
-            (r'^([^:]+)(: )(.+)(\n)',
-             bygroups(Generic.Error, Text, Name, Whitespace), '#pop'),
-            (r'^([a-zA-Z_][\w.]*)(:?\n)',
-             bygroups(Generic.Error, Whitespace), '#pop'),
-            default('#pop'),
+        "intb": [
+            (
+                r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
+                bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace),
+            ),
+            (
+                r'^(  File )("[^"]+")(, line )(\d+)(\n)',
+                bygroups(Text, Name.Builtin, Text, Number, Whitespace),
+            ),
+            (
+                r"^(    )(.+)(\n)",
+                bygroups(Whitespace, using(PythonLexer), Whitespace),
+                "markers",
+            ),
+            (
+                r"^([ \t]*)(\.\.\.)(\n)",
+                bygroups(Whitespace, Comment, Whitespace),
+            ),  # for doctests...
+            (
+                r"^([^:]+)(: )(.+)(\n)",
+                bygroups(Generic.Error, Text, Name, Whitespace),
+                "#pop",
+            ),
+            (r"^([a-zA-Z_][\w.]*)(:?\n)", bygroups(Generic.Error, Whitespace), "#pop"),
+            default("#pop"),
         ],
-        'markers': [
+        "markers": [
             # Either `PEP 657 `
             # error locations in Python 3.11+, or single-caret markers
             # for syntax errors before that.
-            (r'^( {4,})([~^]+)(\n)',
-             bygroups(Whitespace, Punctuation.Marker, Whitespace),
-             '#pop'),
-            default('#pop'),
+            (
+                r"^( {4,})([~^]+)(\n)",
+                bygroups(Whitespace, Punctuation.Marker, Whitespace),
+                "#pop",
+            ),
+            default("#pop"),
         ],
     }
 
@@ -788,41 +1455,51 @@ class Python2TracebackLexer(RegexLexer):
        ``PythonTracebackLexer`` now refers to the Python 3 variant.
     """
 
-    name = 'Python 2.x Traceback'
-    aliases = ['py2tb']
-    filenames = ['*.py2tb']
-    mimetypes = ['text/x-python2-traceback']
-    url = 'https://python.org'
-    version_added = '0.7'
+    name = "Python 2.x Traceback"
+    aliases = ["py2tb"]
+    filenames = ["*.py2tb"]
+    mimetypes = ["text/x-python2-traceback"]
+    url = "https://python.org"
+    version_added = "0.7"
 
     tokens = {
-        'root': [
+        "root": [
             # Cover both (most recent call last) and (innermost last)
             # The optional ^C allows us to catch keyboard interrupt signals.
-            (r'^(\^C)?(Traceback.*\n)',
-             bygroups(Text, Generic.Traceback), 'intb'),
+            (r"^(\^C)?(Traceback.*\n)", bygroups(Text, Generic.Traceback), "intb"),
             # SyntaxError starts with this.
-            (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, 'intb'),
-            (r'^.*\n', Other),
+            (r'^(?=  File "[^"]+", line \d+)', Generic.Traceback, "intb"),
+            (r"^.*\n", Other),
         ],
-        'intb': [
-            (r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
-             bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace)),
-            (r'^(  File )("[^"]+")(, line )(\d+)(\n)',
-             bygroups(Text, Name.Builtin, Text, Number, Whitespace)),
-            (r'^(    )(.+)(\n)',
-             bygroups(Text, using(Python2Lexer), Whitespace), 'marker'),
-            (r'^([ \t]*)(\.\.\.)(\n)',
-             bygroups(Text, Comment, Whitespace)),  # for doctests...
-            (r'^([^:]+)(: )(.+)(\n)',
-             bygroups(Generic.Error, Text, Name, Whitespace), '#pop'),
-            (r'^([a-zA-Z_]\w*)(:?\n)',
-             bygroups(Generic.Error, Whitespace), '#pop')
+        "intb": [
+            (
+                r'^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)',
+                bygroups(Text, Name.Builtin, Text, Number, Text, Name, Whitespace),
+            ),
+            (
+                r'^(  File )("[^"]+")(, line )(\d+)(\n)',
+                bygroups(Text, Name.Builtin, Text, Number, Whitespace),
+            ),
+            (
+                r"^(    )(.+)(\n)",
+                bygroups(Text, using(Python2Lexer), Whitespace),
+                "marker",
+            ),
+            (
+                r"^([ \t]*)(\.\.\.)(\n)",
+                bygroups(Text, Comment, Whitespace),
+            ),  # for doctests...
+            (
+                r"^([^:]+)(: )(.+)(\n)",
+                bygroups(Generic.Error, Text, Name, Whitespace),
+                "#pop",
+            ),
+            (r"^([a-zA-Z_]\w*)(:?\n)", bygroups(Generic.Error, Whitespace), "#pop"),
         ],
-        'marker': [
+        "marker": [
             # For syntax errors.
-            (r'( {4,})(\^)', bygroups(Text, Punctuation.Marker), '#pop'),
-            default('#pop'),
+            (r"( {4,})(\^)", bygroups(Text, Punctuation.Marker), "#pop"),
+            default("#pop"),
         ],
     }
 
@@ -832,177 +1509,337 @@ class CythonLexer(RegexLexer):
     For Pyrex and Cython source code.
     """
 
-    name = 'Cython'
-    url = 'https://cython.org'
-    aliases = ['cython', 'pyx', 'pyrex']
-    filenames = ['*.pyx', '*.pxd', '*.pxi']
-    mimetypes = ['text/x-cython', 'application/x-cython']
-    version_added = '1.1'
+    name = "Cython"
+    url = "https://cython.org"
+    aliases = ["cython", "pyx", "pyrex"]
+    filenames = ["*.pyx", "*.pxd", "*.pxi"]
+    mimetypes = ["text/x-cython", "application/x-cython"]
+    version_added = "1.1"
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
+        "root": [
+            (r"\n", Whitespace),
             (r'^(\s*)("""(?:.|\n)*?""")', bygroups(Whitespace, String.Doc)),
             (r"^(\s*)('''(?:.|\n)*?''')", bygroups(Whitespace, String.Doc)),
-            (r'[^\S\n]+', Text),
-            (r'#.*$', Comment),
-            (r'[]{}:(),;[]', Punctuation),
-            (r'\\\n', Whitespace),
-            (r'\\', Text),
-            (r'(in|is|and|or|not)\b', Operator.Word),
-            (r'(<)([a-zA-Z0-9.?]+)(>)',
-             bygroups(Punctuation, Keyword.Type, Punctuation)),
-            (r'!=|==|<<|>>|[-~+/*%=<>&^|.?]', Operator),
-            (r'(from)(\d+)(<=)(\s+)(<)(\d+)(:)',
-             bygroups(Keyword, Number.Integer, Operator, Whitespace, Operator,
-                      Name, Punctuation)),
-            include('keywords'),
-            (r'(def|property)(\s+)', bygroups(Keyword, Whitespace), 'funcname'),
-            (r'(cp?def)(\s+)', bygroups(Keyword, Whitespace), 'cdef'),
+            (r"[^\S\n]+", Text),
+            (r"#.*$", Comment),
+            (r"[]{}:(),;[]", Punctuation),
+            (r"\\\n", Whitespace),
+            (r"\\", Text),
+            (r"(in|is|and|or|not)\b", Operator.Word),
+            (
+                r"(<)([a-zA-Z0-9.?]+)(>)",
+                bygroups(Punctuation, Keyword.Type, Punctuation),
+            ),
+            (r"!=|==|<<|>>|[-~+/*%=<>&^|.?]", Operator),
+            (
+                r"(from)(\d+)(<=)(\s+)(<)(\d+)(:)",
+                bygroups(
+                    Keyword,
+                    Number.Integer,
+                    Operator,
+                    Whitespace,
+                    Operator,
+                    Name,
+                    Punctuation,
+                ),
+            ),
+            include("keywords"),
+            (r"(def|property)(\s+)", bygroups(Keyword, Whitespace), "funcname"),
+            (r"(cp?def)(\s+)", bygroups(Keyword, Whitespace), "cdef"),
             # (should actually start a block with only cdefs)
-            (r'(cdef)(:)', bygroups(Keyword, Punctuation)),
-            (r'(class|struct)(\s+)', bygroups(Keyword, Whitespace), 'classname'),
-            (r'(from)(\s+)', bygroups(Keyword, Whitespace), 'fromimport'),
-            (r'(c?import)(\s+)', bygroups(Keyword, Whitespace), 'import'),
-            include('builtins'),
-            include('backtick'),
-            ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, 'tdqs'),
-            ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, 'tsqs'),
-            ('(?:[rR]|[uU][rR]|[rR][uU])"', String, 'dqs'),
-            ("(?:[rR]|[uU][rR]|[rR][uU])'", String, 'sqs'),
-            ('[uU]?"""', String, combined('stringescape', 'tdqs')),
-            ("[uU]?'''", String, combined('stringescape', 'tsqs')),
-            ('[uU]?"', String, combined('stringescape', 'dqs')),
-            ("[uU]?'", String, combined('stringescape', 'sqs')),
-            include('name'),
-            include('numbers'),
+            (r"(cdef)(:)", bygroups(Keyword, Punctuation)),
+            (r"(class|struct)(\s+)", bygroups(Keyword, Whitespace), "classname"),
+            (r"(from)(\s+)", bygroups(Keyword, Whitespace), "fromimport"),
+            (r"(c?import)(\s+)", bygroups(Keyword, Whitespace), "import"),
+            include("builtins"),
+            include("backtick"),
+            ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, "tdqs"),
+            ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, "tsqs"),
+            ('(?:[rR]|[uU][rR]|[rR][uU])"', String, "dqs"),
+            ("(?:[rR]|[uU][rR]|[rR][uU])'", String, "sqs"),
+            ('[uU]?"""', String, combined("stringescape", "tdqs")),
+            ("[uU]?'''", String, combined("stringescape", "tsqs")),
+            ('[uU]?"', String, combined("stringescape", "dqs")),
+            ("[uU]?'", String, combined("stringescape", "sqs")),
+            include("name"),
+            include("numbers"),
         ],
-        'keywords': [
-            (words((
-                'assert', 'async', 'await', 'break', 'by', 'continue', 'ctypedef', 'del', 'elif',
-                'else', 'except', 'except?', 'exec', 'finally', 'for', 'fused', 'gil',
-                'global', 'if', 'include', 'lambda', 'nogil', 'pass', 'print',
-                'raise', 'return', 'try', 'while', 'yield', 'as', 'with'), suffix=r'\b'),
-             Keyword),
-            (r'(DEF|IF|ELIF|ELSE)\b', Comment.Preproc),
+        "keywords": [
+            (
+                words(
+                    (
+                        "assert",
+                        "async",
+                        "await",
+                        "break",
+                        "by",
+                        "continue",
+                        "ctypedef",
+                        "del",
+                        "elif",
+                        "else",
+                        "except",
+                        "except?",
+                        "exec",
+                        "finally",
+                        "for",
+                        "fused",
+                        "gil",
+                        "global",
+                        "if",
+                        "include",
+                        "lambda",
+                        "nogil",
+                        "pass",
+                        "print",
+                        "raise",
+                        "return",
+                        "try",
+                        "while",
+                        "yield",
+                        "as",
+                        "with",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (r"(DEF|IF|ELIF|ELSE)\b", Comment.Preproc),
         ],
-        'builtins': [
-            (words((
-                '__import__', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bint',
-                'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr',
-                'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'delattr',
-                'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit',
-                'file', 'filter', 'float', 'frozenset', 'getattr', 'globals',
-                'hasattr', 'hash', 'hex', 'id', 'input', 'int', 'intern', 'isinstance',
-                'issubclass', 'iter', 'len', 'list', 'locals', 'long', 'map', 'max',
-                'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'Py_ssize_t',
-                'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed',
-                'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod',
-                'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'unsigned',
-                'vars', 'xrange', 'zip'), prefix=r'(??/\\:']?:)(\s*)(\{)",
-             bygroups(Name.Function, Whitespace, Operator, Whitespace, Punctuation),
-             "functions"),
+            (
+                r"([.]?[a-zA-Z][\w.]*)(\s*)([-.~=!@#$%^&*_+|,<>?/\\:']?:)(\s*)(\{)",
+                bygroups(Name.Function, Whitespace, Operator, Whitespace, Punctuation),
+                "functions",
+            ),
             # Variable Names
-            (r"([.]?[a-zA-Z][\w.]*)(\s*)([-.~=!@#$%^&*_+|,<>?/\\:']?:)",
-             bygroups(Name.Variable, Whitespace, Operator)),
+            (
+                r"([.]?[a-zA-Z][\w.]*)(\s*)([-.~=!@#$%^&*_+|,<>?/\\:']?:)",
+                bygroups(Name.Variable, Whitespace, Operator),
+            ),
             # Functions
             (r"\{", Punctuation, "functions"),
             # Parentheses
@@ -109,24 +165,34 @@ class KLexer(RegexLexer):
             # Nulls/Infinities
             (r"0[nNwW][cefghijmndzuvtp]?", Number),
             # Timestamps
-            ((r"(?:[0-9]{4}[.][0-9]{2}[.][0-9]{2}|[0-9]+)"
-              "D(?:[0-9](?:[0-9](?::[0-9]{2}"
-              "(?::[0-9]{2}(?:[.][0-9]*)?)?)?)?)?"), Literal.Date),
+            (
+                (
+                    r"(?:[0-9]{4}[.][0-9]{2}[.][0-9]{2}|[0-9]+)"
+                    "D(?:[0-9](?:[0-9](?::[0-9]{2}"
+                    "(?::[0-9]{2}(?:[.][0-9]*)?)?)?)?)?"
+                ),
+                Literal.Date,
+            ),
             # Datetimes
-            ((r"[0-9]{4}[.][0-9]{2}"
-              "(?:m|[.][0-9]{2}(?:T(?:[0-9]{2}:[0-9]{2}"
-              "(?::[0-9]{2}(?:[.][0-9]*)?)?)?)?)"), Literal.Date),
+            (
+                (
+                    r"[0-9]{4}[.][0-9]{2}"
+                    "(?:m|[.][0-9]{2}(?:T(?:[0-9]{2}:[0-9]{2}"
+                    "(?::[0-9]{2}(?:[.][0-9]*)?)?)?)?)"
+                ),
+                Literal.Date,
+            ),
             # Times
-            (r"[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:[.][0-9]{1,3})?)?",
-             Literal.Date),
+            (r"[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:[.][0-9]{1,3})?)?", Literal.Date),
             # GUIDs
-            (r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
-             Number.Hex),
+            (
+                r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+                Number.Hex,
+            ),
             # Byte Vectors
             (r"0x[0-9a-fA-F]+", Number.Hex),
             # Floats
-            (r"([0-9]*[.]?[0-9]+|[0-9]+[.]?[0-9]*)[eE][+-]?[0-9]+[ef]?",
-             Number.Float),
+            (r"([0-9]*[.]?[0-9]+|[0-9]+[.]?[0-9]*)[eE][+-]?[0-9]+[ef]?", Number.Float),
             (r"([0-9]*[.][0-9]+|[0-9]+[.][0-9]*)[ef]?", Number.Float),
             (r"[0-9]+[ef]", Number.Float),
             # Characters
@@ -157,30 +223,153 @@ class QLexer(KLexer):
     name = "Q"
     aliases = ["q"]
     filenames = ["*.q"]
-    version_added = '2.12'
+    version_added = "2.12"
 
     tokens = {
         "root": [
-            (words(("aj", "aj0", "ajf", "ajf0", "all", "and", "any", "asc",
-                    "asof", "attr", "avgs", "ceiling", "cols", "count", "cross",
-                    "csv", "cut", "deltas", "desc", "differ", "distinct", "dsave",
-                    "each", "ej", "ema", "eval", "except", "fby", "fills", "first",
-                    "fkeys", "flip", "floor", "get", "group", "gtime", "hclose",
-                    "hcount", "hdel", "hsym", "iasc", "idesc", "ij", "ijf",
-                    "inter", "inv", "key", "keys", "lj", "ljf", "load", "lower",
-                    "lsq", "ltime", "ltrim", "mavg", "maxs", "mcount", "md5",
-                    "mdev", "med", "meta", "mins", "mmax", "mmin", "mmu", "mod",
-                    "msum", "neg", "next", "not", "null", "or", "over", "parse",
-                    "peach", "pj", "prds", "prior", "prev", "rand", "rank", "ratios",
-                    "raze", "read0", "read1", "reciprocal", "reval", "reverse",
-                    "rload", "rotate", "rsave", "rtrim", "save", "scan", "scov",
-                    "sdev", "set", "show", "signum", "ssr", "string", "sublist",
-                    "sums", "sv", "svar", "system", "tables", "til", "trim", "txf",
-                    "type", "uj", "ujf", "ungroup", "union", "upper", "upsert",
-                    "value", "view", "views", "vs", "where", "wj", "wj1", "ww",
-                    "xasc", "xbar", "xcol", "xcols", "xdesc", "xgroup", "xkey",
-                    "xlog", "xprev", "xrank"),
-                    suffix=r"\b"), Name.Builtin,
+            (
+                words(
+                    (
+                        "aj",
+                        "aj0",
+                        "ajf",
+                        "ajf0",
+                        "all",
+                        "and",
+                        "any",
+                        "asc",
+                        "asof",
+                        "attr",
+                        "avgs",
+                        "ceiling",
+                        "cols",
+                        "count",
+                        "cross",
+                        "csv",
+                        "cut",
+                        "deltas",
+                        "desc",
+                        "differ",
+                        "distinct",
+                        "dsave",
+                        "each",
+                        "ej",
+                        "ema",
+                        "eval",
+                        "except",
+                        "fby",
+                        "fills",
+                        "first",
+                        "fkeys",
+                        "flip",
+                        "floor",
+                        "get",
+                        "group",
+                        "gtime",
+                        "hclose",
+                        "hcount",
+                        "hdel",
+                        "hsym",
+                        "iasc",
+                        "idesc",
+                        "ij",
+                        "ijf",
+                        "inter",
+                        "inv",
+                        "key",
+                        "keys",
+                        "lj",
+                        "ljf",
+                        "load",
+                        "lower",
+                        "lsq",
+                        "ltime",
+                        "ltrim",
+                        "mavg",
+                        "maxs",
+                        "mcount",
+                        "md5",
+                        "mdev",
+                        "med",
+                        "meta",
+                        "mins",
+                        "mmax",
+                        "mmin",
+                        "mmu",
+                        "mod",
+                        "msum",
+                        "neg",
+                        "next",
+                        "not",
+                        "null",
+                        "or",
+                        "over",
+                        "parse",
+                        "peach",
+                        "pj",
+                        "prds",
+                        "prior",
+                        "prev",
+                        "rand",
+                        "rank",
+                        "ratios",
+                        "raze",
+                        "read0",
+                        "read1",
+                        "reciprocal",
+                        "reval",
+                        "reverse",
+                        "rload",
+                        "rotate",
+                        "rsave",
+                        "rtrim",
+                        "save",
+                        "scan",
+                        "scov",
+                        "sdev",
+                        "set",
+                        "show",
+                        "signum",
+                        "ssr",
+                        "string",
+                        "sublist",
+                        "sums",
+                        "sv",
+                        "svar",
+                        "system",
+                        "tables",
+                        "til",
+                        "trim",
+                        "txf",
+                        "type",
+                        "uj",
+                        "ujf",
+                        "ungroup",
+                        "union",
+                        "upper",
+                        "upsert",
+                        "value",
+                        "view",
+                        "views",
+                        "vs",
+                        "where",
+                        "wj",
+                        "wj1",
+                        "ww",
+                        "xasc",
+                        "xbar",
+                        "xcol",
+                        "xcols",
+                        "xdesc",
+                        "xgroup",
+                        "xkey",
+                        "xlog",
+                        "xprev",
+                        "xrank",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
             ),
             inherit,
         ],
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qlik.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qlik.py
index a29f89f..3994bde 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qlik.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qlik.py
@@ -1,20 +1,32 @@
 """
-    pygments.lexers.qlik
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.qlik
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the qlik scripting language
+Lexer for the qlik scripting language
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, include, bygroups, words
-from pygments.token import Comment, Keyword, Name, Number, Operator, \
-    Punctuation, String, Text
-from pygments.lexers._qlik_builtins import OPERATORS_LIST, STATEMENT_LIST, \
-    SCRIPT_FUNCTIONS, CONSTANT_LIST
+from pygments.token import (
+    Comment,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Text,
+)
+from pygments.lexers._qlik_builtins import (
+    OPERATORS_LIST,
+    STATEMENT_LIST,
+    SCRIPT_FUNCTIONS,
+    CONSTANT_LIST,
+)
 
 __all__ = ["QlikLexer"]
 
@@ -28,7 +40,7 @@ class QlikLexer(RegexLexer):
     aliases = ["qlik", "qlikview", "qliksense", "qlikscript"]
     filenames = ["*.qvs", "*.qvw"]
     url = "https://qlik.com"
-    version_added = '2.12'
+    version_added = "2.12"
 
     flags = re.IGNORECASE
 
@@ -81,11 +93,13 @@ class QlikLexer(RegexLexer):
             (r"/\*", Comment.Multiline, "comment"),
             (r"//.*\n", Comment.Single),
             # variable assignment
-            (r"(let|set)(\s+)", bygroups(Keyword.Declaration, Text.Whitespace),
-             "assignment"),
+            (
+                r"(let|set)(\s+)",
+                bygroups(Keyword.Declaration, Text.Whitespace),
+                "assignment",
+            ),
             # Word operators
-            (words(OPERATORS_LIST["words"], prefix=r"\b", suffix=r"\b"),
-             Operator.Word),
+            (words(OPERATORS_LIST["words"], prefix=r"\b", suffix=r"\b"), Operator.Word),
             # Statements
             (words(STATEMENT_LIST, suffix=r"\b"), Keyword),
             # Table names
@@ -93,8 +107,7 @@ class QlikLexer(RegexLexer):
             # Constants
             (words(CONSTANT_LIST, suffix=r"\b"), Keyword.Constant),
             # Functions
-            (words(SCRIPT_FUNCTIONS, suffix=r"(?=\s*\()"), Name.Builtin,
-             "function"),
+            (words(SCRIPT_FUNCTIONS, suffix=r"(?=\s*\()"), Name.Builtin, "function"),
             # interpolation - e.g. $(variableName)
             include("interp"),
             # Quotes denote a field/file name
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qvt.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qvt.py
index 302d1b6..8aafdb2 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qvt.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/qvt.py
@@ -1,19 +1,26 @@
 """
-    pygments.lexers.qvt
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.qvt
+~~~~~~~~~~~~~~~~~~~
 
-    Lexer for QVT Operational language.
+Lexer for QVT Operational language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
-from pygments.lexer import RegexLexer, bygroups, include, combined, default, \
-    words
-from pygments.token import Text, Comment, Operator, Keyword, Punctuation, \
-    Name, String, Number
+from pygments.lexer import RegexLexer, bygroups, include, combined, default, words
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Punctuation,
+    Name,
+    String,
+    Number,
+)
 
-__all__ = ['QVToLexer']
+__all__ = ["QVToLexer"]
 
 
 class QVToLexer(RegexLexer):
@@ -36,118 +43,205 @@ class QVToLexer(RegexLexer):
     - Name.Builtin.Pseudo is assigned to the pre-defined variables 'this',
       'self' and 'result'.
     """
+
     # With obvious borrowings & inspiration from the Java, Python and C lexers
 
-    name = 'QVTO'
-    aliases = ['qvto', 'qvt']
-    filenames = ['*.qvto']
-    url = 'https://www.omg.org/spec/QVT/1.1'
-    version_added = ''
+    name = "QVTO"
+    aliases = ["qvto", "qvt"]
+    filenames = ["*.qvto"]
+    url = "https://www.omg.org/spec/QVT/1.1"
+    version_added = ""
 
     tokens = {
-        'root': [
-            (r'\n', Text),
-            (r'[^\S\n]+', Text),
-            (r'(--|//)(\s*)(directive:)?(.*)$',
-             bygroups(Comment, Comment, Comment.Preproc, Comment)),
+        "root": [
+            (r"\n", Text),
+            (r"[^\S\n]+", Text),
+            (
+                r"(--|//)(\s*)(directive:)?(.*)$",
+                bygroups(Comment, Comment, Comment.Preproc, Comment),
+            ),
             # Uncomment the following if you want to distinguish between
             # '/*' and '/**', à la javadoc
             # (r'/[*]{2}(.|\n)*?[*]/', Comment.Multiline),
-            (r'/[*](.|\n)*?[*]/', Comment.Multiline),
-            (r'\\\n', Text),
-            (r'(and|not|or|xor|##?)\b', Operator.Word),
-            (r'(:{1,2}=|[-+]=)\b', Operator.Word),
-            (r'(@|<<|>>)\b', Keyword),  # stereotypes
-            (r'!=|<>|==|=|!->|->|>=|<=|[.]{3}|[+/*%=<>&|.~]', Operator),
-            (r'[]{}:(),;[]', Punctuation),
-            (r'(true|false|unlimited|null)\b', Keyword.Constant),
-            (r'(this|self|result)\b', Name.Builtin.Pseudo),
-            (r'(var)\b', Keyword.Declaration),
-            (r'(from|import)\b', Keyword.Namespace, 'fromimport'),
-            (r'(metamodel|class|exception|primitive|enum|transformation|'
-             r'library)(\s+)(\w+)',
-             bygroups(Keyword.Word, Text, Name.Class)),
-            (r'(exception)(\s+)(\w+)',
-             bygroups(Keyword.Word, Text, Name.Exception)),
-            (r'(main)\b', Name.Function),
-            (r'(mapping|helper|query)(\s+)',
-             bygroups(Keyword.Declaration, Text), 'operation'),
-            (r'(assert)(\s+)\b', bygroups(Keyword, Text), 'assert'),
-            (r'(Bag|Collection|Dict|OrderedSet|Sequence|Set|Tuple|List)\b',
-             Keyword.Type),
-            include('keywords'),
-            ('"', String, combined('stringescape', 'dqs')),
-            ("'", String, combined('stringescape', 'sqs')),
-            include('name'),
-            include('numbers'),
+            (r"/[*](.|\n)*?[*]/", Comment.Multiline),
+            (r"\\\n", Text),
+            (r"(and|not|or|xor|##?)\b", Operator.Word),
+            (r"(:{1,2}=|[-+]=)\b", Operator.Word),
+            (r"(@|<<|>>)\b", Keyword),  # stereotypes
+            (r"!=|<>|==|=|!->|->|>=|<=|[.]{3}|[+/*%=<>&|.~]", Operator),
+            (r"[]{}:(),;[]", Punctuation),
+            (r"(true|false|unlimited|null)\b", Keyword.Constant),
+            (r"(this|self|result)\b", Name.Builtin.Pseudo),
+            (r"(var)\b", Keyword.Declaration),
+            (r"(from|import)\b", Keyword.Namespace, "fromimport"),
+            (
+                r"(metamodel|class|exception|primitive|enum|transformation|"
+                r"library)(\s+)(\w+)",
+                bygroups(Keyword.Word, Text, Name.Class),
+            ),
+            (r"(exception)(\s+)(\w+)", bygroups(Keyword.Word, Text, Name.Exception)),
+            (r"(main)\b", Name.Function),
+            (
+                r"(mapping|helper|query)(\s+)",
+                bygroups(Keyword.Declaration, Text),
+                "operation",
+            ),
+            (r"(assert)(\s+)\b", bygroups(Keyword, Text), "assert"),
+            (
+                r"(Bag|Collection|Dict|OrderedSet|Sequence|Set|Tuple|List)\b",
+                Keyword.Type,
+            ),
+            include("keywords"),
+            ('"', String, combined("stringescape", "dqs")),
+            ("'", String, combined("stringescape", "sqs")),
+            include("name"),
+            include("numbers"),
             # (r'([a-zA-Z_]\w*)(::)([a-zA-Z_]\w*)',
             # bygroups(Text, Text, Text)),
         ],
-
-        'fromimport': [
-            (r'(?:[ \t]|\\\n)+', Text),
-            (r'[a-zA-Z_][\w.]*', Name.Namespace),
-            default('#pop'),
+        "fromimport": [
+            (r"(?:[ \t]|\\\n)+", Text),
+            (r"[a-zA-Z_][\w.]*", Name.Namespace),
+            default("#pop"),
         ],
-
-        'operation': [
-            (r'::', Text),
-            (r'(.*::)([a-zA-Z_]\w*)([ \t]*)(\()',
-             bygroups(Text, Name.Function, Text, Punctuation), '#pop')
+        "operation": [
+            (r"::", Text),
+            (
+                r"(.*::)([a-zA-Z_]\w*)([ \t]*)(\()",
+                bygroups(Text, Name.Function, Text, Punctuation),
+                "#pop",
+            ),
         ],
-
-        'assert': [
-            (r'(warning|error|fatal)\b', Keyword, '#pop'),
-            default('#pop'),  # all else: go back
+        "assert": [
+            (r"(warning|error|fatal)\b", Keyword, "#pop"),
+            default("#pop"),  # all else: go back
         ],
-
-        'keywords': [
-            (words((
-                'abstract', 'access', 'any', 'assert', 'blackbox', 'break',
-                'case', 'collect', 'collectNested', 'collectOne', 'collectselect',
-                'collectselectOne', 'composes', 'compute', 'configuration',
-                'constructor', 'continue', 'datatype', 'default', 'derived',
-                'disjuncts', 'do', 'elif', 'else', 'end', 'endif', 'except',
-                'exists', 'extends', 'forAll', 'forEach', 'forOne', 'from', 'if',
-                'implies', 'in', 'inherits', 'init', 'inout', 'intermediate',
-                'invresolve', 'invresolveIn', 'invresolveone', 'invresolveoneIn',
-                'isUnique', 'iterate', 'late', 'let', 'literal', 'log', 'map',
-                'merges', 'modeltype', 'new', 'object', 'one', 'ordered', 'out',
-                'package', 'population', 'property', 'raise', 'readonly',
-                'references', 'refines', 'reject', 'resolve', 'resolveIn',
-                'resolveone', 'resolveoneIn', 'return', 'select', 'selectOne',
-                'sortedBy', 'static', 'switch', 'tag', 'then', 'try', 'typedef',
-                'unlimited', 'uses', 'when', 'where', 'while', 'with', 'xcollect',
-                'xmap', 'xselect'), suffix=r'\b'), Keyword),
+        "keywords": [
+            (
+                words(
+                    (
+                        "abstract",
+                        "access",
+                        "any",
+                        "assert",
+                        "blackbox",
+                        "break",
+                        "case",
+                        "collect",
+                        "collectNested",
+                        "collectOne",
+                        "collectselect",
+                        "collectselectOne",
+                        "composes",
+                        "compute",
+                        "configuration",
+                        "constructor",
+                        "continue",
+                        "datatype",
+                        "default",
+                        "derived",
+                        "disjuncts",
+                        "do",
+                        "elif",
+                        "else",
+                        "end",
+                        "endif",
+                        "except",
+                        "exists",
+                        "extends",
+                        "forAll",
+                        "forEach",
+                        "forOne",
+                        "from",
+                        "if",
+                        "implies",
+                        "in",
+                        "inherits",
+                        "init",
+                        "inout",
+                        "intermediate",
+                        "invresolve",
+                        "invresolveIn",
+                        "invresolveone",
+                        "invresolveoneIn",
+                        "isUnique",
+                        "iterate",
+                        "late",
+                        "let",
+                        "literal",
+                        "log",
+                        "map",
+                        "merges",
+                        "modeltype",
+                        "new",
+                        "object",
+                        "one",
+                        "ordered",
+                        "out",
+                        "package",
+                        "population",
+                        "property",
+                        "raise",
+                        "readonly",
+                        "references",
+                        "refines",
+                        "reject",
+                        "resolve",
+                        "resolveIn",
+                        "resolveone",
+                        "resolveoneIn",
+                        "return",
+                        "select",
+                        "selectOne",
+                        "sortedBy",
+                        "static",
+                        "switch",
+                        "tag",
+                        "then",
+                        "try",
+                        "typedef",
+                        "unlimited",
+                        "uses",
+                        "when",
+                        "where",
+                        "while",
+                        "with",
+                        "xcollect",
+                        "xmap",
+                        "xselect",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
         ],
-
         # There is no need to distinguish between String.Single and
         # String.Double: 'strings' is factorised for 'dqs' and 'sqs'
-        'strings': [
+        "strings": [
             (r'[^\\\'"\n]+', String),
             # quotes, percents and backslashes must be parsed one at a time
             (r'[\'"\\]', String),
         ],
-        'stringescape': [
+        "stringescape": [
             (r'\\([\\btnfr"\']|u[0-3][0-7]{2}|u[0-7]{1,2})', String.Escape)
         ],
-        'dqs': [  # double-quoted string
-            (r'"', String, '#pop'),
+        "dqs": [  # double-quoted string
+            (r'"', String, "#pop"),
             (r'\\\\|\\"', String.Escape),
-            include('strings')
+            include("strings"),
         ],
-        'sqs': [  # single-quoted string
-            (r"'", String, '#pop'),
+        "sqs": [  # single-quoted string
+            (r"'", String, "#pop"),
             (r"\\\\|\\'", String.Escape),
-            include('strings')
+            include("strings"),
         ],
-        'name': [
-            (r'[a-zA-Z_]\w*', Name),
+        "name": [
+            (r"[a-zA-Z_]\w*", Name),
         ],
         # numbers: excerpt taken from the python lexer
-        'numbers': [
-            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
-            (r'\d+[eE][+-]?[0-9]+', Number.Float),
-            (r'\d+', Number.Integer)
+        "numbers": [
+            (r"(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?", Number.Float),
+            (r"\d+[eE][+-]?[0-9]+", Number.Float),
+            (r"\d+", Number.Integer),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/r.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/r.py
index d3f65ba..3a1cb35 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/r.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/r.py
@@ -1,23 +1,33 @@
 """
-    pygments.lexers.r
-    ~~~~~~~~~~~~~~~~~
+pygments.lexers.r
+~~~~~~~~~~~~~~~~~
 
-    Lexers for the R/S languages.
+Lexers for the R/S languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import Lexer, RegexLexer, include, do_insertions
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Generic, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Generic,
+    Whitespace,
+)
 
-__all__ = ['RConsoleLexer', 'SLexer', 'RdLexer']
+__all__ = ["RConsoleLexer", "SLexer", "RdLexer"]
 
 
-line_re  = re.compile('.*?\n')
+line_re = re.compile(".*?\n")
 
 
 class RConsoleLexer(Lexer):
@@ -25,26 +35,27 @@ class RConsoleLexer(Lexer):
     For R console transcripts or R CMD BATCH output files.
     """
 
-    name = 'RConsole'
-    aliases = ['rconsole', 'rout']
-    filenames = ['*.Rout']
-    url = 'https://www.r-project.org'
-    version_added = ''
+    name = "RConsole"
+    aliases = ["rconsole", "rout"]
+    filenames = ["*.Rout"]
+    url = "https://www.r-project.org"
+    version_added = ""
     _example = "rconsole/r-console-transcript.Rout"
 
     def get_tokens_unprocessed(self, text):
         slexer = SLexer(**self.options)
 
-        current_code_block = ''
+        current_code_block = ""
         insertions = []
 
         for match in line_re.finditer(text):
             line = match.group()
-            if line.startswith('>') or line.startswith('+'):
+            if line.startswith(">") or line.startswith("+"):
                 # Colorize the prompt as such,
                 # then put rest of line into current_code_block
-                insertions.append((len(current_code_block),
-                                   [(0, Generic.Prompt, line[:2])]))
+                insertions.append(
+                    (len(current_code_block), [(0, Generic.Prompt, line[:2])])
+                )
                 current_code_block += line[2:]
             else:
                 # We have reached a non-prompt line!
@@ -52,9 +63,10 @@ class RConsoleLexer(Lexer):
                 if current_code_block:
                     # Weave together the prompts and highlight code.
                     yield from do_insertions(
-                        insertions, slexer.get_tokens_unprocessed(current_code_block))
+                        insertions, slexer.get_tokens_unprocessed(current_code_block)
+                    )
                     # Reset vars for next code block.
-                    current_code_block = ''
+                    current_code_block = ""
                     insertions = []
                 # Now process the actual line itself, this is output from R.
                 yield match.start(), Generic.Output, line
@@ -64,7 +76,8 @@ class RConsoleLexer(Lexer):
         # should be changed.
         if current_code_block:
             yield from do_insertions(
-                insertions, slexer.get_tokens_unprocessed(current_code_block))
+                insertions, slexer.get_tokens_unprocessed(current_code_block)
+            )
 
 
 class SLexer(RegexLexer):
@@ -72,88 +85,98 @@ class SLexer(RegexLexer):
     For S, S-plus, and R source code.
     """
 
-    name = 'S'
-    aliases = ['splus', 's', 'r']
-    filenames = ['*.S', '*.R', '.Rhistory', '.Rprofile', '.Renviron']
-    mimetypes = ['text/S-plus', 'text/S', 'text/x-r-source', 'text/x-r',
-                 'text/x-R', 'text/x-r-history', 'text/x-r-profile']
-    url = 'https://www.r-project.org'
-    version_added = '0.10'
+    name = "S"
+    aliases = ["splus", "s", "r"]
+    filenames = ["*.S", "*.R", ".Rhistory", ".Rprofile", ".Renviron"]
+    mimetypes = [
+        "text/S-plus",
+        "text/S",
+        "text/x-r-source",
+        "text/x-r",
+        "text/x-R",
+        "text/x-r-history",
+        "text/x-r-profile",
+    ]
+    url = "https://www.r-project.org"
+    version_added = "0.10"
 
-    valid_name = r'`[^`\\]*(?:\\.[^`\\]*)*`|(?:[a-zA-Z]|\.[A-Za-z_.])[\w.]*|\.'
+    valid_name = r"`[^`\\]*(?:\\.[^`\\]*)*`|(?:[a-zA-Z]|\.[A-Za-z_.])[\w.]*|\."
     tokens = {
-        'comments': [
-            (r'#.*$', Comment.Single),
+        "comments": [
+            (r"#.*$", Comment.Single),
         ],
-        'valid_name': [
+        "valid_name": [
             (valid_name, Name),
         ],
-        'function_name': [
-            (rf'({valid_name})\s*(?=\()', Name.Function),
+        "function_name": [
+            (rf"({valid_name})\s*(?=\()", Name.Function),
         ],
-        'punctuation': [
-            (r'\[{1,2}|\]{1,2}|\(|\)|;|,', Punctuation),
+        "punctuation": [
+            (r"\[{1,2}|\]{1,2}|\(|\)|;|,", Punctuation),
         ],
-        'keywords': [
-            (r'(if|else|for|while|repeat|in|next|break|return|switch|function)'
-             r'(?![\w.])',
-             Keyword.Reserved),
+        "keywords": [
+            (
+                r"(if|else|for|while|repeat|in|next|break|return|switch|function)"
+                r"(?![\w.])",
+                Keyword.Reserved,
+            ),
         ],
-        'operators': [
-            (r'<>?|-|==|<=|>=|\|>|<|>|&&?|!=|\|\|?|\?', Operator),
-            (r'\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}', Operator),
+        "operators": [
+            (r"<>?|-|==|<=|>=|\|>|<|>|&&?|!=|\|\|?|\?", Operator),
+            (r"\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}", Operator),
         ],
-        'builtin_symbols': [
-            (r'(NULL|NA(_(integer|real|complex|character)_)?|'
-             r'letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))'
-             r'(?![\w.])',
-             Keyword.Constant),
-            (r'(T|F)\b', Name.Builtin.Pseudo),
+        "builtin_symbols": [
+            (
+                r"(NULL|NA(_(integer|real|complex|character)_)?|"
+                r"letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))"
+                r"(?![\w.])",
+                Keyword.Constant,
+            ),
+            (r"(T|F)\b", Name.Builtin.Pseudo),
         ],
-        'numbers': [
+        "numbers": [
             # hex number
-            (r'0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?', Number.Hex),
+            (r"0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?", Number.Hex),
             # decimal number
-            (r'[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?',
-             Number),
+            (r"[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?", Number),
         ],
-        'statements': [
-            include('comments'),
+        "statements": [
+            include("comments"),
             # whitespaces
-            (r'\s+', Whitespace),
-            (r'\'', String, 'string_squote'),
-            (r'\"', String, 'string_dquote'),
-            include('builtin_symbols'),
-            include('keywords'),
-            include('function_name'),
-            include('valid_name'),
-            include('numbers'),
-            include('punctuation'),
-            include('operators'),
+            (r"\s+", Whitespace),
+            (r"\'", String, "string_squote"),
+            (r"\"", String, "string_dquote"),
+            include("builtin_symbols"),
+            include("keywords"),
+            include("function_name"),
+            include("valid_name"),
+            include("numbers"),
+            include("punctuation"),
+            include("operators"),
         ],
-        'root': [
+        "root": [
             # calls:
-            include('statements'),
+            include("statements"),
             # blocks:
-            (r'\{|\}', Punctuation),
+            (r"\{|\}", Punctuation),
             # (r'\{', Punctuation, 'block'),
-            (r'.', Text),
+            (r".", Text),
         ],
         # 'block': [
         #    include('statements'),
         #    ('\{', Punctuation, '#push'),
         #    ('\}', Punctuation, '#pop')
         # ],
-        'string_squote': [
-            (r'([^\'\\]|\\.)*\'', String, '#pop'),
+        "string_squote": [
+            (r"([^\'\\]|\\.)*\'", String, "#pop"),
         ],
-        'string_dquote': [
-            (r'([^"\\]|\\.)*"', String, '#pop'),
+        "string_dquote": [
+            (r'([^"\\]|\\.)*"', String, "#pop"),
         ],
     }
 
     def analyse_text(text):
-        if re.search(r'[a-z0-9_\])\s]<-(?!-)', text):
+        if re.search(r"[a-z0-9_\])\s]<-(?!-)", text):
             return 0.11
 
 
@@ -166,31 +189,32 @@ class RdLexer(RegexLexer):
     Extensions `_
     and `Parsing Rd files `_.
     """
-    name = 'Rd'
-    aliases = ['rd']
-    filenames = ['*.Rd']
-    mimetypes = ['text/x-r-doc']
-    url = 'http://cran.r-project.org/doc/manuals/R-exts.html'
-    version_added = '1.6'
+
+    name = "Rd"
+    aliases = ["rd"]
+    filenames = ["*.Rd"]
+    mimetypes = ["text/x-r-doc"]
+    url = "http://cran.r-project.org/doc/manuals/R-exts.html"
+    version_added = "1.6"
 
     # To account for verbatim / LaTeX-like / and R-like areas
     # would require parsing.
     tokens = {
-        'root': [
+        "root": [
             # catch escaped brackets and percent sign
-            (r'\\[\\{}%]', String.Escape),
+            (r"\\[\\{}%]", String.Escape),
             # comments
-            (r'%.*$', Comment),
+            (r"%.*$", Comment),
             # special macros with no arguments
-            (r'\\(?:cr|l?dots|R|tab)\b', Keyword.Constant),
+            (r"\\(?:cr|l?dots|R|tab)\b", Keyword.Constant),
             # macros
-            (r'\\[a-zA-Z]+\b', Keyword),
+            (r"\\[a-zA-Z]+\b", Keyword),
             # special preprocessor macros
-            (r'^\s*#(?:ifn?def|endif).*\b', Comment.Preproc),
+            (r"^\s*#(?:ifn?def|endif).*\b", Comment.Preproc),
             # non-escaped brackets
-            (r'[{}]', Name.Builtin),
+            (r"[{}]", Name.Builtin),
             # everything else
-            (r'[^\\%\n{}]+', Text),
-            (r'.', Text),
+            (r"[^\\%\n{}]+", Text),
+            (r".", Text),
         ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rdf.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rdf.py
index 4930c1b..722c99f 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rdf.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rdf.py
@@ -1,176 +1,217 @@
 """
-    pygments.lexers.rdf
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rdf
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for semantic web and RDF query languages and markup.
+Lexers for semantic web and RDF query languages and markup.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, bygroups, default
-from pygments.token import Keyword, Punctuation, String, Number, Operator, \
-    Generic, Whitespace, Name, Literal, Comment, Text
+from pygments.token import (
+    Keyword,
+    Punctuation,
+    String,
+    Number,
+    Operator,
+    Generic,
+    Whitespace,
+    Name,
+    Literal,
+    Comment,
+    Text,
+)
 
-__all__ = ['SparqlLexer', 'TurtleLexer', 'ShExCLexer']
+__all__ = ["SparqlLexer", "TurtleLexer", "ShExCLexer"]
 
 
 class SparqlLexer(RegexLexer):
     """
     Lexer for SPARQL query language.
     """
-    name = 'SPARQL'
-    aliases = ['sparql']
-    filenames = ['*.rq', '*.sparql']
-    mimetypes = ['application/sparql-query']
-    url = 'https://www.w3.org/TR/sparql11-query'
-    version_added = '2.0'
+
+    name = "SPARQL"
+    aliases = ["sparql"]
+    filenames = ["*.rq", "*.sparql"]
+    mimetypes = ["application/sparql-query"]
+    url = "https://www.w3.org/TR/sparql11-query"
+    version_added = "2.0"
 
     # character group definitions ::
 
-    PN_CHARS_BASE_GRP = ('a-zA-Z'
-                         '\u00c0-\u00d6'
-                         '\u00d8-\u00f6'
-                         '\u00f8-\u02ff'
-                         '\u0370-\u037d'
-                         '\u037f-\u1fff'
-                         '\u200c-\u200d'
-                         '\u2070-\u218f'
-                         '\u2c00-\u2fef'
-                         '\u3001-\ud7ff'
-                         '\uf900-\ufdcf'
-                         '\ufdf0-\ufffd')
+    PN_CHARS_BASE_GRP = (
+        "a-zA-Z"
+        "\u00c0-\u00d6"
+        "\u00d8-\u00f6"
+        "\u00f8-\u02ff"
+        "\u0370-\u037d"
+        "\u037f-\u1fff"
+        "\u200c-\u200d"
+        "\u2070-\u218f"
+        "\u2c00-\u2fef"
+        "\u3001-\ud7ff"
+        "\uf900-\ufdcf"
+        "\ufdf0-\ufffd"
+    )
 
-    PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_')
+    PN_CHARS_U_GRP = PN_CHARS_BASE_GRP + "_"
 
-    PN_CHARS_GRP = (PN_CHARS_U_GRP +
-                    r'\-' +
-                    r'0-9' +
-                    '\u00b7' +
-                    '\u0300-\u036f' +
-                    '\u203f-\u2040')
+    PN_CHARS_GRP = (
+        PN_CHARS_U_GRP + r"\-" + r"0-9" + "\u00b7" + "\u0300-\u036f" + "\u203f-\u2040"
+    )
 
-    HEX_GRP = '0-9A-Fa-f'
+    HEX_GRP = "0-9A-Fa-f"
 
     PN_LOCAL_ESC_CHARS_GRP = r' _~.\-!$&"()*+,;=/?#@%'
 
     # terminal productions ::
 
-    PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']'
+    PN_CHARS_BASE = "[" + PN_CHARS_BASE_GRP + "]"
 
-    PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']'
+    PN_CHARS_U = "[" + PN_CHARS_U_GRP + "]"
 
-    PN_CHARS = '[' + PN_CHARS_GRP + ']'
+    PN_CHARS = "[" + PN_CHARS_GRP + "]"
 
-    HEX = '[' + HEX_GRP + ']'
+    HEX = "[" + HEX_GRP + "]"
 
-    PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']'
+    PN_LOCAL_ESC_CHARS = "[" + PN_LOCAL_ESC_CHARS_GRP + "]"
 
     IRIREF = r'<(?:[^<>"{}|^`\\\x00-\x20])*>'
 
-    BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \
-                       '.]*' + PN_CHARS + ')?'
+    BLANK_NODE_LABEL = (
+        "_:[0-9" + PN_CHARS_U_GRP + "](?:[" + PN_CHARS_GRP + ".]*" + PN_CHARS + ")?"
+    )
 
-    PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?'
+    PN_PREFIX = PN_CHARS_BASE + "(?:[" + PN_CHARS_GRP + ".]*" + PN_CHARS + ")?"
 
-    VARNAME = '[0-9' + PN_CHARS_U_GRP + '][' + PN_CHARS_U_GRP + \
-              '0-9\u00b7\u0300-\u036f\u203f-\u2040]*'
+    VARNAME = (
+        "[0-9"
+        + PN_CHARS_U_GRP
+        + "]["
+        + PN_CHARS_U_GRP
+        + "0-9\u00b7\u0300-\u036f\u203f-\u2040]*"
+    )
 
-    PERCENT = '%' + HEX + HEX
+    PERCENT = "%" + HEX + HEX
 
-    PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS
+    PN_LOCAL_ESC = r"\\" + PN_LOCAL_ESC_CHARS
 
-    PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
+    PLX = "(?:" + PERCENT + ")|(?:" + PN_LOCAL_ESC + ")"
 
-    PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' +
-                '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' +
-                PN_CHARS_GRP + ':]|' + PLX + '))?')
+    PN_LOCAL = (
+        "(?:["
+        + PN_CHARS_U_GRP
+        + ":0-9"
+        + "]|"
+        + PLX
+        + ")"
+        + "(?:(?:["
+        + PN_CHARS_GRP
+        + ".:]|"
+        + PLX
+        + ")*(?:["
+        + PN_CHARS_GRP
+        + ":]|"
+        + PLX
+        + "))?"
+    )
 
-    EXPONENT = r'[eE][+-]?\d+'
+    EXPONENT = r"[eE][+-]?\d+"
 
     # Lexer token definitions ::
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
+        "root": [
+            (r"\s+", Text),
             # keywords ::
-            (r'(?i)(select|construct|describe|ask|where|filter|group\s+by|minus|'
-             r'distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|'
-             r'offset|values|bindings|load|into|clear|drop|create|add|move|copy|'
-             r'insert\s+data|delete\s+data|delete\s+where|with|delete|insert|'
-             r'using\s+named|using|graph|default|named|all|optional|service|'
-             r'silent|bind|undef|union|not\s+in|in|as|having|to|prefix|base)\b', Keyword),
-            (r'(a)\b', Keyword),
+            (
+                r"(?i)(select|construct|describe|ask|where|filter|group\s+by|minus|"
+                r"distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|"
+                r"offset|values|bindings|load|into|clear|drop|create|add|move|copy|"
+                r"insert\s+data|delete\s+data|delete\s+where|with|delete|insert|"
+                r"using\s+named|using|graph|default|named|all|optional|service|"
+                r"silent|bind|undef|union|not\s+in|in|as|having|to|prefix|base)\b",
+                Keyword,
+            ),
+            (r"(a)\b", Keyword),
             # IRIs ::
-            ('(' + IRIREF + ')', Name.Label),
+            ("(" + IRIREF + ")", Name.Label),
             # blank nodes ::
-            ('(' + BLANK_NODE_LABEL + ')', Name.Label),
+            ("(" + BLANK_NODE_LABEL + ")", Name.Label),
             #  # variables ::
-            ('[?$]' + VARNAME, Name.Variable),
+            ("[?$]" + VARNAME, Name.Variable),
             # prefixed names ::
-            (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + r')?',
-             bygroups(Name.Namespace, Punctuation, Name.Tag)),
+            (
+                r"(" + PN_PREFIX + r")?(\:)(" + PN_LOCAL + r")?",
+                bygroups(Name.Namespace, Punctuation, Name.Tag),
+            ),
             # function names ::
-            (r'(?i)(str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|'
-             r'ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|'
-             r'contains|strstarts|strends|strbefore|strafter|year|month|day|'
-             r'hours|minutes|seconds|timezone|tz|now|uuid|struuid|md5|sha1|sha256|sha384|'
-             r'sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|'
-             r'isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|'
-             r'count|sum|min|max|avg|sample|group_concat|separator)\b',
-             Name.Function),
+            (
+                r"(?i)(str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|"
+                r"ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|"
+                r"contains|strstarts|strends|strbefore|strafter|year|month|day|"
+                r"hours|minutes|seconds|timezone|tz|now|uuid|struuid|md5|sha1|sha256|sha384|"
+                r"sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|"
+                r"isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|"
+                r"count|sum|min|max|avg|sample|group_concat|separator)\b",
+                Name.Function,
+            ),
             # boolean literals ::
-            (r'(true|false)', Keyword.Constant),
+            (r"(true|false)", Keyword.Constant),
             # double literals ::
-            (r'[+\-]?(\d+\.\d*' + EXPONENT + r'|\.?\d+' + EXPONENT + ')', Number.Float),
+            (r"[+\-]?(\d+\.\d*" + EXPONENT + r"|\.?\d+" + EXPONENT + ")", Number.Float),
             # decimal literals ::
-            (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float),
+            (r"[+\-]?(\d+\.\d*|\.\d+)", Number.Float),
             # integer literals ::
-            (r'[+\-]?\d+', Number.Integer),
+            (r"[+\-]?\d+", Number.Integer),
             # operators ::
-            (r'(\|\||&&|=|\*|\-|\+|/|!=|<=|>=|!|<|>)', Operator),
+            (r"(\|\||&&|=|\*|\-|\+|/|!=|<=|>=|!|<|>)", Operator),
             # punctuation characters ::
-            (r'[(){}.;,:^\[\]]', Punctuation),
+            (r"[(){}.;,:^\[\]]", Punctuation),
             # line comments ::
-            (r'#[^\n]*', Comment),
+            (r"#[^\n]*", Comment),
             # strings ::
-            (r'"""', String, 'triple-double-quoted-string'),
-            (r'"', String, 'single-double-quoted-string'),
-            (r"'''", String, 'triple-single-quoted-string'),
-            (r"'", String, 'single-single-quoted-string'),
+            (r'"""', String, "triple-double-quoted-string"),
+            (r'"', String, "single-double-quoted-string"),
+            (r"'''", String, "triple-single-quoted-string"),
+            (r"'", String, "single-single-quoted-string"),
         ],
-        'triple-double-quoted-string': [
-            (r'"""', String, 'end-of-string'),
-            (r'[^\\]+', String),
-            (r'\\', String, 'string-escape'),
+        "triple-double-quoted-string": [
+            (r'"""', String, "end-of-string"),
+            (r"[^\\]+", String),
+            (r"\\", String, "string-escape"),
         ],
-        'single-double-quoted-string': [
-            (r'"', String, 'end-of-string'),
+        "single-double-quoted-string": [
+            (r'"', String, "end-of-string"),
             (r'[^"\\\n]+', String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'triple-single-quoted-string': [
-            (r"'''", String, 'end-of-string'),
-            (r'[^\\]+', String),
-            (r'\\', String.Escape, 'string-escape'),
+        "triple-single-quoted-string": [
+            (r"'''", String, "end-of-string"),
+            (r"[^\\]+", String),
+            (r"\\", String.Escape, "string-escape"),
         ],
-        'single-single-quoted-string': [
-            (r"'", String, 'end-of-string'),
+        "single-single-quoted-string": [
+            (r"'", String, "end-of-string"),
             (r"[^'\\\n]+", String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'string-escape': [
-            (r'u' + HEX + '{4}', String.Escape, '#pop'),
-            (r'U' + HEX + '{8}', String.Escape, '#pop'),
-            (r'.', String.Escape, '#pop'),
+        "string-escape": [
+            (r"u" + HEX + "{4}", String.Escape, "#pop"),
+            (r"U" + HEX + "{8}", String.Escape, "#pop"),
+            (r".", String.Escape, "#pop"),
         ],
-        'end-of-string': [
-            (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)',
-             bygroups(Operator, Name.Function), '#pop:2'),
-            (r'\^\^', Operator, '#pop:2'),
-            default('#pop:2'),
+        "end-of-string": [
+            (
+                r"(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)",
+                bygroups(Operator, Name.Function),
+                "#pop:2",
+            ),
+            (r"\^\^", Operator, "#pop:2"),
+            default("#pop:2"),
         ],
     }
 
@@ -179,144 +220,176 @@ class TurtleLexer(RegexLexer):
     """
     Lexer for Turtle data language.
     """
-    name = 'Turtle'
-    aliases = ['turtle']
-    filenames = ['*.ttl']
-    mimetypes = ['text/turtle', 'application/x-turtle']
-    url = 'https://www.w3.org/TR/turtle'
-    version_added = '2.1'
+
+    name = "Turtle"
+    aliases = ["turtle"]
+    filenames = ["*.ttl"]
+    mimetypes = ["text/turtle", "application/x-turtle"]
+    url = "https://www.w3.org/TR/turtle"
+    version_added = "2.1"
 
     # character group definitions ::
-    PN_CHARS_BASE_GRP = ('a-zA-Z'
-                         '\u00c0-\u00d6'
-                         '\u00d8-\u00f6'
-                         '\u00f8-\u02ff'
-                         '\u0370-\u037d'
-                         '\u037f-\u1fff'
-                         '\u200c-\u200d'
-                         '\u2070-\u218f'
-                         '\u2c00-\u2fef'
-                         '\u3001-\ud7ff'
-                         '\uf900-\ufdcf'
-                         '\ufdf0-\ufffd')
+    PN_CHARS_BASE_GRP = (
+        "a-zA-Z"
+        "\u00c0-\u00d6"
+        "\u00d8-\u00f6"
+        "\u00f8-\u02ff"
+        "\u0370-\u037d"
+        "\u037f-\u1fff"
+        "\u200c-\u200d"
+        "\u2070-\u218f"
+        "\u2c00-\u2fef"
+        "\u3001-\ud7ff"
+        "\uf900-\ufdcf"
+        "\ufdf0-\ufffd"
+    )
 
-    PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_')
+    PN_CHARS_U_GRP = PN_CHARS_BASE_GRP + "_"
 
-    PN_CHARS_GRP = (PN_CHARS_U_GRP +
-                    r'\-' +
-                    r'0-9' +
-                    '\u00b7' +
-                    '\u0300-\u036f' +
-                    '\u203f-\u2040')
+    PN_CHARS_GRP = (
+        PN_CHARS_U_GRP + r"\-" + r"0-9" + "\u00b7" + "\u0300-\u036f" + "\u203f-\u2040"
+    )
 
-    PN_CHARS = '[' + PN_CHARS_GRP + ']'
+    PN_CHARS = "[" + PN_CHARS_GRP + "]"
 
-    PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']'
+    PN_CHARS_BASE = "[" + PN_CHARS_BASE_GRP + "]"
 
-    PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?'
+    PN_PREFIX = PN_CHARS_BASE + "(?:[" + PN_CHARS_GRP + ".]*" + PN_CHARS + ")?"
 
-    HEX_GRP = '0-9A-Fa-f'
+    HEX_GRP = "0-9A-Fa-f"
 
-    HEX = '[' + HEX_GRP + ']'
+    HEX = "[" + HEX_GRP + "]"
 
-    PERCENT = '%' + HEX + HEX
+    PERCENT = "%" + HEX + HEX
 
     PN_LOCAL_ESC_CHARS_GRP = r' _~.\-!$&"()*+,;=/?#@%'
 
-    PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']'
+    PN_LOCAL_ESC_CHARS = "[" + PN_LOCAL_ESC_CHARS_GRP + "]"
 
-    PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS
+    PN_LOCAL_ESC = r"\\" + PN_LOCAL_ESC_CHARS
 
-    PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
+    PLX = "(?:" + PERCENT + ")|(?:" + PN_LOCAL_ESC + ")"
 
-    PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' +
-                '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' +
-                PN_CHARS_GRP + ':]|' + PLX + '))?')
+    PN_LOCAL = (
+        "(?:["
+        + PN_CHARS_U_GRP
+        + ":0-9"
+        + "]|"
+        + PLX
+        + ")"
+        + "(?:(?:["
+        + PN_CHARS_GRP
+        + ".:]|"
+        + PLX
+        + ")*(?:["
+        + PN_CHARS_GRP
+        + ":]|"
+        + PLX
+        + "))?"
+    )
 
     patterns = {
-        'PNAME_NS': r'((?:[a-zA-Z][\w-]*)?\:)',  # Simplified character range
-        'IRIREF': r'(<[^<>"{}|^`\\\x00-\x20]*>)'
+        "PNAME_NS": r"((?:[a-zA-Z][\w-]*)?\:)",  # Simplified character range
+        "IRIREF": r'(<[^<>"{}|^`\\\x00-\x20]*>)',
     }
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
-
+        "root": [
+            (r"\s+", Text),
             # Base / prefix
-            (r'(@base|BASE)(\s+){IRIREF}(\s*)(\.?)'.format(**patterns),
-             bygroups(Keyword, Whitespace, Name.Variable, Whitespace,
-                      Punctuation)),
-            (r'(@prefix|PREFIX)(\s+){PNAME_NS}(\s+){IRIREF}(\s*)(\.?)'.format(**patterns),
-             bygroups(Keyword, Whitespace, Name.Namespace, Whitespace,
-                      Name.Variable, Whitespace, Punctuation)),
-
+            (
+                r"(@base|BASE)(\s+){IRIREF}(\s*)(\.?)".format(**patterns),
+                bygroups(Keyword, Whitespace, Name.Variable, Whitespace, Punctuation),
+            ),
+            (
+                r"(@prefix|PREFIX)(\s+){PNAME_NS}(\s+){IRIREF}(\s*)(\.?)".format(
+                    **patterns
+                ),
+                bygroups(
+                    Keyword,
+                    Whitespace,
+                    Name.Namespace,
+                    Whitespace,
+                    Name.Variable,
+                    Whitespace,
+                    Punctuation,
+                ),
+            ),
             # The shorthand predicate 'a'
-            (r'(?<=\s)a(?=\s)', Keyword.Type),
-
+            (r"(?<=\s)a(?=\s)", Keyword.Type),
             # IRIREF
-            (r'{IRIREF}'.format(**patterns), Name.Variable),
-
+            (r"{IRIREF}".format(**patterns), Name.Variable),
             # PrefixedName
-            (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + r')?',
-             bygroups(Name.Namespace, Punctuation, Name.Tag)),
-
+            (
+                r"(" + PN_PREFIX + r")?(\:)(" + PN_LOCAL + r")?",
+                bygroups(Name.Namespace, Punctuation, Name.Tag),
+            ),
             # BlankNodeLabel
-            (r'(_)(:)([' + PN_CHARS_U_GRP + r'0-9]([' + PN_CHARS_GRP + r'.]*' + PN_CHARS + ')?)',
-             bygroups(Name.Namespace, Punctuation, Name.Tag)),
-
+            (
+                r"(_)(:)(["
+                + PN_CHARS_U_GRP
+                + r"0-9](["
+                + PN_CHARS_GRP
+                + r".]*"
+                + PN_CHARS
+                + ")?)",
+                bygroups(Name.Namespace, Punctuation, Name.Tag),
+            ),
             # Comment
-            (r'#[^\n]+', Comment),
-
-            (r'\b(true|false)\b', Literal),
-            (r'[+\-]?\d*\.\d+', Number.Float),
-            (r'[+\-]?\d*(:?\.\d+)?E[+\-]?\d+', Number.Float),
-            (r'[+\-]?\d+', Number.Integer),
-            (r'[\[\](){}.;,:^]', Punctuation),
-
-            (r'"""', String, 'triple-double-quoted-string'),
-            (r'"', String, 'single-double-quoted-string'),
-            (r"'''", String, 'triple-single-quoted-string'),
-            (r"'", String, 'single-single-quoted-string'),
+            (r"#[^\n]+", Comment),
+            (r"\b(true|false)\b", Literal),
+            (r"[+\-]?\d*\.\d+", Number.Float),
+            (r"[+\-]?\d*(:?\.\d+)?E[+\-]?\d+", Number.Float),
+            (r"[+\-]?\d+", Number.Integer),
+            (r"[\[\](){}.;,:^]", Punctuation),
+            (r'"""', String, "triple-double-quoted-string"),
+            (r'"', String, "single-double-quoted-string"),
+            (r"'''", String, "triple-single-quoted-string"),
+            (r"'", String, "single-single-quoted-string"),
         ],
-        'triple-double-quoted-string': [
-            (r'"""', String, 'end-of-string'),
+        "triple-double-quoted-string": [
+            (r'"""', String, "end-of-string"),
             (r'[^\\]+(?=""")', String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'single-double-quoted-string': [
-            (r'"', String, 'end-of-string'),
+        "single-double-quoted-string": [
+            (r'"', String, "end-of-string"),
             (r'[^"\\\n]+', String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'triple-single-quoted-string': [
-            (r"'''", String, 'end-of-string'),
+        "triple-single-quoted-string": [
+            (r"'''", String, "end-of-string"),
             (r"[^\\]+(?=''')", String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'single-single-quoted-string': [
-            (r"'", String, 'end-of-string'),
+        "single-single-quoted-string": [
+            (r"'", String, "end-of-string"),
             (r"[^'\\\n]+", String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'string-escape': [
-            (r'.', String, '#pop'),
+        "string-escape": [
+            (r".", String, "#pop"),
         ],
-        'end-of-string': [
-            (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)',
-             bygroups(Operator, Generic.Emph), '#pop:2'),
-
-            (r'(\^\^){IRIREF}'.format(**patterns), bygroups(Operator, Generic.Emph), '#pop:2'),
-
-            default('#pop:2'),
-
+        "end-of-string": [
+            (
+                r"(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)",
+                bygroups(Operator, Generic.Emph),
+                "#pop:2",
+            ),
+            (
+                r"(\^\^){IRIREF}".format(**patterns),
+                bygroups(Operator, Generic.Emph),
+                "#pop:2",
+            ),
+            default("#pop:2"),
         ],
     }
 
     # Turtle and Tera Term macro files share the same file extension
     # but each has a recognizable and distinct syntax.
     def analyse_text(text):
-        for t in ('@base ', 'BASE ', '@prefix ', 'PREFIX '):
-            if re.search(rf'^\s*{t}', text):
+        for t in ("@base ", "BASE ", "@prefix ", "PREFIX "):
+            if re.search(rf"^\s*{t}", text):
                 return 0.80
 
 
@@ -324,145 +397,168 @@ class ShExCLexer(RegexLexer):
     """
     Lexer for ShExC shape expressions language syntax.
     """
-    name = 'ShExC'
-    aliases = ['shexc', 'shex']
-    filenames = ['*.shex']
-    mimetypes = ['text/shex']
-    url = 'https://shex.io/shex-semantics/#shexc'
-    version_added = ''
+
+    name = "ShExC"
+    aliases = ["shexc", "shex"]
+    filenames = ["*.shex"]
+    mimetypes = ["text/shex"]
+    url = "https://shex.io/shex-semantics/#shexc"
+    version_added = ""
 
     # character group definitions ::
 
-    PN_CHARS_BASE_GRP = ('a-zA-Z'
-                         '\u00c0-\u00d6'
-                         '\u00d8-\u00f6'
-                         '\u00f8-\u02ff'
-                         '\u0370-\u037d'
-                         '\u037f-\u1fff'
-                         '\u200c-\u200d'
-                         '\u2070-\u218f'
-                         '\u2c00-\u2fef'
-                         '\u3001-\ud7ff'
-                         '\uf900-\ufdcf'
-                         '\ufdf0-\ufffd')
+    PN_CHARS_BASE_GRP = (
+        "a-zA-Z"
+        "\u00c0-\u00d6"
+        "\u00d8-\u00f6"
+        "\u00f8-\u02ff"
+        "\u0370-\u037d"
+        "\u037f-\u1fff"
+        "\u200c-\u200d"
+        "\u2070-\u218f"
+        "\u2c00-\u2fef"
+        "\u3001-\ud7ff"
+        "\uf900-\ufdcf"
+        "\ufdf0-\ufffd"
+    )
 
-    PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_')
+    PN_CHARS_U_GRP = PN_CHARS_BASE_GRP + "_"
 
-    PN_CHARS_GRP = (PN_CHARS_U_GRP +
-                    r'\-' +
-                    r'0-9' +
-                    '\u00b7' +
-                    '\u0300-\u036f' +
-                    '\u203f-\u2040')
+    PN_CHARS_GRP = (
+        PN_CHARS_U_GRP + r"\-" + r"0-9" + "\u00b7" + "\u0300-\u036f" + "\u203f-\u2040"
+    )
 
-    HEX_GRP = '0-9A-Fa-f'
+    HEX_GRP = "0-9A-Fa-f"
 
     PN_LOCAL_ESC_CHARS_GRP = r"_~.\-!$&'()*+,;=/?#@%"
 
     # terminal productions ::
 
-    PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']'
+    PN_CHARS_BASE = "[" + PN_CHARS_BASE_GRP + "]"
 
-    PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']'
+    PN_CHARS_U = "[" + PN_CHARS_U_GRP + "]"
 
-    PN_CHARS = '[' + PN_CHARS_GRP + ']'
+    PN_CHARS = "[" + PN_CHARS_GRP + "]"
 
-    HEX = '[' + HEX_GRP + ']'
+    HEX = "[" + HEX_GRP + "]"
 
-    PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']'
+    PN_LOCAL_ESC_CHARS = "[" + PN_LOCAL_ESC_CHARS_GRP + "]"
 
-    UCHAR_NO_BACKSLASH = '(?:u' + HEX + '{4}|U' + HEX + '{8})'
+    UCHAR_NO_BACKSLASH = "(?:u" + HEX + "{4}|U" + HEX + "{8})"
 
-    UCHAR = r'\\' + UCHAR_NO_BACKSLASH
+    UCHAR = r"\\" + UCHAR_NO_BACKSLASH
 
-    IRIREF = r'<(?:[^\x00-\x20<>"{}|^`\\]|' + UCHAR + ')*>'
+    IRIREF = r'<(?:[^\x00-\x20<>"{}|^`\\]|' + UCHAR + ")*>"
 
-    BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \
-                       '.]*' + PN_CHARS + ')?'
+    BLANK_NODE_LABEL = (
+        "_:[0-9" + PN_CHARS_U_GRP + "](?:[" + PN_CHARS_GRP + ".]*" + PN_CHARS + ")?"
+    )
 
-    PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?'
+    PN_PREFIX = PN_CHARS_BASE + "(?:[" + PN_CHARS_GRP + ".]*" + PN_CHARS + ")?"
 
-    PERCENT = '%' + HEX + HEX
+    PERCENT = "%" + HEX + HEX
 
-    PN_LOCAL_ESC = r'\\' + PN_LOCAL_ESC_CHARS
+    PN_LOCAL_ESC = r"\\" + PN_LOCAL_ESC_CHARS
 
-    PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
+    PLX = "(?:" + PERCENT + ")|(?:" + PN_LOCAL_ESC + ")"
 
-    PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' +
-                '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' +
-                PN_CHARS_GRP + ':]|' + PLX + '))?')
+    PN_LOCAL = (
+        "(?:["
+        + PN_CHARS_U_GRP
+        + ":0-9"
+        + "]|"
+        + PLX
+        + ")"
+        + "(?:(?:["
+        + PN_CHARS_GRP
+        + ".:]|"
+        + PLX
+        + ")*(?:["
+        + PN_CHARS_GRP
+        + ":]|"
+        + PLX
+        + "))?"
+    )
 
-    EXPONENT = r'[eE][+-]?\d+'
+    EXPONENT = r"[eE][+-]?\d+"
 
     # Lexer token definitions ::
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
+        "root": [
+            (r"\s+", Text),
             # keywords ::
-            (r'(?i)(base|prefix|start|external|'
-             r'literal|iri|bnode|nonliteral|length|minlength|maxlength|'
-             r'mininclusive|minexclusive|maxinclusive|maxexclusive|'
-             r'totaldigits|fractiondigits|'
-             r'closed|extra)\b', Keyword),
-            (r'(a)\b', Keyword),
+            (
+                r"(?i)(base|prefix|start|external|"
+                r"literal|iri|bnode|nonliteral|length|minlength|maxlength|"
+                r"mininclusive|minexclusive|maxinclusive|maxexclusive|"
+                r"totaldigits|fractiondigits|"
+                r"closed|extra)\b",
+                Keyword,
+            ),
+            (r"(a)\b", Keyword),
             # IRIs ::
-            ('(' + IRIREF + ')', Name.Label),
+            ("(" + IRIREF + ")", Name.Label),
             # blank nodes ::
-            ('(' + BLANK_NODE_LABEL + ')', Name.Label),
+            ("(" + BLANK_NODE_LABEL + ")", Name.Label),
             # prefixed names ::
-            (r'(' + PN_PREFIX + r')?(\:)(' + PN_LOCAL + ')?',
-             bygroups(Name.Namespace, Punctuation, Name.Tag)),
+            (
+                r"(" + PN_PREFIX + r")?(\:)(" + PN_LOCAL + ")?",
+                bygroups(Name.Namespace, Punctuation, Name.Tag),
+            ),
             # boolean literals ::
-            (r'(true|false)', Keyword.Constant),
+            (r"(true|false)", Keyword.Constant),
             # double literals ::
-            (r'[+\-]?(\d+\.\d*' + EXPONENT + r'|\.?\d+' + EXPONENT + ')', Number.Float),
+            (r"[+\-]?(\d+\.\d*" + EXPONENT + r"|\.?\d+" + EXPONENT + ")", Number.Float),
             # decimal literals ::
-            (r'[+\-]?(\d+\.\d*|\.\d+)', Number.Float),
+            (r"[+\-]?(\d+\.\d*|\.\d+)", Number.Float),
             # integer literals ::
-            (r'[+\-]?\d+', Number.Integer),
+            (r"[+\-]?\d+", Number.Integer),
             # operators ::
-            (r'[@|$&=*+?^\-~]', Operator),
+            (r"[@|$&=*+?^\-~]", Operator),
             # operator keywords ::
-            (r'(?i)(and|or|not)\b', Operator.Word),
+            (r"(?i)(and|or|not)\b", Operator.Word),
             # punctuation characters ::
-            (r'[(){}.;,:^\[\]]', Punctuation),
+            (r"[(){}.;,:^\[\]]", Punctuation),
             # line comments ::
-            (r'#[^\n]*', Comment),
+            (r"#[^\n]*", Comment),
             # strings ::
-            (r'"""', String, 'triple-double-quoted-string'),
-            (r'"', String, 'single-double-quoted-string'),
-            (r"'''", String, 'triple-single-quoted-string'),
-            (r"'", String, 'single-single-quoted-string'),
+            (r'"""', String, "triple-double-quoted-string"),
+            (r'"', String, "single-double-quoted-string"),
+            (r"'''", String, "triple-single-quoted-string"),
+            (r"'", String, "single-single-quoted-string"),
         ],
-        'triple-double-quoted-string': [
-            (r'"""', String, 'end-of-string'),
-            (r'[^\\]+', String),
-            (r'\\', String, 'string-escape'),
+        "triple-double-quoted-string": [
+            (r'"""', String, "end-of-string"),
+            (r"[^\\]+", String),
+            (r"\\", String, "string-escape"),
         ],
-        'single-double-quoted-string': [
-            (r'"', String, 'end-of-string'),
+        "single-double-quoted-string": [
+            (r'"', String, "end-of-string"),
             (r'[^"\\\n]+', String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'triple-single-quoted-string': [
-            (r"'''", String, 'end-of-string'),
-            (r'[^\\]+', String),
-            (r'\\', String.Escape, 'string-escape'),
+        "triple-single-quoted-string": [
+            (r"'''", String, "end-of-string"),
+            (r"[^\\]+", String),
+            (r"\\", String.Escape, "string-escape"),
         ],
-        'single-single-quoted-string': [
-            (r"'", String, 'end-of-string'),
+        "single-single-quoted-string": [
+            (r"'", String, "end-of-string"),
             (r"[^'\\\n]+", String),
-            (r'\\', String, 'string-escape'),
+            (r"\\", String, "string-escape"),
         ],
-        'string-escape': [
-            (UCHAR_NO_BACKSLASH, String.Escape, '#pop'),
-            (r'.', String.Escape, '#pop'),
+        "string-escape": [
+            (UCHAR_NO_BACKSLASH, String.Escape, "#pop"),
+            (r".", String.Escape, "#pop"),
         ],
-        'end-of-string': [
-            (r'(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)',
-             bygroups(Operator, Name.Function), '#pop:2'),
-            (r'\^\^', Operator, '#pop:2'),
-            default('#pop:2'),
+        "end-of-string": [
+            (
+                r"(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)",
+                bygroups(Operator, Name.Function),
+                "#pop:2",
+            ),
+            (r"\^\^", Operator, "#pop:2"),
+            default("#pop:2"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rebol.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rebol.py
index 4b37a74..b89f1c1 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rebol.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rebol.py
@@ -1,36 +1,46 @@
 """
-    pygments.lexers.rebol
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rebol
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the REBOL and related languages.
+Lexers for the REBOL and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, bygroups
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Generic, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Generic,
+    Whitespace,
+)
 
-__all__ = ['RebolLexer', 'RedLexer']
+__all__ = ["RebolLexer", "RedLexer"]
 
 
 class RebolLexer(RegexLexer):
     """
     A REBOL lexer.
     """
-    name = 'REBOL'
-    aliases = ['rebol']
-    filenames = ['*.r', '*.r3', '*.reb']
-    mimetypes = ['text/x-rebol']
-    url = 'http://www.rebol.com'
-    version_added = '1.1'
+
+    name = "REBOL"
+    aliases = ["rebol"]
+    filenames = ["*.r", "*.r3", "*.reb"]
+    mimetypes = ["text/x-rebol"]
+    url = "http://www.rebol.com"
+    version_added = "1.1"
 
     flags = re.IGNORECASE | re.MULTILINE
 
-    escape_re = r'(?:\^\([0-9a-f]{1,4}\)*)'
+    escape_re = r"(?:\^\([0-9a-f]{1,4}\)*)"
 
     def word_callback(lexer, match):
         word = match.group()
@@ -38,71 +48,78 @@ class RebolLexer(RegexLexer):
         if re.match(".*:$", word):
             yield match.start(), Generic.Subheading, word
         elif re.match(
-            r'(native|alias|all|any|as-string|as-binary|bind|bound\?|case|'
-            r'catch|checksum|comment|debase|dehex|exclude|difference|disarm|'
-            r'either|else|enbase|foreach|remove-each|form|free|get|get-env|if|'
-            r'in|intersect|loop|minimum-of|maximum-of|mold|new-line|'
-            r'new-line\?|not|now|prin|print|reduce|compose|construct|repeat|'
-            r'reverse|save|script\?|set|shift|switch|throw|to-hex|trace|try|'
-            r'type\?|union|unique|unless|unprotect|unset|until|use|value\?|'
-            r'while|compress|decompress|secure|open|close|read|read-io|'
-            r'write-io|write|update|query|wait|input\?|exp|log-10|log-2|'
-            r'log-e|square-root|cosine|sine|tangent|arccosine|arcsine|'
-            r'arctangent|protect|lowercase|uppercase|entab|detab|connected\?|'
-            r'browse|launch|stats|get-modes|set-modes|to-local-file|'
-            r'to-rebol-file|encloak|decloak|create-link|do-browser|bind\?|'
-            r'hide|draw|show|size-text|textinfo|offset-to-caret|'
-            r'caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|'
-            r'crypt-strength\?|dh-make-key|dh-generate-key|dh-compute-key|'
-            r'dsa-make-key|dsa-generate-key|dsa-make-signature|'
-            r'dsa-verify-signature|rsa-make-key|rsa-generate-key|'
-            r'rsa-encrypt)$', word):
+            r"(native|alias|all|any|as-string|as-binary|bind|bound\?|case|"
+            r"catch|checksum|comment|debase|dehex|exclude|difference|disarm|"
+            r"either|else|enbase|foreach|remove-each|form|free|get|get-env|if|"
+            r"in|intersect|loop|minimum-of|maximum-of|mold|new-line|"
+            r"new-line\?|not|now|prin|print|reduce|compose|construct|repeat|"
+            r"reverse|save|script\?|set|shift|switch|throw|to-hex|trace|try|"
+            r"type\?|union|unique|unless|unprotect|unset|until|use|value\?|"
+            r"while|compress|decompress|secure|open|close|read|read-io|"
+            r"write-io|write|update|query|wait|input\?|exp|log-10|log-2|"
+            r"log-e|square-root|cosine|sine|tangent|arccosine|arcsine|"
+            r"arctangent|protect|lowercase|uppercase|entab|detab|connected\?|"
+            r"browse|launch|stats|get-modes|set-modes|to-local-file|"
+            r"to-rebol-file|encloak|decloak|create-link|do-browser|bind\?|"
+            r"hide|draw|show|size-text|textinfo|offset-to-caret|"
+            r"caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|"
+            r"crypt-strength\?|dh-make-key|dh-generate-key|dh-compute-key|"
+            r"dsa-make-key|dsa-generate-key|dsa-make-signature|"
+            r"dsa-verify-signature|rsa-make-key|rsa-generate-key|"
+            r"rsa-encrypt)$",
+            word,
+        ):
             yield match.start(), Name.Builtin, word
         elif re.match(
-            r'(add|subtract|multiply|divide|remainder|power|and~|or~|xor~|'
-            r'minimum|maximum|negate|complement|absolute|random|head|tail|'
-            r'next|back|skip|at|pick|first|second|third|fourth|fifth|sixth|'
-            r'seventh|eighth|ninth|tenth|last|path|find|select|make|to|copy\*|'
-            r'insert|remove|change|poke|clear|trim|sort|min|max|abs|cp|'
-            r'copy)$', word):
+            r"(add|subtract|multiply|divide|remainder|power|and~|or~|xor~|"
+            r"minimum|maximum|negate|complement|absolute|random|head|tail|"
+            r"next|back|skip|at|pick|first|second|third|fourth|fifth|sixth|"
+            r"seventh|eighth|ninth|tenth|last|path|find|select|make|to|copy\*|"
+            r"insert|remove|change|poke|clear|trim|sort|min|max|abs|cp|"
+            r"copy)$",
+            word,
+        ):
             yield match.start(), Name.Function, word
         elif re.match(
-            r'(error|source|input|license|help|install|echo|Usage|with|func|'
-            r'throw-on-error|function|does|has|context|probe|\?\?|as-pair|'
-            r'mod|modulo|round|repend|about|set-net|append|join|rejoin|reform|'
-            r'remold|charset|array|replace|move|extract|forskip|forall|alter|'
-            r'first+|also|take|for|forever|dispatch|attempt|what-dir|'
-            r'change-dir|clean-path|list-dir|dirize|rename|split-path|delete|'
-            r'make-dir|delete-dir|in-dir|confirm|dump-obj|upgrade|what|'
-            r'build-tag|process-source|build-markup|decode-cgi|read-cgi|'
-            r'write-user|save-user|set-user-name|protect-system|parse-xml|'
-            r'cvs-date|cvs-version|do-boot|get-net-info|desktop|layout|'
-            r'scroll-para|get-face|alert|set-face|uninstall|unfocus|'
-            r'request-dir|center-face|do-events|net-error|decode-url|'
-            r'parse-header|parse-header-date|parse-email-addrs|import-email|'
-            r'send|build-attach-body|resend|show-popup|hide-popup|open-events|'
-            r'find-key-face|do-face|viewtop|confine|find-window|'
-            r'insert-event-func|remove-event-func|inform|dump-pane|dump-face|'
-            r'flag-face|deflag-face|clear-fields|read-net|vbug|path-thru|'
-            r'read-thru|load-thru|do-thru|launch-thru|load-image|'
-            r'request-download|do-face-alt|set-font|set-para|get-style|'
-            r'set-style|make-face|stylize|choose|hilight-text|hilight-all|'
-            r'unlight-text|focus|scroll-drag|clear-face|reset-face|scroll-face|'
-            r'resize-face|load-stock|load-stock-block|notify|request|flash|'
-            r'request-color|request-pass|request-text|request-list|'
-            r'request-date|request-file|dbug|editor|link-relative-path|'
-            r'emailer|parse-error)$', word):
+            r"(error|source|input|license|help|install|echo|Usage|with|func|"
+            r"throw-on-error|function|does|has|context|probe|\?\?|as-pair|"
+            r"mod|modulo|round|repend|about|set-net|append|join|rejoin|reform|"
+            r"remold|charset|array|replace|move|extract|forskip|forall|alter|"
+            r"first+|also|take|for|forever|dispatch|attempt|what-dir|"
+            r"change-dir|clean-path|list-dir|dirize|rename|split-path|delete|"
+            r"make-dir|delete-dir|in-dir|confirm|dump-obj|upgrade|what|"
+            r"build-tag|process-source|build-markup|decode-cgi|read-cgi|"
+            r"write-user|save-user|set-user-name|protect-system|parse-xml|"
+            r"cvs-date|cvs-version|do-boot|get-net-info|desktop|layout|"
+            r"scroll-para|get-face|alert|set-face|uninstall|unfocus|"
+            r"request-dir|center-face|do-events|net-error|decode-url|"
+            r"parse-header|parse-header-date|parse-email-addrs|import-email|"
+            r"send|build-attach-body|resend|show-popup|hide-popup|open-events|"
+            r"find-key-face|do-face|viewtop|confine|find-window|"
+            r"insert-event-func|remove-event-func|inform|dump-pane|dump-face|"
+            r"flag-face|deflag-face|clear-fields|read-net|vbug|path-thru|"
+            r"read-thru|load-thru|do-thru|launch-thru|load-image|"
+            r"request-download|do-face-alt|set-font|set-para|get-style|"
+            r"set-style|make-face|stylize|choose|hilight-text|hilight-all|"
+            r"unlight-text|focus|scroll-drag|clear-face|reset-face|scroll-face|"
+            r"resize-face|load-stock|load-stock-block|notify|request|flash|"
+            r"request-color|request-pass|request-text|request-list|"
+            r"request-date|request-file|dbug|editor|link-relative-path|"
+            r"emailer|parse-error)$",
+            word,
+        ):
             yield match.start(), Keyword.Namespace, word
         elif re.match(
-            r'(halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|'
-            r'return|exit|break)$', word):
+            r"(halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|"
+            r"return|exit|break)$",
+            word,
+        ):
             yield match.start(), Name.Exception, word
-        elif re.match('REBOL$', word):
+        elif re.match("REBOL$", word):
             yield match.start(), Generic.Heading, word
         elif re.match("to-.*", word):
             yield match.start(), Keyword, word
-        elif re.match(r'(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
-                      word):
+        elif re.match(r"(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$", word):
             yield match.start(), Operator, word
         elif re.match(r".*\?$", word):
             yield match.start(), Keyword, word
@@ -118,110 +135,113 @@ class RebolLexer(RegexLexer):
             yield match.start(), Name.Variable, word
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
-            (r'#"', String.Char, 'char'),
-            (r'#\{[0-9a-f]*\}', Number.Hex),
-            (r'2#\{', Number.Hex, 'bin2'),
-            (r'64#\{[0-9a-z+/=\s]*\}', Number.Hex),
-            (r'"', String, 'string'),
-            (r'\{', String, 'string2'),
-            (r';#+.*\n', Comment.Special),
-            (r';\*+.*\n', Comment.Preproc),
-            (r';.*\n', Comment),
-            (r'%"', Name.Decorator, 'stringFile'),
+        "root": [
+            (r"\s+", Text),
+            (r'#"', String.Char, "char"),
+            (r"#\{[0-9a-f]*\}", Number.Hex),
+            (r"2#\{", Number.Hex, "bin2"),
+            (r"64#\{[0-9a-z+/=\s]*\}", Number.Hex),
+            (r'"', String, "string"),
+            (r"\{", String, "string2"),
+            (r";#+.*\n", Comment.Special),
+            (r";\*+.*\n", Comment.Preproc),
+            (r";.*\n", Comment),
+            (r'%"', Name.Decorator, "stringFile"),
             (r'%[^(^{")\s\[\]]+', Name.Decorator),
-            (r'[+-]?([a-z]{1,3})?\$\d+(\.\d+)?', Number.Float),  # money
-            (r'[+-]?\d+\:\d+(\:\d+)?(\.\d+)?', String.Other),    # time
-            (r'\d+[\-/][0-9a-z]+[\-/]\d+(\/\d+\:\d+((\:\d+)?'
-             r'([.\d+]?([+-]?\d+:\d+)?)?)?)?', String.Other),   # date
-            (r'\d+(\.\d+)+\.\d+', Keyword.Constant),             # tuple
-            (r'\d+X\d+', Keyword.Constant),                   # pair
-            (r'[+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+', Number.Float),
-            (r'[+-]?\d+(\'\d+)?[.,]\d*', Number.Float),
-            (r'[+-]?\d+(\'\d+)?', Number),
-            (r'[\[\]()]', Generic.Strong),
+            (r"[+-]?([a-z]{1,3})?\$\d+(\.\d+)?", Number.Float),  # money
+            (r"[+-]?\d+\:\d+(\:\d+)?(\.\d+)?", String.Other),  # time
+            (
+                r"\d+[\-/][0-9a-z]+[\-/]\d+(\/\d+\:\d+((\:\d+)?"
+                r"([.\d+]?([+-]?\d+:\d+)?)?)?)?",
+                String.Other,
+            ),  # date
+            (r"\d+(\.\d+)+\.\d+", Keyword.Constant),  # tuple
+            (r"\d+X\d+", Keyword.Constant),  # pair
+            (r"[+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+", Number.Float),
+            (r"[+-]?\d+(\'\d+)?[.,]\d*", Number.Float),
+            (r"[+-]?\d+(\'\d+)?", Number),
+            (r"[\[\]()]", Generic.Strong),
             (r'[a-z]+[^(^{"\s:)]*://[^(^{"\s)]*', Name.Decorator),  # url
             (r'mailto:[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),  # url
-            (r'[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),         # email
-            (r'comment\s"', Comment, 'commentString1'),
-            (r'comment\s\{', Comment, 'commentString2'),
-            (r'comment\s\[', Comment, 'commentBlock'),
+            (r'[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),  # email
+            (r'comment\s"', Comment, "commentString1"),
+            (r"comment\s\{", Comment, "commentString2"),
+            (r"comment\s\[", Comment, "commentBlock"),
             (r'comment\s[^(\s{"\[]+', Comment),
             (r'/[^(^{")\s/[\]]*', Name.Attribute),
             (r'([^(^{")\s/[\]]+)(?=[:({"\s/\[\]])', word_callback),
-            (r'<[\w:.-]*>', Name.Tag),
-            (r'<[^(<>\s")]+', Name.Tag, 'tag'),
+            (r"<[\w:.-]*>", Name.Tag),
+            (r'<[^(<>\s")]+', Name.Tag, "tag"),
             (r'([^(^{")\s]+)', Text),
         ],
-        'string': [
+        "string": [
             (r'[^(^")]+', String),
             (escape_re, String.Escape),
-            (r'[(|)]+', String),
-            (r'\^.', String.Escape),
-            (r'"', String, '#pop'),
+            (r"[(|)]+", String),
+            (r"\^.", String.Escape),
+            (r'"', String, "#pop"),
         ],
-        'string2': [
-            (r'[^(^{})]+', String),
+        "string2": [
+            (r"[^(^{})]+", String),
             (escape_re, String.Escape),
-            (r'[(|)]+', String),
-            (r'\^.', String.Escape),
-            (r'\{', String, '#push'),
-            (r'\}', String, '#pop'),
+            (r"[(|)]+", String),
+            (r"\^.", String.Escape),
+            (r"\{", String, "#push"),
+            (r"\}", String, "#pop"),
         ],
-        'stringFile': [
+        "stringFile": [
             (r'[^(^")]+', Name.Decorator),
             (escape_re, Name.Decorator),
-            (r'\^.', Name.Decorator),
-            (r'"', Name.Decorator, '#pop'),
+            (r"\^.", Name.Decorator),
+            (r'"', Name.Decorator, "#pop"),
         ],
-        'char': [
-            (escape_re + '"', String.Char, '#pop'),
-            (r'\^."', String.Char, '#pop'),
-            (r'."', String.Char, '#pop'),
+        "char": [
+            (escape_re + '"', String.Char, "#pop"),
+            (r'\^."', String.Char, "#pop"),
+            (r'."', String.Char, "#pop"),
         ],
-        'tag': [
+        "tag": [
             (escape_re, Name.Tag),
-            (r'"', Name.Tag, 'tagString'),
+            (r'"', Name.Tag, "tagString"),
             (r'[^(<>\r\n")]+', Name.Tag),
-            (r'>', Name.Tag, '#pop'),
+            (r">", Name.Tag, "#pop"),
         ],
-        'tagString': [
+        "tagString": [
             (r'[^(^")]+', Name.Tag),
             (escape_re, Name.Tag),
-            (r'[(|)]+', Name.Tag),
-            (r'\^.', Name.Tag),
-            (r'"', Name.Tag, '#pop'),
+            (r"[(|)]+", Name.Tag),
+            (r"\^.", Name.Tag),
+            (r'"', Name.Tag, "#pop"),
         ],
-        'tuple': [
-            (r'(\d+\.)+', Keyword.Constant),
-            (r'\d+', Keyword.Constant, '#pop'),
+        "tuple": [
+            (r"(\d+\.)+", Keyword.Constant),
+            (r"\d+", Keyword.Constant, "#pop"),
         ],
-        'bin2': [
-            (r'\s+', Number.Hex),
-            (r'([01]\s*){8}', Number.Hex),
-            (r'\}', Number.Hex, '#pop'),
+        "bin2": [
+            (r"\s+", Number.Hex),
+            (r"([01]\s*){8}", Number.Hex),
+            (r"\}", Number.Hex, "#pop"),
         ],
-        'commentString1': [
+        "commentString1": [
             (r'[^(^")]+', Comment),
             (escape_re, Comment),
-            (r'[(|)]+', Comment),
-            (r'\^.', Comment),
-            (r'"', Comment, '#pop'),
+            (r"[(|)]+", Comment),
+            (r"\^.", Comment),
+            (r'"', Comment, "#pop"),
         ],
-        'commentString2': [
-            (r'[^(^{})]+', Comment),
+        "commentString2": [
+            (r"[^(^{})]+", Comment),
             (escape_re, Comment),
-            (r'[(|)]+', Comment),
-            (r'\^.', Comment),
-            (r'\{', Comment, '#push'),
-            (r'\}', Comment, '#pop'),
+            (r"[(|)]+", Comment),
+            (r"\^.", Comment),
+            (r"\{", Comment, "#push"),
+            (r"\}", Comment, "#pop"),
         ],
-        'commentBlock': [
-            (r'\[', Comment, '#push'),
-            (r'\]', Comment, '#pop'),
+        "commentBlock": [
+            (r"\[", Comment, "#push"),
+            (r"\]", Comment, "#pop"),
             (r'"', Comment, "commentString1"),
-            (r'\{', Comment, "commentString2"),
+            (r"\{", Comment, "commentString2"),
             (r'[^(\[\]"{)]+', Comment),
         ],
     }
@@ -230,10 +250,10 @@ class RebolLexer(RegexLexer):
         """
         Check if code contains REBOL header and so it probably not R code
         """
-        if re.match(r'^\s*REBOL\s*\[', text, re.IGNORECASE):
+        if re.match(r"^\s*REBOL\s*\[", text, re.IGNORECASE):
             # The code starts with REBOL header
             return 1.0
-        elif re.search(r'\s*REBOL\s*\[', text, re.IGNORECASE):
+        elif re.search(r"\s*REBOL\s*\[", text, re.IGNORECASE):
             # The code contains REBOL header but also some text before it
             return 0.5
 
@@ -242,57 +262,79 @@ class RedLexer(RegexLexer):
     """
     A Red-language lexer.
     """
-    name = 'Red'
-    aliases = ['red', 'red/system']
-    filenames = ['*.red', '*.reds']
-    mimetypes = ['text/x-red', 'text/x-red-system']
-    url = 'https://www.red-lang.org'
-    version_added = '2.0'
+
+    name = "Red"
+    aliases = ["red", "red/system"]
+    filenames = ["*.red", "*.reds"]
+    mimetypes = ["text/x-red", "text/x-red-system"]
+    url = "https://www.red-lang.org"
+    version_added = "2.0"
 
     flags = re.IGNORECASE | re.MULTILINE
 
-    escape_re = r'(?:\^\([0-9a-f]{1,4}\)*)'
+    escape_re = r"(?:\^\([0-9a-f]{1,4}\)*)"
 
     def word_callback(lexer, match):
         word = match.group()
 
         if re.match(".*:$", word):
             yield match.start(), Generic.Subheading, word
-        elif re.match(r'(if|unless|either|any|all|while|until|loop|repeat|'
-                      r'foreach|forall|func|function|does|has|switch|'
-                      r'case|reduce|compose|get|set|print|prin|equal\?|'
-                      r'not-equal\?|strict-equal\?|lesser\?|greater\?|lesser-or-equal\?|'
-                      r'greater-or-equal\?|same\?|not|type\?|stats|'
-                      r'bind|union|replace|charset|routine)$', word):
+        elif re.match(
+            r"(if|unless|either|any|all|while|until|loop|repeat|"
+            r"foreach|forall|func|function|does|has|switch|"
+            r"case|reduce|compose|get|set|print|prin|equal\?|"
+            r"not-equal\?|strict-equal\?|lesser\?|greater\?|lesser-or-equal\?|"
+            r"greater-or-equal\?|same\?|not|type\?|stats|"
+            r"bind|union|replace|charset|routine)$",
+            word,
+        ):
             yield match.start(), Name.Builtin, word
-        elif re.match(r'(make|random|reflect|to|form|mold|absolute|add|divide|multiply|negate|'
-                      r'power|remainder|round|subtract|even\?|odd\?|and~|complement|or~|xor~|'
-                      r'append|at|back|change|clear|copy|find|head|head\?|index\?|insert|'
-                      r'length\?|next|pick|poke|remove|reverse|select|sort|skip|swap|tail|tail\?|'
-                      r'take|trim|create|close|delete|modify|open|open\?|query|read|rename|'
-                      r'update|write)$', word):
+        elif re.match(
+            r"(make|random|reflect|to|form|mold|absolute|add|divide|multiply|negate|"
+            r"power|remainder|round|subtract|even\?|odd\?|and~|complement|or~|xor~|"
+            r"append|at|back|change|clear|copy|find|head|head\?|index\?|insert|"
+            r"length\?|next|pick|poke|remove|reverse|select|sort|skip|swap|tail|tail\?|"
+            r"take|trim|create|close|delete|modify|open|open\?|query|read|rename|"
+            r"update|write)$",
+            word,
+        ):
             yield match.start(), Name.Function, word
-        elif re.match(r'(yes|on|no|off|true|false|tab|cr|lf|newline|escape|slash|sp|space|null|'
-                      r'none|crlf|dot|null-byte)$', word):
+        elif re.match(
+            r"(yes|on|no|off|true|false|tab|cr|lf|newline|escape|slash|sp|space|null|"
+            r"none|crlf|dot|null-byte)$",
+            word,
+        ):
             yield match.start(), Name.Builtin.Pseudo, word
-        elif re.match(r'(#system-global|#include|#enum|#define|#either|#if|#import|#export|'
-                      r'#switch|#default|#get-definition)$', word):
+        elif re.match(
+            r"(#system-global|#include|#enum|#define|#either|#if|#import|#export|"
+            r"#switch|#default|#get-definition)$",
+            word,
+        ):
             yield match.start(), Keyword.Namespace, word
-        elif re.match(r'(system|halt|quit|quit-return|do|load|q|recycle|call|run|ask|parse|'
-                      r'raise-error|return|exit|break|alias|push|pop|probe|\?\?|spec-of|body-of|'
-                      r'quote|forever)$', word):
+        elif re.match(
+            r"(system|halt|quit|quit-return|do|load|q|recycle|call|run|ask|parse|"
+            r"raise-error|return|exit|break|alias|push|pop|probe|\?\?|spec-of|body-of|"
+            r"quote|forever)$",
+            word,
+        ):
             yield match.start(), Name.Exception, word
-        elif re.match(r'(action\?|block\?|char\?|datatype\?|file\?|function\?|get-path\?|zero\?|'
-                      r'get-word\?|integer\?|issue\?|lit-path\?|lit-word\?|logic\?|native\?|'
-                      r'op\?|paren\?|path\?|refinement\?|set-path\?|set-word\?|string\?|unset\?|'
-                      r'any-struct\?|none\?|word\?|any-series\?)$', word):
+        elif re.match(
+            r"(action\?|block\?|char\?|datatype\?|file\?|function\?|get-path\?|zero\?|"
+            r"get-word\?|integer\?|issue\?|lit-path\?|lit-word\?|logic\?|native\?|"
+            r"op\?|paren\?|path\?|refinement\?|set-path\?|set-word\?|string\?|unset\?|"
+            r"any-struct\?|none\?|word\?|any-series\?)$",
+            word,
+        ):
             yield match.start(), Keyword, word
-        elif re.match(r'(JNICALL|stdcall|cdecl|infix)$', word):
+        elif re.match(r"(JNICALL|stdcall|cdecl|infix)$", word):
             yield match.start(), Keyword.Namespace, word
         elif re.match("to-.*", word):
             yield match.start(), Keyword, word
-        elif re.match(r'(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|'
-                      r'<<<|>>>|<<|>>|<|>%)$', word):
+        elif re.match(
+            r"(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|"
+            r"<<<|>>>|<<|>>|<|>%)$",
+            word,
+        ):
             yield match.start(), Operator, word
         elif re.match(r".*\!$", word):
             yield match.start(), Keyword.Type, word
@@ -308,112 +350,117 @@ class RedLexer(RegexLexer):
             yield match.start(), Name.Variable, word
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
-            (r'#"', String.Char, 'char'),
-            (r'#\{[0-9a-f\s]*\}', Number.Hex),
-            (r'2#\{', Number.Hex, 'bin2'),
-            (r'64#\{[0-9a-z+/=\s]*\}', Number.Hex),
-            (r'([0-9a-f]+)(h)((\s)|(?=[\[\]{}"()]))',
-             bygroups(Number.Hex, Name.Variable, Whitespace)),
-            (r'"', String, 'string'),
-            (r'\{', String, 'string2'),
-            (r';#+.*\n', Comment.Special),
-            (r';\*+.*\n', Comment.Preproc),
-            (r';.*\n', Comment),
-            (r'%"', Name.Decorator, 'stringFile'),
+        "root": [
+            (r"\s+", Text),
+            (r'#"', String.Char, "char"),
+            (r"#\{[0-9a-f\s]*\}", Number.Hex),
+            (r"2#\{", Number.Hex, "bin2"),
+            (r"64#\{[0-9a-z+/=\s]*\}", Number.Hex),
+            (
+                r'([0-9a-f]+)(h)((\s)|(?=[\[\]{}"()]))',
+                bygroups(Number.Hex, Name.Variable, Whitespace),
+            ),
+            (r'"', String, "string"),
+            (r"\{", String, "string2"),
+            (r";#+.*\n", Comment.Special),
+            (r";\*+.*\n", Comment.Preproc),
+            (r";.*\n", Comment),
+            (r'%"', Name.Decorator, "stringFile"),
             (r'%[^(^{")\s\[\]]+', Name.Decorator),
-            (r'[+-]?([a-z]{1,3})?\$\d+(\.\d+)?', Number.Float),  # money
-            (r'[+-]?\d+\:\d+(\:\d+)?(\.\d+)?', String.Other),    # time
-            (r'\d+[\-/][0-9a-z]+[\-/]\d+(/\d+:\d+((:\d+)?'
-             r'([\.\d+]?([+-]?\d+:\d+)?)?)?)?', String.Other),   # date
-            (r'\d+(\.\d+)+\.\d+', Keyword.Constant),             # tuple
-            (r'\d+X\d+', Keyword.Constant),                   # pair
-            (r'[+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+', Number.Float),
-            (r'[+-]?\d+(\'\d+)?[.,]\d*', Number.Float),
-            (r'[+-]?\d+(\'\d+)?', Number),
-            (r'[\[\]()]', Generic.Strong),
+            (r"[+-]?([a-z]{1,3})?\$\d+(\.\d+)?", Number.Float),  # money
+            (r"[+-]?\d+\:\d+(\:\d+)?(\.\d+)?", String.Other),  # time
+            (
+                r"\d+[\-/][0-9a-z]+[\-/]\d+(/\d+:\d+((:\d+)?"
+                r"([\.\d+]?([+-]?\d+:\d+)?)?)?)?",
+                String.Other,
+            ),  # date
+            (r"\d+(\.\d+)+\.\d+", Keyword.Constant),  # tuple
+            (r"\d+X\d+", Keyword.Constant),  # pair
+            (r"[+-]?\d+(\'\d+)?([.,]\d*)?E[+-]?\d+", Number.Float),
+            (r"[+-]?\d+(\'\d+)?[.,]\d*", Number.Float),
+            (r"[+-]?\d+(\'\d+)?", Number),
+            (r"[\[\]()]", Generic.Strong),
             (r'[a-z]+[^(^{"\s:)]*://[^(^{"\s)]*', Name.Decorator),  # url
             (r'mailto:[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),  # url
-            (r'[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),         # email
-            (r'comment\s"', Comment, 'commentString1'),
-            (r'comment\s\{', Comment, 'commentString2'),
-            (r'comment\s\[', Comment, 'commentBlock'),
+            (r'[^(^{"@\s)]+@[^(^{"@\s)]+', Name.Decorator),  # email
+            (r'comment\s"', Comment, "commentString1"),
+            (r"comment\s\{", Comment, "commentString2"),
+            (r"comment\s\[", Comment, "commentBlock"),
             (r'comment\s[^(\s{"\[]+', Comment),
             (r'/[^(^{^")\s/[\]]*', Name.Attribute),
             (r'([^(^{^")\s/[\]]+)(?=[:({"\s/\[\]])', word_callback),
-            (r'<[\w:.-]*>', Name.Tag),
-            (r'<[^(<>\s")]+', Name.Tag, 'tag'),
+            (r"<[\w:.-]*>", Name.Tag),
+            (r'<[^(<>\s")]+', Name.Tag, "tag"),
             (r'([^(^{")\s]+)', Text),
         ],
-        'string': [
+        "string": [
             (r'[^(^")]+', String),
             (escape_re, String.Escape),
-            (r'[(|)]+', String),
-            (r'\^.', String.Escape),
-            (r'"', String, '#pop'),
+            (r"[(|)]+", String),
+            (r"\^.", String.Escape),
+            (r'"', String, "#pop"),
         ],
-        'string2': [
-            (r'[^(^{})]+', String),
+        "string2": [
+            (r"[^(^{})]+", String),
             (escape_re, String.Escape),
-            (r'[(|)]+', String),
-            (r'\^.', String.Escape),
-            (r'\{', String, '#push'),
-            (r'\}', String, '#pop'),
+            (r"[(|)]+", String),
+            (r"\^.", String.Escape),
+            (r"\{", String, "#push"),
+            (r"\}", String, "#pop"),
         ],
-        'stringFile': [
+        "stringFile": [
             (r'[^(^")]+', Name.Decorator),
             (escape_re, Name.Decorator),
-            (r'\^.', Name.Decorator),
-            (r'"', Name.Decorator, '#pop'),
+            (r"\^.", Name.Decorator),
+            (r'"', Name.Decorator, "#pop"),
         ],
-        'char': [
-            (escape_re + '"', String.Char, '#pop'),
-            (r'\^."', String.Char, '#pop'),
-            (r'."', String.Char, '#pop'),
+        "char": [
+            (escape_re + '"', String.Char, "#pop"),
+            (r'\^."', String.Char, "#pop"),
+            (r'."', String.Char, "#pop"),
         ],
-        'tag': [
+        "tag": [
             (escape_re, Name.Tag),
-            (r'"', Name.Tag, 'tagString'),
+            (r'"', Name.Tag, "tagString"),
             (r'[^(<>\r\n")]+', Name.Tag),
-            (r'>', Name.Tag, '#pop'),
+            (r">", Name.Tag, "#pop"),
         ],
-        'tagString': [
+        "tagString": [
             (r'[^(^")]+', Name.Tag),
             (escape_re, Name.Tag),
-            (r'[(|)]+', Name.Tag),
-            (r'\^.', Name.Tag),
-            (r'"', Name.Tag, '#pop'),
+            (r"[(|)]+", Name.Tag),
+            (r"\^.", Name.Tag),
+            (r'"', Name.Tag, "#pop"),
         ],
-        'tuple': [
-            (r'(\d+\.)+', Keyword.Constant),
-            (r'\d+', Keyword.Constant, '#pop'),
+        "tuple": [
+            (r"(\d+\.)+", Keyword.Constant),
+            (r"\d+", Keyword.Constant, "#pop"),
         ],
-        'bin2': [
-            (r'\s+', Number.Hex),
-            (r'([01]\s*){8}', Number.Hex),
-            (r'\}', Number.Hex, '#pop'),
+        "bin2": [
+            (r"\s+", Number.Hex),
+            (r"([01]\s*){8}", Number.Hex),
+            (r"\}", Number.Hex, "#pop"),
         ],
-        'commentString1': [
+        "commentString1": [
             (r'[^(^")]+', Comment),
             (escape_re, Comment),
-            (r'[(|)]+', Comment),
-            (r'\^.', Comment),
-            (r'"', Comment, '#pop'),
+            (r"[(|)]+", Comment),
+            (r"\^.", Comment),
+            (r'"', Comment, "#pop"),
         ],
-        'commentString2': [
-            (r'[^(^{})]+', Comment),
+        "commentString2": [
+            (r"[^(^{})]+", Comment),
             (escape_re, Comment),
-            (r'[(|)]+', Comment),
-            (r'\^.', Comment),
-            (r'\{', Comment, '#push'),
-            (r'\}', Comment, '#pop'),
+            (r"[(|)]+", Comment),
+            (r"\^.", Comment),
+            (r"\{", Comment, "#push"),
+            (r"\}", Comment, "#pop"),
         ],
-        'commentBlock': [
-            (r'\[', Comment, '#push'),
-            (r'\]', Comment, '#pop'),
+        "commentBlock": [
+            (r"\[", Comment, "#push"),
+            (r"\]", Comment, "#pop"),
             (r'"', Comment, "commentString1"),
-            (r'\{', Comment, "commentString2"),
+            (r"\{", Comment, "commentString2"),
             (r'[^(\[\]"{)]+', Comment),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rego.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rego.py
index 6f2e3e9..f9dbf8a 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rego.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rego.py
@@ -1,57 +1,79 @@
 """
-    pygments.lexers.rego
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rego
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Rego policy languages.
+Lexers for the Rego policy languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Comment, Operator, Keyword, Name, String, Number, Punctuation, Whitespace
+from pygments.token import (
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
+
 
 class RegoLexer(RegexLexer):
     """
     For Rego source.
     """
-    name = 'Rego'
-    url = 'https://www.openpolicyagent.org/docs/latest/policy-language/'
-    filenames = ['*.rego']
-    aliases = ['rego']
-    mimetypes = ['text/x-rego']
-    version_added = '2.19'
+
+    name = "Rego"
+    url = "https://www.openpolicyagent.org/docs/latest/policy-language/"
+    filenames = ["*.rego"]
+    aliases = ["rego"]
+    mimetypes = ["text/x-rego"]
+    version_added = "2.19"
 
     reserved_words = (
-        'as', 'contains', 'data', 'default', 'else', 'every', 'false',
-        'if', 'in', 'import', 'package', 'not', 'null',
-        'some', 'true', 'with'
+        "as",
+        "contains",
+        "data",
+        "default",
+        "else",
+        "every",
+        "false",
+        "if",
+        "in",
+        "import",
+        "package",
+        "not",
+        "null",
+        "some",
+        "true",
+        "with",
     )
 
     builtins = (
         # https://www.openpolicyagent.org/docs/latest/philosophy/#the-opa-document-model
-        'data',  # Global variable for accessing base and virtual documents
-        'input', # Represents synchronously pushed base documents
+        "data",  # Global variable for accessing base and virtual documents
+        "input",  # Represents synchronously pushed base documents
     )
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
-            (r'#.*?$', Comment.Single),
-            (words(reserved_words, suffix=r'\b'), Keyword),
-            (words(builtins, suffix=r'\b'), Name.Builtin),
-            (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
+        "root": [
+            (r"\n", Whitespace),
+            (r"\s+", Whitespace),
+            (r"#.*?$", Comment.Single),
+            (words(reserved_words, suffix=r"\b"), Keyword),
+            (words(builtins, suffix=r"\b"), Name.Builtin),
+            (r"[a-zA-Z_][a-zA-Z0-9_]*", Name),
             (r'"(\\\\|\\"|[^"])*"', String.Double),
-            (r'`[^`]*`', String.Backtick),
-            (r'-?\d+(\.\d+)?', Number),
-            (r'(==|!=|<=|>=|:=)', Operator),  # Compound operators
-            (r'[=<>+\-*/%&|]', Operator),     # Single-character operators
-            (r'[\[\]{}(),.:;]', Punctuation),
+            (r"`[^`]*`", String.Backtick),
+            (r"-?\d+(\.\d+)?", Number),
+            (r"(==|!=|<=|>=|:=)", Operator),  # Compound operators
+            (r"[=<>+\-*/%&|]", Operator),  # Single-character operators
+            (r"[\[\]{}(),.:;]", Punctuation),
         ]
     }
 
-__all__ = ['RegoLexer']
-
-
 
+__all__ = ["RegoLexer"]
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/resource.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/resource.py
index 9593c21..764e55a 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/resource.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/resource.py
@@ -1,83 +1,124 @@
 """
-    pygments.lexers.resource
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.resource
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for resource definition files.
+Lexer for resource definition files.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
 from pygments.lexer import RegexLexer, bygroups, words
-from pygments.token import Comment, String, Number, Operator, Text, \
-    Keyword, Name
+from pygments.token import Comment, String, Number, Operator, Text, Keyword, Name
 
-__all__ = ['ResourceLexer']
+__all__ = ["ResourceLexer"]
 
 
 class ResourceLexer(RegexLexer):
-    """Lexer for ICU Resource bundles.
-    """
-    name = 'ResourceBundle'
-    aliases = ['resourcebundle', 'resource']
-    filenames = []
-    url = 'https://unicode-org.github.io/icu/userguide/locale/resources.html'
-    version_added = '2.0'
+    """Lexer for ICU Resource bundles."""
 
-    _types = (':table', ':array', ':string', ':bin', ':import', ':intvector',
-              ':int', ':alias')
+    name = "ResourceBundle"
+    aliases = ["resourcebundle", "resource"]
+    filenames = []
+    url = "https://unicode-org.github.io/icu/userguide/locale/resources.html"
+    version_added = "2.0"
+
+    _types = (
+        ":table",
+        ":array",
+        ":string",
+        ":bin",
+        ":import",
+        ":intvector",
+        ":int",
+        ":alias",
+    )
 
     flags = re.MULTILINE | re.IGNORECASE
     tokens = {
-        'root': [
-            (r'//.*?$', Comment),
-            (r'"', String, 'string'),
-            (r'-?\d+', Number.Integer),
-            (r'[,{}]', Operator),
-            (r'([^\s{{:]+)(\s*)({}?)'.format('|'.join(_types)),
-             bygroups(Name, Text, Keyword)),
-            (r'\s+', Text),
+        "root": [
+            (r"//.*?$", Comment),
+            (r'"', String, "string"),
+            (r"-?\d+", Number.Integer),
+            (r"[,{}]", Operator),
+            (
+                r"([^\s{{:]+)(\s*)({}?)".format("|".join(_types)),
+                bygroups(Name, Text, Keyword),
+            ),
+            (r"\s+", Text),
             (words(_types), Keyword),
         ],
-        'string': [
-            (r'(\\x[0-9a-f]{2}|\\u[0-9a-f]{4}|\\U00[0-9a-f]{6}|'
-             r'\\[0-7]{1,3}|\\c.|\\[abtnvfre\'"?\\]|\\\{|[^"{\\])+', String),
-            (r'\{', String.Escape, 'msgname'),
-            (r'"', String, '#pop')
+        "string": [
+            (
+                r"(\\x[0-9a-f]{2}|\\u[0-9a-f]{4}|\\U00[0-9a-f]{6}|"
+                r'\\[0-7]{1,3}|\\c.|\\[abtnvfre\'"?\\]|\\\{|[^"{\\])+',
+                String,
+            ),
+            (r"\{", String.Escape, "msgname"),
+            (r'"', String, "#pop"),
         ],
-        'msgname': [
-            (r'([^{},]+)(\s*)', bygroups(Name, String.Escape), ('#pop', 'message'))
+        "msgname": [
+            (r"([^{},]+)(\s*)", bygroups(Name, String.Escape), ("#pop", "message"))
         ],
-        'message': [
-            (r'\{', String.Escape, 'msgname'),
-            (r'\}', String.Escape, '#pop'),
-            (r'(,)(\s*)([a-z]+)(\s*\})',
-             bygroups(Operator, String.Escape, Keyword, String.Escape), '#pop'),
-            (r'(,)(\s*)([a-z]+)(\s*)(,)(\s*)(offset)(\s*)(:)(\s*)(-?\d+)(\s*)',
-             bygroups(Operator, String.Escape, Keyword, String.Escape, Operator,
-                      String.Escape, Operator.Word, String.Escape, Operator,
-                      String.Escape, Number.Integer, String.Escape), 'choice'),
-            (r'(,)(\s*)([a-z]+)(\s*)(,)(\s*)',
-             bygroups(Operator, String.Escape, Keyword, String.Escape, Operator,
-                      String.Escape), 'choice'),
-            (r'\s+', String.Escape)
+        "message": [
+            (r"\{", String.Escape, "msgname"),
+            (r"\}", String.Escape, "#pop"),
+            (
+                r"(,)(\s*)([a-z]+)(\s*\})",
+                bygroups(Operator, String.Escape, Keyword, String.Escape),
+                "#pop",
+            ),
+            (
+                r"(,)(\s*)([a-z]+)(\s*)(,)(\s*)(offset)(\s*)(:)(\s*)(-?\d+)(\s*)",
+                bygroups(
+                    Operator,
+                    String.Escape,
+                    Keyword,
+                    String.Escape,
+                    Operator,
+                    String.Escape,
+                    Operator.Word,
+                    String.Escape,
+                    Operator,
+                    String.Escape,
+                    Number.Integer,
+                    String.Escape,
+                ),
+                "choice",
+            ),
+            (
+                r"(,)(\s*)([a-z]+)(\s*)(,)(\s*)",
+                bygroups(
+                    Operator,
+                    String.Escape,
+                    Keyword,
+                    String.Escape,
+                    Operator,
+                    String.Escape,
+                ),
+                "choice",
+            ),
+            (r"\s+", String.Escape),
         ],
-        'choice': [
-            (r'(=|<|>|<=|>=|!=)(-?\d+)(\s*\{)',
-             bygroups(Operator, Number.Integer, String.Escape), 'message'),
-            (r'([a-z]+)(\s*\{)', bygroups(Keyword.Type, String.Escape), 'str'),
-            (r'\}', String.Escape, ('#pop', '#pop')),
-            (r'\s+', String.Escape)
+        "choice": [
+            (
+                r"(=|<|>|<=|>=|!=)(-?\d+)(\s*\{)",
+                bygroups(Operator, Number.Integer, String.Escape),
+                "message",
+            ),
+            (r"([a-z]+)(\s*\{)", bygroups(Keyword.Type, String.Escape), "str"),
+            (r"\}", String.Escape, ("#pop", "#pop")),
+            (r"\s+", String.Escape),
+        ],
+        "str": [
+            (r"\}", String.Escape, "#pop"),
+            (r"\{", String.Escape, "msgname"),
+            (r"[^{}]+", String),
         ],
-        'str': [
-            (r'\}', String.Escape, '#pop'),
-            (r'\{', String.Escape, 'msgname'),
-            (r'[^{}]+', String)
-        ]
     }
 
     def analyse_text(text):
-        if text.startswith('root:table'):
+        if text.startswith("root:table"):
             return 1.0
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ride.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ride.py
index 4d60c29..7a9063e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ride.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ride.py
@@ -1,18 +1,17 @@
 """
-    pygments.lexers.ride
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.ride
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the Ride programming language.
+Lexer for the Ride programming language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words, include
-from pygments.token import Comment, Keyword, Name, Number, Punctuation, \
-    String, Text
+from pygments.token import Comment, Keyword, Name, Number, Punctuation, String, Text
 
-__all__ = ['RideLexer']
+__all__ = ["RideLexer"]
 
 
 class RideLexer(RegexLexer):
@@ -20,119 +19,257 @@ class RideLexer(RegexLexer):
     For Ride source code.
     """
 
-    name = 'Ride'
-    aliases = ['ride']
-    filenames = ['*.ride']
-    mimetypes = ['text/x-ride']
-    url = 'https://docs.waves.tech/en/ride'
-    version_added = '2.6'
+    name = "Ride"
+    aliases = ["ride"]
+    filenames = ["*.ride"]
+    mimetypes = ["text/x-ride"]
+    url = "https://docs.waves.tech/en/ride"
+    version_added = "2.6"
 
-    validName = r'[a-zA-Z_][a-zA-Z0-9_\']*'
+    validName = r"[a-zA-Z_][a-zA-Z0-9_\']*"
 
     builtinOps = (
-        '||', '|', '>=', '>', '==', '!',
-        '=', '<=', '<', '::', ':+', ':', '!=', '/',
-        '.', '=>', '-', '+', '*', '&&', '%', '++',
+        "||",
+        "|",
+        ">=",
+        ">",
+        "==",
+        "!",
+        "=",
+        "<=",
+        "<",
+        "::",
+        ":+",
+        ":",
+        "!=",
+        "/",
+        ".",
+        "=>",
+        "-",
+        "+",
+        "*",
+        "&&",
+        "%",
+        "++",
     )
 
     globalVariablesName = (
-        'NOALG', 'MD5', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512',
-        'SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'nil', 'this', 'unit',
-        'height', 'lastBlock', 'Buy', 'Sell', 'CEILING', 'FLOOR', 'DOWN',
-        'HALFDOWN', 'HALFEVEN', 'HALFUP', 'UP',
+        "NOALG",
+        "MD5",
+        "SHA1",
+        "SHA224",
+        "SHA256",
+        "SHA384",
+        "SHA512",
+        "SHA3224",
+        "SHA3256",
+        "SHA3384",
+        "SHA3512",
+        "nil",
+        "this",
+        "unit",
+        "height",
+        "lastBlock",
+        "Buy",
+        "Sell",
+        "CEILING",
+        "FLOOR",
+        "DOWN",
+        "HALFDOWN",
+        "HALFEVEN",
+        "HALFUP",
+        "UP",
     )
 
     typesName = (
-        'Unit', 'Int', 'Boolean', 'ByteVector', 'String', 'Address', 'Alias',
-        'Transfer', 'AssetPair', 'DataEntry', 'Order', 'Transaction',
-        'GenesisTransaction', 'PaymentTransaction', 'ReissueTransaction',
-        'BurnTransaction', 'MassTransferTransaction', 'ExchangeTransaction',
-        'TransferTransaction', 'SetAssetScriptTransaction',
-        'InvokeScriptTransaction', 'IssueTransaction', 'LeaseTransaction',
-        'LeaseCancelTransaction', 'CreateAliasTransaction',
-        'SetScriptTransaction', 'SponsorFeeTransaction', 'DataTransaction',
-        'WriteSet', 'AttachedPayment', 'ScriptTransfer', 'TransferSet',
-        'ScriptResult', 'Invocation', 'Asset', 'BlockInfo', 'Issue', 'Reissue',
-        'Burn', 'NoAlg', 'Md5', 'Sha1', 'Sha224', 'Sha256', 'Sha384', 'Sha512',
-        'Sha3224', 'Sha3256', 'Sha3384', 'Sha3512', 'BinaryEntry',
-        'BooleanEntry', 'IntegerEntry', 'StringEntry', 'List', 'Ceiling',
-        'Down', 'Floor', 'HalfDown', 'HalfEven', 'HalfUp', 'Up',
+        "Unit",
+        "Int",
+        "Boolean",
+        "ByteVector",
+        "String",
+        "Address",
+        "Alias",
+        "Transfer",
+        "AssetPair",
+        "DataEntry",
+        "Order",
+        "Transaction",
+        "GenesisTransaction",
+        "PaymentTransaction",
+        "ReissueTransaction",
+        "BurnTransaction",
+        "MassTransferTransaction",
+        "ExchangeTransaction",
+        "TransferTransaction",
+        "SetAssetScriptTransaction",
+        "InvokeScriptTransaction",
+        "IssueTransaction",
+        "LeaseTransaction",
+        "LeaseCancelTransaction",
+        "CreateAliasTransaction",
+        "SetScriptTransaction",
+        "SponsorFeeTransaction",
+        "DataTransaction",
+        "WriteSet",
+        "AttachedPayment",
+        "ScriptTransfer",
+        "TransferSet",
+        "ScriptResult",
+        "Invocation",
+        "Asset",
+        "BlockInfo",
+        "Issue",
+        "Reissue",
+        "Burn",
+        "NoAlg",
+        "Md5",
+        "Sha1",
+        "Sha224",
+        "Sha256",
+        "Sha384",
+        "Sha512",
+        "Sha3224",
+        "Sha3256",
+        "Sha3384",
+        "Sha3512",
+        "BinaryEntry",
+        "BooleanEntry",
+        "IntegerEntry",
+        "StringEntry",
+        "List",
+        "Ceiling",
+        "Down",
+        "Floor",
+        "HalfDown",
+        "HalfEven",
+        "HalfUp",
+        "Up",
     )
 
     functionsName = (
-        'fraction', 'size', 'toBytes', 'take', 'drop', 'takeRight', 'dropRight',
-        'toString', 'isDefined', 'extract', 'throw', 'getElement', 'value',
-        'cons', 'toUtf8String', 'toInt', 'indexOf', 'lastIndexOf', 'split',
-        'parseInt', 'parseIntValue', 'keccak256', 'blake2b256', 'sha256',
-        'sigVerify', 'toBase58String', 'fromBase58String', 'toBase64String',
-        'fromBase64String', 'transactionById', 'transactionHeightById',
-        'getInteger', 'getBoolean', 'getBinary', 'getString',
-        'addressFromPublicKey', 'addressFromString', 'addressFromRecipient',
-        'assetBalance', 'wavesBalance', 'getIntegerValue', 'getBooleanValue',
-        'getBinaryValue', 'getStringValue', 'addressFromStringValue',
-        'assetInfo', 'rsaVerify', 'checkMerkleProof', 'median',
-        'valueOrElse', 'valueOrErrorMessage', 'contains', 'log', 'pow',
-        'toBase16String', 'fromBase16String', 'blockInfoByHeight',
-        'transferTransactionById',
+        "fraction",
+        "size",
+        "toBytes",
+        "take",
+        "drop",
+        "takeRight",
+        "dropRight",
+        "toString",
+        "isDefined",
+        "extract",
+        "throw",
+        "getElement",
+        "value",
+        "cons",
+        "toUtf8String",
+        "toInt",
+        "indexOf",
+        "lastIndexOf",
+        "split",
+        "parseInt",
+        "parseIntValue",
+        "keccak256",
+        "blake2b256",
+        "sha256",
+        "sigVerify",
+        "toBase58String",
+        "fromBase58String",
+        "toBase64String",
+        "fromBase64String",
+        "transactionById",
+        "transactionHeightById",
+        "getInteger",
+        "getBoolean",
+        "getBinary",
+        "getString",
+        "addressFromPublicKey",
+        "addressFromString",
+        "addressFromRecipient",
+        "assetBalance",
+        "wavesBalance",
+        "getIntegerValue",
+        "getBooleanValue",
+        "getBinaryValue",
+        "getStringValue",
+        "addressFromStringValue",
+        "assetInfo",
+        "rsaVerify",
+        "checkMerkleProof",
+        "median",
+        "valueOrElse",
+        "valueOrErrorMessage",
+        "contains",
+        "log",
+        "pow",
+        "toBase16String",
+        "fromBase16String",
+        "blockInfoByHeight",
+        "transferTransactionById",
     )
 
-    reservedWords = words((
-        'match', 'case', 'else', 'func', 'if',
-        'let', 'then', '@Callable', '@Verifier',
-    ), suffix=r'\b')
+    reservedWords = words(
+        (
+            "match",
+            "case",
+            "else",
+            "func",
+            "if",
+            "let",
+            "then",
+            "@Callable",
+            "@Verifier",
+        ),
+        suffix=r"\b",
+    )
 
     tokens = {
-        'root': [
+        "root": [
             # Comments
-            (r'#.*', Comment.Single),
+            (r"#.*", Comment.Single),
             # Whitespace
-            (r'\s+', Text),
+            (r"\s+", Text),
             # Strings
-            (r'"', String, 'doublequote'),
-            (r'utf8\'', String, 'utf8quote'),
-            (r'base(58|64|16)\'', String, 'singlequote'),
+            (r'"', String, "doublequote"),
+            (r"utf8\'", String, "utf8quote"),
+            (r"base(58|64|16)\'", String, "singlequote"),
             # Keywords
             (reservedWords, Keyword.Reserved),
-            (r'\{-#.*?#-\}', Keyword.Reserved),
-            (r'FOLD<\d+>', Keyword.Reserved),
+            (r"\{-#.*?#-\}", Keyword.Reserved),
+            (r"FOLD<\d+>", Keyword.Reserved),
             # Types
             (words(typesName), Keyword.Type),
             # Main
             # (specialName, Keyword.Reserved),
             # Prefix Operators
-            (words(builtinOps, prefix=r'\(', suffix=r'\)'), Name.Function),
+            (words(builtinOps, prefix=r"\(", suffix=r"\)"), Name.Function),
             # Infix Operators
             (words(builtinOps), Name.Function),
             (words(globalVariablesName), Name.Function),
             (words(functionsName), Name.Function),
             # Numbers
-            include('numbers'),
+            include("numbers"),
             # Variable Names
             (validName, Name.Variable),
             # Parens
-            (r'[,()\[\]{}]', Punctuation),
+            (r"[,()\[\]{}]", Punctuation),
         ],
-
-        'doublequote': [
-            (r'\\u[0-9a-fA-F]{4}', String.Escape),
+        "doublequote": [
+            (r"\\u[0-9a-fA-F]{4}", String.Escape),
             (r'\\[nrfvb\\"]', String.Escape),
             (r'[^"]', String),
-            (r'"', String, '#pop'),
+            (r'"', String, "#pop"),
         ],
-
-        'utf8quote': [
-            (r'\\u[0-9a-fA-F]{4}', String.Escape),
-            (r'\\[nrfvb\\\']', String.Escape),
-            (r'[^\']', String),
-            (r'\'', String, '#pop'),
+        "utf8quote": [
+            (r"\\u[0-9a-fA-F]{4}", String.Escape),
+            (r"\\[nrfvb\\\']", String.Escape),
+            (r"[^\']", String),
+            (r"\'", String, "#pop"),
         ],
-
-        'singlequote': [
-            (r'[^\']', String),
-            (r'\'', String, '#pop'),
+        "singlequote": [
+            (r"[^\']", String),
+            (r"\'", String, "#pop"),
         ],
-
-        'numbers': [
-            (r'_?\d+', Number.Integer),
+        "numbers": [
+            (r"_?\d+", Number.Integer),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rita.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rita.py
index 536aaff..70bf547 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rita.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rita.py
@@ -1,42 +1,50 @@
 """
-    pygments.lexers.rita
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rita
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for RITA language
+Lexers for RITA language
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer
-from pygments.token import Comment, Operator, Keyword, Name, Literal, \
-    Punctuation, Whitespace
+from pygments.token import (
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    Literal,
+    Punctuation,
+    Whitespace,
+)
 
-__all__ = ['RitaLexer']
+__all__ = ["RitaLexer"]
 
 
 class RitaLexer(RegexLexer):
     """
     Lexer for RITA.
     """
-    name = 'Rita'
-    url = 'https://github.com/zaibacu/rita-dsl'
-    filenames = ['*.rita']
-    aliases = ['rita']
-    mimetypes = ['text/rita']
-    version_added = '2.11'
+
+    name = "Rita"
+    url = "https://github.com/zaibacu/rita-dsl"
+    filenames = ["*.rita"]
+    aliases = ["rita"]
+    mimetypes = ["text/rita"]
+    version_added = "2.11"
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
-            (r'#(.*?)\n', Comment.Single),
-            (r'@(.*?)\n', Operator),  # Yes, whole line as an operator
+        "root": [
+            (r"\n", Whitespace),
+            (r"\s+", Whitespace),
+            (r"#(.*?)\n", Comment.Single),
+            (r"@(.*?)\n", Operator),  # Yes, whole line as an operator
             (r'"(\w|\d|\s|(\\")|[\'_\-./,\?\!])+?"', Literal),
             (r'\'(\w|\d|\s|(\\\')|["_\-./,\?\!])+?\'', Literal),
-            (r'([A-Z_]+)', Keyword),
-            (r'([a-z0-9_]+)', Name),
-            (r'((->)|[!?+*|=])', Operator),
-            (r'[\(\),\{\}]', Punctuation)
+            (r"([A-Z_]+)", Keyword),
+            (r"([a-z0-9_]+)", Name),
+            (r"((->)|[!?+*|=])", Operator),
+            (r"[\(\),\{\}]", Punctuation),
         ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rnc.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rnc.py
index b7a06bb..a82a402 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rnc.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rnc.py
@@ -1,18 +1,17 @@
 """
-    pygments.lexers.rnc
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rnc
+~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Relax-NG Compact syntax
+Lexer for Relax-NG Compact syntax
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Punctuation
+from pygments.token import Text, Comment, Operator, Keyword, Name, String, Punctuation
 
-__all__ = ['RNCCompactLexer']
+__all__ = ["RNCCompactLexer"]
 
 
 class RNCCompactLexer(RegexLexer):
@@ -20,47 +19,44 @@ class RNCCompactLexer(RegexLexer):
     For RelaxNG-compact syntax.
     """
 
-    name = 'Relax-NG Compact'
-    url = 'http://relaxng.org'
-    aliases = ['rng-compact', 'rnc']
-    filenames = ['*.rnc']
-    version_added = '2.2'
+    name = "Relax-NG Compact"
+    url = "http://relaxng.org"
+    aliases = ["rng-compact", "rnc"]
+    filenames = ["*.rnc"]
+    version_added = "2.2"
 
     tokens = {
-        'root': [
-            (r'namespace\b', Keyword.Namespace),
-            (r'(?:default|datatypes)\b', Keyword.Declaration),
-            (r'##.*$', Comment.Preproc),
-            (r'#.*$', Comment.Single),
+        "root": [
+            (r"namespace\b", Keyword.Namespace),
+            (r"(?:default|datatypes)\b", Keyword.Declaration),
+            (r"##.*$", Comment.Preproc),
+            (r"#.*$", Comment.Single),
             (r'"[^"]*"', String.Double),
             # TODO single quoted strings and escape sequences outside of
             # double-quoted strings
-            (r'(?:element|attribute|mixed)\b', Keyword.Declaration, 'variable'),
-            (r'(text\b|xsd:[^ ]+)', Keyword.Type, 'maybe_xsdattributes'),
-            (r'[,?&*=|~]|>>', Operator),
-            (r'[(){}]', Punctuation),
-            (r'.', Text),
+            (r"(?:element|attribute|mixed)\b", Keyword.Declaration, "variable"),
+            (r"(text\b|xsd:[^ ]+)", Keyword.Type, "maybe_xsdattributes"),
+            (r"[,?&*=|~]|>>", Operator),
+            (r"[(){}]", Punctuation),
+            (r".", Text),
         ],
-
         # a variable has been declared using `element` or `attribute`
-        'variable': [
-            (r'[^{]+', Name.Variable),
-            (r'\{', Punctuation, '#pop'),
+        "variable": [
+            (r"[^{]+", Name.Variable),
+            (r"\{", Punctuation, "#pop"),
         ],
-
         # after an xsd: declaration there may be attributes
-        'maybe_xsdattributes': [
-            (r'\{', Punctuation, 'xsdattributes'),
-            (r'\}', Punctuation, '#pop'),
-            (r'.', Text),
+        "maybe_xsdattributes": [
+            (r"\{", Punctuation, "xsdattributes"),
+            (r"\}", Punctuation, "#pop"),
+            (r".", Text),
         ],
-
         # attributes take the form { key1 = value1 key2 = value2 ... }
-        'xsdattributes': [
-            (r'[^ =}]', Name.Attribute),
-            (r'=', Operator),
+        "xsdattributes": [
+            (r"[^ =}]", Name.Attribute),
+            (r"=", Operator),
             (r'"[^"]*"', String.Double),
-            (r'\}', Punctuation, '#pop'),
-            (r'.', Text),
+            (r"\}", Punctuation, "#pop"),
+            (r".", Text),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/roboconf.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/roboconf.py
index 31adba9..6cdbf32 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/roboconf.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/roboconf.py
@@ -1,50 +1,59 @@
 """
-    pygments.lexers.roboconf
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.roboconf
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Roboconf DSL.
+Lexers for Roboconf DSL.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words, re
 from pygments.token import Text, Operator, Keyword, Name, Comment
 
-__all__ = ['RoboconfGraphLexer', 'RoboconfInstancesLexer']
+__all__ = ["RoboconfGraphLexer", "RoboconfInstancesLexer"]
 
 
 class RoboconfGraphLexer(RegexLexer):
     """
     Lexer for Roboconf graph files.
     """
-    name = 'Roboconf Graph'
-    aliases = ['roboconf-graph']
-    filenames = ['*.graph']
-    url = 'https://roboconf.github.io/en/user-guide/graph-definition.html'
-    version_added = '2.1'
+
+    name = "Roboconf Graph"
+    aliases = ["roboconf-graph"]
+    filenames = ["*.graph"]
+    url = "https://roboconf.github.io/en/user-guide/graph-definition.html"
+    version_added = "2.1"
 
     flags = re.IGNORECASE | re.MULTILINE
     tokens = {
-        'root': [
+        "root": [
             # Skip white spaces
-            (r'\s+', Text),
-
+            (r"\s+", Text),
             # There is one operator
-            (r'=', Operator),
-
+            (r"=", Operator),
             # Keywords
-            (words(('facet', 'import'), suffix=r'\s*\b', prefix=r'\b'), Keyword),
-            (words((
-                'installer', 'extends', 'exports', 'imports', 'facets',
-                'children'), suffix=r'\s*:?', prefix=r'\b'), Name),
-
+            (words(("facet", "import"), suffix=r"\s*\b", prefix=r"\b"), Keyword),
+            (
+                words(
+                    (
+                        "installer",
+                        "extends",
+                        "exports",
+                        "imports",
+                        "facets",
+                        "children",
+                    ),
+                    suffix=r"\s*:?",
+                    prefix=r"\b",
+                ),
+                Name,
+            ),
             # Comments
-            (r'#.*\n', Comment),
-
+            (r"#.*\n", Comment),
             # Default
-            (r'[^#]', Text),
-            (r'.*\n', Text)
+            (r"[^#]", Text),
+            (r".*\n", Text),
         ]
     }
 
@@ -53,29 +62,26 @@ class RoboconfInstancesLexer(RegexLexer):
     """
     Lexer for Roboconf instances files.
     """
-    name = 'Roboconf Instances'
-    aliases = ['roboconf-instances']
-    filenames = ['*.instances']
-    url = 'https://roboconf.github.io'
-    version_added = '2.1'
+
+    name = "Roboconf Instances"
+    aliases = ["roboconf-instances"]
+    filenames = ["*.instances"]
+    url = "https://roboconf.github.io"
+    version_added = "2.1"
 
     flags = re.IGNORECASE | re.MULTILINE
     tokens = {
-        'root': [
-
+        "root": [
             # Skip white spaces
-            (r'\s+', Text),
-
+            (r"\s+", Text),
             # Keywords
-            (words(('instance of', 'import'), suffix=r'\s*\b', prefix=r'\b'), Keyword),
-            (words(('name', 'count'), suffix=r's*:?', prefix=r'\b'), Name),
-            (r'\s*[\w.-]+\s*:', Name),
-
+            (words(("instance of", "import"), suffix=r"\s*\b", prefix=r"\b"), Keyword),
+            (words(("name", "count"), suffix=r"s*:?", prefix=r"\b"), Name),
+            (r"\s*[\w.-]+\s*:", Name),
             # Comments
-            (r'#.*\n', Comment),
-
+            (r"#.*\n", Comment),
             # Default
-            (r'[^#]', Text),
-            (r'.*\n', Text)
+            (r"[^#]", Text),
+            (r".*\n", Text),
         ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/robotframework.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/robotframework.py
index f92d567..357d2ba 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/robotframework.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/robotframework.py
@@ -1,11 +1,11 @@
 """
-    pygments.lexers.robotframework
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.robotframework
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Robot Framework.
+Lexer for Robot Framework.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 #  Copyright 2012 Nokia Siemens Networks Oyj
@@ -27,7 +27,7 @@ import re
 from pygments.lexer import Lexer
 from pygments.token import Token
 
-__all__ = ['RobotFrameworkLexer']
+__all__ = ["RobotFrameworkLexer"]
 
 
 HEADING = Token.Generic.Heading
@@ -44,11 +44,11 @@ GHERKIN = Token.Generic.Emph
 ERROR = Token.Error
 
 
-def normalize(string, remove=''):
+def normalize(string, remove=""):
     string = string.lower()
-    for char in remove + ' ':
+    for char in remove + " ":
         if char in string:
-            string = string.replace(char, '')
+            string = string.replace(char, "")
     return string
 
 
@@ -58,16 +58,17 @@ class RobotFrameworkLexer(Lexer):
 
     Supports both space and pipe separated plain text formats.
     """
-    name = 'RobotFramework'
-    url = 'http://robotframework.org'
-    aliases = ['robotframework']
-    filenames = ['*.robot', '*.resource']
-    mimetypes = ['text/x-robotframework']
-    version_added = '1.6'
+
+    name = "RobotFramework"
+    url = "http://robotframework.org"
+    aliases = ["robotframework"]
+    filenames = ["*.robot", "*.resource"]
+    mimetypes = ["text/x-robotframework"]
+    version_added = "1.6"
 
     def __init__(self, **options):
-        options['tabsize'] = 2
-        options['encoding'] = 'UTF-8'
+        options["tabsize"] = 2
+        options["encoding"] = "UTF-8"
         Lexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
@@ -85,7 +86,7 @@ class RobotFrameworkLexer(Lexer):
 class VariableTokenizer:
 
     def tokenize(self, string, token):
-        var = VariableSplitter(string, identifiers='$@%&')
+        var = VariableSplitter(string, identifiers="$@%&")
         if var.start < 0 or token in (COMMENT, ERROR):
             yield string, token
             return
@@ -94,16 +95,16 @@ class VariableTokenizer:
                 yield value, token
 
     def _tokenize(self, var, string, orig_token):
-        before = string[:var.start]
+        before = string[: var.start]
         yield before, orig_token
-        yield var.identifier + '{', SYNTAX
+        yield var.identifier + "{", SYNTAX
         yield from self.tokenize(var.base, VARIABLE)
-        yield '}', SYNTAX
+        yield "}", SYNTAX
         if var.index is not None:
-            yield '[', SYNTAX
+            yield "[", SYNTAX
             yield from self.tokenize(var.index, VARIABLE)
-            yield ']', SYNTAX
-        yield from self.tokenize(string[var.end:], orig_token)
+            yield "]", SYNTAX
+        yield from self.tokenize(string[var.end :], orig_token)
 
 
 class RowTokenizer:
@@ -115,31 +116,38 @@ class RowTokenizer:
         settings = SettingTable(testcases.set_default_template)
         variables = VariableTable()
         keywords = KeywordTable()
-        self._tables = {'settings': settings, 'setting': settings,
-                        'metadata': settings,
-                        'variables': variables, 'variable': variables,
-                        'testcases': testcases, 'testcase': testcases,
-                        'tasks': testcases, 'task': testcases,
-                        'keywords': keywords, 'keyword': keywords,
-                        'userkeywords': keywords, 'userkeyword': keywords}
+        self._tables = {
+            "settings": settings,
+            "setting": settings,
+            "metadata": settings,
+            "variables": variables,
+            "variable": variables,
+            "testcases": testcases,
+            "testcase": testcases,
+            "tasks": testcases,
+            "task": testcases,
+            "keywords": keywords,
+            "keyword": keywords,
+            "userkeywords": keywords,
+            "userkeyword": keywords,
+        }
 
     def tokenize(self, row):
         commented = False
         heading = False
         for index, value in enumerate(self._splitter.split(row)):
             # First value, and every second after that, is a separator.
-            index, separator = divmod(index-1, 2)
-            if value.startswith('#'):
+            index, separator = divmod(index - 1, 2)
+            if value.startswith("#"):
                 commented = True
-            elif index == 0 and value.startswith('*'):
+            elif index == 0 and value.startswith("*"):
                 self._table = self._start_table(value)
                 heading = True
-            yield from self._tokenize(value, index, commented,
-                                      separator, heading)
+            yield from self._tokenize(value, index, commented, separator, heading)
         self._table.end_row()
 
     def _start_table(self, header):
-        name = normalize(header, remove='*')
+        name = normalize(header, remove="*")
         return self._tables.get(name, UnknownTable())
 
     def _tokenize(self, value, index, commented, separator, heading):
@@ -154,17 +162,18 @@ class RowTokenizer:
 
 
 class RowSplitter:
-    _space_splitter = re.compile('( {2,})')
-    _pipe_splitter = re.compile(r'((?:^| +)\|(?: +|$))')
+    _space_splitter = re.compile("( {2,})")
+    _pipe_splitter = re.compile(r"((?:^| +)\|(?: +|$))")
 
     def split(self, row):
-        splitter = (row.startswith('| ') and self._split_from_pipes
-                    or self._split_from_spaces)
+        splitter = (
+            row.startswith("| ") and self._split_from_pipes or self._split_from_spaces
+        )
         yield from splitter(row)
-        yield '\n'
+        yield "\n"
 
     def _split_from_spaces(self, row):
-        yield ''  # Start with (pseudo)separator similarly as with pipes
+        yield ""  # Start with (pseudo)separator similarly as with pipes
         yield from self._space_splitter.split(row)
 
     def _split_from_pipes(self, row):
@@ -195,9 +204,9 @@ class Tokenizer:
         return self._tokens[index]
 
     def _is_assign(self, value):
-        if value.endswith('='):
+        if value.endswith("="):
             value = value[:-1].strip()
-        var = VariableSplitter(value, identifiers='$@&')
+        var = VariableSplitter(value, identifiers="$@&")
         return var.start == 0 and var.end == len(value)
 
 
@@ -207,12 +216,29 @@ class Comment(Tokenizer):
 
 class Setting(Tokenizer):
     _tokens = (SETTING, ARGUMENT)
-    _keyword_settings = ('suitesetup', 'suiteprecondition', 'suiteteardown',
-                         'suitepostcondition', 'testsetup', 'tasksetup', 'testprecondition',
-                         'testteardown','taskteardown', 'testpostcondition', 'testtemplate', 'tasktemplate')
-    _import_settings = ('library', 'resource', 'variables')
-    _other_settings = ('documentation', 'metadata', 'forcetags', 'defaulttags',
-                       'testtimeout','tasktimeout')
+    _keyword_settings = (
+        "suitesetup",
+        "suiteprecondition",
+        "suiteteardown",
+        "suitepostcondition",
+        "testsetup",
+        "tasksetup",
+        "testprecondition",
+        "testteardown",
+        "taskteardown",
+        "testpostcondition",
+        "testtemplate",
+        "tasktemplate",
+    )
+    _import_settings = ("library", "resource", "variables")
+    _other_settings = (
+        "documentation",
+        "metadata",
+        "forcetags",
+        "defaulttags",
+        "testtimeout",
+        "tasktimeout",
+    )
     _custom_tokenizer = None
 
     def __init__(self, template_setter=None):
@@ -240,21 +266,26 @@ class ImportSetting(Tokenizer):
 
 
 class TestCaseSetting(Setting):
-    _keyword_settings = ('setup', 'precondition', 'teardown', 'postcondition',
-                         'template')
+    _keyword_settings = (
+        "setup",
+        "precondition",
+        "teardown",
+        "postcondition",
+        "template",
+    )
     _import_settings = ()
-    _other_settings = ('documentation', 'tags', 'timeout')
+    _other_settings = ("documentation", "tags", "timeout")
 
     def _tokenize(self, value, index):
         if index == 0:
             type = Setting._tokenize(self, value[1:-1], index)
-            return [('[', SYNTAX), (value[1:-1], type), (']', SYNTAX)]
+            return [("[", SYNTAX), (value[1:-1], type), ("]", SYNTAX)]
         return Setting._tokenize(self, value, index)
 
 
 class KeywordSetting(TestCaseSetting):
-    _keyword_settings = ('teardown',)
-    _other_settings = ('documentation', 'arguments', 'return', 'timeout', 'tags')
+    _keyword_settings = ("teardown",)
+    _other_settings = ("documentation", "arguments", "return", "timeout", "tags")
 
 
 class Variable(Tokenizer):
@@ -285,7 +316,7 @@ class KeywordCall(Tokenizer):
 
 
 class GherkinTokenizer:
-    _gherkin_prefix = re.compile('^(Given|When|Then|And|But) ', re.IGNORECASE)
+    _gherkin_prefix = re.compile("^(Given|When|Then|And|But) ", re.IGNORECASE)
 
     def tokenize(self, value, token):
         match = self._gherkin_prefix.match(value)
@@ -307,7 +338,7 @@ class ForLoop(Tokenizer):
 
     def _tokenize(self, value, index):
         token = self._in_arguments and ARGUMENT or SYNTAX
-        if value.upper() in ('IN', 'IN RANGE'):
+        if value.upper() in ("IN", "IN RANGE"):
             self._in_arguments = True
         return token
 
@@ -329,11 +360,12 @@ class _Table:
         self._prev_values_on_row.append(value)
 
     def _continues(self, value, index):
-        return value == '...' and all(self._is_empty(t)
-                                      for t in self._prev_values_on_row)
+        return value == "..." and all(
+            self._is_empty(t) for t in self._prev_values_on_row
+        )
 
     def _is_empty(self, value):
-        return value in ('', '\\')
+        return value in ("", "\\")
 
     def _tokenize(self, value, index):
         return self._tokenizer.tokenize(value)
@@ -361,7 +393,7 @@ class SettingTable(_Table):
         self._template_setter = template_setter
 
     def _tokenize(self, value, index):
-        if index == 0 and normalize(value) == 'testtemplate':
+        if index == 0 and normalize(value) == "testtemplate":
             self._tokenizer = Setting(self._template_setter)
         return _Table._tokenize(self, value, index)
 
@@ -376,8 +408,9 @@ class TestCaseTable(_Table):
 
     @property
     def _tokenizer_class(self):
-        if self._test_template or (self._default_template and
-                                   self._test_template is not False):
+        if self._test_template or (
+            self._default_template and self._test_template is not False
+        ):
             return TemplatedKeywordCall
         return KeywordCall
 
@@ -402,13 +435,13 @@ class TestCaseTable(_Table):
         return _Table._tokenize(self, value, index)
 
     def _is_setting(self, value):
-        return value.startswith('[') and value.endswith(']')
+        return value.startswith("[") and value.endswith("]")
 
     def _is_template(self, value):
-        return normalize(value) == '[template]'
+        return normalize(value) == "[template]"
 
     def _is_for_loop(self, value):
-        return value.startswith(':') and normalize(value, remove=':') == 'for'
+        return value.startswith(":") and normalize(value, remove=":") == "for"
 
     def set_test_template(self, template):
         self._test_template = self._is_template_set(template)
@@ -417,7 +450,7 @@ class TestCaseTable(_Table):
         self._default_template = self._is_template_set(template)
 
     def _is_template_set(self, template):
-        return normalize(template) not in ('', '\\', 'none', '${empty}')
+        return normalize(template) not in ("", "\\", "none", "${empty}")
 
 
 class KeywordTable(TestCaseTable):
@@ -430,6 +463,7 @@ class KeywordTable(TestCaseTable):
 
 # Following code copied directly from Robot Framework 2.7.5.
 
+
 class VariableSplitter:
 
     def __init__(self, string, identifiers):
@@ -454,22 +488,24 @@ class VariableSplitter:
 
     def _finalize(self):
         self.identifier = self._variable_chars[0]
-        self.base = ''.join(self._variable_chars[2:-1])
+        self.base = "".join(self._variable_chars[2:-1])
         self.end = self.start + len(self._variable_chars)
         if self._has_list_or_dict_variable_index():
-            self.index = ''.join(self._list_and_dict_variable_index_chars[1:-1])
+            self.index = "".join(self._list_and_dict_variable_index_chars[1:-1])
             self.end += len(self._list_and_dict_variable_index_chars)
 
     def _has_list_or_dict_variable_index(self):
-        return self._list_and_dict_variable_index_chars\
-        and self._list_and_dict_variable_index_chars[-1] == ']'
+        return (
+            self._list_and_dict_variable_index_chars
+            and self._list_and_dict_variable_index_chars[-1] == "]"
+        )
 
     def _split(self, string):
         start_index, max_index = self._find_variable(string)
         self.start = start_index
         self._open_curly = 1
         self._state = self._variable_state
-        self._variable_chars = [string[start_index], '{']
+        self._variable_chars = [string[start_index], "{"]
         self._list_and_dict_variable_index_chars = []
         self._string = string
         start_index += 2
@@ -479,46 +515,49 @@ class VariableSplitter:
                 self._state(char, index)
             except StopIteration:
                 return
-            if index  == max_index and not self._scanning_list_variable_index():
+            if index == max_index and not self._scanning_list_variable_index():
                 return
 
     def _scanning_list_variable_index(self):
-        return self._state in [self._waiting_list_variable_index_state,
-                               self._list_variable_index_state]
+        return self._state in [
+            self._waiting_list_variable_index_state,
+            self._list_variable_index_state,
+        ]
 
     def _find_variable(self, string):
-        max_end_index = string.rfind('}')
+        max_end_index = string.rfind("}")
         if max_end_index == -1:
-            raise ValueError('No variable end found')
+            raise ValueError("No variable end found")
         if self._is_escaped(string, max_end_index):
             return self._find_variable(string[:max_end_index])
         start_index = self._find_start_index(string, 1, max_end_index)
         if start_index == -1:
-            raise ValueError('No variable start found')
+            raise ValueError("No variable start found")
         return start_index, max_end_index
 
     def _find_start_index(self, string, start, end):
-        index = string.find('{', start, end) - 1
+        index = string.find("{", start, end) - 1
         if index < 0:
             return -1
         if self._start_index_is_ok(string, index):
             return index
-        return self._find_start_index(string, index+2, end)
+        return self._find_start_index(string, index + 2, end)
 
     def _start_index_is_ok(self, string, index):
-        return string[index] in self._identifiers\
-        and not self._is_escaped(string, index)
+        return string[index] in self._identifiers and not self._is_escaped(
+            string, index
+        )
 
     def _is_escaped(self, string, index):
         escaped = False
-        while index > 0 and string[index-1] == '\\':
+        while index > 0 and string[index - 1] == "\\":
             index -= 1
             escaped = not escaped
         return escaped
 
     def _variable_state(self, char, index):
         self._variable_chars.append(char)
-        if char == '}' and not self._is_escaped(self._string, index):
+        if char == "}" and not self._is_escaped(self._string, index):
             self._open_curly -= 1
             if self._open_curly == 0:
                 if not self._is_list_or_dict_variable():
@@ -528,11 +567,11 @@ class VariableSplitter:
             self._state = self._internal_variable_start_state
 
     def _is_list_or_dict_variable(self):
-        return self._variable_chars[0] in ('@','&')
+        return self._variable_chars[0] in ("@", "&")
 
     def _internal_variable_start_state(self, char, index):
         self._state = self._variable_state
-        if char == '{':
+        if char == "{":
             self._variable_chars.append(char)
             self._open_curly += 1
             self._may_have_internal_variables = True
@@ -540,12 +579,12 @@ class VariableSplitter:
             self._variable_state(char, index)
 
     def _waiting_list_variable_index_state(self, char, index):
-        if char != '[':
+        if char != "[":
             raise StopIteration
         self._list_and_dict_variable_index_chars.append(char)
         self._state = self._list_variable_index_state
 
     def _list_variable_index_state(self, char, index):
         self._list_and_dict_variable_index_chars.append(char)
-        if char == ']':
+        if char == "]":
             raise StopIteration
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ruby.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ruby.py
index 72aaeb5..3181be8 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ruby.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/ruby.py
@@ -1,27 +1,70 @@
 """
-    pygments.lexers.ruby
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.ruby
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Ruby and related languages.
+Lexers for Ruby and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import Lexer, RegexLexer, ExtendedRegexLexer, include, \
-    bygroups, default, LexerContext, do_insertions, words, line_re
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Error, Generic, Whitespace
+from pygments.lexer import (
+    Lexer,
+    RegexLexer,
+    ExtendedRegexLexer,
+    include,
+    bygroups,
+    default,
+    LexerContext,
+    do_insertions,
+    words,
+    line_re,
+)
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Error,
+    Generic,
+    Whitespace,
+)
 from pygments.util import shebang_matches
 
-__all__ = ['RubyLexer', 'RubyConsoleLexer', 'FancyLexer']
+__all__ = ["RubyLexer", "RubyConsoleLexer", "FancyLexer"]
 
 
 RUBY_OPERATORS = (
-    '*', '**', '-', '+', '-@', '+@', '/', '%', '&', '|', '^', '`', '~',
-    '[]', '[]=', '<<', '>>', '<', '<>', '<=>', '>', '>=', '==', '==='
+    "*",
+    "**",
+    "-",
+    "+",
+    "-@",
+    "+@",
+    "/",
+    "%",
+    "&",
+    "|",
+    "^",
+    "`",
+    "~",
+    "[]",
+    "[]=",
+    "<<",
+    ">>",
+    "<",
+    "<>",
+    "<=>",
+    ">",
+    ">=",
+    "==",
+    "===",
 )
 
 
@@ -30,13 +73,22 @@ class RubyLexer(ExtendedRegexLexer):
     For Ruby source code.
     """
 
-    name = 'Ruby'
-    url = 'http://www.ruby-lang.org'
-    aliases = ['ruby', 'rb', 'duby']
-    filenames = ['*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec',
-                 '*.rbx', '*.duby', 'Gemfile', 'Vagrantfile']
-    mimetypes = ['text/x-ruby', 'application/x-ruby']
-    version_added = ''
+    name = "Ruby"
+    url = "http://www.ruby-lang.org"
+    aliases = ["ruby", "rb", "duby"]
+    filenames = [
+        "*.rb",
+        "*.rbw",
+        "Rakefile",
+        "*.rake",
+        "*.gemspec",
+        "*.rbx",
+        "*.duby",
+        "Gemfile",
+        "Vagrantfile",
+    ]
+    mimetypes = ["text/x-ruby", "application/x-ruby"]
+    version_added = ""
 
     flags = re.DOTALL | re.MULTILINE
 
@@ -45,14 +97,14 @@ class RubyLexer(ExtendedRegexLexer):
         # match: 1 = <<[-~]?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
 
         start = match.start(1)
-        yield start, Operator, match.group(1)        # <<[-~]?
-        yield match.start(2), String.Heredoc, match.group(2)   # quote ", ', `
-        yield match.start(3), String.Delimiter, match.group(3) # heredoc name
-        yield match.start(4), String.Heredoc, match.group(4)   # quote again
+        yield start, Operator, match.group(1)  # <<[-~]?
+        yield match.start(2), String.Heredoc, match.group(2)  # quote ", ', `
+        yield match.start(3), String.Delimiter, match.group(3)  # heredoc name
+        yield match.start(4), String.Heredoc, match.group(4)  # quote again
 
-        heredocstack = ctx.__dict__.setdefault('heredocstack', [])
+        heredocstack = ctx.__dict__.setdefault("heredocstack", [])
         outermost = not bool(heredocstack)
-        heredocstack.append((match.group(1) in ('<<-', '<<~'), match.group(3)))
+        heredocstack.append((match.group(1) in ("<<-", "<<~"), match.group(3)))
 
         ctx.pos = match.start(5)
         ctx.end = match.end(5)
@@ -90,200 +142,373 @@ class RubyLexer(ExtendedRegexLexer):
     def gen_rubystrings_rules():
         def intp_regex_callback(self, match, ctx):
             yield match.start(1), String.Regex, match.group(1)  # begin
-            nctx = LexerContext(match.group(3), 0, ['interpolated-regex'])
+            nctx = LexerContext(match.group(3), 0, ["interpolated-regex"])
             for i, t, v in self.get_tokens_unprocessed(context=nctx):
-                yield match.start(3)+i, t, v
+                yield match.start(3) + i, t, v
             yield match.start(4), String.Regex, match.group(4)  # end[mixounse]*
             ctx.pos = match.end()
 
         def intp_string_callback(self, match, ctx):
             yield match.start(1), String.Other, match.group(1)
-            nctx = LexerContext(match.group(3), 0, ['interpolated-string'])
+            nctx = LexerContext(match.group(3), 0, ["interpolated-string"])
             for i, t, v in self.get_tokens_unprocessed(context=nctx):
-                yield match.start(3)+i, t, v
+                yield match.start(3) + i, t, v
             yield match.start(4), String.Other, match.group(4)  # end
             ctx.pos = match.end()
 
         states = {}
-        states['strings'] = [
+        states["strings"] = [
             # easy ones
-            (r'\:@{0,2}[a-zA-Z_]\w*[!?]?', String.Symbol),
-            (words(RUBY_OPERATORS, prefix=r'\:@{0,2}'), String.Symbol),
+            (r"\:@{0,2}[a-zA-Z_]\w*[!?]?", String.Symbol),
+            (words(RUBY_OPERATORS, prefix=r"\:@{0,2}"), String.Symbol),
             (r":'(\\\\|\\[^\\]|[^'\\])*'", String.Symbol),
-            (r':"', String.Symbol, 'simple-sym'),
-            (r'([a-zA-Z_]\w*)(:)(?!:)',
-             bygroups(String.Symbol, Punctuation)),  # Since Ruby 1.9
-            (r'"', String.Double, 'simple-string-double'),
-            (r"'", String.Single, 'simple-string-single'),
-            (r'(?', '<>', 'ab'):
-            states[name+'-intp-string'] = [
-                (r'\\[\\' + bracecc + ']', String.Other),
-                (lbrace, String.Other, '#push'),
-                (rbrace, String.Other, '#pop'),
-                include('string-intp-escaped'),
-                (r'[\\#' + bracecc + ']', String.Other),
-                (r'[^\\#' + bracecc + ']+', String.Other),
+        for lbrace, rbrace, bracecc, name in (
+            ("\\{", "\\}", "{}", "cb"),
+            ("\\[", "\\]", "\\[\\]", "sb"),
+            ("\\(", "\\)", "()", "pa"),
+            ("<", ">", "<>", "ab"),
+        ):
+            states[name + "-intp-string"] = [
+                (r"\\[\\" + bracecc + "]", String.Other),
+                (lbrace, String.Other, "#push"),
+                (rbrace, String.Other, "#pop"),
+                include("string-intp-escaped"),
+                (r"[\\#" + bracecc + "]", String.Other),
+                (r"[^\\#" + bracecc + "]+", String.Other),
             ]
-            states['strings'].append((r'%[QWx]?' + lbrace, String.Other,
-                                      name+'-intp-string'))
-            states[name+'-string'] = [
-                (r'\\[\\' + bracecc + ']', String.Other),
-                (lbrace, String.Other, '#push'),
-                (rbrace, String.Other, '#pop'),
-                (r'[\\#' + bracecc + ']', String.Other),
-                (r'[^\\#' + bracecc + ']+', String.Other),
+            states["strings"].append(
+                (r"%[QWx]?" + lbrace, String.Other, name + "-intp-string")
+            )
+            states[name + "-string"] = [
+                (r"\\[\\" + bracecc + "]", String.Other),
+                (lbrace, String.Other, "#push"),
+                (rbrace, String.Other, "#pop"),
+                (r"[\\#" + bracecc + "]", String.Other),
+                (r"[^\\#" + bracecc + "]+", String.Other),
             ]
-            states['strings'].append((r'%[qsw]' + lbrace, String.Other,
-                                      name+'-string'))
-            states[name+'-regex'] = [
-                (r'\\[\\' + bracecc + ']', String.Regex),
-                (lbrace, String.Regex, '#push'),
-                (rbrace + '[mixounse]*', String.Regex, '#pop'),
-                include('string-intp'),
-                (r'[\\#' + bracecc + ']', String.Regex),
-                (r'[^\\#' + bracecc + ']+', String.Regex),
+            states["strings"].append(
+                (r"%[qsw]" + lbrace, String.Other, name + "-string")
+            )
+            states[name + "-regex"] = [
+                (r"\\[\\" + bracecc + "]", String.Regex),
+                (lbrace, String.Regex, "#push"),
+                (rbrace + "[mixounse]*", String.Regex, "#pop"),
+                include("string-intp"),
+                (r"[\\#" + bracecc + "]", String.Regex),
+                (r"[^\\#" + bracecc + "]+", String.Regex),
             ]
-            states['strings'].append((r'%r' + lbrace, String.Regex,
-                                      name+'-regex'))
+            states["strings"].append((r"%r" + lbrace, String.Regex, name + "-regex"))
 
         # these must come after %!
-        states['strings'] += [
+        states["strings"] += [
             # %r regex
-            (r'(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[mixounse]*)',
-             intp_regex_callback),
+            (r"(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[mixounse]*)", intp_regex_callback),
             # regular fancy strings with qsw
-            (r'%[qsw]([\W_])((?:\\\1|(?!\1).)*)\1', String.Other),
-            (r'(%[QWx]([\W_]))((?:\\\2|(?!\2).)*)(\2)',
-             intp_string_callback),
+            (r"%[qsw]([\W_])((?:\\\1|(?!\1).)*)\1", String.Other),
+            (r"(%[QWx]([\W_]))((?:\\\2|(?!\2).)*)(\2)", intp_string_callback),
             # special forms of fancy strings after operators or
             # in method calls with braces
-            (r'(?<=[-+/*%=<>&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)',
-             bygroups(Whitespace, String.Other, None)),
+            (
+                r"(?<=[-+/*%=<>&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)",
+                bygroups(Whitespace, String.Other, None),
+            ),
             # and because of fixed width lookbehinds the whole thing a
             # second time for line startings...
-            (r'^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)',
-             bygroups(Whitespace, String.Other, None)),
+            (
+                r"^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)",
+                bygroups(Whitespace, String.Other, None),
+            ),
             # all regular fancy strings without qsw
-            (r'(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)',
-             intp_string_callback),
+            (r"(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)", intp_string_callback),
         ]
 
         return states
 
     tokens = {
-        'root': [
-            (r'\A#!.+?$', Comment.Hashbang),
-            (r'#.*?$', Comment.Single),
-            (r'=begin\s.*?\n=end.*?$', Comment.Multiline),
+        "root": [
+            (r"\A#!.+?$", Comment.Hashbang),
+            (r"#.*?$", Comment.Single),
+            (r"=begin\s.*?\n=end.*?$", Comment.Multiline),
             # keywords
-            (words((
-                'BEGIN', 'END', 'alias', 'begin', 'break', 'case', 'defined?',
-                'do', 'else', 'elsif', 'end', 'ensure', 'for', 'if', 'in', 'next', 'redo',
-                'rescue', 'raise', 'retry', 'return', 'super', 'then', 'undef',
-                'unless', 'until', 'when', 'while', 'yield'), suffix=r'\b'),
-             Keyword),
+            (
+                words(
+                    (
+                        "BEGIN",
+                        "END",
+                        "alias",
+                        "begin",
+                        "break",
+                        "case",
+                        "defined?",
+                        "do",
+                        "else",
+                        "elsif",
+                        "end",
+                        "ensure",
+                        "for",
+                        "if",
+                        "in",
+                        "next",
+                        "redo",
+                        "rescue",
+                        "raise",
+                        "retry",
+                        "return",
+                        "super",
+                        "then",
+                        "undef",
+                        "unless",
+                        "until",
+                        "when",
+                        "while",
+                        "yield",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
             # start of function, class and module names
-            (r'(module)(\s+)([a-zA-Z_]\w*'
-             r'(?:::[a-zA-Z_]\w*)*)',
-             bygroups(Keyword, Whitespace, Name.Namespace)),
-            (r'(def)(\s+)', bygroups(Keyword, Whitespace), 'funcname'),
-            (r'def(?=[*%&^`~+-/\[<>=])', Keyword, 'funcname'),
-            (r'(class)(\s+)', bygroups(Keyword, Whitespace), 'classname'),
+            (
+                r"(module)(\s+)([a-zA-Z_]\w*" r"(?:::[a-zA-Z_]\w*)*)",
+                bygroups(Keyword, Whitespace, Name.Namespace),
+            ),
+            (r"(def)(\s+)", bygroups(Keyword, Whitespace), "funcname"),
+            (r"def(?=[*%&^`~+-/\[<>=])", Keyword, "funcname"),
+            (r"(class)(\s+)", bygroups(Keyword, Whitespace), "classname"),
             # special methods
-            (words((
-                'initialize', 'new', 'loop', 'include', 'extend', 'raise', 'attr_reader',
-                'attr_writer', 'attr_accessor', 'attr', 'catch', 'throw', 'private',
-                'module_function', 'public', 'protected', 'true', 'false', 'nil'),
-                suffix=r'\b'),
-             Keyword.Pseudo),
-            (r'(not|and|or)\b', Operator.Word),
-            (words((
-                'autoload', 'block_given', 'const_defined', 'eql', 'equal', 'frozen', 'include',
-                'instance_of', 'is_a', 'iterator', 'kind_of', 'method_defined', 'nil',
-                'private_method_defined', 'protected_method_defined',
-                'public_method_defined', 'respond_to', 'tainted'), suffix=r'\?'),
-             Name.Builtin),
-            (r'(chomp|chop|exit|gsub|sub)!', Name.Builtin),
-            (words((
-                'Array', 'Float', 'Integer', 'String', '__id__', '__send__', 'abort',
-                'ancestors', 'at_exit', 'autoload', 'binding', 'callcc', 'caller',
-                'catch', 'chomp', 'chop', 'class_eval', 'class_variables',
-                'clone', 'const_defined?', 'const_get', 'const_missing', 'const_set',
-                'constants', 'display', 'dup', 'eval', 'exec', 'exit', 'extend', 'fail', 'fork',
-                'format', 'freeze', 'getc', 'gets', 'global_variables', 'gsub',
-                'hash', 'id', 'included_modules', 'inspect', 'instance_eval',
-                'instance_method', 'instance_methods',
-                'instance_variable_get', 'instance_variable_set', 'instance_variables',
-                'lambda', 'load', 'local_variables', 'loop',
-                'method', 'method_missing', 'methods', 'module_eval', 'name',
-                'object_id', 'open', 'p', 'print', 'printf', 'private_class_method',
-                'private_instance_methods',
-                'private_methods', 'proc', 'protected_instance_methods',
-                'protected_methods', 'public_class_method',
-                'public_instance_methods', 'public_methods',
-                'putc', 'puts', 'raise', 'rand', 'readline', 'readlines', 'require',
-                'scan', 'select', 'self', 'send', 'set_trace_func', 'singleton_methods', 'sleep',
-                'split', 'sprintf', 'srand', 'sub', 'syscall', 'system', 'taint',
-                'test', 'throw', 'to_a', 'to_s', 'trace_var', 'trap', 'untaint',
-                'untrace_var', 'warn'), prefix=r'(?~!:])|'
-             r'(?<=(?:\s|;)when\s)|'
-             r'(?<=(?:\s|;)or\s)|'
-             r'(?<=(?:\s|;)and\s)|'
-             r'(?<=\.index\s)|'
-             r'(?<=\.scan\s)|'
-             r'(?<=\.sub\s)|'
-             r'(?<=\.sub!\s)|'
-             r'(?<=\.gsub\s)|'
-             r'(?<=\.gsub!\s)|'
-             r'(?<=\.match\s)|'
-             r'(?<=(?:\s|;)if\s)|'
-             r'(?<=(?:\s|;)elsif\s)|'
-             r'(?<=^when\s)|'
-             r'(?<=^index\s)|'
-             r'(?<=^scan\s)|'
-             r'(?<=^sub\s)|'
-             r'(?<=^gsub\s)|'
-             r'(?<=^sub!\s)|'
-             r'(?<=^gsub!\s)|'
-             r'(?<=^match\s)|'
-             r'(?<=^if\s)|'
-             r'(?<=^elsif\s)'
-             r')(\s*)(/)', bygroups(Text, String.Regex), 'multiline-regex'),
+            (
+                r"(?:^|(?<=[=<>~!:])|"
+                r"(?<=(?:\s|;)when\s)|"
+                r"(?<=(?:\s|;)or\s)|"
+                r"(?<=(?:\s|;)and\s)|"
+                r"(?<=\.index\s)|"
+                r"(?<=\.scan\s)|"
+                r"(?<=\.sub\s)|"
+                r"(?<=\.sub!\s)|"
+                r"(?<=\.gsub\s)|"
+                r"(?<=\.gsub!\s)|"
+                r"(?<=\.match\s)|"
+                r"(?<=(?:\s|;)if\s)|"
+                r"(?<=(?:\s|;)elsif\s)|"
+                r"(?<=^when\s)|"
+                r"(?<=^index\s)|"
+                r"(?<=^scan\s)|"
+                r"(?<=^sub\s)|"
+                r"(?<=^gsub\s)|"
+                r"(?<=^sub!\s)|"
+                r"(?<=^gsub!\s)|"
+                r"(?<=^match\s)|"
+                r"(?<=^if\s)|"
+                r"(?<=^elsif\s)"
+                r")(\s*)(/)",
+                bygroups(Text, String.Regex),
+                "multiline-regex",
+            ),
             # multiline regex (in method calls or subscripts)
-            (r'(?<=\(|,|\[)/', String.Regex, 'multiline-regex'),
+            (r"(?<=\(|,|\[)/", String.Regex, "multiline-regex"),
             # multiline regex (this time the funny no whitespace rule)
-            (r'(\s+)(/)(?![\s=])', bygroups(Whitespace, String.Regex),
-             'multiline-regex'),
+            (
+                r"(\s+)(/)(?![\s=])",
+                bygroups(Whitespace, String.Regex),
+                "multiline-regex",
+            ),
             # lex numbers and ignore following regular expressions which
             # are division operators in fact (grrrr. i hate that. any
             # better ideas?)
@@ -292,144 +517,158 @@ class RubyLexer(ExtendedRegexLexer):
             # there so that you can use the ternary operator.
             # stupid example:
             #   x>=0?n[x]:""
-            (r'(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?',
-             bygroups(Number.Oct, Whitespace, Operator)),
-            (r'(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?',
-             bygroups(Number.Hex, Whitespace, Operator)),
-            (r'(0b[01]+(?:_[01]+)*)(\s*)([/?])?',
-             bygroups(Number.Bin, Whitespace, Operator)),
-            (r'([\d]+(?:_\d+)*)(\s*)([/?])?',
-             bygroups(Number.Integer, Whitespace, Operator)),
+            (
+                r"(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?",
+                bygroups(Number.Oct, Whitespace, Operator),
+            ),
+            (
+                r"(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?",
+                bygroups(Number.Hex, Whitespace, Operator),
+            ),
+            (
+                r"(0b[01]+(?:_[01]+)*)(\s*)([/?])?",
+                bygroups(Number.Bin, Whitespace, Operator),
+            ),
+            (
+                r"([\d]+(?:_\d+)*)(\s*)([/?])?",
+                bygroups(Number.Integer, Whitespace, Operator),
+            ),
             # Names
-            (r'@@[a-zA-Z_]\w*', Name.Variable.Class),
-            (r'@[a-zA-Z_]\w*', Name.Variable.Instance),
-            (r'\$\w+', Name.Variable.Global),
+            (r"@@[a-zA-Z_]\w*", Name.Variable.Class),
+            (r"@[a-zA-Z_]\w*", Name.Variable.Instance),
+            (r"\$\w+", Name.Variable.Global),
             (r'\$[!@&`\'+~=/\\,;.<>_*$?:"^-]', Name.Variable.Global),
-            (r'\$-[0adFiIlpvw]', Name.Variable.Global),
-            (r'::', Operator),
-            include('strings'),
+            (r"\$-[0adFiIlpvw]", Name.Variable.Global),
+            (r"::", Operator),
+            include("strings"),
             # chars
-            (r'\?(\\[MC]-)*'  # modifiers
-             r'(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)'
-             r'(?!\w)',
-             String.Char),
-            (r'[A-Z]\w+', Name.Constant),
+            (
+                r"\?(\\[MC]-)*"  # modifiers
+                r'(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)'
+                r"(?!\w)",
+                String.Char,
+            ),
+            (r"[A-Z]\w+", Name.Constant),
             # this is needed because ruby attributes can look
             # like keywords (class) or like this: ` ?!?
-            (words(RUBY_OPERATORS, prefix=r'(\.|::)'),
-             bygroups(Operator, Name.Operator)),
-            (r'(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])',
-             bygroups(Operator, Name)),
-            (r'[a-zA-Z_]\w*[!?]?', Name),
-            (r'(\[|\]|\*\*|<>?|>=|<=|<=>|=~|={3}|'
-             r'!~|&&?|\|\||\.{1,3})', Operator),
-            (r'[-+/*%=<>&!^|~]=?', Operator),
-            (r'[(){};,/?:\\]', Punctuation),
-            (r'\s+', Whitespace)
+            (
+                words(RUBY_OPERATORS, prefix=r"(\.|::)"),
+                bygroups(Operator, Name.Operator),
+            ),
+            (r"(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])", bygroups(Operator, Name)),
+            (r"[a-zA-Z_]\w*[!?]?", Name),
+            (
+                r"(\[|\]|\*\*|<>?|>=|<=|<=>|=~|={3}|" r"!~|&&?|\|\||\.{1,3})",
+                Operator,
+            ),
+            (r"[-+/*%=<>&!^|~]=?", Operator),
+            (r"[(){};,/?:\\]", Punctuation),
+            (r"\s+", Whitespace),
         ],
-        'funcname': [
-            (r'\(', Punctuation, 'defexpr'),
-            (r'(?:([a-zA-Z_]\w*)(\.))?'  # optional scope name, like "self."
-             r'('
-                r'[a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?'  # method name
-                r'|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?'  # or operator override
-                r'|\[\]=?'  # or element reference/assignment override
-                r'|`'  # or the undocumented backtick override
-             r')',
-             bygroups(Name.Class, Operator, Name.Function), '#pop'),
-            default('#pop')
+        "funcname": [
+            (r"\(", Punctuation, "defexpr"),
+            (
+                r"(?:([a-zA-Z_]\w*)(\.))?"  # optional scope name, like "self."
+                r"("
+                r"[a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?"  # method name
+                r"|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?"  # or operator override
+                r"|\[\]=?"  # or element reference/assignment override
+                r"|`"  # or the undocumented backtick override
+                r")",
+                bygroups(Name.Class, Operator, Name.Function),
+                "#pop",
+            ),
+            default("#pop"),
         ],
-        'classname': [
-            (r'\(', Punctuation, 'defexpr'),
-            (r'<<', Operator, '#pop'),
-            (r'[A-Z_]\w*', Name.Class, '#pop'),
-            default('#pop')
+        "classname": [
+            (r"\(", Punctuation, "defexpr"),
+            (r"<<", Operator, "#pop"),
+            (r"[A-Z_]\w*", Name.Class, "#pop"),
+            default("#pop"),
         ],
-        'defexpr': [
-            (r'(\))(\.|::)?', bygroups(Punctuation, Operator), '#pop'),
-            (r'\(', Operator, '#push'),
-            include('root')
+        "defexpr": [
+            (r"(\))(\.|::)?", bygroups(Punctuation, Operator), "#pop"),
+            (r"\(", Operator, "#push"),
+            include("root"),
         ],
-        'in-intp': [
-            (r'\{', String.Interpol, '#push'),
-            (r'\}', String.Interpol, '#pop'),
-            include('root'),
+        "in-intp": [
+            (r"\{", String.Interpol, "#push"),
+            (r"\}", String.Interpol, "#pop"),
+            include("root"),
         ],
-        'string-intp': [
-            (r'#\{', String.Interpol, 'in-intp'),
-            (r'#@@?[a-zA-Z_]\w*', String.Interpol),
-            (r'#\$[a-zA-Z_]\w*', String.Interpol)
+        "string-intp": [
+            (r"#\{", String.Interpol, "in-intp"),
+            (r"#@@?[a-zA-Z_]\w*", String.Interpol),
+            (r"#\$[a-zA-Z_]\w*", String.Interpol),
         ],
-        'string-intp-escaped': [
-            include('string-intp'),
-            (r'\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})',
-             String.Escape)
+        "string-intp-escaped": [
+            include("string-intp"),
+            (r'\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})', String.Escape),
         ],
-        'interpolated-regex': [
-            include('string-intp'),
-            (r'[\\#]', String.Regex),
-            (r'[^\\#]+', String.Regex),
+        "interpolated-regex": [
+            include("string-intp"),
+            (r"[\\#]", String.Regex),
+            (r"[^\\#]+", String.Regex),
         ],
-        'interpolated-string': [
-            include('string-intp'),
-            (r'[\\#]', String.Other),
-            (r'[^\\#]+', String.Other),
+        "interpolated-string": [
+            include("string-intp"),
+            (r"[\\#]", String.Other),
+            (r"[^\\#]+", String.Other),
         ],
-        'multiline-regex': [
-            include('string-intp'),
-            (r'\\\\', String.Regex),
-            (r'\\/', String.Regex),
-            (r'[\\#]', String.Regex),
-            (r'[^\\/#]+', String.Regex),
-            (r'/[mixounse]*', String.Regex, '#pop'),
+        "multiline-regex": [
+            include("string-intp"),
+            (r"\\\\", String.Regex),
+            (r"\\/", String.Regex),
+            (r"[\\#]", String.Regex),
+            (r"[^\\/#]+", String.Regex),
+            (r"/[mixounse]*", String.Regex, "#pop"),
         ],
-        'end-part': [
-            (r'.+', Comment.Preproc, '#pop')
-        ]
+        "end-part": [(r".+", Comment.Preproc, "#pop")],
     }
     tokens.update(gen_rubystrings_rules())
 
     def analyse_text(text):
-        return shebang_matches(text, r'ruby(1\.\d)?')
+        return shebang_matches(text, r"ruby(1\.\d)?")
 
 
 class RubyConsoleLexer(Lexer):
     """
     For Ruby interactive console (**irb**) output.
     """
-    name = 'Ruby irb session'
-    aliases = ['rbcon', 'irb']
-    mimetypes = ['text/x-ruby-shellsession']
-    url = 'https://www.ruby-lang.org'
-    version_added = ''
-    _example = 'rbcon/console'
 
-    _prompt_re = re.compile(r'irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
-                            r'|>> |\?> ')
+    name = "Ruby irb session"
+    aliases = ["rbcon", "irb"]
+    mimetypes = ["text/x-ruby-shellsession"]
+    url = "https://www.ruby-lang.org"
+    version_added = ""
+    _example = "rbcon/console"
+
+    _prompt_re = re.compile(r'irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] ' r"|>> |\?> ")
 
     def get_tokens_unprocessed(self, text):
         rblexer = RubyLexer(**self.options)
 
-        curcode = ''
+        curcode = ""
         insertions = []
         for match in line_re.finditer(text):
             line = match.group()
             m = self._prompt_re.match(line)
             if m is not None:
                 end = m.end()
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, line[:end])]))
+                insertions.append((len(curcode), [(0, Generic.Prompt, line[:end])]))
                 curcode += line[end:]
             else:
                 if curcode:
                     yield from do_insertions(
-                        insertions, rblexer.get_tokens_unprocessed(curcode))
-                    curcode = ''
+                        insertions, rblexer.get_tokens_unprocessed(curcode)
+                    )
+                    curcode = ""
                     insertions = []
                 yield match.start(), Generic.Output, line
         if curcode:
             yield from do_insertions(
-                insertions, rblexer.get_tokens_unprocessed(curcode))
+                insertions, rblexer.get_tokens_unprocessed(curcode)
+            )
 
 
 class FancyLexer(RegexLexer):
@@ -440,79 +679,113 @@ class FancyLexer(RegexLexer):
     class-based, concurrent general-purpose programming language
     running on Rubinius, the Ruby VM.
     """
-    name = 'Fancy'
-    url = 'https://github.com/bakkdoor/fancy'
-    filenames = ['*.fy', '*.fancypack']
-    aliases = ['fancy', 'fy']
-    mimetypes = ['text/x-fancysrc']
-    version_added = '1.5'
+
+    name = "Fancy"
+    url = "https://github.com/bakkdoor/fancy"
+    filenames = ["*.fy", "*.fancypack"]
+    aliases = ["fancy", "fy"]
+    mimetypes = ["text/x-fancysrc"]
+    version_added = "1.5"
 
     tokens = {
         # copied from PerlLexer:
-        'balanced-regex': [
-            (r'/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*', String.Regex, '#pop'),
-            (r'!(\\\\|\\[^\\]|[^!\\])*![egimosx]*', String.Regex, '#pop'),
-            (r'\\(\\\\|[^\\])*\\[egimosx]*', String.Regex, '#pop'),
-            (r'\{(\\\\|\\[^\\]|[^}\\])*\}[egimosx]*', String.Regex, '#pop'),
-            (r'<(\\\\|\\[^\\]|[^>\\])*>[egimosx]*', String.Regex, '#pop'),
-            (r'\[(\\\\|\\[^\\]|[^\]\\])*\][egimosx]*', String.Regex, '#pop'),
-            (r'\((\\\\|\\[^\\]|[^)\\])*\)[egimosx]*', String.Regex, '#pop'),
-            (r'@(\\\\|\\[^\\]|[^@\\])*@[egimosx]*', String.Regex, '#pop'),
-            (r'%(\\\\|\\[^\\]|[^%\\])*%[egimosx]*', String.Regex, '#pop'),
-            (r'\$(\\\\|\\[^\\]|[^$\\])*\$[egimosx]*', String.Regex, '#pop'),
+        "balanced-regex": [
+            (r"/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*", String.Regex, "#pop"),
+            (r"!(\\\\|\\[^\\]|[^!\\])*![egimosx]*", String.Regex, "#pop"),
+            (r"\\(\\\\|[^\\])*\\[egimosx]*", String.Regex, "#pop"),
+            (r"\{(\\\\|\\[^\\]|[^}\\])*\}[egimosx]*", String.Regex, "#pop"),
+            (r"<(\\\\|\\[^\\]|[^>\\])*>[egimosx]*", String.Regex, "#pop"),
+            (r"\[(\\\\|\\[^\\]|[^\]\\])*\][egimosx]*", String.Regex, "#pop"),
+            (r"\((\\\\|\\[^\\]|[^)\\])*\)[egimosx]*", String.Regex, "#pop"),
+            (r"@(\\\\|\\[^\\]|[^@\\])*@[egimosx]*", String.Regex, "#pop"),
+            (r"%(\\\\|\\[^\\]|[^%\\])*%[egimosx]*", String.Regex, "#pop"),
+            (r"\$(\\\\|\\[^\\]|[^$\\])*\$[egimosx]*", String.Regex, "#pop"),
         ],
-        'root': [
-            (r'\s+', Whitespace),
-
+        "root": [
+            (r"\s+", Whitespace),
             # balanced delimiters (copied from PerlLexer):
-            (r's\{(\\\\|\\[^\\]|[^}\\])*\}\s*', String.Regex, 'balanced-regex'),
-            (r's<(\\\\|\\[^\\]|[^>\\])*>\s*', String.Regex, 'balanced-regex'),
-            (r's\[(\\\\|\\[^\\]|[^\]\\])*\]\s*', String.Regex, 'balanced-regex'),
-            (r's\((\\\\|\\[^\\]|[^)\\])*\)\s*', String.Regex, 'balanced-regex'),
-            (r'm?/(\\\\|\\[^\\]|[^///\n])*/[gcimosx]*', String.Regex),
-            (r'm(?=[/!\\{<\[(@%$])', String.Regex, 'balanced-regex'),
-
+            (r"s\{(\\\\|\\[^\\]|[^}\\])*\}\s*", String.Regex, "balanced-regex"),
+            (r"s<(\\\\|\\[^\\]|[^>\\])*>\s*", String.Regex, "balanced-regex"),
+            (r"s\[(\\\\|\\[^\\]|[^\]\\])*\]\s*", String.Regex, "balanced-regex"),
+            (r"s\((\\\\|\\[^\\]|[^)\\])*\)\s*", String.Regex, "balanced-regex"),
+            (r"m?/(\\\\|\\[^\\]|[^///\n])*/[gcimosx]*", String.Regex),
+            (r"m(?=[/!\\{<\[(@%$])", String.Regex, "balanced-regex"),
             # Comments
-            (r'#(.*?)\n', Comment.Single),
+            (r"#(.*?)\n", Comment.Single),
             # Symbols
-            (r'\'([^\'\s\[\](){}]+|\[\])', String.Symbol),
+            (r"\'([^\'\s\[\](){}]+|\[\])", String.Symbol),
             # Multi-line DoubleQuotedString
             (r'"""(\\\\|\\[^\\]|[^\\])*?"""', String),
             # DoubleQuotedString
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
             # keywords
-            (r'(def|class|try|catch|finally|retry|return|return_local|match|'
-             r'case|->|=>)\b', Keyword),
+            (
+                r"(def|class|try|catch|finally|retry|return|return_local|match|"
+                r"case|->|=>)\b",
+                Keyword,
+            ),
             # constants
-            (r'(self|super|nil|false|true)\b', Name.Constant),
-            (r'[(){};,/?|:\\]', Punctuation),
+            (r"(self|super|nil|false|true)\b", Name.Constant),
+            (r"[(){};,/?|:\\]", Punctuation),
             # names
-            (words((
-                'Object', 'Array', 'Hash', 'Directory', 'File', 'Class', 'String',
-                'Number', 'Enumerable', 'FancyEnumerable', 'Block', 'TrueClass',
-                'NilClass', 'FalseClass', 'Tuple', 'Symbol', 'Stack', 'Set',
-                'FancySpec', 'Method', 'Package', 'Range'), suffix=r'\b'),
-             Name.Builtin),
+            (
+                words(
+                    (
+                        "Object",
+                        "Array",
+                        "Hash",
+                        "Directory",
+                        "File",
+                        "Class",
+                        "String",
+                        "Number",
+                        "Enumerable",
+                        "FancyEnumerable",
+                        "Block",
+                        "TrueClass",
+                        "NilClass",
+                        "FalseClass",
+                        "Tuple",
+                        "Symbol",
+                        "Stack",
+                        "Set",
+                        "FancySpec",
+                        "Method",
+                        "Package",
+                        "Range",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
             # functions
-            (r'[a-zA-Z](\w|[-+?!=*/^><%])*:', Name.Function),
+            (r"[a-zA-Z](\w|[-+?!=*/^><%])*:", Name.Function),
             # operators, must be below functions
-            (r'[-+*/~,<>=&!?%^\[\].$]+', Operator),
-            (r'[A-Z]\w*', Name.Constant),
-            (r'@[a-zA-Z_]\w*', Name.Variable.Instance),
-            (r'@@[a-zA-Z_]\w*', Name.Variable.Class),
-            ('@@?', Operator),
-            (r'[a-zA-Z_]\w*', Name),
+            (r"[-+*/~,<>=&!?%^\[\].$]+", Operator),
+            (r"[A-Z]\w*", Name.Constant),
+            (r"@[a-zA-Z_]\w*", Name.Variable.Instance),
+            (r"@@[a-zA-Z_]\w*", Name.Variable.Class),
+            ("@@?", Operator),
+            (r"[a-zA-Z_]\w*", Name),
             # numbers - / checks are necessary to avoid mismarking regexes,
             # see comment in RubyLexer
-            (r'(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?',
-             bygroups(Number.Oct, Whitespace, Operator)),
-            (r'(0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?',
-             bygroups(Number.Hex, Whitespace, Operator)),
-            (r'(0[bB][01]+(?:_[01]+)*)(\s*)([/?])?',
-             bygroups(Number.Bin, Whitespace, Operator)),
-            (r'([\d]+(?:_\d+)*)(\s*)([/?])?',
-             bygroups(Number.Integer, Whitespace, Operator)),
-            (r'\d+([eE][+-]?[0-9]+)|\d+\.\d+([eE][+-]?[0-9]+)?', Number.Float),
-            (r'\d+', Number.Integer)
-        ]
+            (
+                r"(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?",
+                bygroups(Number.Oct, Whitespace, Operator),
+            ),
+            (
+                r"(0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?",
+                bygroups(Number.Hex, Whitespace, Operator),
+            ),
+            (
+                r"(0[bB][01]+(?:_[01]+)*)(\s*)([/?])?",
+                bygroups(Number.Bin, Whitespace, Operator),
+            ),
+            (
+                r"([\d]+(?:_\d+)*)(\s*)([/?])?",
+                bygroups(Number.Integer, Whitespace, Operator),
+            ),
+            (r"\d+([eE][+-]?[0-9]+)|\d+\.\d+([eE][+-]?[0-9]+)?", Number.Float),
+            (r"\d+", Number.Integer),
+        ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rust.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rust.py
index 6341047..f7e53b9 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rust.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/rust.py
@@ -1,222 +1,375 @@
 """
-    pygments.lexers.rust
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.rust
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Rust language.
+Lexers for the Rust language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, bygroups, words, default
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
 
-__all__ = ['RustLexer']
+__all__ = ["RustLexer"]
 
 
 class RustLexer(RegexLexer):
     """
     Lexer for the Rust programming language (version 1.47).
     """
-    name = 'Rust'
-    url = 'https://www.rust-lang.org/'
-    filenames = ['*.rs', '*.rs.in']
-    aliases = ['rust', 'rs']
-    mimetypes = ['text/rust', 'text/x-rust']
-    version_added = '1.6'
 
-    keyword_types = (words((
-        'u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128',
-        'usize', 'isize', 'f32', 'f64', 'char', 'str', 'bool',
-    ), suffix=r'\b'), Keyword.Type)
+    name = "Rust"
+    url = "https://www.rust-lang.org/"
+    filenames = ["*.rs", "*.rs.in"]
+    aliases = ["rust", "rs"]
+    mimetypes = ["text/rust", "text/x-rust"]
+    version_added = "1.6"
 
-    builtin_funcs_types = (words((
-        'Copy', 'Send', 'Sized', 'Sync', 'Unpin',
-        'Drop', 'Fn', 'FnMut', 'FnOnce', 'drop',
-        'Box', 'ToOwned', 'Clone',
-        'PartialEq', 'PartialOrd', 'Eq', 'Ord',
-        'AsRef', 'AsMut', 'Into', 'From', 'Default',
-        'Iterator', 'Extend', 'IntoIterator', 'DoubleEndedIterator',
-        'ExactSizeIterator',
-        'Option', 'Some', 'None',
-        'Result', 'Ok', 'Err',
-        'String', 'ToString', 'Vec',
-    ), suffix=r'\b'), Name.Builtin)
+    keyword_types = (
+        words(
+            (
+                "u8",
+                "u16",
+                "u32",
+                "u64",
+                "u128",
+                "i8",
+                "i16",
+                "i32",
+                "i64",
+                "i128",
+                "usize",
+                "isize",
+                "f32",
+                "f64",
+                "char",
+                "str",
+                "bool",
+            ),
+            suffix=r"\b",
+        ),
+        Keyword.Type,
+    )
 
-    builtin_macros = (words((
-        'asm', 'assert', 'assert_eq', 'assert_ne', 'cfg', 'column',
-        'compile_error', 'concat', 'concat_idents', 'dbg', 'debug_assert',
-        'debug_assert_eq', 'debug_assert_ne', 'env', 'eprint', 'eprintln',
-        'file', 'format', 'format_args', 'format_args_nl', 'global_asm',
-        'include', 'include_bytes', 'include_str',
-        'is_aarch64_feature_detected',
-        'is_arm_feature_detected',
-        'is_mips64_feature_detected',
-        'is_mips_feature_detected',
-        'is_powerpc64_feature_detected',
-        'is_powerpc_feature_detected',
-        'is_x86_feature_detected',
-        'line', 'llvm_asm', 'log_syntax', 'macro_rules', 'matches',
-        'module_path', 'option_env', 'panic', 'print', 'println', 'stringify',
-        'thread_local', 'todo', 'trace_macros', 'unimplemented', 'unreachable',
-        'vec', 'write', 'writeln',
-    ), suffix=r'!'), Name.Function.Magic)
+    builtin_funcs_types = (
+        words(
+            (
+                "Copy",
+                "Send",
+                "Sized",
+                "Sync",
+                "Unpin",
+                "Drop",
+                "Fn",
+                "FnMut",
+                "FnOnce",
+                "drop",
+                "Box",
+                "ToOwned",
+                "Clone",
+                "PartialEq",
+                "PartialOrd",
+                "Eq",
+                "Ord",
+                "AsRef",
+                "AsMut",
+                "Into",
+                "From",
+                "Default",
+                "Iterator",
+                "Extend",
+                "IntoIterator",
+                "DoubleEndedIterator",
+                "ExactSizeIterator",
+                "Option",
+                "Some",
+                "None",
+                "Result",
+                "Ok",
+                "Err",
+                "String",
+                "ToString",
+                "Vec",
+            ),
+            suffix=r"\b",
+        ),
+        Name.Builtin,
+    )
+
+    builtin_macros = (
+        words(
+            (
+                "asm",
+                "assert",
+                "assert_eq",
+                "assert_ne",
+                "cfg",
+                "column",
+                "compile_error",
+                "concat",
+                "concat_idents",
+                "dbg",
+                "debug_assert",
+                "debug_assert_eq",
+                "debug_assert_ne",
+                "env",
+                "eprint",
+                "eprintln",
+                "file",
+                "format",
+                "format_args",
+                "format_args_nl",
+                "global_asm",
+                "include",
+                "include_bytes",
+                "include_str",
+                "is_aarch64_feature_detected",
+                "is_arm_feature_detected",
+                "is_mips64_feature_detected",
+                "is_mips_feature_detected",
+                "is_powerpc64_feature_detected",
+                "is_powerpc_feature_detected",
+                "is_x86_feature_detected",
+                "line",
+                "llvm_asm",
+                "log_syntax",
+                "macro_rules",
+                "matches",
+                "module_path",
+                "option_env",
+                "panic",
+                "print",
+                "println",
+                "stringify",
+                "thread_local",
+                "todo",
+                "trace_macros",
+                "unimplemented",
+                "unreachable",
+                "vec",
+                "write",
+                "writeln",
+            ),
+            suffix=r"!",
+        ),
+        Name.Function.Magic,
+    )
 
     tokens = {
-        'root': [
+        "root": [
             # rust allows a file to start with a shebang, but if the first line
             # starts with #![ then it's not a shebang but a crate attribute.
-            (r'#![^[\r\n].*$', Comment.Preproc),
-            default('base'),
+            (r"#![^[\r\n].*$", Comment.Preproc),
+            default("base"),
         ],
-        'base': [
+        "base": [
             # Whitespace and Comments
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
-            (r'//!.*?\n', String.Doc),
-            (r'///(\n|[^/].*?\n)', String.Doc),
-            (r'//(.*?)\n', Comment.Single),
-            (r'/\*\*(\n|[^/*])', String.Doc, 'doccomment'),
-            (r'/\*!', String.Doc, 'doccomment'),
-            (r'/\*', Comment.Multiline, 'comment'),
-
+            (r"\n", Whitespace),
+            (r"\s+", Whitespace),
+            (r"//!.*?\n", String.Doc),
+            (r"///(\n|[^/].*?\n)", String.Doc),
+            (r"//(.*?)\n", Comment.Single),
+            (r"/\*\*(\n|[^/*])", String.Doc, "doccomment"),
+            (r"/\*!", String.Doc, "doccomment"),
+            (r"/\*", Comment.Multiline, "comment"),
             # Macro parameters
             (r"""\$([a-zA-Z_]\w*|\(,?|\),?|,?)""", Comment.Preproc),
             # Keywords
-            (words(('as', 'async', 'await', 'box', 'const', 'crate', 'dyn',
-                    'else', 'extern', 'for', 'if', 'impl', 'in', 'loop',
-                    'match', 'move', 'mut', 'pub', 'ref', 'return', 'static',
-                    'super', 'trait', 'unsafe', 'use', 'where', 'while'),
-                   suffix=r'\b'), Keyword),
-            (words(('abstract', 'become', 'do', 'final', 'macro', 'override',
-                    'priv', 'typeof', 'try', 'unsized', 'virtual', 'yield'),
-                   suffix=r'\b'), Keyword.Reserved),
-            (r'(true|false)\b', Keyword.Constant),
-            (r'self\b', Name.Builtin.Pseudo),
-            (r'mod\b', Keyword, 'modname'),
-            (r'let\b', Keyword.Declaration),
-            (r'fn\b', Keyword, 'funcname'),
-            (r'(struct|enum|type|union)\b', Keyword, 'typename'),
-            (r'(default)(\s+)(type|fn)\b', bygroups(Keyword, Whitespace, Keyword)),
+            (
+                words(
+                    (
+                        "as",
+                        "async",
+                        "await",
+                        "box",
+                        "const",
+                        "crate",
+                        "dyn",
+                        "else",
+                        "extern",
+                        "for",
+                        "if",
+                        "impl",
+                        "in",
+                        "loop",
+                        "match",
+                        "move",
+                        "mut",
+                        "pub",
+                        "ref",
+                        "return",
+                        "static",
+                        "super",
+                        "trait",
+                        "unsafe",
+                        "use",
+                        "where",
+                        "while",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                words(
+                    (
+                        "abstract",
+                        "become",
+                        "do",
+                        "final",
+                        "macro",
+                        "override",
+                        "priv",
+                        "typeof",
+                        "try",
+                        "unsized",
+                        "virtual",
+                        "yield",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+            ),
+            (r"(true|false)\b", Keyword.Constant),
+            (r"self\b", Name.Builtin.Pseudo),
+            (r"mod\b", Keyword, "modname"),
+            (r"let\b", Keyword.Declaration),
+            (r"fn\b", Keyword, "funcname"),
+            (r"(struct|enum|type|union)\b", Keyword, "typename"),
+            (r"(default)(\s+)(type|fn)\b", bygroups(Keyword, Whitespace, Keyword)),
             keyword_types,
-            (r'[sS]elf\b', Name.Builtin.Pseudo),
+            (r"[sS]elf\b", Name.Builtin.Pseudo),
             # Prelude (taken from Rust's src/libstd/prelude.rs)
             builtin_funcs_types,
             builtin_macros,
             # Path separators, so types don't catch them.
-            (r'::\b', Punctuation),
+            (r"::\b", Punctuation),
             # Types in positions.
-            (r'(?::|->)', Punctuation, 'typename'),
+            (r"(?::|->)", Punctuation, "typename"),
             # Labels
-            (r'(break|continue)(\b\s*)(\'[A-Za-z_]\w*)?',
-             bygroups(Keyword, Text.Whitespace, Name.Label)),
-
+            (
+                r"(break|continue)(\b\s*)(\'[A-Za-z_]\w*)?",
+                bygroups(Keyword, Text.Whitespace, Name.Label),
+            ),
             # Character literals
-            (r"""'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
-             r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
-             String.Char),
-            (r"""b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0"""
-             r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
-             String.Char),
-
+            (
+                r"""'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
+                r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
+                String.Char,
+            ),
+            (
+                r"""b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0"""
+                r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
+                String.Char,
+            ),
             # Binary literals
-            (r'0b[01_]+', Number.Bin, 'number_lit'),
+            (r"0b[01_]+", Number.Bin, "number_lit"),
             # Octal literals
-            (r'0o[0-7_]+', Number.Oct, 'number_lit'),
+            (r"0o[0-7_]+", Number.Oct, "number_lit"),
             # Hexadecimal literals
-            (r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'),
+            (r"0[xX][0-9a-fA-F_]+", Number.Hex, "number_lit"),
             # Decimal literals
-            (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|'
-             r'\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)', Number.Float,
-             'number_lit'),
-            (r'[0-9][0-9_]*', Number.Integer, 'number_lit'),
-
+            (
+                r"[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|"
+                r"\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)",
+                Number.Float,
+                "number_lit",
+            ),
+            (r"[0-9][0-9_]*", Number.Integer, "number_lit"),
             # String literals
-            (r'b"', String, 'bytestring'),
-            (r'"', String, 'string'),
+            (r'b"', String, "bytestring"),
+            (r'"', String, "string"),
             (r'(?s)b?r(#*)".*?"\1', String),
-
             # Lifetime names
-            (r"'", Operator, 'lifetime'),
-
+            (r"'", Operator, "lifetime"),
             # Operators and Punctuation
-            (r'\.\.=?', Operator),
-            (r'[{}()\[\],.;]', Punctuation),
-            (r'[+\-*/%&|<>^!~@=:?]', Operator),
-
+            (r"\.\.=?", Operator),
+            (r"[{}()\[\],.;]", Punctuation),
+            (r"[+\-*/%&|<>^!~@=:?]", Operator),
             # Identifiers
-            (r'[a-zA-Z_]\w*', Name),
+            (r"[a-zA-Z_]\w*", Name),
             # Raw identifiers
-            (r'r#[a-zA-Z_]\w*', Name),
-
+            (r"r#[a-zA-Z_]\w*", Name),
             # Attributes
-            (r'#!?\[', Comment.Preproc, 'attribute['),
-
+            (r"#!?\[", Comment.Preproc, "attribute["),
             # Misc
             # Lone hashes: not used in Rust syntax, but allowed in macro
             # arguments, most famously for quote::quote!()
-            (r'#', Punctuation),
+            (r"#", Punctuation),
         ],
-        'comment': [
-            (r'[^*/]+', Comment.Multiline),
-            (r'/\*', Comment.Multiline, '#push'),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[*/]', Comment.Multiline),
+        "comment": [
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
         ],
-        'doccomment': [
-            (r'[^*/]+', String.Doc),
-            (r'/\*', String.Doc, '#push'),
-            (r'\*/', String.Doc, '#pop'),
-            (r'[*/]', String.Doc),
+        "doccomment": [
+            (r"[^*/]+", String.Doc),
+            (r"/\*", String.Doc, "#push"),
+            (r"\*/", String.Doc, "#pop"),
+            (r"[*/]", String.Doc),
         ],
-        'modname': [
-            (r'\s+', Whitespace),
-            (r'[a-zA-Z_]\w*', Name.Namespace, '#pop'),
-            default('#pop'),
+        "modname": [
+            (r"\s+", Whitespace),
+            (r"[a-zA-Z_]\w*", Name.Namespace, "#pop"),
+            default("#pop"),
         ],
-        'funcname': [
-            (r'\s+', Whitespace),
-            (r'[a-zA-Z_]\w*', Name.Function, '#pop'),
-            default('#pop'),
+        "funcname": [
+            (r"\s+", Whitespace),
+            (r"[a-zA-Z_]\w*", Name.Function, "#pop"),
+            default("#pop"),
         ],
-        'typename': [
-            (r'\s+', Whitespace),
-            (r'&', Keyword.Pseudo),
-            (r"'", Operator, 'lifetime'),
+        "typename": [
+            (r"\s+", Whitespace),
+            (r"&", Keyword.Pseudo),
+            (r"'", Operator, "lifetime"),
             builtin_funcs_types,
             keyword_types,
-            (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
-            default('#pop'),
+            (r"[a-zA-Z_]\w*", Name.Class, "#pop"),
+            default("#pop"),
         ],
-        'lifetime': [
+        "lifetime": [
             (r"(static|_)", Name.Builtin),
             (r"[a-zA-Z_]+\w*", Name.Attribute),
-            default('#pop'),
+            default("#pop"),
         ],
-        'number_lit': [
-            (r'[ui](8|16|32|64|size)', Keyword, '#pop'),
-            (r'f(32|64)', Keyword, '#pop'),
-            default('#pop'),
+        "number_lit": [
+            (r"[ui](8|16|32|64|size)", Keyword, "#pop"),
+            (r"f(32|64)", Keyword, "#pop"),
+            default("#pop"),
         ],
-        'string': [
-            (r'"', String, '#pop'),
-            (r"""\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
-             r"""|\\u\{[0-9a-fA-F]{1,6}\}""", String.Escape),
+        "string": [
+            (r'"', String, "#pop"),
+            (
+                r"""\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
+                r"""|\\u\{[0-9a-fA-F]{1,6}\}""",
+                String.Escape,
+            ),
             (r'[^\\"]+', String),
-            (r'\\', String),
+            (r"\\", String),
         ],
-        'bytestring': [
+        "bytestring": [
             (r"""\\x[89a-fA-F][0-9a-fA-F]""", String.Escape),
-            include('string'),
+            include("string"),
         ],
-        'attribute_common': [
-            (r'"', String, 'string'),
-            (r'\[', Comment.Preproc, 'attribute['),
+        "attribute_common": [
+            (r'"', String, "string"),
+            (r"\[", Comment.Preproc, "attribute["),
         ],
-        'attribute[': [
-            include('attribute_common'),
-            (r'\]', Comment.Preproc, '#pop'),
+        "attribute[": [
+            include("attribute_common"),
+            (r"\]", Comment.Preproc, "#pop"),
             (r'[^"\]\[]+', Comment.Preproc),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sas.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sas.py
index 1b2ad43..b6e0a87 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sas.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sas.py
@@ -1,224 +1,571 @@
 """
-    pygments.lexers.sas
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.sas
+~~~~~~~~~~~~~~~~~~~
 
-    Lexer for SAS.
+Lexer for SAS.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 from pygments.lexer import RegexLexer, include, words
-from pygments.token import Comment, Keyword, Name, Number, String, Text, \
-    Other, Generic
+from pygments.token import Comment, Keyword, Name, Number, String, Text, Other, Generic
 
-__all__ = ['SASLexer']
+__all__ = ["SASLexer"]
 
 
 class SASLexer(RegexLexer):
     """
     For SAS files.
     """
+
     # Syntax from syntax/sas.vim by James Kidd 
 
-    name      = 'SAS'
-    aliases   = ['sas']
-    filenames = ['*.SAS', '*.sas']
-    mimetypes = ['text/x-sas', 'text/sas', 'application/x-sas']
-    url = 'https://en.wikipedia.org/wiki/SAS_(software)'
-    version_added = '2.2'
-    flags     = re.IGNORECASE | re.MULTILINE
+    name = "SAS"
+    aliases = ["sas"]
+    filenames = ["*.SAS", "*.sas"]
+    mimetypes = ["text/x-sas", "text/sas", "application/x-sas"]
+    url = "https://en.wikipedia.org/wiki/SAS_(software)"
+    version_added = "2.2"
+    flags = re.IGNORECASE | re.MULTILINE
 
     builtins_macros = (
-        "bquote", "nrbquote", "cmpres", "qcmpres", "compstor", "datatyp",
-        "display", "do", "else", "end", "eval", "global", "goto", "if",
-        "index", "input", "keydef", "label", "left", "length", "let",
-        "local", "lowcase", "macro", "mend", "nrquote",
-        "nrstr", "put", "qleft", "qlowcase", "qscan",
-        "qsubstr", "qsysfunc", "qtrim", "quote", "qupcase", "scan",
-        "str", "substr", "superq", "syscall", "sysevalf", "sysexec",
-        "sysfunc", "sysget", "syslput", "sysprod", "sysrc", "sysrput",
-        "then", "to", "trim", "unquote", "until", "upcase", "verify",
-        "while", "window"
+        "bquote",
+        "nrbquote",
+        "cmpres",
+        "qcmpres",
+        "compstor",
+        "datatyp",
+        "display",
+        "do",
+        "else",
+        "end",
+        "eval",
+        "global",
+        "goto",
+        "if",
+        "index",
+        "input",
+        "keydef",
+        "label",
+        "left",
+        "length",
+        "let",
+        "local",
+        "lowcase",
+        "macro",
+        "mend",
+        "nrquote",
+        "nrstr",
+        "put",
+        "qleft",
+        "qlowcase",
+        "qscan",
+        "qsubstr",
+        "qsysfunc",
+        "qtrim",
+        "quote",
+        "qupcase",
+        "scan",
+        "str",
+        "substr",
+        "superq",
+        "syscall",
+        "sysevalf",
+        "sysexec",
+        "sysfunc",
+        "sysget",
+        "syslput",
+        "sysprod",
+        "sysrc",
+        "sysrput",
+        "then",
+        "to",
+        "trim",
+        "unquote",
+        "until",
+        "upcase",
+        "verify",
+        "while",
+        "window",
     )
 
-    builtins_conditionals = (
-        "do", "if", "then", "else", "end", "until", "while"
-    )
+    builtins_conditionals = ("do", "if", "then", "else", "end", "until", "while")
 
     builtins_statements = (
-        "abort", "array", "attrib", "by", "call", "cards", "cards4",
-        "catname", "continue", "datalines", "datalines4", "delete", "delim",
-        "delimiter", "display", "dm", "drop", "endsas", "error", "file",
-        "filename", "footnote", "format", "goto", "in", "infile", "informat",
-        "input", "keep", "label", "leave", "length", "libname", "link",
-        "list", "lostcard", "merge", "missing", "modify", "options", "output",
-        "out", "page", "put", "redirect", "remove", "rename", "replace",
-        "retain", "return", "select", "set", "skip", "startsas", "stop",
-        "title", "update", "waitsas", "where", "window", "x", "systask"
+        "abort",
+        "array",
+        "attrib",
+        "by",
+        "call",
+        "cards",
+        "cards4",
+        "catname",
+        "continue",
+        "datalines",
+        "datalines4",
+        "delete",
+        "delim",
+        "delimiter",
+        "display",
+        "dm",
+        "drop",
+        "endsas",
+        "error",
+        "file",
+        "filename",
+        "footnote",
+        "format",
+        "goto",
+        "in",
+        "infile",
+        "informat",
+        "input",
+        "keep",
+        "label",
+        "leave",
+        "length",
+        "libname",
+        "link",
+        "list",
+        "lostcard",
+        "merge",
+        "missing",
+        "modify",
+        "options",
+        "output",
+        "out",
+        "page",
+        "put",
+        "redirect",
+        "remove",
+        "rename",
+        "replace",
+        "retain",
+        "return",
+        "select",
+        "set",
+        "skip",
+        "startsas",
+        "stop",
+        "title",
+        "update",
+        "waitsas",
+        "where",
+        "window",
+        "x",
+        "systask",
     )
 
     builtins_sql = (
-        "add", "and", "alter", "as", "cascade", "check", "create",
-        "delete", "describe", "distinct", "drop", "foreign", "from",
-        "group", "having", "index", "insert", "into", "in", "key", "like",
-        "message", "modify", "msgtype", "not", "null", "on", "or",
-        "order", "primary", "references", "reset", "restrict", "select",
-        "set", "table", "unique", "update", "validate", "view", "where"
+        "add",
+        "and",
+        "alter",
+        "as",
+        "cascade",
+        "check",
+        "create",
+        "delete",
+        "describe",
+        "distinct",
+        "drop",
+        "foreign",
+        "from",
+        "group",
+        "having",
+        "index",
+        "insert",
+        "into",
+        "in",
+        "key",
+        "like",
+        "message",
+        "modify",
+        "msgtype",
+        "not",
+        "null",
+        "on",
+        "or",
+        "order",
+        "primary",
+        "references",
+        "reset",
+        "restrict",
+        "select",
+        "set",
+        "table",
+        "unique",
+        "update",
+        "validate",
+        "view",
+        "where",
     )
 
     builtins_functions = (
-        "abs", "addr", "airy", "arcos", "arsin", "atan", "attrc",
-        "attrn", "band", "betainv", "blshift", "bnot", "bor",
-        "brshift", "bxor", "byte", "cdf", "ceil", "cexist", "cinv",
-        "close", "cnonct", "collate", "compbl", "compound",
-        "compress", "cos", "cosh", "css", "curobs", "cv", "daccdb",
-        "daccdbsl", "daccsl", "daccsyd", "dacctab", "dairy", "date",
-        "datejul", "datepart", "datetime", "day", "dclose", "depdb",
-        "depdbsl", "depsl", "depsyd",
-        "deptab", "dequote", "dhms", "dif", "digamma",
-        "dim", "dinfo", "dnum", "dopen", "doptname", "doptnum",
-        "dread", "dropnote", "dsname", "erf", "erfc", "exist", "exp",
-        "fappend", "fclose", "fcol", "fdelete", "fetch", "fetchobs",
-        "fexist", "fget", "fileexist", "filename", "fileref",
-        "finfo", "finv", "fipname", "fipnamel", "fipstate", "floor",
-        "fnonct", "fnote", "fopen", "foptname", "foptnum", "fpoint",
-        "fpos", "fput", "fread", "frewind", "frlen", "fsep", "fuzz",
-        "fwrite", "gaminv", "gamma", "getoption", "getvarc", "getvarn",
-        "hbound", "hms", "hosthelp", "hour", "ibessel", "index",
-        "indexc", "indexw", "input", "inputc", "inputn", "int",
-        "intck", "intnx", "intrr", "irr", "jbessel", "juldate",
-        "kurtosis", "lag", "lbound", "left", "length", "lgamma",
-        "libname", "libref", "log", "log10", "log2", "logpdf", "logpmf",
-        "logsdf", "lowcase", "max", "mdy", "mean", "min", "minute",
-        "mod", "month", "mopen", "mort", "n", "netpv", "nmiss",
-        "normal", "note", "npv", "open", "ordinal", "pathname",
-        "pdf", "peek", "peekc", "pmf", "point", "poisson", "poke",
-        "probbeta", "probbnml", "probchi", "probf", "probgam",
-        "probhypr", "probit", "probnegb", "probnorm", "probt",
-        "put", "putc", "putn", "qtr", "quote", "ranbin", "rancau",
-        "ranexp", "rangam", "range", "rank", "rannor", "ranpoi",
-        "rantbl", "rantri", "ranuni", "repeat", "resolve", "reverse",
-        "rewind", "right", "round", "saving", "scan", "sdf", "second",
-        "sign", "sin", "sinh", "skewness", "soundex", "spedis",
-        "sqrt", "std", "stderr", "stfips", "stname", "stnamel",
-        "substr", "sum", "symget", "sysget", "sysmsg", "sysprod",
-        "sysrc", "system", "tan", "tanh", "time", "timepart", "tinv",
-        "tnonct", "today", "translate", "tranwrd", "trigamma",
-        "trim", "trimn", "trunc", "uniform", "upcase", "uss", "var",
-        "varfmt", "varinfmt", "varlabel", "varlen", "varname",
-        "varnum", "varray", "varrayx", "vartype", "verify", "vformat",
-        "vformatd", "vformatdx", "vformatn", "vformatnx", "vformatw",
-        "vformatwx", "vformatx", "vinarray", "vinarrayx", "vinformat",
-        "vinformatd", "vinformatdx", "vinformatn", "vinformatnx",
-        "vinformatw", "vinformatwx", "vinformatx", "vlabel",
-        "vlabelx", "vlength", "vlengthx", "vname", "vnamex", "vtype",
-        "vtypex", "weekday", "year", "yyq", "zipfips", "zipname",
-        "zipnamel", "zipstate"
+        "abs",
+        "addr",
+        "airy",
+        "arcos",
+        "arsin",
+        "atan",
+        "attrc",
+        "attrn",
+        "band",
+        "betainv",
+        "blshift",
+        "bnot",
+        "bor",
+        "brshift",
+        "bxor",
+        "byte",
+        "cdf",
+        "ceil",
+        "cexist",
+        "cinv",
+        "close",
+        "cnonct",
+        "collate",
+        "compbl",
+        "compound",
+        "compress",
+        "cos",
+        "cosh",
+        "css",
+        "curobs",
+        "cv",
+        "daccdb",
+        "daccdbsl",
+        "daccsl",
+        "daccsyd",
+        "dacctab",
+        "dairy",
+        "date",
+        "datejul",
+        "datepart",
+        "datetime",
+        "day",
+        "dclose",
+        "depdb",
+        "depdbsl",
+        "depsl",
+        "depsyd",
+        "deptab",
+        "dequote",
+        "dhms",
+        "dif",
+        "digamma",
+        "dim",
+        "dinfo",
+        "dnum",
+        "dopen",
+        "doptname",
+        "doptnum",
+        "dread",
+        "dropnote",
+        "dsname",
+        "erf",
+        "erfc",
+        "exist",
+        "exp",
+        "fappend",
+        "fclose",
+        "fcol",
+        "fdelete",
+        "fetch",
+        "fetchobs",
+        "fexist",
+        "fget",
+        "fileexist",
+        "filename",
+        "fileref",
+        "finfo",
+        "finv",
+        "fipname",
+        "fipnamel",
+        "fipstate",
+        "floor",
+        "fnonct",
+        "fnote",
+        "fopen",
+        "foptname",
+        "foptnum",
+        "fpoint",
+        "fpos",
+        "fput",
+        "fread",
+        "frewind",
+        "frlen",
+        "fsep",
+        "fuzz",
+        "fwrite",
+        "gaminv",
+        "gamma",
+        "getoption",
+        "getvarc",
+        "getvarn",
+        "hbound",
+        "hms",
+        "hosthelp",
+        "hour",
+        "ibessel",
+        "index",
+        "indexc",
+        "indexw",
+        "input",
+        "inputc",
+        "inputn",
+        "int",
+        "intck",
+        "intnx",
+        "intrr",
+        "irr",
+        "jbessel",
+        "juldate",
+        "kurtosis",
+        "lag",
+        "lbound",
+        "left",
+        "length",
+        "lgamma",
+        "libname",
+        "libref",
+        "log",
+        "log10",
+        "log2",
+        "logpdf",
+        "logpmf",
+        "logsdf",
+        "lowcase",
+        "max",
+        "mdy",
+        "mean",
+        "min",
+        "minute",
+        "mod",
+        "month",
+        "mopen",
+        "mort",
+        "n",
+        "netpv",
+        "nmiss",
+        "normal",
+        "note",
+        "npv",
+        "open",
+        "ordinal",
+        "pathname",
+        "pdf",
+        "peek",
+        "peekc",
+        "pmf",
+        "point",
+        "poisson",
+        "poke",
+        "probbeta",
+        "probbnml",
+        "probchi",
+        "probf",
+        "probgam",
+        "probhypr",
+        "probit",
+        "probnegb",
+        "probnorm",
+        "probt",
+        "put",
+        "putc",
+        "putn",
+        "qtr",
+        "quote",
+        "ranbin",
+        "rancau",
+        "ranexp",
+        "rangam",
+        "range",
+        "rank",
+        "rannor",
+        "ranpoi",
+        "rantbl",
+        "rantri",
+        "ranuni",
+        "repeat",
+        "resolve",
+        "reverse",
+        "rewind",
+        "right",
+        "round",
+        "saving",
+        "scan",
+        "sdf",
+        "second",
+        "sign",
+        "sin",
+        "sinh",
+        "skewness",
+        "soundex",
+        "spedis",
+        "sqrt",
+        "std",
+        "stderr",
+        "stfips",
+        "stname",
+        "stnamel",
+        "substr",
+        "sum",
+        "symget",
+        "sysget",
+        "sysmsg",
+        "sysprod",
+        "sysrc",
+        "system",
+        "tan",
+        "tanh",
+        "time",
+        "timepart",
+        "tinv",
+        "tnonct",
+        "today",
+        "translate",
+        "tranwrd",
+        "trigamma",
+        "trim",
+        "trimn",
+        "trunc",
+        "uniform",
+        "upcase",
+        "uss",
+        "var",
+        "varfmt",
+        "varinfmt",
+        "varlabel",
+        "varlen",
+        "varname",
+        "varnum",
+        "varray",
+        "varrayx",
+        "vartype",
+        "verify",
+        "vformat",
+        "vformatd",
+        "vformatdx",
+        "vformatn",
+        "vformatnx",
+        "vformatw",
+        "vformatwx",
+        "vformatx",
+        "vinarray",
+        "vinarrayx",
+        "vinformat",
+        "vinformatd",
+        "vinformatdx",
+        "vinformatn",
+        "vinformatnx",
+        "vinformatw",
+        "vinformatwx",
+        "vinformatx",
+        "vlabel",
+        "vlabelx",
+        "vlength",
+        "vlengthx",
+        "vname",
+        "vnamex",
+        "vtype",
+        "vtypex",
+        "weekday",
+        "year",
+        "yyq",
+        "zipfips",
+        "zipname",
+        "zipnamel",
+        "zipstate",
     )
 
     tokens = {
-        'root': [
-            include('comments'),
-            include('proc-data'),
-            include('cards-datalines'),
-            include('logs'),
-            include('general'),
-            (r'.', Text),
+        "root": [
+            include("comments"),
+            include("proc-data"),
+            include("cards-datalines"),
+            include("logs"),
+            include("general"),
+            (r".", Text),
         ],
         # SAS is multi-line regardless, but * is ended by ;
-        'comments': [
-            (r'^\s*\*.*?;', Comment),
-            (r'/\*.*?\*/', Comment),
-            (r'^\s*\*(.|\n)*?;', Comment.Multiline),
-            (r'/[*](.|\n)*?[*]/', Comment.Multiline),
+        "comments": [
+            (r"^\s*\*.*?;", Comment),
+            (r"/\*.*?\*/", Comment),
+            (r"^\s*\*(.|\n)*?;", Comment.Multiline),
+            (r"/[*](.|\n)*?[*]/", Comment.Multiline),
         ],
         # Special highlight for proc, data, quit, run
-        'proc-data': [
-            (r'(^|;)\s*(proc \w+|data|run|quit)[\s;]',
-             Keyword.Reserved),
+        "proc-data": [
+            (r"(^|;)\s*(proc \w+|data|run|quit)[\s;]", Keyword.Reserved),
         ],
         # Special highlight cards and datalines
-        'cards-datalines': [
-            (r'^\s*(datalines|cards)\s*;\s*$', Keyword, 'data'),
+        "cards-datalines": [
+            (r"^\s*(datalines|cards)\s*;\s*$", Keyword, "data"),
         ],
-        'data': [
-            (r'(.|\n)*^\s*;\s*$', Other, '#pop'),
+        "data": [
+            (r"(.|\n)*^\s*;\s*$", Other, "#pop"),
         ],
         # Special highlight for put NOTE|ERROR|WARNING (order matters)
-        'logs': [
-            (r'\n?^\s*%?put ', Keyword, 'log-messages'),
+        "logs": [
+            (r"\n?^\s*%?put ", Keyword, "log-messages"),
         ],
-        'log-messages': [
-            (r'NOTE(:|-).*', Generic, '#pop'),
-            (r'WARNING(:|-).*', Generic.Emph, '#pop'),
-            (r'ERROR(:|-).*', Generic.Error, '#pop'),
-            include('general'),
+        "log-messages": [
+            (r"NOTE(:|-).*", Generic, "#pop"),
+            (r"WARNING(:|-).*", Generic.Emph, "#pop"),
+            (r"ERROR(:|-).*", Generic.Error, "#pop"),
+            include("general"),
         ],
-        'general': [
-            include('keywords'),
-            include('vars-strings'),
-            include('special'),
-            include('numbers'),
+        "general": [
+            include("keywords"),
+            include("vars-strings"),
+            include("special"),
+            include("numbers"),
         ],
         # Keywords, statements, functions, macros
-        'keywords': [
-            (words(builtins_statements,
-                   prefix = r'\b',
-                   suffix = r'\b'),
-             Keyword),
-            (words(builtins_sql,
-                   prefix = r'\b',
-                   suffix = r'\b'),
-             Keyword),
-            (words(builtins_conditionals,
-                   prefix = r'\b',
-                   suffix = r'\b'),
-             Keyword),
-            (words(builtins_macros,
-                   prefix = r'%',
-                   suffix = r'\b'),
-             Name.Builtin),
-            (words(builtins_functions,
-                   prefix = r'\b',
-                   suffix = r'\('),
-             Name.Builtin),
+        "keywords": [
+            (words(builtins_statements, prefix=r"\b", suffix=r"\b"), Keyword),
+            (words(builtins_sql, prefix=r"\b", suffix=r"\b"), Keyword),
+            (words(builtins_conditionals, prefix=r"\b", suffix=r"\b"), Keyword),
+            (words(builtins_macros, prefix=r"%", suffix=r"\b"), Name.Builtin),
+            (words(builtins_functions, prefix=r"\b", suffix=r"\("), Name.Builtin),
         ],
         # Strings and user-defined variables and macros (order matters)
-        'vars-strings': [
-            (r'&[a-z_]\w{0,31}\.?', Name.Variable),
-            (r'%[a-z_]\w{0,31}', Name.Function),
-            (r'\'', String, 'string_squote'),
-            (r'"', String, 'string_dquote'),
+        "vars-strings": [
+            (r"&[a-z_]\w{0,31}\.?", Name.Variable),
+            (r"%[a-z_]\w{0,31}", Name.Function),
+            (r"\'", String, "string_squote"),
+            (r'"', String, "string_dquote"),
         ],
-        'string_squote': [
-            ('\'', String, '#pop'),
+        "string_squote": [
+            ("'", String, "#pop"),
             (r'\\\\|\\"|\\\n', String.Escape),
             # AFAIK, macro variables are not evaluated in single quotes
             # (r'&', Name.Variable, 'validvar'),
-            (r'[^$\'\\]+', String),
-            (r'[$\'\\]', String),
+            (r"[^$\'\\]+", String),
+            (r"[$\'\\]", String),
         ],
-        'string_dquote': [
-            (r'"', String, '#pop'),
+        "string_dquote": [
+            (r'"', String, "#pop"),
             (r'\\\\|\\"|\\\n', String.Escape),
-            (r'&', Name.Variable, 'validvar'),
+            (r"&", Name.Variable, "validvar"),
             (r'[^$&"\\]+', String),
             (r'[$"\\]', String),
         ],
-        'validvar': [
-            (r'[a-z_]\w{0,31}\.?', Name.Variable, '#pop'),
+        "validvar": [
+            (r"[a-z_]\w{0,31}\.?", Name.Variable, "#pop"),
         ],
         # SAS numbers and special variables
-        'numbers': [
-            (r'\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\b',
-             Number),
+        "numbers": [
+            (r"\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\b", Number),
         ],
-        'special': [
-            (r'(null|missing|_all_|_automatic_|_character_|_n_|'
-             r'_infile_|_name_|_null_|_numeric_|_user_|_webout_)',
-             Keyword.Constant),
+        "special": [
+            (
+                r"(null|missing|_all_|_automatic_|_character_|_n_|"
+                r"_infile_|_name_|_null_|_numeric_|_user_|_webout_)",
+                Keyword.Constant,
+            ),
         ],
         # 'operators': [
         #     (r'(-|=|<=|>=|<|>|<>|&|!=|'
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/savi.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/savi.py
index 1e443ae..263964f 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/savi.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/savi.py
@@ -1,18 +1,28 @@
 """
-    pygments.lexers.savi
-    ~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.savi
+~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Savi.
+Lexer for Savi.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, include
-from pygments.token import Whitespace, Keyword, Name, String, Number, \
-  Operator, Punctuation, Comment, Generic, Error
+from pygments.token import (
+    Whitespace,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Operator,
+    Punctuation,
+    Comment,
+    Generic,
+    Error,
+)
 
-__all__ = ['SaviLexer']
+__all__ = ["SaviLexer"]
 
 
 # The canonical version of this file can be found in the following repository,
@@ -29,6 +39,7 @@ __all__ = ['SaviLexer']
 # any changes you make are also reflected in the other pygments-like lexers
 # (rouge, vscode, etc) so that all of the lexers can be kept cleanly in sync.
 
+
 class SaviLexer(RegexLexer):
     """
     For Savi source code.
@@ -36,136 +47,104 @@ class SaviLexer(RegexLexer):
     .. versionadded: 2.10
     """
 
-    name = 'Savi'
-    url = 'https://github.com/savi-lang/savi'
-    aliases = ['savi']
-    filenames = ['*.savi']
-    version_added = ''
+    name = "Savi"
+    url = "https://github.com/savi-lang/savi"
+    aliases = ["savi"]
+    filenames = ["*.savi"]
+    version_added = ""
 
     tokens = {
-      "root": [
-        # Line Comment
-        (r'//.*?$', Comment.Single),
-
-        # Doc Comment
-        (r'::.*?$', Comment.Single),
-
-        # Capability Operator
-        (r'(\')(\w+)(?=[^\'])', bygroups(Operator, Name)),
-
-        # Double-Quote String
-        (r'\w?"', String.Double, "string.double"),
-
-        # Single-Char String
-        (r"'", String.Char, "string.char"),
-
-        # Type Name
-        (r'(_?[A-Z]\w*)', Name.Class),
-
-        # Nested Type Name
-        (r'(\.)(\s*)(_?[A-Z]\w*)', bygroups(Punctuation, Whitespace, Name.Class)),
-
-        # Declare
-        (r'^([ \t]*)(:\w+)',
-          bygroups(Whitespace, Name.Tag),
-          "decl"),
-
-        # Error-Raising Calls/Names
-        (r'((\w+|\+|\-|\*)\!)', Generic.Deleted),
-
-        # Numeric Values
-        (r'\b\d([\d_]*(\.[\d_]+)?)\b', Number),
-
-        # Hex Numeric Values
-        (r'\b0x([0-9a-fA-F_]+)\b', Number.Hex),
-
-        # Binary Numeric Values
-        (r'\b0b([01_]+)\b', Number.Bin),
-
-        # Function Call (with braces)
-        (r'\w+(?=\()', Name.Function),
-
-        # Function Call (with receiver)
-        (r'(\.)(\s*)(\w+)', bygroups(Punctuation, Whitespace, Name.Function)),
-
-        # Function Call (with self receiver)
-        (r'(@)(\w+)', bygroups(Punctuation, Name.Function)),
-
-        # Parenthesis
-        (r'\(', Punctuation, "root"),
-        (r'\)', Punctuation, "#pop"),
-
-        # Brace
-        (r'\{', Punctuation, "root"),
-        (r'\}', Punctuation, "#pop"),
-
-        # Bracket
-        (r'\[', Punctuation, "root"),
-        (r'(\])(\!)', bygroups(Punctuation, Generic.Deleted), "#pop"),
-        (r'\]', Punctuation, "#pop"),
-
-        # Punctuation
-        (r'[,;:\.@]', Punctuation),
-
-        # Piping Operators
-        (r'(\|\>)', Operator),
-
-        # Branching Operators
-        (r'(\&\&|\|\||\?\?|\&\?|\|\?|\.\?)', Operator),
-
-        # Comparison Operators
-        (r'(\<\=\>|\=\~|\=\=|\<\=|\>\=|\<|\>)', Operator),
-
-        # Arithmetic Operators
-        (r'(\+|\-|\/|\*|\%)', Operator),
-
-        # Assignment Operators
-        (r'(\=)', Operator),
-
-        # Other Operators
-        (r'(\!|\<\<|\<|\&|\|)', Operator),
-
-        # Identifiers
-        (r'\b\w+\b', Name),
-
-        # Whitespace
-        (r'[ \t\r]+\n*|\n+', Whitespace),
-      ],
-
-      # Declare (nested rules)
-      "decl": [
-        (r'\b[a-z_]\w*\b(?!\!)', Keyword.Declaration),
-        (r':', Punctuation, "#pop"),
-        (r'\n', Whitespace, "#pop"),
-        include("root"),
-      ],
-
-      # Double-Quote String (nested rules)
-      "string.double": [
-        (r'\\\(', String.Interpol, "string.interpolation"),
-        (r'\\u[0-9a-fA-F]{4}', String.Escape),
-        (r'\\x[0-9a-fA-F]{2}', String.Escape),
-        (r'\\[bfnrt\\\']', String.Escape),
-        (r'\\"', String.Escape),
-        (r'"', String.Double, "#pop"),
-        (r'[^\\"]+', String.Double),
-        (r'.', Error),
-      ],
-
-      # Single-Char String (nested rules)
-      "string.char": [
-        (r'\\u[0-9a-fA-F]{4}', String.Escape),
-        (r'\\x[0-9a-fA-F]{2}', String.Escape),
-        (r'\\[bfnrt\\\']', String.Escape),
-        (r"\\'", String.Escape),
-        (r"'", String.Char, "#pop"),
-        (r"[^\\']+", String.Char),
-        (r'.', Error),
-      ],
-
-      # Interpolation inside String (nested rules)
-      "string.interpolation": [
-        (r"\)", String.Interpol, "#pop"),
-        include("root"),
-      ]
+        "root": [
+            # Line Comment
+            (r"//.*?$", Comment.Single),
+            # Doc Comment
+            (r"::.*?$", Comment.Single),
+            # Capability Operator
+            (r"(\')(\w+)(?=[^\'])", bygroups(Operator, Name)),
+            # Double-Quote String
+            (r'\w?"', String.Double, "string.double"),
+            # Single-Char String
+            (r"'", String.Char, "string.char"),
+            # Type Name
+            (r"(_?[A-Z]\w*)", Name.Class),
+            # Nested Type Name
+            (r"(\.)(\s*)(_?[A-Z]\w*)", bygroups(Punctuation, Whitespace, Name.Class)),
+            # Declare
+            (r"^([ \t]*)(:\w+)", bygroups(Whitespace, Name.Tag), "decl"),
+            # Error-Raising Calls/Names
+            (r"((\w+|\+|\-|\*)\!)", Generic.Deleted),
+            # Numeric Values
+            (r"\b\d([\d_]*(\.[\d_]+)?)\b", Number),
+            # Hex Numeric Values
+            (r"\b0x([0-9a-fA-F_]+)\b", Number.Hex),
+            # Binary Numeric Values
+            (r"\b0b([01_]+)\b", Number.Bin),
+            # Function Call (with braces)
+            (r"\w+(?=\()", Name.Function),
+            # Function Call (with receiver)
+            (r"(\.)(\s*)(\w+)", bygroups(Punctuation, Whitespace, Name.Function)),
+            # Function Call (with self receiver)
+            (r"(@)(\w+)", bygroups(Punctuation, Name.Function)),
+            # Parenthesis
+            (r"\(", Punctuation, "root"),
+            (r"\)", Punctuation, "#pop"),
+            # Brace
+            (r"\{", Punctuation, "root"),
+            (r"\}", Punctuation, "#pop"),
+            # Bracket
+            (r"\[", Punctuation, "root"),
+            (r"(\])(\!)", bygroups(Punctuation, Generic.Deleted), "#pop"),
+            (r"\]", Punctuation, "#pop"),
+            # Punctuation
+            (r"[,;:\.@]", Punctuation),
+            # Piping Operators
+            (r"(\|\>)", Operator),
+            # Branching Operators
+            (r"(\&\&|\|\||\?\?|\&\?|\|\?|\.\?)", Operator),
+            # Comparison Operators
+            (r"(\<\=\>|\=\~|\=\=|\<\=|\>\=|\<|\>)", Operator),
+            # Arithmetic Operators
+            (r"(\+|\-|\/|\*|\%)", Operator),
+            # Assignment Operators
+            (r"(\=)", Operator),
+            # Other Operators
+            (r"(\!|\<\<|\<|\&|\|)", Operator),
+            # Identifiers
+            (r"\b\w+\b", Name),
+            # Whitespace
+            (r"[ \t\r]+\n*|\n+", Whitespace),
+        ],
+        # Declare (nested rules)
+        "decl": [
+            (r"\b[a-z_]\w*\b(?!\!)", Keyword.Declaration),
+            (r":", Punctuation, "#pop"),
+            (r"\n", Whitespace, "#pop"),
+            include("root"),
+        ],
+        # Double-Quote String (nested rules)
+        "string.double": [
+            (r"\\\(", String.Interpol, "string.interpolation"),
+            (r"\\u[0-9a-fA-F]{4}", String.Escape),
+            (r"\\x[0-9a-fA-F]{2}", String.Escape),
+            (r"\\[bfnrt\\\']", String.Escape),
+            (r'\\"', String.Escape),
+            (r'"', String.Double, "#pop"),
+            (r'[^\\"]+', String.Double),
+            (r".", Error),
+        ],
+        # Single-Char String (nested rules)
+        "string.char": [
+            (r"\\u[0-9a-fA-F]{4}", String.Escape),
+            (r"\\x[0-9a-fA-F]{2}", String.Escape),
+            (r"\\[bfnrt\\\']", String.Escape),
+            (r"\\'", String.Escape),
+            (r"'", String.Char, "#pop"),
+            (r"[^\\']+", String.Char),
+            (r".", Error),
+        ],
+        # Interpolation inside String (nested rules)
+        "string.interpolation": [
+            (r"\)", String.Interpol, "#pop"),
+            include("root"),
+        ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scdoc.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scdoc.py
index 8e850d0..ec9735c 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scdoc.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scdoc.py
@@ -1,11 +1,11 @@
 """
-    pygments.lexers.scdoc
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.scdoc
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for scdoc, a simple man page generator.
+Lexer for scdoc, a simple man page generator.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
@@ -13,54 +13,56 @@ import re
 from pygments.lexer import RegexLexer, include, bygroups, using, this
 from pygments.token import Text, Comment, Keyword, String, Generic
 
-__all__ = ['ScdocLexer']
+__all__ = ["ScdocLexer"]
 
 
 class ScdocLexer(RegexLexer):
     """
     `scdoc` is a simple man page generator for POSIX systems written in C99.
     """
-    name = 'scdoc'
-    url = 'https://git.sr.ht/~sircmpwn/scdoc'
-    aliases = ['scdoc', 'scd']
-    filenames = ['*.scd', '*.scdoc']
-    version_added = '2.5'
+
+    name = "scdoc"
+    url = "https://git.sr.ht/~sircmpwn/scdoc"
+    aliases = ["scdoc", "scd"]
+    filenames = ["*.scd", "*.scdoc"]
+    version_added = "2.5"
     flags = re.MULTILINE
 
     tokens = {
-        'root': [
+        "root": [
             # comment
-            (r'^(;.+\n)', bygroups(Comment)),
-
+            (r"^(;.+\n)", bygroups(Comment)),
             # heading with pound prefix
-            (r'^(#)([^#].+\n)', bygroups(Generic.Heading, Text)),
-            (r'^(#{2})(.+\n)', bygroups(Generic.Subheading, Text)),
+            (r"^(#)([^#].+\n)", bygroups(Generic.Heading, Text)),
+            (r"^(#{2})(.+\n)", bygroups(Generic.Subheading, Text)),
             # bulleted lists
-            (r'^(\s*)([*-])(\s)(.+\n)',
-            bygroups(Text, Keyword, Text, using(this, state='inline'))),
+            (
+                r"^(\s*)([*-])(\s)(.+\n)",
+                bygroups(Text, Keyword, Text, using(this, state="inline")),
+            ),
             # numbered lists
-            (r'^(\s*)(\.+\.)( .+\n)',
-            bygroups(Text, Keyword, using(this, state='inline'))),
+            (
+                r"^(\s*)(\.+\.)( .+\n)",
+                bygroups(Text, Keyword, using(this, state="inline")),
+            ),
             # quote
-            (r'^(\s*>\s)(.+\n)', bygroups(Keyword, Generic.Emph)),
+            (r"^(\s*>\s)(.+\n)", bygroups(Keyword, Generic.Emph)),
             # text block
-            (r'^(```\n)([\w\W]*?)(^```$)', bygroups(String, Text, String)),
-
-            include('inline'),
+            (r"^(```\n)([\w\W]*?)(^```$)", bygroups(String, Text, String)),
+            include("inline"),
         ],
-        'inline': [
+        "inline": [
             # escape
-            (r'\\.', Text),
+            (r"\\.", Text),
             # underlines
-            (r'(\s)(_[^_]+_)(\W|\n)', bygroups(Text, Generic.Emph, Text)),
+            (r"(\s)(_[^_]+_)(\W|\n)", bygroups(Text, Generic.Emph, Text)),
             # bold
-            (r'(\s)(\*[^*]+\*)(\W|\n)', bygroups(Text, Generic.Strong, Text)),
+            (r"(\s)(\*[^*]+\*)(\W|\n)", bygroups(Text, Generic.Strong, Text)),
             # inline code
-            (r'`[^`]+`', String.Backtick),
-
+            (r"`[^`]+`", String.Backtick),
             # general text, must come last!
-            (r'[^\\\s]+', Text),
-            (r'.', Text),
+            (r"[^\\\s]+", Text),
+            (r".", Text),
         ],
     }
 
@@ -69,14 +71,14 @@ class ScdocLexer(RegexLexer):
         every scdoc file must start with a strictly defined first line."""
         result = 0
 
-        if '*' in text:
+        if "*" in text:
             result += 0.01
 
-        if '_' in text:
+        if "_" in text:
             result += 0.01
 
         # name(section) ["left_footer" ["center_header"]]
-        first_line = text.partition('\n')[0]
+        first_line = text.partition("\n")[0]
         scdoc_preamble_pattern = r'^.*\([1-7]\)( "[^"]+"){0,2}$'
 
         if re.search(scdoc_preamble_pattern, first_line):
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scripting.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scripting.py
index 6e494c3..1f34638 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scripting.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/scripting.py
@@ -1,30 +1,53 @@
 """
-    pygments.lexers.scripting
-    ~~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.scripting
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for scripting and embedded languages.
+Lexer for scripting and embedded languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import RegexLexer, include, bygroups, default, combined, \
-    words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Error, Whitespace, Other
+from pygments.lexer import RegexLexer, include, bygroups, default, combined, words
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Error,
+    Whitespace,
+    Other,
+)
 from pygments.util import get_bool_opt, get_list_opt
 
-__all__ = ['LuaLexer', 'LuauLexer', 'MoonScriptLexer', 'ChaiscriptLexer', 'LSLLexer',
-           'AppleScriptLexer', 'RexxLexer', 'MOOCodeLexer', 'HybrisLexer',
-           'EasytrieveLexer', 'JclLexer', 'MiniScriptLexer']
+__all__ = [
+    "LuaLexer",
+    "LuauLexer",
+    "MoonScriptLexer",
+    "ChaiscriptLexer",
+    "LSLLexer",
+    "AppleScriptLexer",
+    "RexxLexer",
+    "MOOCodeLexer",
+    "HybrisLexer",
+    "EasytrieveLexer",
+    "JclLexer",
+    "MiniScriptLexer",
+]
 
 
 def all_lua_builtins():
     from pygments.lexers._lua_builtins import MODULES
+
     return [w for values in MODULES.values() for w in values]
 
+
 class LuaLexer(RegexLexer):
     """
     For Lua source code.
@@ -48,175 +71,181 @@ class LuaLexer(RegexLexer):
             ['string', 'coroutine', 'modules', 'io', 'basic', ...]
     """
 
-    name = 'Lua'
-    url = 'https://www.lua.org/'
-    aliases = ['lua']
-    filenames = ['*.lua', '*.wlua']
-    mimetypes = ['text/x-lua', 'application/x-lua']
-    version_added = ''
+    name = "Lua"
+    url = "https://www.lua.org/"
+    aliases = ["lua"]
+    filenames = ["*.lua", "*.wlua"]
+    mimetypes = ["text/x-lua", "application/x-lua"]
+    version_added = ""
 
-    _comment_multiline = r'(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])'
-    _comment_single = r'(?:--.*$)'
-    _space = r'(?:\s+(?!\s))'
-    _s = rf'(?:{_comment_multiline}|{_comment_single}|{_space})'
-    _name = r'(?:[^\W\d]\w*)'
+    _comment_multiline = r"(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])"
+    _comment_single = r"(?:--.*$)"
+    _space = r"(?:\s+(?!\s))"
+    _s = rf"(?:{_comment_multiline}|{_comment_single}|{_space})"
+    _name = r"(?:[^\W\d]\w*)"
 
     tokens = {
-        'root': [
+        "root": [
             # Lua allows a file to start with a shebang.
-            (r'#!.*', Comment.Preproc),
-            default('base'),
+            (r"#!.*", Comment.Preproc),
+            default("base"),
         ],
-        'ws': [
+        "ws": [
             (_comment_multiline, Comment.Multiline),
             (_comment_single, Comment.Single),
             (_space, Whitespace),
         ],
-        'base': [
-            include('ws'),
-
-            (r'(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?', Number.Hex),
-            (r'(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?', Number.Float),
-            (r'(?i)\d+e[+-]?\d+', Number.Float),
-            (r'\d+', Number.Integer),
-
+        "base": [
+            include("ws"),
+            (r"(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?", Number.Hex),
+            (r"(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?", Number.Float),
+            (r"(?i)\d+e[+-]?\d+", Number.Float),
+            (r"\d+", Number.Integer),
             # multiline strings
-            (r'(?s)\[(=*)\[.*?\]\1\]', String),
-
-            (r'::', Punctuation, 'label'),
-            (r'\.{3}', Punctuation),
-            (r'[=<>|~&+\-*/%#^]+|\.\.', Operator),
-            (r'[\[\]{}().,:;]+', Punctuation),
-            (r'(and|or|not)\b', Operator.Word),
-
-            (words([
-                'break', 'do', 'else', 'elseif', 'end', 'for', 'if', 'in',
-                'repeat', 'return', 'then', 'until', 'while'
-            ], suffix=r'\b'), Keyword.Reserved),
-            (r'goto\b', Keyword.Reserved, 'goto'),
-            (r'(local)\b', Keyword.Declaration),
-            (r'(true|false|nil)\b', Keyword.Constant),
-
-            (r'(function)\b', Keyword.Reserved, 'funcname'),
-
+            (r"(?s)\[(=*)\[.*?\]\1\]", String),
+            (r"::", Punctuation, "label"),
+            (r"\.{3}", Punctuation),
+            (r"[=<>|~&+\-*/%#^]+|\.\.", Operator),
+            (r"[\[\]{}().,:;]+", Punctuation),
+            (r"(and|or|not)\b", Operator.Word),
+            (
+                words(
+                    [
+                        "break",
+                        "do",
+                        "else",
+                        "elseif",
+                        "end",
+                        "for",
+                        "if",
+                        "in",
+                        "repeat",
+                        "return",
+                        "then",
+                        "until",
+                        "while",
+                    ],
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+            ),
+            (r"goto\b", Keyword.Reserved, "goto"),
+            (r"(local)\b", Keyword.Declaration),
+            (r"(true|false|nil)\b", Keyword.Constant),
+            (r"(function)\b", Keyword.Reserved, "funcname"),
             (words(all_lua_builtins(), suffix=r"\b"), Name.Builtin),
-            (fr'[A-Za-z_]\w*(?={_s}*[.:])', Name.Variable, 'varname'),
-            (fr'[A-Za-z_]\w*(?={_s}*\()', Name.Function),
-            (r'[A-Za-z_]\w*', Name.Variable),
-
-            ("'", String.Single, combined('stringescape', 'sqs')),
-            ('"', String.Double, combined('stringescape', 'dqs'))
+            (rf"[A-Za-z_]\w*(?={_s}*[.:])", Name.Variable, "varname"),
+            (rf"[A-Za-z_]\w*(?={_s}*\()", Name.Function),
+            (r"[A-Za-z_]\w*", Name.Variable),
+            ("'", String.Single, combined("stringescape", "sqs")),
+            ('"', String.Double, combined("stringescape", "dqs")),
         ],
-
-        'varname': [
-            include('ws'),
-            (r'\.\.', Operator, '#pop'),
-            (r'[.:]', Punctuation),
-            (rf'{_name}(?={_s}*[.:])', Name.Property),
-            (rf'{_name}(?={_s}*\()', Name.Function, '#pop'),
-            (_name, Name.Property, '#pop'),
+        "varname": [
+            include("ws"),
+            (r"\.\.", Operator, "#pop"),
+            (r"[.:]", Punctuation),
+            (rf"{_name}(?={_s}*[.:])", Name.Property),
+            (rf"{_name}(?={_s}*\()", Name.Function, "#pop"),
+            (_name, Name.Property, "#pop"),
         ],
-
-        'funcname': [
-            include('ws'),
-            (r'[.:]', Punctuation),
-            (rf'{_name}(?={_s}*[.:])', Name.Class),
-            (_name, Name.Function, '#pop'),
+        "funcname": [
+            include("ws"),
+            (r"[.:]", Punctuation),
+            (rf"{_name}(?={_s}*[.:])", Name.Class),
+            (_name, Name.Function, "#pop"),
             # inline function
-            (r'\(', Punctuation, '#pop'),
+            (r"\(", Punctuation, "#pop"),
         ],
-
-        'goto': [
-            include('ws'),
-            (_name, Name.Label, '#pop'),
+        "goto": [
+            include("ws"),
+            (_name, Name.Label, "#pop"),
         ],
-
-        'label': [
-            include('ws'),
-            (r'::', Punctuation, '#pop'),
+        "label": [
+            include("ws"),
+            (r"::", Punctuation, "#pop"),
             (_name, Name.Label),
         ],
-
-        'stringescape': [
-            (r'\\([abfnrtv\\"\']|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|'
-             r'u\{[0-9a-fA-F]+\})', String.Escape),
+        "stringescape": [
+            (
+                r'\\([abfnrtv\\"\']|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|'
+                r"u\{[0-9a-fA-F]+\})",
+                String.Escape,
+            ),
         ],
-
-        'sqs': [
-            (r"'", String.Single, '#pop'),
+        "sqs": [
+            (r"'", String.Single, "#pop"),
             (r"[^\\']+", String.Single),
         ],
-
-        'dqs': [
-            (r'"', String.Double, '#pop'),
+        "dqs": [
+            (r'"', String.Double, "#pop"),
             (r'[^\\"]+', String.Double),
-        ]
+        ],
     }
 
     def __init__(self, **options):
         self.func_name_highlighting = get_bool_opt(
-            options, 'func_name_highlighting', True)
-        self.disabled_modules = get_list_opt(options, 'disabled_modules', [])
+            options, "func_name_highlighting", True
+        )
+        self.disabled_modules = get_list_opt(options, "disabled_modules", [])
 
         self._functions = set()
         if self.func_name_highlighting:
             from pygments.lexers._lua_builtins import MODULES
+
             for mod, func in MODULES.items():
                 if mod not in self.disabled_modules:
                     self._functions.update(func)
         RegexLexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text):
+        for index, token, value in RegexLexer.get_tokens_unprocessed(self, text):
             if token is Name.Builtin and value not in self._functions:
-                if '.' in value:
-                    a, b = value.split('.')
+                if "." in value:
+                    a, b = value.split(".")
                     yield index, Name, a
-                    yield index + len(a), Punctuation, '.'
+                    yield index + len(a), Punctuation, "."
                     yield index + len(a) + 1, Name, b
                 else:
                     yield index, Name, value
                 continue
             yield index, token, value
 
+
 def _luau_make_expression(should_pop, _s):
     temp_list = [
-        (r'0[xX][\da-fA-F_]*', Number.Hex, '#pop'),
-        (r'0[bB][\d_]*', Number.Bin, '#pop'),
-        (r'\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?', Number.Float, '#pop'),
-
-        (words((
-            'true', 'false', 'nil'
-        ), suffix=r'\b'), Keyword.Constant, '#pop'),
-
-        (r'\[(=*)\[[.\n]*?\]\1\]', String, '#pop'),
-
-        (r'(\.)([a-zA-Z_]\w*)(?=%s*[({"\'])', bygroups(Punctuation, Name.Function), '#pop'),
-        (r'(\.)([a-zA-Z_]\w*)', bygroups(Punctuation, Name.Variable), '#pop'),
-
-        (rf'[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?={_s}*[({{"\'])', Name.Other, '#pop'),
-        (r'[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*', Name, '#pop'),
+        (r"0[xX][\da-fA-F_]*", Number.Hex, "#pop"),
+        (r"0[bB][\d_]*", Number.Bin, "#pop"),
+        (r"\.?\d[\d_]*(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?", Number.Float, "#pop"),
+        (words(("true", "false", "nil"), suffix=r"\b"), Keyword.Constant, "#pop"),
+        (r"\[(=*)\[[.\n]*?\]\1\]", String, "#pop"),
+        (
+            r'(\.)([a-zA-Z_]\w*)(?=%s*[({"\'])',
+            bygroups(Punctuation, Name.Function),
+            "#pop",
+        ),
+        (r"(\.)([a-zA-Z_]\w*)", bygroups(Punctuation, Name.Variable), "#pop"),
+        (rf'[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*(?={_s}*[({{"\'])', Name.Other, "#pop"),
+        (r"[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*", Name, "#pop"),
     ]
     if should_pop:
         return temp_list
     return [entry[:2] for entry in temp_list]
 
+
 def _luau_make_expression_special(should_pop):
     temp_list = [
-        (r'\{', Punctuation, ('#pop', 'closing_brace_base', 'expression')),
-        (r'\(', Punctuation, ('#pop', 'closing_parenthesis_base', 'expression')),
-
-        (r'::?', Punctuation, ('#pop', 'type_end', 'type_start')),
-
-        (r"'", String.Single, ('#pop', 'string_single')),
-        (r'"', String.Double, ('#pop', 'string_double')),
-        (r'`', String.Backtick, ('#pop', 'string_interpolated')),
+        (r"\{", Punctuation, ("#pop", "closing_brace_base", "expression")),
+        (r"\(", Punctuation, ("#pop", "closing_parenthesis_base", "expression")),
+        (r"::?", Punctuation, ("#pop", "type_end", "type_start")),
+        (r"'", String.Single, ("#pop", "string_single")),
+        (r'"', String.Double, ("#pop", "string_double")),
+        (r"`", String.Backtick, ("#pop", "string_interpolated")),
     ]
     if should_pop:
         return temp_list
     return [(entry[0], entry[1], entry[2][1:]) for entry in temp_list]
 
+
 class LuauLexer(RegexLexer):
     """
     For Luau source code.
@@ -235,225 +264,221 @@ class LuauLexer(RegexLexer):
         If given, must be a list of builtins that will not be highlighted.
     """
 
-    name = 'Luau'
-    url = 'https://luau-lang.org/'
-    aliases = ['luau']
-    filenames = ['*.luau']
-    version_added = '2.18'
+    name = "Luau"
+    url = "https://luau-lang.org/"
+    aliases = ["luau"]
+    filenames = ["*.luau"]
+    version_added = "2.18"
 
-    _comment_multiline = r'(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])'
-    _comment_single = r'(?:--.*$)'
-    _s = r'(?:{}|{}|{})'.format(_comment_multiline, _comment_single, r'\s+')
+    _comment_multiline = r"(?:--\[(?P=*)\[[\w\W]*?\](?P=level)\])"
+    _comment_single = r"(?:--.*$)"
+    _s = r"(?:{}|{}|{})".format(_comment_multiline, _comment_single, r"\s+")
 
     tokens = {
-        'root': [
-            (r'#!.*', Comment.Hashbang, 'base'),
-            default('base'),
+        "root": [
+            (r"#!.*", Comment.Hashbang, "base"),
+            default("base"),
         ],
-
-        'ws': [
+        "ws": [
             (_comment_multiline, Comment.Multiline),
             (_comment_single, Comment.Single),
-            (r'\s+', Whitespace),
+            (r"\s+", Whitespace),
         ],
-
-        'base': [
-            include('ws'),
-
+        "base": [
+            include("ws"),
             *_luau_make_expression_special(False),
-            (r'\.\.\.', Punctuation),
-
-            (rf'type\b(?={_s}+[a-zA-Z_])', Keyword.Reserved, 'type_declaration'),
-            (rf'export\b(?={_s}+[a-zA-Z_])', Keyword.Reserved),
-
-            (r'(?:\.\.|//|[+\-*\/%^<>=])=?', Operator, 'expression'),
-            (r'~=', Operator, 'expression'),
-
-            (words((
-                'and', 'or', 'not'
-            ), suffix=r'\b'), Operator.Word, 'expression'),
-
-            (words((
-                'elseif', 'for', 'if', 'in', 'repeat', 'return', 'until',
-                'while'), suffix=r'\b'), Keyword.Reserved, 'expression'),
-            (r'local\b', Keyword.Declaration, 'expression'),
-
-            (r'function\b', Keyword.Reserved, ('expression', 'func_name')),
-
-            (r'[\])};]+', Punctuation),
-
-            include('expression_static'),
+            (r"\.\.\.", Punctuation),
+            (rf"type\b(?={_s}+[a-zA-Z_])", Keyword.Reserved, "type_declaration"),
+            (rf"export\b(?={_s}+[a-zA-Z_])", Keyword.Reserved),
+            (r"(?:\.\.|//|[+\-*\/%^<>=])=?", Operator, "expression"),
+            (r"~=", Operator, "expression"),
+            (words(("and", "or", "not"), suffix=r"\b"), Operator.Word, "expression"),
+            (
+                words(
+                    ("elseif", "for", "if", "in", "repeat", "return", "until", "while"),
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+                "expression",
+            ),
+            (r"local\b", Keyword.Declaration, "expression"),
+            (r"function\b", Keyword.Reserved, ("expression", "func_name")),
+            (r"[\])};]+", Punctuation),
+            include("expression_static"),
             *_luau_make_expression(False, _s),
-
-            (r'[\[.,]', Punctuation, 'expression'),
+            (r"[\[.,]", Punctuation, "expression"),
         ],
-        'expression_static': [
-            (words((
-                'break', 'continue', 'do', 'else', 'elseif', 'end', 'for',
-                'if', 'in', 'repeat', 'return', 'then', 'until', 'while'),
-                suffix=r'\b'), Keyword.Reserved),
+        "expression_static": [
+            (
+                words(
+                    (
+                        "break",
+                        "continue",
+                        "do",
+                        "else",
+                        "elseif",
+                        "end",
+                        "for",
+                        "if",
+                        "in",
+                        "repeat",
+                        "return",
+                        "then",
+                        "until",
+                        "while",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Reserved,
+            ),
         ],
-        'expression': [
-            include('ws'),
-
-            (r'if\b', Keyword.Reserved, ('ternary', 'expression')),
-
-            (r'local\b', Keyword.Declaration),
+        "expression": [
+            include("ws"),
+            (r"if\b", Keyword.Reserved, ("ternary", "expression")),
+            (r"local\b", Keyword.Declaration),
             *_luau_make_expression_special(True),
-            (r'\.\.\.', Punctuation, '#pop'),
-
-            (r'function\b', Keyword.Reserved, 'func_name'),
-
-            include('expression_static'),
+            (r"\.\.\.", Punctuation, "#pop"),
+            (r"function\b", Keyword.Reserved, "func_name"),
+            include("expression_static"),
             *_luau_make_expression(True, _s),
-
-            default('#pop'),
+            default("#pop"),
         ],
-        'ternary': [
-            include('ws'),
-
-            (r'else\b', Keyword.Reserved, '#pop'),
-            (words((
-                'then', 'elseif',
-            ), suffix=r'\b'), Operator.Reserved, 'expression'),
-
-            default('#pop'),
+        "ternary": [
+            include("ws"),
+            (r"else\b", Keyword.Reserved, "#pop"),
+            (
+                words(
+                    (
+                        "then",
+                        "elseif",
+                    ),
+                    suffix=r"\b",
+                ),
+                Operator.Reserved,
+                "expression",
+            ),
+            default("#pop"),
         ],
-
-        'closing_brace_pop': [
-            (r'\}', Punctuation, '#pop'),
+        "closing_brace_pop": [
+            (r"\}", Punctuation, "#pop"),
         ],
-        'closing_parenthesis_pop': [
-            (r'\)', Punctuation, '#pop'),
+        "closing_parenthesis_pop": [
+            (r"\)", Punctuation, "#pop"),
         ],
-        'closing_gt_pop': [
-            (r'>', Punctuation, '#pop'),
+        "closing_gt_pop": [
+            (r">", Punctuation, "#pop"),
         ],
-
-        'closing_parenthesis_base': [
-            include('closing_parenthesis_pop'),
-            include('base'),
+        "closing_parenthesis_base": [
+            include("closing_parenthesis_pop"),
+            include("base"),
         ],
-        'closing_parenthesis_type': [
-            include('closing_parenthesis_pop'),
-            include('type'),
+        "closing_parenthesis_type": [
+            include("closing_parenthesis_pop"),
+            include("type"),
         ],
-        'closing_brace_base': [
-            include('closing_brace_pop'),
-            include('base'),
+        "closing_brace_base": [
+            include("closing_brace_pop"),
+            include("base"),
         ],
-        'closing_brace_type': [
-            include('closing_brace_pop'),
-            include('type'),
+        "closing_brace_type": [
+            include("closing_brace_pop"),
+            include("type"),
         ],
-        'closing_gt_type': [
-            include('closing_gt_pop'),
-            include('type'),
+        "closing_gt_type": [
+            include("closing_gt_pop"),
+            include("type"),
         ],
-
-        'string_escape': [
-            (r'\\z\s*', String.Escape),
-            (r'\\(?:[abfnrtvz\\"\'`\{\n])|[\r\n]{1,2}|x[\da-fA-F]{2}|\d{1,3}|'
-             r'u\{\}[\da-fA-F]*\}', String.Escape),
+        "string_escape": [
+            (r"\\z\s*", String.Escape),
+            (
+                r'\\(?:[abfnrtvz\\"\'`\{\n])|[\r\n]{1,2}|x[\da-fA-F]{2}|\d{1,3}|'
+                r"u\{\}[\da-fA-F]*\}",
+                String.Escape,
+            ),
         ],
-        'string_single': [
-            include('string_escape'),
-
+        "string_single": [
+            include("string_escape"),
             (r"'", String.Single, "#pop"),
             (r"[^\\']+", String.Single),
         ],
-        'string_double': [
-            include('string_escape'),
-
+        "string_double": [
+            include("string_escape"),
             (r'"', String.Double, "#pop"),
             (r'[^\\"]+', String.Double),
         ],
-        'string_interpolated': [
-            include('string_escape'),
-
-            (r'\{', Punctuation, ('closing_brace_base', 'expression')),
-
-            (r'`', String.Backtick, "#pop"),
-            (r'[^\\`\{]+', String.Backtick),
+        "string_interpolated": [
+            include("string_escape"),
+            (r"\{", Punctuation, ("closing_brace_base", "expression")),
+            (r"`", String.Backtick, "#pop"),
+            (r"[^\\`\{]+", String.Backtick),
         ],
-
-        'func_name': [
-            include('ws'),
-
-            (r'[.:]', Punctuation),
-            (rf'[a-zA-Z_]\w*(?={_s}*[.:])', Name.Class),
-            (r'[a-zA-Z_]\w*', Name.Function),
-
-            (r'<', Punctuation, 'closing_gt_type'),
-
-            (r'\(', Punctuation, '#pop'),
+        "func_name": [
+            include("ws"),
+            (r"[.:]", Punctuation),
+            (rf"[a-zA-Z_]\w*(?={_s}*[.:])", Name.Class),
+            (r"[a-zA-Z_]\w*", Name.Function),
+            (r"<", Punctuation, "closing_gt_type"),
+            (r"\(", Punctuation, "#pop"),
         ],
-
-        'type': [
-            include('ws'),
-
-            (r'\(', Punctuation, 'closing_parenthesis_type'),
-            (r'\{', Punctuation, 'closing_brace_type'),
-            (r'<', Punctuation, 'closing_gt_type'),
-
-            (r"'", String.Single, 'string_single'),
-            (r'"', String.Double, 'string_double'),
-
-            (r'[|&\.,\[\]:=]+', Punctuation),
-            (r'->', Punctuation),
-
-            (r'typeof\(', Name.Builtin, ('closing_parenthesis_base',
-                                         'expression')),
-            (r'[a-zA-Z_]\w*', Name.Class),
+        "type": [
+            include("ws"),
+            (r"\(", Punctuation, "closing_parenthesis_type"),
+            (r"\{", Punctuation, "closing_brace_type"),
+            (r"<", Punctuation, "closing_gt_type"),
+            (r"'", String.Single, "string_single"),
+            (r'"', String.Double, "string_double"),
+            (r"[|&\.,\[\]:=]+", Punctuation),
+            (r"->", Punctuation),
+            (r"typeof\(", Name.Builtin, ("closing_parenthesis_base", "expression")),
+            (r"[a-zA-Z_]\w*", Name.Class),
         ],
-        'type_start': [
-            include('ws'),
-
-            (r'\(', Punctuation, ('#pop', 'closing_parenthesis_type')),
-            (r'\{', Punctuation, ('#pop', 'closing_brace_type')),
-            (r'<', Punctuation, ('#pop', 'closing_gt_type')),
-
-            (r"'", String.Single, ('#pop', 'string_single')),
-            (r'"', String.Double, ('#pop', 'string_double')),
-
-            (r'typeof\(', Name.Builtin, ('#pop', 'closing_parenthesis_base',
-                                         'expression')),
-            (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
+        "type_start": [
+            include("ws"),
+            (r"\(", Punctuation, ("#pop", "closing_parenthesis_type")),
+            (r"\{", Punctuation, ("#pop", "closing_brace_type")),
+            (r"<", Punctuation, ("#pop", "closing_gt_type")),
+            (r"'", String.Single, ("#pop", "string_single")),
+            (r'"', String.Double, ("#pop", "string_double")),
+            (
+                r"typeof\(",
+                Name.Builtin,
+                ("#pop", "closing_parenthesis_base", "expression"),
+            ),
+            (r"[a-zA-Z_]\w*", Name.Class, "#pop"),
         ],
-        'type_end': [
-            include('ws'),
-
-            (r'[|&\.]', Punctuation, 'type_start'),
-            (r'->', Punctuation, 'type_start'),
-
-            (r'<', Punctuation, 'closing_gt_type'),
-
-            default('#pop'),
+        "type_end": [
+            include("ws"),
+            (r"[|&\.]", Punctuation, "type_start"),
+            (r"->", Punctuation, "type_start"),
+            (r"<", Punctuation, "closing_gt_type"),
+            default("#pop"),
         ],
-        'type_declaration': [
-            include('ws'),
-
-            (r'[a-zA-Z_]\w*', Name.Class),
-            (r'<', Punctuation, 'closing_gt_type'),
-
-            (r'=', Punctuation, ('#pop', 'type_end', 'type_start')),
+        "type_declaration": [
+            include("ws"),
+            (r"[a-zA-Z_]\w*", Name.Class),
+            (r"<", Punctuation, "closing_gt_type"),
+            (r"=", Punctuation, ("#pop", "type_end", "type_start")),
         ],
     }
 
     def __init__(self, **options):
         self.include_luau_builtins = get_bool_opt(
-            options, 'include_luau_builtins', True)
+            options, "include_luau_builtins", True
+        )
         self.include_roblox_builtins = get_bool_opt(
-            options, 'include_roblox_builtins', False)
-        self.additional_builtins = get_list_opt(options, 'additional_builtins', [])
-        self.disabled_builtins = get_list_opt(options, 'disabled_builtins', [])
+            options, "include_roblox_builtins", False
+        )
+        self.additional_builtins = get_list_opt(options, "additional_builtins", [])
+        self.disabled_builtins = get_list_opt(options, "disabled_builtins", [])
 
         self._builtins = set(self.additional_builtins)
         if self.include_luau_builtins:
             from pygments.lexers._luau_builtins import LUAU_BUILTINS
+
             self._builtins.update(LUAU_BUILTINS)
         if self.include_roblox_builtins:
             from pygments.lexers._luau_builtins import ROBLOX_BUILTINS
+
             self._builtins.update(ROBLOX_BUILTINS)
         if self.additional_builtins:
             self._builtins.update(self.additional_builtins)
@@ -462,20 +487,19 @@ class LuauLexer(RegexLexer):
         RegexLexer.__init__(self, **options)
 
     def get_tokens_unprocessed(self, text):
-        for index, token, value in \
-                RegexLexer.get_tokens_unprocessed(self, text):
+        for index, token, value in RegexLexer.get_tokens_unprocessed(self, text):
             if token is Name or token is Name.Other:
-                split_value = value.split('.')
+                split_value = value.split(".")
                 complete_value = []
                 new_index = index
                 for position in range(len(split_value), 0, -1):
-                    potential_string = '.'.join(split_value[:position])
+                    potential_string = ".".join(split_value[:position])
                     if potential_string in self._builtins:
                         yield index, Name.Builtin, potential_string
                         new_index += len(potential_string)
 
                         if complete_value:
-                            yield new_index, Punctuation, '.'
+                            yield new_index, Punctuation, "."
                             new_index += 1
                         break
                     complete_value.insert(0, split_value[position - 1])
@@ -489,71 +513,89 @@ class LuauLexer(RegexLexer):
                         continue
                     yield new_index, Name.Variable, substring
                     new_index += len(substring)
-                    yield new_index, Punctuation, '.'
+                    yield new_index, Punctuation, "."
                     new_index += 1
 
                 continue
             yield index, token, value
 
+
 class MoonScriptLexer(LuaLexer):
     """
     For MoonScript source code.
     """
 
-    name = 'MoonScript'
-    url = 'http://moonscript.org'
-    aliases = ['moonscript', 'moon']
-    filenames = ['*.moon']
-    mimetypes = ['text/x-moonscript', 'application/x-moonscript']
-    version_added = '1.5'
+    name = "MoonScript"
+    url = "http://moonscript.org"
+    aliases = ["moonscript", "moon"]
+    filenames = ["*.moon"]
+    mimetypes = ["text/x-moonscript", "application/x-moonscript"]
+    version_added = "1.5"
 
     tokens = {
-        'root': [
-            (r'#!(.*?)$', Comment.Preproc),
-            default('base'),
+        "root": [
+            (r"#!(.*?)$", Comment.Preproc),
+            default("base"),
         ],
-        'base': [
-            ('--.*$', Comment.Single),
-            (r'(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?', Number.Float),
-            (r'(?i)\d+e[+-]?\d+', Number.Float),
-            (r'(?i)0x[0-9a-f]*', Number.Hex),
-            (r'\d+', Number.Integer),
-            (r'\n', Whitespace),
-            (r'[^\S\n]+', Text),
-            (r'(?s)\[(=*)\[.*?\]\1\]', String),
-            (r'(->|=>)', Name.Function),
-            (r':[a-zA-Z_]\w*', Name.Variable),
-            (r'(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])', Operator),
-            (r'[;,]', Punctuation),
-            (r'[\[\]{}()]', Keyword.Type),
-            (r'[a-zA-Z_]\w*:', Name.Variable),
-            (words((
-                'class', 'extends', 'if', 'then', 'super', 'do', 'with',
-                'import', 'export', 'while', 'elseif', 'return', 'for', 'in',
-                'from', 'when', 'using', 'else', 'and', 'or', 'not', 'switch',
-                'break'), suffix=r'\b'),
-             Keyword),
-            (r'(true|false|nil)\b', Keyword.Constant),
-            (r'(and|or|not)\b', Operator.Word),
-            (r'(self)\b', Name.Builtin.Pseudo),
-            (r'@@?([a-zA-Z_]\w*)?', Name.Variable.Class),
-            (r'[A-Z]\w*', Name.Class),  # proper name
+        "base": [
+            ("--.*$", Comment.Single),
+            (r"(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?", Number.Float),
+            (r"(?i)\d+e[+-]?\d+", Number.Float),
+            (r"(?i)0x[0-9a-f]*", Number.Hex),
+            (r"\d+", Number.Integer),
+            (r"\n", Whitespace),
+            (r"[^\S\n]+", Text),
+            (r"(?s)\[(=*)\[.*?\]\1\]", String),
+            (r"(->|=>)", Name.Function),
+            (r":[a-zA-Z_]\w*", Name.Variable),
+            (r"(==|!=|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#!.\\:])", Operator),
+            (r"[;,]", Punctuation),
+            (r"[\[\]{}()]", Keyword.Type),
+            (r"[a-zA-Z_]\w*:", Name.Variable),
+            (
+                words(
+                    (
+                        "class",
+                        "extends",
+                        "if",
+                        "then",
+                        "super",
+                        "do",
+                        "with",
+                        "import",
+                        "export",
+                        "while",
+                        "elseif",
+                        "return",
+                        "for",
+                        "in",
+                        "from",
+                        "when",
+                        "using",
+                        "else",
+                        "and",
+                        "or",
+                        "not",
+                        "switch",
+                        "break",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (r"(true|false|nil)\b", Keyword.Constant),
+            (r"(and|or|not)\b", Operator.Word),
+            (r"(self)\b", Name.Builtin.Pseudo),
+            (r"@@?([a-zA-Z_]\w*)?", Name.Variable.Class),
+            (r"[A-Z]\w*", Name.Class),  # proper name
             (words(all_lua_builtins(), suffix=r"\b"), Name.Builtin),
-            (r'[A-Za-z_]\w*', Name),
-            ("'", String.Single, combined('stringescape', 'sqs')),
-            ('"', String.Double, combined('stringescape', 'dqs'))
+            (r"[A-Za-z_]\w*", Name),
+            ("'", String.Single, combined("stringescape", "sqs")),
+            ('"', String.Double, combined("stringescape", "dqs")),
         ],
-        'stringescape': [
-            (r'''\\([abfnrtv\\"']|\d{1,3})''', String.Escape)
-        ],
-        'sqs': [
-            ("'", String.Single, '#pop'),
-            ("[^']+", String)
-        ],
-        'dqs': [
-            ('"', String.Double, '#pop'),
-            ('[^"]+', String)
-        ]
+        "stringescape": [(r"""\\([abfnrtv\\"']|\d{1,3})""", String.Escape)],
+        "sqs": [("'", String.Single, "#pop"), ("[^']+", String)],
+        "dqs": [('"', String.Double, "#pop"), ('[^"]+', String)],
     }
 
     def get_tokens_unprocessed(self, text):
@@ -569,63 +611,72 @@ class ChaiscriptLexer(RegexLexer):
     For ChaiScript source code.
     """
 
-    name = 'ChaiScript'
-    url = 'http://chaiscript.com/'
-    aliases = ['chaiscript', 'chai']
-    filenames = ['*.chai']
-    mimetypes = ['text/x-chaiscript', 'application/x-chaiscript']
-    version_added = '2.0'
+    name = "ChaiScript"
+    url = "http://chaiscript.com/"
+    aliases = ["chaiscript", "chai"]
+    filenames = ["*.chai"]
+    mimetypes = ["text/x-chaiscript", "application/x-chaiscript"]
+    version_added = "2.0"
 
     flags = re.DOTALL | re.MULTILINE
 
     tokens = {
-        'commentsandwhitespace': [
-            (r'\s+', Text),
-            (r'//.*?\n', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline),
-            (r'^\#.*?\n', Comment.Single)
+        "commentsandwhitespace": [
+            (r"\s+", Text),
+            (r"//.*?\n", Comment.Single),
+            (r"/\*.*?\*/", Comment.Multiline),
+            (r"^\#.*?\n", Comment.Single),
         ],
-        'slashstartsregex': [
-            include('commentsandwhitespace'),
-            (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
-             r'([gim]+\b|\B)', String.Regex, '#pop'),
-            (r'(?=/)', Text, ('#pop', 'badregex')),
-            default('#pop')
+        "slashstartsregex": [
+            include("commentsandwhitespace"),
+            (
+                r"/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/" r"([gim]+\b|\B)",
+                String.Regex,
+                "#pop",
+            ),
+            (r"(?=/)", Text, ("#pop", "badregex")),
+            default("#pop"),
         ],
-        'badregex': [
-            (r'\n', Text, '#pop')
-        ],
-        'root': [
-            include('commentsandwhitespace'),
-            (r'\n', Text),
-            (r'[^\S\n]+', Text),
-            (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|\.\.'
-             r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
-            (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
-            (r'[})\].]', Punctuation),
-            (r'[=+\-*/]', Operator),
-            (r'(for|in|while|do|break|return|continue|if|else|'
-             r'throw|try|catch'
-             r')\b', Keyword, 'slashstartsregex'),
-            (r'(var)\b', Keyword.Declaration, 'slashstartsregex'),
-            (r'(attr|def|fun)\b', Keyword.Reserved),
-            (r'(true|false)\b', Keyword.Constant),
-            (r'(eval|throw)\b', Name.Builtin),
-            (r'`\S+`', Name.Builtin),
-            (r'[$a-zA-Z_]\w*', Name.Other),
-            (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'[0-9]+', Number.Integer),
-            (r'"', String.Double, 'dqstring'),
+        "badregex": [(r"\n", Text, "#pop")],
+        "root": [
+            include("commentsandwhitespace"),
+            (r"\n", Text),
+            (r"[^\S\n]+", Text),
+            (
+                r"\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|\.\."
+                r"(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?",
+                Operator,
+                "slashstartsregex",
+            ),
+            (r"[{(\[;,]", Punctuation, "slashstartsregex"),
+            (r"[})\].]", Punctuation),
+            (r"[=+\-*/]", Operator),
+            (
+                r"(for|in|while|do|break|return|continue|if|else|"
+                r"throw|try|catch"
+                r")\b",
+                Keyword,
+                "slashstartsregex",
+            ),
+            (r"(var)\b", Keyword.Declaration, "slashstartsregex"),
+            (r"(attr|def|fun)\b", Keyword.Reserved),
+            (r"(true|false)\b", Keyword.Constant),
+            (r"(eval|throw)\b", Name.Builtin),
+            (r"`\S+`", Name.Builtin),
+            (r"[$a-zA-Z_]\w*", Name.Other),
+            (r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"[0-9]+", Number.Integer),
+            (r'"', String.Double, "dqstring"),
             (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
         ],
-        'dqstring': [
+        "dqstring": [
             (r'\$\{[^"}]+?\}', String.Interpol),
-            (r'\$', String.Double),
-            (r'\\\\', String.Double),
+            (r"\$", String.Double),
+            (r"\\\\", String.Double),
             (r'\\"', String.Double),
             (r'[^\\"$]+', String.Double),
-            (r'"', String.Double, '#pop'),
+            (r'"', String.Double, "#pop"),
         ],
     }
 
@@ -635,82 +686,81 @@ class LSLLexer(RegexLexer):
     For Second Life's Linden Scripting Language source code.
     """
 
-    name = 'LSL'
-    aliases = ['lsl']
-    filenames = ['*.lsl']
-    mimetypes = ['text/x-lsl']
-    url = 'https://wiki.secondlife.com/wiki/Linden_Scripting_Language'
-    version_added = '2.0'
+    name = "LSL"
+    aliases = ["lsl"]
+    filenames = ["*.lsl"]
+    mimetypes = ["text/x-lsl"]
+    url = "https://wiki.secondlife.com/wiki/Linden_Scripting_Language"
+    version_added = "2.0"
 
     flags = re.MULTILINE
 
-    lsl_keywords = r'\b(?:do|else|for|if|jump|return|while)\b'
-    lsl_types = r'\b(?:float|integer|key|list|quaternion|rotation|string|vector)\b'
-    lsl_states = r'\b(?:(?:state)\s+\w+|default)\b'
-    lsl_events = r'\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\b'
-    lsl_functions_builtin = r'\b(?:ll(?:ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|RequestPermissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\b'
-    lsl_constants_float = r'\b(?:DEG_TO_RAD|PI(?:_BY_TWO)?|RAD_TO_DEG|SQRT2|TWO_PI)\b'
-    lsl_constants_integer = r'\b(?:JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASSIVE|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_EQUIVALENCE|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|ROO?T|VELOCITY|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|PATHFINDING_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?))|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE|SET_MODE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[A-D]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\b'
-    lsl_constants_integer_boolean = r'\b(?:FALSE|TRUE)\b'
-    lsl_constants_rotation = r'\b(?:ZERO_ROTATION)\b'
-    lsl_constants_string = r'\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\b'
-    lsl_constants_vector = r'\b(?:TOUCH_INVALID_(?:TEXCOORD|VECTOR)|ZERO_VECTOR)\b'
-    lsl_invalid_broken = r'\b(?:LAND_(?:LARGE|MEDIUM|SMALL)_BRUSH)\b'
-    lsl_invalid_deprecated = r'\b(?:ATTACH_[LR]PEC|DATA_RATING|OBJECT_ATTACHMENT_(?:GEOMETRY_BYTES|SURFACE_AREA)|PRIM_(?:CAST_SHADOWS|MATERIAL_LIGHT|TYPE_LEGACY)|PSYS_SRC_(?:INNER|OUTER)ANGLE|VEHICLE_FLAG_NO_FLY_UP|ll(?:Cloud|Make(?:Explosion|Fountain|Smoke|Fire)|RemoteDataSetRegion|Sound(?:Preload)?|XorBase64Strings(?:Correct)?))\b'
-    lsl_invalid_illegal = r'\b(?:event)\b'
-    lsl_invalid_unimplemented = r'\b(?:CHARACTER_(?:MAX_ANGULAR_(?:ACCEL|SPEED)|TURN_SPEED_MULTIPLIER)|PERMISSION_(?:CHANGE_(?:JOINTS|PERMISSIONS)|RELEASE_OWNERSHIP|REMAP_CONTROLS)|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|ll(?:CollisionSprite|(?:Stop)?PointAt|(?:(?:Refresh|Set)Prim)URL|(?:Take|Release)Camera|RemoteLoadScript))\b'
-    lsl_reserved_godmode = r'\b(?:ll(?:GodLikeRezObject|Set(?:Inventory|Object)PermMask))\b'
-    lsl_reserved_log = r'\b(?:print)\b'
-    lsl_operators = r'\+\+|\-\-|<<|>>|&&?|\|\|?|\^|~|[!%<>=*+\-/]=?'
+    lsl_keywords = r"\b(?:do|else|for|if|jump|return|while)\b"
+    lsl_types = r"\b(?:float|integer|key|list|quaternion|rotation|string|vector)\b"
+    lsl_states = r"\b(?:(?:state)\s+\w+|default)\b"
+    lsl_events = r"\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\b"
+    lsl_functions_builtin = r"\b(?:ll(?:ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|RequestPermissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\b"
+    lsl_constants_float = r"\b(?:DEG_TO_RAD|PI(?:_BY_TWO)?|RAD_TO_DEG|SQRT2|TWO_PI)\b"
+    lsl_constants_integer = r"\b(?:JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASSIVE|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_EQUIVALENCE|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|ROO?T|VELOCITY|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|PATHFINDING_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?))|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE|SET_MODE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[A-D]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\b"
+    lsl_constants_integer_boolean = r"\b(?:FALSE|TRUE)\b"
+    lsl_constants_rotation = r"\b(?:ZERO_ROTATION)\b"
+    lsl_constants_string = r"\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\b"
+    lsl_constants_vector = r"\b(?:TOUCH_INVALID_(?:TEXCOORD|VECTOR)|ZERO_VECTOR)\b"
+    lsl_invalid_broken = r"\b(?:LAND_(?:LARGE|MEDIUM|SMALL)_BRUSH)\b"
+    lsl_invalid_deprecated = r"\b(?:ATTACH_[LR]PEC|DATA_RATING|OBJECT_ATTACHMENT_(?:GEOMETRY_BYTES|SURFACE_AREA)|PRIM_(?:CAST_SHADOWS|MATERIAL_LIGHT|TYPE_LEGACY)|PSYS_SRC_(?:INNER|OUTER)ANGLE|VEHICLE_FLAG_NO_FLY_UP|ll(?:Cloud|Make(?:Explosion|Fountain|Smoke|Fire)|RemoteDataSetRegion|Sound(?:Preload)?|XorBase64Strings(?:Correct)?))\b"
+    lsl_invalid_illegal = r"\b(?:event)\b"
+    lsl_invalid_unimplemented = r"\b(?:CHARACTER_(?:MAX_ANGULAR_(?:ACCEL|SPEED)|TURN_SPEED_MULTIPLIER)|PERMISSION_(?:CHANGE_(?:JOINTS|PERMISSIONS)|RELEASE_OWNERSHIP|REMAP_CONTROLS)|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|ll(?:CollisionSprite|(?:Stop)?PointAt|(?:(?:Refresh|Set)Prim)URL|(?:Take|Release)Camera|RemoteLoadScript))\b"
+    lsl_reserved_godmode = (
+        r"\b(?:ll(?:GodLikeRezObject|Set(?:Inventory|Object)PermMask))\b"
+    )
+    lsl_reserved_log = r"\b(?:print)\b"
+    lsl_operators = r"\+\+|\-\-|<<|>>|&&?|\|\|?|\^|~|[!%<>=*+\-/]=?"
 
     tokens = {
-        'root':
-        [
-            (r'//.*?\n',                          Comment.Single),
-            (r'/\*',                              Comment.Multiline, 'comment'),
-            (r'"',                                String.Double, 'string'),
-            (lsl_keywords,                        Keyword),
-            (lsl_types,                           Keyword.Type),
-            (lsl_states,                          Name.Class),
-            (lsl_events,                          Name.Builtin),
-            (lsl_functions_builtin,               Name.Function),
-            (lsl_constants_float,                 Keyword.Constant),
-            (lsl_constants_integer,               Keyword.Constant),
-            (lsl_constants_integer_boolean,       Keyword.Constant),
-            (lsl_constants_rotation,              Keyword.Constant),
-            (lsl_constants_string,                Keyword.Constant),
-            (lsl_constants_vector,                Keyword.Constant),
-            (lsl_invalid_broken,                  Error),
-            (lsl_invalid_deprecated,              Error),
-            (lsl_invalid_illegal,                 Error),
-            (lsl_invalid_unimplemented,           Error),
-            (lsl_reserved_godmode,                Keyword.Reserved),
-            (lsl_reserved_log,                    Keyword.Reserved),
-            (r'\b([a-zA-Z_]\w*)\b',     Name.Variable),
-            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*', Number.Float),
-            (r'(\d+\.\d*|\.\d+)',                 Number.Float),
-            (r'0[xX][0-9a-fA-F]+',                Number.Hex),
-            (r'\d+',                              Number.Integer),
-            (lsl_operators,                       Operator),
-            (r':=?',                              Error),
-            (r'[,;{}()\[\]]',                     Punctuation),
-            (r'\n+',                              Whitespace),
-            (r'\s+',                              Whitespace)
+        "root": [
+            (r"//.*?\n", Comment.Single),
+            (r"/\*", Comment.Multiline, "comment"),
+            (r'"', String.Double, "string"),
+            (lsl_keywords, Keyword),
+            (lsl_types, Keyword.Type),
+            (lsl_states, Name.Class),
+            (lsl_events, Name.Builtin),
+            (lsl_functions_builtin, Name.Function),
+            (lsl_constants_float, Keyword.Constant),
+            (lsl_constants_integer, Keyword.Constant),
+            (lsl_constants_integer_boolean, Keyword.Constant),
+            (lsl_constants_rotation, Keyword.Constant),
+            (lsl_constants_string, Keyword.Constant),
+            (lsl_constants_vector, Keyword.Constant),
+            (lsl_invalid_broken, Error),
+            (lsl_invalid_deprecated, Error),
+            (lsl_invalid_illegal, Error),
+            (lsl_invalid_unimplemented, Error),
+            (lsl_reserved_godmode, Keyword.Reserved),
+            (lsl_reserved_log, Keyword.Reserved),
+            (r"\b([a-zA-Z_]\w*)\b", Name.Variable),
+            (r"(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d*", Number.Float),
+            (r"(\d+\.\d*|\.\d+)", Number.Float),
+            (r"0[xX][0-9a-fA-F]+", Number.Hex),
+            (r"\d+", Number.Integer),
+            (lsl_operators, Operator),
+            (r":=?", Error),
+            (r"[,;{}()\[\]]", Punctuation),
+            (r"\n+", Whitespace),
+            (r"\s+", Whitespace),
         ],
-        'comment':
-        [
-            (r'[^*/]+',                           Comment.Multiline),
-            (r'/\*',                              Comment.Multiline, '#push'),
-            (r'\*/',                              Comment.Multiline, '#pop'),
-            (r'[*/]',                             Comment.Multiline)
+        "comment": [
+            (r"[^*/]+", Comment.Multiline),
+            (r"/\*", Comment.Multiline, "#push"),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"[*/]", Comment.Multiline),
+        ],
+        "string": [
+            (r'\\([nt"\\])', String.Escape),
+            (r'"', String.Double, "#pop"),
+            (r"\\.", Error),
+            (r'[^"\\]+', String.Double),
         ],
-        'string':
-        [
-            (r'\\([nt"\\])',                      String.Escape),
-            (r'"',                                String.Double, '#pop'),
-            (r'\\.',                              Error),
-            (r'[^"\\]+',                          String.Double),
-        ]
     }
 
 
@@ -723,314 +773,818 @@ class AppleScriptLexer(RegexLexer):
     Contributed by Andreas Amann .
     """
 
-    name = 'AppleScript'
-    url = 'https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html'
-    aliases = ['applescript']
-    filenames = ['*.applescript']
-    version_added = '1.0'
+    name = "AppleScript"
+    url = "https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html"
+    aliases = ["applescript"]
+    filenames = ["*.applescript"]
+    version_added = "1.0"
 
     flags = re.MULTILINE | re.DOTALL
 
-    Identifiers = r'[a-zA-Z]\w*'
+    Identifiers = r"[a-zA-Z]\w*"
 
     # XXX: use words() for all of these
-    Literals = ('AppleScript', 'current application', 'false', 'linefeed',
-                'missing value', 'pi', 'quote', 'result', 'return', 'space',
-                'tab', 'text item delimiters', 'true', 'version')
-    Classes = ('alias ', 'application ', 'boolean ', 'class ', 'constant ',
-               'date ', 'file ', 'integer ', 'list ', 'number ', 'POSIX file ',
-               'real ', 'record ', 'reference ', 'RGB color ', 'script ',
-               'text ', 'unit types', '(?:Unicode )?text', 'string')
-    BuiltIn = ('attachment', 'attribute run', 'character', 'day', 'month',
-               'paragraph', 'word', 'year')
-    HandlerParams = ('about', 'above', 'against', 'apart from', 'around',
-                     'aside from', 'at', 'below', 'beneath', 'beside',
-                     'between', 'for', 'given', 'instead of', 'on', 'onto',
-                     'out of', 'over', 'since')
-    Commands = ('ASCII (character|number)', 'activate', 'beep', 'choose URL',
-                'choose application', 'choose color', 'choose file( name)?',
-                'choose folder', 'choose from list',
-                'choose remote application', 'clipboard info',
-                'close( access)?', 'copy', 'count', 'current date', 'delay',
-                'delete', 'display (alert|dialog)', 'do shell script',
-                'duplicate', 'exists', 'get eof', 'get volume settings',
-                'info for', 'launch', 'list (disks|folder)', 'load script',
-                'log', 'make', 'mount volume', 'new', 'offset',
-                'open( (for access|location))?', 'path to', 'print', 'quit',
-                'random number', 'read', 'round', 'run( script)?',
-                'say', 'scripting components',
-                'set (eof|the clipboard to|volume)', 'store script',
-                'summarize', 'system attribute', 'system info',
-                'the clipboard', 'time to GMT', 'write', 'quoted form')
-    References = ('(in )?back of', '(in )?front of', '[0-9]+(st|nd|rd|th)',
-                  'first', 'second', 'third', 'fourth', 'fifth', 'sixth',
-                  'seventh', 'eighth', 'ninth', 'tenth', 'after', 'back',
-                  'before', 'behind', 'every', 'front', 'index', 'last',
-                  'middle', 'some', 'that', 'through', 'thru', 'where', 'whose')
-    Operators = ("and", "or", "is equal", "equals", "(is )?equal to", "is not",
-                 "isn't", "isn't equal( to)?", "is not equal( to)?",
-                 "doesn't equal", "does not equal", "(is )?greater than",
-                 "comes after", "is not less than or equal( to)?",
-                 "isn't less than or equal( to)?", "(is )?less than",
-                 "comes before", "is not greater than or equal( to)?",
-                 "isn't greater than or equal( to)?",
-                 "(is  )?greater than or equal( to)?", "is not less than",
-                 "isn't less than", "does not come before",
-                 "doesn't come before", "(is )?less than or equal( to)?",
-                 "is not greater than", "isn't greater than",
-                 "does not come after", "doesn't come after", "starts? with",
-                 "begins? with", "ends? with", "contains?", "does not contain",
-                 "doesn't contain", "is in", "is contained by", "is not in",
-                 "is not contained by", "isn't contained by", "div", "mod",
-                 "not", "(a  )?(ref( to)?|reference to)", "is", "does")
-    Control = ('considering', 'else', 'error', 'exit', 'from', 'if',
-               'ignoring', 'in', 'repeat', 'tell', 'then', 'times', 'to',
-               'try', 'until', 'using terms from', 'while', 'whith',
-               'with timeout( of)?', 'with transaction', 'by', 'continue',
-               'end', 'its?', 'me', 'my', 'return', 'of', 'as')
-    Declarations = ('global', 'local', 'prop(erty)?', 'set', 'get')
-    Reserved = ('but', 'put', 'returning', 'the')
-    StudioClasses = ('action cell', 'alert reply', 'application', 'box',
-                     'browser( cell)?', 'bundle', 'button( cell)?', 'cell',
-                     'clip view', 'color well', 'color-panel',
-                     'combo box( item)?', 'control',
-                     'data( (cell|column|item|row|source))?', 'default entry',
-                     'dialog reply', 'document', 'drag info', 'drawer',
-                     'event', 'font(-panel)?', 'formatter',
-                     'image( (cell|view))?', 'matrix', 'menu( item)?', 'item',
-                     'movie( view)?', 'open-panel', 'outline view', 'panel',
-                     'pasteboard', 'plugin', 'popup button',
-                     'progress indicator', 'responder', 'save-panel',
-                     'scroll view', 'secure text field( cell)?', 'slider',
-                     'sound', 'split view', 'stepper', 'tab view( item)?',
-                     'table( (column|header cell|header view|view))',
-                     'text( (field( cell)?|view))?', 'toolbar( item)?',
-                     'user-defaults', 'view', 'window')
-    StudioEvents = ('accept outline drop', 'accept table drop', 'action',
-                    'activated', 'alert ended', 'awake from nib', 'became key',
-                    'became main', 'begin editing', 'bounds changed',
-                    'cell value', 'cell value changed', 'change cell value',
-                    'change item value', 'changed', 'child of item',
-                    'choose menu item', 'clicked', 'clicked toolbar item',
-                    'closed', 'column clicked', 'column moved',
-                    'column resized', 'conclude drop', 'data representation',
-                    'deminiaturized', 'dialog ended', 'document nib name',
-                    'double clicked', 'drag( (entered|exited|updated))?',
-                    'drop', 'end editing', 'exposed', 'idle', 'item expandable',
-                    'item value', 'item value changed', 'items changed',
-                    'keyboard down', 'keyboard up', 'launched',
-                    'load data representation', 'miniaturized', 'mouse down',
-                    'mouse dragged', 'mouse entered', 'mouse exited',
-                    'mouse moved', 'mouse up', 'moved',
-                    'number of browser rows', 'number of items',
-                    'number of rows', 'open untitled', 'opened', 'panel ended',
-                    'parameters updated', 'plugin loaded', 'prepare drop',
-                    'prepare outline drag', 'prepare outline drop',
-                    'prepare table drag', 'prepare table drop',
-                    'read from file', 'resigned active', 'resigned key',
-                    'resigned main', 'resized( sub views)?',
-                    'right mouse down', 'right mouse dragged',
-                    'right mouse up', 'rows changed', 'scroll wheel',
-                    'selected tab view item', 'selection changed',
-                    'selection changing', 'should begin editing',
-                    'should close', 'should collapse item',
-                    'should end editing', 'should expand item',
-                    'should open( untitled)?',
-                    'should quit( after last window closed)?',
-                    'should select column', 'should select item',
-                    'should select row', 'should select tab view item',
-                    'should selection change', 'should zoom', 'shown',
-                    'update menu item', 'update parameters',
-                    'update toolbar item', 'was hidden', 'was miniaturized',
-                    'will become active', 'will close', 'will dismiss',
-                    'will display browser cell', 'will display cell',
-                    'will display item cell', 'will display outline cell',
-                    'will finish launching', 'will hide', 'will miniaturize',
-                    'will move', 'will open', 'will pop up', 'will quit',
-                    'will resign active', 'will resize( sub views)?',
-                    'will select tab view item', 'will show', 'will zoom',
-                    'write to file', 'zoomed')
-    StudioCommands = ('animate', 'append', 'call method', 'center',
-                      'close drawer', 'close panel', 'display',
-                      'display alert', 'display dialog', 'display panel', 'go',
-                      'hide', 'highlight', 'increment', 'item for',
-                      'load image', 'load movie', 'load nib', 'load panel',
-                      'load sound', 'localized string', 'lock focus', 'log',
-                      'open drawer', 'path for', 'pause', 'perform action',
-                      'play', 'register', 'resume', 'scroll', 'select( all)?',
-                      'show', 'size to fit', 'start', 'step back',
-                      'step forward', 'stop', 'synchronize', 'unlock focus',
-                      'update')
-    StudioProperties = ('accepts arrow key', 'action method', 'active',
-                        'alignment', 'allowed identifiers',
-                        'allows branch selection', 'allows column reordering',
-                        'allows column resizing', 'allows column selection',
-                        'allows customization',
-                        'allows editing text attributes',
-                        'allows empty selection', 'allows mixed state',
-                        'allows multiple selection', 'allows reordering',
-                        'allows undo', 'alpha( value)?', 'alternate image',
-                        'alternate increment value', 'alternate title',
-                        'animation delay', 'associated file name',
-                        'associated object', 'auto completes', 'auto display',
-                        'auto enables items', 'auto repeat',
-                        'auto resizes( outline column)?',
-                        'auto save expanded items', 'auto save name',
-                        'auto save table columns', 'auto saves configuration',
-                        'auto scroll', 'auto sizes all columns to fit',
-                        'auto sizes cells', 'background color', 'bezel state',
-                        'bezel style', 'bezeled', 'border rect', 'border type',
-                        'bordered', 'bounds( rotation)?', 'box type',
-                        'button returned', 'button type',
-                        'can choose directories', 'can choose files',
-                        'can draw', 'can hide',
-                        'cell( (background color|size|type))?', 'characters',
-                        'class', 'click count', 'clicked( data)? column',
-                        'clicked data item', 'clicked( data)? row',
-                        'closeable', 'collating', 'color( (mode|panel))',
-                        'command key down', 'configuration',
-                        'content(s| (size|view( margins)?))?', 'context',
-                        'continuous', 'control key down', 'control size',
-                        'control tint', 'control view',
-                        'controller visible', 'coordinate system',
-                        'copies( on scroll)?', 'corner view', 'current cell',
-                        'current column', 'current( field)?  editor',
-                        'current( menu)? item', 'current row',
-                        'current tab view item', 'data source',
-                        'default identifiers', 'delta (x|y|z)',
-                        'destination window', 'directory', 'display mode',
-                        'displayed cell', 'document( (edited|rect|view))?',
-                        'double value', 'dragged column', 'dragged distance',
-                        'dragged items', 'draws( cell)? background',
-                        'draws grid', 'dynamically scrolls', 'echos bullets',
-                        'edge', 'editable', 'edited( data)? column',
-                        'edited data item', 'edited( data)? row', 'enabled',
-                        'enclosing scroll view', 'ending page',
-                        'error handling', 'event number', 'event type',
-                        'excluded from windows menu', 'executable path',
-                        'expanded', 'fax number', 'field editor', 'file kind',
-                        'file name', 'file type', 'first responder',
-                        'first visible column', 'flipped', 'floating',
-                        'font( panel)?', 'formatter', 'frameworks path',
-                        'frontmost', 'gave up', 'grid color', 'has data items',
-                        'has horizontal ruler', 'has horizontal scroller',
-                        'has parent data item', 'has resize indicator',
-                        'has shadow', 'has sub menu', 'has vertical ruler',
-                        'has vertical scroller', 'header cell', 'header view',
-                        'hidden', 'hides when deactivated', 'highlights by',
-                        'horizontal line scroll', 'horizontal page scroll',
-                        'horizontal ruler view', 'horizontally resizable',
-                        'icon image', 'id', 'identifier',
-                        'ignores multiple clicks',
-                        'image( (alignment|dims when disabled|frame style|scaling))?',
-                        'imports graphics', 'increment value',
-                        'indentation per level', 'indeterminate', 'index',
-                        'integer value', 'intercell spacing', 'item height',
-                        'key( (code|equivalent( modifier)?|window))?',
-                        'knob thickness', 'label', 'last( visible)? column',
-                        'leading offset', 'leaf', 'level', 'line scroll',
-                        'loaded', 'localized sort', 'location', 'loop mode',
-                        'main( (bunde|menu|window))?', 'marker follows cell',
-                        'matrix mode', 'maximum( content)? size',
-                        'maximum visible columns',
-                        'menu( form representation)?', 'miniaturizable',
-                        'miniaturized', 'minimized image', 'minimized title',
-                        'minimum column width', 'minimum( content)? size',
-                        'modal', 'modified', 'mouse down state',
-                        'movie( (controller|file|rect))?', 'muted', 'name',
-                        'needs display', 'next state', 'next text',
-                        'number of tick marks', 'only tick mark values',
-                        'opaque', 'open panel', 'option key down',
-                        'outline table column', 'page scroll', 'pages across',
-                        'pages down', 'palette label', 'pane splitter',
-                        'parent data item', 'parent window', 'pasteboard',
-                        'path( (names|separator))?', 'playing',
-                        'plays every frame', 'plays selection only', 'position',
-                        'preferred edge', 'preferred type', 'pressure',
-                        'previous text', 'prompt', 'properties',
-                        'prototype cell', 'pulls down', 'rate',
-                        'released when closed', 'repeated',
-                        'requested print time', 'required file type',
-                        'resizable', 'resized column', 'resource path',
-                        'returns records', 'reuses columns', 'rich text',
-                        'roll over', 'row height', 'rulers visible',
-                        'save panel', 'scripts path', 'scrollable',
-                        'selectable( identifiers)?', 'selected cell',
-                        'selected( data)? columns?', 'selected data items?',
-                        'selected( data)? rows?', 'selected item identifier',
-                        'selection by rect', 'send action on arrow key',
-                        'sends action when done editing', 'separates columns',
-                        'separator item', 'sequence number', 'services menu',
-                        'shared frameworks path', 'shared support path',
-                        'sheet', 'shift key down', 'shows alpha',
-                        'shows state by', 'size( mode)?',
-                        'smart insert delete enabled', 'sort case sensitivity',
-                        'sort column', 'sort order', 'sort type',
-                        'sorted( data rows)?', 'sound', 'source( mask)?',
-                        'spell checking enabled', 'starting page', 'state',
-                        'string value', 'sub menu', 'super menu', 'super view',
-                        'tab key traverses cells', 'tab state', 'tab type',
-                        'tab view', 'table view', 'tag', 'target( printer)?',
-                        'text color', 'text container insert',
-                        'text container origin', 'text returned',
-                        'tick mark position', 'time stamp',
-                        'title(d| (cell|font|height|position|rect))?',
-                        'tool tip', 'toolbar', 'trailing offset', 'transparent',
-                        'treat packages as directories', 'truncated labels',
-                        'types', 'unmodified characters', 'update views',
-                        'use sort indicator', 'user defaults',
-                        'uses data source', 'uses ruler',
-                        'uses threaded animation',
-                        'uses title from previous column', 'value wraps',
-                        'version',
-                        'vertical( (line scroll|page scroll|ruler view))?',
-                        'vertically resizable', 'view',
-                        'visible( document rect)?', 'volume', 'width', 'window',
-                        'windows menu', 'wraps', 'zoomable', 'zoomed')
+    Literals = (
+        "AppleScript",
+        "current application",
+        "false",
+        "linefeed",
+        "missing value",
+        "pi",
+        "quote",
+        "result",
+        "return",
+        "space",
+        "tab",
+        "text item delimiters",
+        "true",
+        "version",
+    )
+    Classes = (
+        "alias ",
+        "application ",
+        "boolean ",
+        "class ",
+        "constant ",
+        "date ",
+        "file ",
+        "integer ",
+        "list ",
+        "number ",
+        "POSIX file ",
+        "real ",
+        "record ",
+        "reference ",
+        "RGB color ",
+        "script ",
+        "text ",
+        "unit types",
+        "(?:Unicode )?text",
+        "string",
+    )
+    BuiltIn = (
+        "attachment",
+        "attribute run",
+        "character",
+        "day",
+        "month",
+        "paragraph",
+        "word",
+        "year",
+    )
+    HandlerParams = (
+        "about",
+        "above",
+        "against",
+        "apart from",
+        "around",
+        "aside from",
+        "at",
+        "below",
+        "beneath",
+        "beside",
+        "between",
+        "for",
+        "given",
+        "instead of",
+        "on",
+        "onto",
+        "out of",
+        "over",
+        "since",
+    )
+    Commands = (
+        "ASCII (character|number)",
+        "activate",
+        "beep",
+        "choose URL",
+        "choose application",
+        "choose color",
+        "choose file( name)?",
+        "choose folder",
+        "choose from list",
+        "choose remote application",
+        "clipboard info",
+        "close( access)?",
+        "copy",
+        "count",
+        "current date",
+        "delay",
+        "delete",
+        "display (alert|dialog)",
+        "do shell script",
+        "duplicate",
+        "exists",
+        "get eof",
+        "get volume settings",
+        "info for",
+        "launch",
+        "list (disks|folder)",
+        "load script",
+        "log",
+        "make",
+        "mount volume",
+        "new",
+        "offset",
+        "open( (for access|location))?",
+        "path to",
+        "print",
+        "quit",
+        "random number",
+        "read",
+        "round",
+        "run( script)?",
+        "say",
+        "scripting components",
+        "set (eof|the clipboard to|volume)",
+        "store script",
+        "summarize",
+        "system attribute",
+        "system info",
+        "the clipboard",
+        "time to GMT",
+        "write",
+        "quoted form",
+    )
+    References = (
+        "(in )?back of",
+        "(in )?front of",
+        "[0-9]+(st|nd|rd|th)",
+        "first",
+        "second",
+        "third",
+        "fourth",
+        "fifth",
+        "sixth",
+        "seventh",
+        "eighth",
+        "ninth",
+        "tenth",
+        "after",
+        "back",
+        "before",
+        "behind",
+        "every",
+        "front",
+        "index",
+        "last",
+        "middle",
+        "some",
+        "that",
+        "through",
+        "thru",
+        "where",
+        "whose",
+    )
+    Operators = (
+        "and",
+        "or",
+        "is equal",
+        "equals",
+        "(is )?equal to",
+        "is not",
+        "isn't",
+        "isn't equal( to)?",
+        "is not equal( to)?",
+        "doesn't equal",
+        "does not equal",
+        "(is )?greater than",
+        "comes after",
+        "is not less than or equal( to)?",
+        "isn't less than or equal( to)?",
+        "(is )?less than",
+        "comes before",
+        "is not greater than or equal( to)?",
+        "isn't greater than or equal( to)?",
+        "(is  )?greater than or equal( to)?",
+        "is not less than",
+        "isn't less than",
+        "does not come before",
+        "doesn't come before",
+        "(is )?less than or equal( to)?",
+        "is not greater than",
+        "isn't greater than",
+        "does not come after",
+        "doesn't come after",
+        "starts? with",
+        "begins? with",
+        "ends? with",
+        "contains?",
+        "does not contain",
+        "doesn't contain",
+        "is in",
+        "is contained by",
+        "is not in",
+        "is not contained by",
+        "isn't contained by",
+        "div",
+        "mod",
+        "not",
+        "(a  )?(ref( to)?|reference to)",
+        "is",
+        "does",
+    )
+    Control = (
+        "considering",
+        "else",
+        "error",
+        "exit",
+        "from",
+        "if",
+        "ignoring",
+        "in",
+        "repeat",
+        "tell",
+        "then",
+        "times",
+        "to",
+        "try",
+        "until",
+        "using terms from",
+        "while",
+        "whith",
+        "with timeout( of)?",
+        "with transaction",
+        "by",
+        "continue",
+        "end",
+        "its?",
+        "me",
+        "my",
+        "return",
+        "of",
+        "as",
+    )
+    Declarations = ("global", "local", "prop(erty)?", "set", "get")
+    Reserved = ("but", "put", "returning", "the")
+    StudioClasses = (
+        "action cell",
+        "alert reply",
+        "application",
+        "box",
+        "browser( cell)?",
+        "bundle",
+        "button( cell)?",
+        "cell",
+        "clip view",
+        "color well",
+        "color-panel",
+        "combo box( item)?",
+        "control",
+        "data( (cell|column|item|row|source))?",
+        "default entry",
+        "dialog reply",
+        "document",
+        "drag info",
+        "drawer",
+        "event",
+        "font(-panel)?",
+        "formatter",
+        "image( (cell|view))?",
+        "matrix",
+        "menu( item)?",
+        "item",
+        "movie( view)?",
+        "open-panel",
+        "outline view",
+        "panel",
+        "pasteboard",
+        "plugin",
+        "popup button",
+        "progress indicator",
+        "responder",
+        "save-panel",
+        "scroll view",
+        "secure text field( cell)?",
+        "slider",
+        "sound",
+        "split view",
+        "stepper",
+        "tab view( item)?",
+        "table( (column|header cell|header view|view))",
+        "text( (field( cell)?|view))?",
+        "toolbar( item)?",
+        "user-defaults",
+        "view",
+        "window",
+    )
+    StudioEvents = (
+        "accept outline drop",
+        "accept table drop",
+        "action",
+        "activated",
+        "alert ended",
+        "awake from nib",
+        "became key",
+        "became main",
+        "begin editing",
+        "bounds changed",
+        "cell value",
+        "cell value changed",
+        "change cell value",
+        "change item value",
+        "changed",
+        "child of item",
+        "choose menu item",
+        "clicked",
+        "clicked toolbar item",
+        "closed",
+        "column clicked",
+        "column moved",
+        "column resized",
+        "conclude drop",
+        "data representation",
+        "deminiaturized",
+        "dialog ended",
+        "document nib name",
+        "double clicked",
+        "drag( (entered|exited|updated))?",
+        "drop",
+        "end editing",
+        "exposed",
+        "idle",
+        "item expandable",
+        "item value",
+        "item value changed",
+        "items changed",
+        "keyboard down",
+        "keyboard up",
+        "launched",
+        "load data representation",
+        "miniaturized",
+        "mouse down",
+        "mouse dragged",
+        "mouse entered",
+        "mouse exited",
+        "mouse moved",
+        "mouse up",
+        "moved",
+        "number of browser rows",
+        "number of items",
+        "number of rows",
+        "open untitled",
+        "opened",
+        "panel ended",
+        "parameters updated",
+        "plugin loaded",
+        "prepare drop",
+        "prepare outline drag",
+        "prepare outline drop",
+        "prepare table drag",
+        "prepare table drop",
+        "read from file",
+        "resigned active",
+        "resigned key",
+        "resigned main",
+        "resized( sub views)?",
+        "right mouse down",
+        "right mouse dragged",
+        "right mouse up",
+        "rows changed",
+        "scroll wheel",
+        "selected tab view item",
+        "selection changed",
+        "selection changing",
+        "should begin editing",
+        "should close",
+        "should collapse item",
+        "should end editing",
+        "should expand item",
+        "should open( untitled)?",
+        "should quit( after last window closed)?",
+        "should select column",
+        "should select item",
+        "should select row",
+        "should select tab view item",
+        "should selection change",
+        "should zoom",
+        "shown",
+        "update menu item",
+        "update parameters",
+        "update toolbar item",
+        "was hidden",
+        "was miniaturized",
+        "will become active",
+        "will close",
+        "will dismiss",
+        "will display browser cell",
+        "will display cell",
+        "will display item cell",
+        "will display outline cell",
+        "will finish launching",
+        "will hide",
+        "will miniaturize",
+        "will move",
+        "will open",
+        "will pop up",
+        "will quit",
+        "will resign active",
+        "will resize( sub views)?",
+        "will select tab view item",
+        "will show",
+        "will zoom",
+        "write to file",
+        "zoomed",
+    )
+    StudioCommands = (
+        "animate",
+        "append",
+        "call method",
+        "center",
+        "close drawer",
+        "close panel",
+        "display",
+        "display alert",
+        "display dialog",
+        "display panel",
+        "go",
+        "hide",
+        "highlight",
+        "increment",
+        "item for",
+        "load image",
+        "load movie",
+        "load nib",
+        "load panel",
+        "load sound",
+        "localized string",
+        "lock focus",
+        "log",
+        "open drawer",
+        "path for",
+        "pause",
+        "perform action",
+        "play",
+        "register",
+        "resume",
+        "scroll",
+        "select( all)?",
+        "show",
+        "size to fit",
+        "start",
+        "step back",
+        "step forward",
+        "stop",
+        "synchronize",
+        "unlock focus",
+        "update",
+    )
+    StudioProperties = (
+        "accepts arrow key",
+        "action method",
+        "active",
+        "alignment",
+        "allowed identifiers",
+        "allows branch selection",
+        "allows column reordering",
+        "allows column resizing",
+        "allows column selection",
+        "allows customization",
+        "allows editing text attributes",
+        "allows empty selection",
+        "allows mixed state",
+        "allows multiple selection",
+        "allows reordering",
+        "allows undo",
+        "alpha( value)?",
+        "alternate image",
+        "alternate increment value",
+        "alternate title",
+        "animation delay",
+        "associated file name",
+        "associated object",
+        "auto completes",
+        "auto display",
+        "auto enables items",
+        "auto repeat",
+        "auto resizes( outline column)?",
+        "auto save expanded items",
+        "auto save name",
+        "auto save table columns",
+        "auto saves configuration",
+        "auto scroll",
+        "auto sizes all columns to fit",
+        "auto sizes cells",
+        "background color",
+        "bezel state",
+        "bezel style",
+        "bezeled",
+        "border rect",
+        "border type",
+        "bordered",
+        "bounds( rotation)?",
+        "box type",
+        "button returned",
+        "button type",
+        "can choose directories",
+        "can choose files",
+        "can draw",
+        "can hide",
+        "cell( (background color|size|type))?",
+        "characters",
+        "class",
+        "click count",
+        "clicked( data)? column",
+        "clicked data item",
+        "clicked( data)? row",
+        "closeable",
+        "collating",
+        "color( (mode|panel))",
+        "command key down",
+        "configuration",
+        "content(s| (size|view( margins)?))?",
+        "context",
+        "continuous",
+        "control key down",
+        "control size",
+        "control tint",
+        "control view",
+        "controller visible",
+        "coordinate system",
+        "copies( on scroll)?",
+        "corner view",
+        "current cell",
+        "current column",
+        "current( field)?  editor",
+        "current( menu)? item",
+        "current row",
+        "current tab view item",
+        "data source",
+        "default identifiers",
+        "delta (x|y|z)",
+        "destination window",
+        "directory",
+        "display mode",
+        "displayed cell",
+        "document( (edited|rect|view))?",
+        "double value",
+        "dragged column",
+        "dragged distance",
+        "dragged items",
+        "draws( cell)? background",
+        "draws grid",
+        "dynamically scrolls",
+        "echos bullets",
+        "edge",
+        "editable",
+        "edited( data)? column",
+        "edited data item",
+        "edited( data)? row",
+        "enabled",
+        "enclosing scroll view",
+        "ending page",
+        "error handling",
+        "event number",
+        "event type",
+        "excluded from windows menu",
+        "executable path",
+        "expanded",
+        "fax number",
+        "field editor",
+        "file kind",
+        "file name",
+        "file type",
+        "first responder",
+        "first visible column",
+        "flipped",
+        "floating",
+        "font( panel)?",
+        "formatter",
+        "frameworks path",
+        "frontmost",
+        "gave up",
+        "grid color",
+        "has data items",
+        "has horizontal ruler",
+        "has horizontal scroller",
+        "has parent data item",
+        "has resize indicator",
+        "has shadow",
+        "has sub menu",
+        "has vertical ruler",
+        "has vertical scroller",
+        "header cell",
+        "header view",
+        "hidden",
+        "hides when deactivated",
+        "highlights by",
+        "horizontal line scroll",
+        "horizontal page scroll",
+        "horizontal ruler view",
+        "horizontally resizable",
+        "icon image",
+        "id",
+        "identifier",
+        "ignores multiple clicks",
+        "image( (alignment|dims when disabled|frame style|scaling))?",
+        "imports graphics",
+        "increment value",
+        "indentation per level",
+        "indeterminate",
+        "index",
+        "integer value",
+        "intercell spacing",
+        "item height",
+        "key( (code|equivalent( modifier)?|window))?",
+        "knob thickness",
+        "label",
+        "last( visible)? column",
+        "leading offset",
+        "leaf",
+        "level",
+        "line scroll",
+        "loaded",
+        "localized sort",
+        "location",
+        "loop mode",
+        "main( (bunde|menu|window))?",
+        "marker follows cell",
+        "matrix mode",
+        "maximum( content)? size",
+        "maximum visible columns",
+        "menu( form representation)?",
+        "miniaturizable",
+        "miniaturized",
+        "minimized image",
+        "minimized title",
+        "minimum column width",
+        "minimum( content)? size",
+        "modal",
+        "modified",
+        "mouse down state",
+        "movie( (controller|file|rect))?",
+        "muted",
+        "name",
+        "needs display",
+        "next state",
+        "next text",
+        "number of tick marks",
+        "only tick mark values",
+        "opaque",
+        "open panel",
+        "option key down",
+        "outline table column",
+        "page scroll",
+        "pages across",
+        "pages down",
+        "palette label",
+        "pane splitter",
+        "parent data item",
+        "parent window",
+        "pasteboard",
+        "path( (names|separator))?",
+        "playing",
+        "plays every frame",
+        "plays selection only",
+        "position",
+        "preferred edge",
+        "preferred type",
+        "pressure",
+        "previous text",
+        "prompt",
+        "properties",
+        "prototype cell",
+        "pulls down",
+        "rate",
+        "released when closed",
+        "repeated",
+        "requested print time",
+        "required file type",
+        "resizable",
+        "resized column",
+        "resource path",
+        "returns records",
+        "reuses columns",
+        "rich text",
+        "roll over",
+        "row height",
+        "rulers visible",
+        "save panel",
+        "scripts path",
+        "scrollable",
+        "selectable( identifiers)?",
+        "selected cell",
+        "selected( data)? columns?",
+        "selected data items?",
+        "selected( data)? rows?",
+        "selected item identifier",
+        "selection by rect",
+        "send action on arrow key",
+        "sends action when done editing",
+        "separates columns",
+        "separator item",
+        "sequence number",
+        "services menu",
+        "shared frameworks path",
+        "shared support path",
+        "sheet",
+        "shift key down",
+        "shows alpha",
+        "shows state by",
+        "size( mode)?",
+        "smart insert delete enabled",
+        "sort case sensitivity",
+        "sort column",
+        "sort order",
+        "sort type",
+        "sorted( data rows)?",
+        "sound",
+        "source( mask)?",
+        "spell checking enabled",
+        "starting page",
+        "state",
+        "string value",
+        "sub menu",
+        "super menu",
+        "super view",
+        "tab key traverses cells",
+        "tab state",
+        "tab type",
+        "tab view",
+        "table view",
+        "tag",
+        "target( printer)?",
+        "text color",
+        "text container insert",
+        "text container origin",
+        "text returned",
+        "tick mark position",
+        "time stamp",
+        "title(d| (cell|font|height|position|rect))?",
+        "tool tip",
+        "toolbar",
+        "trailing offset",
+        "transparent",
+        "treat packages as directories",
+        "truncated labels",
+        "types",
+        "unmodified characters",
+        "update views",
+        "use sort indicator",
+        "user defaults",
+        "uses data source",
+        "uses ruler",
+        "uses threaded animation",
+        "uses title from previous column",
+        "value wraps",
+        "version",
+        "vertical( (line scroll|page scroll|ruler view))?",
+        "vertically resizable",
+        "view",
+        "visible( document rect)?",
+        "volume",
+        "width",
+        "window",
+        "windows menu",
+        "wraps",
+        "zoomable",
+        "zoomed",
+    )
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
-            (r'¬\n', String.Escape),
+        "root": [
+            (r"\s+", Text),
+            (r"¬\n", String.Escape),
             (r"'s\s+", Text),  # This is a possessive, consider moving
-            (r'(--|#).*?$', Comment),
-            (r'\(\*', Comment.Multiline, 'comment'),
-            (r'[(){}!,.:]', Punctuation),
-            (r'(«)([^»]+)(»)',
-             bygroups(Text, Name.Builtin, Text)),
-            (r'\b((?:considering|ignoring)\s*)'
-             r'(application responses|case|diacriticals|hyphens|'
-             r'numeric strings|punctuation|white space)',
-             bygroups(Keyword, Name.Builtin)),
-            (r'(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)', Operator),
-            (r"\b({})\b".format('|'.join(Operators)), Operator.Word),
-            (r'^(\s*(?:on|end)\s+)'
-             r'({})'.format('|'.join(StudioEvents[::-1])),
-             bygroups(Keyword, Name.Function)),
-            (r'^(\s*)(in|on|script|to)(\s+)', bygroups(Text, Keyword, Text)),
-            (r'\b(as )({})\b'.format('|'.join(Classes)),
-             bygroups(Keyword, Name.Class)),
-            (r'\b({})\b'.format('|'.join(Literals)), Name.Constant),
-            (r'\b({})\b'.format('|'.join(Commands)), Name.Builtin),
-            (r'\b({})\b'.format('|'.join(Control)), Keyword),
-            (r'\b({})\b'.format('|'.join(Declarations)), Keyword),
-            (r'\b({})\b'.format('|'.join(Reserved)), Name.Builtin),
-            (r'\b({})s?\b'.format('|'.join(BuiltIn)), Name.Builtin),
-            (r'\b({})\b'.format('|'.join(HandlerParams)), Name.Builtin),
-            (r'\b({})\b'.format('|'.join(StudioProperties)), Name.Attribute),
-            (r'\b({})s?\b'.format('|'.join(StudioClasses)), Name.Builtin),
-            (r'\b({})\b'.format('|'.join(StudioCommands)), Name.Builtin),
-            (r'\b({})\b'.format('|'.join(References)), Name.Builtin),
+            (r"(--|#).*?$", Comment),
+            (r"\(\*", Comment.Multiline, "comment"),
+            (r"[(){}!,.:]", Punctuation),
+            (r"(«)([^»]+)(»)", bygroups(Text, Name.Builtin, Text)),
+            (
+                r"\b((?:considering|ignoring)\s*)"
+                r"(application responses|case|diacriticals|hyphens|"
+                r"numeric strings|punctuation|white space)",
+                bygroups(Keyword, Name.Builtin),
+            ),
+            (r"(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)", Operator),
+            (r"\b({})\b".format("|".join(Operators)), Operator.Word),
+            (
+                r"^(\s*(?:on|end)\s+)" r"({})".format("|".join(StudioEvents[::-1])),
+                bygroups(Keyword, Name.Function),
+            ),
+            (r"^(\s*)(in|on|script|to)(\s+)", bygroups(Text, Keyword, Text)),
+            (r"\b(as )({})\b".format("|".join(Classes)), bygroups(Keyword, Name.Class)),
+            (r"\b({})\b".format("|".join(Literals)), Name.Constant),
+            (r"\b({})\b".format("|".join(Commands)), Name.Builtin),
+            (r"\b({})\b".format("|".join(Control)), Keyword),
+            (r"\b({})\b".format("|".join(Declarations)), Keyword),
+            (r"\b({})\b".format("|".join(Reserved)), Name.Builtin),
+            (r"\b({})s?\b".format("|".join(BuiltIn)), Name.Builtin),
+            (r"\b({})\b".format("|".join(HandlerParams)), Name.Builtin),
+            (r"\b({})\b".format("|".join(StudioProperties)), Name.Attribute),
+            (r"\b({})s?\b".format("|".join(StudioClasses)), Name.Builtin),
+            (r"\b({})\b".format("|".join(StudioCommands)), Name.Builtin),
+            (r"\b({})\b".format("|".join(References)), Name.Builtin),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
-            (rf'\b({Identifiers})\b', Name.Variable),
-            (r'[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?', Number.Float),
-            (r'[-+]?\d+', Number.Integer),
+            (rf"\b({Identifiers})\b", Name.Variable),
+            (r"[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?", Number.Float),
+            (r"[-+]?\d+", Number.Integer),
         ],
-        'comment': [
-            (r'\(\*', Comment.Multiline, '#push'),
-            (r'\*\)', Comment.Multiline, '#pop'),
-            ('[^*(]+', Comment.Multiline),
-            ('[*(]', Comment.Multiline),
+        "comment": [
+            (r"\(\*", Comment.Multiline, "#push"),
+            (r"\*\)", Comment.Multiline, "#pop"),
+            ("[^*(]+", Comment.Multiline),
+            ("[*(]", Comment.Multiline),
         ],
     }
 
@@ -1042,84 +1596,156 @@ class RexxLexer(RegexLexer):
     systems. It is popular for I/O- and data based tasks and can act as glue
     language to bind different applications together.
     """
-    name = 'Rexx'
-    url = 'http://www.rexxinfo.org/'
-    aliases = ['rexx', 'arexx']
-    filenames = ['*.rexx', '*.rex', '*.rx', '*.arexx']
-    mimetypes = ['text/x-rexx']
-    version_added = '2.0'
+
+    name = "Rexx"
+    url = "http://www.rexxinfo.org/"
+    aliases = ["rexx", "arexx"]
+    filenames = ["*.rexx", "*.rex", "*.rx", "*.arexx"]
+    mimetypes = ["text/x-rexx"]
+    version_added = "2.0"
     flags = re.IGNORECASE
 
     tokens = {
-        'root': [
-            (r'\s+', Whitespace),
-            (r'/\*', Comment.Multiline, 'comment'),
-            (r'"', String, 'string_double'),
-            (r"'", String, 'string_single'),
-            (r'[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?', Number),
-            (r'([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b',
-             bygroups(Name.Function, Whitespace, Operator, Whitespace,
-                      Keyword.Declaration)),
-            (r'([a-z_]\w*)(\s*)(:)',
-             bygroups(Name.Label, Whitespace, Operator)),
-            include('function'),
-            include('keyword'),
-            include('operator'),
-            (r'[a-z_]\w*', Text),
+        "root": [
+            (r"\s+", Whitespace),
+            (r"/\*", Comment.Multiline, "comment"),
+            (r'"', String, "string_double"),
+            (r"'", String, "string_single"),
+            (r"[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?", Number),
+            (
+                r"([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b",
+                bygroups(
+                    Name.Function, Whitespace, Operator, Whitespace, Keyword.Declaration
+                ),
+            ),
+            (r"([a-z_]\w*)(\s*)(:)", bygroups(Name.Label, Whitespace, Operator)),
+            include("function"),
+            include("keyword"),
+            include("operator"),
+            (r"[a-z_]\w*", Text),
         ],
-        'function': [
-            (words((
-                'abbrev', 'abs', 'address', 'arg', 'b2x', 'bitand', 'bitor', 'bitxor',
-                'c2d', 'c2x', 'center', 'charin', 'charout', 'chars', 'compare',
-                'condition', 'copies', 'd2c', 'd2x', 'datatype', 'date', 'delstr',
-                'delword', 'digits', 'errortext', 'form', 'format', 'fuzz', 'insert',
-                'lastpos', 'left', 'length', 'linein', 'lineout', 'lines', 'max',
-                'min', 'overlay', 'pos', 'queued', 'random', 'reverse', 'right', 'sign',
-                'sourceline', 'space', 'stream', 'strip', 'substr', 'subword', 'symbol',
-                'time', 'trace', 'translate', 'trunc', 'value', 'verify', 'word',
-                'wordindex', 'wordlength', 'wordpos', 'words', 'x2b', 'x2c', 'x2d',
-                'xrange'), suffix=r'(\s*)(\()'),
-             bygroups(Name.Builtin, Whitespace, Operator)),
+        "function": [
+            (
+                words(
+                    (
+                        "abbrev",
+                        "abs",
+                        "address",
+                        "arg",
+                        "b2x",
+                        "bitand",
+                        "bitor",
+                        "bitxor",
+                        "c2d",
+                        "c2x",
+                        "center",
+                        "charin",
+                        "charout",
+                        "chars",
+                        "compare",
+                        "condition",
+                        "copies",
+                        "d2c",
+                        "d2x",
+                        "datatype",
+                        "date",
+                        "delstr",
+                        "delword",
+                        "digits",
+                        "errortext",
+                        "form",
+                        "format",
+                        "fuzz",
+                        "insert",
+                        "lastpos",
+                        "left",
+                        "length",
+                        "linein",
+                        "lineout",
+                        "lines",
+                        "max",
+                        "min",
+                        "overlay",
+                        "pos",
+                        "queued",
+                        "random",
+                        "reverse",
+                        "right",
+                        "sign",
+                        "sourceline",
+                        "space",
+                        "stream",
+                        "strip",
+                        "substr",
+                        "subword",
+                        "symbol",
+                        "time",
+                        "trace",
+                        "translate",
+                        "trunc",
+                        "value",
+                        "verify",
+                        "word",
+                        "wordindex",
+                        "wordlength",
+                        "wordpos",
+                        "words",
+                        "x2b",
+                        "x2c",
+                        "x2d",
+                        "xrange",
+                    ),
+                    suffix=r"(\s*)(\()",
+                ),
+                bygroups(Name.Builtin, Whitespace, Operator),
+            ),
         ],
-        'keyword': [
-            (r'(address|arg|by|call|do|drop|else|end|exit|for|forever|if|'
-             r'interpret|iterate|leave|nop|numeric|off|on|options|parse|'
-             r'pull|push|queue|return|say|select|signal|to|then|trace|until|'
-             r'while)\b', Keyword.Reserved),
+        "keyword": [
+            (
+                r"(address|arg|by|call|do|drop|else|end|exit|for|forever|if|"
+                r"interpret|iterate|leave|nop|numeric|off|on|options|parse|"
+                r"pull|push|queue|return|say|select|signal|to|then|trace|until|"
+                r"while)\b",
+                Keyword.Reserved,
+            ),
         ],
-        'operator': [
-            (r'(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||'
-             r'&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|'
-             r'¬>>|¬>|¬|\.|,)', Operator),
+        "operator": [
+            (
+                r"(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||"
+                r"&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|"
+                r"¬>>|¬>|¬|\.|,)",
+                Operator,
+            ),
         ],
-        'string_double': [
+        "string_double": [
             (r'[^"\n]+', String),
             (r'""', String),
-            (r'"', String, '#pop'),
-            (r'\n', Text, '#pop'),  # Stray linefeed also terminates strings.
+            (r'"', String, "#pop"),
+            (r"\n", Text, "#pop"),  # Stray linefeed also terminates strings.
         ],
-        'string_single': [
-            (r'[^\'\n]+', String),
-            (r'\'\'', String),
-            (r'\'', String, '#pop'),
-            (r'\n', Text, '#pop'),  # Stray linefeed also terminates strings.
+        "string_single": [
+            (r"[^\'\n]+", String),
+            (r"\'\'", String),
+            (r"\'", String, "#pop"),
+            (r"\n", Text, "#pop"),  # Stray linefeed also terminates strings.
+        ],
+        "comment": [
+            (r"[^*]+", Comment.Multiline),
+            (r"\*/", Comment.Multiline, "#pop"),
+            (r"\*", Comment.Multiline),
         ],
-        'comment': [
-            (r'[^*]+', Comment.Multiline),
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'\*', Comment.Multiline),
-        ]
     }
 
     def _c(s):
         return re.compile(s, re.MULTILINE)
-    _ADDRESS_COMMAND_PATTERN = _c(r'^\s*address\s+command\b')
-    _ADDRESS_PATTERN = _c(r'^\s*address\s+')
-    _DO_WHILE_PATTERN = _c(r'^\s*do\s+while\b')
-    _IF_THEN_DO_PATTERN = _c(r'^\s*if\b.+\bthen\s+do\s*$')
-    _PROCEDURE_PATTERN = _c(r'^\s*([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b')
-    _ELSE_DO_PATTERN = _c(r'\belse\s+do\s*$')
-    _PARSE_ARG_PATTERN = _c(r'^\s*parse\s+(upper\s+)?(arg|value)\b')
+
+    _ADDRESS_COMMAND_PATTERN = _c(r"^\s*address\s+command\b")
+    _ADDRESS_PATTERN = _c(r"^\s*address\s+")
+    _DO_WHILE_PATTERN = _c(r"^\s*do\s+while\b")
+    _IF_THEN_DO_PATTERN = _c(r"^\s*if\b.+\bthen\s+do\s*$")
+    _PROCEDURE_PATTERN = _c(r"^\s*([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b")
+    _ELSE_DO_PATTERN = _c(r"\belse\s+do\s*$")
+    _PARSE_ARG_PATTERN = _c(r"^\s*parse\s+(upper\s+)?(arg|value)\b")
     PATTERNS_AND_WEIGHTS = (
         (_ADDRESS_COMMAND_PATTERN, 0.2),
         (_ADDRESS_PATTERN, 0.05),
@@ -1135,17 +1761,22 @@ class RexxLexer(RegexLexer):
         Check for initial comment and patterns that distinguish Rexx from other
         C-like languages.
         """
-        if re.search(r'/\*\**\s*rexx', text, re.IGNORECASE):
+        if re.search(r"/\*\**\s*rexx", text, re.IGNORECASE):
             # Header matches MVS Rexx requirements, this is certainly a Rexx
             # script.
             return 1.0
-        elif text.startswith('/*'):
+        elif text.startswith("/*"):
             # Header matches general Rexx requirements; the source code might
             # still be any language using C comments such as C++, C# or Java.
             lowerText = text.lower()
-            result = sum(weight
-                         for (pattern, weight) in RexxLexer.PATTERNS_AND_WEIGHTS
-                         if pattern.search(lowerText)) + 0.01
+            result = (
+                sum(
+                    weight
+                    for (pattern, weight) in RexxLexer.PATTERNS_AND_WEIGHTS
+                    if pattern.search(lowerText)
+                )
+                + 0.01
+            )
             return min(result, 1.0)
 
 
@@ -1153,40 +1784,44 @@ class MOOCodeLexer(RegexLexer):
     """
     For MOOCode (the MOO scripting language).
     """
-    name = 'MOOCode'
-    url = 'http://www.moo.mud.org/'
-    filenames = ['*.moo']
-    aliases = ['moocode', 'moo']
-    mimetypes = ['text/x-moocode']
-    version_added = '0.9'
+
+    name = "MOOCode"
+    url = "http://www.moo.mud.org/"
+    filenames = ["*.moo"]
+    aliases = ["moocode", "moo"]
+    mimetypes = ["text/x-moocode"]
+    version_added = "0.9"
 
     tokens = {
-        'root': [
+        "root": [
             # Numbers
-            (r'(0|[1-9][0-9_]*)', Number.Integer),
+            (r"(0|[1-9][0-9_]*)", Number.Integer),
             # Strings
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
             # exceptions
-            (r'(E_PERM|E_DIV)', Name.Exception),
+            (r"(E_PERM|E_DIV)", Name.Exception),
             # db-refs
-            (r'((#[-0-9]+)|(\$\w+))', Name.Entity),
+            (r"((#[-0-9]+)|(\$\w+))", Name.Entity),
             # Keywords
-            (r'\b(if|else|elseif|endif|for|endfor|fork|endfork|while'
-             r'|endwhile|break|continue|return|try'
-             r'|except|endtry|finally|in)\b', Keyword),
+            (
+                r"\b(if|else|elseif|endif|for|endfor|fork|endfork|while"
+                r"|endwhile|break|continue|return|try"
+                r"|except|endtry|finally|in)\b",
+                Keyword,
+            ),
             # builtins
-            (r'(random|length)', Name.Builtin),
+            (r"(random|length)", Name.Builtin),
             # special variables
-            (r'(player|caller|this|args)', Name.Variable.Instance),
+            (r"(player|caller|this|args)", Name.Variable.Instance),
             # skip whitespace
-            (r'\s+', Text),
-            (r'\n', Text),
+            (r"\s+", Text),
+            (r"\n", Text),
             # other operators
-            (r'([!;=,{}&|:.\[\]@()<>?]+)', Operator),
+            (r"([!;=,{}&|:.\[\]@()<>?]+)", Operator),
             # function call
-            (r'(\w+)(\()', bygroups(Name.Function, Operator)),
+            (r"(\w+)(\()", bygroups(Name.Function, Operator)),
             # variables
-            (r'(\w+)', Text),
+            (r"(\w+)", Text),
         ]
     }
 
@@ -1196,96 +1831,246 @@ class HybrisLexer(RegexLexer):
     For Hybris source code.
     """
 
-    name = 'Hybris'
-    aliases = ['hybris']
-    filenames = ['*.hyb']
-    mimetypes = ['text/x-hybris', 'application/x-hybris']
-    url = 'https://github.com/evilsocket/hybris'
-    version_added = '1.4'
+    name = "Hybris"
+    aliases = ["hybris"]
+    filenames = ["*.hyb"]
+    mimetypes = ["text/x-hybris", "application/x-hybris"]
+    url = "https://github.com/evilsocket/hybris"
+    version_added = "1.4"
 
     flags = re.MULTILINE | re.DOTALL
 
     tokens = {
-        'root': [
+        "root": [
             # method names
-            (r'^(\s*(?:function|method|operator\s+)+?)'
-             r'([a-zA-Z_]\w*)'
-             r'(\s*)(\()', bygroups(Keyword, Name.Function, Text, Operator)),
-            (r'[^\S\n]+', Text),
-            (r'//.*?\n', Comment.Single),
-            (r'/\*.*?\*/', Comment.Multiline),
-            (r'@[a-zA-Z_][\w.]*', Name.Decorator),
-            (r'(break|case|catch|next|default|do|else|finally|for|foreach|of|'
-             r'unless|if|new|return|switch|me|throw|try|while)\b', Keyword),
-            (r'(extends|private|protected|public|static|throws|function|method|'
-             r'operator)\b', Keyword.Declaration),
-            (r'(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|'
-             r'__INC_PATH__)\b', Keyword.Constant),
-            (r'(class|struct)(\s+)',
-             bygroups(Keyword.Declaration, Text), 'class'),
-            (r'(import|include)(\s+)',
-             bygroups(Keyword.Namespace, Text), 'import'),
-            (words((
-                'gc_collect', 'gc_mm_items', 'gc_mm_usage', 'gc_collect_threshold',
-                'urlencode', 'urldecode', 'base64encode', 'base64decode', 'sha1', 'crc32',
-                'sha2', 'md5', 'md5_file', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos',
-                'cosh', 'exp', 'fabs', 'floor', 'fmod', 'log', 'log10', 'pow', 'sin',
-                'sinh', 'sqrt', 'tan', 'tanh', 'isint', 'isfloat', 'ischar', 'isstring',
-                'isarray', 'ismap', 'isalias', 'typeof', 'sizeof', 'toint', 'tostring',
-                'fromxml', 'toxml', 'binary', 'pack', 'load', 'eval', 'var_names',
-                'var_values', 'user_functions', 'dyn_functions', 'methods', 'call',
-                'call_method', 'mknod', 'mkfifo', 'mount', 'umount2', 'umount', 'ticks',
-                'usleep', 'sleep', 'time', 'strtime', 'strdate', 'dllopen', 'dlllink',
-                'dllcall', 'dllcall_argv', 'dllclose', 'env', 'exec', 'fork', 'getpid',
-                'wait', 'popen', 'pclose', 'exit', 'kill', 'pthread_create',
-                'pthread_create_argv', 'pthread_exit', 'pthread_join', 'pthread_kill',
-                'smtp_send', 'http_get', 'http_post', 'http_download', 'socket', 'bind',
-                'listen', 'accept', 'getsockname', 'getpeername', 'settimeout', 'connect',
-                'server', 'recv', 'send', 'close', 'print', 'println', 'printf', 'input',
-                'readline', 'serial_open', 'serial_fcntl', 'serial_get_attr',
-                'serial_get_ispeed', 'serial_get_ospeed', 'serial_set_attr',
-                'serial_set_ispeed', 'serial_set_ospeed', 'serial_write', 'serial_read',
-                'serial_close', 'xml_load', 'xml_parse', 'fopen', 'fseek', 'ftell',
-                'fsize', 'fread', 'fwrite', 'fgets', 'fclose', 'file', 'readdir',
-                'pcre_replace', 'size', 'pop', 'unmap', 'has', 'keys', 'values',
-                'length', 'find', 'substr', 'replace', 'split', 'trim', 'remove',
-                'contains', 'join'), suffix=r'\b'),
-             Name.Builtin),
-            (words((
-                'MethodReference', 'Runner', 'Dll', 'Thread', 'Pipe', 'Process',
-                'Runnable', 'CGI', 'ClientSocket', 'Socket', 'ServerSocket',
-                'File', 'Console', 'Directory', 'Exception'), suffix=r'\b'),
-             Keyword.Type),
+            (
+                r"^(\s*(?:function|method|operator\s+)+?)"
+                r"([a-zA-Z_]\w*)"
+                r"(\s*)(\()",
+                bygroups(Keyword, Name.Function, Text, Operator),
+            ),
+            (r"[^\S\n]+", Text),
+            (r"//.*?\n", Comment.Single),
+            (r"/\*.*?\*/", Comment.Multiline),
+            (r"@[a-zA-Z_][\w.]*", Name.Decorator),
+            (
+                r"(break|case|catch|next|default|do|else|finally|for|foreach|of|"
+                r"unless|if|new|return|switch|me|throw|try|while)\b",
+                Keyword,
+            ),
+            (
+                r"(extends|private|protected|public|static|throws|function|method|"
+                r"operator)\b",
+                Keyword.Declaration,
+            ),
+            (
+                r"(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|"
+                r"__INC_PATH__)\b",
+                Keyword.Constant,
+            ),
+            (r"(class|struct)(\s+)", bygroups(Keyword.Declaration, Text), "class"),
+            (r"(import|include)(\s+)", bygroups(Keyword.Namespace, Text), "import"),
+            (
+                words(
+                    (
+                        "gc_collect",
+                        "gc_mm_items",
+                        "gc_mm_usage",
+                        "gc_collect_threshold",
+                        "urlencode",
+                        "urldecode",
+                        "base64encode",
+                        "base64decode",
+                        "sha1",
+                        "crc32",
+                        "sha2",
+                        "md5",
+                        "md5_file",
+                        "acos",
+                        "asin",
+                        "atan",
+                        "atan2",
+                        "ceil",
+                        "cos",
+                        "cosh",
+                        "exp",
+                        "fabs",
+                        "floor",
+                        "fmod",
+                        "log",
+                        "log10",
+                        "pow",
+                        "sin",
+                        "sinh",
+                        "sqrt",
+                        "tan",
+                        "tanh",
+                        "isint",
+                        "isfloat",
+                        "ischar",
+                        "isstring",
+                        "isarray",
+                        "ismap",
+                        "isalias",
+                        "typeof",
+                        "sizeof",
+                        "toint",
+                        "tostring",
+                        "fromxml",
+                        "toxml",
+                        "binary",
+                        "pack",
+                        "load",
+                        "eval",
+                        "var_names",
+                        "var_values",
+                        "user_functions",
+                        "dyn_functions",
+                        "methods",
+                        "call",
+                        "call_method",
+                        "mknod",
+                        "mkfifo",
+                        "mount",
+                        "umount2",
+                        "umount",
+                        "ticks",
+                        "usleep",
+                        "sleep",
+                        "time",
+                        "strtime",
+                        "strdate",
+                        "dllopen",
+                        "dlllink",
+                        "dllcall",
+                        "dllcall_argv",
+                        "dllclose",
+                        "env",
+                        "exec",
+                        "fork",
+                        "getpid",
+                        "wait",
+                        "popen",
+                        "pclose",
+                        "exit",
+                        "kill",
+                        "pthread_create",
+                        "pthread_create_argv",
+                        "pthread_exit",
+                        "pthread_join",
+                        "pthread_kill",
+                        "smtp_send",
+                        "http_get",
+                        "http_post",
+                        "http_download",
+                        "socket",
+                        "bind",
+                        "listen",
+                        "accept",
+                        "getsockname",
+                        "getpeername",
+                        "settimeout",
+                        "connect",
+                        "server",
+                        "recv",
+                        "send",
+                        "close",
+                        "print",
+                        "println",
+                        "printf",
+                        "input",
+                        "readline",
+                        "serial_open",
+                        "serial_fcntl",
+                        "serial_get_attr",
+                        "serial_get_ispeed",
+                        "serial_get_ospeed",
+                        "serial_set_attr",
+                        "serial_set_ispeed",
+                        "serial_set_ospeed",
+                        "serial_write",
+                        "serial_read",
+                        "serial_close",
+                        "xml_load",
+                        "xml_parse",
+                        "fopen",
+                        "fseek",
+                        "ftell",
+                        "fsize",
+                        "fread",
+                        "fwrite",
+                        "fgets",
+                        "fclose",
+                        "file",
+                        "readdir",
+                        "pcre_replace",
+                        "size",
+                        "pop",
+                        "unmap",
+                        "has",
+                        "keys",
+                        "values",
+                        "length",
+                        "find",
+                        "substr",
+                        "replace",
+                        "split",
+                        "trim",
+                        "remove",
+                        "contains",
+                        "join",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
+            (
+                words(
+                    (
+                        "MethodReference",
+                        "Runner",
+                        "Dll",
+                        "Thread",
+                        "Pipe",
+                        "Process",
+                        "Runnable",
+                        "CGI",
+                        "ClientSocket",
+                        "Socket",
+                        "ServerSocket",
+                        "File",
+                        "Console",
+                        "Directory",
+                        "Exception",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Type,
+            ),
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
             (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char),
-            (r'(\.)([a-zA-Z_]\w*)',
-             bygroups(Operator, Name.Attribute)),
-            (r'[a-zA-Z_]\w*:', Name.Label),
-            (r'[a-zA-Z_$]\w*', Name),
-            (r'[~^*!%&\[\](){}<>|+=:;,./?\-@]+', Operator),
-            (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
-            (r'0x[0-9a-f]+', Number.Hex),
-            (r'[0-9]+L?', Number.Integer),
-            (r'\n', Text),
-        ],
-        'class': [
-            (r'[a-zA-Z_]\w*', Name.Class, '#pop')
-        ],
-        'import': [
-            (r'[\w.]+\*?', Name.Namespace, '#pop')
+            (r"(\.)([a-zA-Z_]\w*)", bygroups(Operator, Name.Attribute)),
+            (r"[a-zA-Z_]\w*:", Name.Label),
+            (r"[a-zA-Z_$]\w*", Name),
+            (r"[~^*!%&\[\](){}<>|+=:;,./?\-@]+", Operator),
+            (r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?", Number.Float),
+            (r"0x[0-9a-f]+", Number.Hex),
+            (r"[0-9]+L?", Number.Integer),
+            (r"\n", Text),
         ],
+        "class": [(r"[a-zA-Z_]\w*", Name.Class, "#pop")],
+        "import": [(r"[\w.]+\*?", Name.Namespace, "#pop")],
     }
 
     def analyse_text(text):
         """public method and private method don't seem to be quite common
         elsewhere."""
         result = 0
-        if re.search(r'\b(?:public|private)\s+method\b', text):
+        if re.search(r"\b(?:public|private)\s+method\b", text):
             result += 0.01
         return result
 
 
-
 class EasytrieveLexer(RegexLexer):
     """
     Easytrieve Plus is a programming language for extracting, filtering and
@@ -1293,12 +2078,13 @@ class EasytrieveLexer(RegexLexer):
     It is mainly used on mainframe platforms and can access several of the
     mainframe's native file formats. It is somewhat comparable to awk.
     """
-    name = 'Easytrieve'
-    aliases = ['easytrieve']
-    filenames = ['*.ezt', '*.mac']
-    mimetypes = ['text/x-easytrieve']
-    url = 'https://www.broadcom.com/products/mainframe/application-development/easytrieve-report-generator'
-    version_added = '2.1'
+
+    name = "Easytrieve"
+    aliases = ["easytrieve"]
+    filenames = ["*.ezt", "*.mac"]
+    mimetypes = ["text/x-easytrieve"]
+    url = "https://www.broadcom.com/products/mainframe/application-development/easytrieve-report-generator"
+    version_added = "2.1"
     flags = 0
 
     # Note: We cannot use r'\b' at the start and end of keywords because
@@ -1312,96 +2098,312 @@ class EasytrieveLexer(RegexLexer):
     #   * colon (:)
     #
     # Additionally words end once a '*' appears, indicatins a comment.
-    _DELIMITERS = r' \'.,():\n'
-    _DELIMITERS_OR_COMENT = _DELIMITERS + '*'
-    _DELIMITER_PATTERN = '[' + _DELIMITERS + ']'
-    _DELIMITER_PATTERN_CAPTURE = '(' + _DELIMITER_PATTERN + ')'
-    _NON_DELIMITER_OR_COMMENT_PATTERN = '[^' + _DELIMITERS_OR_COMENT + ']'
-    _OPERATORS_PATTERN = '[.+\\-/=\\[\\](){}<>;,&%¬]'
+    _DELIMITERS = r" \'.,():\n"
+    _DELIMITERS_OR_COMENT = _DELIMITERS + "*"
+    _DELIMITER_PATTERN = "[" + _DELIMITERS + "]"
+    _DELIMITER_PATTERN_CAPTURE = "(" + _DELIMITER_PATTERN + ")"
+    _NON_DELIMITER_OR_COMMENT_PATTERN = "[^" + _DELIMITERS_OR_COMENT + "]"
+    _OPERATORS_PATTERN = "[.+\\-/=\\[\\](){}<>;,&%¬]"
     _KEYWORDS = [
-        'AFTER-BREAK', 'AFTER-LINE', 'AFTER-SCREEN', 'AIM', 'AND', 'ATTR',
-        'BEFORE', 'BEFORE-BREAK', 'BEFORE-LINE', 'BEFORE-SCREEN', 'BUSHU',
-        'BY', 'CALL', 'CASE', 'CHECKPOINT', 'CHKP', 'CHKP-STATUS', 'CLEAR',
-        'CLOSE', 'COL', 'COLOR', 'COMMIT', 'CONTROL', 'COPY', 'CURSOR', 'D',
-        'DECLARE', 'DEFAULT', 'DEFINE', 'DELETE', 'DENWA', 'DISPLAY', 'DLI',
-        'DO', 'DUPLICATE', 'E', 'ELSE', 'ELSE-IF', 'END', 'END-CASE',
-        'END-DO', 'END-IF', 'END-PROC', 'ENDPAGE', 'ENDTABLE', 'ENTER', 'EOF',
-        'EQ', 'ERROR', 'EXIT', 'EXTERNAL', 'EZLIB', 'F1', 'F10', 'F11', 'F12',
-        'F13', 'F14', 'F15', 'F16', 'F17', 'F18', 'F19', 'F2', 'F20', 'F21',
-        'F22', 'F23', 'F24', 'F25', 'F26', 'F27', 'F28', 'F29', 'F3', 'F30',
-        'F31', 'F32', 'F33', 'F34', 'F35', 'F36', 'F4', 'F5', 'F6', 'F7',
-        'F8', 'F9', 'FETCH', 'FILE-STATUS', 'FILL', 'FINAL', 'FIRST',
-        'FIRST-DUP', 'FOR', 'GE', 'GET', 'GO', 'GOTO', 'GQ', 'GR', 'GT',
-        'HEADING', 'HEX', 'HIGH-VALUES', 'IDD', 'IDMS', 'IF', 'IN', 'INSERT',
-        'JUSTIFY', 'KANJI-DATE', 'KANJI-DATE-LONG', 'KANJI-TIME', 'KEY',
-        'KEY-PRESSED', 'KOKUGO', 'KUN', 'LAST-DUP', 'LE', 'LEVEL', 'LIKE',
-        'LINE', 'LINE-COUNT', 'LINE-NUMBER', 'LINK', 'LIST', 'LOW-VALUES',
-        'LQ', 'LS', 'LT', 'MACRO', 'MASK', 'MATCHED', 'MEND', 'MESSAGE',
-        'MOVE', 'MSTART', 'NE', 'NEWPAGE', 'NOMASK', 'NOPRINT', 'NOT',
-        'NOTE', 'NOVERIFY', 'NQ', 'NULL', 'OF', 'OR', 'OTHERWISE', 'PA1',
-        'PA2', 'PA3', 'PAGE-COUNT', 'PAGE-NUMBER', 'PARM-REGISTER',
-        'PATH-ID', 'PATTERN', 'PERFORM', 'POINT', 'POS', 'PRIMARY', 'PRINT',
-        'PROCEDURE', 'PROGRAM', 'PUT', 'READ', 'RECORD', 'RECORD-COUNT',
-        'RECORD-LENGTH', 'REFRESH', 'RELEASE', 'RENUM', 'REPEAT', 'REPORT',
-        'REPORT-INPUT', 'RESHOW', 'RESTART', 'RETRIEVE', 'RETURN-CODE',
-        'ROLLBACK', 'ROW', 'S', 'SCREEN', 'SEARCH', 'SECONDARY', 'SELECT',
-        'SEQUENCE', 'SIZE', 'SKIP', 'SOKAKU', 'SORT', 'SQL', 'STOP', 'SUM',
-        'SYSDATE', 'SYSDATE-LONG', 'SYSIN', 'SYSIPT', 'SYSLST', 'SYSPRINT',
-        'SYSSNAP', 'SYSTIME', 'TALLY', 'TERM-COLUMNS', 'TERM-NAME',
-        'TERM-ROWS', 'TERMINATION', 'TITLE', 'TO', 'TRANSFER', 'TRC',
-        'UNIQUE', 'UNTIL', 'UPDATE', 'UPPERCASE', 'USER', 'USERID', 'VALUE',
-        'VERIFY', 'W', 'WHEN', 'WHILE', 'WORK', 'WRITE', 'X', 'XDM', 'XRST'
+        "AFTER-BREAK",
+        "AFTER-LINE",
+        "AFTER-SCREEN",
+        "AIM",
+        "AND",
+        "ATTR",
+        "BEFORE",
+        "BEFORE-BREAK",
+        "BEFORE-LINE",
+        "BEFORE-SCREEN",
+        "BUSHU",
+        "BY",
+        "CALL",
+        "CASE",
+        "CHECKPOINT",
+        "CHKP",
+        "CHKP-STATUS",
+        "CLEAR",
+        "CLOSE",
+        "COL",
+        "COLOR",
+        "COMMIT",
+        "CONTROL",
+        "COPY",
+        "CURSOR",
+        "D",
+        "DECLARE",
+        "DEFAULT",
+        "DEFINE",
+        "DELETE",
+        "DENWA",
+        "DISPLAY",
+        "DLI",
+        "DO",
+        "DUPLICATE",
+        "E",
+        "ELSE",
+        "ELSE-IF",
+        "END",
+        "END-CASE",
+        "END-DO",
+        "END-IF",
+        "END-PROC",
+        "ENDPAGE",
+        "ENDTABLE",
+        "ENTER",
+        "EOF",
+        "EQ",
+        "ERROR",
+        "EXIT",
+        "EXTERNAL",
+        "EZLIB",
+        "F1",
+        "F10",
+        "F11",
+        "F12",
+        "F13",
+        "F14",
+        "F15",
+        "F16",
+        "F17",
+        "F18",
+        "F19",
+        "F2",
+        "F20",
+        "F21",
+        "F22",
+        "F23",
+        "F24",
+        "F25",
+        "F26",
+        "F27",
+        "F28",
+        "F29",
+        "F3",
+        "F30",
+        "F31",
+        "F32",
+        "F33",
+        "F34",
+        "F35",
+        "F36",
+        "F4",
+        "F5",
+        "F6",
+        "F7",
+        "F8",
+        "F9",
+        "FETCH",
+        "FILE-STATUS",
+        "FILL",
+        "FINAL",
+        "FIRST",
+        "FIRST-DUP",
+        "FOR",
+        "GE",
+        "GET",
+        "GO",
+        "GOTO",
+        "GQ",
+        "GR",
+        "GT",
+        "HEADING",
+        "HEX",
+        "HIGH-VALUES",
+        "IDD",
+        "IDMS",
+        "IF",
+        "IN",
+        "INSERT",
+        "JUSTIFY",
+        "KANJI-DATE",
+        "KANJI-DATE-LONG",
+        "KANJI-TIME",
+        "KEY",
+        "KEY-PRESSED",
+        "KOKUGO",
+        "KUN",
+        "LAST-DUP",
+        "LE",
+        "LEVEL",
+        "LIKE",
+        "LINE",
+        "LINE-COUNT",
+        "LINE-NUMBER",
+        "LINK",
+        "LIST",
+        "LOW-VALUES",
+        "LQ",
+        "LS",
+        "LT",
+        "MACRO",
+        "MASK",
+        "MATCHED",
+        "MEND",
+        "MESSAGE",
+        "MOVE",
+        "MSTART",
+        "NE",
+        "NEWPAGE",
+        "NOMASK",
+        "NOPRINT",
+        "NOT",
+        "NOTE",
+        "NOVERIFY",
+        "NQ",
+        "NULL",
+        "OF",
+        "OR",
+        "OTHERWISE",
+        "PA1",
+        "PA2",
+        "PA3",
+        "PAGE-COUNT",
+        "PAGE-NUMBER",
+        "PARM-REGISTER",
+        "PATH-ID",
+        "PATTERN",
+        "PERFORM",
+        "POINT",
+        "POS",
+        "PRIMARY",
+        "PRINT",
+        "PROCEDURE",
+        "PROGRAM",
+        "PUT",
+        "READ",
+        "RECORD",
+        "RECORD-COUNT",
+        "RECORD-LENGTH",
+        "REFRESH",
+        "RELEASE",
+        "RENUM",
+        "REPEAT",
+        "REPORT",
+        "REPORT-INPUT",
+        "RESHOW",
+        "RESTART",
+        "RETRIEVE",
+        "RETURN-CODE",
+        "ROLLBACK",
+        "ROW",
+        "S",
+        "SCREEN",
+        "SEARCH",
+        "SECONDARY",
+        "SELECT",
+        "SEQUENCE",
+        "SIZE",
+        "SKIP",
+        "SOKAKU",
+        "SORT",
+        "SQL",
+        "STOP",
+        "SUM",
+        "SYSDATE",
+        "SYSDATE-LONG",
+        "SYSIN",
+        "SYSIPT",
+        "SYSLST",
+        "SYSPRINT",
+        "SYSSNAP",
+        "SYSTIME",
+        "TALLY",
+        "TERM-COLUMNS",
+        "TERM-NAME",
+        "TERM-ROWS",
+        "TERMINATION",
+        "TITLE",
+        "TO",
+        "TRANSFER",
+        "TRC",
+        "UNIQUE",
+        "UNTIL",
+        "UPDATE",
+        "UPPERCASE",
+        "USER",
+        "USERID",
+        "VALUE",
+        "VERIFY",
+        "W",
+        "WHEN",
+        "WHILE",
+        "WORK",
+        "WRITE",
+        "X",
+        "XDM",
+        "XRST",
     ]
 
     tokens = {
-        'root': [
-            (r'\*.*\n', Comment.Single),
-            (r'\n+', Whitespace),
+        "root": [
+            (r"\*.*\n", Comment.Single),
+            (r"\n+", Whitespace),
             # Macro argument
-            (r'&' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+\.', Name.Variable,
-             'after_macro_argument'),
+            (
+                r"&" + _NON_DELIMITER_OR_COMMENT_PATTERN + r"+\.",
+                Name.Variable,
+                "after_macro_argument",
+            ),
             # Macro call
-            (r'%' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name.Variable),
-            (r'(FILE|MACRO|REPORT)(\s+)',
-             bygroups(Keyword.Declaration, Whitespace), 'after_declaration'),
-            (r'(JOB|PARM)' + r'(' + _DELIMITER_PATTERN + r')',
-             bygroups(Keyword.Declaration, Operator)),
-            (words(_KEYWORDS, suffix=_DELIMITER_PATTERN_CAPTURE),
-             bygroups(Keyword.Reserved, Operator)),
+            (r"%" + _NON_DELIMITER_OR_COMMENT_PATTERN + r"+", Name.Variable),
+            (
+                r"(FILE|MACRO|REPORT)(\s+)",
+                bygroups(Keyword.Declaration, Whitespace),
+                "after_declaration",
+            ),
+            (
+                r"(JOB|PARM)" + r"(" + _DELIMITER_PATTERN + r")",
+                bygroups(Keyword.Declaration, Operator),
+            ),
+            (
+                words(_KEYWORDS, suffix=_DELIMITER_PATTERN_CAPTURE),
+                bygroups(Keyword.Reserved, Operator),
+            ),
             (_OPERATORS_PATTERN, Operator),
             # Procedure declaration
-            (r'(' + _NON_DELIMITER_OR_COMMENT_PATTERN + r'+)(\s*)(\.?)(\s*)(PROC)(\s*\n)',
-             bygroups(Name.Function, Whitespace, Operator, Whitespace,
-                      Keyword.Declaration, Whitespace)),
-            (r'[0-9]+\.[0-9]*', Number.Float),
-            (r'[0-9]+', Number.Integer),
+            (
+                r"("
+                + _NON_DELIMITER_OR_COMMENT_PATTERN
+                + r"+)(\s*)(\.?)(\s*)(PROC)(\s*\n)",
+                bygroups(
+                    Name.Function,
+                    Whitespace,
+                    Operator,
+                    Whitespace,
+                    Keyword.Declaration,
+                    Whitespace,
+                ),
+            ),
+            (r"[0-9]+\.[0-9]*", Number.Float),
+            (r"[0-9]+", Number.Integer),
             (r"'(''|[^'])*'", String),
-            (r'\s+', Whitespace),
+            (r"\s+", Whitespace),
             # Everything else just belongs to a name
-            (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name),
-         ],
-        'after_declaration': [
-            (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name.Function),
-            default('#pop'),
+            (_NON_DELIMITER_OR_COMMENT_PATTERN + r"+", Name),
         ],
-        'after_macro_argument': [
-            (r'\*.*\n', Comment.Single, '#pop'),
-            (r'\s+', Whitespace, '#pop'),
-            (_OPERATORS_PATTERN, Operator, '#pop'),
-            (r"'(''|[^'])*'", String, '#pop'),
+        "after_declaration": [
+            (_NON_DELIMITER_OR_COMMENT_PATTERN + r"+", Name.Function),
+            default("#pop"),
+        ],
+        "after_macro_argument": [
+            (r"\*.*\n", Comment.Single, "#pop"),
+            (r"\s+", Whitespace, "#pop"),
+            (_OPERATORS_PATTERN, Operator, "#pop"),
+            (r"'(''|[^'])*'", String, "#pop"),
             # Everything else just belongs to a name
-            (_NON_DELIMITER_OR_COMMENT_PATTERN + r'+', Name),
+            (_NON_DELIMITER_OR_COMMENT_PATTERN + r"+", Name),
         ],
     }
-    _COMMENT_LINE_REGEX = re.compile(r'^\s*\*')
-    _MACRO_HEADER_REGEX = re.compile(r'^\s*MACRO')
+    _COMMENT_LINE_REGEX = re.compile(r"^\s*\*")
+    _MACRO_HEADER_REGEX = re.compile(r"^\s*MACRO")
 
     def analyse_text(text):
         """
         Perform a structural analysis for basic Easytrieve constructs.
         """
         result = 0.0
-        lines = text.split('\n')
+        lines = text.split("\n")
         hasEndProc = False
         hasHeaderComment = False
         hasFile = False
@@ -1431,23 +2433,23 @@ class EasytrieveLexer(RegexLexer):
             # Scan the source for lines starting with indicators.
             for line in lines:
                 words = line.split()
-                if (len(words) >= 2):
+                if len(words) >= 2:
                     firstWord = words[0]
                     if not hasReport:
                         if not hasJob:
                             if not hasFile:
                                 if not hasParm:
-                                    if firstWord == 'PARM':
+                                    if firstWord == "PARM":
                                         hasParm = True
-                                if firstWord == 'FILE':
+                                if firstWord == "FILE":
                                     hasFile = True
-                            if firstWord == 'JOB':
+                            if firstWord == "JOB":
                                 hasJob = True
-                        elif firstWord == 'PROC':
+                        elif firstWord == "PROC":
                             hasProc = True
-                        elif firstWord == 'END-PROC':
+                        elif firstWord == "END-PROC":
                             hasEndProc = True
-                        elif firstWord == 'REPORT':
+                        elif firstWord == "REPORT":
                             hasReport = True
 
             # Weight the findings.
@@ -1485,76 +2487,88 @@ class JclLexer(RegexLexer):
     on how to run a batch job or start a subsystem. It is somewhat
     comparable to MS DOS batch and Unix shell scripts.
     """
-    name = 'JCL'
-    aliases = ['jcl']
-    filenames = ['*.jcl']
-    mimetypes = ['text/x-jcl']
-    url = 'https://en.wikipedia.org/wiki/Job_Control_Language'
-    version_added = '2.1'
+
+    name = "JCL"
+    aliases = ["jcl"]
+    filenames = ["*.jcl"]
+    mimetypes = ["text/x-jcl"]
+    url = "https://en.wikipedia.org/wiki/Job_Control_Language"
+    version_added = "2.1"
 
     flags = re.IGNORECASE
 
     tokens = {
-        'root': [
-            (r'//\*.*\n', Comment.Single),
-            (r'//', Keyword.Pseudo, 'statement'),
-            (r'/\*', Keyword.Pseudo, 'jes2_statement'),
+        "root": [
+            (r"//\*.*\n", Comment.Single),
+            (r"//", Keyword.Pseudo, "statement"),
+            (r"/\*", Keyword.Pseudo, "jes2_statement"),
             # TODO: JES3 statement
-            (r'.*\n', Other)  # Input text or inline code in any language.
+            (r".*\n", Other),  # Input text or inline code in any language.
         ],
-        'statement': [
-            (r'\s*\n', Whitespace, '#pop'),
-            (r'([a-z]\w*)(\s+)(exec|job)(\s*)',
-             bygroups(Name.Label, Whitespace, Keyword.Reserved, Whitespace),
-             'option'),
-            (r'[a-z]\w*', Name.Variable, 'statement_command'),
-            (r'\s+', Whitespace, 'statement_command'),
+        "statement": [
+            (r"\s*\n", Whitespace, "#pop"),
+            (
+                r"([a-z]\w*)(\s+)(exec|job)(\s*)",
+                bygroups(Name.Label, Whitespace, Keyword.Reserved, Whitespace),
+                "option",
+            ),
+            (r"[a-z]\w*", Name.Variable, "statement_command"),
+            (r"\s+", Whitespace, "statement_command"),
         ],
-        'statement_command': [
-            (r'\s+(command|cntl|dd|endctl|endif|else|include|jcllib|'
-             r'output|pend|proc|set|then|xmit)\s+', Keyword.Reserved, 'option'),
-            include('option')
+        "statement_command": [
+            (
+                r"\s+(command|cntl|dd|endctl|endif|else|include|jcllib|"
+                r"output|pend|proc|set|then|xmit)\s+",
+                Keyword.Reserved,
+                "option",
+            ),
+            include("option"),
         ],
-        'jes2_statement': [
-            (r'\s*\n', Whitespace, '#pop'),
-            (r'\$', Keyword, 'option'),
-            (r'\b(jobparam|message|netacct|notify|output|priority|route|'
-             r'setup|signoff|xeq|xmit)\b', Keyword, 'option'),
+        "jes2_statement": [
+            (r"\s*\n", Whitespace, "#pop"),
+            (r"\$", Keyword, "option"),
+            (
+                r"\b(jobparam|message|netacct|notify|output|priority|route|"
+                r"setup|signoff|xeq|xmit)\b",
+                Keyword,
+                "option",
+            ),
         ],
-        'option': [
+        "option": [
             # (r'\n', Text, 'root'),
-            (r'\*', Name.Builtin),
-            (r'[\[\](){}<>;,]', Punctuation),
-            (r'[-+*/=&%]', Operator),
-            (r'[a-z_]\w*', Name),
-            (r'\d+\.\d*', Number.Float),
-            (r'\.\d+', Number.Float),
-            (r'\d+', Number.Integer),
-            (r"'", String, 'option_string'),
-            (r'[ \t]+', Whitespace, 'option_comment'),
-            (r'\.', Punctuation),
+            (r"\*", Name.Builtin),
+            (r"[\[\](){}<>;,]", Punctuation),
+            (r"[-+*/=&%]", Operator),
+            (r"[a-z_]\w*", Name),
+            (r"\d+\.\d*", Number.Float),
+            (r"\.\d+", Number.Float),
+            (r"\d+", Number.Integer),
+            (r"'", String, "option_string"),
+            (r"[ \t]+", Whitespace, "option_comment"),
+            (r"\.", Punctuation),
         ],
-        'option_string': [
+        "option_string": [
             (r"(\n)(//)", bygroups(Text, Keyword.Pseudo)),
             (r"''", String),
             (r"[^']", String),
-            (r"'", String, '#pop'),
+            (r"'", String, "#pop"),
         ],
-        'option_comment': [
+        "option_comment": [
             # (r'\n', Text, 'root'),
-            (r'.+', Comment.Single),
-        ]
+            (r".+", Comment.Single),
+        ],
     }
 
-    _JOB_HEADER_PATTERN = re.compile(r'^//[a-z#$@][a-z0-9#$@]{0,7}\s+job(\s+.*)?$',
-                                     re.IGNORECASE)
+    _JOB_HEADER_PATTERN = re.compile(
+        r"^//[a-z#$@][a-z0-9#$@]{0,7}\s+job(\s+.*)?$", re.IGNORECASE
+    )
 
     def analyse_text(text):
         """
         Recognize JCL job by header.
         """
         result = 0.0
-        lines = text.split('\n')
+        lines = text.split("\n")
         if len(lines) > 0:
             if JclLexer._JOB_HEADER_PATTERN.match(lines[0]):
                 result = 1.0
@@ -1567,50 +2581,111 @@ class MiniScriptLexer(RegexLexer):
     For MiniScript source code.
     """
 
-    name = 'MiniScript'
-    url = 'https://miniscript.org'
-    aliases = ['miniscript', 'ms']
-    filenames = ['*.ms']
-    mimetypes = ['text/x-minicript', 'application/x-miniscript']
-    version_added = '2.6'
+    name = "MiniScript"
+    url = "https://miniscript.org"
+    aliases = ["miniscript", "ms"]
+    filenames = ["*.ms"]
+    mimetypes = ["text/x-minicript", "application/x-miniscript"]
+    version_added = "2.6"
 
     tokens = {
-        'root': [
-            (r'#!(.*?)$', Comment.Preproc),
-            default('base'),
+        "root": [
+            (r"#!(.*?)$", Comment.Preproc),
+            default("base"),
         ],
-        'base': [
-            ('//.*$', Comment.Single),
-            (r'(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?', Number),
-            (r'(?i)\d+e[+-]?\d+', Number),
-            (r'\d+', Number),
-            (r'\n', Text),
-            (r'[^\S\n]+', Text),
-            (r'"', String, 'string_double'),
-            (r'(==|!=|<=|>=|[=+\-*/%^<>.:])', Operator),
-            (r'[;,\[\]{}()]', Punctuation),
-            (words((
-                'break', 'continue', 'else', 'end', 'for', 'function', 'if',
-                'in', 'isa', 'then', 'repeat', 'return', 'while'), suffix=r'\b'),
-             Keyword),
-            (words((
-                'abs', 'acos', 'asin', 'atan', 'ceil', 'char', 'cos', 'floor',
-                'log', 'round', 'rnd', 'pi', 'sign', 'sin', 'sqrt', 'str', 'tan',
-                'hasIndex', 'indexOf', 'len', 'val', 'code', 'remove', 'lower',
-                'upper', 'replace', 'split', 'indexes', 'values', 'join', 'sum',
-                'sort', 'shuffle', 'push', 'pop', 'pull', 'range',
-                'print', 'input', 'time', 'wait', 'locals', 'globals', 'outer',
-                'yield'), suffix=r'\b'),
-             Name.Builtin),
-            (r'(true|false|null)\b', Keyword.Constant),
-            (r'(and|or|not|new)\b', Operator.Word),
-            (r'(self|super|__isa)\b', Name.Builtin.Pseudo),
-            (r'[a-zA-Z_]\w*', Name.Variable)
+        "base": [
+            ("//.*$", Comment.Single),
+            (r"(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?", Number),
+            (r"(?i)\d+e[+-]?\d+", Number),
+            (r"\d+", Number),
+            (r"\n", Text),
+            (r"[^\S\n]+", Text),
+            (r'"', String, "string_double"),
+            (r"(==|!=|<=|>=|[=+\-*/%^<>.:])", Operator),
+            (r"[;,\[\]{}()]", Punctuation),
+            (
+                words(
+                    (
+                        "break",
+                        "continue",
+                        "else",
+                        "end",
+                        "for",
+                        "function",
+                        "if",
+                        "in",
+                        "isa",
+                        "then",
+                        "repeat",
+                        "return",
+                        "while",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                words(
+                    (
+                        "abs",
+                        "acos",
+                        "asin",
+                        "atan",
+                        "ceil",
+                        "char",
+                        "cos",
+                        "floor",
+                        "log",
+                        "round",
+                        "rnd",
+                        "pi",
+                        "sign",
+                        "sin",
+                        "sqrt",
+                        "str",
+                        "tan",
+                        "hasIndex",
+                        "indexOf",
+                        "len",
+                        "val",
+                        "code",
+                        "remove",
+                        "lower",
+                        "upper",
+                        "replace",
+                        "split",
+                        "indexes",
+                        "values",
+                        "join",
+                        "sum",
+                        "sort",
+                        "shuffle",
+                        "push",
+                        "pop",
+                        "pull",
+                        "range",
+                        "print",
+                        "input",
+                        "time",
+                        "wait",
+                        "locals",
+                        "globals",
+                        "outer",
+                        "yield",
+                    ),
+                    suffix=r"\b",
+                ),
+                Name.Builtin,
+            ),
+            (r"(true|false|null)\b", Keyword.Constant),
+            (r"(and|or|not|new)\b", Operator.Word),
+            (r"(self|super|__isa)\b", Name.Builtin.Pseudo),
+            (r"[a-zA-Z_]\w*", Name.Variable),
         ],
-        'string_double': [
+        "string_double": [
             (r'[^"\n]+', String),
             (r'""', String),
-            (r'"', String, '#pop'),
-            (r'\n', Text, '#pop'),  # Stray linefeed also terminates strings.
-        ]
+            (r'"', String, "#pop"),
+            (r"\n", Text, "#pop"),  # Stray linefeed also terminates strings.
+        ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sgf.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sgf.py
index f0e56cb..a5961c7 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sgf.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sgf.py
@@ -1,11 +1,11 @@
 """
-    pygments.lexers.sgf
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.sgf
+~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Smart Game Format (sgf) file format.
+Lexer for Smart Game Format (sgf) file format.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups
@@ -21,39 +21,44 @@ class SmartGameFormatLexer(RegexLexer):
     The format is used to store game records of board games for two players
     (mainly Go game).
     """
-    name = 'SmartGameFormat'
-    url = 'https://www.red-bean.com/sgf/'
-    aliases = ['sgf']
-    filenames = ['*.sgf']
-    version_added = '2.4'
+
+    name = "SmartGameFormat"
+    url = "https://www.red-bean.com/sgf/"
+    aliases = ["sgf"]
+    filenames = ["*.sgf"]
+    version_added = "2.4"
 
     tokens = {
-        'root': [
-            (r'[():;]+', Punctuation),
+        "root": [
+            (r"[():;]+", Punctuation),
             # tokens:
-            (r'(A[BW]|AE|AN|AP|AR|AS|[BW]L|BM|[BW]R|[BW]S|[BW]T|CA|CH|CP|CR|'
-             r'DD|DM|DO|DT|EL|EV|EX|FF|FG|G[BW]|GC|GM|GN|HA|HO|ID|IP|IT|IY|KM|'
-             r'KO|LB|LN|LT|L|MA|MN|M|N|OB|OM|ON|OP|OT|OV|P[BW]|PC|PL|PM|RE|RG|'
-             r'RO|RU|SO|SC|SE|SI|SL|SO|SQ|ST|SU|SZ|T[BW]|TC|TE|TM|TR|UC|US|VW|'
-             r'V|[BW]|C)',
-             Name.Builtin),
+            (
+                r"(A[BW]|AE|AN|AP|AR|AS|[BW]L|BM|[BW]R|[BW]S|[BW]T|CA|CH|CP|CR|"
+                r"DD|DM|DO|DT|EL|EV|EX|FF|FG|G[BW]|GC|GM|GN|HA|HO|ID|IP|IT|IY|KM|"
+                r"KO|LB|LN|LT|L|MA|MN|M|N|OB|OM|ON|OP|OT|OV|P[BW]|PC|PL|PM|RE|RG|"
+                r"RO|RU|SO|SC|SE|SI|SL|SO|SQ|ST|SU|SZ|T[BW]|TC|TE|TM|TR|UC|US|VW|"
+                r"V|[BW]|C)",
+                Name.Builtin,
+            ),
             # number:
-            (r'(\[)([0-9.]+)(\])',
-             bygroups(Punctuation, Literal.Number, Punctuation)),
+            (r"(\[)([0-9.]+)(\])", bygroups(Punctuation, Literal.Number, Punctuation)),
             # date:
-            (r'(\[)([0-9]{4}-[0-9]{2}-[0-9]{2})(\])',
-             bygroups(Punctuation, Literal.Date, Punctuation)),
+            (
+                r"(\[)([0-9]{4}-[0-9]{2}-[0-9]{2})(\])",
+                bygroups(Punctuation, Literal.Date, Punctuation),
+            ),
             # point:
-            (r'(\[)([a-z]{2})(\])',
-             bygroups(Punctuation, String, Punctuation)),
+            (r"(\[)([a-z]{2})(\])", bygroups(Punctuation, String, Punctuation)),
             # double points:
-            (r'(\[)([a-z]{2})(:)([a-z]{2})(\])',
-             bygroups(Punctuation, String, Punctuation, String, Punctuation)),
-
-            (r'(\[)([\w\s#()+,\-.:?]+)(\])',
-             bygroups(Punctuation, String, Punctuation)),
-            (r'(\[)(\s.*)(\])',
-             bygroups(Punctuation, Whitespace, Punctuation)),
-            (r'\s+', Whitespace)
+            (
+                r"(\[)([a-z]{2})(:)([a-z]{2})(\])",
+                bygroups(Punctuation, String, Punctuation, String, Punctuation),
+            ),
+            (
+                r"(\[)([\w\s#()+,\-.:?]+)(\])",
+                bygroups(Punctuation, String, Punctuation),
+            ),
+            (r"(\[)(\s.*)(\])", bygroups(Punctuation, Whitespace, Punctuation)),
+            (r"\s+", Whitespace),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/shell.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/shell.py
index 744767a..fb0ac17 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/shell.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/shell.py
@@ -1,25 +1,54 @@
 """
-    pygments.lexers.shell
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.shell
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for various shells.
+Lexers for various shells.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import re
 
-from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, \
-    include, default, this, using, words, line_re
-from pygments.token import Punctuation, Whitespace, \
-    Text, Comment, Operator, Keyword, Name, String, Number, Generic
+from pygments.lexer import (
+    Lexer,
+    RegexLexer,
+    do_insertions,
+    bygroups,
+    include,
+    default,
+    this,
+    using,
+    words,
+    line_re,
+)
+from pygments.token import (
+    Punctuation,
+    Whitespace,
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Generic,
+)
 from pygments.util import shebang_matches
 
-__all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer',
-           'SlurmBashLexer', 'MSDOSSessionLexer', 'PowerShellLexer',
-           'PowerShellSessionLexer', 'TcshSessionLexer', 'FishShellLexer',
-           'ExeclineLexer']
+__all__ = [
+    "BashLexer",
+    "BashSessionLexer",
+    "TcshLexer",
+    "BatchLexer",
+    "SlurmBashLexer",
+    "MSDOSSessionLexer",
+    "PowerShellLexer",
+    "PowerShellSessionLexer",
+    "TcshSessionLexer",
+    "FishShellLexer",
+    "ExeclineLexer",
+]
 
 
 class BashLexer(RegexLexer):
@@ -27,102 +56,120 @@ class BashLexer(RegexLexer):
     Lexer for (ba|k|z|)sh shell scripts.
     """
 
-    name = 'Bash'
-    aliases = ['bash', 'sh', 'ksh', 'zsh', 'shell', 'openrc']
-    filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass',
-                 '*.exheres-0', '*.exlib', '*.zsh',
-                 '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'zshrc', '.zshrc',
-                 '.kshrc', 'kshrc',
-                 'PKGBUILD']
-    mimetypes = ['application/x-sh', 'application/x-shellscript', 'text/x-shellscript']
-    url = 'https://en.wikipedia.org/wiki/Unix_shell'
-    version_added = '0.6'
+    name = "Bash"
+    aliases = ["bash", "sh", "ksh", "zsh", "shell", "openrc"]
+    filenames = [
+        "*.sh",
+        "*.ksh",
+        "*.bash",
+        "*.ebuild",
+        "*.eclass",
+        "*.exheres-0",
+        "*.exlib",
+        "*.zsh",
+        ".bashrc",
+        "bashrc",
+        ".bash_*",
+        "bash_*",
+        "zshrc",
+        ".zshrc",
+        ".kshrc",
+        "kshrc",
+        "PKGBUILD",
+    ]
+    mimetypes = ["application/x-sh", "application/x-shellscript", "text/x-shellscript"]
+    url = "https://en.wikipedia.org/wiki/Unix_shell"
+    version_added = "0.6"
 
     tokens = {
-        'root': [
-            include('basic'),
-            (r'`', String.Backtick, 'backticks'),
-            include('data'),
-            include('interp'),
+        "root": [
+            include("basic"),
+            (r"`", String.Backtick, "backticks"),
+            include("data"),
+            include("interp"),
         ],
-        'interp': [
-            (r'\$\(\(', Keyword, 'math'),
-            (r'\$\(', Keyword, 'paren'),
-            (r'\$\{#?', String.Interpol, 'curly'),
-            (r'\$[a-zA-Z_]\w*', Name.Variable),  # user variable
-            (r'\$(?:\d+|[#$?!_*@-])', Name.Variable),      # builtin
-            (r'\$', Text),
+        "interp": [
+            (r"\$\(\(", Keyword, "math"),
+            (r"\$\(", Keyword, "paren"),
+            (r"\$\{#?", String.Interpol, "curly"),
+            (r"\$[a-zA-Z_]\w*", Name.Variable),  # user variable
+            (r"\$(?:\d+|[#$?!_*@-])", Name.Variable),  # builtin
+            (r"\$", Text),
         ],
-        'basic': [
-            (r'\b(if|fi|else|while|in|do|done|for|then|return|function|case|'
-             r'select|break|continue|until|esac|elif)(\s*)\b',
-             bygroups(Keyword, Whitespace)),
-            (r'\b(alias|bg|bind|builtin|caller|cd|command|compgen|'
-             r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|'
-             r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|'
-             r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|'
-             r'shopt|source|suspend|test|time|times|trap|true|type|typeset|'
-             r'ulimit|umask|unalias|unset|wait)(?=[\s)`])',
-             Name.Builtin),
-            (r'\A#!.+\n', Comment.Hashbang),
-            (r'#.*\n', Comment.Single),
-            (r'\\[\w\W]', String.Escape),
-            (r'(\b\w+)(\s*)(\+?=)', bygroups(Name.Variable, Whitespace, Operator)),
-            (r'[\[\]{}()=]', Operator),
-            (r'<<<', Operator),  # here-string
-            (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
-            (r'&&|\|\|', Operator),
+        "basic": [
+            (
+                r"\b(if|fi|else|while|in|do|done|for|then|return|function|case|"
+                r"select|break|continue|until|esac|elif)(\s*)\b",
+                bygroups(Keyword, Whitespace),
+            ),
+            (
+                r"\b(alias|bg|bind|builtin|caller|cd|command|compgen|"
+                r"complete|declare|dirs|disown|echo|enable|eval|exec|exit|"
+                r"export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|"
+                r"local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|"
+                r"shopt|source|suspend|test|time|times|trap|true|type|typeset|"
+                r"ulimit|umask|unalias|unset|wait)(?=[\s)`])",
+                Name.Builtin,
+            ),
+            (r"\A#!.+\n", Comment.Hashbang),
+            (r"#.*\n", Comment.Single),
+            (r"\\[\w\W]", String.Escape),
+            (r"(\b\w+)(\s*)(\+?=)", bygroups(Name.Variable, Whitespace, Operator)),
+            (r"[\[\]{}()=]", Operator),
+            (r"<<<", Operator),  # here-string
+            (r"<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2", String),
+            (r"&&|\|\|", Operator),
         ],
-        'data': [
+        "data": [
             (r'(?s)\$?"(\\.|[^"\\$])*"', String.Double),
-            (r'"', String.Double, 'string'),
+            (r'"', String.Double, "string"),
             (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
             (r"(?s)'.*?'", String.Single),
-            (r';', Punctuation),
-            (r'&', Punctuation),
-            (r'\|', Punctuation),
-            (r'\s+', Whitespace),
-            (r'\d+\b', Number),
+            (r";", Punctuation),
+            (r"&", Punctuation),
+            (r"\|", Punctuation),
+            (r"\s+", Whitespace),
+            (r"\d+\b", Number),
             (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text),
-            (r'<', Text),
+            (r"<", Text),
         ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double),
-            include('interp'),
+            include("interp"),
         ],
-        'curly': [
-            (r'\}', String.Interpol, '#pop'),
-            (r':-', Keyword),
-            (r'\w+', Name.Variable),
+        "curly": [
+            (r"\}", String.Interpol, "#pop"),
+            (r":-", Keyword),
+            (r"\w+", Name.Variable),
             (r'[^}:"\'`$\\]+', Punctuation),
-            (r':', Punctuation),
-            include('root'),
+            (r":", Punctuation),
+            include("root"),
         ],
-        'paren': [
-            (r'\)', Keyword, '#pop'),
-            include('root'),
+        "paren": [
+            (r"\)", Keyword, "#pop"),
+            include("root"),
         ],
-        'math': [
-            (r'\)\)', Keyword, '#pop'),
-            (r'\*\*|\|\||<<|>>|[-+*/%^|&<>]', Operator),
-            (r'\d+#[\da-zA-Z]+', Number),
-            (r'\d+#(?! )', Number),
-            (r'0[xX][\da-fA-F]+', Number),
-            (r'\d+', Number),
-            (r'[a-zA-Z_]\w*', Name.Variable),  # user variable
-            include('root'),
+        "math": [
+            (r"\)\)", Keyword, "#pop"),
+            (r"\*\*|\|\||<<|>>|[-+*/%^|&<>]", Operator),
+            (r"\d+#[\da-zA-Z]+", Number),
+            (r"\d+#(?! )", Number),
+            (r"0[xX][\da-fA-F]+", Number),
+            (r"\d+", Number),
+            (r"[a-zA-Z_]\w*", Name.Variable),  # user variable
+            include("root"),
         ],
-        'backticks': [
-            (r'`', String.Backtick, '#pop'),
-            include('root'),
+        "backticks": [
+            (r"`", String.Backtick, "#pop"),
+            include("root"),
         ],
     }
 
     def analyse_text(text):
-        if shebang_matches(text, r'(ba|z|)sh'):
+        if shebang_matches(text, r"(ba|z|)sh"):
             return 1
-        if text.startswith('$ '):
+        if text.startswith("$ "):
             return 0.2
 
 
@@ -131,18 +178,18 @@ class SlurmBashLexer(BashLexer):
     Lexer for (ba|k|z|)sh Slurm scripts.
     """
 
-    name = 'Slurm'
-    aliases = ['slurm', 'sbatch']
-    filenames = ['*.sl']
+    name = "Slurm"
+    aliases = ["slurm", "sbatch"]
+    filenames = ["*.sl"]
     mimetypes = []
-    version_added = '2.4'
-    EXTRA_KEYWORDS = {'srun'}
+    version_added = "2.4"
+    EXTRA_KEYWORDS = {"srun"}
 
     def get_tokens_unprocessed(self, text):
         for index, token, value in BashLexer.get_tokens_unprocessed(self, text):
             if token is Text and value in self.EXTRA_KEYWORDS:
                 yield index, Name.Builtin, value
-            elif token is Comment.Single and 'SBATCH' in value:
+            elif token is Comment.Single and "SBATCH" in value:
                 yield index, Keyword.Pseudo, value
             else:
                 yield index, token, value
@@ -156,13 +203,13 @@ class ShellSessionBaseLexer(Lexer):
     """
 
     _bare_continuation = False
-    _venv = re.compile(r'^(\([^)]*\))(\s*)')
+    _venv = re.compile(r"^(\([^)]*\))(\s*)")
 
     def get_tokens_unprocessed(self, text):
         innerlexer = self._innerLexerCls(**self.options)
 
         pos = 0
-        curcode = ''
+        curcode = ""
         insertions = []
         backslash_continuation = False
 
@@ -173,12 +220,12 @@ class ShellSessionBaseLexer(Lexer):
             if venv_match:
                 venv = venv_match.group(1)
                 venv_whitespace = venv_match.group(2)
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt.VirtualEnv, venv)]))
+                insertions.append(
+                    (len(curcode), [(0, Generic.Prompt.VirtualEnv, venv)])
+                )
                 if venv_whitespace:
-                    insertions.append((len(curcode),
-                                       [(0, Text, venv_whitespace)]))
-                line = line[venv_match.end():]
+                    insertions.append((len(curcode), [(0, Text, venv_whitespace)]))
+                line = line[venv_match.end() :]
 
             m = self._ps1rgx.match(line)
             if m:
@@ -188,36 +235,36 @@ class ShellSessionBaseLexer(Lexer):
                 if not insertions:
                     pos = match.start()
 
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt, m.group(1))]))
+                insertions.append((len(curcode), [(0, Generic.Prompt, m.group(1))]))
                 curcode += m.group(2)
-                backslash_continuation = curcode.endswith('\\\n')
+                backslash_continuation = curcode.endswith("\\\n")
             elif backslash_continuation:
                 if line.startswith(self._ps2):
-                    insertions.append((len(curcode),
-                                       [(0, Generic.Prompt,
-                                         line[:len(self._ps2)])]))
-                    curcode += line[len(self._ps2):]
+                    insertions.append(
+                        (len(curcode), [(0, Generic.Prompt, line[: len(self._ps2)])])
+                    )
+                    curcode += line[len(self._ps2) :]
                 else:
                     curcode += line
-                backslash_continuation = curcode.endswith('\\\n')
+                backslash_continuation = curcode.endswith("\\\n")
             elif self._bare_continuation and line.startswith(self._ps2):
-                insertions.append((len(curcode),
-                                   [(0, Generic.Prompt,
-                                     line[:len(self._ps2)])]))
-                curcode += line[len(self._ps2):]
+                insertions.append(
+                    (len(curcode), [(0, Generic.Prompt, line[: len(self._ps2)])])
+                )
+                curcode += line[len(self._ps2) :]
             else:
                 if insertions:
                     toks = innerlexer.get_tokens_unprocessed(curcode)
                     for i, t, v in do_insertions(insertions, toks):
-                        yield pos+i, t, v
+                        yield pos + i, t, v
                 yield match.start(), Generic.Output, line
                 insertions = []
-                curcode = ''
+                curcode = ""
         if insertions:
-            for i, t, v in do_insertions(insertions,
-                                         innerlexer.get_tokens_unprocessed(curcode)):
-                yield pos+i, t, v
+            for i, t, v in do_insertions(
+                insertions, innerlexer.get_tokens_unprocessed(curcode)
+            ):
+                yield pos + i, t, v
 
 
 class BashSessionLexer(ShellSessionBaseLexer):
@@ -226,308 +273,492 @@ class BashSessionLexer(ShellSessionBaseLexer):
     prompt, interspersed with output.
     """
 
-    name = 'Bash Session'
-    aliases = ['console', 'shell-session']
-    filenames = ['*.sh-session', '*.shell-session']
-    mimetypes = ['application/x-shell-session', 'application/x-sh-session']
-    url = 'https://en.wikipedia.org/wiki/Unix_shell'
-    version_added = '1.1'
+    name = "Bash Session"
+    aliases = ["console", "shell-session"]
+    filenames = ["*.sh-session", "*.shell-session"]
+    mimetypes = ["application/x-shell-session", "application/x-sh-session"]
+    url = "https://en.wikipedia.org/wiki/Unix_shell"
+    version_added = "1.1"
     _example = "console/example.sh-session"
 
     _innerLexerCls = BashLexer
     _ps1rgx = re.compile(
-        r'^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' \
-        r'?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)')
-    _ps2 = '> '
+        r"^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)"
+        r"?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)"
+    )
+    _ps2 = "> "
 
 
 class BatchLexer(RegexLexer):
     """
     Lexer for the DOS/Windows Batch file format.
     """
-    name = 'Batchfile'
-    aliases = ['batch', 'bat', 'dosbatch', 'winbatch']
-    filenames = ['*.bat', '*.cmd']
-    mimetypes = ['application/x-dos-batch']
-    url = 'https://en.wikipedia.org/wiki/Batch_file'
-    version_added = '0.7'
+
+    name = "Batchfile"
+    aliases = ["batch", "bat", "dosbatch", "winbatch"]
+    filenames = ["*.bat", "*.cmd"]
+    mimetypes = ["application/x-dos-batch"]
+    url = "https://en.wikipedia.org/wiki/Batch_file"
+    version_added = "0.7"
 
     flags = re.MULTILINE | re.IGNORECASE
 
-    _nl = r'\n\x1a'
-    _punct = r'&<>|'
-    _ws = r'\t\v\f\r ,;=\xa0'
-    _nlws = r'\s\x1a\xa0,;='
-    _space = rf'(?:(?:(?:\^[{_nl}])?[{_ws}])+)'
-    _keyword_terminator = (rf'(?=(?:\^[{_nl}]?)?[{_ws}+./:[\\\]]|[{_nl}{_punct}(])')
-    _token_terminator = rf'(?=\^?[{_ws}]|[{_punct}{_nl}])'
-    _start_label = rf'((?:(?<=^[^:])|^[^:]?)[{_ws}]*)(:)'
-    _label = rf'(?:(?:[^{_nlws}{_punct}+:^]|\^[{_nl}]?[\w\W])*)'
-    _label_compound = rf'(?:(?:[^{_nlws}{_punct}+:^)]|\^[{_nl}]?[^)])*)'
-    _number = rf'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+){_token_terminator})'
-    _opword = r'(?:equ|geq|gtr|leq|lss|neq)'
+    _nl = r"\n\x1a"
+    _punct = r"&<>|"
+    _ws = r"\t\v\f\r ,;=\xa0"
+    _nlws = r"\s\x1a\xa0,;="
+    _space = rf"(?:(?:(?:\^[{_nl}])?[{_ws}])+)"
+    _keyword_terminator = rf"(?=(?:\^[{_nl}]?)?[{_ws}+./:[\\\]]|[{_nl}{_punct}(])"
+    _token_terminator = rf"(?=\^?[{_ws}]|[{_punct}{_nl}])"
+    _start_label = rf"((?:(?<=^[^:])|^[^:]?)[{_ws}]*)(:)"
+    _label = rf"(?:(?:[^{_nlws}{_punct}+:^]|\^[{_nl}]?[\w\W])*)"
+    _label_compound = rf"(?:(?:[^{_nlws}{_punct}+:^)]|\^[{_nl}]?[^)])*)"
+    _number = rf"(?:-?(?:0[0-7]+|0x[\da-f]+|\d+){_token_terminator})"
+    _opword = r"(?:equ|geq|gtr|leq|lss|neq)"
     _string = rf'(?:"[^{_nl}"]*(?:"|(?=[{_nl}])))'
-    _variable = (r'(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|'
-                 rf'[^%:{_nl}]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%{_nl}^]|'
-                 rf'\^[^%{_nl}])[^={_nl}]*=(?:[^%{_nl}^]|\^[^%{_nl}])*)?)?%))|'
-                 rf'(?:\^?![^!:{_nl}]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
-                 rf'[^!{_nl}^]|\^[^!{_nl}])[^={_nl}]*=(?:[^!{_nl}^]|\^[^!{_nl}])*)?)?\^?!))')
+    _variable = (
+        r"(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|"
+        rf"[^%:{_nl}]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%{_nl}^]|"
+        rf"\^[^%{_nl}])[^={_nl}]*=(?:[^%{_nl}^]|\^[^%{_nl}])*)?)?%))|"
+        rf"(?:\^?![^!:{_nl}]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:"
+        rf"[^!{_nl}^]|\^[^!{_nl}])[^={_nl}]*=(?:[^!{_nl}^]|\^[^!{_nl}])*)?)?\^?!))"
+    )
     _core_token = rf'(?:(?:(?:\^[{_nl}]?)?[^"{_nlws}{_punct}])+)'
     _core_token_compound = rf'(?:(?:(?:\^[{_nl}]?)?[^"{_nlws}{_punct})])+)'
-    _token = rf'(?:[{_punct}]+|{_core_token})'
-    _token_compound = rf'(?:[{_punct}]+|{_core_token_compound})'
-    _stoken = (rf'(?:[{_punct}]+|(?:{_string}|{_variable}|{_core_token})+)')
+    _token = rf"(?:[{_punct}]+|{_core_token})"
+    _token_compound = rf"(?:[{_punct}]+|{_core_token_compound})"
+    _stoken = rf"(?:[{_punct}]+|(?:{_string}|{_variable}|{_core_token})+)"
 
-    def _make_begin_state(compound, _core_token=_core_token,
-                          _core_token_compound=_core_token_compound,
-                          _keyword_terminator=_keyword_terminator,
-                          _nl=_nl, _punct=_punct, _string=_string,
-                          _space=_space, _start_label=_start_label,
-                          _stoken=_stoken, _token_terminator=_token_terminator,
-                          _variable=_variable, _ws=_ws):
-        rest = '(?:{}|{}|[^"%{}{}{}])*'.format(_string, _variable, _nl, _punct,
-                                            ')' if compound else '')
-        rest_of_line = rf'(?:(?:[^{_nl}^]|\^[{_nl}]?[\w\W])*)'
-        rest_of_line_compound = rf'(?:(?:[^{_nl}^)]|\^[{_nl}]?[^)])*)'
-        set_space = rf'((?:(?:\^[{_nl}]?)?[^\S\n])*)'
-        suffix = ''
+    def _make_begin_state(
+        compound,
+        _core_token=_core_token,
+        _core_token_compound=_core_token_compound,
+        _keyword_terminator=_keyword_terminator,
+        _nl=_nl,
+        _punct=_punct,
+        _string=_string,
+        _space=_space,
+        _start_label=_start_label,
+        _stoken=_stoken,
+        _token_terminator=_token_terminator,
+        _variable=_variable,
+        _ws=_ws,
+    ):
+        rest = '(?:{}|{}|[^"%{}{}{}])*'.format(
+            _string, _variable, _nl, _punct, ")" if compound else ""
+        )
+        rest_of_line = rf"(?:(?:[^{_nl}^]|\^[{_nl}]?[\w\W])*)"
+        rest_of_line_compound = rf"(?:(?:[^{_nl}^)]|\^[{_nl}]?[^)])*)"
+        set_space = rf"((?:(?:\^[{_nl}]?)?[^\S\n])*)"
+        suffix = ""
         if compound:
-            _keyword_terminator = rf'(?:(?=\))|{_keyword_terminator})'
-            _token_terminator = rf'(?:(?=\))|{_token_terminator})'
-            suffix = '/compound'
+            _keyword_terminator = rf"(?:(?=\))|{_keyword_terminator})"
+            _token_terminator = rf"(?:(?=\))|{_token_terminator})"
+            suffix = "/compound"
         return [
-            ((r'\)', Punctuation, '#pop') if compound else
-             (rf'\)((?=\()|{_token_terminator}){rest_of_line}',
-              Comment.Single)),
-            (rf'(?={_start_label})', Text, f'follow{suffix}'),
-            (_space, using(this, state='text')),
-            include(f'redirect{suffix}'),
-            (rf'[{_nl}]+', Text),
-            (r'\(', Punctuation, 'root/compound'),
-            (r'@+', Punctuation),
-            (rf'((?:for|if|rem)(?:(?=(?:\^[{_nl}]?)?/)|(?:(?!\^)|'
-             rf'(?<=m))(?:(?=\()|{_token_terminator})))({_space}?{_core_token_compound if compound else _core_token}?(?:\^[{_nl}]?)?/(?:\^[{_nl}]?)?\?)',
-             bygroups(Keyword, using(this, state='text')),
-             f'follow{suffix}'),
-            (rf'(goto{_keyword_terminator})({rest}(?:\^[{_nl}]?)?/(?:\^[{_nl}]?)?\?{rest})',
-             bygroups(Keyword, using(this, state='text')),
-             f'follow{suffix}'),
-            (words(('assoc', 'break', 'cd', 'chdir', 'cls', 'color', 'copy',
-                    'date', 'del', 'dir', 'dpath', 'echo', 'endlocal', 'erase',
-                    'exit', 'ftype', 'keys', 'md', 'mkdir', 'mklink', 'move',
-                    'path', 'pause', 'popd', 'prompt', 'pushd', 'rd', 'ren',
-                    'rename', 'rmdir', 'setlocal', 'shift', 'start', 'time',
-                    'title', 'type', 'ver', 'verify', 'vol'),
-                   suffix=_keyword_terminator), Keyword, f'follow{suffix}'),
-            (rf'(call)({_space}?)(:)',
-             bygroups(Keyword, using(this, state='text'), Punctuation),
-             f'call{suffix}'),
-            (rf'call{_keyword_terminator}', Keyword),
-            (rf'(for{_token_terminator}(?!\^))({_space})(/f{_token_terminator})',
-             bygroups(Keyword, using(this, state='text'), Keyword),
-             ('for/f', 'for')),
-            (rf'(for{_token_terminator}(?!\^))({_space})(/l{_token_terminator})',
-             bygroups(Keyword, using(this, state='text'), Keyword),
-             ('for/l', 'for')),
-            (rf'for{_token_terminator}(?!\^)', Keyword, ('for2', 'for')),
-            (rf'(goto{_keyword_terminator})({_space}?)(:?)',
-             bygroups(Keyword, using(this, state='text'), Punctuation),
-             f'label{suffix}'),
-            (rf'(if(?:(?=\()|{_token_terminator})(?!\^))({_space}?)((?:/i{_token_terminator})?)({_space}?)((?:not{_token_terminator})?)({_space}?)',
-             bygroups(Keyword, using(this, state='text'), Keyword,
-                      using(this, state='text'), Keyword,
-                      using(this, state='text')), ('(?', 'if')),
-            (rf'rem(((?=\()|{_token_terminator}){_space}?{_stoken}?.*|{_keyword_terminator}{rest_of_line_compound if compound else rest_of_line})',
-             Comment.Single, f'follow{suffix}'),
-            (rf'(set{_keyword_terminator}){set_space}(/a)',
-             bygroups(Keyword, using(this, state='text'), Keyword),
-             f'arithmetic{suffix}'),
-            (r'(set{}){}((?:/p)?){}((?:(?:(?:\^[{}]?)?[^"{}{}^={}]|'
-             r'\^[{}]?[^"=])+)?)((?:(?:\^[{}]?)?=)?)'.format(_keyword_terminator, set_space, set_space, _nl, _nl, _punct,
-              ')' if compound else '', _nl, _nl),
-             bygroups(Keyword, using(this, state='text'), Keyword,
-                      using(this, state='text'), using(this, state='variable'),
-                      Punctuation),
-             f'follow{suffix}'),
-            default(f'follow{suffix}')
+            (
+                (r"\)", Punctuation, "#pop")
+                if compound
+                else (rf"\)((?=\()|{_token_terminator}){rest_of_line}", Comment.Single)
+            ),
+            (rf"(?={_start_label})", Text, f"follow{suffix}"),
+            (_space, using(this, state="text")),
+            include(f"redirect{suffix}"),
+            (rf"[{_nl}]+", Text),
+            (r"\(", Punctuation, "root/compound"),
+            (r"@+", Punctuation),
+            (
+                rf"((?:for|if|rem)(?:(?=(?:\^[{_nl}]?)?/)|(?:(?!\^)|"
+                rf"(?<=m))(?:(?=\()|{_token_terminator})))({_space}?{_core_token_compound if compound else _core_token}?(?:\^[{_nl}]?)?/(?:\^[{_nl}]?)?\?)",
+                bygroups(Keyword, using(this, state="text")),
+                f"follow{suffix}",
+            ),
+            (
+                rf"(goto{_keyword_terminator})({rest}(?:\^[{_nl}]?)?/(?:\^[{_nl}]?)?\?{rest})",
+                bygroups(Keyword, using(this, state="text")),
+                f"follow{suffix}",
+            ),
+            (
+                words(
+                    (
+                        "assoc",
+                        "break",
+                        "cd",
+                        "chdir",
+                        "cls",
+                        "color",
+                        "copy",
+                        "date",
+                        "del",
+                        "dir",
+                        "dpath",
+                        "echo",
+                        "endlocal",
+                        "erase",
+                        "exit",
+                        "ftype",
+                        "keys",
+                        "md",
+                        "mkdir",
+                        "mklink",
+                        "move",
+                        "path",
+                        "pause",
+                        "popd",
+                        "prompt",
+                        "pushd",
+                        "rd",
+                        "ren",
+                        "rename",
+                        "rmdir",
+                        "setlocal",
+                        "shift",
+                        "start",
+                        "time",
+                        "title",
+                        "type",
+                        "ver",
+                        "verify",
+                        "vol",
+                    ),
+                    suffix=_keyword_terminator,
+                ),
+                Keyword,
+                f"follow{suffix}",
+            ),
+            (
+                rf"(call)({_space}?)(:)",
+                bygroups(Keyword, using(this, state="text"), Punctuation),
+                f"call{suffix}",
+            ),
+            (rf"call{_keyword_terminator}", Keyword),
+            (
+                rf"(for{_token_terminator}(?!\^))({_space})(/f{_token_terminator})",
+                bygroups(Keyword, using(this, state="text"), Keyword),
+                ("for/f", "for"),
+            ),
+            (
+                rf"(for{_token_terminator}(?!\^))({_space})(/l{_token_terminator})",
+                bygroups(Keyword, using(this, state="text"), Keyword),
+                ("for/l", "for"),
+            ),
+            (rf"for{_token_terminator}(?!\^)", Keyword, ("for2", "for")),
+            (
+                rf"(goto{_keyword_terminator})({_space}?)(:?)",
+                bygroups(Keyword, using(this, state="text"), Punctuation),
+                f"label{suffix}",
+            ),
+            (
+                rf"(if(?:(?=\()|{_token_terminator})(?!\^))({_space}?)((?:/i{_token_terminator})?)({_space}?)((?:not{_token_terminator})?)({_space}?)",
+                bygroups(
+                    Keyword,
+                    using(this, state="text"),
+                    Keyword,
+                    using(this, state="text"),
+                    Keyword,
+                    using(this, state="text"),
+                ),
+                ("(?", "if"),
+            ),
+            (
+                rf"rem(((?=\()|{_token_terminator}){_space}?{_stoken}?.*|{_keyword_terminator}{rest_of_line_compound if compound else rest_of_line})",
+                Comment.Single,
+                f"follow{suffix}",
+            ),
+            (
+                rf"(set{_keyword_terminator}){set_space}(/a)",
+                bygroups(Keyword, using(this, state="text"), Keyword),
+                f"arithmetic{suffix}",
+            ),
+            (
+                r'(set{}){}((?:/p)?){}((?:(?:(?:\^[{}]?)?[^"{}{}^={}]|'
+                r'\^[{}]?[^"=])+)?)((?:(?:\^[{}]?)?=)?)'.format(
+                    _keyword_terminator,
+                    set_space,
+                    set_space,
+                    _nl,
+                    _nl,
+                    _punct,
+                    ")" if compound else "",
+                    _nl,
+                    _nl,
+                ),
+                bygroups(
+                    Keyword,
+                    using(this, state="text"),
+                    Keyword,
+                    using(this, state="text"),
+                    using(this, state="variable"),
+                    Punctuation,
+                ),
+                f"follow{suffix}",
+            ),
+            default(f"follow{suffix}"),
         ]
 
-    def _make_follow_state(compound, _label=_label,
-                           _label_compound=_label_compound, _nl=_nl,
-                           _space=_space, _start_label=_start_label,
-                           _token=_token, _token_compound=_token_compound,
-                           _ws=_ws):
-        suffix = '/compound' if compound else ''
+    def _make_follow_state(
+        compound,
+        _label=_label,
+        _label_compound=_label_compound,
+        _nl=_nl,
+        _space=_space,
+        _start_label=_start_label,
+        _token=_token,
+        _token_compound=_token_compound,
+        _ws=_ws,
+    ):
+        suffix = "/compound" if compound else ""
         state = []
         if compound:
-            state.append((r'(?=\))', Text, '#pop'))
+            state.append((r"(?=\))", Text, "#pop"))
         state += [
-            (rf'{_start_label}([{_ws}]*)({_label_compound if compound else _label})(.*)',
-             bygroups(Text, Punctuation, Text, Name.Label, Comment.Single)),
-            include(f'redirect{suffix}'),
-            (rf'(?=[{_nl}])', Text, '#pop'),
-            (r'\|\|?|&&?', Punctuation, '#pop'),
-            include('text')
+            (
+                rf"{_start_label}([{_ws}]*)({_label_compound if compound else _label})(.*)",
+                bygroups(Text, Punctuation, Text, Name.Label, Comment.Single),
+            ),
+            include(f"redirect{suffix}"),
+            (rf"(?=[{_nl}])", Text, "#pop"),
+            (r"\|\|?|&&?", Punctuation, "#pop"),
+            include("text"),
         ]
         return state
 
-    def _make_arithmetic_state(compound, _nl=_nl, _punct=_punct,
-                               _string=_string, _variable=_variable,
-                               _ws=_ws, _nlws=_nlws):
-        op = r'=+\-*/!~'
+    def _make_arithmetic_state(
+        compound,
+        _nl=_nl,
+        _punct=_punct,
+        _string=_string,
+        _variable=_variable,
+        _ws=_ws,
+        _nlws=_nlws,
+    ):
+        op = r"=+\-*/!~"
         state = []
         if compound:
-            state.append((r'(?=\))', Text, '#pop'))
+            state.append((r"(?=\))", Text, "#pop"))
         state += [
-            (r'0[0-7]+', Number.Oct),
-            (r'0x[\da-f]+', Number.Hex),
-            (r'\d+', Number.Integer),
-            (r'[(),]+', Punctuation),
-            (rf'([{op}]|%|\^\^)+', Operator),
-            (r'({}|{}|(\^[{}]?)?[^(){}%\^"{}{}]|\^[{}]?{})+'.format(_string, _variable, _nl, op, _nlws, _punct, _nlws,
-              r'[^)]' if compound else r'[\w\W]'),
-             using(this, state='variable')),
-            (r'(?=[\x00|&])', Text, '#pop'),
-            include('follow')
+            (r"0[0-7]+", Number.Oct),
+            (r"0x[\da-f]+", Number.Hex),
+            (r"\d+", Number.Integer),
+            (r"[(),]+", Punctuation),
+            (rf"([{op}]|%|\^\^)+", Operator),
+            (
+                r'({}|{}|(\^[{}]?)?[^(){}%\^"{}{}]|\^[{}]?{})+'.format(
+                    _string,
+                    _variable,
+                    _nl,
+                    op,
+                    _nlws,
+                    _punct,
+                    _nlws,
+                    r"[^)]" if compound else r"[\w\W]",
+                ),
+                using(this, state="variable"),
+            ),
+            (r"(?=[\x00|&])", Text, "#pop"),
+            include("follow"),
         ]
         return state
 
-    def _make_call_state(compound, _label=_label,
-                         _label_compound=_label_compound):
+    def _make_call_state(compound, _label=_label, _label_compound=_label_compound):
         state = []
         if compound:
-            state.append((r'(?=\))', Text, '#pop'))
-        state.append((r'(:?)(%s)' % (_label_compound if compound else _label),
-                      bygroups(Punctuation, Name.Label), '#pop'))
+            state.append((r"(?=\))", Text, "#pop"))
+        state.append(
+            (
+                r"(:?)(%s)" % (_label_compound if compound else _label),
+                bygroups(Punctuation, Name.Label),
+                "#pop",
+            )
+        )
         return state
 
-    def _make_label_state(compound, _label=_label,
-                          _label_compound=_label_compound, _nl=_nl,
-                          _punct=_punct, _string=_string, _variable=_variable):
+    def _make_label_state(
+        compound,
+        _label=_label,
+        _label_compound=_label_compound,
+        _nl=_nl,
+        _punct=_punct,
+        _string=_string,
+        _variable=_variable,
+    ):
         state = []
         if compound:
-            state.append((r'(?=\))', Text, '#pop'))
-        state.append((r'({}?)((?:{}|{}|\^[{}]?{}|[^"%^{}{}{}])*)'.format(_label_compound if compound else _label, _string,
-                       _variable, _nl, r'[^)]' if compound else r'[\w\W]', _nl,
-                       _punct, r')' if compound else ''),
-                      bygroups(Name.Label, Comment.Single), '#pop'))
+            state.append((r"(?=\))", Text, "#pop"))
+        state.append(
+            (
+                r'({}?)((?:{}|{}|\^[{}]?{}|[^"%^{}{}{}])*)'.format(
+                    _label_compound if compound else _label,
+                    _string,
+                    _variable,
+                    _nl,
+                    r"[^)]" if compound else r"[\w\W]",
+                    _nl,
+                    _punct,
+                    r")" if compound else "",
+                ),
+                bygroups(Name.Label, Comment.Single),
+                "#pop",
+            )
+        )
         return state
 
-    def _make_redirect_state(compound,
-                             _core_token_compound=_core_token_compound,
-                             _nl=_nl, _punct=_punct, _stoken=_stoken,
-                             _string=_string, _space=_space,
-                             _variable=_variable, _nlws=_nlws):
-        stoken_compound = (rf'(?:[{_punct}]+|(?:{_string}|{_variable}|{_core_token_compound})+)')
+    def _make_redirect_state(
+        compound,
+        _core_token_compound=_core_token_compound,
+        _nl=_nl,
+        _punct=_punct,
+        _stoken=_stoken,
+        _string=_string,
+        _space=_space,
+        _variable=_variable,
+        _nlws=_nlws,
+    ):
+        stoken_compound = (
+            rf"(?:[{_punct}]+|(?:{_string}|{_variable}|{_core_token_compound})+)"
+        )
         return [
-            (rf'((?:(?<=[{_nlws}])\d)?)(>>?&|<&)([{_nlws}]*)(\d)',
-             bygroups(Number.Integer, Punctuation, Text, Number.Integer)),
-            (rf'((?:(?<=[{_nlws}])(?>?|<)({_space}?{stoken_compound if compound else _stoken})',
-             bygroups(Number.Integer, Punctuation, using(this, state='text')))
+            (
+                rf"((?:(?<=[{_nlws}])\d)?)(>>?&|<&)([{_nlws}]*)(\d)",
+                bygroups(Number.Integer, Punctuation, Text, Number.Integer),
+            ),
+            (
+                rf"((?:(?<=[{_nlws}])(?>?|<)({_space}?{stoken_compound if compound else _stoken})",
+                bygroups(Number.Integer, Punctuation, using(this, state="text")),
+            ),
         ]
 
     tokens = {
-        'root': _make_begin_state(False),
-        'follow': _make_follow_state(False),
-        'arithmetic': _make_arithmetic_state(False),
-        'call': _make_call_state(False),
-        'label': _make_label_state(False),
-        'redirect': _make_redirect_state(False),
-        'root/compound': _make_begin_state(True),
-        'follow/compound': _make_follow_state(True),
-        'arithmetic/compound': _make_arithmetic_state(True),
-        'call/compound': _make_call_state(True),
-        'label/compound': _make_label_state(True),
-        'redirect/compound': _make_redirect_state(True),
-        'variable-or-escape': [
+        "root": _make_begin_state(False),
+        "follow": _make_follow_state(False),
+        "arithmetic": _make_arithmetic_state(False),
+        "call": _make_call_state(False),
+        "label": _make_label_state(False),
+        "redirect": _make_redirect_state(False),
+        "root/compound": _make_begin_state(True),
+        "follow/compound": _make_follow_state(True),
+        "arithmetic/compound": _make_arithmetic_state(True),
+        "call/compound": _make_call_state(True),
+        "label/compound": _make_label_state(True),
+        "redirect/compound": _make_redirect_state(True),
+        "variable-or-escape": [
             (_variable, Name.Variable),
-            (rf'%%|\^[{_nl}]?(\^!|[\w\W])', String.Escape)
+            (rf"%%|\^[{_nl}]?(\^!|[\w\W])", String.Escape),
         ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (_variable, Name.Variable),
-            (r'\^!|%%', String.Escape),
+            (r"\^!|%%", String.Escape),
             (rf'[^"%^{_nl}]+|[%^]', String.Double),
-            default('#pop')
+            default("#pop"),
         ],
-        'sqstring': [
-            include('variable-or-escape'),
-            (r'[^%]+|%', String.Single)
+        "sqstring": [include("variable-or-escape"), (r"[^%]+|%", String.Single)],
+        "bqstring": [include("variable-or-escape"), (r"[^%]+|%", String.Backtick)],
+        "text": [
+            (r'"', String.Double, "string"),
+            include("variable-or-escape"),
+            (rf'[^"%^{_nlws}{_punct}\d)]+|.', Text),
         ],
-        'bqstring': [
-            include('variable-or-escape'),
-            (r'[^%]+|%', String.Backtick)
+        "variable": [
+            (r'"', String.Double, "string"),
+            include("variable-or-escape"),
+            (rf'[^"%^{_nl}]+|.', Name.Variable),
         ],
-        'text': [
-            (r'"', String.Double, 'string'),
-            include('variable-or-escape'),
-            (rf'[^"%^{_nlws}{_punct}\d)]+|.', Text)
+        "for": [
+            (
+                rf"({_space})(in)({_space})(\()",
+                bygroups(
+                    using(this, state="text"),
+                    Keyword,
+                    using(this, state="text"),
+                    Punctuation,
+                ),
+                "#pop",
+            ),
+            include("follow"),
         ],
-        'variable': [
-            (r'"', String.Double, 'string'),
-            include('variable-or-escape'),
-            (rf'[^"%^{_nl}]+|.', Name.Variable)
+        "for2": [
+            (r"\)", Punctuation),
+            (
+                rf"({_space})(do{_token_terminator})",
+                bygroups(using(this, state="text"), Keyword),
+                "#pop",
+            ),
+            (rf"[{_nl}]+", Text),
+            include("follow"),
         ],
-        'for': [
-            (rf'({_space})(in)({_space})(\()',
-             bygroups(using(this, state='text'), Keyword,
-                      using(this, state='text'), Punctuation), '#pop'),
-            include('follow')
+        "for/f": [
+            (
+                rf'(")((?:{_variable}|[^"])*?")([{_nlws}]*)(\))',
+                bygroups(String.Double, using(this, state="string"), Text, Punctuation),
+            ),
+            (r'"', String.Double, ("#pop", "for2", "string")),
+            (
+                rf"('(?:%%|{_variable}|[\w\W])*?')([{_nlws}]*)(\))",
+                bygroups(using(this, state="sqstring"), Text, Punctuation),
+            ),
+            (
+                rf"(`(?:%%|{_variable}|[\w\W])*?`)([{_nlws}]*)(\))",
+                bygroups(using(this, state="bqstring"), Text, Punctuation),
+            ),
+            include("for2"),
         ],
-        'for2': [
-            (r'\)', Punctuation),
-            (rf'({_space})(do{_token_terminator})',
-             bygroups(using(this, state='text'), Keyword), '#pop'),
-            (rf'[{_nl}]+', Text),
-            include('follow')
+        "for/l": [(r"-?\d+", Number.Integer), include("for2")],
+        "if": [
+            (
+                rf"((?:cmdextversion|errorlevel){_token_terminator})({_space})(\d+)",
+                bygroups(Keyword, using(this, state="text"), Number.Integer),
+                "#pop",
+            ),
+            (
+                rf"(defined{_token_terminator})({_space})({_stoken})",
+                bygroups(
+                    Keyword, using(this, state="text"), using(this, state="variable")
+                ),
+                "#pop",
+            ),
+            (
+                rf"(exist{_token_terminator})({_space}{_stoken})",
+                bygroups(Keyword, using(this, state="text")),
+                "#pop",
+            ),
+            (
+                rf"({_number}{_space})({_opword})({_space}{_number})",
+                bygroups(
+                    using(this, state="arithmetic"),
+                    Operator.Word,
+                    using(this, state="arithmetic"),
+                ),
+                "#pop",
+            ),
+            (_stoken, using(this, state="text"), ("#pop", "if2")),
         ],
-        'for/f': [
-            (rf'(")((?:{_variable}|[^"])*?")([{_nlws}]*)(\))',
-             bygroups(String.Double, using(this, state='string'), Text,
-                      Punctuation)),
-            (r'"', String.Double, ('#pop', 'for2', 'string')),
-            (rf"('(?:%%|{_variable}|[\w\W])*?')([{_nlws}]*)(\))",
-             bygroups(using(this, state='sqstring'), Text, Punctuation)),
-            (rf'(`(?:%%|{_variable}|[\w\W])*?`)([{_nlws}]*)(\))',
-             bygroups(using(this, state='bqstring'), Text, Punctuation)),
-            include('for2')
+        "if2": [
+            (
+                rf"({_space}?)(==)({_space}?{_stoken})",
+                bygroups(
+                    using(this, state="text"), Operator, using(this, state="text")
+                ),
+                "#pop",
+            ),
+            (
+                rf"({_space})({_opword})({_space}{_stoken})",
+                bygroups(
+                    using(this, state="text"), Operator.Word, using(this, state="text")
+                ),
+                "#pop",
+            ),
         ],
-        'for/l': [
-            (r'-?\d+', Number.Integer),
-            include('for2')
+        "(?": [
+            (_space, using(this, state="text")),
+            (r"\(", Punctuation, ("#pop", "else?", "root/compound")),
+            default("#pop"),
         ],
-        'if': [
-            (rf'((?:cmdextversion|errorlevel){_token_terminator})({_space})(\d+)',
-             bygroups(Keyword, using(this, state='text'),
-                      Number.Integer), '#pop'),
-            (rf'(defined{_token_terminator})({_space})({_stoken})',
-             bygroups(Keyword, using(this, state='text'),
-                      using(this, state='variable')), '#pop'),
-            (rf'(exist{_token_terminator})({_space}{_stoken})',
-             bygroups(Keyword, using(this, state='text')), '#pop'),
-            (rf'({_number}{_space})({_opword})({_space}{_number})',
-             bygroups(using(this, state='arithmetic'), Operator.Word,
-                      using(this, state='arithmetic')), '#pop'),
-            (_stoken, using(this, state='text'), ('#pop', 'if2')),
+        "else?": [
+            (_space, using(this, state="text")),
+            (rf"else{_token_terminator}", Keyword, "#pop"),
+            default("#pop"),
         ],
-        'if2': [
-            (rf'({_space}?)(==)({_space}?{_stoken})',
-             bygroups(using(this, state='text'), Operator,
-                      using(this, state='text')), '#pop'),
-            (rf'({_space})({_opword})({_space}{_stoken})',
-             bygroups(using(this, state='text'), Operator.Word,
-                      using(this, state='text')), '#pop')
-        ],
-        '(?': [
-            (_space, using(this, state='text')),
-            (r'\(', Punctuation, ('#pop', 'else?', 'root/compound')),
-            default('#pop')
-        ],
-        'else?': [
-            (_space, using(this, state='text')),
-            (rf'else{_token_terminator}', Keyword, '#pop'),
-            default('#pop')
-        ]
     }
 
 
@@ -537,17 +768,17 @@ class MSDOSSessionLexer(ShellSessionBaseLexer):
     prompt, interspersed with output.
     """
 
-    name = 'MSDOS Session'
-    aliases = ['doscon']
+    name = "MSDOS Session"
+    aliases = ["doscon"]
     filenames = []
     mimetypes = []
-    url = 'https://en.wikipedia.org/wiki/MS-DOS'
-    version_added = '2.1'
+    url = "https://en.wikipedia.org/wiki/MS-DOS"
+    version_added = "2.1"
     _example = "doscon/session"
 
     _innerLexerCls = BatchLexer
-    _ps1rgx = re.compile(r'^([^>]*>)(.*\n?)')
-    _ps2 = 'More? '
+    _ps1rgx = re.compile(r"^([^>]*>)(.*\n?)")
+    _ps2 = "More? "
 
 
 class TcshLexer(RegexLexer):
@@ -555,65 +786,69 @@ class TcshLexer(RegexLexer):
     Lexer for tcsh scripts.
     """
 
-    name = 'Tcsh'
-    aliases = ['tcsh', 'csh']
-    filenames = ['*.tcsh', '*.csh']
-    mimetypes = ['application/x-csh']
-    url = 'https://www.tcsh.org'
-    version_added = '0.10'
+    name = "Tcsh"
+    aliases = ["tcsh", "csh"]
+    filenames = ["*.tcsh", "*.csh"]
+    mimetypes = ["application/x-csh"]
+    url = "https://www.tcsh.org"
+    version_added = "0.10"
 
     tokens = {
-        'root': [
-            include('basic'),
-            (r'\$\(', Keyword, 'paren'),
-            (r'\$\{#?', Keyword, 'curly'),
-            (r'`', String.Backtick, 'backticks'),
-            include('data'),
+        "root": [
+            include("basic"),
+            (r"\$\(", Keyword, "paren"),
+            (r"\$\{#?", Keyword, "curly"),
+            (r"`", String.Backtick, "backticks"),
+            include("data"),
         ],
-        'basic': [
-            (r'\b(if|endif|else|while|then|foreach|case|default|'
-             r'break|continue|goto|breaksw|end|switch|endsw)\s*\b',
-             Keyword),
-            (r'\b(alias|alloc|bg|bindkey|builtins|bye|caller|cd|chdir|'
-             r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|'
-             r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|'
-             r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|'
-             r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|'
-             r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|'
-             r'source|stop|suspend|source|suspend|telltc|time|'
-             r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|'
-             r'ver|wait|warp|watchlog|where|which)\s*\b',
-             Name.Builtin),
-            (r'#.*', Comment),
-            (r'\\[\w\W]', String.Escape),
-            (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
-            (r'[\[\]{}()=]+', Operator),
-            (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
-            (r';', Punctuation),
+        "basic": [
+            (
+                r"\b(if|endif|else|while|then|foreach|case|default|"
+                r"break|continue|goto|breaksw|end|switch|endsw)\s*\b",
+                Keyword,
+            ),
+            (
+                r"\b(alias|alloc|bg|bindkey|builtins|bye|caller|cd|chdir|"
+                r"complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|"
+                r"glob|getspath|hashstat|history|hup|inlib|jobs|kill|"
+                r"limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|"
+                r"onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|"
+                r"set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|"
+                r"source|stop|suspend|source|suspend|telltc|time|"
+                r"umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|"
+                r"ver|wait|warp|watchlog|where|which)\s*\b",
+                Name.Builtin,
+            ),
+            (r"#.*", Comment),
+            (r"\\[\w\W]", String.Escape),
+            (r"(\b\w+)(\s*)(=)", bygroups(Name.Variable, Text, Operator)),
+            (r"[\[\]{}()=]+", Operator),
+            (r"<<\s*(\'?)\\?(\w+)[\w\W]+?\2", String),
+            (r";", Punctuation),
         ],
-        'data': [
+        "data": [
             (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
             (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
-            (r'\s+', Text),
+            (r"\s+", Text),
             (r'[^=\s\[\]{}()$"\'`\\;#]+', Text),
-            (r'\d+(?= |\Z)', Number),
-            (r'\$#?(\w+|.)', Name.Variable),
+            (r"\d+(?= |\Z)", Number),
+            (r"\$#?(\w+|.)", Name.Variable),
         ],
-        'curly': [
-            (r'\}', Keyword, '#pop'),
-            (r':-', Keyword),
-            (r'\w+', Name.Variable),
+        "curly": [
+            (r"\}", Keyword, "#pop"),
+            (r":-", Keyword),
+            (r"\w+", Name.Variable),
             (r'[^}:"\'`$]+', Punctuation),
-            (r':', Punctuation),
-            include('root'),
+            (r":", Punctuation),
+            include("root"),
         ],
-        'paren': [
-            (r'\)', Keyword, '#pop'),
-            include('root'),
+        "paren": [
+            (r"\)", Keyword, "#pop"),
+            include("root"),
         ],
-        'backticks': [
-            (r'`', String.Backtick, '#pop'),
-            include('root'),
+        "backticks": [
+            (r"`", String.Backtick, "#pop"),
+            include("root"),
         ],
     }
 
@@ -624,130 +859,137 @@ class TcshSessionLexer(ShellSessionBaseLexer):
     prompt, interspersed with output.
     """
 
-    name = 'Tcsh Session'
-    aliases = ['tcshcon']
+    name = "Tcsh Session"
+    aliases = ["tcshcon"]
     filenames = []
     mimetypes = []
-    url = 'https://www.tcsh.org'
-    version_added = '2.1'
+    url = "https://www.tcsh.org"
+    version_added = "2.1"
     _example = "tcshcon/session"
 
     _innerLexerCls = TcshLexer
-    _ps1rgx = re.compile(r'^([^>]+>)(.*\n?)')
-    _ps2 = '? '
+    _ps1rgx = re.compile(r"^([^>]+>)(.*\n?)")
+    _ps2 = "? "
 
 
 class PowerShellLexer(RegexLexer):
     """
     For Windows PowerShell code.
     """
-    name = 'PowerShell'
-    aliases = ['powershell', 'pwsh', 'posh', 'ps1', 'psm1']
-    filenames = ['*.ps1', '*.psm1']
-    mimetypes = ['text/x-powershell']
-    url = 'https://learn.microsoft.com/en-us/powershell'
-    version_added = '1.5'
+
+    name = "PowerShell"
+    aliases = ["powershell", "pwsh", "posh", "ps1", "psm1"]
+    filenames = ["*.ps1", "*.psm1"]
+    mimetypes = ["text/x-powershell"]
+    url = "https://learn.microsoft.com/en-us/powershell"
+    version_added = "1.5"
 
     flags = re.DOTALL | re.IGNORECASE | re.MULTILINE
 
     keywords = (
-        'while validateset validaterange validatepattern validatelength '
-        'validatecount until trap switch return ref process param parameter in '
-        'if global: local: function foreach for finally filter end elseif else '
-        'dynamicparam do default continue cmdletbinding break begin alias \\? '
-        '% #script #private #local #global mandatory parametersetname position '
-        'valuefrompipeline valuefrompipelinebypropertyname '
-        'valuefromremainingarguments helpmessage try catch throw').split()
+        "while validateset validaterange validatepattern validatelength "
+        "validatecount until trap switch return ref process param parameter in "
+        "if global: local: function foreach for finally filter end elseif else "
+        "dynamicparam do default continue cmdletbinding break begin alias \\? "
+        "% #script #private #local #global mandatory parametersetname position "
+        "valuefrompipeline valuefrompipelinebypropertyname "
+        "valuefromremainingarguments helpmessage try catch throw"
+    ).split()
 
     operators = (
-        'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle '
-        'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains '
-        'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt '
-        'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like '
-        'lt match ne not notcontains notlike notmatch or regex replace '
-        'wildcard').split()
+        "and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle "
+        "clike clt cmatch cne cnotcontains cnotlike cnotmatch contains "
+        "creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt "
+        "imatch ine inotcontains inotlike inotmatch ireplace is isnot le like "
+        "lt match ne not notcontains notlike notmatch or regex replace "
+        "wildcard"
+    ).split()
 
     verbs = (
-        'write where watch wait use update unregister unpublish unprotect '
-        'unlock uninstall undo unblock trace test tee take sync switch '
-        'suspend submit stop step start split sort skip show set send select '
-        'search scroll save revoke resume restore restart resolve resize '
-        'reset request repair rename remove register redo receive read push '
-        'publish protect pop ping out optimize open new move mount merge '
-        'measure lock limit join invoke install initialize import hide group '
-        'grant get format foreach find export expand exit enter enable edit '
-        'dismount disconnect disable deny debug cxnew copy convertto '
-        'convertfrom convert connect confirm compress complete compare close '
-        'clear checkpoint block backup assert approve aggregate add').split()
+        "write where watch wait use update unregister unpublish unprotect "
+        "unlock uninstall undo unblock trace test tee take sync switch "
+        "suspend submit stop step start split sort skip show set send select "
+        "search scroll save revoke resume restore restart resolve resize "
+        "reset request repair rename remove register redo receive read push "
+        "publish protect pop ping out optimize open new move mount merge "
+        "measure lock limit join invoke install initialize import hide group "
+        "grant get format foreach find export expand exit enter enable edit "
+        "dismount disconnect disable deny debug cxnew copy convertto "
+        "convertfrom convert connect confirm compress complete compare close "
+        "clear checkpoint block backup assert approve aggregate add"
+    ).split()
 
     aliases_ = (
-        'ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn '
-        'compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal '
-        'epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm '
-        'gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi '
-        'h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp '
-        'ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv '
-        'oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo '
-        'rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select '
-        'set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee '
-        'trcm type wget where wjb write').split()
+        "ac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn "
+        "compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal "
+        "epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm "
+        "gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi "
+        "h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp "
+        "ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv "
+        "oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo "
+        "rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select "
+        "set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee "
+        "trcm type wget where wjb write"
+    ).split()
 
     commenthelp = (
-        'component description example externalhelp forwardhelpcategory '
-        'forwardhelptargetname functionality inputs link '
-        'notes outputs parameter remotehelprunspace role synopsis').split()
+        "component description example externalhelp forwardhelpcategory "
+        "forwardhelptargetname functionality inputs link "
+        "notes outputs parameter remotehelprunspace role synopsis"
+    ).split()
 
     tokens = {
-        'root': [
+        "root": [
             # we need to count pairs of parentheses for correct highlight
             # of '$(...)' blocks in strings
-            (r'\(', Punctuation, 'child'),
-            (r'\s+', Text),
-            (r'^(\s*#[#\s]*)(\.(?:{}))([^\n]*$)'.format('|'.join(commenthelp)),
-             bygroups(Comment, String.Doc, Comment)),
-            (r'#[^\n]*?$', Comment),
-            (r'(<|<)#', Comment.Multiline, 'multline'),
-            (r'@"\n', String.Heredoc, 'heredoc-double'),
+            (r"\(", Punctuation, "child"),
+            (r"\s+", Text),
+            (
+                r"^(\s*#[#\s]*)(\.(?:{}))([^\n]*$)".format("|".join(commenthelp)),
+                bygroups(Comment, String.Doc, Comment),
+            ),
+            (r"#[^\n]*?$", Comment),
+            (r"(<|<)#", Comment.Multiline, "multline"),
+            (r'@"\n', String.Heredoc, "heredoc-double"),
             (r"@'\n.*?\n'@", String.Heredoc),
             # escaped syntax
             (r'`[\'"$@-]', Punctuation),
-            (r'"', String.Double, 'string'),
+            (r'"', String.Double, "string"),
             (r"'([^']|'')*'", String.Single),
-            (r'(\$|@@|@)((global|script|private|env):)?\w+',
-             Name.Variable),
-            (r'({})\b'.format('|'.join(keywords)), Keyword),
-            (r'-({})\b'.format('|'.join(operators)), Operator),
-            (r'({})-[a-z_]\w*\b'.format('|'.join(verbs)), Name.Builtin),
-            (r'({})\s'.format('|'.join(aliases_)), Name.Builtin),
-            (r'\[[a-z_\[][\w. `,\[\]]*\]', Name.Constant),  # .net [type]s
-            (r'-[a-z_]\w*', Name),
-            (r'\w+', Name),
-            (r'[.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation),
+            (r"(\$|@@|@)((global|script|private|env):)?\w+", Name.Variable),
+            (r"({})\b".format("|".join(keywords)), Keyword),
+            (r"-({})\b".format("|".join(operators)), Operator),
+            (r"({})-[a-z_]\w*\b".format("|".join(verbs)), Name.Builtin),
+            (r"({})\s".format("|".join(aliases_)), Name.Builtin),
+            (r"\[[a-z_\[][\w. `,\[\]]*\]", Name.Constant),  # .net [type]s
+            (r"-[a-z_]\w*", Name),
+            (r"\w+", Name),
+            (r"[.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]", Punctuation),
         ],
-        'child': [
-            (r'\)', Punctuation, '#pop'),
-            include('root'),
+        "child": [
+            (r"\)", Punctuation, "#pop"),
+            include("root"),
         ],
-        'multline': [
-            (r'[^#&.]+', Comment.Multiline),
-            (r'#(>|>)', Comment.Multiline, '#pop'),
-            (r'\.({})'.format('|'.join(commenthelp)), String.Doc),
-            (r'[#&.]', Comment.Multiline),
+        "multline": [
+            (r"[^#&.]+", Comment.Multiline),
+            (r"#(>|>)", Comment.Multiline, "#pop"),
+            (r"\.({})".format("|".join(commenthelp)), String.Doc),
+            (r"[#&.]", Comment.Multiline),
         ],
-        'string': [
+        "string": [
             (r"`[0abfnrtv'\"$`]", String.Escape),
             (r'[^$`"]+', String.Double),
-            (r'\$\(', Punctuation, 'child'),
+            (r"\$\(", Punctuation, "child"),
             (r'""', String.Double),
-            (r'[`$]', String.Double),
-            (r'"', String.Double, '#pop'),
+            (r"[`$]", String.Double),
+            (r'"', String.Double, "#pop"),
         ],
-        'heredoc-double': [
-            (r'\n"@', String.Heredoc, '#pop'),
-            (r'\$\(', Punctuation, 'child'),
+        "heredoc-double": [
+            (r'\n"@', String.Heredoc, "#pop"),
+            (r"\$\(", Punctuation, "child"),
             (r'[^@\n]+"]', String.Heredoc),
             (r".", String.Heredoc),
-        ]
+        ],
     }
 
 
@@ -757,18 +999,18 @@ class PowerShellSessionLexer(ShellSessionBaseLexer):
     prompt, interspersed with output.
     """
 
-    name = 'PowerShell Session'
-    aliases = ['pwsh-session', 'ps1con']
+    name = "PowerShell Session"
+    aliases = ["pwsh-session", "ps1con"]
     filenames = []
     mimetypes = []
-    url = 'https://learn.microsoft.com/en-us/powershell'
-    version_added = '2.1'
+    url = "https://learn.microsoft.com/en-us/powershell"
+    version_added = "2.1"
     _example = "pwsh-session/session"
 
     _innerLexerCls = PowerShellLexer
     _bare_continuation = True
-    _ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)')
-    _ps2 = '> '
+    _ps1rgx = re.compile(r"^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)")
+    _ps2 = "> "
 
 
 class FishShellLexer(RegexLexer):
@@ -776,127 +1018,130 @@ class FishShellLexer(RegexLexer):
     Lexer for Fish shell scripts.
     """
 
-    name = 'Fish'
-    aliases = ['fish', 'fishshell']
-    filenames = ['*.fish', '*.load']
-    mimetypes = ['application/x-fish']
-    url = 'https://fishshell.com'
-    version_added = '2.1'
+    name = "Fish"
+    aliases = ["fish", "fishshell"]
+    filenames = ["*.fish", "*.load"]
+    mimetypes = ["application/x-fish"]
+    url = "https://fishshell.com"
+    version_added = "2.1"
 
     tokens = {
-        'root': [
-            include('basic'),
-            include('data'),
-            include('interp'),
+        "root": [
+            include("basic"),
+            include("data"),
+            include("interp"),
         ],
-        'interp': [
-            (r'\$\(\(', Keyword, 'math'),
-            (r'\(', Keyword, 'paren'),
-            (r'\$#?(\w+|.)', Name.Variable),
+        "interp": [
+            (r"\$\(\(", Keyword, "math"),
+            (r"\(", Keyword, "paren"),
+            (r"\$#?(\w+|.)", Name.Variable),
         ],
-        'basic': [
-            (r'\b(begin|end|if|else|while|break|for|in|return|function|block|'
-             r'case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|'
-             r'cd|count|test)(\s*)\b',
-             bygroups(Keyword, Text)),
-            (r'\b(alias|bg|bind|breakpoint|builtin|command|commandline|'
-             r'complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|'
-             r'fish_indent|fish_pager|fish_prompt|fish_right_prompt|'
-             r'fish_update_completions|fishd|funced|funcsave|functions|help|'
-             r'history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|'
-             r'pushd|random|read|set_color|source|status|trap|type|ulimit|'
-             r'umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)',
-             Name.Builtin),
-            (r'#.*\n', Comment),
-            (r'\\[\w\W]', String.Escape),
-            (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Whitespace, Operator)),
-            (r'[\[\]()=]', Operator),
-            (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
+        "basic": [
+            (
+                r"\b(begin|end|if|else|while|break|for|in|return|function|block|"
+                r"case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|"
+                r"cd|count|test)(\s*)\b",
+                bygroups(Keyword, Text),
+            ),
+            (
+                r"\b(alias|bg|bind|breakpoint|builtin|command|commandline|"
+                r"complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|"
+                r"fish_indent|fish_pager|fish_prompt|fish_right_prompt|"
+                r"fish_update_completions|fishd|funced|funcsave|functions|help|"
+                r"history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|"
+                r"pushd|random|read|set_color|source|status|trap|type|ulimit|"
+                r"umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)",
+                Name.Builtin,
+            ),
+            (r"#.*\n", Comment),
+            (r"\\[\w\W]", String.Escape),
+            (r"(\b\w+)(\s*)(=)", bygroups(Name.Variable, Whitespace, Operator)),
+            (r"[\[\]()=]", Operator),
+            (r"<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2", String),
         ],
-        'data': [
+        "data": [
             (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"', String.Double),
-            (r'"', String.Double, 'string'),
+            (r'"', String.Double, "string"),
             (r"(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
             (r"(?s)'.*?'", String.Single),
-            (r';', Punctuation),
-            (r'&|\||\^|<|>', Operator),
-            (r'\s+', Text),
-            (r'\d+(?= |\Z)', Number),
+            (r";", Punctuation),
+            (r"&|\||\^|<|>", Operator),
+            (r"\s+", Text),
+            (r"\d+(?= |\Z)", Number),
             (r'[^=\s\[\]{}()$"\'`\\<&|;]+', Text),
         ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+', String.Double),
-            include('interp'),
+            include("interp"),
         ],
-        'paren': [
-            (r'\)', Keyword, '#pop'),
-            include('root'),
+        "paren": [
+            (r"\)", Keyword, "#pop"),
+            include("root"),
         ],
-        'math': [
-            (r'\)\)', Keyword, '#pop'),
-            (r'[-+*/%^|&]|\*\*|\|\|', Operator),
-            (r'\d+#\d+', Number),
-            (r'\d+#(?! )', Number),
-            (r'\d+', Number),
-            include('root'),
+        "math": [
+            (r"\)\)", Keyword, "#pop"),
+            (r"[-+*/%^|&]|\*\*|\|\|", Operator),
+            (r"\d+#\d+", Number),
+            (r"\d+#(?! )", Number),
+            (r"\d+", Number),
+            include("root"),
         ],
     }
 
+
 class ExeclineLexer(RegexLexer):
     """
     Lexer for Laurent Bercot's execline language.
     """
 
-    name = 'execline'
-    aliases = ['execline']
-    filenames = ['*.exec']
-    url = 'https://skarnet.org/software/execline'
-    version_added = '2.7'
+    name = "execline"
+    aliases = ["execline"]
+    filenames = ["*.exec"]
+    url = "https://skarnet.org/software/execline"
+    version_added = "2.7"
 
     tokens = {
-        'root': [
-            include('basic'),
-            include('data'),
-            include('interp')
+        "root": [include("basic"), include("data"), include("interp")],
+        "interp": [
+            (r"\$\{", String.Interpol, "curly"),
+            (r"\$[\w@#]+", Name.Variable),  # user variable
+            (r"\$", Text),
         ],
-        'interp': [
-            (r'\$\{', String.Interpol, 'curly'),
-            (r'\$[\w@#]+', Name.Variable),  # user variable
-            (r'\$', Text),
+        "basic": [
+            (
+                r"\b(background|backtick|cd|define|dollarat|elgetopt|"
+                r"elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|"
+                r"exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|"
+                r"forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|"
+                r"homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|"
+                r"multidefine|multisubstitute|pipeline|piperw|posix-cd|"
+                r"redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|"
+                r"withstdinas)\b",
+                Name.Builtin,
+            ),
+            (r"\A#!.+\n", Comment.Hashbang),
+            (r"#.*\n", Comment.Single),
+            (r"[{}]", Operator),
         ],
-        'basic': [
-            (r'\b(background|backtick|cd|define|dollarat|elgetopt|'
-             r'elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|'
-             r'exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|'
-             r'forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|'
-             r'homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|'
-             r'multidefine|multisubstitute|pipeline|piperw|posix-cd|'
-             r'redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|'
-             r'withstdinas)\b', Name.Builtin),
-            (r'\A#!.+\n', Comment.Hashbang),
-            (r'#.*\n', Comment.Single),
-            (r'[{}]', Operator)
-        ],
-        'data': [
+        "data": [
             (r'(?s)"(\\.|[^"\\$])*"', String.Double),
-            (r'"', String.Double, 'string'),
-            (r'\s+', Text),
-            (r'[^\s{}$"\\]+', Text)
+            (r'"', String.Double, "string"),
+            (r"\s+", Text),
+            (r'[^\s{}$"\\]+', Text),
         ],
-        'string': [
-            (r'"', String.Double, '#pop'),
+        "string": [
+            (r'"', String.Double, "#pop"),
             (r'(?s)(\\\\|\\.|[^"\\$])+', String.Double),
-            include('interp'),
+            include("interp"),
+        ],
+        "curly": [
+            (r"\}", String.Interpol, "#pop"),
+            (r"[\w#@]+", Name.Variable),
+            include("root"),
         ],
-        'curly': [
-            (r'\}', String.Interpol, '#pop'),
-            (r'[\w#@]+', Name.Variable),
-            include('root')
-        ]
-
     }
 
     def analyse_text(text):
-        if shebang_matches(text, r'execlineb'):
+        if shebang_matches(text, r"execlineb"):
             return 1
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sieve.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sieve.py
index fc48980..12e71e9 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sieve.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sieve.py
@@ -1,25 +1,24 @@
 """
-    pygments.lexers.sieve
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.sieve
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Sieve file format.
+Lexer for Sieve file format.
 
-    https://tools.ietf.org/html/rfc5228
-    https://tools.ietf.org/html/rfc5173
-    https://tools.ietf.org/html/rfc5229
-    https://tools.ietf.org/html/rfc5230
-    https://tools.ietf.org/html/rfc5232
-    https://tools.ietf.org/html/rfc5235
-    https://tools.ietf.org/html/rfc5429
-    https://tools.ietf.org/html/rfc8580
+https://tools.ietf.org/html/rfc5228
+https://tools.ietf.org/html/rfc5173
+https://tools.ietf.org/html/rfc5229
+https://tools.ietf.org/html/rfc5230
+https://tools.ietf.org/html/rfc5232
+https://tools.ietf.org/html/rfc5235
+https://tools.ietf.org/html/rfc5429
+https://tools.ietf.org/html/rfc8580
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups
-from pygments.token import Comment, Name, Literal, String, Text, Punctuation, \
-    Keyword
+from pygments.token import Comment, Name, Literal, String, Text, Punctuation, Keyword
 
 __all__ = ["SieveLexer"]
 
@@ -28,51 +27,49 @@ class SieveLexer(RegexLexer):
     """
     Lexer for sieve format.
     """
-    name = 'Sieve'
-    filenames = ['*.siv', '*.sieve']
-    aliases = ['sieve']
-    url = 'https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)'
-    version_added = '2.6'
+
+    name = "Sieve"
+    filenames = ["*.siv", "*.sieve"]
+    aliases = ["sieve"]
+    url = "https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)"
+    version_added = "2.6"
 
     tokens = {
-        'root': [
-            (r'\s+', Text),
-            (r'[();,{}\[\]]', Punctuation),
+        "root": [
+            (r"\s+", Text),
+            (r"[();,{}\[\]]", Punctuation),
             # import:
-            (r'(?i)require',
-             Keyword.Namespace),
+            (r"(?i)require", Keyword.Namespace),
             # tags:
-            (r'(?i)(:)(addresses|all|contains|content|create|copy|comparator|'
-             r'count|days|detail|domain|fcc|flags|from|handle|importance|is|'
-             r'localpart|length|lowerfirst|lower|matches|message|mime|options|'
-             r'over|percent|quotewildcard|raw|regex|specialuse|subject|text|'
-             r'under|upperfirst|upper|value)',
-             bygroups(Name.Tag, Name.Tag)),
+            (
+                r"(?i)(:)(addresses|all|contains|content|create|copy|comparator|"
+                r"count|days|detail|domain|fcc|flags|from|handle|importance|is|"
+                r"localpart|length|lowerfirst|lower|matches|message|mime|options|"
+                r"over|percent|quotewildcard|raw|regex|specialuse|subject|text|"
+                r"under|upperfirst|upper|value)",
+                bygroups(Name.Tag, Name.Tag),
+            ),
             # tokens:
-            (r'(?i)(address|addflag|allof|anyof|body|discard|elsif|else|envelope|'
-             r'ereject|exists|false|fileinto|if|hasflag|header|keep|'
-             r'notify_method_capability|notify|not|redirect|reject|removeflag|'
-             r'setflag|size|spamtest|stop|string|true|vacation|virustest)',
-             Name.Builtin),
-            (r'(?i)set',
-             Keyword.Declaration),
+            (
+                r"(?i)(address|addflag|allof|anyof|body|discard|elsif|else|envelope|"
+                r"ereject|exists|false|fileinto|if|hasflag|header|keep|"
+                r"notify_method_capability|notify|not|redirect|reject|removeflag|"
+                r"setflag|size|spamtest|stop|string|true|vacation|virustest)",
+                Name.Builtin,
+            ),
+            (r"(?i)set", Keyword.Declaration),
             # number:
-            (r'([0-9.]+)([kmgKMG])?',
-             bygroups(Literal.Number, Literal.Number)),
+            (r"([0-9.]+)([kmgKMG])?", bygroups(Literal.Number, Literal.Number)),
             # comment:
-            (r'#.*$',
-             Comment.Single),
-            (r'/\*.*\*/',
-             Comment.Multiline),
+            (r"#.*$", Comment.Single),
+            (r"/\*.*\*/", Comment.Multiline),
             # string:
-            (r'"[^"]*?"',
-             String),
+            (r'"[^"]*?"', String),
             # text block:
-            (r'text:',
-             Name.Tag, 'text'),
+            (r"text:", Name.Tag, "text"),
+        ],
+        "text": [
+            (r"[^.].*?\n", String),
+            (r"^\.", Punctuation, "#pop"),
         ],
-        'text': [
-            (r'[^.].*?\n', String),
-            (r'^\.', Punctuation, "#pop"),
-        ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/slash.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/slash.py
index 1c439d0..a0f0a1d 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/slash.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/slash.py
@@ -1,22 +1,31 @@
 """
-    pygments.lexers.slash
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.slash
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for the Slash programming language.
+Lexer for the Slash programming language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import ExtendedRegexLexer, bygroups, DelegatingLexer
-from pygments.token import Name, Number, String, Comment, Punctuation, \
-    Other, Keyword, Operator, Whitespace
+from pygments.token import (
+    Name,
+    Number,
+    String,
+    Comment,
+    Punctuation,
+    Other,
+    Keyword,
+    Operator,
+    Whitespace,
+)
 
-__all__ = ['SlashLexer']
+__all__ = ["SlashLexer"]
 
 
 class SlashLanguageLexer(ExtendedRegexLexer):
-    _nkw = r'(?=[^a-zA-Z_0-9])'
+    _nkw = r"(?=[^a-zA-Z_0-9])"
 
     def move_state(new_state):
         return ("#pop", new_state)
@@ -24,145 +33,159 @@ class SlashLanguageLexer(ExtendedRegexLexer):
     def right_angle_bracket(lexer, match, ctx):
         if len(ctx.stack) > 1 and ctx.stack[-2] == "string":
             ctx.stack.pop()
-        yield match.start(), String.Interpol, '}'
+        yield match.start(), String.Interpol, "}"
         ctx.pos = match.end()
         pass
 
     tokens = {
         "root": [
-            (r"<%=",        Comment.Preproc,    move_state("slash")),
-            (r"<%!!",       Comment.Preproc,    move_state("slash")),
-            (r"<%#.*?%>",   Comment.Multiline),
-            (r"<%",         Comment.Preproc,    move_state("slash")),
-            (r".|\n",       Other),
+            (r"<%=", Comment.Preproc, move_state("slash")),
+            (r"<%!!", Comment.Preproc, move_state("slash")),
+            (r"<%#.*?%>", Comment.Multiline),
+            (r"<%", Comment.Preproc, move_state("slash")),
+            (r".|\n", Other),
         ],
         "string": [
-            (r"\\",         String.Escape,      move_state("string_e")),
-            (r"\"",         String,             move_state("slash")),
-            (r"#\{",        String.Interpol,    "slash"),
-            (r'.|\n',       String),
+            (r"\\", String.Escape, move_state("string_e")),
+            (r"\"", String, move_state("slash")),
+            (r"#\{", String.Interpol, "slash"),
+            (r".|\n", String),
         ],
         "string_e": [
-            (r'n',                  String.Escape,      move_state("string")),
-            (r't',                  String.Escape,      move_state("string")),
-            (r'r',                  String.Escape,      move_state("string")),
-            (r'e',                  String.Escape,      move_state("string")),
-            (r'x[a-fA-F0-9]{2}',    String.Escape,      move_state("string")),
-            (r'.',                  String.Escape,      move_state("string")),
+            (r"n", String.Escape, move_state("string")),
+            (r"t", String.Escape, move_state("string")),
+            (r"r", String.Escape, move_state("string")),
+            (r"e", String.Escape, move_state("string")),
+            (r"x[a-fA-F0-9]{2}", String.Escape, move_state("string")),
+            (r".", String.Escape, move_state("string")),
         ],
         "regexp": [
-            (r'}[a-z]*',            String.Regex,       move_state("slash")),
-            (r'\\(.|\n)',           String.Regex),
-            (r'{',                  String.Regex,       "regexp_r"),
-            (r'.|\n',               String.Regex),
+            (r"}[a-z]*", String.Regex, move_state("slash")),
+            (r"\\(.|\n)", String.Regex),
+            (r"{", String.Regex, "regexp_r"),
+            (r".|\n", String.Regex),
         ],
         "regexp_r": [
-            (r'}[a-z]*',            String.Regex,       "#pop"),
-            (r'\\(.|\n)',           String.Regex),
-            (r'{',                  String.Regex,       "regexp_r"),
+            (r"}[a-z]*", String.Regex, "#pop"),
+            (r"\\(.|\n)", String.Regex),
+            (r"{", String.Regex, "regexp_r"),
         ],
         "slash": [
-            (r"%>",                     Comment.Preproc,    move_state("root")),
-            (r"\"",                     String,             move_state("string")),
-            (r"'[a-zA-Z0-9_]+",         String),
-            (r'%r{',                    String.Regex,       move_state("regexp")),
-            (r'/\*.*?\*/',              Comment.Multiline),
-            (r"(#|//).*?\n",            Comment.Single),
-            (r'-?[0-9]+e[+-]?[0-9]+',   Number.Float),
-            (r'-?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?', Number.Float),
-            (r'-?[0-9]+',               Number.Integer),
-            (r'nil'+_nkw,               Name.Builtin),
-            (r'true'+_nkw,              Name.Builtin),
-            (r'false'+_nkw,             Name.Builtin),
-            (r'self'+_nkw,              Name.Builtin),
-            (r'(class)(\s+)([A-Z][a-zA-Z0-9_\']*)',
-                bygroups(Keyword, Whitespace, Name.Class)),
-            (r'class'+_nkw,             Keyword),
-            (r'extends'+_nkw,           Keyword),
-            (r'(def)(\s+)(self)(\s*)(\.)(\s*)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
-                bygroups(Keyword, Whitespace, Name.Builtin, Whitespace, Punctuation, Whitespace, Name.Function)),
-            (r'(def)(\s+)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
-                bygroups(Keyword, Whitespace, Name.Function)),
-            (r'def'+_nkw,               Keyword),
-            (r'if'+_nkw,                Keyword),
-            (r'elsif'+_nkw,             Keyword),
-            (r'else'+_nkw,              Keyword),
-            (r'unless'+_nkw,            Keyword),
-            (r'for'+_nkw,               Keyword),
-            (r'in'+_nkw,                Keyword),
-            (r'while'+_nkw,             Keyword),
-            (r'until'+_nkw,             Keyword),
-            (r'and'+_nkw,               Keyword),
-            (r'or'+_nkw,                Keyword),
-            (r'not'+_nkw,               Keyword),
-            (r'lambda'+_nkw,            Keyword),
-            (r'try'+_nkw,               Keyword),
-            (r'catch'+_nkw,             Keyword),
-            (r'return'+_nkw,            Keyword),
-            (r'next'+_nkw,              Keyword),
-            (r'last'+_nkw,              Keyword),
-            (r'throw'+_nkw,             Keyword),
-            (r'use'+_nkw,               Keyword),
-            (r'switch'+_nkw,            Keyword),
-            (r'\\',                     Keyword),
-            (r'λ',                      Keyword),
-            (r'__FILE__'+_nkw,          Name.Builtin.Pseudo),
-            (r'__LINE__'+_nkw,          Name.Builtin.Pseudo),
-            (r'[A-Z][a-zA-Z0-9_\']*'+_nkw, Name.Constant),
-            (r'[a-z_][a-zA-Z0-9_\']*'+_nkw, Name),
-            (r'@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Instance),
-            (r'@@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Class),
-            (r'\(',                     Punctuation),
-            (r'\)',                     Punctuation),
-            (r'\[',                     Punctuation),
-            (r'\]',                     Punctuation),
-            (r'\{',                     Punctuation),
-            (r'\}',                     right_angle_bracket),
-            (r';',                      Punctuation),
-            (r',',                      Punctuation),
-            (r'<<=',                    Operator),
-            (r'>>=',                    Operator),
-            (r'<<',                     Operator),
-            (r'>>',                     Operator),
-            (r'==',                     Operator),
-            (r'!=',                     Operator),
-            (r'=>',                     Operator),
-            (r'=',                      Operator),
-            (r'<=>',                    Operator),
-            (r'<=',                     Operator),
-            (r'>=',                     Operator),
-            (r'<',                      Operator),
-            (r'>',                      Operator),
-            (r'\+\+',                   Operator),
-            (r'\+=',                    Operator),
-            (r'-=',                     Operator),
-            (r'\*\*=',                  Operator),
-            (r'\*=',                    Operator),
-            (r'\*\*',                   Operator),
-            (r'\*',                     Operator),
-            (r'/=',                     Operator),
-            (r'\+',                     Operator),
-            (r'-',                      Operator),
-            (r'/',                      Operator),
-            (r'%=',                     Operator),
-            (r'%',                      Operator),
-            (r'^=',                     Operator),
-            (r'&&=',                    Operator),
-            (r'&=',                     Operator),
-            (r'&&',                     Operator),
-            (r'&',                      Operator),
-            (r'\|\|=',                  Operator),
-            (r'\|=',                    Operator),
-            (r'\|\|',                   Operator),
-            (r'\|',                     Operator),
-            (r'!',                      Operator),
-            (r'\.\.\.',                 Operator),
-            (r'\.\.',                   Operator),
-            (r'\.',                     Operator),
-            (r'::',                     Operator),
-            (r':',                      Operator),
-            (r'(\s|\n)+',               Whitespace),
-            (r'[a-z_][a-zA-Z0-9_\']*',  Name.Variable),
+            (r"%>", Comment.Preproc, move_state("root")),
+            (r"\"", String, move_state("string")),
+            (r"'[a-zA-Z0-9_]+", String),
+            (r"%r{", String.Regex, move_state("regexp")),
+            (r"/\*.*?\*/", Comment.Multiline),
+            (r"(#|//).*?\n", Comment.Single),
+            (r"-?[0-9]+e[+-]?[0-9]+", Number.Float),
+            (r"-?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?", Number.Float),
+            (r"-?[0-9]+", Number.Integer),
+            (r"nil" + _nkw, Name.Builtin),
+            (r"true" + _nkw, Name.Builtin),
+            (r"false" + _nkw, Name.Builtin),
+            (r"self" + _nkw, Name.Builtin),
+            (
+                r"(class)(\s+)([A-Z][a-zA-Z0-9_\']*)",
+                bygroups(Keyword, Whitespace, Name.Class),
+            ),
+            (r"class" + _nkw, Keyword),
+            (r"extends" + _nkw, Keyword),
+            (
+                r"(def)(\s+)(self)(\s*)(\.)(\s*)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)",
+                bygroups(
+                    Keyword,
+                    Whitespace,
+                    Name.Builtin,
+                    Whitespace,
+                    Punctuation,
+                    Whitespace,
+                    Name.Function,
+                ),
+            ),
+            (
+                r"(def)(\s+)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)",
+                bygroups(Keyword, Whitespace, Name.Function),
+            ),
+            (r"def" + _nkw, Keyword),
+            (r"if" + _nkw, Keyword),
+            (r"elsif" + _nkw, Keyword),
+            (r"else" + _nkw, Keyword),
+            (r"unless" + _nkw, Keyword),
+            (r"for" + _nkw, Keyword),
+            (r"in" + _nkw, Keyword),
+            (r"while" + _nkw, Keyword),
+            (r"until" + _nkw, Keyword),
+            (r"and" + _nkw, Keyword),
+            (r"or" + _nkw, Keyword),
+            (r"not" + _nkw, Keyword),
+            (r"lambda" + _nkw, Keyword),
+            (r"try" + _nkw, Keyword),
+            (r"catch" + _nkw, Keyword),
+            (r"return" + _nkw, Keyword),
+            (r"next" + _nkw, Keyword),
+            (r"last" + _nkw, Keyword),
+            (r"throw" + _nkw, Keyword),
+            (r"use" + _nkw, Keyword),
+            (r"switch" + _nkw, Keyword),
+            (r"\\", Keyword),
+            (r"λ", Keyword),
+            (r"__FILE__" + _nkw, Name.Builtin.Pseudo),
+            (r"__LINE__" + _nkw, Name.Builtin.Pseudo),
+            (r"[A-Z][a-zA-Z0-9_\']*" + _nkw, Name.Constant),
+            (r"[a-z_][a-zA-Z0-9_\']*" + _nkw, Name),
+            (r"@[a-z_][a-zA-Z0-9_\']*" + _nkw, Name.Variable.Instance),
+            (r"@@[a-z_][a-zA-Z0-9_\']*" + _nkw, Name.Variable.Class),
+            (r"\(", Punctuation),
+            (r"\)", Punctuation),
+            (r"\[", Punctuation),
+            (r"\]", Punctuation),
+            (r"\{", Punctuation),
+            (r"\}", right_angle_bracket),
+            (r";", Punctuation),
+            (r",", Punctuation),
+            (r"<<=", Operator),
+            (r">>=", Operator),
+            (r"<<", Operator),
+            (r">>", Operator),
+            (r"==", Operator),
+            (r"!=", Operator),
+            (r"=>", Operator),
+            (r"=", Operator),
+            (r"<=>", Operator),
+            (r"<=", Operator),
+            (r">=", Operator),
+            (r"<", Operator),
+            (r">", Operator),
+            (r"\+\+", Operator),
+            (r"\+=", Operator),
+            (r"-=", Operator),
+            (r"\*\*=", Operator),
+            (r"\*=", Operator),
+            (r"\*\*", Operator),
+            (r"\*", Operator),
+            (r"/=", Operator),
+            (r"\+", Operator),
+            (r"-", Operator),
+            (r"/", Operator),
+            (r"%=", Operator),
+            (r"%", Operator),
+            (r"^=", Operator),
+            (r"&&=", Operator),
+            (r"&=", Operator),
+            (r"&&", Operator),
+            (r"&", Operator),
+            (r"\|\|=", Operator),
+            (r"\|=", Operator),
+            (r"\|\|", Operator),
+            (r"\|", Operator),
+            (r"!", Operator),
+            (r"\.\.\.", Operator),
+            (r"\.\.", Operator),
+            (r"\.", Operator),
+            (r"::", Operator),
+            (r":", Operator),
+            (r"(\s|\n)+", Whitespace),
+            (r"[a-z_][a-zA-Z0-9_\']*", Name.Variable),
         ],
     }
 
@@ -172,12 +195,13 @@ class SlashLexer(DelegatingLexer):
     Lexer for the Slash programming language.
     """
 
-    name = 'Slash'
-    aliases = ['slash']
-    filenames = ['*.sla']
-    url = 'https://github.com/arturadib/Slash-A'
-    version_added = '2.4'
+    name = "Slash"
+    aliases = ["slash"]
+    filenames = ["*.sla"]
+    url = "https://github.com/arturadib/Slash-A"
+    version_added = "2.4"
 
     def __init__(self, **options):
         from pygments.lexers.web import HtmlLexer
+
         super().__init__(HtmlLexer, SlashLanguageLexer, **options)
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smalltalk.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smalltalk.py
index 674b7b4..917601e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smalltalk.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smalltalk.py
@@ -1,18 +1,26 @@
 """
-    pygments.lexers.smalltalk
-    ~~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.smalltalk
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Smalltalk and related languages.
+Lexers for Smalltalk and related languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, bygroups, default
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['SmalltalkLexer', 'NewspeakLexer']
+__all__ = ["SmalltalkLexer", "NewspeakLexer"]
 
 
 class SmalltalkLexer(RegexLexer):
@@ -21,117 +29,150 @@ class SmalltalkLexer(RegexLexer):
     Contributed by Stefan Matthias Aust.
     Rewritten by Nils Winter.
     """
-    name = 'Smalltalk'
-    url = 'http://www.smalltalk.org/'
-    filenames = ['*.st']
-    aliases = ['smalltalk', 'squeak', 'st']
-    mimetypes = ['text/x-smalltalk']
-    version_added = '0.10'
+
+    name = "Smalltalk"
+    url = "http://www.smalltalk.org/"
+    filenames = ["*.st"]
+    aliases = ["smalltalk", "squeak", "st"]
+    mimetypes = ["text/x-smalltalk"]
+    version_added = "0.10"
 
     tokens = {
-        'root': [
-            (r'(<)(\w+:)(.*?)(>)', bygroups(Text, Keyword, Text, Text)),
-            include('squeak fileout'),
-            include('whitespaces'),
-            include('method definition'),
-            (r'(\|)([\w\s]*)(\|)', bygroups(Operator, Name.Variable, Operator)),
-            include('objects'),
-            (r'\^|\:=|\_', Operator),
+        "root": [
+            (r"(<)(\w+:)(.*?)(>)", bygroups(Text, Keyword, Text, Text)),
+            include("squeak fileout"),
+            include("whitespaces"),
+            include("method definition"),
+            (r"(\|)([\w\s]*)(\|)", bygroups(Operator, Name.Variable, Operator)),
+            include("objects"),
+            (r"\^|\:=|\_", Operator),
             # temporaries
-            (r'[\]({}.;!]', Text),
+            (r"[\]({}.;!]", Text),
         ],
-        'method definition': [
+        "method definition": [
             # Not perfect can't allow whitespaces at the beginning and the
             # without breaking everything
-            (r'([a-zA-Z]+\w*:)(\s*)(\w+)',
-             bygroups(Name.Function, Text, Name.Variable)),
-            (r'^(\b[a-zA-Z]+\w*\b)(\s*)$', bygroups(Name.Function, Text)),
-            (r'^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$',
-             bygroups(Name.Function, Text, Name.Variable, Text)),
+            (
+                r"([a-zA-Z]+\w*:)(\s*)(\w+)",
+                bygroups(Name.Function, Text, Name.Variable),
+            ),
+            (r"^(\b[a-zA-Z]+\w*\b)(\s*)$", bygroups(Name.Function, Text)),
+            (
+                r"^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$",
+                bygroups(Name.Function, Text, Name.Variable, Text),
+            ),
         ],
-        'blockvariables': [
-            include('whitespaces'),
-            (r'(:)(\s*)(\w+)',
-             bygroups(Operator, Text, Name.Variable)),
-            (r'\|', Operator, '#pop'),
-            default('#pop'),  # else pop
+        "blockvariables": [
+            include("whitespaces"),
+            (r"(:)(\s*)(\w+)", bygroups(Operator, Text, Name.Variable)),
+            (r"\|", Operator, "#pop"),
+            default("#pop"),  # else pop
         ],
-        'literals': [
-            (r"'(''|[^'])*'", String, 'afterobject'),
-            (r'\$.', String.Char, 'afterobject'),
-            (r'#\(', String.Symbol, 'parenth'),
-            (r'\)', Text, 'afterobject'),
-            (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number, 'afterobject'),
+        "literals": [
+            (r"'(''|[^'])*'", String, "afterobject"),
+            (r"\$.", String.Char, "afterobject"),
+            (r"#\(", String.Symbol, "parenth"),
+            (r"\)", Text, "afterobject"),
+            (r"(\d+r)?-?\d+(\.\d+)?(e-?\d+)?", Number, "afterobject"),
         ],
-        '_parenth_helper': [
-            include('whitespaces'),
-            (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number),
-            (r'[-+*/\\~<>=|&#!?,@%\w:]+', String.Symbol),
+        "_parenth_helper": [
+            include("whitespaces"),
+            (r"(\d+r)?-?\d+(\.\d+)?(e-?\d+)?", Number),
+            (r"[-+*/\\~<>=|&#!?,@%\w:]+", String.Symbol),
             # literals
             (r"'(''|[^'])*'", String),
-            (r'\$.', String.Char),
-            (r'#*\(', String.Symbol, 'inner_parenth'),
+            (r"\$.", String.Char),
+            (r"#*\(", String.Symbol, "inner_parenth"),
         ],
-        'parenth': [
+        "parenth": [
             # This state is a bit tricky since
             # we can't just pop this state
-            (r'\)', String.Symbol, ('root', 'afterobject')),
-            include('_parenth_helper'),
+            (r"\)", String.Symbol, ("root", "afterobject")),
+            include("_parenth_helper"),
         ],
-        'inner_parenth': [
-            (r'\)', String.Symbol, '#pop'),
-            include('_parenth_helper'),
+        "inner_parenth": [
+            (r"\)", String.Symbol, "#pop"),
+            include("_parenth_helper"),
         ],
-        'whitespaces': [
+        "whitespaces": [
             # skip whitespace and comments
-            (r'\s+', Text),
+            (r"\s+", Text),
             (r'"(""|[^"])*"', Comment),
         ],
-        'objects': [
-            (r'\[', Text, 'blockvariables'),
-            (r'\]', Text, 'afterobject'),
-            (r'\b(self|super|true|false|nil|thisContext)\b',
-             Name.Builtin.Pseudo, 'afterobject'),
-            (r'\b[A-Z]\w*(?!:)\b', Name.Class, 'afterobject'),
-            (r'\b[a-z]\w*(?!:)\b', Name.Variable, 'afterobject'),
-            (r'#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)',
-             String.Symbol, 'afterobject'),
-            include('literals'),
+        "objects": [
+            (r"\[", Text, "blockvariables"),
+            (r"\]", Text, "afterobject"),
+            (
+                r"\b(self|super|true|false|nil|thisContext)\b",
+                Name.Builtin.Pseudo,
+                "afterobject",
+            ),
+            (r"\b[A-Z]\w*(?!:)\b", Name.Class, "afterobject"),
+            (r"\b[a-z]\w*(?!:)\b", Name.Variable, "afterobject"),
+            (
+                r'#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)',
+                String.Symbol,
+                "afterobject",
+            ),
+            include("literals"),
         ],
-        'afterobject': [
-            (r'! !$', Keyword, '#pop'),  # squeak chunk delimiter
-            include('whitespaces'),
-            (r'\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)',
-             Name.Builtin, '#pop'),
-            (r'\b(new\b(?!:))', Name.Builtin),
-            (r'\:=|\_', Operator, '#pop'),
-            (r'\b[a-zA-Z]+\w*:', Name.Function, '#pop'),
-            (r'\b[a-zA-Z]+\w*', Name.Function),
-            (r'\w+:?|[-+*/\\~<>=|&!?,@%]+', Name.Function, '#pop'),
-            (r'\.', Punctuation, '#pop'),
-            (r';', Punctuation),
-            (r'[\])}]', Text),
-            (r'[\[({]', Text, '#pop'),
+        "afterobject": [
+            (r"! !$", Keyword, "#pop"),  # squeak chunk delimiter
+            include("whitespaces"),
+            (
+                r"\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)",
+                Name.Builtin,
+                "#pop",
+            ),
+            (r"\b(new\b(?!:))", Name.Builtin),
+            (r"\:=|\_", Operator, "#pop"),
+            (r"\b[a-zA-Z]+\w*:", Name.Function, "#pop"),
+            (r"\b[a-zA-Z]+\w*", Name.Function),
+            (r"\w+:?|[-+*/\\~<>=|&!?,@%]+", Name.Function, "#pop"),
+            (r"\.", Punctuation, "#pop"),
+            (r";", Punctuation),
+            (r"[\])}]", Text),
+            (r"[\[({]", Text, "#pop"),
         ],
-        'squeak fileout': [
+        "squeak fileout": [
             # Squeak fileout format (optional)
             (r'^"(""|[^"])*"!', Keyword),
             (r"^'(''|[^'])*'!", Keyword),
-            (r'^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)',
-                bygroups(Keyword, Name.Class, Keyword, String, Keyword, Text, Keyword)),
-            (r"^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)",
-                bygroups(Keyword, Name.Class, Keyword, String, Keyword)),
-            (r'^(\w+)( subclass: )(#\w+)'
-             r'(\s+instanceVariableNames: )(.*?)'
-             r'(\s+classVariableNames: )(.*?)'
-             r'(\s+poolDictionaries: )(.*?)'
-             r'(\s+category: )(.*?)(!)',
-                bygroups(Name.Class, Keyword, String.Symbol, Keyword, String, Keyword,
-                         String, Keyword, String, Keyword, String, Keyword)),
-            (r'^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)',
-                bygroups(Name.Class, Keyword, String, Keyword)),
-            (r'(!\n)(\].*)(! !)$', bygroups(Keyword, Text, Keyword)),
-            (r'! !$', Keyword),
+            (
+                r"^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)",
+                bygroups(Keyword, Name.Class, Keyword, String, Keyword, Text, Keyword),
+            ),
+            (
+                r"^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)",
+                bygroups(Keyword, Name.Class, Keyword, String, Keyword),
+            ),
+            (
+                r"^(\w+)( subclass: )(#\w+)"
+                r"(\s+instanceVariableNames: )(.*?)"
+                r"(\s+classVariableNames: )(.*?)"
+                r"(\s+poolDictionaries: )(.*?)"
+                r"(\s+category: )(.*?)(!)",
+                bygroups(
+                    Name.Class,
+                    Keyword,
+                    String.Symbol,
+                    Keyword,
+                    String,
+                    Keyword,
+                    String,
+                    Keyword,
+                    String,
+                    Keyword,
+                    String,
+                    Keyword,
+                ),
+            ),
+            (
+                r"^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)",
+                bygroups(Name.Class, Keyword, String, Keyword),
+            ),
+            (r"(!\n)(\].*)(! !)$", bygroups(Keyword, Text, Keyword)),
+            (r"! !$", Keyword),
         ],
     }
 
@@ -140,55 +181,58 @@ class NewspeakLexer(RegexLexer):
     """
     For Newspeak syntax.
     """
-    name = 'Newspeak'
-    url = 'http://newspeaklanguage.org/'
-    filenames = ['*.ns2']
-    aliases = ['newspeak', ]
-    mimetypes = ['text/x-newspeak']
-    version_added = '1.1'
+
+    name = "Newspeak"
+    url = "http://newspeaklanguage.org/"
+    filenames = ["*.ns2"]
+    aliases = [
+        "newspeak",
+    ]
+    mimetypes = ["text/x-newspeak"]
+    version_added = "1.1"
 
     tokens = {
-        'root': [
-            (r'\b(Newsqueak2)\b', Keyword.Declaration),
+        "root": [
+            (r"\b(Newsqueak2)\b", Keyword.Declaration),
             (r"'[^']*'", String),
-            (r'\b(class)(\s+)(\w+)(\s*)',
-             bygroups(Keyword.Declaration, Text, Name.Class, Text)),
-            (r'\b(mixin|self|super|private|public|protected|nil|true|false)\b',
-             Keyword),
-            (r'(\w+\:)(\s*)([a-zA-Z_]\w+)',
-             bygroups(Name.Function, Text, Name.Variable)),
-            (r'(\w+)(\s*)(=)',
-             bygroups(Name.Attribute, Text, Operator)),
-            (r'<\w+>', Comment.Special),
-            include('expressionstat'),
-            include('whitespace')
+            (
+                r"\b(class)(\s+)(\w+)(\s*)",
+                bygroups(Keyword.Declaration, Text, Name.Class, Text),
+            ),
+            (
+                r"\b(mixin|self|super|private|public|protected|nil|true|false)\b",
+                Keyword,
+            ),
+            (
+                r"(\w+\:)(\s*)([a-zA-Z_]\w+)",
+                bygroups(Name.Function, Text, Name.Variable),
+            ),
+            (r"(\w+)(\s*)(=)", bygroups(Name.Attribute, Text, Operator)),
+            (r"<\w+>", Comment.Special),
+            include("expressionstat"),
+            include("whitespace"),
         ],
-
-        'expressionstat': [
-            (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
-            (r'\d+', Number.Integer),
-            (r':\w+', Name.Variable),
-            (r'(\w+)(::)', bygroups(Name.Variable, Operator)),
-            (r'\w+:', Name.Function),
-            (r'\w+', Name.Variable),
-            (r'\(|\)', Punctuation),
-            (r'\[|\]', Punctuation),
-            (r'\{|\}', Punctuation),
-
-            (r'(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)', Operator),
-            (r'\.|;', Punctuation),
-            include('whitespace'),
-            include('literals'),
+        "expressionstat": [
+            (r"(\d+\.\d*|\.\d+|\d+[fF])[fF]?", Number.Float),
+            (r"\d+", Number.Integer),
+            (r":\w+", Name.Variable),
+            (r"(\w+)(::)", bygroups(Name.Variable, Operator)),
+            (r"\w+:", Name.Function),
+            (r"\w+", Name.Variable),
+            (r"\(|\)", Punctuation),
+            (r"\[|\]", Punctuation),
+            (r"\{|\}", Punctuation),
+            (r"(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)", Operator),
+            (r"\.|;", Punctuation),
+            include("whitespace"),
+            include("literals"),
         ],
-        'literals': [
-            (r'\$.', String),
+        "literals": [
+            (r"\$.", String),
             (r"'[^']*'", String),
             (r"#'[^']*'", String.Symbol),
             (r"#\w+:?", String.Symbol),
-            (r"#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+", String.Symbol)
-        ],
-        'whitespace': [
-            (r'\s+', Text),
-            (r'"[^"]*"', Comment)
+            (r"#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+", String.Symbol),
         ],
+        "whitespace": [(r"\s+", Text), (r'"[^"]*"', Comment)],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smithy.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smithy.py
index bd479ae..37a8730 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smithy.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smithy.py
@@ -1,77 +1,120 @@
 """
-    pygments.lexers.smithy
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.smithy
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Smithy IDL.
+Lexers for the Smithy IDL.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, words
-from pygments.token import Text, Comment, Keyword, Name, String, \
-    Number, Whitespace, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Whitespace,
+    Punctuation,
+)
 
-__all__ = ['SmithyLexer']
+__all__ = ["SmithyLexer"]
 
 
 class SmithyLexer(RegexLexer):
     """
     For Smithy IDL
     """
-    name = 'Smithy'
-    url = 'https://awslabs.github.io/smithy/'
-    filenames = ['*.smithy']
-    aliases = ['smithy']
-    version_added = '2.10'
 
-    unquoted = r'[A-Za-z0-9_\.#$-]+'
+    name = "Smithy"
+    url = "https://awslabs.github.io/smithy/"
+    filenames = ["*.smithy"]
+    aliases = ["smithy"]
+    version_added = "2.10"
+
+    unquoted = r"[A-Za-z0-9_\.#$-]+"
     identifier = r"[A-Za-z0-9_\.#$-]+"
 
     simple_shapes = (
-        'use', 'byte', 'short', 'integer', 'long', 'float', 'document',
-        'double', 'bigInteger', 'bigDecimal', 'boolean', 'blob', 'string',
-        'timestamp',
+        "use",
+        "byte",
+        "short",
+        "integer",
+        "long",
+        "float",
+        "document",
+        "double",
+        "bigInteger",
+        "bigDecimal",
+        "boolean",
+        "blob",
+        "string",
+        "timestamp",
     )
 
     aggregate_shapes = (
-       'apply', 'list', 'map', 'set', 'structure', 'union', 'resource',
-       'operation', 'service', 'trait'
+        "apply",
+        "list",
+        "map",
+        "set",
+        "structure",
+        "union",
+        "resource",
+        "operation",
+        "service",
+        "trait",
     )
 
     tokens = {
-        'root': [
-            (r'///.*$', Comment.Multiline),
-            (r'//.*$', Comment),
-            (r'@[0-9a-zA-Z\.#-]*', Name.Decorator),
-            (r'(=)', Name.Decorator),
-            (r'^(\$version)(:)(.+)',
-                bygroups(Keyword.Declaration, Name.Decorator, Name.Class)),
-            (r'^(namespace)(\s+' + identifier + r')\b',
-                bygroups(Keyword.Declaration, Name.Class)),
-            (words(simple_shapes,
-                   prefix=r'^', suffix=r'(\s+' + identifier + r')\b'),
-                bygroups(Keyword.Declaration, Name.Class)),
-            (words(aggregate_shapes,
-                   prefix=r'^', suffix=r'(\s+' + identifier + r')'),
-                bygroups(Keyword.Declaration, Name.Class)),
-            (r'^(metadata)(\s+)((?:\S+)|(?:\"[^"]+\"))(\s*)(=)',
-                bygroups(Keyword.Declaration, Whitespace, Name.Class,
-                         Whitespace, Name.Decorator)),
+        "root": [
+            (r"///.*$", Comment.Multiline),
+            (r"//.*$", Comment),
+            (r"@[0-9a-zA-Z\.#-]*", Name.Decorator),
+            (r"(=)", Name.Decorator),
+            (
+                r"^(\$version)(:)(.+)",
+                bygroups(Keyword.Declaration, Name.Decorator, Name.Class),
+            ),
+            (
+                r"^(namespace)(\s+" + identifier + r")\b",
+                bygroups(Keyword.Declaration, Name.Class),
+            ),
+            (
+                words(simple_shapes, prefix=r"^", suffix=r"(\s+" + identifier + r")\b"),
+                bygroups(Keyword.Declaration, Name.Class),
+            ),
+            (
+                words(
+                    aggregate_shapes, prefix=r"^", suffix=r"(\s+" + identifier + r")"
+                ),
+                bygroups(Keyword.Declaration, Name.Class),
+            ),
+            (
+                r'^(metadata)(\s+)((?:\S+)|(?:\"[^"]+\"))(\s*)(=)',
+                bygroups(
+                    Keyword.Declaration,
+                    Whitespace,
+                    Name.Class,
+                    Whitespace,
+                    Name.Decorator,
+                ),
+            ),
             (r"(true|false|null)", Keyword.Constant),
             (r"(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)", Number),
             (identifier + ":", Name.Label),
             (identifier, Name.Variable.Class),
-            (r'\[', Text, "#push"),
-            (r'\]', Text, "#pop"),
-            (r'\(', Text, "#push"),
-            (r'\)', Text, "#pop"),
-            (r'\{', Text, "#push"),
-            (r'\}', Text, "#pop"),
+            (r"\[", Text, "#push"),
+            (r"\]", Text, "#pop"),
+            (r"\(", Text, "#push"),
+            (r"\)", Text, "#pop"),
+            (r"\{", Text, "#push"),
+            (r"\}", Text, "#pop"),
             (r'"{3}(\\\\|\n|\\")*"{3}', String.Doc),
             (r'"(\\\\|\n|\\"|[^"])*"', String.Double),
             (r"'(\\\\|\n|\\'|[^'])*'", String.Single),
-            (r'[:,]+', Punctuation),
-            (r'\s+', Whitespace),
+            (r"[:,]+", Punctuation),
+            (r"\s+", Whitespace),
         ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smv.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smv.py
index bf97b52..ee7215e 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smv.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/smv.py
@@ -1,18 +1,17 @@
 """
-    pygments.lexers.smv
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.smv
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the SMV languages.
+Lexers for the SMV languages.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, words
-from pygments.token import Comment, Keyword, Name, Number, Operator, \
-    Punctuation, Text
+from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, Text
 
-__all__ = ['NuSMVLexer']
+__all__ = ["NuSMVLexer"]
 
 
 class NuSMVLexer(RegexLexer):
@@ -20,59 +19,145 @@ class NuSMVLexer(RegexLexer):
     Lexer for the NuSMV language.
     """
 
-    name = 'NuSMV'
-    aliases = ['nusmv']
-    filenames = ['*.smv']
+    name = "NuSMV"
+    aliases = ["nusmv"]
+    filenames = ["*.smv"]
     mimetypes = []
-    url = 'https://nusmv.fbk.eu'
-    version_added = '2.2'
+    url = "https://nusmv.fbk.eu"
+    version_added = "2.2"
 
     tokens = {
-        'root': [
+        "root": [
             # Comments
-            (r'(?s)\/\-\-.*?\-\-/', Comment),
-            (r'--.*\n', Comment),
-
+            (r"(?s)\/\-\-.*?\-\-/", Comment),
+            (r"--.*\n", Comment),
             # Reserved
-            (words(('MODULE', 'DEFINE', 'MDEFINE', 'CONSTANTS', 'VAR', 'IVAR',
-                    'FROZENVAR', 'INIT', 'TRANS', 'INVAR', 'SPEC', 'CTLSPEC',
-                    'LTLSPEC', 'PSLSPEC', 'COMPUTE', 'NAME', 'INVARSPEC',
-                    'FAIRNESS', 'JUSTICE', 'COMPASSION', 'ISA', 'ASSIGN',
-                    'CONSTRAINT', 'SIMPWFF', 'CTLWFF', 'LTLWFF', 'PSLWFF',
-                    'COMPWFF', 'IN', 'MIN', 'MAX', 'MIRROR', 'PRED',
-                    'PREDICATES'), suffix=r'(?![\w$#-])'),
-             Keyword.Declaration),
-            (r'process(?![\w$#-])', Keyword),
-            (words(('array', 'of', 'boolean', 'integer', 'real', 'word'),
-                   suffix=r'(?![\w$#-])'), Keyword.Type),
-            (words(('case', 'esac'), suffix=r'(?![\w$#-])'), Keyword),
-            (words(('word1', 'bool', 'signed', 'unsigned', 'extend', 'resize',
-                    'sizeof', 'uwconst', 'swconst', 'init', 'self', 'count',
-                    'abs', 'max', 'min'), suffix=r'(?![\w$#-])'),
-             Name.Builtin),
-            (words(('EX', 'AX', 'EF', 'AF', 'EG', 'AG', 'E', 'F', 'O', 'G',
-                    'H', 'X', 'Y', 'Z', 'A', 'U', 'S', 'V', 'T', 'BU', 'EBF',
-                    'ABF', 'EBG', 'ABG', 'next', 'mod', 'union', 'in', 'xor',
-                    'xnor'), suffix=r'(?![\w$#-])'),
-                Operator.Word),
-            (words(('TRUE', 'FALSE'), suffix=r'(?![\w$#-])'), Keyword.Constant),
-
+            (
+                words(
+                    (
+                        "MODULE",
+                        "DEFINE",
+                        "MDEFINE",
+                        "CONSTANTS",
+                        "VAR",
+                        "IVAR",
+                        "FROZENVAR",
+                        "INIT",
+                        "TRANS",
+                        "INVAR",
+                        "SPEC",
+                        "CTLSPEC",
+                        "LTLSPEC",
+                        "PSLSPEC",
+                        "COMPUTE",
+                        "NAME",
+                        "INVARSPEC",
+                        "FAIRNESS",
+                        "JUSTICE",
+                        "COMPASSION",
+                        "ISA",
+                        "ASSIGN",
+                        "CONSTRAINT",
+                        "SIMPWFF",
+                        "CTLWFF",
+                        "LTLWFF",
+                        "PSLWFF",
+                        "COMPWFF",
+                        "IN",
+                        "MIN",
+                        "MAX",
+                        "MIRROR",
+                        "PRED",
+                        "PREDICATES",
+                    ),
+                    suffix=r"(?![\w$#-])",
+                ),
+                Keyword.Declaration,
+            ),
+            (r"process(?![\w$#-])", Keyword),
+            (
+                words(
+                    ("array", "of", "boolean", "integer", "real", "word"),
+                    suffix=r"(?![\w$#-])",
+                ),
+                Keyword.Type,
+            ),
+            (words(("case", "esac"), suffix=r"(?![\w$#-])"), Keyword),
+            (
+                words(
+                    (
+                        "word1",
+                        "bool",
+                        "signed",
+                        "unsigned",
+                        "extend",
+                        "resize",
+                        "sizeof",
+                        "uwconst",
+                        "swconst",
+                        "init",
+                        "self",
+                        "count",
+                        "abs",
+                        "max",
+                        "min",
+                    ),
+                    suffix=r"(?![\w$#-])",
+                ),
+                Name.Builtin,
+            ),
+            (
+                words(
+                    (
+                        "EX",
+                        "AX",
+                        "EF",
+                        "AF",
+                        "EG",
+                        "AG",
+                        "E",
+                        "F",
+                        "O",
+                        "G",
+                        "H",
+                        "X",
+                        "Y",
+                        "Z",
+                        "A",
+                        "U",
+                        "S",
+                        "V",
+                        "T",
+                        "BU",
+                        "EBF",
+                        "ABF",
+                        "EBG",
+                        "ABG",
+                        "next",
+                        "mod",
+                        "union",
+                        "in",
+                        "xor",
+                        "xnor",
+                    ),
+                    suffix=r"(?![\w$#-])",
+                ),
+                Operator.Word,
+            ),
+            (words(("TRUE", "FALSE"), suffix=r"(?![\w$#-])"), Keyword.Constant),
             # Names
-            (r'[a-zA-Z_][\w$#-]*', Name.Variable),
-
+            (r"[a-zA-Z_][\w$#-]*", Name.Variable),
             # Operators
-            (r':=', Operator),
-            (r'[-&|+*/<>!=]', Operator),
-
+            (r":=", Operator),
+            (r"[-&|+*/<>!=]", Operator),
             # Literals
-            (r'\-?\d+\b', Number.Integer),
-            (r'0[su][bB]\d*_[01_]+', Number.Bin),
-            (r'0[su][oO]\d*_[0-7_]+', Number.Oct),
-            (r'0[su][dD]\d*_[\d_]+', Number.Decimal),
-            (r'0[su][hH]\d*_[\da-fA-F_]+', Number.Hex),
-
+            (r"\-?\d+\b", Number.Integer),
+            (r"0[su][bB]\d*_[01_]+", Number.Bin),
+            (r"0[su][oO]\d*_[0-7_]+", Number.Oct),
+            (r"0[su][dD]\d*_[\d_]+", Number.Decimal),
+            (r"0[su][hH]\d*_[\da-fA-F_]+", Number.Hex),
             # Whitespace, punctuation and the rest
-            (r'\s+', Text.Whitespace),
-            (r'[()\[\]{};?:.,]', Punctuation),
+            (r"\s+", Text.Whitespace),
+            (r"[()\[\]{};?:.,]", Punctuation),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/snobol.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/snobol.py
index bab51e9..15d8327 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/snobol.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/snobol.py
@@ -1,18 +1,26 @@
 """
-    pygments.lexers.snobol
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.snobol
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the SNOBOL language.
+Lexers for the SNOBOL language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+)
 
-__all__ = ['SnobolLexer']
+__all__ = ["SnobolLexer"]
 
 
 class SnobolLexer(RegexLexer):
@@ -25,58 +33,60 @@ class SnobolLexer(RegexLexer):
 
     name = "Snobol"
     aliases = ["snobol"]
-    filenames = ['*.snobol']
-    mimetypes = ['text/x-snobol']
-    url = 'https://www.regressive.org/snobol4'
-    version_added = '1.5'
+    filenames = ["*.snobol"]
+    mimetypes = ["text/x-snobol"]
+    url = "https://www.regressive.org/snobol4"
+    version_added = "1.5"
 
     tokens = {
         # root state, start of line
         # comments, continuation lines, and directives start in column 1
         # as do labels
-        'root': [
-            (r'\*.*\n', Comment),
-            (r'[+.] ', Punctuation, 'statement'),
-            (r'-.*\n', Comment),
-            (r'END\s*\n', Name.Label, 'heredoc'),
-            (r'[A-Za-z$][\w$]*', Name.Label, 'statement'),
-            (r'\s+', Text, 'statement'),
+        "root": [
+            (r"\*.*\n", Comment),
+            (r"[+.] ", Punctuation, "statement"),
+            (r"-.*\n", Comment),
+            (r"END\s*\n", Name.Label, "heredoc"),
+            (r"[A-Za-z$][\w$]*", Name.Label, "statement"),
+            (r"\s+", Text, "statement"),
         ],
         # statement state, line after continuation or label
-        'statement': [
-            (r'\s*\n', Text, '#pop'),
-            (r'\s+', Text),
-            (r'(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|'
-             r'REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|'
-             r'LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|'
-             r'ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])',
-             Name.Builtin),
-            (r'[A-Za-z][\w.]*', Name),
+        "statement": [
+            (r"\s*\n", Text, "#pop"),
+            (r"\s+", Text),
+            (
+                r"(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|"
+                r"REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|"
+                r"LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|"
+                r"ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])",
+                Name.Builtin,
+            ),
+            (r"[A-Za-z][\w.]*", Name),
             # ASCII equivalents of original operators
             # | for the EBCDIC equivalent, ! likewise
             # \ for EBCDIC negation
-            (r'\*\*|[?$.!%*/#+\-@|&\\=]', Operator),
+            (r"\*\*|[?$.!%*/#+\-@|&\\=]", Operator),
             (r'"[^"]*"', String),
             (r"'[^']*'", String),
             # Accept SPITBOL syntax for real numbers
             # as well as Macro SNOBOL4
-            (r'[0-9]+(?=[^.EeDd])', Number.Integer),
-            (r'[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?', Number.Float),
+            (r"[0-9]+(?=[^.EeDd])", Number.Integer),
+            (r"[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?", Number.Float),
             # Goto
-            (r':', Punctuation, 'goto'),
-            (r'[()<>,;]', Punctuation),
+            (r":", Punctuation, "goto"),
+            (r"[()<>,;]", Punctuation),
         ],
         # Goto block
-        'goto': [
-            (r'\s*\n', Text, "#pop:2"),
-            (r'\s+', Text),
-            (r'F|S', Keyword),
-            (r'(\()([A-Za-z][\w.]*)(\))',
-             bygroups(Punctuation, Name.Label, Punctuation))
+        "goto": [
+            (r"\s*\n", Text, "#pop:2"),
+            (r"\s+", Text),
+            (r"F|S", Keyword),
+            (
+                r"(\()([A-Za-z][\w.]*)(\))",
+                bygroups(Punctuation, Name.Label, Punctuation),
+            ),
         ],
         # everything after the END statement is basically one
         # big heredoc.
-        'heredoc': [
-            (r'.*\n', String.Heredoc)
-        ]
+        "heredoc": [(r".*\n", String.Heredoc)],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/solidity.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/solidity.py
index 3182a14..085fcfb 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/solidity.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/solidity.py
@@ -1,18 +1,27 @@
 """
-    pygments.lexers.solidity
-    ~~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.solidity
+~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Solidity.
+Lexers for Solidity.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, include, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
 
-__all__ = ['SolidityLexer']
+__all__ = ["SolidityLexer"]
 
 
 class SolidityLexer(RegexLexer):
@@ -20,68 +29,108 @@ class SolidityLexer(RegexLexer):
     For Solidity source code.
     """
 
-    name = 'Solidity'
-    aliases = ['solidity']
-    filenames = ['*.sol']
+    name = "Solidity"
+    aliases = ["solidity"]
+    filenames = ["*.sol"]
     mimetypes = []
-    url = 'https://soliditylang.org'
-    version_added = '2.5'
+    url = "https://soliditylang.org"
+    version_added = "2.5"
 
     datatype = (
-        r'\b(address|bool|(?:(?:bytes|hash|int|string|uint)(?:8|16|24|32|40|48|56|64'
-        r'|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208'
-        r'|216|224|232|240|248|256)?))\b'
+        r"\b(address|bool|(?:(?:bytes|hash|int|string|uint)(?:8|16|24|32|40|48|56|64"
+        r"|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208"
+        r"|216|224|232|240|248|256)?))\b"
     )
 
     tokens = {
-        'root': [
-            include('whitespace'),
-            include('comments'),
-            (r'\bpragma\s+solidity\b', Keyword, 'pragma'),
-            (r'\b(contract)(\s+)([a-zA-Z_]\w*)',
-             bygroups(Keyword, Whitespace, Name.Entity)),
-            (datatype + r'(\s+)((?:external|public|internal|private)\s+)?' +
-             r'([a-zA-Z_]\w*)',
-             bygroups(Keyword.Type, Whitespace, Keyword, Name.Variable)),
-            (r'\b(enum|event|function|struct)(\s+)([a-zA-Z_]\w*)',
-             bygroups(Keyword.Type, Whitespace, Name.Variable)),
-            (r'\b(msg|block|tx)\.([A-Za-z_][a-zA-Z0-9_]*)\b', Keyword),
-            (words((
-                'block', 'break', 'constant', 'constructor', 'continue',
-                'contract', 'do', 'else', 'external', 'false', 'for',
-                'function', 'if', 'import', 'inherited', 'internal', 'is',
-                'library', 'mapping', 'memory', 'modifier', 'msg', 'new',
-                'payable', 'private', 'public', 'require', 'return',
-                'returns', 'struct', 'suicide', 'throw', 'this', 'true',
-                'tx', 'var', 'while'), prefix=r'\b', suffix=r'\b'),
-             Keyword.Type),
-            (words(('keccak256',), prefix=r'\b', suffix=r'\b'), Name.Builtin),
+        "root": [
+            include("whitespace"),
+            include("comments"),
+            (r"\bpragma\s+solidity\b", Keyword, "pragma"),
+            (
+                r"\b(contract)(\s+)([a-zA-Z_]\w*)",
+                bygroups(Keyword, Whitespace, Name.Entity),
+            ),
+            (
+                datatype
+                + r"(\s+)((?:external|public|internal|private)\s+)?"
+                + r"([a-zA-Z_]\w*)",
+                bygroups(Keyword.Type, Whitespace, Keyword, Name.Variable),
+            ),
+            (
+                r"\b(enum|event|function|struct)(\s+)([a-zA-Z_]\w*)",
+                bygroups(Keyword.Type, Whitespace, Name.Variable),
+            ),
+            (r"\b(msg|block|tx)\.([A-Za-z_][a-zA-Z0-9_]*)\b", Keyword),
+            (
+                words(
+                    (
+                        "block",
+                        "break",
+                        "constant",
+                        "constructor",
+                        "continue",
+                        "contract",
+                        "do",
+                        "else",
+                        "external",
+                        "false",
+                        "for",
+                        "function",
+                        "if",
+                        "import",
+                        "inherited",
+                        "internal",
+                        "is",
+                        "library",
+                        "mapping",
+                        "memory",
+                        "modifier",
+                        "msg",
+                        "new",
+                        "payable",
+                        "private",
+                        "public",
+                        "require",
+                        "return",
+                        "returns",
+                        "struct",
+                        "suicide",
+                        "throw",
+                        "this",
+                        "true",
+                        "tx",
+                        "var",
+                        "while",
+                    ),
+                    prefix=r"\b",
+                    suffix=r"\b",
+                ),
+                Keyword.Type,
+            ),
+            (words(("keccak256",), prefix=r"\b", suffix=r"\b"), Name.Builtin),
             (datatype, Keyword.Type),
-            include('constants'),
-            (r'[a-zA-Z_]\w*', Text),
-            (r'[~!%^&*+=|?:<>/-]', Operator),
-            (r'[.;{}(),\[\]]', Punctuation)
+            include("constants"),
+            (r"[a-zA-Z_]\w*", Text),
+            (r"[~!%^&*+=|?:<>/-]", Operator),
+            (r"[.;{}(),\[\]]", Punctuation),
         ],
-        'comments': [
-            (r'//(\n|[\w\W]*?[^\\]\n)', Comment.Single),
-            (r'/(\\\n)?[*][\w\W]*?[*](\\\n)?/', Comment.Multiline),
-            (r'/(\\\n)?[*][\w\W]*', Comment.Multiline)
+        "comments": [
+            (r"//(\n|[\w\W]*?[^\\]\n)", Comment.Single),
+            (r"/(\\\n)?[*][\w\W]*?[*](\\\n)?/", Comment.Multiline),
+            (r"/(\\\n)?[*][\w\W]*", Comment.Multiline),
         ],
-        'constants': [
+        "constants": [
             (r'("(\\"|.)*?")', String.Double),
             (r"('(\\'|.)*?')", String.Single),
-            (r'\b0[xX][0-9a-fA-F]+\b', Number.Hex),
-            (r'\b\d+\b', Number.Decimal),
+            (r"\b0[xX][0-9a-fA-F]+\b", Number.Hex),
+            (r"\b\d+\b", Number.Decimal),
         ],
-        'pragma': [
-            include('whitespace'),
-            include('comments'),
-            (r'(\^|>=|<)(\s*)(\d+\.\d+\.\d+)',
-             bygroups(Operator, Whitespace, Keyword)),
-            (r';', Punctuation, '#pop')
+        "pragma": [
+            include("whitespace"),
+            include("comments"),
+            (r"(\^|>=|<)(\s*)(\d+\.\d+\.\d+)", bygroups(Operator, Whitespace, Keyword)),
+            (r";", Punctuation, "#pop"),
         ],
-        'whitespace': [
-            (r'\s+', Whitespace),
-            (r'\n', Whitespace)
-        ]
+        "whitespace": [(r"\s+", Whitespace), (r"\n", Whitespace)],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/soong.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/soong.py
index bbf204d..328ecb2 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/soong.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/soong.py
@@ -1,78 +1,87 @@
 """
-    pygments.lexers.soong
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.soong
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for Soong (Android.bp Blueprint) files.
+Lexers for Soong (Android.bp Blueprint) files.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, include
-from pygments.token import Comment, Name, Number, Operator, Punctuation, \
-        String, Whitespace
+from pygments.token import (
+    Comment,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Whitespace,
+)
+
+__all__ = ["SoongLexer"]
 
-__all__ = ['SoongLexer']
 
 class SoongLexer(RegexLexer):
-    name = 'Soong'
-    version_added = '2.18'
-    url = 'https://source.android.com/docs/setup/reference/androidbp'
-    aliases = ['androidbp', 'bp', 'soong']
-    filenames = ['Android.bp']
+    name = "Soong"
+    version_added = "2.18"
+    url = "https://source.android.com/docs/setup/reference/androidbp"
+    aliases = ["androidbp", "bp", "soong"]
+    filenames = ["Android.bp"]
 
     tokens = {
-        'root': [
+        "root": [
             # A variable assignment
-            (r'(\w*)(\s*)(\+?=)(\s*)',
-             bygroups(Name.Variable, Whitespace, Operator, Whitespace),
-             'assign-rhs'),
-
+            (
+                r"(\w*)(\s*)(\+?=)(\s*)",
+                bygroups(Name.Variable, Whitespace, Operator, Whitespace),
+                "assign-rhs",
+            ),
             # A top-level module
-            (r'(\w*)(\s*)(\{)',
-             bygroups(Name.Function, Whitespace, Punctuation),
-             'in-rule'),
-
+            (
+                r"(\w*)(\s*)(\{)",
+                bygroups(Name.Function, Whitespace, Punctuation),
+                "in-rule",
+            ),
             # Everything else
-            include('comments'),
-            (r'\s+', Whitespace),  # newlines okay
+            include("comments"),
+            (r"\s+", Whitespace),  # newlines okay
         ],
-        'assign-rhs': [
-            include('expr'),
-            (r'\n', Whitespace, '#pop'),
+        "assign-rhs": [
+            include("expr"),
+            (r"\n", Whitespace, "#pop"),
         ],
-        'in-list': [
-            include('expr'),
-            include('comments'),
-            (r'\s+', Whitespace),  # newlines okay in a list
-            (r',', Punctuation),
-            (r'\]', Punctuation, '#pop'),
+        "in-list": [
+            include("expr"),
+            include("comments"),
+            (r"\s+", Whitespace),  # newlines okay in a list
+            (r",", Punctuation),
+            (r"\]", Punctuation, "#pop"),
         ],
-        'in-map': [
+        "in-map": [
             # A map key
-            (r'(\w+)(:)(\s*)', bygroups(Name, Punctuation, Whitespace)),
-
-            include('expr'),
-            include('comments'),
-            (r'\s+', Whitespace),  # newlines okay in a map
-            (r',', Punctuation),
-            (r'\}', Punctuation, '#pop'),
+            (r"(\w+)(:)(\s*)", bygroups(Name, Punctuation, Whitespace)),
+            include("expr"),
+            include("comments"),
+            (r"\s+", Whitespace),  # newlines okay in a map
+            (r",", Punctuation),
+            (r"\}", Punctuation, "#pop"),
         ],
-        'in-rule': [
+        "in-rule": [
             # Just re-use map syntax
-            include('in-map'),
+            include("in-map"),
         ],
-        'comments': [
-            (r'//.*', Comment.Single),
-            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
+        "comments": [
+            (r"//.*", Comment.Single),
+            (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline),
         ],
-        'expr': [
-            (r'(true|false)\b', Name.Builtin),
-            (r'0x[0-9a-fA-F]+', Number.Hex),
-            (r'\d+', Number.Integer),
+        "expr": [
+            (r"(true|false)\b", Name.Builtin),
+            (r"0x[0-9a-fA-F]+", Number.Hex),
+            (r"\d+", Number.Integer),
             (r'".*?"', String),
-            (r'\{', Punctuation, 'in-map'),
-            (r'\[', Punctuation, 'in-list'),
-            (r'\w+', Name),
+            (r"\{", Punctuation, "in-map"),
+            (r"\[", Punctuation, "in-list"),
+            (r"\w+", Name),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sophia.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sophia.py
index 37fcec5..67d353a 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sophia.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sophia.py
@@ -1,102 +1,139 @@
 """
-    pygments.lexers.sophia
-    ~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.sophia
+~~~~~~~~~~~~~~~~~~~~~~
 
-    Lexer for Sophia.
+Lexer for Sophia.
 
-    Derived from pygments/lexers/reason.py.
+Derived from pygments/lexers/reason.py.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, include, default, words
-from pygments.token import Comment, Keyword, Name, Number, Operator, \
-    Punctuation, String, Text
+from pygments.token import (
+    Comment,
+    Keyword,
+    Name,
+    Number,
+    Operator,
+    Punctuation,
+    String,
+    Text,
+)
+
+__all__ = ["SophiaLexer"]
 
-__all__ = ['SophiaLexer']
 
 class SophiaLexer(RegexLexer):
     """
     A Sophia lexer.
     """
 
-    name = 'Sophia'
-    aliases = ['sophia']
-    filenames = ['*.aes']
+    name = "Sophia"
+    aliases = ["sophia"]
+    filenames = ["*.aes"]
     mimetypes = []
-    url = 'https://docs.aeternity.com/aesophia'
-    version_added = '2.11'
+    url = "https://docs.aeternity.com/aesophia"
+    version_added = "2.11"
 
     keywords = (
-        'contract', 'include', 'let', 'switch', 'type', 'record', 'datatype',
-        'if', 'elif', 'else', 'function', 'stateful', 'payable', 'public',
-        'entrypoint', 'private', 'indexed', 'namespace', 'interface', 'main',
-        'using', 'as', 'for', 'hiding',
+        "contract",
+        "include",
+        "let",
+        "switch",
+        "type",
+        "record",
+        "datatype",
+        "if",
+        "elif",
+        "else",
+        "function",
+        "stateful",
+        "payable",
+        "public",
+        "entrypoint",
+        "private",
+        "indexed",
+        "namespace",
+        "interface",
+        "main",
+        "using",
+        "as",
+        "for",
+        "hiding",
     )
 
-    builtins = ('state', 'put', 'abort', 'require')
+    builtins = ("state", "put", "abort", "require")
 
-    word_operators = ('mod', 'band', 'bor', 'bxor', 'bnot')
+    word_operators = ("mod", "band", "bor", "bxor", "bnot")
 
-    primitive_types = ('int', 'address', 'bool', 'bits', 'bytes', 'string',
-                       'list', 'option', 'char', 'unit', 'map', 'event',
-                       'hash', 'signature', 'oracle', 'oracle_query')
+    primitive_types = (
+        "int",
+        "address",
+        "bool",
+        "bits",
+        "bytes",
+        "string",
+        "list",
+        "option",
+        "char",
+        "unit",
+        "map",
+        "event",
+        "hash",
+        "signature",
+        "oracle",
+        "oracle_query",
+    )
 
     tokens = {
-        'escape-sequence': [
+        "escape-sequence": [
             (r'\\[\\"\'ntbr]', String.Escape),
-            (r'\\[0-9]{3}', String.Escape),
-            (r'\\x[0-9a-fA-F]{2}', String.Escape),
+            (r"\\[0-9]{3}", String.Escape),
+            (r"\\x[0-9a-fA-F]{2}", String.Escape),
         ],
-        'root': [
-            (r'\s+', Text.Whitespace),
-            (r'(true|false)\b', Keyword.Constant),
-            (r'\b([A-Z][\w\']*)(?=\s*\.)', Name.Class, 'dotted'),
-            (r'\b([A-Z][\w\']*)', Name.Function),
-            (r'//.*?\n', Comment.Single),
-            (r'\/\*(?!/)', Comment.Multiline, 'comment'),
-
-            (r'0[xX][\da-fA-F][\da-fA-F_]*', Number.Hex),
-            (r'#[\da-fA-F][\da-fA-F_]*', Name.Label),
-            (r'\d[\d_]*', Number.Integer),
-
-            (words(keywords, suffix=r'\b'), Keyword),
-            (words(builtins, suffix=r'\b'), Name.Builtin),
-            (words(word_operators, prefix=r'\b', suffix=r'\b'), Operator.Word),
-            (words(primitive_types, prefix=r'\b', suffix=r'\b'), Keyword.Type),
-
-            (r'[=!<>+\\*/:&|?~@^-]', Operator.Word),
-            (r'[.;:{}(),\[\]]', Punctuation),
-
+        "root": [
+            (r"\s+", Text.Whitespace),
+            (r"(true|false)\b", Keyword.Constant),
+            (r"\b([A-Z][\w\']*)(?=\s*\.)", Name.Class, "dotted"),
+            (r"\b([A-Z][\w\']*)", Name.Function),
+            (r"//.*?\n", Comment.Single),
+            (r"\/\*(?!/)", Comment.Multiline, "comment"),
+            (r"0[xX][\da-fA-F][\da-fA-F_]*", Number.Hex),
+            (r"#[\da-fA-F][\da-fA-F_]*", Name.Label),
+            (r"\d[\d_]*", Number.Integer),
+            (words(keywords, suffix=r"\b"), Keyword),
+            (words(builtins, suffix=r"\b"), Name.Builtin),
+            (words(word_operators, prefix=r"\b", suffix=r"\b"), Operator.Word),
+            (words(primitive_types, prefix=r"\b", suffix=r"\b"), Keyword.Type),
+            (r"[=!<>+\\*/:&|?~@^-]", Operator.Word),
+            (r"[.;:{}(),\[\]]", Punctuation),
             (r"(ak_|ok_|oq_|ct_)[\w']*", Name.Label),
             (r"[^\W\d][\w']*", Name),
-
-            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'",
-             String.Char),
+            (r"'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'", String.Char),
             (r"'.'", String.Char),
             (r"'[a-z][\w]*", Name.Variable),
-
-            (r'"', String.Double, 'string')
+            (r'"', String.Double, "string"),
         ],
-        'comment': [
-            (r'[^/*]+', Comment.Multiline),
-            (r'\/\*', Comment.Multiline, '#push'),
-            (r'\*\/', Comment.Multiline, '#pop'),
-            (r'\*', Comment.Multiline),
+        "comment": [
+            (r"[^/*]+", Comment.Multiline),
+            (r"\/\*", Comment.Multiline, "#push"),
+            (r"\*\/", Comment.Multiline, "#pop"),
+            (r"\*", Comment.Multiline),
         ],
-        'string': [
+        "string": [
             (r'[^\\"]+', String.Double),
-            include('escape-sequence'),
-            (r'\\\n', String.Double),
-            (r'"', String.Double, '#pop'),
+            include("escape-sequence"),
+            (r"\\\n", String.Double),
+            (r'"', String.Double, "#pop"),
         ],
-        'dotted': [
-            (r'\s+', Text),
-            (r'\.', Punctuation),
-            (r'[A-Z][\w\']*(?=\s*\.)', Name.Function),
-            (r'[A-Z][\w\']*', Name.Function, '#pop'),
-            (r'[a-z_][\w\']*', Name, '#pop'),
-            default('#pop'),
+        "dotted": [
+            (r"\s+", Text),
+            (r"\.", Punctuation),
+            (r"[A-Z][\w\']*(?=\s*\.)", Name.Function),
+            (r"[A-Z][\w\']*", Name.Function, "#pop"),
+            (r"[a-z_][\w\']*", Name, "#pop"),
+            default("#pop"),
         ],
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/special.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/special.py
index 524946f..745d697 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/special.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/special.py
@@ -1,11 +1,11 @@
 """
-    pygments.lexers.special
-    ~~~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.special
+~~~~~~~~~~~~~~~~~~~~~~~
 
-    Special lexers.
+Special lexers.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 import ast
@@ -14,20 +14,20 @@ from pygments.lexer import Lexer, line_re
 from pygments.token import Token, Error, Text, Generic
 from pygments.util import get_choice_opt
 
-
-__all__ = ['TextLexer', 'OutputLexer', 'RawTokenLexer']
+__all__ = ["TextLexer", "OutputLexer", "RawTokenLexer"]
 
 
 class TextLexer(Lexer):
     """
     "Null" lexer, doesn't highlight anything.
     """
-    name = 'Text only'
-    aliases = ['text']
-    filenames = ['*.txt']
-    mimetypes = ['text/plain']
+
+    name = "Text only"
+    aliases = ["text"]
+    filenames = ["*.txt"]
+    mimetypes = ["text/plain"]
     url = ""
-    version_added = ''
+    version_added = ""
 
     priority = 0.01
 
@@ -42,10 +42,11 @@ class OutputLexer(Lexer):
     """
     Simple lexer that highlights everything as ``Token.Generic.Output``.
     """
-    name = 'Text output'
-    aliases = ['output']
+
+    name = "Text output"
+    aliases = ["output"]
     url = ""
-    version_added = '2.10'
+    version_added = "2.10"
     _example = "output/output"
 
     def get_tokens_unprocessed(self, text):
@@ -65,36 +66,40 @@ class RawTokenLexer(Lexer):
         If set to ``"gz"`` or ``"bz2"``, decompress the token stream with
         the given compression algorithm before lexing (default: ``""``).
     """
-    name = 'Raw token data'
+
+    name = "Raw token data"
     aliases = []
     filenames = []
-    mimetypes = ['application/x-pygments-tokens']
-    url = 'https://pygments.org/docs/formatters/#RawTokenFormatter'
-    version_added = ''
+    mimetypes = ["application/x-pygments-tokens"]
+    url = "https://pygments.org/docs/formatters/#RawTokenFormatter"
+    version_added = ""
 
     def __init__(self, **options):
-        self.compress = get_choice_opt(options, 'compress',
-                                       ['', 'none', 'gz', 'bz2'], '')
+        self.compress = get_choice_opt(
+            options, "compress", ["", "none", "gz", "bz2"], ""
+        )
         Lexer.__init__(self, **options)
 
     def get_tokens(self, text):
         if self.compress:
             if isinstance(text, str):
-                text = text.encode('latin1')
+                text = text.encode("latin1")
             try:
-                if self.compress == 'gz':
+                if self.compress == "gz":
                     import gzip
+
                     text = gzip.decompress(text)
-                elif self.compress == 'bz2':
+                elif self.compress == "bz2":
                     import bz2
+
                     text = bz2.decompress(text)
             except OSError:
-                yield Error, text.decode('latin1')
+                yield Error, text.decode("latin1")
         if isinstance(text, bytes):
-            text = text.decode('latin1')
+            text = text.decode("latin1")
 
         # do not call Lexer.get_tokens() because stripping is not optional.
-        text = text.strip('\n') + '\n'
+        text = text.strip("\n") + "\n"
         for i, t, v in self.get_tokens_unprocessed(text):
             yield t, v
 
@@ -102,19 +107,19 @@ class RawTokenLexer(Lexer):
         length = 0
         for match in line_re.finditer(text):
             try:
-                ttypestr, val = match.group().rstrip().split('\t', 1)
+                ttypestr, val = match.group().rstrip().split("\t", 1)
                 ttype = _ttype_cache.get(ttypestr)
                 if not ttype:
                     ttype = Token
-                    ttypes = ttypestr.split('.')[1:]
+                    ttypes = ttypestr.split(".")[1:]
                     for ttype_ in ttypes:
                         if not ttype_ or not ttype_[0].isupper():
-                            raise ValueError('malformed token name')
+                            raise ValueError("malformed token name")
                         ttype = getattr(ttype, ttype_)
                     _ttype_cache[ttypestr] = ttype
                 val = ast.literal_eval(val)
                 if not isinstance(val, str):
-                    raise ValueError('expected str')
+                    raise ValueError("expected str")
             except (SyntaxError, ValueError):
                 val = match.group()
                 ttype = Error
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/spice.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/spice.py
index 9d2b1a1..c193e13 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/spice.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/spice.py
@@ -1,70 +1,138 @@
 """
-    pygments.lexers.spice
-    ~~~~~~~~~~~~~~~~~~~~~
+pygments.lexers.spice
+~~~~~~~~~~~~~~~~~~~~~
 
-    Lexers for the Spice programming language.
+Lexers for the Spice programming language.
 
-    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
+:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
+:license: BSD, see LICENSE for details.
 """
 
 from pygments.lexer import RegexLexer, bygroups, words
-from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
-    Number, Punctuation, Whitespace
+from pygments.token import (
+    Text,
+    Comment,
+    Operator,
+    Keyword,
+    Name,
+    String,
+    Number,
+    Punctuation,
+    Whitespace,
+)
 
-__all__ = ['SpiceLexer']
+__all__ = ["SpiceLexer"]
 
 
 class SpiceLexer(RegexLexer):
     """
     For Spice source.
     """
-    name = 'Spice'
-    url = 'https://www.spicelang.com'
-    filenames = ['*.spice']
-    aliases = ['spice', 'spicelang']
-    mimetypes = ['text/x-spice']
-    version_added = '2.11'
+
+    name = "Spice"
+    url = "https://www.spicelang.com"
+    filenames = ["*.spice"]
+    aliases = ["spice", "spicelang"]
+    mimetypes = ["text/x-spice"]
+    version_added = "2.11"
 
     tokens = {
-        'root': [
-            (r'\n', Whitespace),
-            (r'\s+', Whitespace),
-            (r'\\\n', Text),
+        "root": [
+            (r"\n", Whitespace),
+            (r"\s+", Whitespace),
+            (r"\\\n", Text),
             # comments
-            (r'//(.*?)\n', Comment.Single),
-            (r'/(\\\n)?[*]{2}(.|\n)*?[*](\\\n)?/', String.Doc),
-            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
+            (r"//(.*?)\n", Comment.Single),
+            (r"/(\\\n)?[*]{2}(.|\n)*?[*](\\\n)?/", String.Doc),
+            (r"/(\\\n)?[*](.|\n)*?[*](\\\n)?/", Comment.Multiline),
             # keywords
-            (r'(import|as)\b', Keyword.Namespace),
-            (r'(f|p|type|struct|interface|enum|alias|operator)\b', Keyword.Declaration),
-            (words(('if', 'else', 'switch', 'case', 'default', 'for', 'foreach', 'do',
-                    'while', 'break', 'continue', 'fallthrough', 'return', 'assert',
-                    'unsafe', 'ext'), suffix=r'\b'), Keyword),
-            (words(('const', 'signed', 'unsigned', 'inline', 'public', 'heap', 'compose'),
-                   suffix=r'\b'), Keyword.Pseudo),
-            (words(('new', 'yield', 'stash', 'pick', 'sync', 'class'), suffix=r'\b'),
-                   Keyword.Reserved),
-            (r'(true|false|nil)\b', Keyword.Constant),
-            (words(('double', 'int', 'short', 'long', 'byte', 'char', 'string',
-                    'bool', 'dyn'), suffix=r'\b'), Keyword.Type),
-            (words(('printf', 'sizeof', 'alignof', 'len', 'panic'), suffix=r'\b(\()'),
-             bygroups(Name.Builtin, Punctuation)),
+            (r"(import|as)\b", Keyword.Namespace),
+            (r"(f|p|type|struct|interface|enum|alias|operator)\b", Keyword.Declaration),
+            (
+                words(
+                    (
+                        "if",
+                        "else",
+                        "switch",
+                        "case",
+                        "default",
+                        "for",
+                        "foreach",
+                        "do",
+                        "while",
+                        "break",
+                        "continue",
+                        "fallthrough",
+                        "return",
+                        "assert",
+                        "unsafe",
+                        "ext",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword,
+            ),
+            (
+                words(
+                    (
+                        "const",
+                        "signed",
+                        "unsigned",
+                        "inline",
+                        "public",
+                        "heap",
+                        "compose",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Pseudo,
+            ),
+            (
+                words(("new", "yield", "stash", "pick", "sync", "class"), suffix=r"\b"),
+                Keyword.Reserved,
+            ),
+            (r"(true|false|nil)\b", Keyword.Constant),
+            (
+                words(
+                    (
+                        "double",
+                        "int",
+                        "short",
+                        "long",
+                        "byte",
+                        "char",
+                        "string",
+                        "bool",
+                        "dyn",
+                    ),
+                    suffix=r"\b",
+                ),
+                Keyword.Type,
+            ),
+            (
+                words(
+                    ("printf", "sizeof", "alignof", "len", "panic"), suffix=r"\b(\()"
+                ),
+                bygroups(Name.Builtin, Punctuation),
+            ),
             # numeric literals
-            (r'[-]?[0-9]*[.][0-9]+([eE][+-]?[0-9]+)?', Number.Double),
-            (r'0[bB][01]+[slu]?', Number.Bin),
-            (r'0[oO][0-7]+[slu]?', Number.Oct),
-            (r'0[xXhH][0-9a-fA-F]+[slu]?', Number.Hex),
-            (r'(0[dD])?[0-9]+[slu]?', Number.Integer),
+            (r"[-]?[0-9]*[.][0-9]+([eE][+-]?[0-9]+)?", Number.Double),
+            (r"0[bB][01]+[slu]?", Number.Bin),
+            (r"0[oO][0-7]+[slu]?", Number.Oct),
+            (r"0[xXhH][0-9a-fA-F]+[slu]?", Number.Hex),
+            (r"(0[dD])?[0-9]+[slu]?", Number.Integer),
             # string literal
             (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
             # char literal
-            (r'\'(\\\\|\\[^\\]|[^\'\\])\'', String.Char),
+            (r"\'(\\\\|\\[^\\]|[^\'\\])\'", String.Char),
             # tokens
-            (r'<<=|>>=|<<|>>|<=|>=|\+=|-=|\*=|/=|\%=|\|=|&=|\^=|&&|\|\||&|\||'
-             r'\+\+|--|\%|\^|\~|==|!=|->|::|[.]{3}|#!|#|[+\-*/&]', Operator),
-            (r'[|<>=!()\[\]{}.,;:\?]', Punctuation),
+            (
+                r"<<=|>>=|<<|>>|<=|>=|\+=|-=|\*=|/=|\%=|\|=|&=|\^=|&&|\|\||&|\||"
+                r"\+\+|--|\%|\^|\~|==|!=|->|::|[.]{3}|#!|#|[+\-*/&]",
+                Operator,
+            ),
+            (r"[|<>=!()\[\]{}.,;:\?]", Punctuation),
             # identifiers
-            (r'[^\W\d]\w*', Name.Other),
+            (r"[^\W\d]\w*", Name.Other),
         ]
     }
diff --git a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sql.py b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sql.py
index d3e6f17..1afc886 100644
--- a/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sql.py
+++ b/PPE2/.venv/lib/python3.12/site-packages/pygments/lexers/sql.py
@@ -1,43 +1,43 @@
 """
-    pygments.lexers.sql
-    ~~~~~~~~~~~~~~~~~~~
+pygments.lexers.sql
+~~~~~~~~~~~~~~~~~~~
 
-    Lexers for various SQL dialects and related interactive sessions.
+Lexers for various SQL dialects and related interactive sessions.
 
-    Postgres specific lexers:
+Postgres specific lexers:
 
-    `PostgresLexer`
-        A SQL lexer for the PostgreSQL dialect. Differences w.r.t. the SQL
-        lexer are:
+`PostgresLexer`
+    A SQL lexer for the PostgreSQL dialect. Differences w.r.t. the SQL
+    lexer are:
 
-        - keywords and data types list parsed from the PG docs (run the
-          `_postgres_builtins` module to update them);
-        - Content of $-strings parsed using a specific lexer, e.g. the content
-          of a PL/Python function is parsed using the Python lexer;
-        - parse PG specific constructs: E-strings, $-strings, U&-strings,
-          different operators and punctuation.
+    - keywords and data types list parsed from the PG docs (run the
+      `_postgres_builtins` module to update them);
+    - Content of $-strings parsed using a specific lexer, e.g. the content
+      of a PL/Python function is parsed using the Python lexer;
+    - parse PG specific constructs: E-strings, $-strings, U&-strings,
+      different operators and punctuation.
 
-    `PlPgsqlLexer`
-        A lexer for the PL/pgSQL language. Adds a few specific construct on
-        top of the PG SQL lexer (such as <

": "\U0001d4ab", + "\\": "\U0001d4ac", + "\\": "\U0000211b", + "\\": "\U0001d4ae", + "\\": "\U0001d4af", + "\\": "\U0001d4b0", + "\\": "\U0001d4b1", + "\\": "\U0001d4b2", + "\\": "\U0001d4b3", + "\\": "\U0001d4b4", + "\\": "\U0001d4b5", + "\\": "\U0001d5ba", + "\\": "\U0001d5bb", + "\\": "\U0001d5bc", + "\\": "\U0001d5bd", + "\\": "\U0001d5be", + "\\": "\U0001d5bf", + "\\": "\U0001d5c0", + "\\": "\U0001d5c1", + "\\": "\U0001d5c2", + "\\": "\U0001d5c3", + "\\": "\U0001d5c4", + "\\": "\U0001d5c5", + "\\": "\U0001d5c6", + "\\": "\U0001d5c7", + "\\": "\U0001d5c8", + "\\

' : '\U0001d4ab', - '\\' : '\U0001d4ac', - '\\' : '\U0000211b', - '\\' : '\U0001d4ae', - '\\' : '\U0001d4af', - '\\' : '\U0001d4b0', - '\\' : '\U0001d4b1', - '\\' : '\U0001d4b2', - '\\' : '\U0001d4b3', - '\\' : '\U0001d4b4', - '\\' : '\U0001d4b5', - '\\' : '\U0001d5ba', - '\\' : '\U0001d5bb', - '\\' : '\U0001d5bc', - '\\' : '\U0001d5bd', - '\\' : '\U0001d5be', - '\\' : '\U0001d5bf', - '\\' : '\U0001d5c0', - '\\' : '\U0001d5c1', - '\\' : '\U0001d5c2', - '\\' : '\U0001d5c3', - '\\' : '\U0001d5c4', - '\\' : '\U0001d5c5', - '\\' : '\U0001d5c6', - '\\' : '\U0001d5c7', - '\\' : '\U0001d5c8', - '\\