"Fossies" - the Fresh Open Source Software Archive 
Member "selenium-selenium-4.8.1/py/private/import.bzl" (17 Feb 2023, 2948 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the last
Fossies "Diffs" side-by-side code changes report for "import.bzl":
4.7.0_vs_4.8.0.
1 def _py_import_impl(ctx):
2 # Unpack the file somewhere, and present as a python library. We need to
3 # know all the files in the zip, and that's problematic. For now, we might
4 # be able to get away with just creating and declaring the directory.
5
6 root = ctx.actions.declare_directory("%s-pyroot" % ctx.attr.name)
7 args = ctx.actions.args()
8
9 if ctx.file.wheel.path.endswith(".zip") or ctx.file.wheel.path.endswith(".whl"):
10 args.add("x")
11 args.add(ctx.file.wheel.path)
12 args.add_all(["-d", root.path])
13
14 ctx.actions.run(
15 outputs = [root],
16 inputs = [ctx.file.wheel],
17 arguments = [args],
18 executable = ctx.executable._zip,
19 )
20 elif ctx.file.wheel.path.endswith(".tar.gz"):
21 args.add(ctx.file.wheel.path)
22 args.add(root.path)
23
24 ctx.actions.run(
25 outputs = [root],
26 inputs = [ctx.file.wheel],
27 arguments = [args],
28 executable = ctx.executable._untar,
29 )
30 else:
31 fail("Unrecognised file extension: %s" % ctx.attr.wheel)
32
33 runfiles = ctx.runfiles(files = [root])
34 for dep in ctx.attr.deps:
35 runfiles = runfiles.merge(dep[DefaultInfo].default_runfiles)
36
37 imports = depset(
38 [
39 "%s/%s/%s-pyroot" % (ctx.workspace_name, ctx.label.package, ctx.label.name),
40 ],
41 transitive = [dep[PyInfo].imports for dep in ctx.attr.deps],
42 )
43 transitive_sources = depset(
44 [],
45 transitive = [dep[PyInfo].transitive_sources for dep in ctx.attr.deps],
46 )
47
48 py_srcs = ctx.attr.srcs_version
49
50 info = PyInfo(
51 imports = imports,
52 has_py2_only_sources = py_srcs == "PY2",
53 has_py3_only_sources = py_srcs == "PY3",
54 transitive_sources = transitive_sources,
55 uses_shared_libraries = not ctx.attr.zip_safe,
56 )
57
58 return [
59 DefaultInfo(
60 files = depset([root]),
61 default_runfiles = runfiles,
62 ),
63 info,
64 ]
65
66 py_import = rule(
67 _py_import_impl,
68 attrs = {
69 "wheel": attr.label(
70 allow_single_file = True,
71 mandatory = True,
72 ),
73 "zip_safe": attr.bool(
74 default = True,
75 ),
76 "python_version": attr.string(
77 default = "PY3",
78 values = ["PY2", "PY3"],
79 ),
80 "srcs_version": attr.string(
81 default = "PY2AND3",
82 values = ["PY2", "PY3", "PY2AND3"],
83 ),
84 "deps": attr.label_list(
85 allow_empty = True,
86 providers = [PyInfo],
87 ),
88 "_zip": attr.label(
89 allow_single_file = True,
90 cfg = "exec",
91 default = "@bazel_tools//tools/zip:zipper",
92 executable = True,
93 ),
94 "_untar": attr.label(
95 cfg = "exec",
96 default = "//py/private:untar",
97 executable = True,
98 ),
99 },
100 )