aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/matplotlib/py3
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-04-11 17:06:57 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-04-11 17:23:45 +0300
commit9b6896144521146a81c633555dd67ba846d5a98f (patch)
tree07253fcbb3ba2e7970caf4d5a10553ae37907bc7 /contrib/python/matplotlib/py3
parentafe9a2e8d0bd9c3e6c61ca56cb40ef9f108cfcd3 (diff)
downloadydb-9b6896144521146a81c633555dd67ba846d5a98f.tar.gz
Intermediate changes
Diffstat (limited to 'contrib/python/matplotlib/py3')
-rw-r--r--contrib/python/matplotlib/py3/matplotlib/backends/backend_webagg.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/contrib/python/matplotlib/py3/matplotlib/backends/backend_webagg.py b/contrib/python/matplotlib/py3/matplotlib/backends/backend_webagg.py
index 14c0b525fb..030ab8519b 100644
--- a/contrib/python/matplotlib/py3/matplotlib/backends/backend_webagg.py
+++ b/contrib/python/matplotlib/py3/matplotlib/backends/backend_webagg.py
@@ -19,6 +19,10 @@ import random
import sys
import signal
import threading
+import tempfile
+import os
+
+from library.python.resource import iteritems
try:
import tornado
@@ -177,12 +181,14 @@ class WebAggApplication(tornado.web.Application):
assert url_prefix[0] == '/' and url_prefix[-1] != '/', \
'url_prefix must start with a "/" and not end with one.'
+ self._store_resources()
+ package_resources_abspath = os.path.join(self._stored_package_path, core.FigureManagerWebAgg.get_static_file_path())
super().__init__(
[
# Static files for the CSS and JS
(url_prefix + r'/_static/(.*)',
tornado.web.StaticFileHandler,
- {'path': core.FigureManagerWebAgg.get_static_file_path()}),
+ {'path': package_resources_abspath}),
# Static images for the toolbar
(url_prefix + r'/_images/(.*)',
@@ -210,7 +216,19 @@ class WebAggApplication(tornado.web.Application):
(url_prefix + r'/([0-9]+)/download.([a-z0-9.]+)',
self.Download),
],
- template_path=core.FigureManagerWebAgg.get_static_file_path())
+ template_path=package_resources_abspath)
+
+ def _store_resources(self):
+ self._stored_package_dir = tempfile.TemporaryDirectory()
+ self._stored_package_path = self._stored_package_dir.name
+ package_path = os.path.join(*"contrib/python/matplotlib/py3/".split("/"))
+ for key, data in iteritems(prefix="resfs/file/" + package_path, strip_prefix=True):
+ path = os.path.join(self._stored_package_path, *os.path.split(package_path), *os.path.split(key))
+ dir = os.path.dirname(path)
+ if not os.path.exists(dir):
+ os.makedirs(dir)
+ with open(path, "wb") as file:
+ file.write(data)
@classmethod
def initialize(cls, url_prefix='', port=None, address=None):