@@ -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
111124system_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
248253insert (
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)
254259insert (
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)
261266insert (
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)
268273insert (
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)
274279insert (
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