Accessing Ecco With EccoChemistry

The EccoChemistry module lets you interface with the Ecco Pro PIM using an
SQLAlchemy-like object mapping. It's primarily intended for batch interaction
scripts, such as synchronization, importers, exporters, etc. An example:

Item subclasses MUST NOT be defined until after the appropriate file is
loaded in Ecco; i.e., your script must set up the Ecco connection before
defining its subclasses! (You may wish to put your subclasses in a separate
module and delay its import until the connection is set up.)

All Item subclasses in a program must be defined against (and used with)
exactly ONE open Ecco file during the program's runtime. Failure to adhere
to this requirement may produce (possibly silent) data corruption and errors!
(You can use generic Item and Folder instances with as many Ecco
files as you wish, as long as you only use them while their corresponding
Ecco file is open.)

Date/time ranges are not currently supported and may cause errors

You can't mix sorting and filtering, nor filter on more than one field
(This may be improved in a future version.)

Some operations not supported by EccoChemistry can still be performed via the
Ecco singleton, which is an ecco_dde.EccoDDE instance. (See the
EccoDDE developer's guide for more information on its API.) "Item" and
"Folder" objects have id attributes that can be passed to the EccoDDE
API, and you can also create items and folders using ids retrieved from the
EccoDDE API: