Skip to main content

A small utility for wrapping trees (nested dict/list) that allows filesystem-like path access, including walking up with "../".

Project description

FS Path Tree

A simple class to allow filesystem-style path access to nested dict/list structures, including support for walking "up" the tree with '..'.

Example:

  config = fspathtree()
  config.update( { 'desc' : "example config"
                 , 'time' : { 'N' : 50
                            , 'dt' : 0.01 }
                 , 'grid' : { 'x' : { 'min' : 0
                                    , 'max' : 0.5
                                    , 'N' : 100 }
                            , 'y' : { 'min' : 1
                                    , 'max' : 1.5
                                    , 'N' : 200 }
                            }
                 } )

  # elements are accessed in the same was as a dict.
  assert config['desc'] == "example config"
  # sub-elements can also be accessed the same way.
  assert config['grid']['x']['max'] == 0.5
  # but they can also be accessed using a path.
  assert config['grid/x/max'] == 0.5

  # get a sub-element in the tree.
  x = config['grid/x']

  # again, elements of grid/x are accessed as normal.
  assert x['max'] == 0.5
  # but we can also access elements that are not in this branch.
  assert x['../y/max'] == 1.5
  # or reference elements from the root of the tree.
  assert x['/time/N'] == 50

Install

You can install the latest release with pip.

$ pip install fspathtree

Or, even better, using pipenv

$ pipenv install fspathtree

Design

The fspathtree is a small wrapper class that can wrap any nested tree data structure. The tree that is wrapped can be accessed with the .tree attribute. This is an improvement over the old fspathdict.pdict class, which stored nodes internally as fspathdict.pdict instances and required "converting" to and from the standard python dict and list types.

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

fspathtree-0.8.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

fspathtree-0.8-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

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