Skip to main content

Library for working with Valve's VDF text format

Project description

Latest version released on PyPi MIT License Test coverage Build status of master branch

VDF is Valve’s KeyValue text file format

https://developer.valvesoftware.com/wiki/KeyValues

The module works just like json to convert VDF to a dict, and vise-versa.

Problems & solutions

  • There are known files that contain duplicate keys. This can be solved by creating a class inheriting from dict and implementing a way to handle duplicate keys. See example implementation of DuplicateOrderedDict.

  • By default parsing will return a dict, which doesn’t preserve nor guarantee key order due to hash randomization. If key order is important then I suggest using collections.OrderedDict as mapper. See example below.

Install

You can grab the latest release from https://pypi.python.org/pypi/vdf or via pip

pip install vdf

Example usage

import vdf

# parsing vdf from file or string
d = vdf.load(open('file.txt'))
d = vdf.loads(vdf_text)
d = vdf.parse(open('file.txt'))
d = vdf.parse(vdf_text)

# dumping dict as vdf to string
vdf_text = vdf.dumps(d)
indented_vdf = vdf.dumps(d, pretty=True)

# dumping dict as vdf to file
vdf.dump(d, open('file2.txt','w'), pretty=True)

Using OrderedDict to preserve key order.

import vdf
from collections import OrderedDict

# parsing vdf from file or string
d = vdf.load(open('file.txt'), mapper=OrderedDict)
d = vdf.loads(vdf_text, mapper=OrderedDict)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vdf-1.7.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vdf-1.7-py2.py3-none-any.whl (6.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file vdf-1.7.tar.gz.

File metadata

  • Download URL: vdf-1.7.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for vdf-1.7.tar.gz
Algorithm Hash digest
SHA256 bada7a173a7d418c94718dc3ae5c1eca21eed4396e5814b3c0023c5118f164fc
MD5 0865fe76955df2fa31b016475578aa08
BLAKE2b-256 0ffeac074f51d73c6e61266630a6cdab3a3a4d7063881c55c3eb0e4ab176d070

See more details on using hashes here.

File details

Details for the file vdf-1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: vdf-1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for vdf-1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f58d9445cdf8f87e855e8f81742bcf79eb71d87017ecc342dde76fe0ae3906da
MD5 95a40eee00072ae481790d6318239dfb
BLAKE2b-256 1984d53ada9df48671690df59207dfd682ed02e48d7cf91cd95f69f3aadef701

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page