Virus Assassin is a rule-based virus scanner written in Python, along the same lines as SpamAssassin. Virus Assassin is added to the mail stream (typically via procmail, where it scans email headers, bodies and attachments for matches against a signature database. The signatures are written in XML, and easily read and created by humans.
Virus Assassin use a rating system to determine how "infected" an email is. Each signature has a value which indicates the percentage chance of infection. A signature for known virus, for example, would have a value of 100, while a signature that simply looks for an extension of .vbs may have a much lower value. The user then configures their mail client to handle each email based on it's value.
Spam Assassin is a new project, written to be useful to me and so I could learn Python. It's available as very alpha code, with no instructions and under the GPL, here.
Virus Assassin is Copyright 2002 Adam Fletcher