Skip to content

Commit

Permalink
Fixed double-writes. (#874)
Browse files Browse the repository at this point in the history
* Fixed file-overwrites on generation.

Signed-off-by: Alex Loyko <[email protected]>

* Fixed CHANGELOG

Signed-off-by: Alex Loyko <[email protected]>

* fixing test and lint

Signed-off-by: Alex Loyko <[email protected]>

* Addressed comments.

Signed-off-by: Alex Loyko <[email protected]>

---------

Signed-off-by: Alex Loyko <[email protected]>
  • Loading branch information
AlexLoyko authored Dec 20, 2024
1 parent 7815c6a commit 9777ebe
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 45 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
### Updated APIs
### Changed
- Small refactor of AWS Signer classes for both sync and async clients ([866](https://github.com/opensearch-project/opensearch-py/pull/866))
- Small refactor to fix overwriting the module files when generating apis ([874](https://github.com/opensearch-project/opensearch-py/pull/874))
### Deprecated
### Removed
### Fixed
Expand Down
6 changes: 2 additions & 4 deletions test_opensearchpy/test_async/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,8 @@ async def test_nowarn_when_test_uses_https_if_verify_certs_is_off(self) -> None:
assert w == []
else:
assert len(w) == 1
assert (
str(w[0].message) == "enable_cleanup_closed ignored because "
"https://github.com/python/cpython/pull/118960 is fixed in "
"Python version sys.version_info(major=3, minor=12, micro=7, releaselevel='final', serial=0)"
assert "https://github.com/python/cpython/pull/118960" in str(
w[0].message
)

assert isinstance(con.session, aiohttp.ClientSession)
Expand Down
82 changes: 41 additions & 41 deletions utils/generate_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,52 +272,52 @@ def dump(self) -> None:
if "from " + utils + " import" not in line
)

with open(self.filepath, "w", encoding="utf-8") as file:
if update_header is True:
file.write(
self.header[:license_position]
+ "\n"
+ header_content
+ "\n\n"
+ "#replace_token#\n"
+ self.header[license_position:]
)
else:
file.write(
self.header[:header_position]
+ "\n"
+ "#replace_token#\n"
+ self.header[header_position:]
)
for api in self._apis:
file.write(api.to_python())
module_content = ""
if update_header is True:
module_content += (
self.header[:license_position]
+ "\n"
+ header_content
+ "\n\n"
+ "#replace_token#\n"
+ self.header[license_position:]
)
else:
module_content += (
self.header[:header_position]
+ "\n"
+ "#replace_token#\n"
+ self.header[header_position:]
)
for api in self._apis:
module_content += api.to_python()

# Generating imports for each module
utils_imports = ""
file_content = ""
with open(self.filepath, encoding="utf-8") as file:
content = file.read()
keywords = [
"SKIP_IN_PATH",
"_normalize_hosts",
"_escape",
"_make_path",
"query_params",
"_bulk_body",
"_base64_auth_header",
"NamespacedClient",
"AddonClient",
]
present_keywords = [keyword for keyword in keywords if keyword in content]

if present_keywords:
utils_imports = "from " + utils + " import"
result = f"{utils_imports} {', '.join(present_keywords)}"
utils_imports = result
file_content = content.replace("#replace_token#", utils_imports)

keywords = [
"SKIP_IN_PATH",
"_normalize_hosts",
"_escape",
"_make_path",
"query_params",
"_bulk_body",
"_base64_auth_header",
"NamespacedClient",
"AddonClient",
]
present_keywords = [
keyword for keyword in keywords if keyword in module_content
]

if present_keywords:
utils_imports = "from " + utils + " import"
result = f"{utils_imports} {', '.join(present_keywords)}"
utils_imports = result
module_content = module_content.replace("#replace_token#", utils_imports)

with open(self.filepath, "w", encoding="utf-8") as file:
file.write(file_content)
file.write(module_content)

@property
def filepath(self) -> Any:
Expand Down

0 comments on commit 9777ebe

Please sign in to comment.