pygooglecloud 0.0.3__tar.gz → 0.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pygooglecloud-0.0.4/.gitignore +163 -0
- pygooglecloud-0.0.4/PKG-INFO +72 -0
- pygooglecloud-0.0.4/README.md +43 -0
- pygooglecloud-0.0.4/pyproject.toml +86 -0
- pygooglecloud-0.0.4/src/pygooglecloud/__init__.py +3 -0
- pygooglecloud-0.0.4/src/pygooglecloud/main.py +146 -0
- {pygooglecloud-0.0.3 → pygooglecloud-0.0.4/src}/pygooglecloud/static.py +1 -1
- pygooglecloud-0.0.3/PKG-INFO +0 -45
- pygooglecloud-0.0.3/README.rst +0 -17
- pygooglecloud-0.0.3/pygooglecloud/__init__.py +0 -0
- pygooglecloud-0.0.3/pygooglecloud/main.py +0 -37
- pygooglecloud-0.0.3/pygooglecloud.egg-info/PKG-INFO +0 -45
- pygooglecloud-0.0.3/pygooglecloud.egg-info/SOURCES.txt +0 -14
- pygooglecloud-0.0.3/pygooglecloud.egg-info/dependency_links.txt +0 -1
- pygooglecloud-0.0.3/pygooglecloud.egg-info/entry_points.txt +0 -2
- pygooglecloud-0.0.3/pygooglecloud.egg-info/requires.txt +0 -3
- pygooglecloud-0.0.3/pygooglecloud.egg-info/top_level.txt +0 -1
- pygooglecloud-0.0.3/setup.cfg +0 -10
- pygooglecloud-0.0.3/setup.py +0 -56
- {pygooglecloud-0.0.3 → pygooglecloud-0.0.4}/LICENSE +0 -0
- {pygooglecloud-0.0.3 → pygooglecloud-0.0.4/src}/pygooglecloud/configs.py +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# generated
|
|
2
|
+
/build/
|
|
3
|
+
/toolchain/
|
|
4
|
+
/dist/
|
|
5
|
+
/target/
|
|
6
|
+
/out/
|
|
7
|
+
*.out
|
|
8
|
+
/.mypy_cache/
|
|
9
|
+
|
|
10
|
+
# folders to git ignore
|
|
11
|
+
/*.gi
|
|
12
|
+
|
|
13
|
+
# gems
|
|
14
|
+
/gems/
|
|
15
|
+
|
|
16
|
+
# hive
|
|
17
|
+
derby.log
|
|
18
|
+
dfs/
|
|
19
|
+
metastore_db/
|
|
20
|
+
|
|
21
|
+
# c, c++ stuff
|
|
22
|
+
*.o
|
|
23
|
+
*.so
|
|
24
|
+
*.a
|
|
25
|
+
*.dis
|
|
26
|
+
/Makefile.bak
|
|
27
|
+
*.o.ur-safe
|
|
28
|
+
*.oo
|
|
29
|
+
*.elf
|
|
30
|
+
*.dep
|
|
31
|
+
/core.*
|
|
32
|
+
lib*.so.*
|
|
33
|
+
*.gch
|
|
34
|
+
*.pchi
|
|
35
|
+
*.gcda
|
|
36
|
+
|
|
37
|
+
# kernel stuff
|
|
38
|
+
*.ko
|
|
39
|
+
# *.mod
|
|
40
|
+
*.mod.c
|
|
41
|
+
*.mod.cmd
|
|
42
|
+
.*.o.cmd
|
|
43
|
+
.*.ko.cmd
|
|
44
|
+
.*.o.tmp
|
|
45
|
+
.*.o.d
|
|
46
|
+
.tmp_versions
|
|
47
|
+
Module.symvers
|
|
48
|
+
modules.order
|
|
49
|
+
*.objdump
|
|
50
|
+
/src/kernel/.*.tmp
|
|
51
|
+
.modules.*.cmd
|
|
52
|
+
.Module.*.cmd
|
|
53
|
+
/flags.cfg
|
|
54
|
+
# device tree binary files and binary overlay files
|
|
55
|
+
*.dtb
|
|
56
|
+
*.dtbo
|
|
57
|
+
|
|
58
|
+
# sphinx
|
|
59
|
+
/docs/_build/
|
|
60
|
+
/docs/.doctrees/environment.pickle
|
|
61
|
+
|
|
62
|
+
# installations
|
|
63
|
+
/external/
|
|
64
|
+
/install/
|
|
65
|
+
*.tar.gz
|
|
66
|
+
|
|
67
|
+
# python
|
|
68
|
+
__pycache__/
|
|
69
|
+
*.py[oc]
|
|
70
|
+
/wheel/
|
|
71
|
+
/.venv/
|
|
72
|
+
.coverage
|
|
73
|
+
.coverage.*
|
|
74
|
+
coverage.xml
|
|
75
|
+
*.egg-info/
|
|
76
|
+
|
|
77
|
+
# mine
|
|
78
|
+
/.pydmt.build.errors
|
|
79
|
+
/.pydmt/
|
|
80
|
+
*.stamp
|
|
81
|
+
*.stamp.*
|
|
82
|
+
|
|
83
|
+
# java
|
|
84
|
+
*.class
|
|
85
|
+
*.jar
|
|
86
|
+
*.war
|
|
87
|
+
*.ear
|
|
88
|
+
*.jsa
|
|
89
|
+
/.mtj.tmp/
|
|
90
|
+
/hs_err_pid*
|
|
91
|
+
|
|
92
|
+
# node modules
|
|
93
|
+
node_modules/
|
|
94
|
+
|
|
95
|
+
# ppt, pdf
|
|
96
|
+
/doc/odp/*.pdf
|
|
97
|
+
/doc/odp/*.ppt
|
|
98
|
+
|
|
99
|
+
# intel compiler pgo
|
|
100
|
+
*.dyn
|
|
101
|
+
*.dpi
|
|
102
|
+
# *.lock
|
|
103
|
+
|
|
104
|
+
# dwarf dynamic debug info
|
|
105
|
+
*.dwo
|
|
106
|
+
|
|
107
|
+
# locks by open office
|
|
108
|
+
.~lock.*
|
|
109
|
+
|
|
110
|
+
# haskell
|
|
111
|
+
*.hi
|
|
112
|
+
|
|
113
|
+
# repositries of deb packages
|
|
114
|
+
/deb/mypackage/DEBIAN/control
|
|
115
|
+
|
|
116
|
+
# generic
|
|
117
|
+
*.log
|
|
118
|
+
|
|
119
|
+
# scons
|
|
120
|
+
.sconsign.dblite
|
|
121
|
+
|
|
122
|
+
# DS_Store
|
|
123
|
+
.DS_Store
|
|
124
|
+
|
|
125
|
+
# Java stuff
|
|
126
|
+
.gradle/
|
|
127
|
+
target/
|
|
128
|
+
build/
|
|
129
|
+
|
|
130
|
+
# Jupyter notebooks
|
|
131
|
+
.ipynb_checkpoints/
|
|
132
|
+
|
|
133
|
+
# c#
|
|
134
|
+
**/obj/
|
|
135
|
+
**/bin/
|
|
136
|
+
|
|
137
|
+
# vscode
|
|
138
|
+
.vscode/
|
|
139
|
+
|
|
140
|
+
# qemu
|
|
141
|
+
*.qcow2
|
|
142
|
+
*.iso
|
|
143
|
+
|
|
144
|
+
# jetbrains and eclipse
|
|
145
|
+
.cache
|
|
146
|
+
.settings
|
|
147
|
+
.classpath
|
|
148
|
+
.project
|
|
149
|
+
.project.xml
|
|
150
|
+
.idea/
|
|
151
|
+
build.properties
|
|
152
|
+
|
|
153
|
+
# spark
|
|
154
|
+
spark-warehouse/
|
|
155
|
+
|
|
156
|
+
# terraform
|
|
157
|
+
.terraform*
|
|
158
|
+
terraform.tfstate
|
|
159
|
+
terraform.tfstate.backup
|
|
160
|
+
|
|
161
|
+
# scala
|
|
162
|
+
target/
|
|
163
|
+
project/
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pygooglecloud
|
|
3
|
+
Version: 0.0.4
|
|
4
|
+
Summary: pygooglecloud helps you with command line interaction with gcp
|
|
5
|
+
Project-URL: Homepage, https://github.com/veltzer/pygooglecloud
|
|
6
|
+
Project-URL: Bug Tracker, https://github.com/veltzer/pygooglecloud/issues
|
|
7
|
+
Project-URL: Documentation, https://veltzer.github.io/pygooglecloud
|
|
8
|
+
Project-URL: Download, https://pypi.org/project/pygooglecloud/
|
|
9
|
+
Project-URL: Repository, https://github.com/veltzer/pygooglecloud
|
|
10
|
+
Author-email: Mark Veltzer <mark.veltzer@gmail.com>
|
|
11
|
+
Maintainer-email: Mark Veltzer <mark.veltzer@gmail.com>
|
|
12
|
+
License-Expression: MIT
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Keywords: gae,gcp,python,shell,utilities
|
|
15
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
|
+
Classifier: Environment :: Console
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Topic :: Utilities
|
|
24
|
+
Requires-Python: >=3.12
|
|
25
|
+
Requires-Dist: google-auth
|
|
26
|
+
Requires-Dist: pylogconf
|
|
27
|
+
Requires-Dist: pytconf
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# *pygooglecloud* project by Mark Veltzer
|
|
31
|
+
|
|
32
|
+
description: pygooglecloud helps you with command line interaction with gcp
|
|
33
|
+
|
|
34
|
+
project website: https://veltzer.github.io/pygooglecloud
|
|
35
|
+
|
|
36
|
+
author: Mark Veltzer
|
|
37
|
+
|
|
38
|
+
version: 0.0.4
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
## github
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
## build
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
## pypi
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+

|
|
54
|
+

|
|
55
|
+

|
|
56
|
+

|
|
57
|
+
|
|
58
|
+
## pypi download
|
|
59
|
+
|
|
60
|
+

|
|
61
|
+

|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## contact me
|
|
67
|
+
[mailto](mailto:mark.veltzer@gmail.com)
|
|
68
|
+

|
|
69
|
+

|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
Mark Veltzer, Copyright © 2024, 2025
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# *pygooglecloud* project by Mark Veltzer
|
|
2
|
+
|
|
3
|
+
description: pygooglecloud helps you with command line interaction with gcp
|
|
4
|
+
|
|
5
|
+
project website: https://veltzer.github.io/pygooglecloud
|
|
6
|
+
|
|
7
|
+
author: Mark Veltzer
|
|
8
|
+
|
|
9
|
+
version: 0.0.4
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
## github
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
## build
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
## pypi
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+

|
|
25
|
+

|
|
26
|
+

|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
## pypi download
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+

|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## contact me
|
|
38
|
+
[mailto](mailto:mark.veltzer@gmail.com)
|
|
39
|
+

|
|
40
|
+

|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
Mark Veltzer, Copyright © 2024, 2025
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pygooglecloud"
|
|
7
|
+
version = "0.0.4"
|
|
8
|
+
requires-python = ">=3.12"
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "Mark Veltzer", email = "mark.veltzer@gmail.com" }
|
|
11
|
+
]
|
|
12
|
+
maintainers = [
|
|
13
|
+
{ name = "Mark Veltzer", email = "mark.veltzer@gmail.com" }
|
|
14
|
+
]
|
|
15
|
+
description = "pygooglecloud helps you with command line interaction with gcp"
|
|
16
|
+
readme = "README.md"
|
|
17
|
+
license = "MIT"
|
|
18
|
+
keywords=[
|
|
19
|
+
"gcp",
|
|
20
|
+
"gae",
|
|
21
|
+
"python",
|
|
22
|
+
"shell",
|
|
23
|
+
"utilities",
|
|
24
|
+
]
|
|
25
|
+
classifiers = [
|
|
26
|
+
"Development Status :: 4 - Beta",
|
|
27
|
+
"Environment :: Console",
|
|
28
|
+
"Operating System :: OS Independent",
|
|
29
|
+
"Programming Language :: Python",
|
|
30
|
+
"Programming Language :: Python :: 3",
|
|
31
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
32
|
+
"Programming Language :: Python :: 3.12",
|
|
33
|
+
"Topic :: Utilities",
|
|
34
|
+
"License :: OSI Approved :: MIT License",
|
|
35
|
+
]
|
|
36
|
+
dependencies = [
|
|
37
|
+
"pylogconf",
|
|
38
|
+
"pytconf",
|
|
39
|
+
"google-auth",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[project.urls]
|
|
43
|
+
"Homepage" = "https://github.com/veltzer/pygooglecloud"
|
|
44
|
+
"Bug Tracker" = "https://github.com/veltzer/pygooglecloud/issues"
|
|
45
|
+
"Documentation" = "https://veltzer.github.io/pygooglecloud"
|
|
46
|
+
"Download" = "https://pypi.org/project/pygooglecloud/"
|
|
47
|
+
"Repository" = "https://github.com/veltzer/pygooglecloud"
|
|
48
|
+
|
|
49
|
+
[project.scripts]
|
|
50
|
+
pygooglecloud = "pygooglecloud.main:main"
|
|
51
|
+
|
|
52
|
+
[tool.ruff]
|
|
53
|
+
line-length = 130
|
|
54
|
+
|
|
55
|
+
[tool.pytest.ini_options]
|
|
56
|
+
pythonpath = ["src"]
|
|
57
|
+
|
|
58
|
+
[tool.hatch.build.targets.wheel]
|
|
59
|
+
packages = ["src/pygooglecloud"]
|
|
60
|
+
|
|
61
|
+
[tool.hatch.build.targets.sdist]
|
|
62
|
+
include = [
|
|
63
|
+
"src/pygooglecloud/",
|
|
64
|
+
"README.md",
|
|
65
|
+
"LICENSE",
|
|
66
|
+
"pyproject.toml"
|
|
67
|
+
]
|
|
68
|
+
exclude = [
|
|
69
|
+
".gitignore",
|
|
70
|
+
".github/",
|
|
71
|
+
"tests/",
|
|
72
|
+
"docs/",
|
|
73
|
+
"config/",
|
|
74
|
+
"*.md",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[tool.mypy]
|
|
78
|
+
python_version = "3.12"
|
|
79
|
+
warn_return_any = true
|
|
80
|
+
warn_unused_configs = true
|
|
81
|
+
|
|
82
|
+
[tool.hatch.envs.default]
|
|
83
|
+
installer = "uv"
|
|
84
|
+
|
|
85
|
+
[tool.uv.pip]
|
|
86
|
+
prerelease = "disallow"
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"""
|
|
2
|
+
The default group of operations that pygooglecloud has
|
|
3
|
+
"""
|
|
4
|
+
import configparser
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
import pylogconf.core
|
|
10
|
+
from pytconf import register_endpoint, register_main, config_arg_parse_and_launch
|
|
11
|
+
import google.auth._cloud_sdk
|
|
12
|
+
|
|
13
|
+
from pygooglecloud.static import APP_NAME, DESCRIPTION, VERSION_STR
|
|
14
|
+
|
|
15
|
+
# Per-repo file (at the git root) naming the gcloud configuration to use.
|
|
16
|
+
GCP_CONF_FILE = ".gcp.conf"
|
|
17
|
+
GCP_CONF_KEY = "gcp_configuration_name"
|
|
18
|
+
|
|
19
|
+
_LOGIN_HINT = "Run: gcloud auth application-default login"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _die(message: str) -> None:
|
|
23
|
+
"""Print a short, clear, single-line error to stderr and exit non-zero.
|
|
24
|
+
|
|
25
|
+
No traceback: this command is meant to be called from shell startup
|
|
26
|
+
(e.g. an auto-enter hook), so a wall of Python stack trace is just noise.
|
|
27
|
+
"""
|
|
28
|
+
print(f"pygooglecloud: {message}", file=sys.stderr)
|
|
29
|
+
raise SystemExit(1)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _read_configuration_name() -> str:
|
|
33
|
+
"""Return the gcloud configuration name from ./.gcp.conf at the git root.
|
|
34
|
+
|
|
35
|
+
The file is a flat key=value file, e.g.:
|
|
36
|
+
gcp_configuration_name=machines
|
|
37
|
+
"""
|
|
38
|
+
if not os.path.isfile(GCP_CONF_FILE):
|
|
39
|
+
_die(f"no {GCP_CONF_FILE} found in the current directory (the git root).")
|
|
40
|
+
# configparser needs a section header; .gcp.conf has none, so synthesize one.
|
|
41
|
+
parser = configparser.ConfigParser()
|
|
42
|
+
with open(GCP_CONF_FILE, encoding="utf-8") as stream:
|
|
43
|
+
parser.read_string("[gcp]\n" + stream.read())
|
|
44
|
+
name = parser["gcp"].get(GCP_CONF_KEY, "").strip()
|
|
45
|
+
if not name:
|
|
46
|
+
_die(f"{GCP_CONF_FILE} does not set {GCP_CONF_KEY}.")
|
|
47
|
+
return name
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _read_project_from_configuration(name: str) -> str:
|
|
51
|
+
"""Return the [core] project from the gcloud configuration named `name`.
|
|
52
|
+
|
|
53
|
+
Reads the on-disk gcloud configuration file directly (an INI file). This is
|
|
54
|
+
a pure file read with no network call and no dependency on the gcloud CLI,
|
|
55
|
+
which keeps invocation from a shell startup hook instant.
|
|
56
|
+
"""
|
|
57
|
+
config_dir = google.auth._cloud_sdk.get_config_path()
|
|
58
|
+
config_file = os.path.join(config_dir, "configurations", f"config_{name}")
|
|
59
|
+
if not os.path.isfile(config_file):
|
|
60
|
+
_die(f"gcloud configuration '{name}' not found at {config_file}.")
|
|
61
|
+
parser = configparser.ConfigParser()
|
|
62
|
+
parser.read(config_file, encoding="utf-8")
|
|
63
|
+
project = parser.get("core", "project", fallback="").strip()
|
|
64
|
+
if not project:
|
|
65
|
+
_die(f"gcloud configuration '{name}' has no project set.")
|
|
66
|
+
return project
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@register_endpoint(
|
|
70
|
+
description="get the current project id",
|
|
71
|
+
configs=[],
|
|
72
|
+
)
|
|
73
|
+
def get_project_id() -> None:
|
|
74
|
+
"""
|
|
75
|
+
Print the GCP project id for this repository.
|
|
76
|
+
|
|
77
|
+
The project is resolved purely from local files (no network, no ADC):
|
|
78
|
+
1. read ./.gcp.conf (at the git root) for the gcloud configuration name
|
|
79
|
+
2. read that gcloud configuration's [core] project
|
|
80
|
+
|
|
81
|
+
Failures are reported as short one-line messages, no traceback.
|
|
82
|
+
"""
|
|
83
|
+
name = _read_configuration_name()
|
|
84
|
+
print(_read_project_from_configuration(name))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _is_valid_json_file(path: str) -> bool:
|
|
88
|
+
"""Return True if `path` is a file containing parseable JSON."""
|
|
89
|
+
try:
|
|
90
|
+
with open(path, encoding="utf-8") as stream:
|
|
91
|
+
json.load(stream)
|
|
92
|
+
except (OSError, ValueError):
|
|
93
|
+
return False
|
|
94
|
+
return True
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@register_endpoint(
|
|
98
|
+
description="check that Google credentials are present and well-formed",
|
|
99
|
+
configs=[],
|
|
100
|
+
)
|
|
101
|
+
def check_credentials() -> None:
|
|
102
|
+
"""
|
|
103
|
+
Verify that local Google credentials are present and well-formed.
|
|
104
|
+
|
|
105
|
+
This is a pure local-file check with NO network call, so it is safe to run
|
|
106
|
+
from a shell startup hook without slowing down directory changes. It does
|
|
107
|
+
not (and cannot, without the network) detect a key that has been disabled
|
|
108
|
+
or revoked server-side; it catches the common cases of a missing or
|
|
109
|
+
corrupt credentials file.
|
|
110
|
+
|
|
111
|
+
Two credential styles, with advice tailored to each:
|
|
112
|
+
- service-account key: GOOGLE_APPLICATION_CREDENTIALS points at a JSON key
|
|
113
|
+
file (as set per-repo from the .gcp.conf project). A missing or malformed
|
|
114
|
+
file means the key needs to be (re)placed.
|
|
115
|
+
- user login: no GOOGLE_APPLICATION_CREDENTIALS; the gcloud Application
|
|
116
|
+
Default Credentials file is used, refreshed via `gcloud auth ... login`.
|
|
117
|
+
"""
|
|
118
|
+
sa_key = os.environ.get("GOOGLE_APPLICATION_CREDENTIALS")
|
|
119
|
+
if sa_key:
|
|
120
|
+
if not os.path.isfile(sa_key):
|
|
121
|
+
_die(f"service-account key not found at {sa_key}.")
|
|
122
|
+
if not _is_valid_json_file(sa_key):
|
|
123
|
+
_die(f"service-account key at {sa_key} is not valid JSON.")
|
|
124
|
+
print("credentials OK")
|
|
125
|
+
return
|
|
126
|
+
|
|
127
|
+
adc_path = google.auth._cloud_sdk.get_application_default_credentials_path()
|
|
128
|
+
if not os.path.isfile(adc_path):
|
|
129
|
+
_die(f"no Google credentials found. {_LOGIN_HINT}")
|
|
130
|
+
if not _is_valid_json_file(adc_path):
|
|
131
|
+
_die(f"Google credentials at {adc_path} are malformed. {_LOGIN_HINT}")
|
|
132
|
+
print("credentials OK")
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
@register_main(
|
|
136
|
+
main_description=DESCRIPTION,
|
|
137
|
+
app_name=APP_NAME,
|
|
138
|
+
version=VERSION_STR,
|
|
139
|
+
)
|
|
140
|
+
def main():
|
|
141
|
+
pylogconf.core.setup()
|
|
142
|
+
config_arg_parse_and_launch()
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
if __name__ == "__main__":
|
|
146
|
+
main()
|
pygooglecloud-0.0.3/PKG-INFO
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: pygooglecloud
|
|
3
|
-
Version: 0.0.3
|
|
4
|
-
Summary: pygooglecloud helps you with command line interaction with gcp
|
|
5
|
-
Home-page: https://veltzer.github.io/pygooglecloud
|
|
6
|
-
Download-URL: https://github.com/veltzer/pygooglecloud
|
|
7
|
-
Author: Mark Veltzer
|
|
8
|
-
Author-email: mark.veltzer@gmail.com
|
|
9
|
-
Maintainer: Mark Veltzer
|
|
10
|
-
Maintainer-email: mark.veltzer@gmail.com
|
|
11
|
-
License: MIT
|
|
12
|
-
Keywords: gcp,gae,python,shell,utilities
|
|
13
|
-
Platform: python3
|
|
14
|
-
Classifier: Development Status :: 4 - Beta
|
|
15
|
-
Classifier: Environment :: Console
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Programming Language :: Python
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
-
Classifier: Topic :: Utilities
|
|
22
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
23
|
-
Description-Content-Type: text/x-rst
|
|
24
|
-
License-File: LICENSE
|
|
25
|
-
Requires-Dist: pylogconf
|
|
26
|
-
Requires-Dist: pytconf
|
|
27
|
-
Requires-Dist: google-auth
|
|
28
|
-
|
|
29
|
-
===============
|
|
30
|
-
*pygooglecloud*
|
|
31
|
-
===============
|
|
32
|
-
|
|
33
|
-
.. image:: https://img.shields.io/pypi/v/pygooglecloud
|
|
34
|
-
|
|
35
|
-
.. image:: https://img.shields.io/github/license/veltzer/pygooglecloud
|
|
36
|
-
|
|
37
|
-
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
|
38
|
-
|
|
39
|
-
project website: https://veltzer.github.io/pygooglecloud
|
|
40
|
-
|
|
41
|
-
author: Mark Veltzer
|
|
42
|
-
|
|
43
|
-
version: 0.0.3
|
|
44
|
-
|
|
45
|
-
Mark Veltzer <mark.veltzer@gmail.com>, Copyright © 2024
|
pygooglecloud-0.0.3/README.rst
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
===============
|
|
2
|
-
*pygooglecloud*
|
|
3
|
-
===============
|
|
4
|
-
|
|
5
|
-
.. image:: https://img.shields.io/pypi/v/pygooglecloud
|
|
6
|
-
|
|
7
|
-
.. image:: https://img.shields.io/github/license/veltzer/pygooglecloud
|
|
8
|
-
|
|
9
|
-
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
|
10
|
-
|
|
11
|
-
project website: https://veltzer.github.io/pygooglecloud
|
|
12
|
-
|
|
13
|
-
author: Mark Veltzer
|
|
14
|
-
|
|
15
|
-
version: 0.0.3
|
|
16
|
-
|
|
17
|
-
Mark Veltzer <mark.veltzer@gmail.com>, Copyright © 2024
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
The default group of operations that pygooglecloud has
|
|
3
|
-
"""
|
|
4
|
-
import pylogconf.core
|
|
5
|
-
from pytconf import register_endpoint, register_main, config_arg_parse_and_launch
|
|
6
|
-
import google.auth
|
|
7
|
-
|
|
8
|
-
from pygooglecloud.static import APP_NAME, DESCRIPTION, VERSION_STR
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@register_endpoint(
|
|
12
|
-
description="get the current project id",
|
|
13
|
-
configs=[],
|
|
14
|
-
)
|
|
15
|
-
def get_project_id() -> None:
|
|
16
|
-
"""
|
|
17
|
-
This will go to ~/.config/gcloud/configurtions/config_default unless
|
|
18
|
-
GOOGLE_APPLICATION_CREDENTIALS environment variable points to something else
|
|
19
|
-
if ~/.config/gcloud/configurtions/config_default is missing this will throw an exception.
|
|
20
|
-
"""
|
|
21
|
-
_, project_id = google.auth.default()
|
|
22
|
-
assert project_id is not None, "Could not find a project configured"
|
|
23
|
-
print(project_id)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
@register_main(
|
|
27
|
-
main_description=DESCRIPTION,
|
|
28
|
-
app_name=APP_NAME,
|
|
29
|
-
version=VERSION_STR,
|
|
30
|
-
)
|
|
31
|
-
def main():
|
|
32
|
-
pylogconf.core.setup()
|
|
33
|
-
config_arg_parse_and_launch()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if __name__ == '__main__':
|
|
37
|
-
main()
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: pygooglecloud
|
|
3
|
-
Version: 0.0.3
|
|
4
|
-
Summary: pygooglecloud helps you with command line interaction with gcp
|
|
5
|
-
Home-page: https://veltzer.github.io/pygooglecloud
|
|
6
|
-
Download-URL: https://github.com/veltzer/pygooglecloud
|
|
7
|
-
Author: Mark Veltzer
|
|
8
|
-
Author-email: mark.veltzer@gmail.com
|
|
9
|
-
Maintainer: Mark Veltzer
|
|
10
|
-
Maintainer-email: mark.veltzer@gmail.com
|
|
11
|
-
License: MIT
|
|
12
|
-
Keywords: gcp,gae,python,shell,utilities
|
|
13
|
-
Platform: python3
|
|
14
|
-
Classifier: Development Status :: 4 - Beta
|
|
15
|
-
Classifier: Environment :: Console
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Programming Language :: Python
|
|
18
|
-
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
-
Classifier: Topic :: Utilities
|
|
22
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
23
|
-
Description-Content-Type: text/x-rst
|
|
24
|
-
License-File: LICENSE
|
|
25
|
-
Requires-Dist: pylogconf
|
|
26
|
-
Requires-Dist: pytconf
|
|
27
|
-
Requires-Dist: google-auth
|
|
28
|
-
|
|
29
|
-
===============
|
|
30
|
-
*pygooglecloud*
|
|
31
|
-
===============
|
|
32
|
-
|
|
33
|
-
.. image:: https://img.shields.io/pypi/v/pygooglecloud
|
|
34
|
-
|
|
35
|
-
.. image:: https://img.shields.io/github/license/veltzer/pygooglecloud
|
|
36
|
-
|
|
37
|
-
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
|
38
|
-
|
|
39
|
-
project website: https://veltzer.github.io/pygooglecloud
|
|
40
|
-
|
|
41
|
-
author: Mark Veltzer
|
|
42
|
-
|
|
43
|
-
version: 0.0.3
|
|
44
|
-
|
|
45
|
-
Mark Veltzer <mark.veltzer@gmail.com>, Copyright © 2024
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
README.rst
|
|
3
|
-
setup.cfg
|
|
4
|
-
setup.py
|
|
5
|
-
pygooglecloud/__init__.py
|
|
6
|
-
pygooglecloud/configs.py
|
|
7
|
-
pygooglecloud/main.py
|
|
8
|
-
pygooglecloud/static.py
|
|
9
|
-
pygooglecloud.egg-info/PKG-INFO
|
|
10
|
-
pygooglecloud.egg-info/SOURCES.txt
|
|
11
|
-
pygooglecloud.egg-info/dependency_links.txt
|
|
12
|
-
pygooglecloud.egg-info/entry_points.txt
|
|
13
|
-
pygooglecloud.egg-info/requires.txt
|
|
14
|
-
pygooglecloud.egg-info/top_level.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pygooglecloud
|
pygooglecloud-0.0.3/setup.cfg
DELETED
pygooglecloud-0.0.3/setup.py
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import setuptools
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def get_readme():
|
|
5
|
-
with open("README.rst") as f:
|
|
6
|
-
return f.read()
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
setuptools.setup(
|
|
10
|
-
# the first three fields are a must according to the documentation
|
|
11
|
-
name="pygooglecloud",
|
|
12
|
-
version="0.0.3",
|
|
13
|
-
packages=[
|
|
14
|
-
"pygooglecloud",
|
|
15
|
-
],
|
|
16
|
-
# from here all is optional
|
|
17
|
-
description="pygooglecloud helps you with command line interaction with gcp",
|
|
18
|
-
long_description=get_readme(),
|
|
19
|
-
long_description_content_type="text/x-rst",
|
|
20
|
-
author="Mark Veltzer",
|
|
21
|
-
author_email="mark.veltzer@gmail.com",
|
|
22
|
-
maintainer="Mark Veltzer",
|
|
23
|
-
maintainer_email="mark.veltzer@gmail.com",
|
|
24
|
-
keywords=[
|
|
25
|
-
"gcp",
|
|
26
|
-
"gae",
|
|
27
|
-
"python",
|
|
28
|
-
"shell",
|
|
29
|
-
"utilities",
|
|
30
|
-
],
|
|
31
|
-
url="https://veltzer.github.io/pygooglecloud",
|
|
32
|
-
download_url="https://github.com/veltzer/pygooglecloud",
|
|
33
|
-
license="MIT",
|
|
34
|
-
platforms=[
|
|
35
|
-
"python3",
|
|
36
|
-
],
|
|
37
|
-
install_requires=[
|
|
38
|
-
"pylogconf",
|
|
39
|
-
"pytconf",
|
|
40
|
-
"google-auth",
|
|
41
|
-
],
|
|
42
|
-
classifiers=[
|
|
43
|
-
"Development Status :: 4 - Beta",
|
|
44
|
-
"Environment :: Console",
|
|
45
|
-
"Operating System :: OS Independent",
|
|
46
|
-
"Programming Language :: Python",
|
|
47
|
-
"Programming Language :: Python :: 3",
|
|
48
|
-
"Programming Language :: Python :: 3 :: Only",
|
|
49
|
-
"Programming Language :: Python :: 3.11",
|
|
50
|
-
"Topic :: Utilities",
|
|
51
|
-
"License :: OSI Approved :: MIT License",
|
|
52
|
-
],
|
|
53
|
-
entry_points={"console_scripts": [
|
|
54
|
-
"pygooglecloud=pygooglecloud.main:main",
|
|
55
|
-
]},
|
|
56
|
-
)
|
|
File without changes
|
|
File without changes
|