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.6.tar.gz (3.9 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.6-py2.py3-none-any.whl (6.2 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for vdf-1.6.tar.gz
Algorithm Hash digest
SHA256 921ae4845c2d3d67953951a24fb45847ca55eff894e07cd18a29580c83f6d69f
MD5 08a062c7e5fd3cff3bc8077ea203fb49
BLAKE2b-256 fa54945751a2e72fe893a7981937c88e141b0fc3d3d9a27665eab1a1b437ad4c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for vdf-1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 765f7efbd8ab8751c0d3abd0acbc8859b198ea27d2bb699deaac170ee854f61e
MD5 34840dab7a7cc43249cd5d5c13b395ca
BLAKE2b-256 890382081d53b78e28682d44e6ebe898fcbe1c9217d820a7e05c1246891162ca

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