diff --git a/pywebdriver/__init__.py b/pywebdriver/__init__.py index ac5d2b43..82186471 100644 --- a/pywebdriver/__init__.py +++ b/pywebdriver/__init__.py @@ -7,9 +7,15 @@ import gettext import logging.config import os +import sys from configparser import ConfigParser from locale import getdefaultlocale +if sys.version_info >= (3, 8): + from importlib import metadata as importlib_metadata +else: # Python < 3.8 + import importlib_metadata + # Librairies Imports from flask import Flask from flask_babel import Babel @@ -50,6 +56,17 @@ app, resources={r"/*": {"origins": cors_origins, "headers": ["Content-Type"]}} ) +try: + version = importlib_metadata.version("pywebdriver") +except importlib_metadata.PackageNotFoundError: + version = "unknown" + + +@app.context_processor +def inject_pywebdriver_version(): + return {"pywebdriver_version": version} + + from . import plugins # noqa: E402 from . import views # noqa: E402 @@ -82,8 +99,6 @@ if config.has_option("flask", "sslcert"): sslcert = config.get("flask", "sslcert") if sslcert: - import sys - if not config.has_option("flask", "sslkey"): print("If you want SSL, you must also provide the sslkey") sys.exit(-1) diff --git a/pywebdriver/templates/layout.html b/pywebdriver/templates/layout.html index 5ce2542b..ff31d7ca 100644 --- a/pywebdriver/templates/layout.html +++ b/pywebdriver/templates/layout.html @@ -56,6 +56,9 @@ {{_('System')}} +
diff --git a/test-scripts/telium-test.py b/test-scripts/telium-test.py index 8a160100..4a9ec9cd 100644 --- a/test-scripts/telium-test.py +++ b/test-scripts/telium-test.py @@ -1,4 +1,11 @@ #!/usr/bin/env python3 +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "pypostelium>=0.0.5", +# ] +# /// + # Copyright (C) 2014-Today Akretion (http://www.akretion.com). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). """ diff --git a/windows/pywebdriver.spec b/windows/pywebdriver.spec index c3ec4168..f57c9764 100644 --- a/windows/pywebdriver.spec +++ b/windows/pywebdriver.spec @@ -1,3 +1,5 @@ +from PyInstaller.utils.hooks import copy_metadata + block_cipher = None a = Analysis( @@ -16,7 +18,10 @@ a = Analysis( ("..\\pywebdriver\\static\\js\\*", "pywebdriver\\static\\js"), ("..\\pywebdriver\\translations\\*", "pywebdriver\\translations"), ("..\\pywebdriver\\translations\\fr", "pywebdriver\\translations\\fr"), - ], + ] + # so importlib.metadata.version("pywebdriver") works in the frozen exe + # (PyInstaller doesn't bundle .dist-info metadata by default) + + copy_metadata("pywebdriver"), hiddenimports=[ "pywebdriver.plugins.cups_driver", "pywebdriver.plugins.display_driver",