MCPcopy Index your code
hub / github.com/plotly/dash / _on_assets_change

Method _on_assets_change

dash/dash.py:2233–2282  ·  view source on GitHub ↗
(self, filename, modified, deleted)

Source from the content-addressed store, hash-verified

2231
2232 # noinspection PyProtectedMember
2233 def _on_assets_change(self, filename, modified, deleted):
2234 _reload = self._hot_reload
2235 with _reload.lock:
2236 _reload.hard = True
2237 _reload.hash = generate_hash()
2238
2239 if self.config.assets_folder in filename:
2240 asset_path = (
2241 os.path.relpath(
2242 filename,
2243 os.path.commonprefix([self.config.assets_folder, filename]),
2244 )
2245 .replace("\\", "/")
2246 .lstrip("/")
2247 )
2248
2249 _reload.changed_assets.append(
2250 {
2251 "url": self.get_asset_url(asset_path),
2252 "modified": int(modified),
2253 "is_css": filename.endswith("css"),
2254 }
2255 )
2256
2257 if filename not in self._assets_files and not deleted:
2258 res = self._add_assets_resource(asset_path, filename)
2259 if filename.endswith("js"):
2260 self.scripts.append_script(res)
2261 elif filename.endswith("css"):
2262 self.css.append_css(res) # type: ignore[reportArgumentType]
2263
2264 if deleted:
2265 if filename in self._assets_files:
2266 self._assets_files.remove(filename)
2267
2268 def delete_resource(resources):
2269 to_delete = None
2270 for r in resources:
2271 if r.get("asset_path") == asset_path:
2272 to_delete = r
2273 break
2274 if to_delete:
2275 resources.remove(to_delete)
2276
2277 if filename.endswith("js"):
2278 # pylint: disable=protected-access
2279 delete_resource(self.scripts._resources._resources)
2280 elif filename.endswith("css"):
2281 # pylint: disable=protected-access
2282 delete_resource(self.css._resources._resources)
2283
2284 # pylint: disable=too-many-branches
2285 def run(

Callers

nothing calls this directly

Calls 7

get_asset_urlMethod · 0.95
_add_assets_resourceMethod · 0.95
generate_hashFunction · 0.85
append_scriptMethod · 0.80
append_cssMethod · 0.80
appendMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected