Parse Microsoft Flight Simulator UserCfg.opt files
Project description
UserCfg-Opt-Parser
This is a parser for Microsoft Flight Simulator UserCfg.opt files. While the format has some similarities with JSON, I didn't recognize it, nor any AI tools I asked.
Example:
Version 66
{Graphics
Version 1.1.0
Preset Custom
{Texture
MaxAnisotropy 8
Quality 1
}
{SuperSampling
SuperSampling 2
}
}
This package allows you to read and write files in this format. While I have not done extensive testing to see what exactly Microsoft Flight Simulator will and will not accept, the parser tends to be forgiving (CRLF or LF are both accepted, spaces instead of tabs, etc.), the writer matches the format of the file on my computer exactly.
I have found no documentation on the format, so this package is no more than educated guesses. Any undefined behaviors will raise an exception.
Usage
pip install usercfg-opt-parser
A json
-like API is provided. File objects must be in binary mode to be able
to handle line endings.
import os
import usercfgopt
with open(
os.path.join(os.environ["APPDATA"], "Microsoft Flight Simulator", "UserCfg.opt"),
"rb",
) as fp:
data = usercfgopt.load(fp)
data["Video"]["VSync"] = 1
with open("NewUserCfg.opt", "wb") as fp:
usercfgopt.dump(data, fp)
FAQs
Why are booleans not allowed?
Because it was unclear if "ON" was truly a boolean, and other 1s and 0s could be integers with more than 2 values.
Why is it so slow?
It's Python and it's a parser written for a single obscure file type. Just getting this working exhausted my motivation.
Should I use this file format?
Please god no. Unless you feel that YAML doesn't have enough ambiguity for your tastes, then I guess sure, go for it.
Development
python -m pip install pipx --upgrade
pipx ensurepath
pipx install poetry
pipx install vscode-task-runner
# (Optionally) Add pre-commit plugin
poetry self add poetry-pre-commit-plugin
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file usercfg_opt_parser-1.0.0.tar.gz
.
File metadata
- Download URL: usercfg_opt_parser-1.0.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 756ad0f6bb37108b9876e2ef9a467b4f213db564833a3ecdee73844afc69068e |
|
MD5 | 08437d15f5ac43b0003038b022c101f4 |
|
BLAKE2b-256 | 83c14020e29a7ca5c60610b758d1e55b1c1208b929a1d073856e94d87e031fcc |
File details
Details for the file usercfg_opt_parser-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: usercfg_opt_parser-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 031eb9e18afdb24ef9c4014f34717fe7fe5a57775df562c8cd2670c673184353 |
|
MD5 | 1ea6bdc507f8bd8850aaedb96317df01 |
|
BLAKE2b-256 | 4e09fa3ebc2112b24590bcdd208a76a85559bf216ca809b1fb504126daadd5ab |