| |
- __builtin__.object
-
- Config
- Item
-
- Choice
- Comment
- Menu
- Symbol
- exceptions.Exception(exceptions.BaseException)
-
- Internal_Error
- Kconfig_Syntax_Error
class Choice(Item) |
|
Represents a choice statement. A choice can be in one of three modes:
"n" - The choice is not visible and no symbols can be selected.
"m" - Any number of symbols can be set to "m". The rest will be "n". This
is safe since potentially conflicting options don't actually get
compiled into the kernel simultaneously with "m".
"y" - One symbol will be "y" while the rest are "n".
Only tristate choices can be in "m" mode, and the visibility of the choice
is an upper bound on the mode, so that e.g. a choice that depends on a
symbol with value "m" will be in "m" mode.
The mode changes automatically when a value is assigned to a symbol within
the choice.
See Symbol.get_visibility() too. |
|
- Method resolution order:
- Choice
- Item
- __builtin__.object
Methods defined here:
- __init__(self)
- Choice constructor -- not intended to be called directly by
Kconfiglib clients.
- __str__(self)
- Returns a string containing various information about the choice
statement.
- get_config(self)
- Returns the Config instance this choice is from.
- get_def_locations(self)
- Returns a list of (filename, linenr) tuples, where filename (string)
and linenr (int) represent a location where the choice is defined. For
the vast majority of choices (all of them as of Linux 3.7.0-rc8) this
list will only contain one element, but its possible for named choices
to be defined in multiple locations.
- get_help(self)
- Returns the help text of the choice, or None if the choice has no
help text.
- get_items(self)
- Gets all items contained in the choice in the same order as within
the configuration ("items" instead of "symbols" since choices and
comments might appear within choices. This only happens in one place as
of Linux 3.7.0-rc8, in drivers/usb/gadget/Kconfig).
- get_mode(self)
- Returns the mode of the choice. See the class documentation for
an explanation of modes.
- get_name(self)
- For named choices, returns the name. Returns None for unnamed
choices. No named choices appear anywhere in the kernel Kconfig files
as of Linux 3.7.0-rc8.
- get_parent(self)
- Returns the menu or choice statement that contains the choice, or
None if the choice is at the top level. Note that if statements are
treated as syntactic sugar and do not have an explicit class
representation.
- get_prompts(self)
- Returns a list of prompts defined for the choice, in the order they
appear in the configuration files. Returns the empty list for choices
with no prompt.
This list will have a single entry for the vast majority of choices
having prompts, but having multiple prompts for a single choice is
possible through having multiple 'choice' entries for it (though I'm
not sure if that ever happens in practice).
- get_referenced_symbols(self, refs_from_enclosing=False)
- See Symbol.get_referenced_symbols().
- get_selection(self)
- Returns the symbol selected (either by the user or through
defaults), or None if either no symbol is selected or the mode is not
"y".
- get_selection_from_defaults(self)
- Like Choice.get_selection(), but acts as if no symbol has been
selected by the user and no 'optional' flag is in effect.
- get_symbols(self)
- Returns a list containing the choice's symbols.
A quirk (perhaps a bug) of Kconfig is that you can put items within a
choice that will not be considered members of the choice insofar as
selection is concerned. This happens for example if one symbol within a
choice 'depends on' the symbol preceding it, or if you put non-symbol
items within choices.
As of Linux 3.7.0-rc8, this seems to be used intentionally in one
place: drivers/usb/gadget/Kconfig.
This function returns the "proper" symbols of the choice in the order
they appear in the choice, excluding such items. If you want all items
in the choice, use get_items().
- get_type(self)
- Returns the type of the choice. See Symbol.get_type().
- get_user_selection(self)
- If the choice is in "y" mode and has a user-selected symbol, returns
that symbol. Otherwise, returns None.
- get_visibility(self)
- Returns the visibility of the choice statement: one of "n", "m" or
"y". This acts as an upper limit on the mode of the choice (though bool
choices can only have the mode "y"). See the class documentation for an
explanation of modes.
- is_optional(self)
- Returns True if the choice has the 'optional' flag set (and so will
default to "n" mode).
Methods inherited from Item:
- is_choice(self)
- Returns True if the item is a choice. Short for
isinstance(item, kconfiglib.Choice).
- is_comment(self)
- Returns True if the item is a comment. Short for
isinstance(item, kconfiglib.Comment).
- is_menu(self)
- Returns True if the item is a menu. Short for
isinstance(item, kconfiglib.Menu).
- is_symbol(self)
- Returns True if the item is a symbol. Short for
isinstance(item, kconfiglib.Symbol).
Data descriptors inherited from Item:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Comment(Item) |
|
Represents a comment statement. |
|
- Method resolution order:
- Comment
- Item
- __builtin__.object
Methods defined here:
- __init__(self)
- Comment constructor -- not intended to be called directly by
Kconfiglib clients.
- __str__(self)
- Returns a string containing various information about the
comment.
- get_config(self)
- Returns the Config instance this comment is from.
- get_location(self)
- Returns the location of the comment as a (filename, linenr) tuple,
where filename is a string and linenr an int.
- get_parent(self)
- Returns the menu or choice statement that contains the comment, or
None if the comment is at the top level. Note that if statements are
treated as syntactic sugar and do not have an explicit class
representation.
- get_referenced_symbols(self, refs_from_enclosing=False)
- See Symbol.get_referenced_symbols().
- get_text(self)
- Returns the text of the comment.
- get_visibility(self)
- Returns the visibility of the comment. See also
Symbol.get_visibility().
Methods inherited from Item:
- is_choice(self)
- Returns True if the item is a choice. Short for
isinstance(item, kconfiglib.Choice).
- is_comment(self)
- Returns True if the item is a comment. Short for
isinstance(item, kconfiglib.Comment).
- is_menu(self)
- Returns True if the item is a menu. Short for
isinstance(item, kconfiglib.Menu).
- is_symbol(self)
- Returns True if the item is a symbol. Short for
isinstance(item, kconfiglib.Symbol).
Data descriptors inherited from Item:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Config(__builtin__.object) |
|
Represents a Kconfig configuration, e.g. for i386 or ARM. This is the
set of symbols and other items appearing in the configuration together with
their values. Creating any number of Config objects -- including for
different architectures -- is safe; Kconfiglib has no global state. |
|
Methods defined here:
- __getitem__(self, name)
- Returns the symbol with name 'name'. Raises KeyError if the symbol
does not appear in the configuration.
- __init__(self, filename='Kconfig', base_dir=None, print_warnings=True, print_undef_assign=False)
- Creates a new Config object, representing a Kconfig configuration.
Raises Kconfig_Syntax_Error on syntax errors.
filename (default: "Kconfig"): The base Kconfig file of the
configuration. For the Linux kernel, you'll probably want "Kconfig"
from the top-level directory, as environment variables will make
sure the right Kconfig is included from there
(arch/<architecture>/Kconfig). If you are using Kconfiglib via 'make
scriptconfig', the filename of the base base Kconfig file will be in
sys.argv[1].
base_dir (default: None): The base directory relative to which 'source'
statements within Kconfig files will work. For the Linux kernel this
should be the top-level directory of the kernel tree. $-references
to existing environment variables will be expanded.
If None (the default), the environment variable 'srctree' will be
used if set, and the current directory otherwise. 'srctree' is set
by the Linux makefiles to the top-level kernel directory. A default
of "." would not work with an alternative build directory.
print_warnings (default: True): Set to True if warnings related to this
configuration should be printed to stderr. This can be changed later
with Config.set_print_warnings(). It is provided as a constructor
argument since warnings might be generated during parsing.
print_undef_assign (default: False): Set to True if informational
messages related to assignments to undefined symbols should be
printed to stderr for this configuration. Can be changed later with
Config.set_print_undef_assign().
- __iter__(self)
- Convenience function for iterating over the set of all defined
symbols in the configuration, used like
for sym in conf:
...
The iteration happens in the order of definition within the Kconfig
configuration files. Symbols only referred to but not defined will not
be included, nor will the special symbols n, m, and y. If you want to
include such symbols as well, see config.get_symbols().
- __str__(self)
- Returns a string containing various information about the Config.
- eval(self, s)
- Returns the value of the expression 's' -- where 's' is represented
as a string -- in the context of the configuration. Raises
Kconfig_Syntax_Error if syntax errors are detected in 's'.
For example, if FOO and BAR are tristate symbols at least one of which
has the value "y", then config.eval("y && (FOO || BAR)") => "y"
This function always yields a tristate value. To get the value of
non-bool, non-tristate symbols, use Symbol.get_value().
The result of this function is consistent with how evaluation works for
conditional expressions in the configuration as well as in the C
implementation. "m" and m are rewritten as '"m" && MODULES' and 'm &&
MODULES', respectively, and a result of "m" will get promoted to "y" if
we're running without modules.
Syntax checking is somewhat lax, partly to be compatible with lax
parsing in the C implementation.
- get_arch(self)
- Returns the value the environment variable ARCH had at the time the
Config instance was created, or None if ARCH was not set. For the
kernel, this corresponds to the architecture being built for, with
values such as "i386" or "mips".
- get_base_dir(self)
- Returns the base directory relative to which 'source' statements
will work, passed as an argument to Config.__init__().
- get_choices(self)
- Returns a list containing all choice statements in the
configuration, in the order they appear in the Kconfig files.
- get_comments(self)
- Returns a list containing all comments in the configuration, in the
order they appear in the Kconfig files.
- get_config_filename(self)
- Returns the filename of the most recently loaded configuration file,
or None if no configuration has been loaded.
- get_config_header(self)
- Returns the (uncommented) textual header of the .config file most
recently loaded with load_config(). Returns None if no .config file has
been loaded or if the most recently loaded .config file has no header.
The header consists of all lines up to but not including the first line
that either
1. Does not start with "#"
2. Has the form "# CONFIG_FOO is not set."
- get_defconfig_filename(self)
- Returns the name of the defconfig file, which is the first existing
file in the list given in a symbol having 'option defconfig_list' set.
$-references to symbols will be expanded ("$FOO bar" -> "foo bar" if
FOO has the value "foo"). Returns None in case of no defconfig file.
Setting 'option defconfig_list' on multiple symbols currently results
in undefined behavior.
If the environment variable 'srctree' was set when the Config was
created, get_defconfig_filename() will first look relative to that
directory before looking in the current directory; see
Config.__init__().
WARNING: A wart here is that scripts/kconfig/Makefile sometimes uses
the --defconfig=<defconfig> option when calling the C implementation of
e.g. 'make defconfig'. This option overrides the 'option
defconfig_list' symbol, meaning the result from
get_defconfig_filename() might not match what 'make defconfig' would
use. That probably ought to be worked around somehow, so that this
function always gives the "expected" result.
- get_kconfig_filename(self)
- Returns the name of the (base) kconfig file this configuration was
loaded from.
- get_mainmenu_text(self)
- Returns the text of the 'mainmenu' statement (with $-references to
symbols replaced by symbol values), or None if the configuration has no
'mainmenu' statement.
- get_menus(self)
- Returns a list containing all menus in the configuration, in the
order they appear in the Kconfig files.
- get_srcarch(self)
- Returns the value the environment variable SRCARCH had at the time
the Config instance was created, or None if SRCARCH was not set. For
the kernel, this corresponds to the particular arch/ subdirectory
containing architecture-specific code.
- get_srctree(self)
- Returns the value the environment variable srctree had at the time
the Config instance was created, or None if srctree was not defined.
This variable points to the source directory and is used when building
in a separate directory.
- get_symbol(self, name)
- Returns the symbol with name 'name', or None if no such symbol
appears in the configuration. An alternative shorthand is conf[name],
where conf is a Config instance, though that will instead raise
KeyError if the symbol does not exist.
- get_symbols(self, all_symbols=True)
- Returns a list of symbols from the configuration. An alternative for
iterating over all defined symbols (in the order of definition) is
for sym in config:
...
which relies on Config implementing __iter__() and is equivalent to
for sym in config.get_symbols(False):
...
all_symbols (default: True): If True, all symbols -- including special
and undefined symbols -- will be included in the result, in an
undefined order. If False, only symbols actually defined and not
merely referred to in the configuration will be included in the
result, and will appear in the order that they are defined within
the Kconfig configuration files.
- get_top_level_items(self)
- Returns a list containing the items (symbols, menus, choices, and
comments) at the top level of the configuration -- that is, all items
that do not appear within a menu or choice. The items appear in the
same order as within the configuration.
- load_config(self, filename, replace=True)
- Loads symbol values from a file in the familiar .config format.
Equivalent to calling Symbol.set_user_value() to set each of the
values.
"# CONFIG_FOO is not set" within a .config file is treated specially
and sets the user value of FOO to 'n'. The C implementation works the
same way.
filename: The .config file to load. $-references to existing
environment variables will be expanded. For scripts to work even when
an alternative build directory is used with the Linux kernel, you
need to refer to the top-level kernel directory with "$srctree".
replace (default: True): True if the configuration should replace the
old configuration; False if it should add to it.
- set_print_undef_assign(self, print_undef_assign)
- Determines whether informational messages related to assignments to
undefined symbols should be printed to stderr for this configuration.
print_undef_assign: If True, such messages will be printed.
- set_print_warnings(self, print_warnings)
- Determines whether warnings related to this configuration (for
things like attempting to assign illegal values to symbols with
Symbol.set_user_value()) should be printed to stderr.
print_warnings: True if warnings should be printed.
- unset_user_values(self)
- Resets the values of all symbols, as if Config.load_config() or
Symbol.set_user_value() had never been called.
- write_config(self, filename, header=None)
- Writes out symbol values in the familiar .config format.
Kconfiglib makes sure the format matches what the C implementation
would generate, down to whitespace. This eases testing.
filename: The filename under which to save the configuration.
header (default: None): A textual header that will appear at the
beginning of the file, with each line commented out automatically.
None means no header.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Item(__builtin__.object) |
|
Base class for symbols and other Kconfig constructs. Subclasses are
Symbol, Choice, Menu, and Comment. |
|
Methods defined here:
- is_choice(self)
- Returns True if the item is a choice. Short for
isinstance(item, kconfiglib.Choice).
- is_comment(self)
- Returns True if the item is a comment. Short for
isinstance(item, kconfiglib.Comment).
- is_menu(self)
- Returns True if the item is a menu. Short for
isinstance(item, kconfiglib.Menu).
- is_symbol(self)
- Returns True if the item is a symbol. Short for
isinstance(item, kconfiglib.Symbol).
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Menu(Item) |
|
Represents a menu statement. |
|
- Method resolution order:
- Menu
- Item
- __builtin__.object
Methods defined here:
- __init__(self)
- Menu constructor -- not intended to be called directly by
Kconfiglib clients.
- __str__(self)
- Returns a string containing various information about the menu.
- get_config(self)
- Return the Config instance this menu is from.
- get_items(self, recursive=False)
- Returns a list containing the items (symbols, menus, choice
statements and comments) in in the menu, in the same order that the
items appear within the menu.
recursive (default: False): True if items contained in items within the
menu should be included recursively (preorder).
- get_location(self)
- Returns the location of the menu as a (filename, linenr) tuple,
where filename is a string and linenr an int.
- get_parent(self)
- Returns the menu or choice statement that contains the menu, or
None if the menu is at the top level. Note that if statements are
treated as syntactic sugar and do not have an explicit class
representation.
- get_referenced_symbols(self, refs_from_enclosing=False)
- See Symbol.get_referenced_symbols().
- get_symbols(self, recursive=False)
- Returns a list containing the symbols in the menu, in the same order
that they appear within the menu.
recursive (default: False): True if symbols contained in items within
the menu should be included recursively.
- get_title(self)
- Returns the title text of the menu.
- get_visibility(self)
- Returns the visibility of the menu. This also affects the visibility
of subitems. See also Symbol.get_visibility().
- get_visible_if_visibility(self)
- Returns the visibility the menu gets from its 'visible if'
condition. "y" if the menu has no 'visible if' condition.
Methods inherited from Item:
- is_choice(self)
- Returns True if the item is a choice. Short for
isinstance(item, kconfiglib.Choice).
- is_comment(self)
- Returns True if the item is a comment. Short for
isinstance(item, kconfiglib.Comment).
- is_menu(self)
- Returns True if the item is a menu. Short for
isinstance(item, kconfiglib.Menu).
- is_symbol(self)
- Returns True if the item is a symbol. Short for
isinstance(item, kconfiglib.Symbol).
Data descriptors inherited from Item:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Symbol(Item) |
|
Represents a configuration symbol - e.g. FOO for
config FOO
... |
|
- Method resolution order:
- Symbol
- Item
- __builtin__.object
Methods defined here:
- __init__(self)
- Symbol constructor -- not intended to be called directly by
Kconfiglib clients.
- __str__(self)
- Returns a string containing various information about the symbol.
- get_assignable_values(self)
- For string/hex/int symbols and for bool and tristate symbols that
cannot be modified (see is_modifiable()), returns the empty list.
Otherwise, returns a list containing the user values that can be
assigned to the symbol (that won't be truncated). Usage example:
if "m" in sym.get_assignable_values():
sym.set_user_value("m")
This is basically a more convenient interface to
get_lower/upper_bound() when wanting to test if a particular tristate
value can be assigned.
- get_config(self)
- Returns the Config instance this symbol is from.
- get_def_locations(self)
- Returns a list of (filename, linenr) tuples, where filename (string)
and linenr (int) represent a location where the symbol is defined. For
the vast majority of symbols this list will only contain one element.
For the following Kconfig, FOO would get two entries: the lines marked
with *.
config FOO *
bool "foo prompt 1"
config FOO *
bool "foo prompt 2"
- get_help(self)
- Returns the help text of the symbol, or None if the symbol has no
help text.
- get_lower_bound(self)
- For string/hex/int symbols and for bool and tristate symbols that
cannot be modified (see is_modifiable()), returns None.
Otherwise, returns the lowest value the symbol can be set to with
Symbol.set_user_value() (that will not be truncated): one of "n" or
"m", arranged from lowest to highest. This corresponds to the lowest
value the symbol could be given in e.g. the 'make menuconfig'
interface.
See also the tri_less*() and tri_greater*() functions, which could come
in handy.
- get_name(self)
- Returns the name of the symbol.
- get_parent(self)
- Returns the menu or choice statement that contains the symbol, or
None if the symbol is at the top level. Note that if statements are
treated as syntactic and do not have an explicit class
representation.
- get_prompts(self)
- Returns a list of prompts defined for the symbol, in the order they
appear in the configuration files. Returns the empty list for symbols
with no prompt.
This list will have a single entry for the vast majority of symbols
having prompts, but having multiple prompts for a single symbol is
possible through having multiple 'config' entries for it.
- get_ref_locations(self)
- Returns a list of (filename, linenr) tuples, where filename (string)
and linenr (int) represent a location where the symbol is referenced in
the configuration. For example, the lines marked by * would be included
for FOO below:
config A
bool
default BAR || FOO *
config B
tristate
depends on FOO *
default m if FOO *
if FOO *
config A
bool "A"
endif
config FOO (definition not included)
bool
- get_referenced_symbols(self, refs_from_enclosing=False)
- Returns the set() of all symbols referenced by this symbol. For
example, the symbol defined by
config FOO
bool
prompt "foo" if A && B
default C if D
depends on E
select F if G
references the symbols A through G.
refs_from_enclosing (default: False): If True, the symbols referenced
by enclosing menus and ifs will be included in the result.
- get_selected_symbols(self)
- Returns the set() of all symbols X for which this symbol has a
'select X' or 'select X if Y' (regardless of whether Y is satisfied or
not). This is a subset of the symbols returned by
get_referenced_symbols().
- get_type(self)
- Returns the type of the symbol: one of UNKNOWN, BOOL, TRISTATE,
STRING, HEX, or INT. These are defined at the top level of the module,
so you'd do something like
if sym.get_type() == kconfiglib.STRING:
...
- get_upper_bound(self)
- For string/hex/int symbols and for bool and tristate symbols that
cannot be modified (see is_modifiable()), returns None.
Otherwise, returns the highest value the symbol can be set to with
Symbol.set_user_value() (that will not be truncated): one of "m" or
"y", arranged from lowest to highest. This corresponds to the highest
value the symbol could be given in e.g. the 'make menuconfig'
interface.
See also the tri_less*() and tri_greater*() functions, which could come
in handy.
- get_user_value(self)
- Returns the value assigned to the symbol in a .config or via
Symbol.set_user_value() (provided the value was valid for the type of
the symbol). Returns None in case of no user value.
- get_value(self)
- Calculate and return the value of the symbol. See also
Symbol.set_user_value().
- get_visibility(self)
- Returns the visibility of the symbol: one of "n", "m" or "y". For
bool and tristate symbols, this is an upper bound on the value users
can set for the symbol. For other types of symbols, a visibility of "n"
means the user value will be ignored. A visibility of "n" corresponds
to not being visible in the 'make *config' interfaces.
Example (assuming we're running with modules enabled -- i.e., MODULES
set to 'y'):
# Assume this has been assigned 'n'
config N_SYM
tristate "N_SYM"
# Assume this has been assigned 'm'
config M_SYM
tristate "M_SYM"
# Has visibility 'n'
config A
tristate "A"
depends on N_SYM
# Has visibility 'm'
config B
tristate "B"
depends on M_SYM
# Has visibility 'y'
config C
tristate "C"
# Has no prompt, and hence visibility 'n'
config D
tristate
Having visibility be tri-valued ensures that e.g. a symbol cannot be
set to "y" by the user if it depends on a symbol with value "m", which
wouldn't be safe.
You should probably look at get_lower/upper_bound(),
get_assignable_values() and is_modifiable() before using this.
- has_ranges(self)
- Returns True if the symbol is of type INT or HEX and has ranges that
limit what values it can take on.
- is_allnoconfig_y(self)
- Returns True if the symbol has the 'allnoconfig_y' option set.
- is_choice_selection(self)
- Returns True if the symbol is contained in a choice statement and is
the selected item. Equivalent to
sym.is_choice_symbol() and sym.get_parent().get_selection() is sym
- is_choice_symbol(self)
- Returns True if the symbol is in a choice statement and is an actual
choice symbol (see Choice.get_symbols()).
- is_defined(self)
- Returns False if the symbol is referred to in the Kconfig but never
actually defined.
- is_from_environment(self)
- Returns True if the symbol gets its value from the environment.
- is_modifiable(self)
- Returns True if the value of the symbol could be modified by calling
Symbol.set_user_value().
For bools and tristates, this corresponds to the symbol being visible
in the 'make menuconfig' interface and not already being pinned to a
specific value (e.g. because it is selected by another symbol).
For strings and numbers, this corresponds to just being visible. (See
Symbol.get_visibility().)
- is_special(self)
- Returns True if the symbol is one of the special symbols n, m, y, or
UNAME_RELEASE, or gets its value from the environment.
- set_user_value(self, v)
- Sets the user value of the symbol.
Equal in effect to assigning the value to the symbol within a .config
file. Use get_lower/upper_bound() or get_assignable_values() to find
the range of currently assignable values for bool and tristate symbols;
setting values outside this range will cause the user value to differ
from the result of Symbol.get_value() (be truncated). Values that are
invalid for the type (such as a_bool.set_user_value("foo")) are
ignored, and a warning is emitted if an attempt is made to assign such
a value.
For any type of symbol, is_modifiable() can be used to check if a user
value will currently have any effect on the symbol, as determined by
its visibility and range of assignable values. Any value that is valid
for the type (bool, tristate, etc.) will end up being reflected in
get_user_value() though, and might have an effect later if conditions
change. To get rid of the user value, use unset_user_value().
Any symbols dependent on the symbol are (recursively) invalidated, so
things will just work with regards to dependencies.
v: The user value to give to the symbol.
- unset_user_value(self)
- Resets the user value of the symbol, as if the symbol had never
gotten a user value via Config.load_config() or
Symbol.set_user_value().
Methods inherited from Item:
- is_choice(self)
- Returns True if the item is a choice. Short for
isinstance(item, kconfiglib.Choice).
- is_comment(self)
- Returns True if the item is a comment. Short for
isinstance(item, kconfiglib.Comment).
- is_menu(self)
- Returns True if the item is a menu. Short for
isinstance(item, kconfiglib.Menu).
- is_symbol(self)
- Returns True if the item is a symbol. Short for
isinstance(item, kconfiglib.Symbol).
Data descriptors inherited from Item:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
| |