# Known Problems or Error Messages

Problems posted to the twill mailing list (or sent to Titus personally) will end up here if they are either outside the scope of twill, or intractable within the context of the twill project!

Last updated Apr 2006.

# 1. inspect module masking

The error message

    AttributeError: 'module' object has no attribute 'getmro'

is caused by masking of the default Python 'inspect' module with another module named 'inspect'. Known to happen in Webware installs. (Reported by David Hancock.)

# 2. Empty 'textarea' form elements are filled with a newline by 'tidy'.

Specifically,

    <textarea></textarea>

is turned into

    <textarea>
    </textarea>

by tidy. Set 'config use_tidy 0' to turn this off. You can use

    <textarea />

to sneak an empty textarea through tidy.

(Reported by Gabor Farkas.)

# 3. Unicode support is still young.

It's not yet clear how well mechanize and twill adhere to either the official recommendations (http://www.w3.org/TR/REC-html40/charset.html) or the unofficial recommendations (http://www.alanwood.net/unicode/htmlunicode.html) for dealing with unicode. There are definitely some problems in the version of mechanize included with twill in 0.8.4; this should be resolved in later releases.

# 4. Various kinds of broken HTML will break the form parser.

For example, twill (or, rather, ClientForm) sees no forms in this HTML

    <font>
    <INPUT type="this">

    <FORM>
    <input type="blah">
    </form>

# 5. Windows problems and tidy

If you get the error message

    The process cannot access the file because it is being used by another process.

on Windows, try turning 'tidy' processing off:

> config use_tidy 0

(and report it to the list if this does or does not solve the problem!)

# 6. sys.path mangling

twill, on import, alters the Python `sys.path` by appending `twill/extensions` to sys.path and inserting `twill/other_packages` in the front of the module path. This may cause problems with packages with conflicting names.

In particular, other modules whose names "shadow" twill's included extensions will be imported instead of the included extensions. Also, only twill's versions of pyparsing, mechanize, ClientForm, and ClientCookie will be import-able.

There is no good, simple way to get around this; setuptools may be our only hope.