From a453a8ab7a3ded8df66b5c553fb313eb7ce9bdaa Mon Sep 17 00:00:00 2001 From: CI Date: Mon, 15 Jan 2024 02:40:55 +0000 Subject: [PATCH] Snyk auto fix --- commons/requirements.txt | 1 + doc/poetry.lock | 69 ++++++++++++++++++++++++++++++++---- doc/pyproject.toml | 1 + docker/config/poetry.lock | 28 ++++++++++++--- docker/config/pyproject.toml | 1 + geoportal/requirements.txt | 1 + 6 files changed, 90 insertions(+), 11 deletions(-) diff --git a/commons/requirements.txt b/commons/requirements.txt index d10a6e8e87..d4859496d0 100644 --- a/commons/requirements.txt +++ b/commons/requirements.txt @@ -6,3 +6,4 @@ sqlalchemy transaction zope.event setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability +jinja2>=3.1.3 # not directly required, pinned by Snyk to avoid a vulnerability diff --git a/doc/poetry.lock b/doc/poetry.lock index 8aa61b5aa8..c1faa02449 100644 --- a/doc/poetry.lock +++ b/doc/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.16" description = "A light, configurable Sphinx theme" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -15,6 +16,7 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -33,6 +35,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.11.0" description = "Internationalization utilities" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -47,6 +50,7 @@ pytz = ">=2015.7" name = "bottle" version = "0.12.25" description = "Fast and simple WSGI-framework for small web-applications." +category = "main" optional = false python-versions = "*" files = [ @@ -58,6 +62,7 @@ files = [ name = "c2cwsgiutils" version = "5.2.3" description = "Common utilities for Camptocamp WSGI applications" +category = "main" optional = false python-versions = ">=3.8,<3.12" files = [ @@ -83,6 +88,7 @@ test-images = ["scikit-image"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -94,6 +100,7 @@ files = [ name = "charset-normalizer" version = "3.0.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = "*" files = [ @@ -191,6 +198,7 @@ files = [ name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -202,6 +210,7 @@ files = [ name = "docutils" version = "0.19" description = "Docutils -- Python Documentation Utilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -213,6 +222,7 @@ files = [ name = "hupper" version = "1.12" description = "Integrated process monitor for developing and reloading daemons." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -228,6 +238,7 @@ testing = ["mock", "pytest", "pytest-cov", "watchdog"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -239,6 +250,7 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -248,13 +260,14 @@ files = [ [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -267,6 +280,7 @@ i18n = ["Babel (>=2.7)"] name = "jsonpointer" version = "2.3" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -278,6 +292,7 @@ files = [ name = "jsonschema" version = "4.19.1" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -299,6 +314,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -313,6 +329,7 @@ referencing = ">=0.28.0" name = "mako" version = "1.2.4" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -332,6 +349,7 @@ testing = ["pytest"] name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -391,6 +409,7 @@ files = [ name = "numpy" version = "1.26.0" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = "<3.13,>=3.9" files = [ @@ -432,6 +451,7 @@ files = [ name = "packaging" version = "23.0" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -443,6 +463,7 @@ files = [ name = "pastedeploy" version = "3.0.1" description = "Load, configure, and compose WSGI applications and servers" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -459,6 +480,7 @@ testing = ["Paste", "pytest", "pytest-cov"] name = "pillow" version = "10.0.1" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -526,6 +548,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "plaster" version = "1.1.2" description = "A loader interface around multiple config file formats." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -541,6 +564,7 @@ testing = ["pytest", "pytest-cov"] name = "plaster-pastedeploy" version = "1.0.1" description = "A loader implementing the PasteDeploy syntax to be used by plaster." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -559,6 +583,7 @@ testing = ["pytest", "pytest-cov"] name = "pygments" version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -573,6 +598,7 @@ plugins = ["importlib-metadata"] name = "pyproj" version = "3.6.1" description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -612,6 +638,7 @@ certifi = "*" name = "pyramid" version = "2.0.2" description = "The Pyramid Web Framework, a Pylons project" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -638,6 +665,7 @@ testing = ["coverage", "pytest (>=5.4.2)", "pytest-cov", "webtest (>=1.3.1)", "z name = "pyramid-mako" version = "1.1.0" description = "Mako template bindings for the Pyramid web framework" +category = "main" optional = false python-versions = "*" files = [ @@ -657,6 +685,7 @@ testing = ["WebTest (>=1.3.1)", "coverage", "nose"] name = "pytz" version = "2022.7.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -668,6 +697,7 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -717,6 +747,7 @@ files = [ name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -732,6 +763,7 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -753,6 +785,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rpds-py" version = "0.10.3" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -859,6 +892,7 @@ files = [ name = "scipy" version = "1.11.2" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.13,>=3.9" files = [ @@ -901,6 +935,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "setuptools" version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -917,6 +952,7 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar name = "shapely" version = "2.0.1" description = "Manipulation and analysis of geometric objects" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -964,13 +1000,14 @@ files = [ numpy = ">=1.14" [package.extras] -docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] +docs = ["matplotlib", "numpydoc (>=1.1.0,<1.2.0)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] test = ["pytest", "pytest-cov"] [[package]] name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "main" optional = false python-versions = "*" files = [ @@ -982,6 +1019,7 @@ files = [ name = "sphinx" version = "6.1.3" description = "Python documentation generator" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1016,6 +1054,7 @@ test = ["cython", "html5lib", "pytest (>=4.6)"] name = "sphinx-argparse" version = "0.4.0" description = "A sphinx extension that automatically documents argparse commands and options" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1033,6 +1072,7 @@ markdown = ["CommonMark (>=0.5.6)"] name = "sphinx-jsonschema" version = "1.19.1" description = "Sphinx extension to display JSON Schema" +category = "main" optional = false python-versions = "*" files = [ @@ -1049,6 +1089,7 @@ requests = "*" name = "sphinx-prompt" version = "1.5.0" description = "Sphinx directive to add unselectable prompt" +category = "main" optional = false python-versions = "*" files = [ @@ -1063,6 +1104,7 @@ Sphinx = "*" name = "sphinx-substitution-extensions" version = "2022.2.16" description = "Extensions for Sphinx which allow for substitutions." +category = "main" optional = false python-versions = "*" files = [ @@ -1083,6 +1125,7 @@ prompt = ["sphinx-prompt (>=0.1)"] name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1098,6 +1141,7 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1113,6 +1157,7 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1128,6 +1173,7 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1142,6 +1188,7 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-mermaid" version = "0.7.1" description = "Mermaid diagrams in yours Sphinx powered docs" +category = "main" optional = false python-versions = "*" files = [ @@ -1153,6 +1200,7 @@ files = [ name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1168,6 +1216,7 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1183,6 +1232,7 @@ test = ["pytest"] name = "tilecloud" version = "1.10.0" description = "Tools for managing tiles" +category = "main" optional = false python-versions = ">=3.8,<3.11" files = [ @@ -1208,6 +1258,7 @@ wsgi = ["pyramid"] name = "tilecloud-chain" version = "1.17.4" description = "Tools to generate tiles from WMS or Mapnik, to S3, Berkeley DB, MBTiles, or local filesystem in WMTS layout using Amazon cloud services." +category = "main" optional = false python-versions = "*" files = [ @@ -1227,6 +1278,7 @@ tilecloud = ">=1.3.0" name = "translationstring" version = "1.4" description = "Utility library for i18n relied on by various Repoze and Pyramid packages" +category = "main" optional = false python-versions = "*" files = [ @@ -1241,6 +1293,7 @@ docs = ["Sphinx (>=1.3.1)", "docutils", "pylons-sphinx-themes"] name = "urllib3" version = "1.26.18" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -1257,6 +1310,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "venusian" version = "3.0.0" description = "A library for deferring decorator actions" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1272,6 +1326,7 @@ testing = ["coverage", "pytest", "pytest-cov"] name = "webob" version = "1.8.7" description = "WSGI request and response object" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" files = [ @@ -1287,6 +1342,7 @@ testing = ["coverage", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] name = "zope-deprecation" version = "5.0" description = "Zope Deprecation Infrastructure" +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -1305,6 +1361,7 @@ test = ["zope.testrunner"] name = "zope-interface" version = "6.0" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1351,4 +1408,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.11" -content-hash = "abf97ee7dac211d6b86a0745cf5c02d5b7249947896527ada0092624ba57b7ba" +content-hash = "fb7943681fade016b576aba7bccf65e55012f674c6adaf02e0f782e6de52348d" diff --git a/doc/pyproject.toml b/doc/pyproject.toml index dc12e727d8..3160055a2b 100644 --- a/doc/pyproject.toml +++ b/doc/pyproject.toml @@ -26,3 +26,4 @@ tilecloud-chain = "1.17.4" requests = "2.31.0" certifi = "2023.7.22" urllib3 = "1.26.18" +jinja2 = "3.1.3" diff --git a/docker/config/poetry.lock b/docker/config/poetry.lock index ccd602beeb..2e0995f92b 100644 --- a/docker/config/poetry.lock +++ b/docker/config/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "attrs" version = "22.2.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -22,6 +23,7 @@ tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy name = "bottle" version = "0.12.23" description = "Fast and simple WSGI-framework for small web-applications." +category = "main" optional = false python-versions = "*" files = [ @@ -33,6 +35,7 @@ files = [ name = "c2c-template" version = "2.3.0" description = "Vars collector and template runner." +category = "main" optional = false python-versions = "*" files = [ @@ -50,6 +53,7 @@ pyyaml-include = "*" name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -61,6 +65,7 @@ files = [ name = "click" version = "8.1.3" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -75,6 +80,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +category = "main" optional = false python-versions = "*" files = [ @@ -92,6 +98,7 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "cligj" version = "0.7.2" description = "Click params for commmand line interfaces to GeoJSON" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4" files = [ @@ -109,6 +116,7 @@ test = ["pytest-cov"] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -120,6 +128,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -131,6 +140,7 @@ files = [ name = "fiona" version = "1.9.5" description = "Fiona reads and writes spatial data files" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -177,13 +187,14 @@ test = ["Fiona[s3]", "pytest (>=7)", "pytest-cov", "pytz"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -196,6 +207,7 @@ i18n = ["Babel (>=2.7)"] name = "lxml" version = "4.9.4" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -304,6 +316,7 @@ source = ["Cython (==0.29.37)"] name = "mako" version = "1.2.4" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -323,6 +336,7 @@ testing = ["pytest"] name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -382,6 +396,7 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -431,6 +446,7 @@ files = [ name = "pyyaml-include" version = "1.3" description = "Extending PyYAML with a custom constructor for including YAML files within YAML files" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -449,6 +465,7 @@ toml = ["toml"] name = "setuptools" version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -465,6 +482,7 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -475,4 +493,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.11" -content-hash = "d2d5ff8c025d1bae7a88a5174f73a44e5ad3b18a6fbcfa68b02bc069243bf344" +content-hash = "176c32a6c188f739ce05ffae0c850b1f8a10e64ce10dd8a00756ac2d89f9371f" diff --git a/docker/config/pyproject.toml b/docker/config/pyproject.toml index 90b8eb8447..f5c713d747 100644 --- a/docker/config/pyproject.toml +++ b/docker/config/pyproject.toml @@ -11,3 +11,4 @@ fiona = "1.9.5" defusedxml = "0.7.1" lxml = "4.9.4" certifi = "2023.7.22" +jinja2 = "3.1.3" diff --git a/geoportal/requirements.txt b/geoportal/requirements.txt index ccf814d519..24136c0ebb 100644 --- a/geoportal/requirements.txt +++ b/geoportal/requirements.txt @@ -34,3 +34,4 @@ certifi>=2022.12.7 # not directly required, pinned by Snyk to avoid a vulnerabil requests>=2.31.0 # not directly required, pinned by Snyk to avoid a vulnerability pygments>=2.15.0 # not directly required, pinned by Snyk to avoid a vulnerability urllib3>=1.26.17 # not directly required, pinned by Snyk to avoid a vulnerability +jinja2>=3.1.3 # not directly required, pinned by Snyk to avoid a vulnerability