diff --git a/.chronus/changes/python-fix-customized-namespace-2025-6-23-2-6-58.md b/.chronus/changes/python-fix-customized-namespace-2025-6-23-2-6-58.md new file mode 100644 index 00000000000..09a243cadca --- /dev/null +++ b/.chronus/changes/python-fix-customized-namespace-2025-6-23-2-6-58.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-client-python" +--- + +Don't overwrite existing pkgutil init file \ No newline at end of file diff --git a/packages/http-client-python/generator/pygen/codegen/serializers/__init__.py b/packages/http-client-python/generator/pygen/codegen/serializers/__init__.py index d3a3766479a..4c8f68b520c 100644 --- a/packages/http-client-python/generator/pygen/codegen/serializers/__init__.py +++ b/packages/http-client-python/generator/pygen/codegen/serializers/__init__.py @@ -154,11 +154,13 @@ def serialize(self) -> None: # add clients folder if there are clients in this namespace self._serialize_client_and_config_files(client_namespace, client_namespace_type.clients, env) else: - # add pkgutil init file if no clients in this namespace - self.write_file( - exec_path / Path("__init__.py"), - general_serializer.serialize_pkgutil_init_file(), + # add/keep pkgutil init file if no clients in this namespace + init_path = exec_path / Path("__init__.py") + original_init_content = self.read_file(init_path) + init_content = ( + original_init_content if original_init_content else general_serializer.serialize_pkgutil_init_file() ) + self.write_file(init_path, init_content) # _utils/py.typed/_types.py/_validation.py # is always put in top level namespace