tdambrin / sf_git

Python-based CLI for Snowflake worksheets Git versioning
MIT License
21 stars 2 forks source link

In Windows, encoding needs to be set to utf-8 #22

Open nagasank opened 1 week ago

nagasank commented 1 week ago

As the author suggested, this can be fixed in the cache.py by adding the encoding.

for ws in worksheets:
        ws_name = re.sub(r"[ :/]", "_", ws.name)
        extension = "py" if ws.content_type == "python" else "sql"
        if ws.folder_name:
            folder_name = re.sub(r"[ :/]", "_", ws.folder_name)
            file_name = f"{folder_name}/{ws_name}.{extension}"
            worksheet_metadata_file_name = (
                f"{folder_name}/.{ws_name}_metadata.json"
            )

            # create folder if not exists
            if not os.path.exists(
                config.GLOBAL_CONFIG.worksheets_path / folder_name
            ):
                os.mkdir(config.GLOBAL_CONFIG.worksheets_path / folder_name)
        else:
            file_name = f"{ws_name}.{extension}"
            worksheet_metadata_file_name = f".{ws_name}_metadata.json"

        with open(config.GLOBAL_CONFIG.worksheets_path / file_name, "w",encoding='utf-8') as f:
            f.write(ws.content)
        ws_metadata = {
            "name": ws.name,
            "_id": ws._id,
            "folder_name": ws.folder_name,
            "folder_id": ws.folder_id,
            "content_type": ws.content_type,
        }
        with open(
            config.GLOBAL_CONFIG.worksheets_path
            / worksheet_metadata_file_name,
            "w",
            encoding='utf-8'
        ) as f:
            f.write(json.dumps(ws_metadata))
    print("[Worksheets] Saved")
nagasank commented 1 week ago

Looks like it is already fixed

tdambrin commented 1 week ago

fixed in #18 indeed! deployed for >= 1.4.2