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

Method bundles

dash/development/build_process.py:110–164  ·  view source on GitHub ↗
(self, build=None)

Source from the content-addressed store, hash-verified

108
109 @job("copy and generate the bundles")
110 def bundles(self, build=None): # pylint:disable=too-many-locals
111 if not os.path.exists(self.deps_folder):
112 try:
113 os.makedirs(self.deps_folder)
114 except OSError:
115 logger.exception("🚨 having issues manipulating %s", self.deps_folder)
116 sys.exit(1)
117
118 self._parse_package(self.package_lock)
119
120 getattr(self, "_bundles_extra", lambda: None)()
121
122 versions = {
123 "version": self.version,
124 "package": self.name.replace(" ", "_").replace("-", "_"),
125 }
126
127 for scope, name, subfolder, filename, extras in self.deps_info:
128 version = self.deps["/".join(filter(None, [scope, name]))]["version"]
129 name_squashed = name.replace("-", "").replace(".", "")
130 versions[name_squashed] = version
131
132 logger.info("copy npm dependency => %s", filename)
133 ext = "min.js" if "min" in filename.split(".") else "js"
134 target = f"{name}@{version}.{ext}"
135
136 shutil.copyfile(
137 self._concat(self.npm_modules, scope, name, subfolder, filename),
138 self._concat(self.deps_folder, target),
139 )
140
141 if extras:
142 extras_str = '", "'.join(extras)
143 versions[f"extra_{name_squashed}_versions"] = f'"{extras_str}"'
144
145 for extra_version in extras:
146 url = f"https://unpkg.com/{name}@{extra_version}/umd/{filename}"
147 res = requests.get(url)
148 extra_target = f"{name}@{extra_version}.{ext}"
149 extra_path = self._concat(self.deps_folder, extra_target)
150 with open(extra_path, "wb") as fp:
151 fp.write(res.content)
152
153 _script = "build:dev" if build == "local" else "build:js"
154 logger.info("run `npm run %s`", _script)
155 os.chdir(self.main)
156 run_command_with_process(f"npm run {_script}")
157
158 logger.info("generate the `__init__.py` from template and versions")
159 with open(self._concat(self.main, "init.template"), encoding="utf-8") as fp:
160 t = string.Template(fp.read())
161
162 renderer_init = self._concat(self.deps_folder, os.pardir, "_dash_renderer.py")
163 with open(renderer_init, "w", encoding="utf-8") as fp:
164 fp.write(t.safe_substitute(versions))
165
166
167class Renderer(BuildProcess):

Callers 1

buildMethod · 0.95

Calls 6

_parse_packageMethod · 0.95
_concatMethod · 0.95
run_command_with_processFunction · 0.85
exitMethod · 0.80
existsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected