Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit e29fdec

Browse files
committed
upgrade place_before owlbot functionality
1 parent d2b7b85 commit e29fdec

1 file changed

Lines changed: 30 additions & 25 deletions

File tree

owlbot.py

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,25 @@ def get_staging_dirs(
101101
# Customize noxfile.py
102102
# ----------------------------------------------------------------------------
103103

104-
def place_before(path, text, *before_text, escape=None):
105-
replacement = "\n".join(before_text) + "\n" + text
104+
def insert(path, text, *added_text, escape=None, insert_after=False):
105+
"""
106+
Args:
107+
path (str): The file path to modify.
108+
text (str): The text to search for in the file, to serve as an anchor for insertion.
109+
added_text (str): The text to add before (or after) the found text.
110+
escape (str): A string of characters to escape in the text.
111+
insert_after (bool): If True, insert the added text after the found text. Otherwise, insert before.
112+
"""
113+
if insert_after:
114+
replacement = text + "\n" + "\n".join(added_text)
115+
else:
116+
replacement = "\n".join(added_text) + "\n" + text
106117
if escape:
107118
for c in escape:
108119
text = text.replace(c, '\\' + c)
109-
s.replace([path], text, replacement)
120+
num_replacements = s.replace([path], text, replacement)
121+
if num_replacements == 0:
122+
raise ValueError(f"Failed to insert text into {path} using anchor '{text}'.")
110123

111124
system_emulated_session = """
112125
@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)
@@ -137,7 +150,7 @@ def system_emulated(session):
137150
138151
"""
139152

140-
place_before(
153+
insert(
141154
"noxfile.py",
142155
"@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)\n"
143156
"def system(session):",
@@ -165,7 +178,7 @@ def conformance(session):
165178
166179
"""
167180

168-
place_before(
181+
insert(
169182
"noxfile.py",
170183
"@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)\n"
171184
"def system(session):",
@@ -224,59 +237,51 @@ def lint_setup_py(session):
224237
session.run("python", "docs/scripts/patch_devsite_toc.py")
225238
"""
226239

227-
place_before(
240+
insert(
228241
"noxfile.py",
229-
"@nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)\n"
230-
"def prerelease_deps(session):",
242+
'os.path.join("docs", "_build", "html", ""),\n )',
231243
docfx_postprocess,
232-
escape="()"
244+
escape="()",
245+
insert_after=True
233246
)
234247

235248

236249
# ----------------------------------------------------------------------------
237250
# Customize gapics to include PooledBigtableGrpcAsyncIOTransport
238251
# ----------------------------------------------------------------------------
239-
def insert(file, before_line, insert_line, after_line, escape=None):
240-
target = before_line + "\n" + after_line
241-
if escape:
242-
for c in escape:
243-
target = target.replace(c, '\\' + c)
244-
replacement = before_line + "\n" + insert_line + "\n" + after_line
245-
s.replace(file, target, replacement)
246-
247252

248253
insert(
249254
"google/cloud/bigtable_v2/services/bigtable/client.py",
250255
"from .transports.grpc_asyncio import BigtableGrpcAsyncIOTransport",
251256
"from .transports.pooled_grpc_asyncio import PooledBigtableGrpcAsyncIOTransport",
252-
"from .transports.rest import BigtableRestTransport"
257+
insert_after=True
253258
)
254259
insert(
255260
"google/cloud/bigtable_v2/services/bigtable/client.py",
256261
' _transport_registry["grpc_asyncio"] = BigtableGrpcAsyncIOTransport',
257262
' _transport_registry["pooled_grpc_asyncio"] = PooledBigtableGrpcAsyncIOTransport',
258-
' _transport_registry["rest"] = BigtableRestTransport',
259-
escape='[]"'
263+
escape='[]"',
264+
insert_after=True
260265
)
261266
insert(
262267
"google/cloud/bigtable_v2/services/bigtable/transports/__init__.py",
263268
'_transport_registry["grpc_asyncio"] = BigtableGrpcAsyncIOTransport',
264269
'_transport_registry["pooled_grpc_asyncio"] = PooledBigtableGrpcAsyncIOTransport',
265-
'_transport_registry["rest"] = BigtableRestTransport',
266-
escape='[]"'
270+
escape='[]"',
271+
insert_after=True
267272
)
268273
insert(
269274
"google/cloud/bigtable_v2/services/bigtable/transports/__init__.py",
270275
"from .grpc_asyncio import BigtableGrpcAsyncIOTransport",
271276
"from .pooled_grpc_asyncio import PooledBigtableGrpcAsyncIOTransport",
272-
"from .rest import BigtableRestTransport"
277+
insert_after=True
273278
)
274279
insert(
275280
"google/cloud/bigtable_v2/services/bigtable/transports/__init__.py",
276281
' "BigtableGrpcAsyncIOTransport",',
277282
' "PooledBigtableGrpcAsyncIOTransport",',
278-
' "BigtableRestTransport",',
279-
escape='"'
283+
escape='"',
284+
insert_after=True
280285
)
281286

282287

0 commit comments

Comments
 (0)