dicttool(3tcl) Extensions to the standard dicttool(3tcl)
______________________________________________________________________________
NAME
dicttool - Dictionary Tools
SYNOPSIS
package require Tcl 8.5
package require dicttool ?1.0?
ladd varname args
ldelete varname args
dict getnull args
dict print dict
dict is_dict value
rmerge args
______________________________________________________________________________
DESCRIPTION
The dicttool package enhances the standard dict command with several
new commands. In addition, the package also defines several "creature
comfort" list commands as well. Each command checks to see if a com-
mand already exists of the same name before adding itself, just in case
any of these slip into the core.
ladd varname args
This command will add a new instance of each element in args to
varname, but only if that element is not already present.
ldelete varname args
This command will delete all instances of each element in args
from varname.
dict getnull args
Operates like dict get, however if the key args does not exist,
it returns an empty list instead of throwing an error.
dict print dict
This command will produce a string representation of dict, with
each nested branch on a newline, and indented with two spaces
for every level.
dict is_dict value
This command will return true if value can be interpreted as a
dict. The command operates in such a way as to not force an ex-
isting dict representation to shimmer into another internal rep.
rmerge args
Return a dict which is the product of a recursive merge of all
of the arguments. Unlike dict merge, this command descends into
all of the levels of a dict. Dict keys which end in a : indicate
a leaf, which will be interpreted as a literal value, and not
descended into further.
set items [dict merge {
option {color {default: green}}
} {
option {fruit {default: mango}}
} {
option {color {default: blue} fruit {widget: select values: {mango apple cherry grape}}}
}]
puts [dict print $items]
Prints the following result:
option {
color {
default: blue
}
fruit {
widget: select
values: {mango apple cherry grape}
}
}
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain
bugs and other problems. Please report such in the category dict of
the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package
and/or documentation.
When proposing code changes, please provide unified diffs, i.e the out-
put of diff -u.
Note further that attachments are strongly preferred over inlined
patches. Attachments can be made by going to the Edit form of the
ticket immediately after its creation, and then using the left-most
button in the secondary navigation bar.
KEYWORDS
dict
CATEGORY
Utilities
COPYRIGHT
Copyright (c) 2017 Sean Woods <yoda@etoyoc.com>
tcllib 1.0 dicttool(3tcl)