refactor: stop using some deprecated Starlark APIs (#2626)

I am currently working on an analysis tool that is capable of parsing
BUILD/*.bzl files. It currently fails to process some of the Python
rules, due to the rules depending on some features that are deprecated
on the Bazel side. Instead of adding implementations of these deprecated
features to my brand new analysis tool, I thought I'd simply patch up
the Python rules instead.
diff --git a/gazelle/manifest/defs.bzl b/gazelle/manifest/defs.bzl
index 6c0072a..45fdb32 100644
--- a/gazelle/manifest/defs.bzl
+++ b/gazelle/manifest/defs.bzl
@@ -161,7 +161,7 @@
 _rules_python_workspace = Label("@rules_python//:WORKSPACE")
 
 def _get_all_sources_impl(target, ctx):
-    is_rules_python = target.label.workspace_name == _rules_python_workspace.workspace_name
+    is_rules_python = target.label.repo_name == _rules_python_workspace.repo_name
     if not is_rules_python:
         # Avoid adding third-party dependency files to the checksum of the srcs.
         return AllSourcesInfo(all_srcs = depset())
diff --git a/python/private/pypi/multi_pip_parse.bzl b/python/private/pypi/multi_pip_parse.bzl
index 6e824f6..60496c2 100644
--- a/python/private/pypi/multi_pip_parse.bzl
+++ b/python/private/pypi/multi_pip_parse.bzl
@@ -18,7 +18,7 @@
 load(":pip_repository.bzl", pip_parse = "pip_repository")
 
 def _multi_pip_parse_impl(rctx):
-    rules_python = rctx.attr._rules_python_workspace.workspace_name
+    rules_python = rctx.attr._rules_python_workspace.repo_name
     load_statements = []
     install_deps_calls = []
     process_requirements_calls = []
@@ -69,7 +69,7 @@
         wheel_name = Label(pkg_label).package
         if not wheel_name:
             # We are dealing with the cases where we don't have aliases.
-            workspace_name = Label(pkg_label).workspace_name
+            workspace_name = Label(pkg_label).repo_name
             wheel_name = workspace_name[len(repo_prefix):]
 
         _wheel_names.append(wheel_name)
diff --git a/python/private/pypi/whl_library_alias.bzl b/python/private/pypi/whl_library_alias.bzl
index d34b34a..66c3504 100644
--- a/python/private/pypi/whl_library_alias.bzl
+++ b/python/private/pypi/whl_library_alias.bzl
@@ -18,7 +18,7 @@
 load(":render_pkg_aliases.bzl", "NO_MATCH_ERROR_MESSAGE_TEMPLATE")
 
 def _whl_library_alias_impl(rctx):
-    rules_python = rctx.attr._rules_python_workspace.workspace_name
+    rules_python = rctx.attr._rules_python_workspace.repo_name
     if rctx.attr.default_version:
         default_repo_prefix = rctx.attr.version_map[rctx.attr.default_version]
     else:
diff --git a/python/private/pythons_hub.bzl b/python/private/pythons_hub.bzl
index ac928ff..b448d53 100644
--- a/python/private/pythons_hub.bzl
+++ b/python/private/pythons_hub.bzl
@@ -79,7 +79,7 @@
 
     return _HUB_BUILD_FILE_TEMPLATE.format(
         toolchains = toolchains,
-        rules_python = workspace_location.workspace_name,
+        rules_python = workspace_location.repo_name,
     )
 
 _interpreters_bzl_template = """
diff --git a/python/private/toolchains_repo.bzl b/python/private/toolchains_repo.bzl
index 5082047..4e4a5de 100644
--- a/python/private/toolchains_repo.bzl
+++ b/python/private/toolchains_repo.bzl
@@ -31,10 +31,6 @@
 load(":repo_utils.bzl", "REPO_DEBUG_ENV_VAR", "repo_utils")
 load(":text_util.bzl", "render")
 
-def get_repository_name(repository_workspace):
-    dummy_label = "//:_"
-    return str(repository_workspace.relative(dummy_label))[:-len(dummy_label)] or "@"
-
 def python_toolchain_build_file_content(
         prefix,
         python_version,
@@ -90,10 +86,10 @@
 # python_register_toolchains macro so you don't normally need to interact with
 # these targets.
 
-load("@{rules_python}//python/private:py_toolchain_suite.bzl", "py_toolchain_suite")
+load("@@{rules_python}//python/private:py_toolchain_suite.bzl", "py_toolchain_suite")
 
 """.format(
-        rules_python = rctx.attr._rules_python_workspace.workspace_name,
+        rules_python = rctx.attr._rules_python_workspace.repo_name,
     )
 
     toolchains = python_toolchain_build_file_content(
@@ -151,13 +147,13 @@
     rctx.file("defs.bzl", content = """\
 # Generated by python/private/toolchains_repo.bzl
 
-load("{rules_python}//python:pip.bzl", _compile_pip_requirements = "compile_pip_requirements")
-load("{rules_python}//python/private:deprecation.bzl", "with_deprecation")
-load("{rules_python}//python/private:text_util.bzl", "render")
-load("{rules_python}//python:py_binary.bzl", _py_binary = "py_binary")
-load("{rules_python}//python:py_test.bzl", _py_test = "py_test")
+load("@@{rules_python}//python:pip.bzl", _compile_pip_requirements = "compile_pip_requirements")
+load("@@{rules_python}//python/private:deprecation.bzl", "with_deprecation")
+load("@@{rules_python}//python/private:text_util.bzl", "render")
+load("@@{rules_python}//python:py_binary.bzl", _py_binary = "py_binary")
+load("@@{rules_python}//python:py_test.bzl", _py_test = "py_test")
 load(
-    "{rules_python}//python/entry_points:py_console_script_binary.bzl",
+    "@@{rules_python}//python/entry_points:py_console_script_binary.bzl",
     _py_console_script_binary = "py_console_script_binary",
 )
 
@@ -185,7 +181,7 @@
 """.format(
         name = rctx.attr.name,
         python_version = rctx.attr.python_version,
-        rules_python = get_repository_name(rctx.attr._rules_python_workspace),
+        rules_python = rctx.attr._rules_python_workspace.repo_name,
     ))
 
 toolchain_aliases = repository_rule(
@@ -301,20 +297,20 @@
 )
 
 def _multi_toolchain_aliases_impl(rctx):
-    rules_python = rctx.attr._rules_python_workspace.workspace_name
+    rules_python = rctx.attr._rules_python_workspace.repo_name
 
     for python_version, repository_name in rctx.attr.python_versions.items():
         file = "{}/defs.bzl".format(python_version)
         rctx.file(file, content = """\
 # Generated by python/private/toolchains_repo.bzl
 
-load("{rules_python}//python:pip.bzl", _compile_pip_requirements = "compile_pip_requirements")
-load("{rules_python}//python/private:deprecation.bzl", "with_deprecation")
-load("{rules_python}//python/private:text_util.bzl", "render")
-load("{rules_python}//python:py_binary.bzl", _py_binary = "py_binary")
-load("{rules_python}//python:py_test.bzl", _py_test = "py_test")
+load("@@{rules_python}//python:pip.bzl", _compile_pip_requirements = "compile_pip_requirements")
+load("@@{rules_python}//python/private:deprecation.bzl", "with_deprecation")
+load("@@{rules_python}//python/private:text_util.bzl", "render")
+load("@@{rules_python}//python:py_binary.bzl", _py_binary = "py_binary")
+load("@@{rules_python}//python:py_test.bzl", _py_test = "py_test")
 load(
-    "{rules_python}//python/entry_points:py_console_script_binary.bzl",
+    "@@{rules_python}//python/entry_points:py_console_script_binary.bzl",
     _py_console_script_binary = "py_console_script_binary",
 )
 
@@ -343,14 +339,14 @@
             repository_name = repository_name,
             name = rctx.attr.name,
             python_version = python_version,
-            rules_python = get_repository_name(rctx.attr._rules_python_workspace),
+            rules_python = rules_python,
         ))
         rctx.file("{}/BUILD.bazel".format(python_version), "")
 
     pip_bzl = """\
 # Generated by python/private/toolchains_repo.bzl
 
-load("@{rules_python}//python:pip.bzl", "pip_parse", _multi_pip_parse = "multi_pip_parse")
+load("@@{rules_python}//python:pip.bzl", "pip_parse", _multi_pip_parse = "multi_pip_parse")
 
 def multi_pip_parse(name, requirements_lock, **kwargs):
     return _multi_pip_parse(
diff --git a/third_party/rules_pycross/pycross/private/wheel_library.bzl b/third_party/rules_pycross/pycross/private/wheel_library.bzl
index 3d6ee32..00d85f7 100644
--- a/third_party/rules_pycross/pycross/private/wheel_library.bzl
+++ b/third_party/rules_pycross/pycross/private/wheel_library.bzl
@@ -83,7 +83,7 @@
 
     # TODO: Is there a more correct way to get this runfiles-relative import path?
     imp = paths.join(
-        ctx.label.workspace_name or ctx.workspace_name,  # Default to the local workspace.
+        ctx.label.repo_name or ctx.workspace_name,  # Default to the local workspace.
         ctx.label.package,
         ctx.label.name,
         "site-packages",  # we put lib files in this subdirectory.