@@ -42,14 +42,48 @@ load("//py/private:py_pex_binary.bzl", _py_pex_binary = "py_pex_binary")
4242load ("//py/private:py_pytest_main.bzl" , _py_pytest_main = "py_pytest_main" )
4343load ("//py/private:py_unpacked_wheel.bzl" , _py_unpacked_wheel = "py_unpacked_wheel" )
4444load ("//py/private:virtual.bzl" , _resolutions = "resolutions" )
45- load ("//py/private/py_venv:defs.bzl" , _py_venv_link = "py_venv_link" )
45+ load ("//py/private/py_venv:defs.bzl" , _py_venv_binary = "py_venv_binary" )
46+ load ("//py/private/link:defs.bzl" , _py_link_venv = "py_link_venv" )
4647
4748py_pex_binary = _py_pex_binary
4849py_pytest_main = _py_pytest_main
4950
5051# FIXME: Badly chosen name; will be replaced/migrated
51- py_venv = _py_venv_link
52- py_venv_link = _py_venv_link
52+ def py_venv (name , srcs = [], data = [], deps = [], imports = None , testonly = False , ** kwargs ):
53+ native .alias (
54+ name = name ,
55+ actual = select ({
56+ Label ("//py/private/link:dynamic_venvs" ): ":{}_dynamic" .format (name ),
57+ Label ("//py/private/link:static_venvs" ): ":{}_static" .format (name ),
58+ }),
59+ tags = ["manual" ],
60+ )
61+
62+ _py_link_venv (
63+ _py_binary ,
64+ name = "{}_dynamic" .format (name ),
65+ srcs = srcs ,
66+ data = data ,
67+ deps = deps ,
68+ imports = kwargs .get ("imports" ),
69+ tags = ["manual" ],
70+ testonly = kwargs .get ("testonly" , False ),
71+ target_compatible_with = kwargs .get ("target_compatible_with" , []),
72+ )
73+
74+ _py_link_venv (
75+ _py_venv_binary ,
76+ name = "{}_static" .format (name ),
77+ srcs = srcs ,
78+ data = data ,
79+ deps = deps ,
80+ imports = kwargs .get ("imports" ),
81+ tags = ["manual" ],
82+ testonly = kwargs .get ("testonly" , False ),
83+ target_compatible_with = kwargs .get ("target_compatible_with" , []),
84+ )
85+
86+ py_venv_link = py_venv
5387
5488py_binary_rule = _py_binary
5589py_test_rule = _py_test
@@ -70,15 +104,12 @@ def _py_binary_or_test(name, rule, srcs, main, data = [], deps = [], **kwargs):
70104 ** kwargs
71105 )
72106
73- _py_venv_link (
74- name = "{} .venv". format ( name ) ,
107+ py_venv (
108+ name = name + " .venv" ,
75109 srcs = srcs ,
76110 data = data ,
77111 deps = deps ,
78- imports = kwargs .get ("imports" ),
79- tags = ["manual" ],
80- testonly = kwargs .get ("testonly" , False ),
81- target_compatible_with = kwargs .get ("target_compatible_with" , []),
112+ ** kwargs ,
82113 )
83114
84115def py_binary (name , srcs = [], main = None , ** kwargs ):
0 commit comments