ValvePython / vdf

📜 Package for working with Valve's text and binary KeyValue format
https://pypi.org/project/vdf/
MIT License
165 stars 30 forks source link

Parsing failure when value ends with a backslash #28

Open junhochoi-gamedev opened 4 years ago

junhochoi-gamedev commented 4 years ago

Parsing fails even with Escaped=False. vdf.load(open('test.vdf'), merge_duplicate_keys=False, escaped=False)

test.vdf contents:

"ParentKey1"
{
    "ValueKey1" ".\path\"
    "ParentKey2"
    {
        "ValueKey2" "2"
    }
}

Output SyntaxError: vdf.parse: one too many closing parenthasis

Also see examples from Valve documentation https://partner.steamgames.com/doc/sdk/uploading under headings "Depot Build Script" and "App Build Script"

rossengeorgiev commented 3 years ago

Generally, VDF supports \ for escapes, but that doesn't look to be the case for those files. File paths on Windows, like the ones in the examples, cannot have ", so escaping is pointless there. There is Desc key, but that probably break if there is " in the value, unless it just ignored. This must be special variation of valve's KVs.

To support this, there will need to be a parameter to disable escaping in load/dump