=========================================
Special members for Observable Properties
=========================================

Classes derived from Model, that exports *OPs*, have several special
members. Advanced users might be interested in overriding some of them,
but in general they should be considered as private members. They are
explained here for the sake of completeness.

``__observables__``
   A class (static) member that lists property
   names. This must be provided as either a tuple or a list by the
   user. Wilcards in names can be used to match property names, but
   properties with names starting with a double underscore
   ``__`` will be not matched.

``__properties__``
   (Deprecated, do not use anymore) A dictionary mapping
   observable properties names and their initial value. This
   variable has been substituted by __observables__. 
 
``__derived_properties__``
   (Deprecated) Automatically generated static member
   that maps the *OPs* exported by all base classes. This does not
   contain *OPs* that the class overrides.
 
``_prop_<property_name>``
   This is an
   auto-generated variable holding the property value. For example,
   a property called ``x`` will generate a variable called
   ``_prop_x``.
 
``get_prop_<property_name>``
   This public method
   is the getter for the property. It is automatically generated only
   if the user does not define one. This means that the user can change
   the behavior of it by defining their own method.  For example, for
   property ``x`` the method is ``get_prop_x``.  This
   method gets only self and returns the corresponding property value.
 
``set_prop_<property_name>``
   This public method
   is customizable like 
   ``get_prop_<property_name>``.  This does not return
   anything, and gets self and the value to be assigned to the
   property. The default auto-generated code also calls method
   ``gtkmvc.Model.notify_property_change`` to notify the
   change to all registered observers.
 

For further details about this topic see meta-classes ``PropertyMeta``
and ``ObservablePropertyMeta`` from package ``support``.
