diff options
author | aptenodytes-forsteri <92043606+aptenodytes-forsteri@users.noreply.github.com> | 2022-08-04 14:04:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-04 11:04:03 -0700 |
commit | ebeb822453e5ba179149de250f33cd50c523a5c0 (patch) | |
tree | 3b7154043e6277b5ea45790acb74e1f3d601d967 /gazelle | |
parent | 8048ff7c72c1c6a80b238408414561c3683ff87c (diff) | |
download | bazelbuild-rules_python-ebeb822453e5ba179149de250f33cd50c523a5c0.tar.gz |
709/from imports (#760)
* Support "from" imports in the python gazelle plugin.
Fixes #709.
* Test case for pip imports using "from foo import bar".
* Test cases for imports of the form "from foo import bar".
* Remove unnecessary flag (replaced with continue's).
* Make sure from imports work with std modules.
- Add test case with `from __future__ import print_function`.
* Fix indentation error.
- Make sure that `from foo import bar, baz` works.
- Add test case for this.
* Fix error message.
- Keep error the same as before.
Co-authored-by: Thulio Ferraz Assis <3149049+f0rmiga@users.noreply.github.com>
Diffstat (limited to 'gazelle')
46 files changed, 1998 insertions, 93 deletions
diff --git a/gazelle/parse.py b/gazelle/parse.py index dec3a16..6b07c0e 100644 --- a/gazelle/parse.py +++ b/gazelle/parse.py @@ -21,15 +21,18 @@ def parse_import_statements(content, filepath): "name": subnode.name, "lineno": node.lineno, "filepath": filepath, + "from": "" } modules.append(module) elif isinstance(node, ast.ImportFrom) and node.level == 0: - module = { - "name": node.module, - "lineno": node.lineno, - "filepath": filepath, - } - modules.append(module) + for subnode in node.names: + module = { + "name": f"{node.module}.{subnode.name}", + "lineno": node.lineno, + "filepath": filepath, + "from": node.module + } + modules.append(module) return modules @@ -47,9 +50,10 @@ def parse(repo_root, rel_package_path, filename): abs_filepath = os.path.join(repo_root, rel_filepath) with open(abs_filepath, "r") as file: content = file.read() - # From simple benchmarks, 2 workers gave the best performance here. + # From simple benchmarks, 2 workers gave the best performance here. with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor: - modules_future = executor.submit(parse_import_statements, content, rel_filepath) + modules_future = executor.submit(parse_import_statements, content, + rel_filepath) comments_future = executor.submit(parse_comments, content) modules = modules_future.result() comments = comments_future.result() @@ -69,11 +73,12 @@ def main(stdin, stdout): filenames = parse_request["filenames"] outputs = list() if len(filenames) == 1: - outputs.append(parse(repo_root, rel_package_path, filenames[0])) + outputs.append(parse(repo_root, rel_package_path, + filenames[0])) else: futures = [ - executor.submit(parse, repo_root, rel_package_path, filename) - for filename in filenames + executor.submit(parse, repo_root, rel_package_path, + filename) for filename in filenames if filename != "" ] for future in concurrent.futures.as_completed(futures): diff --git a/gazelle/parser.go b/gazelle/parser.go index 2a82c94..d287caf 100644 --- a/gazelle/parser.go +++ b/gazelle/parser.go @@ -133,13 +133,13 @@ func (p *python3Parser) parse(pyFilenames *treeset.Set) (*treeset.Set, error) { for _, m := range res.Modules { // Check for ignored dependencies set via an annotation to the Python // module. - if annotations.ignores(m.Name) { + if annotations.ignores(m.Name) || annotations.ignores(m.From) { continue } // Check for ignored dependencies set via a Gazelle directive in a BUILD // file. - if p.ignoresDependency(m.Name) { + if p.ignoresDependency(m.Name) || p.ignoresDependency(m.From) { continue } @@ -170,6 +170,9 @@ type module struct { LineNumber uint32 `json:"lineno"` // The path to the module file relative to the Bazel workspace root. Filepath string `json:"filepath"` + // If this was a from import, e.g. from foo import bar, From indicates the module + // from which it is imported. + From string `json:"from"` } // moduleComparator compares modules by name. diff --git a/gazelle/resolve.go b/gazelle/resolve.go index 8f68dfd..220876d 100644 --- a/gazelle/resolve.go +++ b/gazelle/resolve.go @@ -140,99 +140,126 @@ func (py *Resolver) Resolve( it := modules.Iterator() explainDependency := os.Getenv("EXPLAIN_DEPENDENCY") hasFatalError := false - MODULE_LOOP: + MODULES_LOOP: for it.Next() { mod := it.Value().(module) - imp := resolve.ImportSpec{Lang: languageName, Imp: mod.Name} - if override, ok := resolve.FindRuleWithOverride(c, imp, languageName); ok { - if override.Repo == "" { - override.Repo = from.Repo - } - if !override.Equal(from) { - if override.Repo == from.Repo { - override.Repo = "" - } - dep := override.String() - deps.Add(dep) - if explainDependency == dep { - log.Printf("Explaining dependency (%s): "+ - "in the target %q, the file %q imports %q at line %d, "+ - "which resolves using the \"gazelle:resolve\" directive.\n", - explainDependency, from.String(), mod.Filepath, mod.Name, mod.LineNumber) + moduleParts := strings.Split(mod.Name, ".") + possibleModules := []string{mod.Name} + for len(moduleParts) > 1 { + // Iterate back through the possible imports until + // a match is found. + // For example, "from foo.bar import baz" where bar is a variable, we should try + // `foo.bar.baz` first, then `foo.bar`, then `foo`. In the first case, the import could be file `baz.py` + // in the directory `foo/bar`. + // Or, the import could be variable `bar` in file `foo/bar.py`. + // The import could also be from a standard module, e.g. `six.moves`, where + // the dependency is actually `six`. + moduleParts = moduleParts[:len(moduleParts)-1] + possibleModules = append(possibleModules, strings.Join(moduleParts, ".")) + } + errs := []error{} + POSSIBLE_MODULE_LOOP: + for _, moduleName := range possibleModules { + imp := resolve.ImportSpec{Lang: languageName, Imp: moduleName} + if override, ok := resolve.FindRuleWithOverride(c, imp, languageName); ok { + if override.Repo == "" { + override.Repo = from.Repo } - } - } else { - if dep, ok := cfg.FindThirdPartyDependency(mod.Name); ok { - deps.Add(dep) - if explainDependency == dep { - log.Printf("Explaining dependency (%s): "+ - "in the target %q, the file %q imports %q at line %d, "+ - "which resolves from the third-party module %q from the wheel %q.\n", - explainDependency, from.String(), mod.Filepath, mod.Name, mod.LineNumber, mod.Name, dep) + if !override.Equal(from) { + if override.Repo == from.Repo { + override.Repo = "" + } + dep := override.String() + deps.Add(dep) + if explainDependency == dep { + log.Printf("Explaining dependency (%s): "+ + "in the target %q, the file %q imports %q at line %d, "+ + "which resolves using the \"gazelle:resolve\" directive.\n", + explainDependency, from.String(), mod.Filepath, moduleName, mod.LineNumber) + } + continue MODULES_LOOP } } else { - matches := ix.FindRulesByImportWithConfig(c, imp, languageName) - if len(matches) == 0 { - // Check if the imported module is part of the standard library. - if isStd, err := isStdModule(mod); err != nil { - log.Println("ERROR: ", err) - hasFatalError = true - continue MODULE_LOOP - } else if isStd { - continue MODULE_LOOP + if dep, ok := cfg.FindThirdPartyDependency(moduleName); ok { + deps.Add(dep) + if explainDependency == dep { + log.Printf("Explaining dependency (%s): "+ + "in the target %q, the file %q imports %q at line %d, "+ + "which resolves from the third-party module %q from the wheel %q.\n", + explainDependency, from.String(), mod.Filepath, moduleName, mod.LineNumber, mod.Name, dep) } - if cfg.ValidateImportStatements() { - err := fmt.Errorf( - "%[1]q at line %[2]d from %[3]q is an invalid dependency: possible solutions:\n"+ - "\t1. Add it as a dependency in the requirements.txt file.\n"+ - "\t2. Instruct Gazelle to resolve to a known dependency using the gazelle:resolve directive.\n"+ - "\t3. Ignore it with a comment '# gazelle:ignore %[1]s' in the Python file.\n", - mod.Name, mod.LineNumber, mod.Filepath, - ) - log.Printf("ERROR: failed to validate dependencies for target %q: %v\n", from.String(), err) - hasFatalError = true - continue MODULE_LOOP + continue MODULES_LOOP + } else { + matches := ix.FindRulesByImportWithConfig(c, imp, languageName) + if len(matches) == 0 { + // Check if the imported module is part of the standard library. + if isStd, err := isStdModule(module{Name: moduleName}); err != nil { + log.Println("Error checking if standard module: ", err) + hasFatalError = true + continue POSSIBLE_MODULE_LOOP + } else if isStd { + continue MODULES_LOOP + } else if cfg.ValidateImportStatements() { + err := fmt.Errorf( + "%[1]q at line %[2]d from %[3]q is an invalid dependency: possible solutions:\n"+ + "\t1. Add it as a dependency in the requirements.txt file.\n"+ + "\t2. Instruct Gazelle to resolve to a known dependency using the gazelle:resolve directive.\n"+ + "\t3. Ignore it with a comment '# gazelle:ignore %[1]s' in the Python file.\n", + moduleName, mod.LineNumber, mod.Filepath, + ) + errs = append(errs, err) + continue POSSIBLE_MODULE_LOOP + } } - } - filteredMatches := make([]resolve.FindResult, 0, len(matches)) - for _, match := range matches { - if match.IsSelfImport(from) { - // Prevent from adding itself as a dependency. - continue MODULE_LOOP + filteredMatches := make([]resolve.FindResult, 0, len(matches)) + for _, match := range matches { + if match.IsSelfImport(from) { + // Prevent from adding itself as a dependency. + continue MODULES_LOOP + } + filteredMatches = append(filteredMatches, match) } - filteredMatches = append(filteredMatches, match) - } - if len(filteredMatches) == 0 { - continue - } - if len(filteredMatches) > 1 { - sameRootMatches := make([]resolve.FindResult, 0, len(filteredMatches)) - for _, match := range filteredMatches { - if strings.HasPrefix(match.Label.Pkg, pythonProjectRoot) { - sameRootMatches = append(sameRootMatches, match) + if len(filteredMatches) == 0 { + continue POSSIBLE_MODULE_LOOP + } + if len(filteredMatches) > 1 { + sameRootMatches := make([]resolve.FindResult, 0, len(filteredMatches)) + for _, match := range filteredMatches { + if strings.HasPrefix(match.Label.Pkg, pythonProjectRoot) { + sameRootMatches = append(sameRootMatches, match) + } } + if len(sameRootMatches) != 1 { + err := fmt.Errorf( + "multiple targets (%s) may be imported with %q at line %d in %q "+ + "- this must be fixed using the \"gazelle:resolve\" directive", + targetListFromResults(filteredMatches), moduleName, mod.LineNumber, mod.Filepath) + errs = append(errs, err) + continue POSSIBLE_MODULE_LOOP + } + filteredMatches = sameRootMatches } - if len(sameRootMatches) != 1 { - err := fmt.Errorf( - "multiple targets (%s) may be imported with %q at line %d in %q "+ - "- this must be fixed using the \"gazelle:resolve\" directive", - targetListFromResults(filteredMatches), mod.Name, mod.LineNumber, mod.Filepath) - log.Println("ERROR: ", err) - hasFatalError = true - continue MODULE_LOOP + matchLabel := filteredMatches[0].Label.Rel(from.Repo, from.Pkg) + dep := matchLabel.String() + deps.Add(dep) + if explainDependency == dep { + log.Printf("Explaining dependency (%s): "+ + "in the target %q, the file %q imports %q at line %d, "+ + "which resolves from the first-party indexed labels.\n", + explainDependency, from.String(), mod.Filepath, moduleName, mod.LineNumber) } - filteredMatches = sameRootMatches - } - matchLabel := filteredMatches[0].Label.Rel(from.Repo, from.Pkg) - dep := matchLabel.String() - deps.Add(dep) - if explainDependency == dep { - log.Printf("Explaining dependency (%s): "+ - "in the target %q, the file %q imports %q at line %d, "+ - "which resolves from the first-party indexed labels.\n", - explainDependency, from.String(), mod.Filepath, mod.Name, mod.LineNumber) + continue MODULES_LOOP } } + } // End possible modules loop. + if len(errs) > 0 { + // If, after trying all possible modules, we still haven't found anything, error out. + joinedErrs := "" + for _, err := range errs { + joinedErrs = fmt.Sprintf("%s%s\n", joinedErrs, err) + } + log.Printf("ERROR: failed to validate dependencies for target %q: %v\n", from.String(), joinedErrs) + hasFatalError = true } } if hasFatalError { diff --git a/gazelle/testdata/from_imports/BUILD.in b/gazelle/testdata/from_imports/BUILD.in new file mode 100644 index 0000000..93f2259 --- /dev/null +++ b/gazelle/testdata/from_imports/BUILD.in @@ -0,0 +1 @@ +# gazelle:python_extension enabled diff --git a/gazelle/testdata/from_imports/BUILD.out b/gazelle/testdata/from_imports/BUILD.out new file mode 100644 index 0000000..93f2259 --- /dev/null +++ b/gazelle/testdata/from_imports/BUILD.out @@ -0,0 +1 @@ +# gazelle:python_extension enabled diff --git a/gazelle/testdata/from_imports/README.md b/gazelle/testdata/from_imports/README.md new file mode 100644 index 0000000..161dd18 --- /dev/null +++ b/gazelle/testdata/from_imports/README.md @@ -0,0 +1,7 @@ +# From Imports + +This test case simulates imports of the form: + +```python +from foo import bar +``` diff --git a/gazelle/testdata/from_imports/WORKSPACE b/gazelle/testdata/from_imports/WORKSPACE new file mode 100644 index 0000000..4959898 --- /dev/null +++ b/gazelle/testdata/from_imports/WORKSPACE @@ -0,0 +1 @@ +# This is a test data Bazel workspace. diff --git a/gazelle/testdata/from_imports/foo/BUILD.in b/gazelle/testdata/from_imports/foo/BUILD.in new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/BUILD.in @@ -0,0 +1 @@ + diff --git a/gazelle/testdata/from_imports/foo/BUILD.out b/gazelle/testdata/from_imports/foo/BUILD.out new file mode 100644 index 0000000..4404d30 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/BUILD.out @@ -0,0 +1,8 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "foo", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], +) diff --git a/gazelle/testdata/from_imports/foo/__init__.py b/gazelle/testdata/from_imports/foo/__init__.py new file mode 100644 index 0000000..8c4ff6a --- /dev/null +++ b/gazelle/testdata/from_imports/foo/__init__.py @@ -0,0 +1 @@ +foo = "foo" diff --git a/gazelle/testdata/from_imports/foo/bar/BUILD.in b/gazelle/testdata/from_imports/foo/bar/BUILD.in new file mode 100644 index 0000000..fbbec02 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/bar/BUILD.in @@ -0,0 +1,21 @@ +load("@rules_python//python:defs.bzl", "py_library") + +# gazelle:python_ignore_files baz.py + +py_library( + name = "baz", + srcs = [ + "baz.py", + ], + imports = ["../.."], + visibility = ["//:__subpackages__"], +) + +py_library( + name = "bar", + srcs = [ + "__init__.py", + ], + imports = ["../.."], + visibility = ["//:__subpackages__"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/foo/bar/BUILD.out b/gazelle/testdata/from_imports/foo/bar/BUILD.out new file mode 100644 index 0000000..fbbec02 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/bar/BUILD.out @@ -0,0 +1,21 @@ +load("@rules_python//python:defs.bzl", "py_library") + +# gazelle:python_ignore_files baz.py + +py_library( + name = "baz", + srcs = [ + "baz.py", + ], + imports = ["../.."], + visibility = ["//:__subpackages__"], +) + +py_library( + name = "bar", + srcs = [ + "__init__.py", + ], + imports = ["../.."], + visibility = ["//:__subpackages__"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/foo/bar/__init__.py b/gazelle/testdata/from_imports/foo/bar/__init__.py new file mode 100644 index 0000000..2e96e09 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/bar/__init__.py @@ -0,0 +1 @@ +bar = "bar" diff --git a/gazelle/testdata/from_imports/foo/bar/baz.py b/gazelle/testdata/from_imports/foo/bar/baz.py new file mode 100644 index 0000000..a15f053 --- /dev/null +++ b/gazelle/testdata/from_imports/foo/bar/baz.py @@ -0,0 +1 @@ +baz = "baz" diff --git a/gazelle/testdata/from_imports/gazelle_python.yaml b/gazelle/testdata/from_imports/gazelle_python.yaml new file mode 100644 index 0000000..5f7922f --- /dev/null +++ b/gazelle/testdata/from_imports/gazelle_python.yaml @@ -0,0 +1,5 @@ +manifest: + modules_mapping: + boto3: rootboto3 + boto4: rootboto4 + pip_deps_repository_name: root_pip_deps diff --git a/gazelle/testdata/from_imports/import_from_init_py/BUILD.in b/gazelle/testdata/from_imports/import_from_init_py/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_init_py/BUILD.in diff --git a/gazelle/testdata/from_imports/import_from_init_py/BUILD.out b/gazelle/testdata/from_imports/import_from_init_py/BUILD.out new file mode 100644 index 0000000..99b4861 --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_init_py/BUILD.out @@ -0,0 +1,9 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_from_init_py", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = ["//foo/bar"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_from_init_py/__init__.py b/gazelle/testdata/from_imports/import_from_init_py/__init__.py new file mode 100644 index 0000000..350a327 --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_init_py/__init__.py @@ -0,0 +1,2 @@ +# bar is a variable inside foo/bar/__init__.py +from foo.bar import bar diff --git a/gazelle/testdata/from_imports/import_from_multiple/BUILD.in b/gazelle/testdata/from_imports/import_from_multiple/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_multiple/BUILD.in diff --git a/gazelle/testdata/from_imports/import_from_multiple/BUILD.out b/gazelle/testdata/from_imports/import_from_multiple/BUILD.out new file mode 100644 index 0000000..d8219bb --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_multiple/BUILD.out @@ -0,0 +1,12 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_from_multiple", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = [ + "//foo/bar", + "//foo/bar:baz", + ], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_from_multiple/__init__.py b/gazelle/testdata/from_imports/import_from_multiple/__init__.py new file mode 100644 index 0000000..864059b --- /dev/null +++ b/gazelle/testdata/from_imports/import_from_multiple/__init__.py @@ -0,0 +1,2 @@ +# Import multiple values from the same import. +from foo.bar import bar, baz diff --git a/gazelle/testdata/from_imports/import_nested_file/BUILD.in b/gazelle/testdata/from_imports/import_nested_file/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_file/BUILD.in diff --git a/gazelle/testdata/from_imports/import_nested_file/BUILD.out b/gazelle/testdata/from_imports/import_nested_file/BUILD.out new file mode 100644 index 0000000..662da9c --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_file/BUILD.out @@ -0,0 +1,9 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_nested_file", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = ["//foo/bar:baz"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_nested_file/__init__.py b/gazelle/testdata/from_imports/import_nested_file/__init__.py new file mode 100644 index 0000000..d5e6b25 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_file/__init__.py @@ -0,0 +1,2 @@ +# baz.py is a file at foo/bar/baz.py +from foo.bar import baz diff --git a/gazelle/testdata/from_imports/import_nested_module/BUILD.in b/gazelle/testdata/from_imports/import_nested_module/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_module/BUILD.in diff --git a/gazelle/testdata/from_imports/import_nested_module/BUILD.out b/gazelle/testdata/from_imports/import_nested_module/BUILD.out new file mode 100644 index 0000000..ec6da50 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_module/BUILD.out @@ -0,0 +1,9 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_nested_module", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = ["//foo/bar"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_nested_module/__init__.py b/gazelle/testdata/from_imports/import_nested_module/__init__.py new file mode 100644 index 0000000..3b04f00 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_module/__init__.py @@ -0,0 +1,2 @@ +# bar is a module at foo/bar/__init__.py +from foo import bar diff --git a/gazelle/testdata/from_imports/import_nested_var/BUILD.in b/gazelle/testdata/from_imports/import_nested_var/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_var/BUILD.in diff --git a/gazelle/testdata/from_imports/import_nested_var/BUILD.out b/gazelle/testdata/from_imports/import_nested_var/BUILD.out new file mode 100644 index 0000000..8ee527e --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_var/BUILD.out @@ -0,0 +1,9 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_nested_var", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = ["//foo/bar:baz"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_nested_var/__init__.py b/gazelle/testdata/from_imports/import_nested_var/__init__.py new file mode 100644 index 0000000..de5069d --- /dev/null +++ b/gazelle/testdata/from_imports/import_nested_var/__init__.py @@ -0,0 +1,2 @@ +# baz is a variable in foo/bar/baz.py +from foo.bar.baz import baz diff --git a/gazelle/testdata/from_imports/import_top_level_var/BUILD.in b/gazelle/testdata/from_imports/import_top_level_var/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/import_top_level_var/BUILD.in diff --git a/gazelle/testdata/from_imports/import_top_level_var/BUILD.out b/gazelle/testdata/from_imports/import_top_level_var/BUILD.out new file mode 100644 index 0000000..6b584d7 --- /dev/null +++ b/gazelle/testdata/from_imports/import_top_level_var/BUILD.out @@ -0,0 +1,9 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "import_top_level_var", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], + deps = ["//foo"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/import_top_level_var/__init__.py b/gazelle/testdata/from_imports/import_top_level_var/__init__.py new file mode 100644 index 0000000..532f11a --- /dev/null +++ b/gazelle/testdata/from_imports/import_top_level_var/__init__.py @@ -0,0 +1,2 @@ +# foo is a variable in foo/__init__.py +from foo import foo diff --git a/gazelle/testdata/from_imports/std_module/BUILD.in b/gazelle/testdata/from_imports/std_module/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/from_imports/std_module/BUILD.in diff --git a/gazelle/testdata/from_imports/std_module/BUILD.out b/gazelle/testdata/from_imports/std_module/BUILD.out new file mode 100644 index 0000000..4903999 --- /dev/null +++ b/gazelle/testdata/from_imports/std_module/BUILD.out @@ -0,0 +1,8 @@ +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "std_module", + srcs = ["__init__.py"], + imports = [".."], + visibility = ["//:__subpackages__"], +)
\ No newline at end of file diff --git a/gazelle/testdata/from_imports/std_module/__init__.py b/gazelle/testdata/from_imports/std_module/__init__.py new file mode 100644 index 0000000..7e6bc9d --- /dev/null +++ b/gazelle/testdata/from_imports/std_module/__init__.py @@ -0,0 +1,3 @@ +# Gazelle should recognize this from import +# as the standard module __future__. +from __future__ import print_function diff --git a/gazelle/testdata/from_imports/test.yaml b/gazelle/testdata/from_imports/test.yaml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/gazelle/testdata/from_imports/test.yaml @@ -0,0 +1 @@ +--- diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.in b/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.in new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.in diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.out b/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.out new file mode 100644 index 0000000..577f167 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/BUILD.out @@ -0,0 +1,25 @@ +load("@rules_python//python:defs.bzl", "py_binary", "py_library") + +py_library( + name = "with_third_party_requirements_from_imports", + srcs = [ + "__init__.py", + "bar.py", + ], + visibility = ["//:__subpackages__"], + deps = [ + "@gazelle_python_test_google_cloud_aiplatform//:pkg", + "@gazelle_python_test_google_cloud_storage//:pkg", + ], +) + +py_binary( + name = "with_third_party_requirements_from_imports_bin", + srcs = ["__main__.py"], + main = "__main__.py", + visibility = ["//:__subpackages__"], + deps = [ + ":with_third_party_requirements_from_imports", + "@gazelle_python_test_google_cloud_aiplatform//:pkg", + ], +) diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/README.md b/gazelle/testdata/with_third_party_requirements_from_imports/README.md new file mode 100644 index 0000000..c50a1ca --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/README.md @@ -0,0 +1,15 @@ +# With third-party requirements (from imports) + +This test case covers imports of the form: + +```python +from my_pip_dep import foo +``` + +for example + +```python +from google.cloud import aiplatform, storage +``` + +See https://github.com/bazelbuild/rules_python/issues/709 and https://github.com/sramirezmartin/gazelle-toy-example. diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/WORKSPACE b/gazelle/testdata/with_third_party_requirements_from_imports/WORKSPACE new file mode 100644 index 0000000..faff6af --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/WORKSPACE @@ -0,0 +1 @@ +# This is a Bazel workspace for the Gazelle test data. diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/__init__.py b/gazelle/testdata/with_third_party_requirements_from_imports/__init__.py new file mode 100644 index 0000000..6b58ff3 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/__init__.py @@ -0,0 +1 @@ +# For test purposes only. diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/__main__.py b/gazelle/testdata/with_third_party_requirements_from_imports/__main__.py new file mode 100644 index 0000000..8733018 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/__main__.py @@ -0,0 +1,7 @@ +from google.cloud import aiplatform + +from bar import main + +if __name__ == "__main__": + print(aiplatform) + main() diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/bar.py b/gazelle/testdata/with_third_party_requirements_from_imports/bar.py new file mode 100644 index 0000000..7875c16 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/bar.py @@ -0,0 +1,5 @@ +from google.cloud import aiplatform, storage + +def main(): + a = dir(aiplatform) + b = dir(storage) diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/gazelle_python.yaml b/gazelle/testdata/with_third_party_requirements_from_imports/gazelle_python.yaml new file mode 100644 index 0000000..21edbc0 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/gazelle_python.yaml @@ -0,0 +1,1665 @@ +manifest: + modules_mapping: + cachetools: cachetools + cachetools.__init__: cachetools + cachetools.func: cachetools + cachetools.keys: cachetools + certifi: certifi + certifi.__init__: certifi + certifi.__main__: certifi + certifi.core: certifi + charset_normalizer: charset_normalizer + charset_normalizer.__init__: charset_normalizer + charset_normalizer.api: charset_normalizer + charset_normalizer.assets: charset_normalizer + charset_normalizer.assets.__init__: charset_normalizer + charset_normalizer.cd: charset_normalizer + charset_normalizer.cli: charset_normalizer + charset_normalizer.cli.__init__: charset_normalizer + charset_normalizer.cli.normalizer: charset_normalizer + charset_normalizer.constant: charset_normalizer + charset_normalizer.legacy: charset_normalizer + charset_normalizer.md: charset_normalizer + charset_normalizer.models: charset_normalizer + charset_normalizer.utils: charset_normalizer + charset_normalizer.version: charset_normalizer + dateutil: python_dateutil + dateutil.__init__: python_dateutil + dateutil._common: python_dateutil + dateutil._version: python_dateutil + dateutil.easter: python_dateutil + dateutil.parser: python_dateutil + dateutil.parser.__init__: python_dateutil + dateutil.parser._parser: python_dateutil + dateutil.parser.isoparser: python_dateutil + dateutil.relativedelta: python_dateutil + dateutil.rrule: python_dateutil + dateutil.tz: python_dateutil + dateutil.tz.__init__: python_dateutil + dateutil.tz._common: python_dateutil + dateutil.tz._factories: python_dateutil + dateutil.tz.tz: python_dateutil + dateutil.tz.win: python_dateutil + dateutil.tzwin: python_dateutil + dateutil.utils: python_dateutil + dateutil.zoneinfo: python_dateutil + dateutil.zoneinfo.__init__: python_dateutil + dateutil.zoneinfo.rebuild: python_dateutil + docs.conf: google_cloud_resource_manager + google._async_resumable_media: google_resumable_media + google._async_resumable_media.__init__: google_resumable_media + google._async_resumable_media._download: google_resumable_media + google._async_resumable_media._helpers: google_resumable_media + google._async_resumable_media._upload: google_resumable_media + google._async_resumable_media.requests: google_resumable_media + google._async_resumable_media.requests.__init__: google_resumable_media + google._async_resumable_media.requests._request_helpers: google_resumable_media + google._async_resumable_media.requests.download: google_resumable_media + google._async_resumable_media.requests.upload: google_resumable_media + google.api: googleapis_common_protos + google.api.__init__: googleapis_common_protos + google.api.annotations_pb2: googleapis_common_protos + google.api.auth_pb2: googleapis_common_protos + google.api.backend_pb2: googleapis_common_protos + google.api.billing_pb2: googleapis_common_protos + google.api.client_pb2: googleapis_common_protos + google.api.config_change_pb2: googleapis_common_protos + google.api.consumer_pb2: googleapis_common_protos + google.api.context_pb2: googleapis_common_protos + google.api.control_pb2: googleapis_common_protos + google.api.distribution_pb2: googleapis_common_protos + google.api.documentation_pb2: googleapis_common_protos + google.api.endpoint_pb2: googleapis_common_protos + google.api.error_reason_pb2: googleapis_common_protos + google.api.field_behavior_pb2: googleapis_common_protos + google.api.http_pb2: googleapis_common_protos + google.api.httpbody_pb2: googleapis_common_protos + google.api.label_pb2: googleapis_common_protos + google.api.launch_stage_pb2: googleapis_common_protos + google.api.log_pb2: googleapis_common_protos + google.api.logging_pb2: googleapis_common_protos + google.api.metric_pb2: googleapis_common_protos + google.api.monitored_resource_pb2: googleapis_common_protos + google.api.monitoring_pb2: googleapis_common_protos + google.api.quota_pb2: googleapis_common_protos + google.api.resource_pb2: googleapis_common_protos + google.api.routing_pb2: googleapis_common_protos + google.api.service_pb2: googleapis_common_protos + google.api.source_info_pb2: googleapis_common_protos + google.api.system_parameter_pb2: googleapis_common_protos + google.api.usage_pb2: googleapis_common_protos + google.api.visibility_pb2: googleapis_common_protos + google.api_core: google_api_core + google.api_core.__init__: google_api_core + google.api_core.bidi: google_api_core + google.api_core.client_info: google_api_core + google.api_core.client_options: google_api_core + google.api_core.datetime_helpers: google_api_core + google.api_core.exceptions: google_api_core + google.api_core.extended_operation: google_api_core + google.api_core.future: google_api_core + google.api_core.future.__init__: google_api_core + google.api_core.future._helpers: google_api_core + google.api_core.future.async_future: google_api_core + google.api_core.future.base: google_api_core + google.api_core.future.polling: google_api_core + google.api_core.gapic_v1: google_api_core + google.api_core.gapic_v1.__init__: google_api_core + google.api_core.gapic_v1.client_info: google_api_core + google.api_core.gapic_v1.config: google_api_core + google.api_core.gapic_v1.config_async: google_api_core + google.api_core.gapic_v1.method: google_api_core + google.api_core.gapic_v1.method_async: google_api_core + google.api_core.gapic_v1.routing_header: google_api_core + google.api_core.general_helpers: google_api_core + google.api_core.grpc_helpers: google_api_core + google.api_core.grpc_helpers_async: google_api_core + google.api_core.iam: google_api_core + google.api_core.operation: google_api_core + google.api_core.operation_async: google_api_core + google.api_core.operations_v1: google_api_core + google.api_core.operations_v1.__init__: google_api_core + google.api_core.operations_v1.abstract_operations_client: google_api_core + google.api_core.operations_v1.operations_async_client: google_api_core + google.api_core.operations_v1.operations_client: google_api_core + google.api_core.operations_v1.operations_client_config: google_api_core + google.api_core.operations_v1.pagers: google_api_core + google.api_core.operations_v1.transports: google_api_core + google.api_core.operations_v1.transports.__init__: google_api_core + google.api_core.operations_v1.transports.base: google_api_core + google.api_core.operations_v1.transports.rest: google_api_core + google.api_core.page_iterator: google_api_core + google.api_core.page_iterator_async: google_api_core + google.api_core.path_template: google_api_core + google.api_core.protobuf_helpers: google_api_core + google.api_core.rest_helpers: google_api_core + google.api_core.rest_streaming: google_api_core + google.api_core.retry: google_api_core + google.api_core.retry_async: google_api_core + google.api_core.timeout: google_api_core + google.api_core.version: google_api_core + google.auth: google_auth + google.auth.__init__: google_auth + google.auth._cloud_sdk: google_auth + google.auth._credentials_async: google_auth + google.auth._default: google_auth + google.auth._default_async: google_auth + google.auth._helpers: google_auth + google.auth._jwt_async: google_auth + google.auth._oauth2client: google_auth + google.auth._service_account_info: google_auth + google.auth.app_engine: google_auth + google.auth.aws: google_auth + google.auth.compute_engine: google_auth + google.auth.compute_engine.__init__: google_auth + google.auth.compute_engine._metadata: google_auth + google.auth.compute_engine.credentials: google_auth + google.auth.credentials: google_auth + google.auth.crypt: google_auth + google.auth.crypt.__init__: google_auth + google.auth.crypt._cryptography_rsa: google_auth + google.auth.crypt._helpers: google_auth + google.auth.crypt._python_rsa: google_auth + google.auth.crypt.base: google_auth + google.auth.crypt.es256: google_auth + google.auth.crypt.rsa: google_auth + google.auth.downscoped: google_auth + google.auth.environment_vars: google_auth + google.auth.exceptions: google_auth + google.auth.external_account: google_auth + google.auth.iam: google_auth + google.auth.identity_pool: google_auth + google.auth.impersonated_credentials: google_auth + google.auth.jwt: google_auth + google.auth.transport: google_auth + google.auth.transport.__init__: google_auth + google.auth.transport._aiohttp_requests: google_auth + google.auth.transport._http_client: google_auth + google.auth.transport._mtls_helper: google_auth + google.auth.transport.grpc: google_auth + google.auth.transport.mtls: google_auth + google.auth.transport.requests: google_auth + google.auth.transport.urllib3: google_auth + google.auth.version: google_auth + google.cloud._helpers: google_cloud_core + google.cloud._helpers.__init__: google_cloud_core + google.cloud._http: google_cloud_core + google.cloud._http.__init__: google_cloud_core + google.cloud._testing: google_cloud_core + google.cloud._testing.__init__: google_cloud_core + google.cloud.aiplatform: google_cloud_aiplatform + google.cloud.aiplatform.__init__: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.__init__: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.match_service_pb2: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.match_service_pb2_grpc: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.matching_engine_index: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.matching_engine_index_config: google_cloud_aiplatform + google.cloud.aiplatform._matching_engine.matching_engine_index_endpoint: google_cloud_aiplatform + google.cloud.aiplatform.base: google_cloud_aiplatform + google.cloud.aiplatform.compat: google_cloud_aiplatform + google.cloud.aiplatform.compat.__init__: google_cloud_aiplatform + google.cloud.aiplatform.compat.services: google_cloud_aiplatform + google.cloud.aiplatform.compat.services.__init__: google_cloud_aiplatform + google.cloud.aiplatform.compat.types: google_cloud_aiplatform + google.cloud.aiplatform.compat.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.constants: google_cloud_aiplatform + google.cloud.aiplatform.constants.__init__: google_cloud_aiplatform + google.cloud.aiplatform.constants.base: google_cloud_aiplatform + google.cloud.aiplatform.constants.prediction: google_cloud_aiplatform + google.cloud.aiplatform.datasets: google_cloud_aiplatform + google.cloud.aiplatform.datasets.__init__: google_cloud_aiplatform + google.cloud.aiplatform.datasets._datasources: google_cloud_aiplatform + google.cloud.aiplatform.datasets.column_names_dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.image_dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.tabular_dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.text_dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.time_series_dataset: google_cloud_aiplatform + google.cloud.aiplatform.datasets.video_dataset: google_cloud_aiplatform + google.cloud.aiplatform.explain: google_cloud_aiplatform + google.cloud.aiplatform.explain.__init__: google_cloud_aiplatform + google.cloud.aiplatform.explain.lit: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.__init__: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.metadata_builder: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.__init__: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v1: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v1.saved_model_metadata_builder: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v2: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v2.__init__: google_cloud_aiplatform + google.cloud.aiplatform.explain.metadata.tf.v2.saved_model_metadata_builder: google_cloud_aiplatform + google.cloud.aiplatform.featurestore: google_cloud_aiplatform + google.cloud.aiplatform.featurestore.__init__: google_cloud_aiplatform + google.cloud.aiplatform.featurestore.entity_type: google_cloud_aiplatform + google.cloud.aiplatform.featurestore.feature: google_cloud_aiplatform + google.cloud.aiplatform.featurestore.featurestore: google_cloud_aiplatform + google.cloud.aiplatform.gapic: google_cloud_aiplatform + google.cloud.aiplatform.gapic.__init__: google_cloud_aiplatform + google.cloud.aiplatform.gapic.schema: google_cloud_aiplatform + google.cloud.aiplatform.gapic.schema.__init__: google_cloud_aiplatform + google.cloud.aiplatform.helpers: google_cloud_aiplatform + google.cloud.aiplatform.helpers.__init__: google_cloud_aiplatform + google.cloud.aiplatform.helpers.container_uri_builders: google_cloud_aiplatform + google.cloud.aiplatform.hyperparameter_tuning: google_cloud_aiplatform + google.cloud.aiplatform.initializer: google_cloud_aiplatform + google.cloud.aiplatform.jobs: google_cloud_aiplatform + google.cloud.aiplatform.metadata: google_cloud_aiplatform + google.cloud.aiplatform.metadata.__init__: google_cloud_aiplatform + google.cloud.aiplatform.metadata.artifact: google_cloud_aiplatform + google.cloud.aiplatform.metadata.constants: google_cloud_aiplatform + google.cloud.aiplatform.metadata.context: google_cloud_aiplatform + google.cloud.aiplatform.metadata.execution: google_cloud_aiplatform + google.cloud.aiplatform.metadata.metadata: google_cloud_aiplatform + google.cloud.aiplatform.metadata.metadata_store: google_cloud_aiplatform + google.cloud.aiplatform.metadata.resource: google_cloud_aiplatform + google.cloud.aiplatform.model_evaluation: google_cloud_aiplatform + google.cloud.aiplatform.model_evaluation.__init__: google_cloud_aiplatform + google.cloud.aiplatform.model_evaluation.model_evaluation: google_cloud_aiplatform + google.cloud.aiplatform.models: google_cloud_aiplatform + google.cloud.aiplatform.pipeline_jobs: google_cloud_aiplatform + google.cloud.aiplatform.schema: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.__init__: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.plugins.tf_profiler.profile_uploader: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.tensorboard_resource: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.uploader: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.uploader_main: google_cloud_aiplatform + google.cloud.aiplatform.tensorboard.uploader_utils: google_cloud_aiplatform + google.cloud.aiplatform.training_jobs: google_cloud_aiplatform + google.cloud.aiplatform.training_utils: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.__init__: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.__init__: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.cloud_profiler_utils: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.initializer: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.plugins.base_plugin: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.plugins.tensorflow.tensorboard_api: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.plugins.tensorflow.tf_profiler: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.webserver: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.cloud_profiler.wsgi_types: google_cloud_aiplatform + google.cloud.aiplatform.training_utils.environment_variables: google_cloud_aiplatform + google.cloud.aiplatform.utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.__init__: google_cloud_aiplatform + google.cloud.aiplatform.utils.column_transformations_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.console_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.enhanced_library: google_cloud_aiplatform + google.cloud.aiplatform.utils.enhanced_library.__init__: google_cloud_aiplatform + google.cloud.aiplatform.utils.enhanced_library._decorators: google_cloud_aiplatform + google.cloud.aiplatform.utils.enhanced_library.value_converter: google_cloud_aiplatform + google.cloud.aiplatform.utils.featurestore_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.gcs_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.pipeline_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.resource_manager_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.source_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.tensorboard_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.worker_spec_utils: google_cloud_aiplatform + google.cloud.aiplatform.utils.yaml_utils: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.text_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.instance_v1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.params_v1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.tabular_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.tabular_regression: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.predict.prediction_v1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_tables: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_text_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.automl_video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1.schema.trainingjob.definition_v1.types.export_evaluated_data_items_config: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.text_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.instance_v1beta1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.params_v1beta1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.tabular_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.tabular_regression: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.time_series_forecasting: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.predict.prediction_v1beta1.types.video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_forecasting: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_image_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_image_object_detection: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_image_segmentation: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_tables: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_text_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_text_extraction: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_text_sentiment: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_time_series_forecasting: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_video_action_recognition: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_video_classification: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.automl_video_object_tracking: google_cloud_aiplatform + google.cloud.aiplatform.v1beta1.schema.trainingjob.definition_v1beta1.types.export_evaluated_data_items_config: google_cloud_aiplatform + google.cloud.aiplatform.version: google_cloud_aiplatform + google.cloud.aiplatform_v1: google_cloud_aiplatform + google.cloud.aiplatform_v1.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.dataset_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.endpoint_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_online_serving_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.featurestore_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_endpoint_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.index_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.job_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.metadata_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.migration_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.model_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.pipeline_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.prediction_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.specialist_pool_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.tensorboard_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1.services.vizier_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1.types: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.accelerator_type: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.annotation: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.annotation_spec: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.artifact: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.batch_prediction_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.completion_stats: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.context: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.custom_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.data_item: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.data_labeling_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.dataset: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.dataset_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.deployed_index_ref: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.deployed_model_ref: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.encryption_spec: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.endpoint: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.entity_type: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.env_var: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.event: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.execution: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.explanation: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.explanation_metadata: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.feature: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.feature_monitoring_stats: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.feature_selector: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.featurestore: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.featurestore_monitoring: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.featurestore_online_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.featurestore_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.hyperparameter_tuning_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.index: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.index_endpoint: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.index_endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.index_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.io: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.job_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.job_state: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.lineage_subgraph: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.machine_resources: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.manual_batch_tuning_parameters: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.metadata_schema: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.metadata_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.metadata_store: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.migratable_resource: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.migration_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model_deployment_monitoring_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model_evaluation: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model_evaluation_slice: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model_monitoring: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.model_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.operation: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.pipeline_job: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.pipeline_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.pipeline_state: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.prediction_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.specialist_pool: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.specialist_pool_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.study: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard_data: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard_experiment: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard_run: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard_service: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.tensorboard_time_series: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.training_pipeline: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.types: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.unmanaged_container_model: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.user_action_reference: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.value: google_cloud_aiplatform + google.cloud.aiplatform_v1.types.vizier_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.dataset_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.endpoint_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.featurestore_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_endpoint_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.index_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.job_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.metadata_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.migration_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.model_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.pipeline_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.prediction_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.specialist_pool_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.tensorboard_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.async_client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.client: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.pagers: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.transports: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.transports.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.transports.base: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.transports.grpc: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.services.vizier_service.transports.grpc_asyncio: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.__init__: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.accelerator_type: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.annotation: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.annotation_spec: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.artifact: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.batch_prediction_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.completion_stats: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.context: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.custom_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.data_item: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.data_labeling_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.dataset: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.dataset_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.deployed_index_ref: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.deployed_model_ref: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.encryption_spec: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.endpoint: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.entity_type: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.env_var: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.event: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.execution: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.explanation: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.explanation_metadata: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.feature: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.feature_monitoring_stats: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.feature_selector: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.featurestore: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.featurestore_monitoring: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.featurestore_online_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.featurestore_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.hyperparameter_tuning_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.index: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.index_endpoint: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.index_endpoint_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.index_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.io: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.job_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.job_state: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.lineage_subgraph: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.machine_resources: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.manual_batch_tuning_parameters: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.metadata_schema: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.metadata_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.metadata_store: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.migratable_resource: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.migration_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model_deployment_monitoring_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model_evaluation: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model_evaluation_slice: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model_monitoring: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.model_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.operation: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.pipeline_job: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.pipeline_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.pipeline_state: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.prediction_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.specialist_pool: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.specialist_pool_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.study: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard_data: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard_experiment: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard_run: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard_service: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.tensorboard_time_series: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.training_pipeline: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.types: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.unmanaged_container_model: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.user_action_reference: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.value: google_cloud_aiplatform + google.cloud.aiplatform_v1beta1.types.vizier_service: google_cloud_aiplatform + google.cloud.bigquery: google_cloud_bigquery + google.cloud.bigquery.__init__: google_cloud_bigquery + google.cloud.bigquery._helpers: google_cloud_bigquery + google.cloud.bigquery._http: google_cloud_bigquery + google.cloud.bigquery._pandas_helpers: google_cloud_bigquery + google.cloud.bigquery._tqdm_helpers: google_cloud_bigquery + google.cloud.bigquery.client: google_cloud_bigquery + google.cloud.bigquery.dataset: google_cloud_bigquery + google.cloud.bigquery.dbapi: google_cloud_bigquery + google.cloud.bigquery.dbapi.__init__: google_cloud_bigquery + google.cloud.bigquery.dbapi._helpers: google_cloud_bigquery + google.cloud.bigquery.dbapi.connection: google_cloud_bigquery + google.cloud.bigquery.dbapi.cursor: google_cloud_bigquery + google.cloud.bigquery.dbapi.exceptions: google_cloud_bigquery + google.cloud.bigquery.dbapi.types: google_cloud_bigquery + google.cloud.bigquery.encryption_configuration: google_cloud_bigquery + google.cloud.bigquery.enums: google_cloud_bigquery + google.cloud.bigquery.exceptions: google_cloud_bigquery + google.cloud.bigquery.external_config: google_cloud_bigquery + google.cloud.bigquery.format_options: google_cloud_bigquery + google.cloud.bigquery.iam: google_cloud_bigquery + google.cloud.bigquery.job: google_cloud_bigquery + google.cloud.bigquery.job.__init__: google_cloud_bigquery + google.cloud.bigquery.job.base: google_cloud_bigquery + google.cloud.bigquery.job.copy_: google_cloud_bigquery + google.cloud.bigquery.job.extract: google_cloud_bigquery + google.cloud.bigquery.job.load: google_cloud_bigquery + google.cloud.bigquery.job.query: google_cloud_bigquery + google.cloud.bigquery.magics: google_cloud_bigquery + google.cloud.bigquery.magics.__init__: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser.__init__: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser.exceptions: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser.lexer: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser.parser: google_cloud_bigquery + google.cloud.bigquery.magics.line_arg_parser.visitors: google_cloud_bigquery + google.cloud.bigquery.magics.magics: google_cloud_bigquery + google.cloud.bigquery.model: google_cloud_bigquery + google.cloud.bigquery.opentelemetry_tracing: google_cloud_bigquery + google.cloud.bigquery.query: google_cloud_bigquery + google.cloud.bigquery.retry: google_cloud_bigquery + google.cloud.bigquery.routine: google_cloud_bigquery + google.cloud.bigquery.routine.__init__: google_cloud_bigquery + google.cloud.bigquery.routine.routine: google_cloud_bigquery + google.cloud.bigquery.schema: google_cloud_bigquery + google.cloud.bigquery.table: google_cloud_bigquery + google.cloud.bigquery.version: google_cloud_bigquery + google.cloud.bigquery_v2: google_cloud_bigquery + google.cloud.bigquery_v2.__init__: google_cloud_bigquery + google.cloud.bigquery_v2.types: google_cloud_bigquery + google.cloud.bigquery_v2.types.__init__: google_cloud_bigquery + google.cloud.bigquery_v2.types.encryption_config: google_cloud_bigquery + google.cloud.bigquery_v2.types.model: google_cloud_bigquery + google.cloud.bigquery_v2.types.model_reference: google_cloud_bigquery + google.cloud.bigquery_v2.types.standard_sql: google_cloud_bigquery + google.cloud.bigquery_v2.types.table_reference: google_cloud_bigquery + google.cloud.client: google_cloud_core + google.cloud.client.__init__: google_cloud_core + google.cloud.environment_vars: google_cloud_core + google.cloud.environment_vars.__init__: google_cloud_core + google.cloud.exceptions: google_cloud_core + google.cloud.exceptions.__init__: google_cloud_core + google.cloud.extended_operations_pb2: googleapis_common_protos + google.cloud.location.locations_pb2: googleapis_common_protos + google.cloud.obsolete: google_cloud_core + google.cloud.obsolete.__init__: google_cloud_core + google.cloud.operation: google_cloud_core + google.cloud.operation.__init__: google_cloud_core + google.cloud.resourcemanager: google_cloud_resource_manager + google.cloud.resourcemanager.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3: google_cloud_resource_manager + google.cloud.resourcemanager_v3.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.folders.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.organizations.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.projects.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_bindings.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_keys.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.async_client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.client: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.pagers: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.transports: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.transports.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.transports.base: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.transports.grpc: google_cloud_resource_manager + google.cloud.resourcemanager_v3.services.tag_values.transports.grpc_asyncio: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.__init__: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.folders: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.organizations: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.projects: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.tag_bindings: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.tag_keys: google_cloud_resource_manager + google.cloud.resourcemanager_v3.types.tag_values: google_cloud_resource_manager + google.cloud.storage: google_cloud_storage + google.cloud.storage.__init__: google_cloud_storage + google.cloud.storage._helpers: google_cloud_storage + google.cloud.storage._http: google_cloud_storage + google.cloud.storage._signing: google_cloud_storage + google.cloud.storage.acl: google_cloud_storage + google.cloud.storage.batch: google_cloud_storage + google.cloud.storage.blob: google_cloud_storage + google.cloud.storage.bucket: google_cloud_storage + google.cloud.storage.client: google_cloud_storage + google.cloud.storage.constants: google_cloud_storage + google.cloud.storage.fileio: google_cloud_storage + google.cloud.storage.hmac_key: google_cloud_storage + google.cloud.storage.iam: google_cloud_storage + google.cloud.storage.notification: google_cloud_storage + google.cloud.storage.retry: google_cloud_storage + google.cloud.storage.version: google_cloud_storage + google.cloud.version: google_cloud_core + google.gapic.metadata: googleapis_common_protos + google.gapic.metadata.__init__: googleapis_common_protos + google.gapic.metadata.gapic_metadata_pb2: googleapis_common_protos + google.iam.v1: grpc_google_iam_v1 + google.iam.v1.__init__: grpc_google_iam_v1 + google.iam.v1.iam_policy_pb2: grpc_google_iam_v1 + google.iam.v1.iam_policy_pb2_grpc: grpc_google_iam_v1 + google.iam.v1.logging: grpc_google_iam_v1 + google.iam.v1.logging.__init__: grpc_google_iam_v1 + google.iam.v1.logging.audit_data_pb2: grpc_google_iam_v1 + google.iam.v1.options_pb2: grpc_google_iam_v1 + google.iam.v1.options_pb2_grpc: grpc_google_iam_v1 + google.iam.v1.policy_pb2: grpc_google_iam_v1 + google.iam.v1.policy_pb2_grpc: grpc_google_iam_v1 + google.logging.type: googleapis_common_protos + google.logging.type.__init__: googleapis_common_protos + google.logging.type.http_request_pb2: googleapis_common_protos + google.logging.type.log_severity_pb2: googleapis_common_protos + google.longrunning: googleapis_common_protos + google.longrunning.__init__: googleapis_common_protos + google.longrunning.operations_grpc: googleapis_common_protos + google.longrunning.operations_grpc_pb2: googleapis_common_protos + google.longrunning.operations_pb2: googleapis_common_protos + google.longrunning.operations_pb2_grpc: googleapis_common_protos + google.longrunning.operations_proto: googleapis_common_protos + google.longrunning.operations_proto_pb2: googleapis_common_protos + google.oauth2: google_auth + google.oauth2.__init__: google_auth + google.oauth2._client: google_auth + google.oauth2._client_async: google_auth + google.oauth2._credentials_async: google_auth + google.oauth2._id_token_async: google_auth + google.oauth2._reauth_async: google_auth + google.oauth2._service_account_async: google_auth + google.oauth2.challenges: google_auth + google.oauth2.credentials: google_auth + google.oauth2.id_token: google_auth + google.oauth2.reauth: google_auth + google.oauth2.service_account: google_auth + google.oauth2.sts: google_auth + google.oauth2.utils: google_auth + google.protobuf: protobuf + google.protobuf.__init__: protobuf + google.protobuf.any_pb2: protobuf + google.protobuf.api_pb2: protobuf + google.protobuf.compiler: protobuf + google.protobuf.compiler.__init__: protobuf + google.protobuf.compiler.plugin_pb2: protobuf + google.protobuf.descriptor: protobuf + google.protobuf.descriptor_database: protobuf + google.protobuf.descriptor_pb2: protobuf + google.protobuf.descriptor_pool: protobuf + google.protobuf.duration_pb2: protobuf + google.protobuf.empty_pb2: protobuf + google.protobuf.field_mask_pb2: protobuf + google.protobuf.internal: protobuf + google.protobuf.internal.__init__: protobuf + google.protobuf.internal._api_implementation: protobuf + google.protobuf.internal.api_implementation: protobuf + google.protobuf.internal.builder: protobuf + google.protobuf.internal.containers: protobuf + google.protobuf.internal.decoder: protobuf + google.protobuf.internal.encoder: protobuf + google.protobuf.internal.enum_type_wrapper: protobuf + google.protobuf.internal.extension_dict: protobuf + google.protobuf.internal.message_listener: protobuf + google.protobuf.internal.python_message: protobuf + google.protobuf.internal.type_checkers: protobuf + google.protobuf.internal.well_known_types: protobuf + google.protobuf.internal.wire_format: protobuf + google.protobuf.json_format: protobuf + google.protobuf.message: protobuf + google.protobuf.message_factory: protobuf + google.protobuf.proto_builder: protobuf + google.protobuf.pyext: protobuf + google.protobuf.pyext.__init__: protobuf + google.protobuf.pyext._message: protobuf + google.protobuf.pyext.cpp_message: protobuf + google.protobuf.reflection: protobuf + google.protobuf.service: protobuf + google.protobuf.service_reflection: protobuf + google.protobuf.source_context_pb2: protobuf + google.protobuf.struct_pb2: protobuf + google.protobuf.symbol_database: protobuf + google.protobuf.text_encoding: protobuf + google.protobuf.text_format: protobuf + google.protobuf.timestamp_pb2: protobuf + google.protobuf.type_pb2: protobuf + google.protobuf.util: protobuf + google.protobuf.util.__init__: protobuf + google.protobuf.util.json_format_pb2: protobuf + google.protobuf.util.json_format_proto3_pb2: protobuf + google.protobuf.wrappers_pb2: protobuf + google.resumable_media: google_resumable_media + google.resumable_media.__init__: google_resumable_media + google.resumable_media._download: google_resumable_media + google.resumable_media._helpers: google_resumable_media + google.resumable_media._upload: google_resumable_media + google.resumable_media.common: google_resumable_media + google.resumable_media.requests: google_resumable_media + google.resumable_media.requests.__init__: google_resumable_media + google.resumable_media.requests._request_helpers: google_resumable_media + google.resumable_media.requests.download: google_resumable_media + google.resumable_media.requests.upload: google_resumable_media + google.rpc: googleapis_common_protos + google.rpc.__init__: googleapis_common_protos + google.rpc.code_pb2: googleapis_common_protos + google.rpc.context: googleapis_common_protos + google.rpc.context.__init__: googleapis_common_protos + google.rpc.context.attribute_context_pb2: googleapis_common_protos + google.rpc.error_details_pb2: googleapis_common_protos + google.rpc.status_pb2: googleapis_common_protos + google.type: googleapis_common_protos + google.type.__init__: googleapis_common_protos + google.type.calendar_period_pb2: googleapis_common_protos + google.type.color_pb2: googleapis_common_protos + google.type.date_pb2: googleapis_common_protos + google.type.datetime_pb2: googleapis_common_protos + google.type.dayofweek_pb2: googleapis_common_protos + google.type.decimal_pb2: googleapis_common_protos + google.type.expr_pb2: googleapis_common_protos + google.type.fraction_pb2: googleapis_common_protos + google.type.interval_pb2: googleapis_common_protos + google.type.latlng_pb2: googleapis_common_protos + google.type.localized_text_pb2: googleapis_common_protos + google.type.money_pb2: googleapis_common_protos + google.type.month_pb2: googleapis_common_protos + google.type.phone_number_pb2: googleapis_common_protos + google.type.postal_address_pb2: googleapis_common_protos + google.type.quaternion_pb2: googleapis_common_protos + google.type.timeofday_pb2: googleapis_common_protos + google_crc32c: google_crc32c + google_crc32c.__config__: google_crc32c + google_crc32c.__init__: google_crc32c + google_crc32c._checksum: google_crc32c + google_crc32c._crc32c: google_crc32c + google_crc32c.cext: google_crc32c + google_crc32c.libs.libcrc32c-672e1704: google_crc32c + google_crc32c.python: google_crc32c + grpc: grpcio + grpc.__init__: grpcio + grpc._auth: grpcio + grpc._channel: grpcio + grpc._common: grpcio + grpc._compression: grpcio + grpc._cython: grpcio + grpc._cython.__init__: grpcio + grpc._cython._cygrpc: grpcio + grpc._cython._cygrpc.__init__: grpcio + grpc._cython.cygrpc: grpcio + grpc._grpcio_metadata: grpcio + grpc._interceptor: grpcio + grpc._plugin_wrapping: grpcio + grpc._runtime_protos: grpcio + grpc._server: grpcio + grpc._simple_stubs: grpcio + grpc._utilities: grpcio + grpc.aio: grpcio + grpc.aio.__init__: grpcio + grpc.aio._base_call: grpcio + grpc.aio._base_channel: grpcio + grpc.aio._base_server: grpcio + grpc.aio._call: grpcio + grpc.aio._channel: grpcio + grpc.aio._interceptor: grpcio + grpc.aio._metadata: grpcio + grpc.aio._server: grpcio + grpc.aio._typing: grpcio + grpc.aio._utils: grpcio + grpc.beta: grpcio + grpc.beta.__init__: grpcio + grpc.beta._client_adaptations: grpcio + grpc.beta._metadata: grpcio + grpc.beta._server_adaptations: grpcio + grpc.beta.implementations: grpcio + grpc.beta.interfaces: grpcio + grpc.beta.utilities: grpcio + grpc.experimental: grpcio + grpc.experimental.__init__: grpcio + grpc.experimental.aio: grpcio + grpc.experimental.aio.__init__: grpcio + grpc.experimental.gevent: grpcio + grpc.experimental.session_cache: grpcio + grpc.framework: grpcio + grpc.framework.__init__: grpcio + grpc.framework.common: grpcio + grpc.framework.common.__init__: grpcio + grpc.framework.common.cardinality: grpcio + grpc.framework.common.style: grpcio + grpc.framework.foundation: grpcio + grpc.framework.foundation.__init__: grpcio + grpc.framework.foundation.abandonment: grpcio + grpc.framework.foundation.callable_util: grpcio + grpc.framework.foundation.future: grpcio + grpc.framework.foundation.logging_pool: grpcio + grpc.framework.foundation.stream: grpcio + grpc.framework.foundation.stream_util: grpcio + grpc.framework.interfaces: grpcio + grpc.framework.interfaces.__init__: grpcio + grpc.framework.interfaces.base: grpcio + grpc.framework.interfaces.base.__init__: grpcio + grpc.framework.interfaces.base.base: grpcio + grpc.framework.interfaces.base.utilities: grpcio + grpc.framework.interfaces.face: grpcio + grpc.framework.interfaces.face.__init__: grpcio + grpc.framework.interfaces.face.face: grpcio + grpc.framework.interfaces.face.utilities: grpcio + grpc_status: grpcio_status + grpc_status.__init__: grpcio_status + grpc_status._async: grpcio_status + grpc_status._common: grpcio_status + grpc_status.rpc_status: grpcio_status + idna: idna + idna.__init__: idna + idna.codec: idna + idna.compat: idna + idna.core: idna + idna.idnadata: idna + idna.intranges: idna + idna.package_data: idna + idna.uts46data: idna + packaging: packaging + packaging.__about__: packaging + packaging.__init__: packaging + packaging._manylinux: packaging + packaging._musllinux: packaging + packaging._structures: packaging + packaging.markers: packaging + packaging.requirements: packaging + packaging.specifiers: packaging + packaging.tags: packaging + packaging.utils: packaging + packaging.version: packaging + proto: proto_plus + proto.__init__: proto_plus + proto._file_info: proto_plus + proto._package_info: proto_plus + proto.datetime_helpers: proto_plus + proto.enums: proto_plus + proto.fields: proto_plus + proto.marshal: proto_plus + proto.marshal.__init__: proto_plus + proto.marshal.collections: proto_plus + proto.marshal.collections.__init__: proto_plus + proto.marshal.collections.maps: proto_plus + proto.marshal.collections.repeated: proto_plus + proto.marshal.compat: proto_plus + proto.marshal.marshal: proto_plus + proto.marshal.rules: proto_plus + proto.marshal.rules.__init__: proto_plus + proto.marshal.rules.bytes: proto_plus + proto.marshal.rules.dates: proto_plus + proto.marshal.rules.enums: proto_plus + proto.marshal.rules.message: proto_plus + proto.marshal.rules.stringy_numbers: proto_plus + proto.marshal.rules.struct: proto_plus + proto.marshal.rules.wrappers: proto_plus + proto.message: proto_plus + proto.modules: proto_plus + proto.primitives: proto_plus + proto.utils: proto_plus + pyasn1: pyasn1 + pyasn1.__init__: pyasn1 + pyasn1.codec: pyasn1 + pyasn1.codec.__init__: pyasn1 + pyasn1.codec.ber: pyasn1 + pyasn1.codec.ber.__init__: pyasn1 + pyasn1.codec.ber.decoder: pyasn1 + pyasn1.codec.ber.encoder: pyasn1 + pyasn1.codec.ber.eoo: pyasn1 + pyasn1.codec.cer: pyasn1 + pyasn1.codec.cer.__init__: pyasn1 + pyasn1.codec.cer.decoder: pyasn1 + pyasn1.codec.cer.encoder: pyasn1 + pyasn1.codec.der: pyasn1 + pyasn1.codec.der.__init__: pyasn1 + pyasn1.codec.der.decoder: pyasn1 + pyasn1.codec.der.encoder: pyasn1 + pyasn1.codec.native: pyasn1 + pyasn1.codec.native.__init__: pyasn1 + pyasn1.codec.native.decoder: pyasn1 + pyasn1.codec.native.encoder: pyasn1 + pyasn1.compat: pyasn1 + pyasn1.compat.__init__: pyasn1 + pyasn1.compat.binary: pyasn1 + pyasn1.compat.calling: pyasn1 + pyasn1.compat.dateandtime: pyasn1 + pyasn1.compat.integer: pyasn1 + pyasn1.compat.octets: pyasn1 + pyasn1.compat.string: pyasn1 + pyasn1.debug: pyasn1 + pyasn1.error: pyasn1 + pyasn1.type: pyasn1 + pyasn1.type.__init__: pyasn1 + pyasn1.type.base: pyasn1 + pyasn1.type.char: pyasn1 + pyasn1.type.constraint: pyasn1 + pyasn1.type.error: pyasn1 + pyasn1.type.namedtype: pyasn1 + pyasn1.type.namedval: pyasn1 + pyasn1.type.opentype: pyasn1 + pyasn1.type.tag: pyasn1 + pyasn1.type.tagmap: pyasn1 + pyasn1.type.univ: pyasn1 + pyasn1.type.useful: pyasn1 + pyasn1_modules: pyasn1_modules + pyasn1_modules.__init__: pyasn1_modules + pyasn1_modules.pem: pyasn1_modules + pyasn1_modules.rfc1155: pyasn1_modules + pyasn1_modules.rfc1157: pyasn1_modules + pyasn1_modules.rfc1901: pyasn1_modules + pyasn1_modules.rfc1902: pyasn1_modules + pyasn1_modules.rfc1905: pyasn1_modules + pyasn1_modules.rfc2251: pyasn1_modules + pyasn1_modules.rfc2314: pyasn1_modules + pyasn1_modules.rfc2315: pyasn1_modules + pyasn1_modules.rfc2437: pyasn1_modules + pyasn1_modules.rfc2459: pyasn1_modules + pyasn1_modules.rfc2511: pyasn1_modules + pyasn1_modules.rfc2560: pyasn1_modules + pyasn1_modules.rfc2631: pyasn1_modules + pyasn1_modules.rfc2634: pyasn1_modules + pyasn1_modules.rfc2985: pyasn1_modules + pyasn1_modules.rfc2986: pyasn1_modules + pyasn1_modules.rfc3114: pyasn1_modules + pyasn1_modules.rfc3161: pyasn1_modules + pyasn1_modules.rfc3274: pyasn1_modules + pyasn1_modules.rfc3279: pyasn1_modules + pyasn1_modules.rfc3280: pyasn1_modules + pyasn1_modules.rfc3281: pyasn1_modules + pyasn1_modules.rfc3412: pyasn1_modules + pyasn1_modules.rfc3414: pyasn1_modules + pyasn1_modules.rfc3447: pyasn1_modules + pyasn1_modules.rfc3560: pyasn1_modules + pyasn1_modules.rfc3565: pyasn1_modules + pyasn1_modules.rfc3709: pyasn1_modules + pyasn1_modules.rfc3770: pyasn1_modules + pyasn1_modules.rfc3779: pyasn1_modules + pyasn1_modules.rfc3852: pyasn1_modules + pyasn1_modules.rfc4043: pyasn1_modules + pyasn1_modules.rfc4055: pyasn1_modules + pyasn1_modules.rfc4073: pyasn1_modules + pyasn1_modules.rfc4108: pyasn1_modules + pyasn1_modules.rfc4210: pyasn1_modules + pyasn1_modules.rfc4211: pyasn1_modules + pyasn1_modules.rfc4334: pyasn1_modules + pyasn1_modules.rfc4985: pyasn1_modules + pyasn1_modules.rfc5035: pyasn1_modules + pyasn1_modules.rfc5083: pyasn1_modules + pyasn1_modules.rfc5084: pyasn1_modules + pyasn1_modules.rfc5208: pyasn1_modules + pyasn1_modules.rfc5280: pyasn1_modules + pyasn1_modules.rfc5480: pyasn1_modules + pyasn1_modules.rfc5649: pyasn1_modules + pyasn1_modules.rfc5652: pyasn1_modules + pyasn1_modules.rfc5751: pyasn1_modules + pyasn1_modules.rfc5755: pyasn1_modules + pyasn1_modules.rfc5913: pyasn1_modules + pyasn1_modules.rfc5914: pyasn1_modules + pyasn1_modules.rfc5915: pyasn1_modules + pyasn1_modules.rfc5916: pyasn1_modules + pyasn1_modules.rfc5917: pyasn1_modules + pyasn1_modules.rfc5924: pyasn1_modules + pyasn1_modules.rfc5934: pyasn1_modules + pyasn1_modules.rfc5940: pyasn1_modules + pyasn1_modules.rfc5958: pyasn1_modules + pyasn1_modules.rfc5990: pyasn1_modules + pyasn1_modules.rfc6010: pyasn1_modules + pyasn1_modules.rfc6019: pyasn1_modules + pyasn1_modules.rfc6031: pyasn1_modules + pyasn1_modules.rfc6032: pyasn1_modules + pyasn1_modules.rfc6120: pyasn1_modules + pyasn1_modules.rfc6170: pyasn1_modules + pyasn1_modules.rfc6187: pyasn1_modules + pyasn1_modules.rfc6210: pyasn1_modules + pyasn1_modules.rfc6211: pyasn1_modules + pyasn1_modules.rfc6402: pyasn1_modules + pyasn1_modules.rfc6402-1: pyasn1_modules + pyasn1_modules.rfc6482: pyasn1_modules + pyasn1_modules.rfc6486: pyasn1_modules + pyasn1_modules.rfc6487: pyasn1_modules + pyasn1_modules.rfc6664: pyasn1_modules + pyasn1_modules.rfc6955: pyasn1_modules + pyasn1_modules.rfc6960: pyasn1_modules + pyasn1_modules.rfc7030: pyasn1_modules + pyasn1_modules.rfc7191: pyasn1_modules + pyasn1_modules.rfc7229: pyasn1_modules + pyasn1_modules.rfc7292: pyasn1_modules + pyasn1_modules.rfc7296: pyasn1_modules + pyasn1_modules.rfc7508: pyasn1_modules + pyasn1_modules.rfc7585: pyasn1_modules + pyasn1_modules.rfc7633: pyasn1_modules + pyasn1_modules.rfc7773: pyasn1_modules + pyasn1_modules.rfc7894: pyasn1_modules + pyasn1_modules.rfc7894-1: pyasn1_modules + pyasn1_modules.rfc7906: pyasn1_modules + pyasn1_modules.rfc7914: pyasn1_modules + pyasn1_modules.rfc8017: pyasn1_modules + pyasn1_modules.rfc8018: pyasn1_modules + pyasn1_modules.rfc8103: pyasn1_modules + pyasn1_modules.rfc8209: pyasn1_modules + pyasn1_modules.rfc8226: pyasn1_modules + pyasn1_modules.rfc8358: pyasn1_modules + pyasn1_modules.rfc8360: pyasn1_modules + pyasn1_modules.rfc8398: pyasn1_modules + pyasn1_modules.rfc8410: pyasn1_modules + pyasn1_modules.rfc8418: pyasn1_modules + pyasn1_modules.rfc8419: pyasn1_modules + pyasn1_modules.rfc8479: pyasn1_modules + pyasn1_modules.rfc8494: pyasn1_modules + pyasn1_modules.rfc8520: pyasn1_modules + pyasn1_modules.rfc8619: pyasn1_modules + pyasn1_modules.rfc8649: pyasn1_modules + pyparsing: pyparsing + pyparsing.__init__: pyparsing + pyparsing.actions: pyparsing + pyparsing.common: pyparsing + pyparsing.core: pyparsing + pyparsing.diagram: pyparsing + pyparsing.diagram.__init__: pyparsing + pyparsing.exceptions: pyparsing + pyparsing.helpers: pyparsing + pyparsing.results: pyparsing + pyparsing.testing: pyparsing + pyparsing.unicode: pyparsing + pyparsing.util: pyparsing + requests: requests + requests.__init__: requests + requests.__version__: requests + requests._internal_utils: requests + requests.adapters: requests + requests.api: requests + requests.auth: requests + requests.certs: requests + requests.compat: requests + requests.cookies: requests + requests.exceptions: requests + requests.help: requests + requests.hooks: requests + requests.models: requests + requests.packages: requests + requests.sessions: requests + requests.status_codes: requests + requests.structures: requests + requests.utils: requests + rsa: rsa + rsa.__init__: rsa + rsa._compat: rsa + rsa.asn1: rsa + rsa.cli: rsa + rsa.common: rsa + rsa.core: rsa + rsa.key: rsa + rsa.parallel: rsa + rsa.pem: rsa + rsa.pkcs1: rsa + rsa.pkcs1_v2: rsa + rsa.prime: rsa + rsa.randnum: rsa + rsa.transform: rsa + rsa.util: rsa + samples.generated_samples.cloudresourcemanager_v3_generated_folders_create_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_create_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_delete_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_delete_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_get_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_get_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_get_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_get_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_list_folders_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_list_folders_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_move_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_move_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_search_folders_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_search_folders_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_set_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_set_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_test_iam_permissions_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_test_iam_permissions_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_undelete_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_undelete_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_update_folder_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_folders_update_folder_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_get_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_get_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_get_organization_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_get_organization_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_search_organizations_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_search_organizations_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_set_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_set_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_test_iam_permissions_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_organizations_test_iam_permissions_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_create_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_create_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_delete_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_delete_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_get_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_get_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_get_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_get_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_list_projects_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_list_projects_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_move_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_move_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_search_projects_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_search_projects_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_set_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_set_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_test_iam_permissions_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_test_iam_permissions_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_undelete_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_undelete_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_update_project_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_projects_update_project_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_create_tag_binding_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_create_tag_binding_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_delete_tag_binding_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_delete_tag_binding_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_list_tag_bindings_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_bindings_list_tag_bindings_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_create_tag_key_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_create_tag_key_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_delete_tag_key_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_delete_tag_key_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_get_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_get_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_get_tag_key_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_get_tag_key_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_list_tag_keys_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_list_tag_keys_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_set_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_set_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_test_iam_permissions_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_test_iam_permissions_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_update_tag_key_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_keys_update_tag_key_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_create_tag_value_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_create_tag_value_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_delete_tag_value_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_delete_tag_value_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_get_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_get_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_get_tag_value_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_get_tag_value_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_list_tag_values_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_list_tag_values_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_set_iam_policy_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_set_iam_policy_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_test_iam_permissions_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_test_iam_permissions_sync: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_update_tag_value_async: google_cloud_resource_manager + samples.generated_samples.cloudresourcemanager_v3_generated_tag_values_update_tag_value_sync: google_cloud_resource_manager + scripts.fixup_resourcemanager_v3_keywords: google_cloud_resource_manager + scripts.readme-gen.readme_gen: google_cloud_resource_manager + six: six + tests: google_cloud_resource_manager + tests.__init__: google_cloud_resource_manager + tests.unit: google_cloud_resource_manager + tests.unit.__init__: google_cloud_resource_manager + tests.unit.gapic: google_cloud_resource_manager + tests.unit.gapic.__init__: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.__init__: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_folders: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_organizations: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_projects: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_tag_bindings: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_tag_keys: google_cloud_resource_manager + tests.unit.gapic.resourcemanager_v3.test_tag_values: google_cloud_resource_manager + urllib3: urllib3 + urllib3.__init__: urllib3 + urllib3._collections: urllib3 + urllib3._version: urllib3 + urllib3.connection: urllib3 + urllib3.connectionpool: urllib3 + urllib3.contrib: urllib3 + urllib3.contrib.__init__: urllib3 + urllib3.contrib._appengine_environ: urllib3 + urllib3.contrib._securetransport: urllib3 + urllib3.contrib._securetransport.__init__: urllib3 + urllib3.contrib._securetransport.bindings: urllib3 + urllib3.contrib._securetransport.low_level: urllib3 + urllib3.contrib.appengine: urllib3 + urllib3.contrib.ntlmpool: urllib3 + urllib3.contrib.pyopenssl: urllib3 + urllib3.contrib.securetransport: urllib3 + urllib3.contrib.socks: urllib3 + urllib3.exceptions: urllib3 + urllib3.fields: urllib3 + urllib3.filepost: urllib3 + urllib3.packages: urllib3 + urllib3.packages.__init__: urllib3 + urllib3.packages.backports: urllib3 + urllib3.packages.backports.__init__: urllib3 + urllib3.packages.backports.makefile: urllib3 + urllib3.packages.six: urllib3 + urllib3.poolmanager: urllib3 + urllib3.request: urllib3 + urllib3.response: urllib3 + urllib3.util: urllib3 + urllib3.util.__init__: urllib3 + urllib3.util.connection: urllib3 + urllib3.util.proxy: urllib3 + urllib3.util.queue: urllib3 + urllib3.util.request: urllib3 + urllib3.util.response: urllib3 + urllib3.util.retry: urllib3 + urllib3.util.ssl_: urllib3 + urllib3.util.ssl_match_hostname: urllib3 + urllib3.util.ssltransport: urllib3 + urllib3.util.timeout: urllib3 + urllib3.util.url: urllib3 + urllib3.util.wait: urllib3 + pip_repository: + name: gazelle_python_test + incremental: true +integrity: 32e38932043eca090a64ca741758d8e4a5817c2cd7dc821fc927914c32fb3114 diff --git a/gazelle/testdata/with_third_party_requirements_from_imports/test.yaml b/gazelle/testdata/with_third_party_requirements_from_imports/test.yaml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/gazelle/testdata/with_third_party_requirements_from_imports/test.yaml @@ -0,0 +1 @@ +--- |