diff --git a/python/packages/autogen-ext/src/autogen_ext/code_executors/docker_jupyter/_docker_jupyter.py b/python/packages/autogen-ext/src/autogen_ext/code_executors/docker_jupyter/_docker_jupyter.py index a7dbccc43381..4ac5c3f19518 100644 --- a/python/packages/autogen-ext/src/autogen_ext/code_executors/docker_jupyter/_docker_jupyter.py +++ b/python/packages/autogen-ext/src/autogen_ext/code_executors/docker_jupyter/_docker_jupyter.py @@ -275,7 +275,7 @@ def _save_html(self, html_data: str) -> str: """Save html data to a file.""" filename = f"{uuid.uuid4().hex}.html" path = os.path.join(str(self._output_dir), filename) - with open(path, "w") as f: + with open(path, "w", encoding="utf-8") as f: f.write(html_data) return os.path.abspath(path) diff --git a/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/chat_completion_client_recorder.py b/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/chat_completion_client_recorder.py index 8b981312f427..66c304a6ae05 100644 --- a/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/chat_completion_client_recorder.py +++ b/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/chat_completion_client_recorder.py @@ -73,7 +73,7 @@ def __init__( # Load the previously recorded messages and responses from disk. self.logger.info("Replay mode enabled.\nRetrieving session from: " + self.session_file_path) try: - with open(self.session_file_path, "r") as f: + with open(self.session_file_path, "r", encoding="utf-8") as f: self.records = json.load(f) except Exception as e: error_str = f"\nFailed to load recorded session: '{self.session_file_path}': {e}" @@ -211,7 +211,7 @@ def finalize(self) -> None: # Create the directory if it doesn't exist. os.makedirs(os.path.dirname(self.session_file_path), exist_ok=True) # Write the records to disk. - with open(self.session_file_path, "w") as f: + with open(self.session_file_path, "w", encoding="utf-8") as f: json.dump(self.records, f, indent=2) self.logger.info("\nRecorded session was saved to: " + self.session_file_path) except Exception as e: diff --git a/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/page_logger.py b/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/page_logger.py index fa7fe2f1d567..2ccec94d42cc 100644 --- a/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/page_logger.py +++ b/python/packages/autogen-ext/src/autogen_ext/experimental/task_centric_memory/utils/page_logger.py @@ -117,7 +117,7 @@ def finalize(self) -> None: # Write the hash and other details to a file. hash_str, num_files, num_subdirs = hash_directory(self.log_dir) hash_path = os.path.join(self.log_dir, "hash.txt") - with open(hash_path, "w") as f: + with open(hash_path, "w", encoding="utf-8") as f: f.write(hash_str) f.write("\n") f.write("{} files\n".format(num_files)) @@ -386,7 +386,7 @@ def flush(self, finished: bool = False) -> None: return # Create a call tree of the log. call_tree_path = os.path.join(self.log_dir, self.name + ".html") - with open(call_tree_path, "w") as f: + with open(call_tree_path, "w", encoding="utf-8") as f: f.write(_html_opening("0 Call Tree", finished=finished)) f.write(f"

{self.name}

") f.write("\n") @@ -498,7 +498,7 @@ def flush(self) -> None: Writes the HTML page to disk. """ page_path = os.path.join(self.page_logger.log_dir, self.index_str + ".html") - with open(page_path, "w") as f: + with open(page_path, "w", encoding="utf-8") as f: f.write(_html_opening(self.file_title, finished=self.finished)) f.write(f"

{self.file_title}

\n") for line in self.lines: diff --git a/python/packages/autogen-studio/autogenstudio/cli.py b/python/packages/autogen-studio/autogenstudio/cli.py index 373f13e087f2..aa92013c98df 100644 --- a/python/packages/autogen-studio/autogenstudio/cli.py +++ b/python/packages/autogen-studio/autogenstudio/cli.py @@ -69,7 +69,7 @@ def ui( # Create temporary env file to share configuration with uvicorn workers env_file_path = get_env_file_path() - with open(env_file_path, "w") as temp_env: + with open(env_file_path, "w", encoding="utf-8") as temp_env: for key, value in env_vars.items(): temp_env.write(f"{key}={value}\n") diff --git a/python/packages/autogen-studio/autogenstudio/database/schema_manager.py b/python/packages/autogen-studio/autogenstudio/database/schema_manager.py index 0762b0890d30..6b942354c4ce 100644 --- a/python/packages/autogen-studio/autogenstudio/database/schema_manager.py +++ b/python/packages/autogen-studio/autogenstudio/database/schema_manager.py @@ -75,7 +75,7 @@ def _update_configuration(self) -> None: # Update alembic.ini config_content = self._generate_alembic_ini_content() - with open(self.alembic_ini_path, "w") as f: + with open(self.alembic_ini_path, "w", encoding="utf-8") as f: f.write(config_content) # Update env.py @@ -115,7 +115,7 @@ def _initialize_alembic(self) -> bool: # Create initial config file for alembic init config_content = self._generate_alembic_ini_content() - with open(self.alembic_ini_path, "w") as f: + with open(self.alembic_ini_path, "w", encoding="utf-8") as f: f.write(config_content) # Use the config we just created @@ -187,7 +187,7 @@ def run_migrations_online() -> None: else: run_migrations_online()""" - with open(env_path, "w") as f: + with open(env_path, "w", encoding="utf-8") as f: f.write(content) def _generate_alembic_ini_content(self) -> str: @@ -239,7 +239,7 @@ def update_script_template(self): """Update the Alembic script template to include SQLModel.""" template_path = self.alembic_dir / "script.py.mako" try: - with open(template_path, "r") as f: + with open(template_path, "r", encoding="utf-8") as f: content = f.read() # Add sqlmodel import to imports section @@ -248,7 +248,7 @@ def update_script_template(self): content = content.replace(import_section, new_imports) - with open(template_path, "w") as f: + with open(template_path, "w", encoding="utf-8") as f: f.write(content) return True @@ -265,7 +265,7 @@ def _update_env_py(self, env_path: Path) -> None: self._create_minimal_env_py(env_path) return try: - with open(env_path, "r") as f: + with open(env_path, "r", encoding="utf-8") as f: content = f.read() # Add SQLModel import if not present @@ -303,7 +303,7 @@ def _update_env_py(self, env_path: Path) -> None: )""", ) - with open(env_path, "w") as f: + with open(env_path, "w", encoding="utf-8") as f: f.write(content) except Exception as e: logger.error(f"Failed to update env.py: {e}") diff --git a/python/packages/autogen-studio/autogenstudio/gallery/builder.py b/python/packages/autogen-studio/autogenstudio/gallery/builder.py index 55a124367dd4..b83456ec0ee6 100644 --- a/python/packages/autogen-studio/autogenstudio/gallery/builder.py +++ b/python/packages/autogen-studio/autogenstudio/gallery/builder.py @@ -630,5 +630,5 @@ def create_default_lite_team(): gallery = create_default_gallery() # Save to file - with open("gallery_default.json", "w") as f: + with open("gallery_default.json", "w", encoding="utf-8") as f: f.write(gallery.model_dump_json(indent=2)) diff --git a/python/packages/autogen-studio/autogenstudio/lite/studio.py b/python/packages/autogen-studio/autogenstudio/lite/studio.py index 94b25cd85b6e..6ff0b4011f82 100644 --- a/python/packages/autogen-studio/autogenstudio/lite/studio.py +++ b/python/packages/autogen-studio/autogenstudio/lite/studio.py @@ -151,7 +151,7 @@ def _setup_environment(self) -> str: } env_file_path = self._get_env_file_path() - with open(env_file_path, "w") as temp_env: + with open(env_file_path, "w", encoding="utf-8") as temp_env: for key, value in env_vars.items(): temp_env.write(f"{key}={value}\n") diff --git a/python/packages/autogen-studio/autogenstudio/web/auth/manager.py b/python/packages/autogen-studio/autogenstudio/web/auth/manager.py index ab16e0432d0a..de391e093261 100644 --- a/python/packages/autogen-studio/autogenstudio/web/auth/manager.py +++ b/python/packages/autogen-studio/autogenstudio/web/auth/manager.py @@ -117,7 +117,7 @@ def is_valid_token(self, token: str) -> bool: def from_yaml(cls, yaml_path: str) -> Self: """Create AuthManager from YAML config file.""" try: - with open(yaml_path, "r") as f: + with open(yaml_path, "r", encoding="utf-8") as f: config_data = yaml.safe_load(f) config = AuthConfig(**config_data) return cls(config)