diff options
| author | maxim-yurchuk <[email protected]> | 2024-10-09 12:29:46 +0300 |
|---|---|---|
| committer | maxim-yurchuk <[email protected]> | 2024-10-09 13:14:22 +0300 |
| commit | 9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80 (patch) | |
| tree | a8fb3181d5947c0d78cf402aa56e686130179049 /contrib/python/Flask/py2 | |
| parent | a44b779cd359f06c3ebbef4ec98c6b38609d9d85 (diff) | |
publishFullContrib: true for ydb
<HIDDEN_URL>
commit_hash:c82a80ac4594723cebf2c7387dec9c60217f603e
Diffstat (limited to 'contrib/python/Flask/py2')
| -rw-r--r-- | contrib/python/Flask/py2/patches/01-arcadia.patch | 67 | ||||
| -rw-r--r-- | contrib/python/Flask/py2/patches/02-fix-metadata.patch | 17 |
2 files changed, 84 insertions, 0 deletions
diff --git a/contrib/python/Flask/py2/patches/01-arcadia.patch b/contrib/python/Flask/py2/patches/01-arcadia.patch new file mode 100644 index 00000000000..a48070b78b8 --- /dev/null +++ b/contrib/python/Flask/py2/patches/01-arcadia.patch @@ -0,0 +1,67 @@ +--- contrib/python/Flask/py2/flask/helpers.py (index) ++++ contrib/python/Flask/py2/flask/helpers.py (working tree) +@@ -21,7 +21,7 @@ from threading import RLock + from time import time + from zlib import adler32 + +-from jinja2 import FileSystemLoader ++from jinja2 import ChoiceLoader, FileSystemLoader, ResourceLoader + from werkzeug.datastructures import Headers + from werkzeug.exceptions import BadRequest + from werkzeug.exceptions import NotFound +@@ -974,6 +974,13 @@ class _PackageBoundObject(object): + + def __init__(self, import_name, template_folder=None, root_path=None): + self.import_name = import_name ++ ++ package_name = import_name ++ self.module_loader = pkgutil.find_loader(import_name) ++ if self.module_loader and not self.module_loader.is_package(import_name): ++ package_name = package_name.rsplit('.', 1)[0] ++ self._builtin_resource_prefix = package_name.replace('.', '/') ++ + self.template_folder = template_folder + + if root_path is None: +@@ -1041,7 +1048,10 @@ class _PackageBoundObject(object): + .. versionadded:: 0.5 + """ + if self.template_folder is not None: +- return FileSystemLoader(os.path.join(self.root_path, self.template_folder)) ++ return ChoiceLoader([ ++ FileSystemLoader(os.path.join(self.root_path, self.template_folder)), ++ ResourceLoader(os.path.join(self._builtin_resource_prefix, self.template_folder), self.module_loader), ++ ]) + + def get_send_file_max_age(self, filename): + """Provides default cache_timeout for the :func:`send_file` functions. +@@ -1080,9 +1090,26 @@ class _PackageBoundObject(object): + # Ensure get_send_file_max_age is called in all cases. + # Here, we ensure get_send_file_max_age is called for Blueprints. + cache_timeout = self.get_send_file_max_age(filename) +- return send_from_directory( +- self.static_folder, filename, cache_timeout=cache_timeout +- ) ++ try: ++ return send_from_directory( ++ self.static_folder, filename, cache_timeout=cache_timeout ++ ) ++ except NotFound: ++ if self.module_loader is None: ++ raise ++ from io import BytesIO ++ path = os.path.join(self._builtin_resource_prefix, self._static_folder, filename) ++ try: ++ data = self.module_loader.get_data(path) ++ except IOError: ++ raise NotFound ++ mimetype = mimetypes.guess_type(filename)[0] ++ fobj = BytesIO(data) ++ # Note: in case of uWSGI, might also need to set ++ # `wsgi-disable-file-wrapper = true` ++ # because, otherwise, uwsgi expects a `fileno` on it. ++ return send_file(fobj, mimetype=mimetype, ++ cache_timeout=cache_timeout, conditional=True) + + def open_resource(self, resource, mode="rb"): + """Opens a resource from the application's resource folder. To see diff --git a/contrib/python/Flask/py2/patches/02-fix-metadata.patch b/contrib/python/Flask/py2/patches/02-fix-metadata.patch new file mode 100644 index 00000000000..0c7d27d9da7 --- /dev/null +++ b/contrib/python/Flask/py2/patches/02-fix-metadata.patch @@ -0,0 +1,17 @@ +--- contrib/python/Flask/py2/.dist-info/METADATA (index) ++++ contrib/python/Flask/py2/.dist-info/METADATA (working tree) +@@ -33,10 +33,10 @@ Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application + Classifier: Topic :: Software Development :: Libraries :: Application Frameworks + Classifier: Topic :: Software Development :: Libraries :: Python Modules + Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* +-Requires-Dist: Werkzeug (<2.0,>=0.15) +-Requires-Dist: Jinja2 (<3.0,>=2.10.1) +-Requires-Dist: itsdangerous (<2.0,>=0.24) +-Requires-Dist: click (<8.0,>=5.1) ++Requires-Dist: Werkzeug (<3.0,>=0.15) ++Requires-Dist: Jinja2 (<4.0,>=2.10.1) ++Requires-Dist: itsdangerous (<3.0,>=0.24) ++Requires-Dist: click (<9.0,>=5.1) + Provides-Extra: dev + Requires-Dist: pytest ; extra == 'dev' + Requires-Dist: coverage ; extra == 'dev' |
